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