mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2024-11-22 08:46:39 -06:00
Ensure that all the required options should be loaded when the Range data type
is selected while creating a custom data type. Fixes #6643
This commit is contained in:
parent
2452d90300
commit
2dd88e5a4e
@ -25,3 +25,4 @@ Bug fixes
|
|||||||
| `Issue #6580 <https://redmine.postgresql.org/issues/6580>`_ - Fixed TypeError 'NoneType' object is not sub scriptable.
|
| `Issue #6580 <https://redmine.postgresql.org/issues/6580>`_ - Fixed TypeError 'NoneType' object is not sub scriptable.
|
||||||
| `Issue #6586 <https://redmine.postgresql.org/issues/6586>`_ - Fixed incorrect tablespace options in the drop-down for move objects dialog.
|
| `Issue #6586 <https://redmine.postgresql.org/issues/6586>`_ - Fixed incorrect tablespace options in the drop-down for move objects dialog.
|
||||||
| `Issue #6619 <https://redmine.postgresql.org/issues/6619>`_ - Fixed incorrect binary path issue when the user deletes the binary path from the preferences.
|
| `Issue #6619 <https://redmine.postgresql.org/issues/6619>`_ - Fixed incorrect binary path issue when the user deletes the binary path from the preferences.
|
||||||
|
| `Issue #6643 <https://redmine.postgresql.org/issues/6643>`_ - Ensure that all the required options should be loaded when the Range data type is selected while creating a custom data type.
|
||||||
|
@ -579,18 +579,18 @@ define('pgadmin.node.type', [
|
|||||||
},{
|
},{
|
||||||
id: 'opcname', label: gettext('Subtype operator class'), cell: 'string',
|
id: 'opcname', label: gettext('Subtype operator class'), cell: 'string',
|
||||||
mode: ['properties', 'create', 'edit'], group: gettext('Range Type'),
|
mode: ['properties', 'create', 'edit'], group: gettext('Range Type'),
|
||||||
disabled: 'inSchema', readonly: 'inEditMode', deps: ['typname'],
|
disabled: 'inSchema', readonly: 'inEditMode', deps: ['typname'],
|
||||||
control: 'select', options: function() {
|
control: 'select2', options: function(control) {
|
||||||
var l_typname = this.model.get('typname'),
|
var l_typname = control.model.get('typname'),
|
||||||
self = this,
|
|
||||||
result = [];
|
result = [];
|
||||||
|
|
||||||
if(!_.isUndefined(l_typname) && l_typname != '')
|
if(!_.isUndefined(l_typname) && l_typname != '')
|
||||||
{
|
{
|
||||||
var node = this.field.get('schema_node'),
|
var node = control.field.get('schema_node'),
|
||||||
_url = node.generate_url.apply(
|
_url = node.generate_url.apply(
|
||||||
node, [
|
node, [
|
||||||
null, 'get_subopclass', this.field.get('node_data'), false,
|
null, 'get_subopclass', control.field.get('node_data'), false,
|
||||||
this.field.get('node_info'),
|
control.field.get('node_info'),
|
||||||
]);
|
]);
|
||||||
$.ajax({
|
$.ajax({
|
||||||
async: false,
|
async: false,
|
||||||
@ -602,7 +602,7 @@ define('pgadmin.node.type', [
|
|||||||
result = res.data;
|
result = res.data;
|
||||||
})
|
})
|
||||||
.fail(function() {
|
.fail(function() {
|
||||||
self.model.trigger('pgadmin:view:fetch:error', self.model, self.field);
|
control.model.trigger('pgadmin:view:fetch:error', control.model, control.field);
|
||||||
});
|
});
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
@ -640,6 +640,11 @@ define('pgadmin.node.type', [
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
// If is_collate is true then do not disable
|
// If is_collate is true then do not disable
|
||||||
|
if(!is_collate) {
|
||||||
|
m.set({'collname': '', silent: true});
|
||||||
|
this.options = [];
|
||||||
|
}
|
||||||
|
|
||||||
return is_collate ? false : true;
|
return is_collate ? false : true;
|
||||||
},
|
},
|
||||||
},{
|
},{
|
||||||
@ -647,18 +652,17 @@ define('pgadmin.node.type', [
|
|||||||
type: 'text', mode: ['properties', 'create', 'edit'],
|
type: 'text', mode: ['properties', 'create', 'edit'],
|
||||||
group: gettext('Range Type'),
|
group: gettext('Range Type'),
|
||||||
disabled: 'inSchema', readonly: 'inEditMode', deps: ['name', 'typname'],
|
disabled: 'inSchema', readonly: 'inEditMode', deps: ['name', 'typname'],
|
||||||
control: 'select', options: function() {
|
control: 'select2', options: function(control) {
|
||||||
var name = this.model.get('name'),
|
var name = control.model.get('name'),
|
||||||
self = this,
|
|
||||||
result = [];
|
result = [];
|
||||||
|
|
||||||
if(!_.isUndefined(name) && name != '')
|
if(!_.isUndefined(name) && name != '')
|
||||||
{
|
{
|
||||||
var node = this.field.get('schema_node'),
|
var node = control.field.get('schema_node'),
|
||||||
_url = node.generate_url.apply(
|
_url = node.generate_url.apply(
|
||||||
node, [
|
node, [
|
||||||
null, 'get_canonical', this.field.get('node_data'), false,
|
null, 'get_canonical', control.field.get('node_data'), false,
|
||||||
this.field.get('node_info'),
|
control.field.get('node_info'),
|
||||||
]);
|
]);
|
||||||
$.ajax({
|
$.ajax({
|
||||||
async: false,
|
async: false,
|
||||||
@ -670,8 +674,7 @@ define('pgadmin.node.type', [
|
|||||||
result = res.data;
|
result = res.data;
|
||||||
})
|
})
|
||||||
.fail(function() {
|
.fail(function() {
|
||||||
self.model.trigger('pgadmin:view:fetch:error',
|
control.model.trigger('pgadmin:view:fetch:error', control.model, control.field);
|
||||||
self.model, self.field);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@ -680,21 +683,22 @@ define('pgadmin.node.type', [
|
|||||||
id: 'rngsubdiff', label: gettext('Subtype diff function'), cell: 'string',
|
id: 'rngsubdiff', label: gettext('Subtype diff function'), cell: 'string',
|
||||||
type: 'text', mode: ['properties', 'create', 'edit'],
|
type: 'text', mode: ['properties', 'create', 'edit'],
|
||||||
group: gettext('Range Type'),
|
group: gettext('Range Type'),
|
||||||
disabled: 'inSchema', readonly: 'inEditMode', deps: ['opcname'],
|
disabled: 'inSchema', readonly: 'inEditMode', deps: ['typname', 'opcname'],
|
||||||
control: 'select', options: function() {
|
control: 'select2', options: function(control) {
|
||||||
var l_typname = this.model.get('typname'),
|
var l_typname = control.model.get('typname'),
|
||||||
l_opcname = this.model.get('opcname'),
|
l_opcname = control.model.get('opcname'),
|
||||||
self = this,
|
|
||||||
result = [];
|
result = [];
|
||||||
|
this.options = [];
|
||||||
|
control.model.set({'rngsubdiff': [], silent: true});
|
||||||
|
|
||||||
if(!_.isUndefined(l_typname) && l_typname != '' &&
|
if(!_.isUndefined(l_typname) && l_typname != '' &&
|
||||||
!_.isUndefined(l_opcname) && l_opcname != '') {
|
!_.isUndefined(l_opcname) && l_opcname != '') {
|
||||||
var node = this.field.get('schema_node'),
|
var node = control.field.get('schema_node'),
|
||||||
_url = node.generate_url.apply(
|
_url = node.generate_url.apply(
|
||||||
node, [
|
node, [
|
||||||
null, 'get_stypediff',
|
null, 'get_stypediff',
|
||||||
this.field.get('node_data'), false,
|
control.field.get('node_data'), false,
|
||||||
this.field.get('node_info'),
|
control.field.get('node_info'),
|
||||||
]);
|
]);
|
||||||
$.ajax({
|
$.ajax({
|
||||||
async: false,
|
async: false,
|
||||||
@ -706,8 +710,7 @@ define('pgadmin.node.type', [
|
|||||||
result = res.data;
|
result = res.data;
|
||||||
})
|
})
|
||||||
.fail(function() {
|
.fail(function() {
|
||||||
self.model.trigger('pgadmin:view:fetch:error',
|
control.model.trigger('pgadmin:view:fetch:error', control.model, control.field);
|
||||||
self.model, self.field);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
@ -29,11 +29,16 @@ SELECT rngsubtype, st.typname,
|
|||||||
rngcollation,
|
rngcollation,
|
||||||
CASE WHEN n.nspname IS NOT NULL THEN pg_catalog.concat(pg_catalog.quote_ident(n.nspname), '.', pg_catalog.quote_ident(col.collname)) ELSE col.collname END AS collname,
|
CASE WHEN n.nspname IS NOT NULL THEN pg_catalog.concat(pg_catalog.quote_ident(n.nspname), '.', pg_catalog.quote_ident(col.collname)) ELSE col.collname END AS collname,
|
||||||
rngsubopc, opc.opcname,
|
rngsubopc, opc.opcname,
|
||||||
rngcanonical, rngsubdiff
|
rngcanonical, rngsubdiff as rngsubdiff_proc,
|
||||||
|
CASE WHEN length(ns.nspname::text) > 0 AND length(pgpr.proname::text) > 0 THEN
|
||||||
|
pg_catalog.concat(quote_ident(ns.nspname), '.', pg_catalog.quote_ident(pgpr.proname))
|
||||||
|
ELSE '' END AS rngsubdiff
|
||||||
FROM pg_catalog.pg_range
|
FROM pg_catalog.pg_range
|
||||||
LEFT JOIN pg_catalog.pg_type st ON st.oid=rngsubtype
|
LEFT JOIN pg_catalog.pg_type st ON st.oid=rngsubtype
|
||||||
LEFT JOIN pg_catalog.pg_collation col ON col.oid=rngcollation
|
LEFT JOIN pg_catalog.pg_collation col ON col.oid=rngcollation
|
||||||
LEFT JOIN pg_catalog.pg_namespace n ON col.collnamespace=n.oid
|
LEFT JOIN pg_catalog.pg_namespace n ON col.collnamespace=n.oid
|
||||||
LEFT JOIN pg_catalog.pg_opclass opc ON opc.oid=rngsubopc
|
LEFT JOIN pg_catalog.pg_opclass opc ON opc.oid=rngsubopc
|
||||||
|
LEFT JOIN pg_catalog.pg_proc pgpr ON pgpr.oid = rngsubdiff
|
||||||
|
LEFT JOIN pg_catalog.pg_namespace ns ON ns.oid=pgpr.pronamespace
|
||||||
WHERE rngtypid={{tid}}::oid;
|
WHERE rngtypid={{tid}}::oid;
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
Loading…
Reference in New Issue
Block a user