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                 Pman.Delete.simpleCall(tab, tbl, r, function(response) {
45                     tab.grid.getView().mainWrap.unmask();
46                     if ( tab.paging ) {
47                         tab.paging.onClick('refresh');   
48                     } else if (tab.grid.footer && tab.grid.footer.onClick) {
49                         // new xtype built grids
50                         tab.grid.footer.onClick('refresh');   
51                     } else if (tab.refresh) {
52                         tab.refresh(); // this might cause problems as panels have a refresh method?
53                     } else {
54                         tab.grid.getDataSource().load();
55                     }
56                     
57                     
58                     
59                 });
60                 
61             }
62             
63         );
64      },
65     
66     simpleCall : function(tab, tbl, r, resp)
67     {
68             // what about the toolbar??
69         tab.grid.getView().mainWrap.mask("Deleting");
70         new Pman.Request({
71             url: baseURL + '/Roo/'+tbl,
72             method: 'POST',
73             params: {
74                 _delete : r.join(',')
75             },
76             success: resp,
77             failure: function(act) {
78                 
79                 Roo.log(act);
80                 var msg = '';
81                 try {
82                     msg = act.errorMsg;
83                 } catch(e) {
84                     msg = "Error deleting";
85                 }
86                 tab.grid.getView().mainWrap.unmask();
87                 Roo.MessageBox.alert("Error",  msg);
88             }
89             
90         });
91     }
92     
93     progress : function(tab, tbl) {
94         
95         var r = [];
96  
97             
98         var s = tab.grid.getSelectionModel().getSelections();
99         if (!s.length)  {
100             Roo.MessageBox.alert("Error", "Select at least one Row to delete" );
101             return '';
102         }
103         var reader = tab.grid.reader || tab.grid.ds.reader;
104         for(var i = 0; i < s.length; i++) {
105             r.push(reader.getId(s[i].json));
106         }
107     
108         Roo.MessageBox.confirm("Confirm", "Are you sure you want to delete that?",
109             function(btn) {
110                 if (btn != 'yes') {
111                     return;
112                 }
113                 // what about the toolbar??
114                 tab.grid.getView().mainWrap.mask("Deleting");
115                 new Pman.Request({
116                     url: baseURL + '/Roo/'+tbl+'.php',
117                     method: 'POST',
118                     params: {
119                         _delete : r.join(',')
120                     },
121                     success: function(response) {
122                         tab.grid.getView().mainWrap.unmask();
123                         if ( tab.paging ) {
124                             tab.paging.onClick('refresh');   
125                         } else if (tab.grid.footer && tab.grid.footer.onClick) {
126                             // new xtype built grids
127                             tab.grid.footer.onClick('refresh');   
128                         } else if (tab.refresh) {
129                             tab.refresh(); // this might cause problems as panels have a refresh method?
130                         } else {
131                             tab.grid.getDataSource().load();
132                         }
133                         
134                         
135                         
136                     },
137                     failure: function(act) {
138                         
139                         Roo.log(act);
140                         var msg = '';
141                         try {
142                             msg = act.errorMsg;
143                         } catch(e) {
144                             msg = "Error deleting";
145                         }
146                         tab.grid.getView().mainWrap.unmask();
147                         Roo.MessageBox.alert("Error",  msg);
148                     }
149                     
150                 });
151             }
152             
153         );
154         return '';
155     },
156     
157 }