click to refresh errors
[namibia] / public / js / app / admin-workspace / accessories.js
1 ;(function(){
2
3         window._w.accessories = {
4
5                 ti : null,
6
7                 onTemplateReady : function( template, event, eventData )
8                 {
9                         _w.accessories.ti = _t[template];
10
11                         _w.accessories.initGrid();
12
13                         // Acccessory grid
14                         if (null == App.API.taskContract('gridAcccessory'))
15                         {
16                                 App.API.getTask(
17                                                 'gridAcccessory', 'Stock', 'Accessory.List', null,
18                                                 {}, _w.accessories.loadAcccessoryGrid, _w.taskContractError
19                                                 );
20                         }
21                         else
22                         {
23                                 _w.accessories.loadAcccessoryGrid( null, {}, {} );
24                         }
25                         if (null == App.API.taskContract('addAcccessory'))
26                         {
27                                 App.API.getTask(
28                                                 'addAcccessory', 'Stock', 'Accessory.Create', null,
29                                                 {}, function () {}, _w.taskContractError
30                                                 );
31                         }
32                 },
33
34                 onTemplatePublished : function( template, event, eventData )
35                 {
36                         _w.accessories.ti.hydrateParam('name', {
37                                 type  : 'input',
38                                 id    : 'name',
39                                 title : 'Accessory',
40                                 value : ''
41                         });
42                         _w.accessories._setupValidation();
43                 },
44
45                 initGrid : function()
46                 {
47
48                         _w.accessories.ti.hydrate({
49                                 // Acccessory grid
50                                 'gridAcccessoryTitle': 'Manage accessories',
51                                 'gridAcccessoryColumnHeaders': {
52                                         constructor: 'GridColumnHeader',
53                                         items: {
54                                                 Accessory: {
55                                                         id: 'gridAcccessoryColumn_Accessory',
56                                                         title: 'ACCESSORY'
57                                                 }
58                                         }
59                                 },
60                                 'gridAcccessoryRowRepeater': {},
61                                 'name' : {
62                                         type  : 'input',
63                                         id    : 'name',
64                                         title : 'Accessory',
65                                         value : ''
66                                 }
67                         });
68
69                 },
70
71                 loadAcccessoryGrid : function( contract, data, options )
72                 {
73                         App.API.execTask(
74                                         'gridAcccessory', data, options,
75                                         _w.accessories._onAcccessoryGridDataReceived, _w.taskExecError
76                                         );
77                 },
78
79                 _onAcccessoryGridDataReceived : function( response )
80                 {
81                         _w.accessories.ti.hydrateParam('gridAcccessoryRowRepeater', {});
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                                                 'Accessory' : row.name ? row.name : ''
90                                         }
91                                 });
92                         }
93                         _w.accessories.ti.hydrateParam('gridAcccessoryRowRepeater', {
94                                 constructor : 'GridDataRow',
95                                 items       : gridData
96                         });
97                 },
98
99                 orderAcccessoryGrid : function(field, direction)
100                 {
101                         var order = {};
102                         order[field] = direction;
103                         _w.accessories.loadAcccessoryGrid( {}, {"Grid":{"Page": 1, "OrderBy": order}} );
104                 },
105
106                 _setupValidation : function ()
107                 {
108                         $('#frmAccessoryView').validate({
109                                 "rules": {
110                                         name: "required"
111                                 },
112                                 messages: {
113                                         name : "This field is required."
114                                 },
115                                 submitHandler: function( form ) {
116                                         $('#btnSave').prop('disabled', true);
117                                         var data = { Accessory: { name: $('#name').val() } };
118                                         App.API.execTask(
119                                                         'addAcccessory', data, {},
120                                                         function() {
121                                                                 $('#name').val('');
122                                                                 _w.accessories.loadAcccessoryGrid( null, {}, {} );
123                                                                 $('#btnSave').prop('disabled', false);
124                                                         }, _w.taskExecError
125                                                 );
126                                 }
127                         });
128                         $('#btnSave').prop('disabled', false);
129                 }
130
131         };
132
133 })();