]> git.proxmox.com Git - extjs.git/blame - extjs/build/examples/kitchensink/modern/src/model/Person.js
add extjs 6.0.1 sources
[extjs.git] / extjs / build / examples / kitchensink / modern / src / model / Person.js
CommitLineData
6527f429
DM
1Ext.define('KitchenSink.model.Person', {\r
2 extend: 'KitchenSink.model.Base',\r
3 fields: ['firstName', 'lastName', 'age', 'favoriteColor'],\r
4 statics: {\r
5 generateData: (function() {\r
6 var lasts = ['Jones', 'Smith', 'Lee', 'Wilson', 'Black', 'Williams', 'Lewis', 'Johnson', 'Foot', 'Little', 'Vee', 'Train', 'Hot', 'Mutt'],\r
7 firsts = ['Fred', 'Julie', 'Bill', 'Ted', 'Jack', 'John', 'Mark', 'Mike', 'Chris', 'Bob', 'Travis', 'Kelly', 'Sara'],\r
8 colors = ['Red', 'Green', 'Blue'],\r
9 currentYear = (new Date()).getFullYear();\r
10\r
11 function getRandom(array) {\r
12 var index = Ext.Number.randomInt(0, array.length - 1);\r
13 return array[index];\r
14 }\r
15\r
16 function getName(seen) {\r
17 var name = {\r
18 first: getRandom(firsts),\r
19 last: getRandom(lasts)\r
20 };\r
21\r
22 if (seen[name.first + name.last]) {\r
23 return getName(seen);\r
24 } else {\r
25 return name;\r
26 }\r
27 }\r
28\r
29 function getDate() {\r
30 var y = Ext.Number.randomInt(currentYear - 5, currentYear),\r
31 m = Ext.Number.randomInt(0, 11),\r
32 maxDays = Ext.Date.getDaysInMonth(new Date(y, m, 1));\r
33 d = Ext.Number.randomInt(1, maxDays);\r
34\r
35 return new Date(y, m, d);\r
36 }\r
37\r
38 function getKey() {\r
39 var chars = '',\r
40 i;\r
41\r
42 for (i = 0; i < 5; ++i) {\r
43 chars += String.fromCharCode(Ext.Number.randomInt(97, 122));\r
44 }\r
45\r
46 return chars;\r
47 }\r
48\r
49 return function(options) {\r
50 options = options || {};\r
51 var out = [],\r
52\r
53 adults = options.adults,\r
54 children = options.children,\r
55 total = options.total,\r
56 includeAccounts = options.includeAccounts,\r
57 seenNames = {},\r
58 adultsUndef = adults === undefined,\r
59 childrenUndef = children === undefined,\r
60 accountIdCounter = 0,\r
61 name, o, accounts, j, len;\r
62\r
63 if (!adultsUndef && !childrenUndef) {\r
64 total = adults + children;\r
65 } else {\r
66 // We rely on total now\r
67 total = total || 15;\r
68 if (adultsUndef && childrenUndef) {\r
69 adults = Ext.Number.randomInt(Math.floor(total * 0.25), Math.floor(total * 0.75));\r
70 children = total - adults;\r
71 } else if (adultsUndef) {\r
72 adults = total - children;\r
73 } else {\r
74 children = total - adults;\r
75 }\r
76 }\r
77\r
78 for (i = 0; i < total; ++i) {\r
79 name = getName(seenNames);\r
80 o = {\r
81 id: i + 1,\r
82 firstName: name.first,\r
83 lastName: name.last,\r
84 age: i >= adults ? Ext.Number.randomInt(0, 17) : Ext.Number.randomInt(18, 100),\r
85 favoriteColor: getRandom(colors)\r
86 };\r
87\r
88 if (includeAccounts) {\r
89 accounts = [];\r
90 len = Ext.Number.randomInt(1, 5);\r
91 for (j = 0; j < len; ++j) {\r
92 accounts.push({\r
93 id: ++accountIdCounter,\r
94 created: getDate(),\r
95 accountKey: getKey(),\r
96 personId: o.id\r
97 });\r
98 }\r
99 o.accounts = accounts;\r
100 }\r
101\r
102 out.push(o);\r
103 }\r
104\r
105 return out;\r
106 };\r
107 })()\r
108 }\r
109});