]>
Commit | Line | Data |
---|---|---|
6527f429 DM |
1 | Ext.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 |