text changes to registration mail content
[namibia] / public / js / app / admin-workspace / holidays.js
1 ;(function(){
2
3         window._w.holidays = {
4
5                 ti : null,
6                 itemId : null,
7
8                 onTemplateReady : function( template, event, eventData )
9                 {
10                         _w.holidays.ti = _t[template];
11
12                         _w.holidays.initGrid();
13
14                         // Holiday grid
15                         if (null == App.API.taskContract('gridHoliday'))
16                         {
17                                 App.API.getTask(
18                                                 'gridHoliday', 'Auction', 'PublicHoliday.List', null,
19                                                 {}, _w.holidays.loadHolidayGrid, _w.taskContractError
20                                                 );
21                         }
22                         else
23                         {
24                                 _w.holidays.loadHolidayGrid( null, {}, {} );
25                         }
26                         if (null == App.API.taskContract('addHoliday'))
27                         {
28                                 App.API.getTask(
29                                                 'addHoliday', 'Auction', 'PublicHoliday.Create', null,
30                                                 {}, function () {}, _w.taskContractError
31                                                 );
32                         }
33                 },
34
35                 onTemplatePublished : function( template, event, eventData )
36                 {
37                         _w.holidays.ti.hydrateParam('name', {
38                                 type  : 'input',
39                                 id    : 'name',
40                                 title : 'Name',
41                                 value : ''
42                         });
43                         _w.holidays.ti.hydrateParam('holiday', {
44                                 type  : 'date',
45                                 id    : 'holiday',
46                                 title : 'Date',
47                                 value : ''
48                         });
49                         _w.holidays._setupValidation();
50                         $('#btnNew').click(function() {
51                                 _w.holidays.itemId = null;
52                                 $('#name').val('');
53                                 $('#holiday').val('');
54                                 $('#btnSave').html(' Add ');
55                         });
56                 },
57
58                 initGrid : function()
59                 {
60
61                         _w.holidays.ti.hydrate({
62                                 // Holiday grid
63                                 'gridHolidayTitle': 'Manage holidays',
64                                 'gridHolidayColumnHeaders': {
65                                         constructor: 'GridColumnHeader',
66                                         items: {
67                                                 Name: {
68                                                         id: 'gridHolidayColumn_Name',
69                                                         title: 'NAME'
70                                                 },
71                                                 Holiday: {
72                                                         id: 'gridHolidayColumn_Holiday',
73                                                         title: 'HOLIDAY'
74                                                 }
75                                         }
76                                 },
77                                 'gridHolidayRowRepeater': {}
78                         });
79
80                 },
81
82                 loadHolidayGrid : function( contract, data, options )
83                 {
84                         App.API.execTask(
85                                         'gridHoliday', data, options,
86                                         _w.holidays._onHolidayGridDataReceived, _w.taskExecError
87                                         );
88                 },
89
90                 _onHolidayGridDataReceived : function( response )
91                 {
92                         _w.holidays.ti.hydrateParam('gridHolidayRowRepeater', {});
93                         var gridData = [];
94                         for (var i = 0; i < response.Data.length; i++)
95                         {
96                                 var row = response.Data[i];
97                                 gridData.push({
98                                         prepend: {
99                                                 Amount  : 'R '
100                                         },
101                                         rowId : row.id,
102                                         onClick : function(meta) {
103                                                 _w.holidays.itemId = meta.rowId;
104                                                 $('#name').val(meta.items.Name);
105                                                 $('#holiday').val(meta.items.Holiday);
106                                                 $('#btnSave').html(' Update ');
107                                         },
108                                         items: {
109                                                 'id'      : row.id,
110                                                 'Name'    : row.name ? row.name : '',
111                                                 'Holiday' : row.holiday ? row.holiday : ''
112                                         }
113                                 });
114                         }
115                         _w.holidays.ti.hydrateParam('gridHolidayRowRepeater', {
116                                 constructor : 'GridDataRow',
117                                 items       : gridData
118                         });
119                 },
120
121                 _setupValidation : function ()
122                 {
123                         $('#frmHolidayView').validate({
124                                 "rules": {
125                                         name: "required",
126                                         holiday: {required: true, dateISO: true}
127                                 },
128                                 messages: {
129                                         name : "This field is required.",
130                                         holiday : {
131                                                 dateISO: "Must be a valid date."
132                                         }
133                                 },
134                                 submitHandler: function( form ) {
135                                         $('#btnSave').prop('disabled', true);
136                                         var data = {
137                                                         PublicHoliday: {
138                                                                 name: $('#name').val(),
139                                                                 holiday: $('#holiday').val()
140                                                         }
141                                         };
142                                         if (null == _w.holidays.itemId)
143                                         {
144                                                 App.API.execTask(
145                                                                 'addHoliday', data, {},
146                                                                 function() {
147                                                                         $('#name').val('');
148                                                                         $('#holiday').val('');
149                                                                         _w.holidays.loadHolidayGrid( null, {}, {} );
150                                                                         $('#btnSave').prop('disabled', false);
151                                                                         $('#btnSave').html(' Add ');
152                                                                 }, _w.taskExecError
153                                                         );
154                                         }
155                                         else
156                                         {
157                                                 App.API.getTask(
158                                                                 'updateHoliday' + _w.holidays.itemId, 'Auction', 'PublicHoliday.Update', null,
159                                                                 {id: _w.holidays.itemId}, function () {
160                                                                         App.API.execTask(
161                                                                                         'updateHoliday' + _w.holidays.itemId, data, {},
162                                                                                         function() {
163                                                                                                 $('#name').val('');
164                                                                                                 $('#holiday').val('');
165                                                                                                 _w.holidays.loadHolidayGrid( null, {}, {} );
166                                                                                                 $('#btnSave').prop('disabled', false);
167                                                                                                 $('#btnSave').html(' Add ');
168                                                                                         }, _w.taskExecError
169                                                                                 );
170                                                                 }, _w.taskContractError
171                                                                 );
172                                         }
173                                 }
174                         });
175                         $('#btnSave').prop('disabled', false);
176                 }
177
178         };
179
180 })();