]>
Commit | Line | Data |
---|---|---|
6527f429 DM |
1 | function random(from, to) {\r |
2 | return Math.floor(Math.random() * (to - from + 1) + from);\r | |
3 | }\r | |
4 | \r | |
5 | function 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 | |
14 | function 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 | |
23 | function 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 | |
31 | function 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 | |
75 | var classBody = JSON.stringify({\r | |
76 | singleton: true,\r | |
77 | data: createFakeData(500)\r | |
78 | }, true, ' ');\r | |
79 | \r | |
80 | writeFile('app/data/BigData.js', 'Ext.define(\'KitchenSink.data.BigData\',' + classBody + ');'); |