3 window._w.divisions = {
8 onTemplateReady : function( template, event, eventData )
10 _w.divisions.ti = _t[template];
11 _w.divisions.initGrid();
13 App.DataStore.loadSelectListData('groups', false, 'Company', 'Group.SelectList');
16 if (null == App.API.taskContract('gridDivision'))
19 'gridDivision', 'Company', 'GroupDivision.List', null,
20 {}, _w.divisions.loadDivisionGrid, _w.taskContractError
25 _w.divisions.loadDivisionGrid( null, {}, {} );
27 if (null == App.API.taskContract('addDivision'))
30 'addDivision', 'Company', 'GroupDivision.Create', null,
31 {}, function () {}, _w.taskContractError
36 onTemplatePublished : function( template, event, eventData )
38 _w.divisions.ti.hydrateParam('group', {
43 dataStoreId : 'groups'
45 _w.divisions.ti.hydrateParam('name', {
51 _w.divisions._setupValidation();
52 $('#btnNew').click(function() {
53 _w.divisions.itemId = null;
55 $('#group').selectpicker('val', '');
56 $('label.error').remove();
57 $('#btnSave').html(' Add ');
59 $('#btnNew').prop('disabled', false);
65 _w.divisions.ti.hydrate({
67 'gridDivisionTitle': 'Manage divisions',
68 'gridDivisionColumnHeaders': {
69 constructor: 'GridColumnHeader',
72 id: 'gridDivisionColumn_group',
76 id: 'gridDivisionColumn_name',
81 'gridDivisionRowRepeater': {}
86 loadDivisionGrid : function( contract, data, options )
89 'gridDivision', data, options,
90 _w.divisions._onDivisionGridDataReceived, _w.taskExecError
94 _onDivisionGridDataReceived : function( response )
96 _w.divisions.gridData = {};
97 _w.divisions.ti.hydrateParam('gridDivisionRowRepeater', {});
99 response.Data.sort(function(a, b)
101 var aName = a.group.name.toLowerCase();
102 var bName = b.group.name.toLowerCase();
103 return ((aName < bName) ? -1 : ((aName > bName) ? 1 : 0));
105 for (var i = 0; i < response.Data.length; i++)
107 var row = response.Data[i];
108 _w.divisions.gridData[row.group.name] = row.group.id;
114 onClick : function(meta) {
115 _w.divisions.itemId = meta.rowId;
116 $('#name').val(meta.items.name);
117 $('#group').selectpicker('val', _w.divisions.gridData[meta.items.group]);
118 $('#btnSave').html(' Update ');
123 'group' : row.group.name
127 _w.divisions.ti.hydrateParam('gridDivisionRowRepeater', {
128 constructor : 'GridDataRow',
133 _setupValidation : function ()
135 $('#frmDivisionView').validate({
141 name : "This field is required.",
142 group : "This field is required."
144 submitHandler: function( form ) {
145 $('#btnSave').prop('disabled', true);
148 name: $('#name').val(),
149 group: $('#group').val(),
152 if (null == _w.divisions.itemId)
155 'addDivision', data, {},
158 $('#group').selectpicker('val', '');
159 $('label.error').remove();
160 _w.divisions.loadDivisionGrid( null, {}, {} );
161 $('#btnSave').prop('disabled', false);
162 $('#btnSave').html(' Add ');
169 'updateDivision' + _w.divisions.itemId, 'Company', 'GroupDivision.Update', null,
170 {id: _w.divisions.itemId}, function () {
172 'updateDivision' + _w.divisions.itemId, data, {},
175 $('#group').selectpicker('val', '');
176 $('label.error').remove();
177 _w.divisions.loadDivisionGrid( null, {}, {} );
178 $('#btnSave').prop('disabled', false);
179 $('#btnSave').html(' Add ');
182 }, _w.taskContractError
187 $('#btnSave').prop('disabled', false);