Pman.Delete.js
[Pman.Core] / Pman.Delete.js
index b0ab16e..cdb4448 100644 (file)
@@ -43,20 +43,7 @@ Pman.Delete = {
                 }
                 tab.grid.getView().mainWrap.mask("Deleting");
                 Pman.Delete.simpleCall(tab, tbl, r, 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();
-                    }
-                    
-                    
-                    
+                    Pman.Delete.completed(tab);
                 });
                 
             }
@@ -93,66 +80,57 @@ Pman.Delete = {
     
     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));
+        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.MessageBox.progress("Delete Records", "Deleting 1/" + r.length );
+                
+                
+                var p = 0;
+                
+                var delItem = function ()
+                {
+                    Roo.MessageBox.updateProgress(  (p+1)/r.length, "Deleting " + (1+p) + "/" + r.length );
+                    Pman.Delete.simpleCall(tab, tbl, [ r[p] ], function(response) {
                         
-                        Roo.log(act);
-                        var msg = '';
-                        try {
-                            msg = act.errorMsg;
-                        } catch(e) {
-                            msg = "Error deleting";
+                        p++;
+                        if (p == r.length) {
+                            Roo.MessageBox.hide();
+                            Pman.Delete.completed(tab);
+                            return;
                         }
-                        tab.grid.getView().mainWrap.unmask();
-                        Roo.MessageBox.alert("Error",  msg);
-                    }
-                    
-                });
+                        
+                        delItem();
+                    });
+                }
+                delItem();
+               
+                
             }
             
         );
-        return '';
     },
+    completed : function()
+    {
+        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();
+        }
     
+    }
 }
\ No newline at end of file