Hi, Please find the attached re-based patch.
Thanks, Khushboo On Wed, Apr 6, 2016 at 2:38 PM, Ashesh Vashi <ashesh.va...@enterprisedb.com> wrote: > Hi Khushboo, > > > On Tue, Apr 5, 2016 at 10:59 AM, Khushboo Vashi < > khushboo.va...@enterprisedb.com> wrote: > >> Hi Ashesh, >> >> I have changed the function name (from *render_deps* to *updateUIDeps*), >> which will be called on the dependent field change, as per your suggestion. >> > I've updated the patch. > Please try this. > I think - 'updateUIDeps' is not the write name. > A Cell can do anything, when dependent changed, hence - I renamed it with > 'dependentChanged'. > > Also, The user is not going to extend existing cell from the > DependendsCell, but - only going to use the functions. > Hence - I have created a separate class for it instead of extend it from > Backgrid.Cell. > > -- > > Thanks & Regards, > > Ashesh Vashi > EnterpriseDB INDIA: Enterprise PostgreSQL Company > <http://www.enterprisedb.com/> > > > *http://www.linkedin.com/in/asheshvashi* > <http://www.linkedin.com/in/asheshvashi> > >> >> Please find attached patch for the same. >> >> Thanks, >> Khushboo >> >> On Fri, Apr 1, 2016 at 3:56 PM, Khushboo Vashi < >> khushboo.va...@enterprisedb.com> wrote: >> >>> Hi Ashesh, >>> >>> Yes, agreed. This implementation limits us to use only String Cell. >>> So, I have modified the patch as you suggested. >>> >>> Please find the attachment for the same. >>> >>> Thanks, >>> Khushboo >>> >>> On Fri, Apr 1, 2016 at 2:59 PM, Ashesh Vashi < >>> ashesh.va...@enterprisedb.com> wrote: >>> >>>> Hi Khushboo, >>>> >>>> I am reluctant to use this code as it is. >>>> I would prefer you create just helper functions (i.e. initialize, >>>> remove) for the dependents in Backgrid.Cell, and then use them directly >>>> from the different cell itself. >>>> Because - this functionality limits us to us only with the string type. >>>> >>>> Anyway - we will be using the dependent functionality for very >>>> attributes. >>>> >>>> >>>> You can extend them directly in the Node's model (schema). >>>> >>>> -- >>>> >>>> Thanks & Regards, >>>> >>>> Ashesh Vashi >>>> EnterpriseDB INDIA: Enterprise PostgreSQL Company >>>> <http://www.enterprisedb.com> >>>> >>>> >>>> *http://www.linkedin.com/in/asheshvashi* >>>> <http://www.linkedin.com/in/asheshvashi> >>>> >>>> On Wed, Mar 30, 2016 at 6:39 PM, Khushboo Vashi < >>>> khushboo.va...@enterprisedb.com> wrote: >>>> >>>>> Hi, >>>>> >>>>> Please find the attached patch for the Backgrid *StringDepsCell.* >>>>> >>>>> The *StringDepsCell* displays HTML escaped strings and accepts anything >>>>> typed in. >>>>> Also, Listen to the dependent fields. >>>>> >>>>> >>>>> Usage of the Backgrid Cell: >>>>> >>>>> If the Precision cell is dependent on the Datatype then: >>>>> >>>>> { >>>>> id: 'precision', label:'{{ _('Precision') }}', type: 'test' >>>>> cell: *Backgrid.Extension.StringDepsCell*, deps: ['datatype'] >>>>> >>>>> } >>>>> >>>>> >>>>> Thanks, >>>>> Khushboo >>>>> >>>>> >>>>> >>>>> -- >>>>> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) >>>>> To make changes to your subscription: >>>>> http://www.postgresql.org/mailpref/pgadmin-hackers >>>>> >>>>> >>>> >>> >> >
diff --git a/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js b/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js index 55ba7c0..d157999 100644 --- a/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js +++ b/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js @@ -22,6 +22,12 @@ factory(root, root._, (root.jQuery || root.Zepto || root.ender || root.$), root.Backbone, root.Backform); } } (this, function(root, _, $, Backbone, Backform, Alertify) { + /** + * It has already been loaded once. + **/ +// if (Backgrid.Extension.ObjectCellEditor) { +// return Backgrid; +// } /* * Add mechanism in backgrid to render different types of cells in @@ -802,6 +808,47 @@ }, }); + /** + * DependentCell functions can be used with the different cell type in order + * to setup the callback for the depedent attribute change in the model. + * + * Please implement the 'dependentChanged' as the callback in the used cell. + * + * @class Backgrid.Extension.DependentCell + **/ + var DependentCell = Backgrid.Extension.DependentCell = function() {}; + + _.extend( + DependentCell.prototype, { + initialize: function(){ + // Listen to the dependent fields in the model for any change + var deps = this.column.get('deps'); + var self = this; + + if (deps && _.isArray(deps)) { + _.each(deps, function(d) { + attrArr = d.split('.'); + name = attrArr.shift(); + self.listenTo(self.model, "change:" + name, self.dependentChanged); + }); + } + }, + remove: function() { + // Remove the events for the dependent fields in the model + var self = this, + deps = self.column.get('deps'); + + if (deps && _.isArray(deps)) { + _.each(deps, function(d) { + attrArr = d.split('.'); + name = attrArr.shift(); + + self.stopListening(self.model, "change:" + name, self.dependentChanged); + }); + } + } + }); + return Backgrid; }));
-- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers