]> git.proxmox.com Git - extjs.git/blame - extjs/examples/kitchensink/generate-dummy-data.js
add extjs 6.0.1 sources
[extjs.git] / extjs / examples / kitchensink / generate-dummy-data.js
CommitLineData
6527f429
DM
1function random(from, to) {\r
2 return Math.floor(Math.random() * (to - from + 1) + from);\r
3}\r
4\r
5function getEmployeeNo() {\r
6 var out = '',\r
7 i = 0;\r
8 for (; i < 6; ++i) {\r
9 out += random(0, 7);\r
10 }\r
11 return out;\r
12}\r
13\r
14function leftPad(string, size, character) {\r
15 var result = String(string);\r
16 character = character || " ";\r
17 while (result.length < size) {\r
18 result = character + result;\r
19 }\r
20 return result;\r
21}\r
22\r
23function formatDate(d) {\r
24 return leftPad(d.getFullYear(), 4, '0')+leftPad(d.getMonth() + 1, 2, '0')+leftPad(d.getDate(), 2, '0');\r
25}\r
26/**\r
27 * Returns an array of fake data\r
28 * @param {Number} count The number of fake rows to create data for\r
29 * @return {Array} The fake record data, suitable for usage with an ArrayReader\r
30 */\r
31function createFakeData(count) {\r
32 var firstNames = ['Ed', 'Tommy', 'Aaron', 'Abe', 'Jamie', 'Adam', 'Dave', 'David', 'Jay', 'Nicolas', 'Nige'],\r
33 lastNames = ['Spencer', 'Maintz', 'Conran', 'Elias', 'Avins', 'Mishcon', 'Kaneda', 'Davis', 'Robinson', 'Ferrero', 'White'],\r
34 departments = ['Engineering', 'QA', 'Sales', 'Marketing', 'Accounting', 'Managment', 'Support', 'Administration'],\r
35 ratings = [1, 2, 3, 4, 5],\r
36 salaries = [100, 400, 900, 1500, 1000000],\r
37 noticePeriods= ['2 weeks', '1 month', '3 months'];\r
38\r
39 var data = [];\r
40 for (var i = 0; i < (count || 25); i++) {\r
41 var firstName = firstNames[random(0, firstNames.length - 1)],\r
42 lastName = lastNames[random(0, lastNames.length - 1)],\r
43 name = firstName + ' ' + lastName,\r
44 email = firstName.toLowerCase() + '.' + lastName.toLowerCase() + '@sentcha.com',\r
45 rating = ratings[(name === 'Nige White') ? 0 : random(0, ratings.length - 1)],\r
46 salary = salaries[(name === 'Nige White') ? 4 : random(0, salaries.length - 1)],\r
47 department = departments[random(0, departments.length - 1)],\r
48 ageInYears = random(23, 55),\r
49 dob = new Date(new Date().getFullYear() - ageInYears, random(0, 11), random(0, 31)),\r
50 joinDate = new Date(new Date() - random(60, 2000) * 1000 * 60 * 60 * 24),\r
51 sickDays = random(0, 10),\r
52 holidayDays = random(0, 10),\r
53 holidayAllowance = random(20, 40);\r
54\r
55 data.push({\r
56 employeeNo: getEmployeeNo(),\r
57 rating: rating,\r
58 salary: salary,\r
59 forename: firstName,\r
60 surname: lastName,\r
61 email: email,\r
62 department: department,\r
63 dob: formatDate(dob),\r
64 joinDate: formatDate(joinDate),\r
65 sickDays: sickDays,\r
66 holidayDays: holidayDays,\r
67 holidayAllowance: holidayAllowance,\r
68 noticePeriod: noticePeriods[random(0, noticePeriods.length - 1)],\r
69 avatar: 'https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcSdj-gG2gXPkOUJGQ2r-3A5AnIgASv19axozeYMWssSVJyySvBIeQ'\r
70 });\r
71 }\r
72 return data;\r
73}\r
74\r
75var classBody = JSON.stringify({\r
76 singleton: true,\r
77 data: createFakeData(500)\r
78}, true, ' ');\r
79\r
80writeFile('app/data/BigData.js', 'Ext.define(\'KitchenSink.data.BigData\',' + classBody + ');');