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