Hi,
Please find the attached re-based patch.
Thanks,
Khushboo
On Wed, Apr 6, 2016 at 2:38 PM, Ashesh Vashi <[email protected]>
wrote:
> Hi Khushboo,
>
>
> On Tue, Apr 5, 2016 at 10:59 AM, Khushboo Vashi <
> [email protected]> 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 <
>> [email protected]> 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 <
>>> [email protected]> 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 <
>>>> [email protected]> 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 ([email protected])
>>>>> 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 ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers