diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py index 2665b62..98182fc 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/__init__.py @@ -668,7 +668,8 @@ AND relkind != 'c'))""" if not status: return internal_server_error(errormsg=res) - foid, scid = res['rows'][0] + foid = res['rows'][0]['oid'] + scid = res['rows'][0]['scid'] return jsonify( node=self.blueprint.generate_browser_node( @@ -718,7 +719,8 @@ AND relkind != 'c'))""" ) ) - name, basensp = res['rows'][0] + name = res['rows'][0]['name'] + basensp = res['rows'][0]['basensp'] SQL = render_template("/".join([self.template_path, 'delete.sql']), @@ -1103,13 +1105,6 @@ AND relkind != 'c'))""" if cols and 'rows' in cols: data['columns'] = cols['rows'] - data['strcolumn'] = '' - str_cols = [] - if 'columns' in data: - for c in data['columns']: - str_cols.append(c['strcolumn']) - data['strcolumn'] = ', '.join(str_cols) - # Get Inherited table names from their OID if inherits: if 'inherits' in data and data['inherits']: 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..230b6c2 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 @@ -241,22 +241,6 @@ function($, _, S, pgAdmin, pgBrowser, alertify) { toJSON: Backbone.Model.prototype.toJSON }); - var formatNode = function(opt) { - if (!opt.id) { - return opt.text; - } - - var optimage = $(opt.element).data('image'); - - if(!optimage){ - return opt.text; - } else { - return $( - '' + opt.text + '' - ); - } - }; - /* NodeAjaxOptionsMultipleControl is for multiple selection of Combobox. * This control is used to select Multiple Parent Tables to be inherited. @@ -264,83 +248,7 @@ function($, _, S, pgAdmin, pgBrowser, alertify) { * To populates the column, it calls the server and fetch the columns data * for the selected table. */ - - var NodeAjaxOptionsMultipleControl = Backform.NodeAjaxOptionsMultipleControl = Backform.NodeAjaxOptionsControl.extend({ - template: _.template([ - '', - '
', - ' ', - '
'].join("\n")), - defaults: _.extend( - {}, Backform.NodeAjaxOptionsControl.prototype.defaults, - { - select2: { - allowClear: true, - placeholder: 'Select from the list', - width: 'style', - templateResult: formatNode, - templateSelection: formatNode - } - }), - render: function() { - var field = _.defaults(this.field.toJSON(), this.defaults), - attributes = this.model.toJSON(), - attrArr = field.name.split('.'), - name = attrArr.shift(), - path = attrArr.join('.'), - rawValue = this.keyPathAccessor(attributes[name], path), - data = _.extend(field, { - rawValue: rawValue, - value: this.formatter.fromRaw(rawValue, this.model), - attributes: attributes, - formatter: this.formatter - }), - evalF = function(f, d, m) { - return (_.isFunction(f) ? !!f.apply(d, [m]) : !!f); - }; - - // Evaluate the disabled, visible, and required option - _.extend(data, { - disabled: evalF(data.disabled, data, this.model), - visible: evalF(data.visible, data, this.model), - required: evalF(data.required, data, this.model) - }); - - if (field.node_info.server.version < field.min_version) { - field.version_compatible = false - return this; - } - else { - // Evaluation the options - if (_.isFunction(data.options)) { - try { - data.options = data.options.apply(this) - } catch(e) { - // Do nothing - data.options = [] - this.model.trigger('pgadmin-view:transform:error', self.model, self.field, e); - } - } - - // Clean up first - this.$el.removeClass(Backform.hiddenClassname); - this.$el.html(this.template(data)).addClass(field.name); - - if (!data.visible) { - 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.updateInvalid(); - } - } - return this; - }, + var NodeAjaxOptionsMultipleControl = Backform.NodeAjaxOptionsControl.extend({ onChange: function(e) { var model = this.model, $el = $(e.target), @@ -370,7 +278,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); } @@ -600,7 +508,6 @@ function($, _, S, pgAdmin, pgBrowser, alertify) { basensp: undefined, description: undefined, ftsrvname: undefined, - strcolumn: undefined, strftoptions: undefined, inherits: [], columns: [], @@ -632,7 +539,7 @@ function($, _, S, pgAdmin, pgBrowser, alertify) { type: 'text', group: 'Definition', url: 'get_foreign_servers', disabled: function(m) { return !m.isNew(); } },{ id: 'inherits', label:'{{ _('Inherits') }}', group: 'Definition', - type: 'array', min_version: 90500, control: 'node-ajax-options-multiple', + type: 'array', min_version: 90500, control: NodeAjaxOptionsMultipleControl, url: 'get_tables', select2: {multiple: true}, 'cache_level': 'database', transform: function(d, self){ @@ -646,9 +553,6 @@ function($, _, S, pgAdmin, pgBrowser, alertify) { return d; } },{ - id: 'strcolumn', label:'{{ _('Columns') }}', cell: 'string', group: 'Definition', - type: 'text', min_version: 90500, mode: ['properties'] - },{ id: 'columns', label:'{{ _('Columns') }}', cell: 'string', type: 'collection', group: 'Columns', visible: false, mode: ['edit', 'create'], model: ColumnsModel, canAdd: true, canDelete: true, canEdit: true, diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.1_plus/get_columns.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.1_plus/get_columns.sql index 4bf5e17..0733a3c 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.1_plus/get_columns.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.1_plus/get_columns.sql @@ -1,13 +1,7 @@ SELECT attname, attndims, atttypmod, format_type(t.oid,NULL) AS datatype, format_type(t.oid, att.atttypmod) AS fulltype, attnotnull, attnum, - (SELECT COUNT(1) from pg_type t2 WHERE t2.typname=t.typname) > 1 AS isdup, - ( - attname || ' ' || format_type(t.oid, att.atttypmod) || ' ' || - (CASE WHEN attnotnull='true' - THEN 'NOT NULL' ELSE 'NULL' - END) - ) as strcolumn + (SELECT COUNT(1) from pg_type t2 WHERE t2.typname=t.typname) > 1 AS isdup FROM pg_attribute att JOIN diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.2_plus/get_columns.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.2_plus/get_columns.sql index 4270058..ab5ee75 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.2_plus/get_columns.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.2_plus/get_columns.sql @@ -4,25 +4,7 @@ SELECT CASE WHEN length(cn.nspname) > 0 AND length(cl.collname) > 0 THEN concat(cn.nspname, '."', cl.collname,'"') ELSE '' END AS collname, (SELECT COUNT(1) from pg_type t2 WHERE t2.typname=t.typname) > 1 AS isdup, - pg_catalog.pg_get_expr(def.adbin, def.adrelid) AS typdefault, - ( - attname || ' ' || format_type(t.oid, att.atttypmod) || ' ' || - ( - CASE WHEN array_length(attfdwoptions, 1)>0 - THEN concat('OPTIONS (', array_to_string(attfdwoptions, ', '), ')') ELSE '' - END - ) || ' ' || - ( - CASE WHEN attnotnull='true' - THEN 'NOT NULL' ELSE 'NULL' - END - ) || ' ' || - ( - CASE WHEN pg_catalog.pg_get_expr(def.adbin, def.adrelid)<>'' - THEN 'DEFAULT ' || pg_catalog.pg_get_expr(def.adbin, def.adrelid) - ELSE '' END - ) - ) as strcolumn + pg_catalog.pg_get_expr(def.adbin, def.adrelid) AS typdefault FROM pg_attribute att JOIN diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.5_plus/get_columns.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.5_plus/get_columns.sql index 64d6d13..3417208 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.5_plus/get_columns.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/sql/9.5_plus/get_columns.sql @@ -20,25 +20,6 @@ SELECT INH.inheritedfrom, INH.inheritedid, att.attoptions, attfdwoptions, concat(cn.nspname, '."', cl.collname,'"') ELSE '' END AS collname, pg_catalog.pg_get_expr(def.adbin, def.adrelid) AS typdefault, - ( - att.attname || ' ' || format_type(t.oid, att.atttypmod) || ' ' || - ( - CASE WHEN array_length(attfdwoptions, 1)>0 - THEN concat('OPTIONS (', array_to_string(attfdwoptions, ', '), ')') ELSE '' - END - ) || ' ' || - ( - CASE WHEN attnotnull='true' - THEN 'NOT NULL' ELSE 'NULL' - END - ) || ' ' || - ( - CASE WHEN pg_catalog.pg_get_expr(def.adbin, def.adrelid)<>'' - THEN 'DEFAULT ' || pg_catalog.pg_get_expr(def.adbin, def.adrelid) - ELSE '' END - ) - ) as strcolumn, - (SELECT COUNT(1) from pg_type t2 WHERE t2.typname=t.typname) > 1 AS isdup FROM pg_attribute att 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..38f9ce4 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 diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/templates/foreign_key/js/foreign_key.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/templates/foreign_key/js/foreign_key.js index 3ffa6ef..d7c947f 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/templates/foreign_key/js/foreign_key.js +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/templates/foreign_key/js/foreign_key.js @@ -21,6 +21,7 @@ function($, _, S, pgAdmin, pgBrowser, Alertify) { headerSelectControlTemplate = _.template([ '
', '