text changes to registration mail content
[namibia] / public / js / app / admin-workspace / damages.js
1 ;(function(){
2
3         window._w.damages = {
4
5                 ti : null,
6
7                 onTemplateReady : function( template, event, eventData )
8                 {
9                         _w.damages.ti = _t[template];
10
11                         _w.damages.initGrid();
12
13                         // Damage grid
14                         if (null == App.API.taskContract('gridDamage'))
15                         {
16                                 App.API.getTask(
17                                                 'gridDamage', 'Stock', 'Damage.List', null,
18                                                 {}, _w.damages.loadDamageGrid, _w.taskContractError
19                                                 );
20                         }
21                         else
22                         {
23                                 _w.damages.loadDamageGrid( null, {}, {} );
24                         }
25                         if (null == App.API.taskContract('addDamage'))
26                         {
27                                 App.API.getTask(
28                                                 'addDamage', 'Stock', 'Damage.Create', null,
29                                                 {}, function () {}, _w.taskContractError
30                                                 );
31                         }
32                 },
33
34                 onTemplatePublished : function( template, event, eventData )
35                 {
36                         _w.damages.ti.hydrateParam('name', {
37                                 type  : 'input',
38                                 id    : 'name',
39                                 title : 'Damage',
40                                 value : ''
41                         });
42                         _w.damages._setupValidation();
43                 },
44
45                 initGrid : function()
46                 {
47
48                         _w.damages.ti.hydrate({
49                                 // Damage grid
50                                 'gridDamageTitle': 'Manage damages',
51                                 'gridDamageColumnHeaders': {
52                                         constructor: 'GridColumnHeader',
53                                         items: {
54                                                 Damage: {
55                                                         id: 'gridDamageColumn_Damage',
56                                                         title: 'COMPONENT'
57                                                 }
58                                         }
59                                 },
60                                 'gridDamageRowRepeater': {},
61                                 'name' : {
62                                         type  : 'input',
63                                         id    : 'name',
64                                         title : 'Damage',
65                                         value : ''
66                                 }
67                         });
68
69                 },
70
71                 loadDamageGrid : function( contract, data, options )
72                 {
73                         App.API.execTask(
74                                         'gridDamage', data, options,
75                                         _w.damages._onDamageGridDataReceived, _w.taskExecError
76                                         );
77                 },
78
79                 _onDamageGridDataReceived : function( response )
80                 {
81                         _w.damages.ti.hydrateParam('gridDamageRowRepeater', {});
82                         var gridData = [];
83                         for (var i = 0; i < response.Data.length; i++)
84                         {
85                                 var row = response.Data[i];
86                                 gridData.push({
87                                         items: {
88                                                 'id'   : row.id,
89                                                 'Damage' : row.name ? row.name : ''
90                                         }
91                                 });
92                         }
93                         _w.damages.ti.hydrateParam('gridDamageRowRepeater', {
94                                 constructor : 'GridDataRow',
95                                 items       : gridData
96                         });
97                 },
98
99                 _setupValidation : function ()
100                 {
101                         $('#frmDamageView').validate({
102                                 "rules": {
103                                         name: "required"
104                                 },
105                                 messages: {
106                                         name : "This field is required."
107                                 },
108                                 submitHandler: function( form ) {
109                                         $('#btnSave').prop('disabled', true);
110                                         var data = { Damage: { name: $('#name').val() } };
111                                         App.API.execTask(
112                                                         'addDamage', data, {},
113                                                         function() {
114                                                                 $('#name').val('');
115                                                                 _w.damages.loadDamageGrid( null, {}, {} );
116                                                                 $('#btnSave').prop('disabled', false);
117                                                         }, _w.taskExecError
118                                                 );
119                                 }
120                         });
121                         $('#btnSave').prop('disabled', false);
122                 }
123
124         };
125
126 })();