diff app/view/grid/FilterResult.js @ 856:e44070aa45d2

Implemented a 'Delete Button' in the ResultGrid. Proben can be deleted when they are not ReadOnly and the Users is the Owner of the Probe
author Dustin Demuth <dustin@intevation.de>
date Fri, 10 Jul 2015 17:14:19 +0200
parents d054732bc7a2
children 03f39ddae596
line wrap: on
line diff
--- a/app/view/grid/FilterResult.js	Fri Jul 10 14:21:59 2015 +0200
+++ b/app/view/grid/FilterResult.js	Fri Jul 10 17:14:19 2015 +0200
@@ -13,6 +13,8 @@
     extend: 'Ext.grid.Panel',
     alias: 'widget.filterresultgrid',
 
+    requires: 'Lada.view.window.DeleteProbe',
+
     store: null, //'ProbenList',
 
     multiSelect: true,
@@ -120,21 +122,26 @@
         var resultColumns = [];
         var fields = [];
 
+        fields.push(new Ext.data.Field({
+            name: 'owner'
+        }));
+        fields.push(new Ext.data.Field({
+            name: 'readonly'
+        }));
+
         resultColumns.push({
             header: 'RW',
             dataIndex: 'readonly',
             sortable: false,
             width: 30,
-            renderer: function(value) {
-                if (value) {
-                    return '<img src="resources/img/view-time-schedule-baselined.png"/>';
+            renderer: function(value, meta, record) {
+                if ( !value && record.get('owner')) {
+                    return '<img src="resources/img/view-time-schedule-edit.png"/>';
                 }
-                return '<img src="resources/img/view-time-schedule-edit.png"/>';
+                return '<img src="resources/img/view-time-schedule-baselined.png"/>';
             }
         });
-        fields.push(new Ext.data.Field({
-            name: 'readonly'
-        }));
+
         for (var i = cols.length - 1; i >= 0; i--) {
             if (cols[i] === 'id') {
                 continue;
@@ -144,6 +151,38 @@
                 name: cols[i].dataIndex
             }));
         }
+        if (this.store.$className == 'Lada.store.ProbenList') {
+            // Add a Delete-Button
+            // TODO: Might need to be extended to Messprogramme
+            resultColumns.push({
+                xtype: 'actioncolumn',
+                header: 'Aktionen',
+                sortable: false,
+                width: 30,
+                items: [{
+                    icon: '/resources/img/edit-delete.png',
+                    tooltip: 'Löschen',
+                    isDisabled: function(grid, rowIndex, colIndex) {
+                        var rec = grid.getStore().getAt(rowIndex);
+                        if ( rec.get('readonly') || !rec.get('owner')) {
+                            return true;
+                        }
+                        return false;
+                    },
+                    handler: function(grid, rowIndex, colIndex){
+                        var rec = grid.getStore().getAt(rowIndex);
+
+                        var winname = 'Lada.view.window.DeleteProbe';
+                        var win = Ext.create(winname, {
+                            record: rec,
+                            parentWindow: this
+                        });
+                        win.show();
+                        win.initData();
+                    }
+                }]
+            });
+        }
         this.store.model.setFields(fields);
         this.reconfigure(this.store, resultColumns);
     }

http://lada.wald.intevation.org