From: Alan Knowles Date: Tue, 21 Jul 2020 06:42:29 +0000 (+0800) Subject: Pman.Delete.js X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=commitdiff_plain;h=b06a9b7ece77e43ff1e12004f3588b73c2b22026 Pman.Delete.js --- diff --git a/Pman.Delete.js b/Pman.Delete.js new file mode 100644 index 00000000..013f424b --- /dev/null +++ b/Pman.Delete.js @@ -0,0 +1,152 @@ +/* + * Generic Delete function (moved from Pman.js) + * + * with progressbar version. + */ + + +Pman.Delete = { + + + selections : function(tab) + { + var r = []; + + + var s = tab.grid.getSelectionModel().getSelections(); + if (!s.length) { + Roo.MessageBox.alert("Error", "Select at least one Row to delete" ); + return ''; + } + var reader = tab.grid.reader || tab.grid.ds.reader; + for(var i = 0; i < s.length; i++) { + r.push(reader.getId(s[i].json)); + } + return r; + }, + + // previous version - no progress.. + + simple : function(tab, tbl) + { + + var r = this.selections(tab); + if (!r.length) { + return; + } + + Roo.MessageBox.confirm("Confirm", "Are you sure you want to delete that?", + function(btn) { + if (btn != 'yes') { + return; + } + // what about the toolbar?? + tab.grid.getView().mainWrap.mask("Deleting"); + new Pman.Request({ + url: baseURL + '/Roo/'+tbl+'.php', + method: 'POST', + params: { + _delete : r.join(',') + }, + success: function(response) { + tab.grid.getView().mainWrap.unmask(); + if ( tab.paging ) { + tab.paging.onClick('refresh'); + } else if (tab.grid.footer && tab.grid.footer.onClick) { + // new xtype built grids + tab.grid.footer.onClick('refresh'); + } else if (tab.refresh) { + tab.refresh(); // this might cause problems as panels have a refresh method? + } else { + tab.grid.getDataSource().load(); + } + + + + }, + failure: function(act) { + + Roo.log(act); + var msg = ''; + try { + msg = act.errorMsg; + } catch(e) { + msg = "Error deleting"; + } + tab.grid.getView().mainWrap.unmask(); + Roo.MessageBox.alert("Error", msg); + } + + }); + } + + ); + return ''; + }, + + + progress : function(tab, tbl) { + + var r = []; + + + var s = tab.grid.getSelectionModel().getSelections(); + if (!s.length) { + Roo.MessageBox.alert("Error", "Select at least one Row to delete" ); + return ''; + } + var reader = tab.grid.reader || tab.grid.ds.reader; + for(var i = 0; i < s.length; i++) { + r.push(reader.getId(s[i].json)); + } + + Roo.MessageBox.confirm("Confirm", "Are you sure you want to delete that?", + function(btn) { + if (btn != 'yes') { + return; + } + // what about the toolbar?? + tab.grid.getView().mainWrap.mask("Deleting"); + new Pman.Request({ + url: baseURL + '/Roo/'+tbl+'.php', + method: 'POST', + params: { + _delete : r.join(',') + }, + success: function(response) { + tab.grid.getView().mainWrap.unmask(); + if ( tab.paging ) { + tab.paging.onClick('refresh'); + } else if (tab.grid.footer && tab.grid.footer.onClick) { + // new xtype built grids + tab.grid.footer.onClick('refresh'); + } else if (tab.refresh) { + tab.refresh(); // this might cause problems as panels have a refresh method? + } else { + tab.grid.getDataSource().load(); + } + + + + }, + failure: function(act) { + + Roo.log(act); + var msg = ''; + try { + msg = act.errorMsg; + } catch(e) { + msg = "Error deleting"; + } + tab.grid.getView().mainWrap.unmask(); + Roo.MessageBox.alert("Error", msg); + } + + }); + } + + ); + return ''; + }, + +} \ No newline at end of file