public inbox for [email protected]  
help / color / mirror / Atom feed
From: Harshal Dhumal <[email protected]>
To: pgadmin-hackers <[email protected]>
Subject: patch for issue RM1260 [pgAdmin4]
Date: Wed, 6 Jul 2016 17:30:22 +0530
Message-ID: <CAFiP3vzHR2j6y-8FP5fQFpJD3XNbyOVb=rbRzBwtKzPnv4nJhQ@mail.gmail.com> (raw)
List-Unsubscribe:  <mailto:[email protected]?body=unsub%20pgadmin-hackers>

Hi,

PFA patch for issue RM1260.

Changes: Issue wasn't related to foreign table but was due the Select2
control. Now I have improved select2 control to handle null value in
multi-select mode. Initial it was returning "null" instead it should return
[] (empty array).


-- 
*Harshal Dhumal*
*Software Engineer*

EnterpriseDB India: 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:

  [text/x-patch] RM1260.patch (4.2K, 3-RM1260.patch)
  download | inline diff:
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/js/foreign_tables.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/js/foreign_tables.js
index a4b5a27..26418a6 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/js/foreign_tables.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/js/foreign_tables.js
@@ -266,12 +266,6 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
   */
 
   var NodeAjaxOptionsMultipleControl = Backform.NodeAjaxOptionsMultipleControl = Backform.NodeAjaxOptionsControl.extend({
-    template: _.template([
-      '<label class="<%=Backform.controlLabelClassName%>"><%=label%></label>',
-      '<div class="<%=Backform.controlsClassName%> <%=extraClasses.join(\' \')%>">',
-      '  <select class="pgadmin-node-select form-control" name="<%=name%>" style="width:100%;" value=<%-value%> <%=disabled ? "disabled" : ""%> <%=required ? "required" : ""%> >',
-      '  </select>',
-      '</div>'].join("\n")),
     defaults: _.extend(
       {}, Backform.NodeAjaxOptionsControl.prototype.defaults,
       {
@@ -331,11 +325,7 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
         this.$el.addClass(Backform.hiddenClassname);
         } else {
         var opts = _.extend(
-          {}, this.defaults.select2, data.select2,
-          {
-            'data': data.options
-          });
-        this.$el.find("select").select2(opts).val(data.rawValue).trigger("change");
+          {}, this.defaults.select2, data.select2);
         this.updateInvalid();
         }
       }
@@ -370,7 +360,7 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
 
       // Remove Columns if inherit option is deselected from the combobox
       if(_.size(value) < _.size(inherits)) {
-        var dif =  _.difference(inherits, JSON.parse(value));
+        var dif =  _.difference(inherits, value);
         var rmv_columns = columns.where({inheritedid: parseInt(dif[0])});
         columns.remove(rmv_columns);
       }
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.5_plus/get_tables.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.5_plus/get_tables.sql
index 83445a2..1bb501e 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.5_plus/get_tables.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.5_plus/get_tables.sql
@@ -9,7 +9,7 @@ WHERE
 
 {% else %}
 SELECT
-    c.oid AS id, quote_ident(n.nspname) || '.' || quote_ident(c.relname) as text
+    c.oid AS value, quote_ident(n.nspname) || '.' || quote_ident(c.relname) as label
 FROM
     pg_class c, pg_namespace n
 WHERE
@@ -19,4 +19,4 @@ WHERE
 {% endif %}
 ORDER BY
     n.nspname, c.relname;
-{% endif %}
+{% endif %}
\ No newline at end of file
diff --git a/web/pgadmin/static/js/backform.pgadmin.js b/web/pgadmin/static/js/backform.pgadmin.js
index 973b60b..fb6c51f 100644
--- a/web/pgadmin/static/js/backform.pgadmin.js
+++ b/web/pgadmin/static/js/backform.pgadmin.js
@@ -1793,7 +1793,11 @@
       if (_.isArray(formattedData)) {
         return _.map(formattedData, decodeURIComponent);
       } else {
-        return decodeURIComponent(formattedData);
+        if(!_.isNull(formattedData) && !_.isUndefined(formattedData)) {
+          return decodeURIComponent(formattedData);
+        } else {
+          return null;
+        }
       }
     }
   });
@@ -1904,9 +1908,15 @@
       return this;
     },
     getValueFromDOM: function() {
-      return Backform.SelectControl.prototype.getValueFromDOM.apply(
-        this, arguments
-      );
+      var val = Backform.SelectControl.prototype.getValueFromDOM.apply(
+                  this, arguments
+                ),
+        select2Opts = _.extend({}, this.field.get("select2") || this.defaults.select2);
+
+      if (select2Opts.multiple && val == null) {
+        return [];
+      }
+      return val;
     }
   });
 


view thread (13+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected]
  Subject: Re: patch for issue RM1260 [pgAdmin4]
  In-Reply-To: <CAFiP3vzHR2j6y-8FP5fQFpJD3XNbyOVb=rbRzBwtKzPnv4nJhQ@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

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