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

Reply via email to