Pman.Delete.js
[Pman.Core] / Pman.Delete.js
1 /*
2  * Generic Delete function (moved from Pman.js)
3  *
4  * with progressbar version.
5  */
6
7
8 Pman.Delete = {
9     
10     
11     selections : function(tab)
12     {
13         var r = [];
14  
15             
16         var s = tab.grid.getSelectionModel().getSelections();
17         if (!s.length)  {
18             Roo.MessageBox.alert("Error", "Select at least one Row to delete" );
19             return '';
20         }
21         var reader = tab.grid.reader || tab.grid.ds.reader;
22         for(var i = 0; i < s.length; i++) {
23             r.push(reader.getId(s[i].json));
24         }
25         return r;
26     },
27     
28     // previous version - no progress..
29     
30     simple : function(tab, tbl)
31     {
32         
33         var r = this.selections(tab);
34         if (!r.length) {
35             return;
36         }
37         
38         
39         Roo.MessageBox.confirm("Confirm", "Are you sure you want to delete that?",
40             function(btn) {
41                 if (btn != 'yes') {
42                     return;
43                 }
44                 tab.grid.getView().mainWrap.mask("Deleting");
45                 Pman.Delete.simpleCall(tab, tbl, r, function(response) {
46                     tab.grid.getView().mainWrap.unmask();
47                     if ( tab.paging ) {
48                         tab.paging.onClick('refresh');   
49                     } else if (tab.grid.footer && tab.grid.footer.onClick) {
50                         // new xtype built grids
51                         tab.grid.footer.onClick('refresh');   
52                     } else if (tab.refresh) {
53                         tab.refresh(); // this might cause problems as panels have a refresh method?
54                     } else {
55                         tab.grid.getDataSource().load();
56                     }
57                     
58                     
59                     
60                 });
61                 
62             }
63             
64         );
65      },
66     
67     simpleCall : function(tab, tbl, r, resp)
68     {
69             // what about the toolbar??
70         
71         new Pman.Request({
72             url: baseURL + '/Roo/'+tbl,
73             method: 'POST',
74             params: {
75                 _delete : r.join(',')
76             },
77             success: resp,
78             failure: function(act) {
79                 
80                 Roo.log(act);
81                 var msg = '';
82                 try {
83                     msg = act.errorMsg;
84                 } catch(e) {
85                     msg = "Error deleting";
86                 }
87                 tab.grid.getView().mainWrap.unmask();
88                 Roo.MessageBox.alert("Error",  msg);
89             }
90             
91         });
92     },
93     
94     progress : function(tab, tbl) {
95         
96         var r = [];
97  
98             
99         var s = tab.grid.getSelectionModel().getSelections();
100         if (!s.length)  {
101             Roo.MessageBox.alert("Error", "Select at least one Row to delete" );
102             return '';
103         }
104         var reader = tab.grid.reader || tab.grid.ds.reader;
105         for(var i = 0; i < s.length; i++) {
106             r.push(reader.getId(s[i].json));
107         }
108     
109         Roo.MessageBox.confirm("Confirm", "Are you sure you want to delete that?",
110             function(btn) {
111                 if (btn != 'yes') {
112                     return;
113                 }
114                 // what about the toolbar??
115                 tab.grid.getView().mainWrap.mask("Deleting");
116                 new Pman.Request({
117                     url: baseURL + '/Roo/'+tbl+'.php',
118                     method: 'POST',
119                     params: {
120                         _delete : r.join(',')
121                     },
122                     success: function(response) {
123                         tab.grid.getView().mainWrap.unmask();
124                         if ( tab.paging ) {
125                             tab.paging.onClick('refresh');   
126                         } else if (tab.grid.footer && tab.grid.footer.onClick) {
127                             // new xtype built grids
128                             tab.grid.footer.onClick('refresh');   
129                         } else if (tab.refresh) {
130                             tab.refresh(); // this might cause problems as panels have a refresh method?
131                         } else {
132                             tab.grid.getDataSource().load();
133                         }
134                         
135                         
136                         
137                     },
138                     failure: function(act) {
139                         
140                         Roo.log(act);
141                         var msg = '';
142                         try {
143                             msg = act.errorMsg;
144                         } catch(e) {
145                             msg = "Error deleting";
146                         }
147                         tab.grid.getView().mainWrap.unmask();
148                         Roo.MessageBox.alert("Error",  msg);
149                     }
150                     
151                 });
152             }
153             
154         );
155         return '';
156     },
157     
158 }