]> git.proxmox.com Git - extjs.git/blame - extjs/build/examples/kitchensink/classic/samples/model/grid/Employee.js
add extjs 6.0.1 sources
[extjs.git] / extjs / build / examples / kitchensink / classic / samples / model / grid / Employee.js
CommitLineData
6527f429
DM
1Ext.define('KitchenSink.model.grid.Employee', {\r
2 extend: 'KitchenSink.model.Base',\r
3 fields: [{\r
4 name: 'employeeNo'\r
5 }, {\r
6 name: 'rating'\r
7 }, {\r
8 name: 'salary',\r
9 type: 'float'\r
10 }, {\r
11 name: 'forename'\r
12 }, {\r
13 name: 'surname'\r
14 }, {\r
15 name: 'name',\r
16 convert: function(v, rec) {\r
17 return rec.editing ? v : rec.get('forename') + ' ' + rec.get('surname');\r
18 }\r
19 }, {\r
20 name: 'email'\r
21 }, {\r
22 name: 'department'\r
23 }, {\r
24 name: 'dob',\r
25 type: 'date',\r
26 dateFormat: 'Ymd'\r
27 }, {\r
28 name: 'joinDate',\r
29 type: 'date',\r
30 dateFormat: 'Ymd'\r
31 }, {\r
32 name: 'noticePeriod'\r
33 }, {\r
34 name: 'sickDays',\r
35 type: 'int'\r
36 }, {\r
37 name: 'holidayDays',\r
38 type: 'int'\r
39 }, {\r
40 name: 'holidayAllowance',\r
41 type: 'int'\r
42 }, {\r
43 name: 'avatar'\r
44 }, {\r
45 name: 'ratingLastYear',\r
46 type: 'int'\r
47 }, {\r
48 name: 'ratingThisYear',\r
49 type: 'int'\r
50 }],\r
51 idField: 'employeeNo',\r
52\r
53 // Override set to update dependent fields\r
54 set: function (name, value) {\r
55 var data = name;\r
56\r
57 // Convert 2 arg form to object form\r
58 if (Ext.isString(name)) {\r
59 data = {};\r
60 data[name] = value;\r
61 }\r
62\r
63 // "name" is a calculated field, so update it on edit of "forename" or "surname".\r
64 if (data.forename || data.surname) {\r
65 data.name = (data.forename || this.get('forename')) + ' ' + (data.surname || this.get('surname'));\r
66 }\r
67 // Likewise, update two name fields if whole name gets updated\r
68 else if (data.name) {\r
69 var names = this.convertName(data.name);\r
70 data.forename = names[0];\r
71 data.surname = names[1];\r
72 }\r
73\r
74 return this.callParent([data]);\r
75 },\r
76 \r
77 convertName: function(name) {\r
78 var names = /([^\s+]+)(?:\s+(.*))?/.exec(name);\r
79 return names ? [names[1], names[2]||''] : ['', ''];\r
80 }\r
81});\r