public inbox for [email protected]  
help / color / mirror / Atom feed
PATCH: Added canAddRow/canEditRow/canDeleteRow functionality for grid
2+ messages / 2 participants
[nested] [flat]

* PATCH: Added canAddRow/canEditRow/canDeleteRow functionality for grid
@ 2016-04-13 12:35  Murtuza Zabuawala <[email protected]>
  0 siblings, 1 reply; 2+ messages in thread

From: Murtuza Zabuawala @ 2016-04-13 12:35 UTC (permalink / raw)
  To: pgadmin-hackers

Hi,

PFA minor patch which will add canAddRow/canEditRow/canDeleteRow
functionality for Backgrid.

This will allow user to check condition on individual
opration(add/edit/delete row) rather than only while rendering the control.


--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


-- 
Sent via pgadmin-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers


Attachments:

  [application/octet-stream] added_canAddRow_canEditRow_canDeleteRow.patch (5.4K, 3-added_canAddRow_canEditRow_canDeleteRow.patch)
  download | inline diff:
diff --git a/web/pgadmin/static/js/backform.pgadmin.js b/web/pgadmin/static/js/backform.pgadmin.js
index aca7bc2..f18fceb 100644
--- a/web/pgadmin/static/js/backform.pgadmin.js
+++ b/web/pgadmin/static/js/backform.pgadmin.js
@@ -899,7 +899,9 @@
     },
     render: function() {
       // Clean up existing elements
+
       this.undelegateEvents();
+      this.$el.empty();

       var field = _.defaults(this.field.toJSON(), this.defaults),
           attributes = this.model.toJSON(),
@@ -927,6 +929,7 @@
         canAdd: (field.version_compatible &&
           evalF.apply(this.field, [data.canAdd, data, this.model])
           ),
+        canAddRow: data.canAddRow,
         canDelete: evalF.apply(this.field, [data.canDelete, data, this.model]),
         canEdit: evalF.apply(this.field, [data.canEdit, data, this.model])
       });
@@ -978,7 +981,8 @@
           gridSchema.columns.unshift({
             name: "pg-backform-delete", label: "",
             cell: Backgrid.Extension.DeleteCell,
-            editable: false, cell_priority: -1
+            editable: false, cell_priority: -1,
+            canDeleteRow: data.canDeleteRow
           });
       }

@@ -990,7 +994,7 @@

           gridSchema.columns.unshift({
             name: "pg-backform-edit", label: "", cell : editCell,
-            cell_priority: -2
+            cell_priority: -2, canEditRow: data.canEditRow
           });
       }

@@ -1041,7 +1045,9 @@
       if (!(data.disabled || data.canAdd == false)) {
         $dialog.find('button.add').first().click(function(e) {
           e.preventDefault();
-
+          var canAddRow = _.isFunction(data.canAddRow) ?
+                            data.canAddRow.apply(self, [self.model]) : true;
+         if(canAddRow) {
           // Close any existing expanded row before adding new one.
           _.each(grid.body.rows, function(row){
             var editCell = row.$el.find(".subnode-edit-in-process").parent();
@@ -1089,6 +1095,7 @@
           $(newRow).pgMakeVisible('backform-tab');

           return false;
+          }
         });
       }

@@ -1143,6 +1150,7 @@
         visible:  evalF(data.visible, data, this.model),
         required: evalF(data.required, data, this.model),
         canAdd: evalF(data.canAdd, data, this.model),
+        canAddRow: data.canAddRow,
         canEdit: evalF(data.canEdit, data, this.model),
         canDelete: evalF(data.canDelete, data, this.model)
       });
@@ -1200,7 +1208,8 @@
           gridSchema.columns.unshift({
             name: "pg-backform-delete", label: "",
             cell: Backgrid.Extension.DeleteCell,
-            editable: false, cell_priority: -1
+            editable: false, cell_priority: -1,
+            canDeleteRow: data.canDeleteRow
           });
       }

@@ -1214,7 +1223,8 @@

           gridSchema.columns.unshift({
             name: "pg-backform-edit", label: "", cell : editCell,
-            cell_priority: -2, editable: canEdit
+            cell_priority: -2, editable: canEdit,
+            canEditRow: data.canEditRow
           });
       }

@@ -1272,25 +1282,29 @@

       // Add button callback
       $dialog.find('button.add').click(function(e) {
-        e.preventDefault();
-        // Close any existing expanded row before adding new one.
-        _.each(grid.body.rows, function(row){
-          var editCell = row.$el.find(".subnode-edit-in-process").parent();
-          // Only close row if it's open.
-          if (editCell.length > 0){
-            var event = new Event('click');
-            editCell[0].dispatchEvent(event);
-          }
-        });
+         e.preventDefault();
+        var canAddRow = _.isFunction(data.canAddRow) ?
+                            data.canAddRow.apply(self, [self.model]) : true;
+        if(canAddRow) {
+          // Close any existing expanded row before adding new one.
+          _.each(grid.body.rows, function(row){
+            var editCell = row.$el.find(".subnode-edit-in-process").parent();
+            // Only close row if it's open.
+            if (editCell.length > 0){
+              var event = new Event('click');
+              editCell[0].dispatchEvent(event);
+            }
+          });

-        grid.insertRow({});
+          grid.insertRow({});

-        var newRow = $(grid.body.rows[collection.length - 1].$el);
-        newRow.attr("class", "new").click(function(e) {
-          $(this).attr("class", "editable");
-        });
-        $(newRow).pgMakeVisible('backform-tab');
-        return false;
+          var newRow = $(grid.body.rows[collection.length - 1].$el);
+          newRow.attr("class", "new").click(function(e) {
+            $(this).attr("class", "editable");
+          });
+          $(newRow).pgMakeVisible('backform-tab');
+          return false;
+        }
       });

       return $dialog;
@@ -1662,8 +1676,11 @@
             subnode: ((_.isString(s.model) && s.model in pgBrowser.Nodes) ?
                 pgBrowser.Nodes[s.model].model : s.model),
             canAdd: (disabled ? false : evalASFunc(s.canAdd)),
+            canAddRow: (disabled ? false : evalASFunc(s.canAddRow)),
             canEdit: (disabled ? false : evalASFunc(s.canEdit)),
             canDelete: (disabled ? false : evalASFunc(s.canDelete)),
+            canEditRow: (disabled ? false : evalASFunc(s.canEditRow)),
+            canDeleteRow: (disabled ? false : evalASFunc(s.canDeleteRow)),
             transform: evalASFunc(s.transform),
             mode: mode,
             control: control,


^ permalink  raw  reply  [nested|flat] 2+ messages in thread

* Re: PATCH: Added canAddRow/canEditRow/canDeleteRow functionality for grid
@ 2016-04-13 14:54  Dave Page <[email protected]>
  parent: Murtuza Zabuawala <[email protected]>
  0 siblings, 0 replies; 2+ messages in thread

From: Dave Page @ 2016-04-13 14:54 UTC (permalink / raw)
  To: Murtuza Zabuawala <[email protected]>; +Cc: pgadmin-hackers

Thanks, applied.

On Wed, Apr 13, 2016 at 1:35 PM, Murtuza Zabuawala
<[email protected]> wrote:
> Hi,
>
> PFA minor patch which will add canAddRow/canEditRow/canDeleteRow
> functionality for Backgrid.
>
> This will allow user to check condition on individual
> opration(add/edit/delete row) rather than only while rendering the control.
>
>
> --
> Regards,
> Murtuza Zabuawala
> EnterpriseDB: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
>
> --
> Sent via pgadmin-hackers mailing list ([email protected])
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgadmin-hackers
>



-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


-- 
Sent via pgadmin-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers




^ permalink  raw  reply  [nested|flat] 2+ messages in thread


end of thread, other threads:[~2016-04-13 14:54 UTC | newest]

Thread overview: 2+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2016-04-13 12:35 PATCH: Added canAddRow/canEditRow/canDeleteRow functionality for grid Murtuza Zabuawala <[email protected]>
2016-04-13 14:54 ` Dave Page <[email protected]>

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox