mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Fixed SonarQube issues.
This commit is contained in:
@@ -21,6 +21,7 @@ Housekeeping
|
|||||||
|
|
||||||
| `Issue #6133 <https://redmine.postgresql.org/issues/6133>`_ - Port schema diff to React.
|
| `Issue #6133 <https://redmine.postgresql.org/issues/6133>`_ - Port schema diff to React.
|
||||||
| `Issue #7343 <https://redmine.postgresql.org/issues/7343>`_ - Port the remaining components of the ERD Tool to React.
|
| `Issue #7343 <https://redmine.postgresql.org/issues/7343>`_ - Port the remaining components of the ERD Tool to React.
|
||||||
|
| `Issue #7619 <https://redmine.postgresql.org/issues/7619>`_ - Remove Alertify from pgAdmin completely.
|
||||||
| `Issue #7622 <https://redmine.postgresql.org/issues/7622>`_ - Port search object dialog to React.
|
| `Issue #7622 <https://redmine.postgresql.org/issues/7622>`_ - Port search object dialog to React.
|
||||||
|
|
||||||
Bug fixes
|
Bug fixes
|
||||||
|
|||||||
@@ -335,7 +335,7 @@ const toggleFullScreen = () => {
|
|||||||
pgAdminWindowObject.toggleFullscreen();
|
pgAdminWindowObject.toggleFullscreen();
|
||||||
|
|
||||||
// Change the menu label.
|
// Change the menu label.
|
||||||
var menu_label = pgAdminWindowObject.window.document.querySelector('#mnu_toggle_fullscreen_runtime span').innerHTML;
|
let menu_label = pgAdminWindowObject.window.document.querySelector('#mnu_toggle_fullscreen_runtime span').innerHTML;
|
||||||
if (menu_label.indexOf('Enter Full Screen') >= 0) {
|
if (menu_label.indexOf('Enter Full Screen') >= 0) {
|
||||||
pgAdminWindowObject.window.document.querySelector('#mnu_toggle_fullscreen_runtime span').innerHTML = menu_label.replace('Enter', 'Exit');
|
pgAdminWindowObject.window.document.querySelector('#mnu_toggle_fullscreen_runtime span').innerHTML = menu_label.replace('Enter', 'Exit');
|
||||||
} else if (menu_label.indexOf('Exit Full Screen') >= 0) {
|
} else if (menu_label.indexOf('Exit Full Screen') >= 0) {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
//
|
//
|
||||||
//////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
var mfa_form_elem = document.getElementById('mfa_form');
|
let mfa_form_elem = document.getElementById('mfa_form');
|
||||||
|
|
||||||
if (mfa_form_elem)
|
if (mfa_form_elem)
|
||||||
mfa_form_elem.setAttribute('class', '');
|
mfa_form_elem.setAttribute('class', '');
|
||||||
@@ -16,7 +16,7 @@ function sendCodeToEmail(data, _json, _callback) {
|
|||||||
const URL = '{{ url_for('mfa.send_email_code') }}';
|
const URL = '{{ url_for('mfa.send_email_code') }}';
|
||||||
let accept = 'text/html; charset=utf-8;';
|
let accept = 'text/html; charset=utf-8;';
|
||||||
|
|
||||||
var btn_send_code_elem = document.getElementById('btn_send_code');
|
let btn_send_code_elem = document.getElementById('btn_send_code');
|
||||||
if (btn_send_code_elem) btn_send_code_elem.disabled = true;
|
if (btn_send_code_elem) btn_send_code_elem.disabled = true;
|
||||||
|
|
||||||
if (!data) {
|
if (!data) {
|
||||||
@@ -46,7 +46,7 @@ function sendCodeToEmail(data, _json, _callback) {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (!resp.ok) {
|
if (!resp.ok) {
|
||||||
var btn_send_code_elem = document.getElementById('btn_send_code');
|
let btn_send_code_elem = document.getElementById('btn_send_code');
|
||||||
if (btn_send_code_elem) btn_send_code_elem.disabled = true;
|
if (btn_send_code_elem) btn_send_code_elem.disabled = true;
|
||||||
resp.text().then(msg => render_error(msg));
|
resp.text().then(msg => render_error(msg));
|
||||||
|
|
||||||
|
|||||||
@@ -76,12 +76,12 @@ define('pgadmin.node.cast', [
|
|||||||
return new Promise((resolve, reject)=>{
|
return new Promise((resolve, reject)=>{
|
||||||
const api = getApiInstance();
|
const api = getApiInstance();
|
||||||
|
|
||||||
var _url = pgBrowser.Nodes['cast'].generate_url.apply(
|
let _url = pgBrowser.Nodes['cast'].generate_url.apply(
|
||||||
pgBrowser.Nodes['cast'], [
|
pgBrowser.Nodes['cast'], [
|
||||||
null, 'get_functions', itemNodeData, false,
|
null, 'get_functions', itemNodeData, false,
|
||||||
treeNodeInfo,
|
treeNodeInfo,
|
||||||
]);
|
]);
|
||||||
var data = {'srctyp' : srcTyp, 'trgtyp' : trgtyp};
|
let data = {'srctyp' : srcTyp, 'trgtyp' : trgtyp};
|
||||||
|
|
||||||
if(srcTyp != undefined && srcTyp != '' &&
|
if(srcTyp != undefined && srcTyp != '' &&
|
||||||
trgtyp != undefined && trgtyp != ''){
|
trgtyp != undefined && trgtyp != ''){
|
||||||
|
|||||||
@@ -30,8 +30,8 @@ export default class CastSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getCastName(state) {
|
getCastName(state) {
|
||||||
var srctype = state.srctyp;
|
let srctype = state.srctyp;
|
||||||
var trgtype = state.trgtyp;
|
let trgtype = state.trgtyp;
|
||||||
if(srctype != undefined && srctype != '' &&
|
if(srctype != undefined && srctype != '' &&
|
||||||
trgtype != undefined && trgtype != '')
|
trgtype != undefined && trgtype != '')
|
||||||
return state.name = srctype+'->'+trgtype;
|
return state.name = srctype+'->'+trgtype;
|
||||||
|
|||||||
@@ -96,10 +96,10 @@ define('pgadmin.node.user_mapping', [
|
|||||||
|
|
||||||
// Default values!
|
// Default values!
|
||||||
initialize: function(attrs, args) {
|
initialize: function(attrs, args) {
|
||||||
var isNew = (_.size(attrs) === 0);
|
let isNew = (_.size(attrs) === 0);
|
||||||
|
|
||||||
if (isNew) {
|
if (isNew) {
|
||||||
var userInfo = pgBrowser.serverInfo[args.node_info.server._id].user;
|
let userInfo = pgBrowser.serverInfo[args.node_info.server._id].user;
|
||||||
|
|
||||||
this.set({'name': userInfo.name}, {silent: true});
|
this.set({'name': userInfo.name}, {silent: true});
|
||||||
}
|
}
|
||||||
@@ -114,9 +114,9 @@ define('pgadmin.node.user_mapping', [
|
|||||||
mode: ['edit', 'create', 'properties'], select2: { allowClear: false },
|
mode: ['edit', 'create', 'properties'], select2: { allowClear: false },
|
||||||
disabled: function(m) { return !m.isNew(); },
|
disabled: function(m) { return !m.isNew(); },
|
||||||
transform: function() {
|
transform: function() {
|
||||||
var self = this,
|
let self = this,
|
||||||
node = self.field.get('schema_node');
|
node = self.field.get('schema_node');
|
||||||
var res =
|
let res =
|
||||||
Backform.NodeListByNameControl.prototype.defaults.transform.apply(
|
Backform.NodeListByNameControl.prototype.defaults.transform.apply(
|
||||||
this, arguments
|
this, arguments
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ export default class PublicationSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
isAllTable(state) {
|
isAllTable(state) {
|
||||||
var allTable = state.all_table;
|
let allTable = state.all_table;
|
||||||
if(allTable){
|
if(allTable){
|
||||||
state.pubtable = '';
|
state.pubtable = '';
|
||||||
return true;
|
return true;
|
||||||
@@ -92,7 +92,7 @@ export default class PublicationSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
isTable(state) {
|
isTable(state) {
|
||||||
var allTable = state.all_table,
|
let allTable = state.all_table,
|
||||||
table = state.pubtable;
|
table = state.pubtable;
|
||||||
if(allTable){
|
if(allTable){
|
||||||
state.only_table = false;
|
state.only_table = false;
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ export default class DomainSchema extends BaseUISchema {
|
|||||||
readonly: function(state) {return !obj.isNew(state);},
|
readonly: function(state) {return !obj.isNew(state);},
|
||||||
disabled: function(state) {
|
disabled: function(state) {
|
||||||
// We will store type from selected from combobox
|
// We will store type from selected from combobox
|
||||||
var of_type = state.basetype;
|
let of_type = state.basetype;
|
||||||
if(obj.type_options) {
|
if(obj.type_options) {
|
||||||
// iterating over all the types
|
// iterating over all the types
|
||||||
_.each(obj.type_options, function(o) {
|
_.each(obj.type_options, function(o) {
|
||||||
@@ -167,7 +167,7 @@ export default class DomainSchema extends BaseUISchema {
|
|||||||
readonly: function(state) {return !obj.isNew(state);},
|
readonly: function(state) {return !obj.isNew(state);},
|
||||||
disabled: function(state) {
|
disabled: function(state) {
|
||||||
// We will store type from selected from combobox
|
// We will store type from selected from combobox
|
||||||
var of_type = state.basetype;
|
let of_type = state.basetype;
|
||||||
if(obj.type_options) {
|
if(obj.type_options) {
|
||||||
// iterating over all the types
|
// iterating over all the types
|
||||||
_.each(obj.type_options, function(o) {
|
_.each(obj.type_options, function(o) {
|
||||||
|
|||||||
@@ -637,10 +637,6 @@ class ForeignTableView(PGChildNodeView, DataTypeReader,
|
|||||||
|
|
||||||
except Exception:
|
except Exception:
|
||||||
exc_type, exc_value, exc_traceback = sys.exc_info()
|
exc_type, exc_value, exc_traceback = sys.exc_info()
|
||||||
current_app.logger.error(
|
|
||||||
traceback.print_exception(exc_type,
|
|
||||||
exc_value, exc_traceback, limit=2))
|
|
||||||
|
|
||||||
return internal_server_error(errormsg=str(exc_value))
|
return internal_server_error(errormsg=str(exc_value))
|
||||||
|
|
||||||
@check_precondition
|
@check_precondition
|
||||||
@@ -680,14 +676,6 @@ class ForeignTableView(PGChildNodeView, DataTypeReader,
|
|||||||
)
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
exc_type, exc_value, exc_traceback = sys.exc_info()
|
exc_type, exc_value, exc_traceback = sys.exc_info()
|
||||||
current_app.logger.error(traceback.print_exception(
|
|
||||||
exc_type,
|
|
||||||
exc_value,
|
|
||||||
exc_traceback,
|
|
||||||
limit=2
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
return internal_server_error(errormsg=str(exc_value))
|
return internal_server_error(errormsg=str(exc_value))
|
||||||
|
|
||||||
@check_precondition
|
@check_precondition
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ export default class ForeignTableSchema extends BaseUISchema {
|
|||||||
let newColInherits = state.inherits || [];
|
let newColInherits = state.inherits || [];
|
||||||
let oldColInherits = actionObj.oldState.inherits || [];
|
let oldColInherits = actionObj.oldState.inherits || [];
|
||||||
|
|
||||||
var tabName = undefined;
|
let tabName = undefined;
|
||||||
let tabColsResponse;
|
let tabColsResponse;
|
||||||
|
|
||||||
// Add columns logic
|
// Add columns logic
|
||||||
@@ -328,7 +328,7 @@ export class ColumnSchema extends BaseUISchema {
|
|||||||
id: 'typlen', label: gettext('Length'), cell: 'int',
|
id: 'typlen', label: gettext('Length'), cell: 'int',
|
||||||
deps: ['datatype'], type: 'int', group: gettext('Definition'), width: 120, minWidth: 120,
|
deps: ['datatype'], type: 'int', group: gettext('Definition'), width: 120, minWidth: 120,
|
||||||
disabled: (state) => {
|
disabled: (state) => {
|
||||||
var val = state.typlen;
|
let val = state.typlen;
|
||||||
// We will store type from selected from combobox
|
// We will store type from selected from combobox
|
||||||
if(!(_.isUndefined(state.inheritedid)
|
if(!(_.isUndefined(state.inheritedid)
|
||||||
|| _.isNull(state.inheritedid)
|
|| _.isNull(state.inheritedid)
|
||||||
@@ -341,7 +341,7 @@ export class ColumnSchema extends BaseUISchema {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var of_type = state.datatype,
|
let of_type = state.datatype,
|
||||||
has_length = false;
|
has_length = false;
|
||||||
if(obj.type_options) {
|
if(obj.type_options) {
|
||||||
state.is_tlength = false;
|
state.is_tlength = false;
|
||||||
@@ -378,7 +378,7 @@ export class ColumnSchema extends BaseUISchema {
|
|||||||
id: 'precision', label: gettext('Precision'), cell: 'int', minWidth: 60,
|
id: 'precision', label: gettext('Precision'), cell: 'int', minWidth: 60,
|
||||||
deps: ['datatype'], type: 'int', group: gettext('Definition'),
|
deps: ['datatype'], type: 'int', group: gettext('Definition'),
|
||||||
disabled: (state) => {
|
disabled: (state) => {
|
||||||
var val = state.precision;
|
let val = state.precision;
|
||||||
if(!(_.isUndefined(state.inheritedid)
|
if(!(_.isUndefined(state.inheritedid)
|
||||||
|| _.isNull(state.inheritedid)
|
|| _.isNull(state.inheritedid)
|
||||||
|| _.isUndefined(state.inheritedfrom)
|
|| _.isUndefined(state.inheritedfrom)
|
||||||
@@ -390,7 +390,7 @@ export class ColumnSchema extends BaseUISchema {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var of_type = state.datatype,
|
let of_type = state.datatype,
|
||||||
has_precision = false;
|
has_precision = false;
|
||||||
|
|
||||||
if(obj.type_options) {
|
if(obj.type_options) {
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ export default class FTSConfigurationSchema extends BaseUISchema {
|
|||||||
options: this.fieldOptions.parsers,
|
options: this.fieldOptions.parsers,
|
||||||
//disable parser when user select copy_config manually and vica-versa
|
//disable parser when user select copy_config manually and vica-versa
|
||||||
disabled: function(state) {
|
disabled: function(state) {
|
||||||
var copy_config = state.copy_config;
|
let copy_config = state.copy_config;
|
||||||
return (_.isNull(copy_config) ||
|
return (_.isNull(copy_config) ||
|
||||||
_.isUndefined(copy_config) ||
|
_.isUndefined(copy_config) ||
|
||||||
copy_config === '') ? false : true;
|
copy_config === '') ? false : true;
|
||||||
@@ -144,7 +144,7 @@ export default class FTSConfigurationSchema extends BaseUISchema {
|
|||||||
options: this.fieldOptions.copyConfig,
|
options: this.fieldOptions.copyConfig,
|
||||||
//disable copy_config when user select parser manually and vica-versa
|
//disable copy_config when user select parser manually and vica-versa
|
||||||
disabled: function(state) {
|
disabled: function(state) {
|
||||||
var parser = state.prsname;
|
let parser = state.prsname;
|
||||||
return (_.isNull(parser) ||
|
return (_.isNull(parser) ||
|
||||||
_.isUndefined(parser) ||
|
_.isUndefined(parser) ||
|
||||||
parser === '') ? false : true;
|
parser === '') ? false : true;
|
||||||
|
|||||||
@@ -786,14 +786,6 @@ class FunctionView(PGChildNodeView, DataTypeReader, SchemaDiffObjectCompare):
|
|||||||
)
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
exc_type, exc_value, exc_traceback = sys.exc_info()
|
exc_type, exc_value, exc_traceback = sys.exc_info()
|
||||||
current_app.logger.error(traceback.print_exception(
|
|
||||||
exc_type,
|
|
||||||
exc_value,
|
|
||||||
exc_traceback,
|
|
||||||
limit=2
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
return internal_server_error(errormsg=str(exc_value))
|
return internal_server_error(errormsg=str(exc_value))
|
||||||
|
|
||||||
@check_precondition
|
@check_precondition
|
||||||
|
|||||||
@@ -71,14 +71,14 @@ export class DefaultArgumentSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
isEditable() {
|
isEditable() {
|
||||||
var node_info = this.node_info;
|
let node_info = this.node_info;
|
||||||
if(node_info && 'catalog' in node_info) {
|
if(node_info && 'catalog' in node_info) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return _.isUndefined(this.isNew) ? true : this.isNew();
|
return _.isUndefined(this.isNew) ? true : this.isNew();
|
||||||
}
|
}
|
||||||
isInCatalog(state){
|
isInCatalog(state){
|
||||||
var node_info = this.node_info;
|
let node_info = this.node_info;
|
||||||
if(node_info && 'catalog' in node_info) {
|
if(node_info && 'catalog' in node_info) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ define('pgadmin.node.procedure', [
|
|||||||
]);
|
]);
|
||||||
},
|
},
|
||||||
canCreateProc: function(itemData, item) {
|
canCreateProc: function(itemData, item) {
|
||||||
var node_hierarchy = pgBrowser.tree.getTreeNodeHierarchy(item);
|
let node_hierarchy = pgBrowser.tree.getTreeNodeHierarchy(item);
|
||||||
|
|
||||||
// Do not provide Create option in catalog
|
// Do not provide Create option in catalog
|
||||||
if ('catalog' in node_hierarchy)
|
if ('catalog' in node_hierarchy)
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ define('pgadmin.node.package', [
|
|||||||
if (data && data.check == false)
|
if (data && data.check == false)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
var treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
let treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
||||||
server = treeData['server'];
|
server = treeData['server'];
|
||||||
|
|
||||||
if (server && server.server_type === 'pg')
|
if (server && server.server_type === 'pg')
|
||||||
@@ -92,7 +92,7 @@ define('pgadmin.node.package', [
|
|||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
getSchema: (treeNodeInfo, itemNodeData) => {
|
getSchema: (treeNodeInfo, itemNodeData) => {
|
||||||
var nodeObj = pgBrowser.Nodes['package'];
|
let nodeObj = pgBrowser.Nodes['package'];
|
||||||
return new PackageSchema(
|
return new PackageSchema(
|
||||||
(privileges)=>getNodePrivilegeRoleSchema(nodeObj, treeNodeInfo, itemNodeData, privileges),
|
(privileges)=>getNodePrivilegeRoleSchema(nodeObj, treeNodeInfo, itemNodeData, privileges),
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -241,7 +241,7 @@ export default class SequenceSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var min_lt = gettext('Minimum value must be less than maximum value.'),
|
let min_lt = gettext('Minimum value must be less than maximum value.'),
|
||||||
start_lt = gettext('Start value cannot be less than minimum value.'),
|
start_lt = gettext('Start value cannot be less than minimum value.'),
|
||||||
start_gt = gettext('Start value cannot be greater than maximum value.');
|
start_gt = gettext('Start value cannot be greater than maximum value.');
|
||||||
|
|
||||||
|
|||||||
@@ -26,12 +26,12 @@ define('pgadmin.node.schema', [
|
|||||||
|
|
||||||
initialize: function() {
|
initialize: function() {
|
||||||
Backform.Control.prototype.initialize.apply(this, arguments);
|
Backform.Control.prototype.initialize.apply(this, arguments);
|
||||||
var self = this,
|
let self = this,
|
||||||
m = this.model,
|
m = this.model,
|
||||||
url = self.field.get('url');
|
url = self.field.get('url');
|
||||||
|
|
||||||
if (url && m.isNew()) {
|
if (url && m.isNew()) {
|
||||||
var node = self.field.get('node'),
|
let node = self.field.get('node'),
|
||||||
node_data = self.field.get('node_data'),
|
node_data = self.field.get('node_data'),
|
||||||
node_info = self.field.get('node_info'),
|
node_info = self.field.get('node_info'),
|
||||||
full_url = node.generate_url.apply(
|
full_url = node.generate_url.apply(
|
||||||
@@ -79,7 +79,7 @@ define('pgadmin.node.schema', [
|
|||||||
},
|
},
|
||||||
|
|
||||||
render: function() {
|
render: function() {
|
||||||
var self = this,
|
let self = this,
|
||||||
attributes = self.field.attributes;
|
attributes = self.field.attributes;
|
||||||
|
|
||||||
// remove grid
|
// remove grid
|
||||||
@@ -91,7 +91,7 @@ define('pgadmin.node.schema', [
|
|||||||
|
|
||||||
self.$el.empty();
|
self.$el.empty();
|
||||||
|
|
||||||
var gridHeader = _.template([
|
let gridHeader = _.template([
|
||||||
'<div class="subnode-header">',
|
'<div class="subnode-header">',
|
||||||
'<% if (label && label != "") %> {',
|
'<% if (label && label != "") %> {',
|
||||||
' <span class="control-label col-sm-4"><%-label%></span>',
|
' <span class="control-label col-sm-4"><%-label%></span>',
|
||||||
@@ -102,7 +102,7 @@ define('pgadmin.node.schema', [
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Initialize a new Grid instance
|
// Initialize a new Grid instance
|
||||||
var grid = self.grid = new Backgrid.Grid({
|
let grid = self.grid = new Backgrid.Grid({
|
||||||
columns: self.grid_columns,
|
columns: self.grid_columns,
|
||||||
collection: self.model.get(self.field.get('name')),
|
collection: self.model.get(self.field.get('name')),
|
||||||
className: 'backgrid table table-bordered table-noouter-border table-hover',
|
className: 'backgrid table table-bordered table-noouter-border table-hover',
|
||||||
@@ -119,7 +119,7 @@ define('pgadmin.node.schema', [
|
|||||||
// We will use this function in VacuumSettings Control
|
// We will use this function in VacuumSettings Control
|
||||||
// to convert data type on the fly
|
// to convert data type on the fly
|
||||||
Backform.cellFunction = function(model) {
|
Backform.cellFunction = function(model) {
|
||||||
var vartype = model.get('column_type');
|
let vartype = model.get('column_type');
|
||||||
|
|
||||||
switch(vartype) {
|
switch(vartype) {
|
||||||
case 'integer':
|
case 'integer':
|
||||||
@@ -146,7 +146,7 @@ define('pgadmin.node.schema', [
|
|||||||
},
|
},
|
||||||
|
|
||||||
toJSON: function(){
|
toJSON: function(){
|
||||||
var d = pgBrowser.Node.Model.prototype.toJSON.apply(this);
|
let d = pgBrowser.Node.Model.prototype.toJSON.apply(this);
|
||||||
delete d.label;
|
delete d.label;
|
||||||
delete d.setting;
|
delete d.setting;
|
||||||
delete d.column_type;
|
delete d.column_type;
|
||||||
@@ -363,7 +363,7 @@ define('pgadmin.node.schema', [
|
|||||||
return pgBrowser.Nodes['database'].is_conn_allow.call(this, node);
|
return pgBrowser.Nodes['database'].is_conn_allow.call(this, node);
|
||||||
},
|
},
|
||||||
getSchema: function(treeNodeInfo, itemNodeData) {
|
getSchema: function(treeNodeInfo, itemNodeData) {
|
||||||
var schemaObj = pgBrowser.Nodes['schema'];
|
let schemaObj = pgBrowser.Nodes['schema'];
|
||||||
return new PGSchema(
|
return new PGSchema(
|
||||||
(privileges)=>getNodePrivilegeRoleSchema(schemaObj, treeNodeInfo, itemNodeData, privileges),
|
(privileges)=>getNodePrivilegeRoleSchema(schemaObj, treeNodeInfo, itemNodeData, privileges),
|
||||||
{
|
{
|
||||||
@@ -393,7 +393,7 @@ define('pgadmin.node.schema', [
|
|||||||
Backgrid.Extension.DependentCell.prototype.initialize.apply(this, arguments);
|
Backgrid.Extension.DependentCell.prototype.initialize.apply(this, arguments);
|
||||||
},
|
},
|
||||||
dependentChanged: function () {
|
dependentChanged: function () {
|
||||||
var model = this.model,
|
let model = this.model,
|
||||||
column = this.column,
|
column = this.column,
|
||||||
editable = this.column.get('editable'),
|
editable = this.column.get('editable'),
|
||||||
input = this.$el.find('input[type=checkbox]').first(),
|
input = this.$el.find('input[type=checkbox]').first(),
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ export default class PGSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
validate(state, setError) {
|
validate(state, setError) {
|
||||||
var errmsg = null;
|
let errmsg = null;
|
||||||
|
|
||||||
// Validation of mandatory fields
|
// Validation of mandatory fields
|
||||||
if (isEmptyString(state.name)) {
|
if (isEmptyString(state.name)) {
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ define('pgadmin.node.synonym', [
|
|||||||
}),
|
}),
|
||||||
synobjschema: ()=>getNodeListByName('schema', treeNodeInfo, itemNodeData, {}, (m)=>{
|
synobjschema: ()=>getNodeListByName('schema', treeNodeInfo, itemNodeData, {}, (m)=>{
|
||||||
// Exclude PPAS catalogs
|
// Exclude PPAS catalogs
|
||||||
var exclude_catalogs = ['pg_catalog', 'sys', 'dbo', 'pgagent', 'information_schema', 'dbms_job_procedure'];
|
let exclude_catalogs = ['pg_catalog', 'sys', 'dbo', 'pgagent', 'information_schema', 'dbms_job_procedure'];
|
||||||
return m && _.indexOf(exclude_catalogs, m.label) == -1;
|
return m && _.indexOf(exclude_catalogs, m.label) == -1;
|
||||||
}),
|
}),
|
||||||
getTargetObjectOptions: (targettype, synobjschema) =>
|
getTargetObjectOptions: (targettype, synobjschema) =>
|
||||||
@@ -105,7 +105,7 @@ define('pgadmin.node.synonym', [
|
|||||||
if (data && data.check == false)
|
if (data && data.check == false)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
var treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
let treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
||||||
server = treeData['server'];
|
server = treeData['server'];
|
||||||
|
|
||||||
if (server && server.server_type === 'pg')
|
if (server && server.server_type === 'pg')
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ define('pgadmin.node.column', [
|
|||||||
if (data && data.check == false)
|
if (data && data.check == false)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
var t = pgBrowser.tree, i = item, d = itemData, parents = [];
|
let t = pgBrowser.tree, i = item, d = itemData, parents = [];
|
||||||
// To iterate over tree to check parent node
|
// To iterate over tree to check parent node
|
||||||
while (i) {
|
while (i) {
|
||||||
// If it is schema then allow user to create table
|
// If it is schema then allow user to create table
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ export default class ColumnSchema extends BaseUISchema {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var name = state.name;
|
let name = state.name;
|
||||||
|
|
||||||
if(!obj.inSchemaWithColumnCheck(state)
|
if(!obj.inSchemaWithColumnCheck(state)
|
||||||
&& (_.isUndefined(name) || _.isNull(name) || name == '')) {
|
&& (_.isUndefined(name) || _.isNull(name) || name == '')) {
|
||||||
@@ -387,11 +387,11 @@ export default class ColumnSchema extends BaseUISchema {
|
|||||||
type: 'text', group: gettext('Constraints'), deps: ['cltype', 'colconstype'],
|
type: 'text', group: gettext('Constraints'), deps: ['cltype', 'colconstype'],
|
||||||
readonly: obj.inSchemaWithColumnCheck,
|
readonly: obj.inSchemaWithColumnCheck,
|
||||||
disabled: function(state) {
|
disabled: function(state) {
|
||||||
var isDisabled = ['serial', 'bigserial', 'smallserial'].indexOf(state.cltype) > -1;
|
let isDisabled = ['serial', 'bigserial', 'smallserial'].indexOf(state.cltype) > -1;
|
||||||
isDisabled = isDisabled || state.colconstype != 'n';
|
isDisabled = isDisabled || state.colconstype != 'n';
|
||||||
return isDisabled;
|
return isDisabled;
|
||||||
}, depChange: (state)=>{
|
}, depChange: (state)=>{
|
||||||
var isDisabled = false;
|
let isDisabled = false;
|
||||||
if(!obj.inSchemaWithModelCheck(state)) {
|
if(!obj.inSchemaWithModelCheck(state)) {
|
||||||
isDisabled = ['serial', 'bigserial', 'smallserial'].indexOf(state.cltype) > -1;
|
isDisabled = ['serial', 'bigserial', 'smallserial'].indexOf(state.cltype) > -1;
|
||||||
}
|
}
|
||||||
@@ -424,7 +424,7 @@ export default class ColumnSchema extends BaseUISchema {
|
|||||||
cell: 'text',
|
cell: 'text',
|
||||||
group: gettext('Constraints'),
|
group: gettext('Constraints'),
|
||||||
type: (state)=>{
|
type: (state)=>{
|
||||||
var options = [
|
let options = [
|
||||||
{'label': gettext('NONE'), 'value': 'n'},
|
{'label': gettext('NONE'), 'value': 'n'},
|
||||||
{'label': gettext('IDENTITY'), 'value': 'i'},
|
{'label': gettext('IDENTITY'), 'value': 'i'},
|
||||||
];
|
];
|
||||||
@@ -559,7 +559,7 @@ export default class ColumnSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
validate(state, setError) {
|
validate(state, setError) {
|
||||||
var msg = undefined;
|
let msg = undefined;
|
||||||
|
|
||||||
if (!_.isUndefined(state.cltype) && !isEmptyString(state.attlen)) {
|
if (!_.isUndefined(state.cltype) && !isEmptyString(state.attlen)) {
|
||||||
// Validation for Length field
|
// Validation for Length field
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ define('pgadmin.node.compound_trigger', [
|
|||||||
callbacks: {
|
callbacks: {
|
||||||
/* Enable compound trigger */
|
/* Enable compound trigger */
|
||||||
enable_compound_trigger: function(args) {
|
enable_compound_trigger: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -111,7 +111,7 @@ define('pgadmin.node.compound_trigger', [
|
|||||||
if (!d)
|
if (!d)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var data = d;
|
let data = d;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: obj.generate_url(i, 'enable' , d, true),
|
url: obj.generate_url(i, 'enable' , d, true),
|
||||||
type:'PUT',
|
type:'PUT',
|
||||||
@@ -140,7 +140,7 @@ define('pgadmin.node.compound_trigger', [
|
|||||||
},
|
},
|
||||||
/* Disable compound trigger */
|
/* Disable compound trigger */
|
||||||
disable_compound_trigger: function(args) {
|
disable_compound_trigger: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -149,7 +149,7 @@ define('pgadmin.node.compound_trigger', [
|
|||||||
if (!d)
|
if (!d)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var data = d;
|
let data = d;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: obj.generate_url(i, 'enable' , d, true),
|
url: obj.generate_url(i, 'enable' , d, true),
|
||||||
type:'PUT',
|
type:'PUT',
|
||||||
@@ -194,7 +194,7 @@ define('pgadmin.node.compound_trigger', [
|
|||||||
if (data && data.check == false)
|
if (data && data.check == false)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
var treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
let treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
||||||
server = treeData['server'];
|
server = treeData['server'];
|
||||||
|
|
||||||
if (server && (server.server_type === 'pg' || server.version < 120000))
|
if (server && (server.server_type === 'pg' || server.version < 120000))
|
||||||
@@ -209,7 +209,7 @@ define('pgadmin.node.compound_trigger', [
|
|||||||
},
|
},
|
||||||
// Check to whether trigger is disable ?
|
// Check to whether trigger is disable ?
|
||||||
canCreate_with_compound_trigger_enable: function(itemData, item, data) {
|
canCreate_with_compound_trigger_enable: function(itemData, item, data) {
|
||||||
var treeData = pgBrowser.tree.getTreeNodeHierarchy(item);
|
let treeData = pgBrowser.tree.getTreeNodeHierarchy(item);
|
||||||
if ('view' in treeData) {
|
if ('view' in treeData) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -219,7 +219,7 @@ define('pgadmin.node.compound_trigger', [
|
|||||||
},
|
},
|
||||||
// Check to whether trigger is enable ?
|
// Check to whether trigger is enable ?
|
||||||
canCreate_with_compound_trigger_disable: function(itemData, item, data) {
|
canCreate_with_compound_trigger_disable: function(itemData, item, data) {
|
||||||
var treeData = pgBrowser.tree.getTreeNodeHierarchy(item);
|
let treeData = pgBrowser.tree.getTreeNodeHierarchy(item);
|
||||||
if ('view' in treeData) {
|
if ('view' in treeData) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ export class ForEventsSchema extends BaseUISchema {
|
|||||||
id: 'evnt_insert', label: gettext('INSERT'),
|
id: 'evnt_insert', label: gettext('INSERT'),
|
||||||
type: 'switch',
|
type: 'switch',
|
||||||
readonly: function(state) {
|
readonly: function(state) {
|
||||||
var evn_insert = state.evnt_insert;
|
let evn_insert = state.evnt_insert;
|
||||||
if (!_.isUndefined(evn_insert) && obj.nodeInfo.server.server_type == 'ppas')
|
if (!_.isUndefined(evn_insert) && obj.nodeInfo.server.server_type == 'ppas')
|
||||||
return false;
|
return false;
|
||||||
return obj.inCatalog();
|
return obj.inCatalog();
|
||||||
@@ -40,7 +40,7 @@ export class ForEventsSchema extends BaseUISchema {
|
|||||||
id: 'evnt_update', label: gettext('UPDATE'),
|
id: 'evnt_update', label: gettext('UPDATE'),
|
||||||
type: 'switch',
|
type: 'switch',
|
||||||
readonly: function(state) {
|
readonly: function(state) {
|
||||||
var evn_update = state.evnt_update;
|
let evn_update = state.evnt_update;
|
||||||
if (!_.isUndefined(evn_update) && obj.nodeInfo.server.server_type == 'ppas')
|
if (!_.isUndefined(evn_update) && obj.nodeInfo.server.server_type == 'ppas')
|
||||||
return false;
|
return false;
|
||||||
return obj.inCatalog();
|
return obj.inCatalog();
|
||||||
@@ -49,7 +49,7 @@ export class ForEventsSchema extends BaseUISchema {
|
|||||||
id: 'evnt_delete', label: gettext('DELETE'),
|
id: 'evnt_delete', label: gettext('DELETE'),
|
||||||
type: 'switch',
|
type: 'switch',
|
||||||
readonly: function(state) {
|
readonly: function(state) {
|
||||||
var evn_delete = state.evnt_delete;
|
let evn_delete = state.evnt_delete;
|
||||||
if (!_.isUndefined(evn_delete) && obj.nodeInfo.server.server_type == 'ppas')
|
if (!_.isUndefined(evn_delete) && obj.nodeInfo.server.server_type == 'ppas')
|
||||||
return false;
|
return false;
|
||||||
return obj.inCatalog();
|
return obj.inCatalog();
|
||||||
@@ -58,7 +58,7 @@ export class ForEventsSchema extends BaseUISchema {
|
|||||||
id: 'evnt_truncate', label: gettext('TRUNCATE'),
|
id: 'evnt_truncate', label: gettext('TRUNCATE'),
|
||||||
type: 'switch',
|
type: 'switch',
|
||||||
readonly: function(state) {
|
readonly: function(state) {
|
||||||
var evn_truncate = state.evnt_truncate;
|
let evn_truncate = state.evnt_truncate;
|
||||||
// Views cannot have TRUNCATE triggers.
|
// Views cannot have TRUNCATE triggers.
|
||||||
if ('view' in obj.nodeInfo)
|
if ('view' in obj.nodeInfo)
|
||||||
return true;
|
return true;
|
||||||
@@ -127,7 +127,7 @@ export default class CompoundTriggerSchema extends BaseUISchema {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// Enable column only if update event is set true
|
// Enable column only if update event is set true
|
||||||
var isUpdate = state.evnt_update;
|
let isUpdate = state.evnt_update;
|
||||||
if(!_.isUndefined(isUpdate) && isUpdate) {
|
if(!_.isUndefined(isUpdate) && isUpdate) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,14 +62,14 @@ define('pgadmin.node.check_constraint', [
|
|||||||
},
|
},
|
||||||
callbacks: {
|
callbacks: {
|
||||||
validate_check_constraint: function(args) {
|
validate_check_constraint: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
d = i ? t.itemData(i) : undefined;
|
d = i ? t.itemData(i) : undefined;
|
||||||
|
|
||||||
if (d) {
|
if (d) {
|
||||||
var data = d;
|
let data = d;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: obj.generate_url(i, 'validate', d, true),
|
url: obj.generate_url(i, 'validate', d, true),
|
||||||
type:'GET',
|
type:'GET',
|
||||||
@@ -103,7 +103,7 @@ define('pgadmin.node.check_constraint', [
|
|||||||
if (data && data.check == false)
|
if (data && data.check == false)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
var t = pgBrowser.tree, i = item, d = itemData, parents = [];
|
let t = pgBrowser.tree, i = item, d = itemData, parents = [];
|
||||||
// To iterate over tree to check parent node
|
// To iterate over tree to check parent node
|
||||||
while (i) {
|
while (i) {
|
||||||
// If it is schema then allow user to c reate table
|
// If it is schema then allow user to c reate table
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ define('pgadmin.node.exclusion_constraint', [
|
|||||||
if (data && data.check == false)
|
if (data && data.check == false)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
var t = pgBrowser.tree, i = item, d = itemData, parents = [],
|
let t = pgBrowser.tree, i = item, d = itemData, parents = [],
|
||||||
immediate_parent_table_found = false,
|
immediate_parent_table_found = false,
|
||||||
is_immediate_parent_table_partitioned = false;
|
is_immediate_parent_table_partitioned = false;
|
||||||
// To iterate over tree to check parent node
|
// To iterate over tree to check parent node
|
||||||
|
|||||||
@@ -58,14 +58,14 @@ define('pgadmin.node.foreign_key', [
|
|||||||
},
|
},
|
||||||
callbacks: {
|
callbacks: {
|
||||||
validate_foreign_key: function(args) {
|
validate_foreign_key: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
d = i ? t.itemData(i) : undefined;
|
d = i ? t.itemData(i) : undefined;
|
||||||
|
|
||||||
if (d) {
|
if (d) {
|
||||||
var data = d;
|
let data = d;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: obj.generate_url(i, 'validate', d, true),
|
url: obj.generate_url(i, 'validate', d, true),
|
||||||
type:'GET',
|
type:'GET',
|
||||||
@@ -97,7 +97,7 @@ define('pgadmin.node.foreign_key', [
|
|||||||
if (data && data.check == false)
|
if (data && data.check == false)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
var t = pgBrowser.tree, i = item, d = itemData, parents = [],
|
let t = pgBrowser.tree, i = item, d = itemData, parents = [],
|
||||||
immediate_parent_table_found = false,
|
immediate_parent_table_found = false,
|
||||||
is_immediate_parent_table_partitioned = false,
|
is_immediate_parent_table_partitioned = false,
|
||||||
s_version = t.getTreeNodeHierarchy(i).server.version;
|
s_version = t.getTreeNodeHierarchy(i).server.version;
|
||||||
|
|||||||
@@ -325,7 +325,7 @@ export default class ForeignKeySchema extends BaseUISchema {
|
|||||||
controlProps: {
|
controlProps: {
|
||||||
formatter: {
|
formatter: {
|
||||||
fromRaw: (rawValue)=>{
|
fromRaw: (rawValue)=>{
|
||||||
var cols = [],
|
let cols = [],
|
||||||
remoteCols = [];
|
remoteCols = [];
|
||||||
if (rawValue?.length > 0) {
|
if (rawValue?.length > 0) {
|
||||||
rawValue.forEach((col)=>{
|
rawValue.forEach((col)=>{
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ define('pgadmin.node.primary_key', [
|
|||||||
if (data && data.check == false)
|
if (data && data.check == false)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
var t = pgBrowser.tree, i = item, d = itemData, parents = [],
|
let t = pgBrowser.tree, i = item, d = itemData, parents = [],
|
||||||
immediate_parent_table_found = false,
|
immediate_parent_table_found = false,
|
||||||
is_immediate_parent_table_partitioned = false,
|
is_immediate_parent_table_partitioned = false,
|
||||||
s_version = t.getTreeNodeHierarchy(i).server.version;
|
s_version = t.getTreeNodeHierarchy(i).server.version;
|
||||||
@@ -78,7 +78,7 @@ define('pgadmin.node.primary_key', [
|
|||||||
}
|
}
|
||||||
|
|
||||||
// There should be only one primary key per table.
|
// There should be only one primary key per table.
|
||||||
var children = t.children(arguments[1], false),
|
let children = t.children(arguments[1], false),
|
||||||
primary_key_found = false;
|
primary_key_found = false;
|
||||||
|
|
||||||
_.each(children, function(child){
|
_.each(children, function(child){
|
||||||
@@ -128,7 +128,7 @@ define('pgadmin.node.primary_key', [
|
|||||||
},
|
},
|
||||||
|
|
||||||
genResetColOptions: function() {
|
genResetColOptions: function() {
|
||||||
var self = this;
|
let self = this;
|
||||||
|
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
self.custom_options();
|
self.custom_options();
|
||||||
@@ -138,12 +138,12 @@ define('pgadmin.node.primary_key', [
|
|||||||
|
|
||||||
genCustomOptions: function() {
|
genCustomOptions: function() {
|
||||||
// We will add all the columns entered by user in table model
|
// We will add all the columns entered by user in table model
|
||||||
var columns = this.model.top.get('columns'),
|
let columns = this.model.top.get('columns'),
|
||||||
added_columns_from_tables = [];
|
added_columns_from_tables = [];
|
||||||
|
|
||||||
if (columns.length > 0) {
|
if (columns.length > 0) {
|
||||||
_.each(columns.models, function(m) {
|
_.each(columns.models, function(m) {
|
||||||
var col = m.get('name');
|
let col = m.get('name');
|
||||||
if(!_.isUndefined(col) && !_.isNull(col)) {
|
if(!_.isUndefined(col) && !_.isNull(col)) {
|
||||||
added_columns_from_tables.push(
|
added_columns_from_tables.push(
|
||||||
{label: col, value: col, image:'icon-column'}
|
{label: col, value: col, image:'icon-column'}
|
||||||
@@ -186,7 +186,7 @@ define('pgadmin.node.primary_key', [
|
|||||||
id: 'comment', label: gettext('Comment'), cell: 'string',
|
id: 'comment', label: gettext('Comment'), cell: 'string',
|
||||||
type: 'multiline', mode: ['properties', 'create', 'edit'],
|
type: 'multiline', mode: ['properties', 'create', 'edit'],
|
||||||
deps:['name'], disabled:function(m) {
|
deps:['name'], disabled:function(m) {
|
||||||
var name = m.get('name');
|
let name = m.get('name');
|
||||||
if (!(name && name != '')) {
|
if (!(name && name != '')) {
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
if(m.get('comment') && m.get('comment') !== '') {
|
if(m.get('comment') && m.get('comment') !== '') {
|
||||||
@@ -206,12 +206,12 @@ define('pgadmin.node.primary_key', [
|
|||||||
initialize: function() {
|
initialize: function() {
|
||||||
Backgrid.StringCell.prototype.initialize.apply(this, arguments);
|
Backgrid.StringCell.prototype.initialize.apply(this, arguments);
|
||||||
|
|
||||||
var self = this,
|
let self = this,
|
||||||
collection = this.model.get('columns');
|
collection = this.model.get('columns');
|
||||||
|
|
||||||
// Do not listen for any event(s) for existing constraint.
|
// Do not listen for any event(s) for existing constraint.
|
||||||
if (_.isUndefined(self.model.get('oid'))) {
|
if (_.isUndefined(self.model.get('oid'))) {
|
||||||
var tableCols = self.model.top.get('columns');
|
let tableCols = self.model.top.get('columns');
|
||||||
self.listenTo(tableCols, 'remove' , self.removeColumn);
|
self.listenTo(tableCols, 'remove' , self.removeColumn);
|
||||||
self.listenTo(tableCols, 'change:name', self.resetColOptions);
|
self.listenTo(tableCols, 'change:name', self.resetColOptions);
|
||||||
}
|
}
|
||||||
@@ -223,7 +223,7 @@ define('pgadmin.node.primary_key', [
|
|||||||
self.listenTo(collection, 'remove', self.render);
|
self.listenTo(collection, 'remove', self.render);
|
||||||
},
|
},
|
||||||
removeColumn: function(m) {
|
removeColumn: function(m) {
|
||||||
var self = this,
|
let self = this,
|
||||||
removedCols = self.model.get('columns').where(
|
removedCols = self.model.get('columns').where(
|
||||||
{column: m.get('name')}
|
{column: m.get('name')}
|
||||||
);
|
);
|
||||||
@@ -233,9 +233,9 @@ define('pgadmin.node.primary_key', [
|
|||||||
self.render();
|
self.render();
|
||||||
}, 10);
|
}, 10);
|
||||||
|
|
||||||
var key = 'primary_key';
|
let key = 'primary_key';
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
var constraints = self.model.top.get(key),
|
let constraints = self.model.top.get(key),
|
||||||
removed = [];
|
removed = [];
|
||||||
constraints.each(function(constraint) {
|
constraints.each(function(constraint) {
|
||||||
if (constraint.get('columns').length == 0) {
|
if (constraint.get('columns').length == 0) {
|
||||||
@@ -247,7 +247,7 @@ define('pgadmin.node.primary_key', [
|
|||||||
|
|
||||||
},
|
},
|
||||||
resetColOptions : function(m) {
|
resetColOptions : function(m) {
|
||||||
var self = this,
|
let self = this,
|
||||||
updatedCols = self.model.get('columns').where(
|
updatedCols = self.model.get('columns').where(
|
||||||
{column: m.previous('name')}
|
{column: m.previous('name')}
|
||||||
);
|
);
|
||||||
@@ -275,7 +275,7 @@ define('pgadmin.node.primary_key', [
|
|||||||
return Backgrid.StringCell.prototype.render.apply(this, arguments);
|
return Backgrid.StringCell.prototype.render.apply(this, arguments);
|
||||||
},
|
},
|
||||||
remove: function() {
|
remove: function() {
|
||||||
var tableCols = this.model.top.get('columns'),
|
let tableCols = this.model.top.get('columns'),
|
||||||
primary_key_col = this.model.get('columns');
|
primary_key_col = this.model.get('columns');
|
||||||
|
|
||||||
if (primary_key_col) {
|
if (primary_key_col) {
|
||||||
@@ -303,7 +303,7 @@ define('pgadmin.node.primary_key', [
|
|||||||
}
|
}
|
||||||
),
|
),
|
||||||
keyPathAccessor: function(obj, path) {
|
keyPathAccessor: function(obj, path) {
|
||||||
var res = obj;
|
let res = obj;
|
||||||
if(_.isArray(res)) {
|
if(_.isArray(res)) {
|
||||||
return _.map(res, function(o) { return o['column'];
|
return _.map(res, function(o) { return o['column'];
|
||||||
});
|
});
|
||||||
@@ -319,12 +319,12 @@ define('pgadmin.node.primary_key', [
|
|||||||
initialize: function() {
|
initialize: function() {
|
||||||
// Here we will decide if we need to call URL
|
// Here we will decide if we need to call URL
|
||||||
// Or fetch the data from parent columns collection
|
// Or fetch the data from parent columns collection
|
||||||
var self = this;
|
let self = this;
|
||||||
if(this.model.handler) {
|
if(this.model.handler) {
|
||||||
Backform.Select2Control.prototype.initialize.apply(this, arguments);
|
Backform.Select2Control.prototype.initialize.apply(this, arguments);
|
||||||
// Do not listen for any event(s) for existing constraint.
|
// Do not listen for any event(s) for existing constraint.
|
||||||
if (_.isUndefined(self.model.get('oid'))) {
|
if (_.isUndefined(self.model.get('oid'))) {
|
||||||
var tableCols = self.model.top.get('columns');
|
let tableCols = self.model.top.get('columns');
|
||||||
self.listenTo(tableCols, 'remove' , self.resetColOptions);
|
self.listenTo(tableCols, 'remove' , self.resetColOptions);
|
||||||
self.listenTo(tableCols, 'change:name', self.resetColOptions);
|
self.listenTo(tableCols, 'change:name', self.resetColOptions);
|
||||||
}
|
}
|
||||||
@@ -344,7 +344,7 @@ define('pgadmin.node.primary_key', [
|
|||||||
this.genCustomOptions();
|
this.genCustomOptions();
|
||||||
},
|
},
|
||||||
onChange: function() {
|
onChange: function() {
|
||||||
var self = this,
|
let self = this,
|
||||||
model = this.model,
|
model = this.model,
|
||||||
attrArr = this.field.get('name').split('.'),
|
attrArr = this.field.get('name').split('.'),
|
||||||
name = attrArr.shift(),
|
name = attrArr.shift(),
|
||||||
@@ -359,7 +359,7 @@ define('pgadmin.node.primary_key', [
|
|||||||
* present in the collection.
|
* present in the collection.
|
||||||
*/
|
*/
|
||||||
collection.each(function(m) {
|
collection.each(function(m) {
|
||||||
var column = m.get('column'),
|
let column = m.get('column'),
|
||||||
idx = _.indexOf(vals, column);
|
idx = _.indexOf(vals, column);
|
||||||
|
|
||||||
if (idx > -1) {
|
if (idx > -1) {
|
||||||
@@ -374,7 +374,7 @@ define('pgadmin.node.primary_key', [
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
_.each(vals, function(v) {
|
_.each(vals, function(v) {
|
||||||
var m = new (self.field.get('model'))(
|
let m = new (self.field.get('model'))(
|
||||||
{column: v}, { silent: true,
|
{column: v}, { silent: true,
|
||||||
top: self.model.top,
|
top: self.model.top,
|
||||||
collection: collection,
|
collection: collection,
|
||||||
@@ -395,7 +395,7 @@ define('pgadmin.node.primary_key', [
|
|||||||
},
|
},
|
||||||
remove: function() {
|
remove: function() {
|
||||||
if(this.model.handler) {
|
if(this.model.handler) {
|
||||||
var self = this,
|
let self = this,
|
||||||
tableCols = self.model.top.get('columns');
|
tableCols = self.model.top.get('columns');
|
||||||
self.stopListening(tableCols, 'remove' , self.resetColOptions);
|
self.stopListening(tableCols, 'remove' , self.resetColOptions);
|
||||||
self.stopListening(tableCols, 'change:name' , self.resetColOptions);
|
self.stopListening(tableCols, 'change:name' , self.resetColOptions);
|
||||||
@@ -408,9 +408,9 @@ define('pgadmin.node.primary_key', [
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
render: function() {
|
render: function() {
|
||||||
var index = this.model.get('index');
|
let index = this.model.get('index');
|
||||||
if(!_.isUndefined(index) && index != '') {
|
if(!_.isUndefined(index) && index != '') {
|
||||||
var col = this.model.get('columns');
|
let col = this.model.get('columns');
|
||||||
col.reset([], {silent: true});
|
col.reset([], {silent: true});
|
||||||
}
|
}
|
||||||
return Backform.Select2Control.prototype.render.apply(this, arguments);
|
return Backform.Select2Control.prototype.render.apply(this, arguments);
|
||||||
@@ -426,7 +426,7 @@ define('pgadmin.node.primary_key', [
|
|||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
transform : function(data){
|
transform : function(data){
|
||||||
var res = [];
|
let res = [];
|
||||||
if (data && _.isArray(data)) {
|
if (data && _.isArray(data)) {
|
||||||
_.each(data, function(d) {
|
_.each(data, function(d) {
|
||||||
res.push({label: d.label, value: d.label, image:'icon-column'});
|
res.push({label: d.label, value: d.label, image:'icon-column'});
|
||||||
@@ -440,7 +440,7 @@ define('pgadmin.node.primary_key', [
|
|||||||
},
|
},
|
||||||
disabled: function(m) {
|
disabled: function(m) {
|
||||||
// Disable if index is selected.
|
// Disable if index is selected.
|
||||||
var index = m.get('index');
|
let index = m.get('index');
|
||||||
return !(_.isUndefined(index) || index == '');
|
return !(_.isUndefined(index) || index == '');
|
||||||
},
|
},
|
||||||
},{
|
},{
|
||||||
@@ -474,12 +474,12 @@ define('pgadmin.node.primary_key', [
|
|||||||
initialize: function() {
|
initialize: function() {
|
||||||
// Here we will decide if we need to call URL
|
// Here we will decide if we need to call URL
|
||||||
// Or fetch the data from parent columns collection
|
// Or fetch the data from parent columns collection
|
||||||
var self = this;
|
let self = this;
|
||||||
if(this.model.handler) {
|
if(this.model.handler) {
|
||||||
Backform.Select2Control.prototype.initialize.apply(this, arguments);
|
Backform.Select2Control.prototype.initialize.apply(this, arguments);
|
||||||
// Do not listen for any event(s) for existing constraint.
|
// Do not listen for any event(s) for existing constraint.
|
||||||
if (_.isUndefined(self.model.get('oid'))) {
|
if (_.isUndefined(self.model.get('oid'))) {
|
||||||
var tableCols = self.model.top.get('columns');
|
let tableCols = self.model.top.get('columns');
|
||||||
self.listenTo(tableCols, 'remove' , self.resetColOptions);
|
self.listenTo(tableCols, 'remove' , self.resetColOptions);
|
||||||
self.listenTo(tableCols, 'change:name', self.resetColOptions);
|
self.listenTo(tableCols, 'change:name', self.resetColOptions);
|
||||||
}
|
}
|
||||||
@@ -502,7 +502,7 @@ define('pgadmin.node.primary_key', [
|
|||||||
},
|
},
|
||||||
disabled: function(m) {
|
disabled: function(m) {
|
||||||
// Disable if index is selected.
|
// Disable if index is selected.
|
||||||
var index = m.get('index');
|
let index = m.get('index');
|
||||||
if(_.isUndefined(index) || index == '') {
|
if(_.isUndefined(index) || index == '') {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
@@ -525,7 +525,7 @@ define('pgadmin.node.primary_key', [
|
|||||||
disabled: function(m) {
|
disabled: function(m) {
|
||||||
// Disable if index is selected.
|
// Disable if index is selected.
|
||||||
m = m.top || m;
|
m = m.top || m;
|
||||||
var index = m.get('index');
|
let index = m.get('index');
|
||||||
if(_.isUndefined(index) || index == '') {
|
if(_.isUndefined(index) || index == '') {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
@@ -564,7 +564,7 @@ define('pgadmin.node.primary_key', [
|
|||||||
type: 'int', group: gettext('Definition'), allowNull: true,
|
type: 'int', group: gettext('Definition'), allowNull: true,
|
||||||
disabled: function(m) {
|
disabled: function(m) {
|
||||||
// Disable if index is selected.
|
// Disable if index is selected.
|
||||||
var index = m.get('index');
|
let index = m.get('index');
|
||||||
if(_.isUndefined(index) || index == '') {
|
if(_.isUndefined(index) || index == '') {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
@@ -582,7 +582,7 @@ define('pgadmin.node.primary_key', [
|
|||||||
},
|
},
|
||||||
disabled: function(m) {
|
disabled: function(m) {
|
||||||
// Disable if index is selected.
|
// Disable if index is selected.
|
||||||
var index = m.get('index');
|
let index = m.get('index');
|
||||||
if(_.isUndefined(index) || index == '') {
|
if(_.isUndefined(index) || index == '') {
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
@@ -621,12 +621,12 @@ define('pgadmin.node.primary_key', [
|
|||||||
this.top.errorModel.clear();
|
this.top.errorModel.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
var columns = this.get('columns'),
|
let columns = this.get('columns'),
|
||||||
index = this.get('index');
|
index = this.get('index');
|
||||||
|
|
||||||
if ((_.isUndefined(index) || String(index).replace(/^\s+|\s+$/g, '') == '') &&
|
if ((_.isUndefined(index) || String(index).replace(/^\s+|\s+$/g, '') == '') &&
|
||||||
(_.isUndefined(columns) || _.isNull(columns) || columns.length < 1)) {
|
(_.isUndefined(columns) || _.isNull(columns) || columns.length < 1)) {
|
||||||
var msg = gettext('Please specify columns for %s.', gettext('Primary key'));
|
let msg = gettext('Please specify columns for %s.', gettext('Primary key'));
|
||||||
this.errorModel.set('columns', msg);
|
this.errorModel.set('columns', msg);
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ define('pgadmin.node.unique_constraint', [
|
|||||||
if (data && data.check == false)
|
if (data && data.check == false)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
var t = pgBrowser.tree, i = item, d = itemData, parents = [],
|
let t = pgBrowser.tree, i = item, d = itemData, parents = [],
|
||||||
immediate_parent_table_found = false,
|
immediate_parent_table_found = false,
|
||||||
is_immediate_parent_table_partitioned = false,
|
is_immediate_parent_table_partitioned = false,
|
||||||
s_version = pgBrowser.tree.getTreeNodeHierarchy(i).server.version;
|
s_version = pgBrowser.tree.getTreeNodeHierarchy(i).server.version;
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ define('pgadmin.node.index', [
|
|||||||
if (data && data.check == false)
|
if (data && data.check == false)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
var t = pgBrowser.tree, i = item, d = itemData, parents = [],
|
let t = pgBrowser.tree, i = item, d = itemData, parents = [],
|
||||||
immediate_parent_table_found = false,
|
immediate_parent_table_found = false,
|
||||||
is_immediate_parent_table_partitioned = false,
|
is_immediate_parent_table_partitioned = false,
|
||||||
s_version = t.getTreeNodeHierarchy(i).server.version;
|
s_version = t.getTreeNodeHierarchy(i).server.version;
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ export class ColumnSchema extends BaseUISchema {
|
|||||||
* to access method selected by user if not selected
|
* to access method selected by user if not selected
|
||||||
* send btree related op_class options
|
* send btree related op_class options
|
||||||
*/
|
*/
|
||||||
var amname = columnSchemaObj._top?._sessData ? columnSchemaObj._top?._sessData.amname : columnSchemaObj._top?._origData.amname;
|
let amname = columnSchemaObj._top?._sessData ? columnSchemaObj._top?._sessData.amname : columnSchemaObj._top?._origData.amname;
|
||||||
|
|
||||||
if(_.isUndefined(amname))
|
if(_.isUndefined(amname))
|
||||||
return options;
|
return options;
|
||||||
@@ -442,10 +442,10 @@ export default class IndexSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
validate(state, setError) {
|
validate(state, setError) {
|
||||||
var msg;
|
let msg;
|
||||||
|
|
||||||
// Checks if columns is empty
|
// Checks if columns is empty
|
||||||
var cols = state.columns;
|
let cols = state.columns;
|
||||||
if(_.isArray(cols) && cols.length == 0){
|
if(_.isArray(cols) && cols.length == 0){
|
||||||
msg = gettext('You must specify at least one column.');
|
msg = gettext('You must specify at least one column.');
|
||||||
setError('columns', msg);
|
setError('columns', msg);
|
||||||
|
|||||||
@@ -147,18 +147,18 @@ function(
|
|||||||
callbacks: {
|
callbacks: {
|
||||||
/* Enable trigger(s) on table */
|
/* Enable trigger(s) on table */
|
||||||
enable_triggers_on_table: function(args) {
|
enable_triggers_on_table: function(args) {
|
||||||
var params = {'is_enable_trigger': 'O'};
|
let params = {'is_enable_trigger': 'O'};
|
||||||
this.callbacks.set_triggers.apply(this, [args, params]);
|
this.callbacks.set_triggers.apply(this, [args, params]);
|
||||||
},
|
},
|
||||||
/* Disable trigger(s) on table */
|
/* Disable trigger(s) on table */
|
||||||
disable_triggers_on_table: function(args) {
|
disable_triggers_on_table: function(args) {
|
||||||
var params = {'is_enable_trigger': 'D'};
|
let params = {'is_enable_trigger': 'D'};
|
||||||
this.callbacks.set_triggers.apply(this, [args, params]);
|
this.callbacks.set_triggers.apply(this, [args, params]);
|
||||||
},
|
},
|
||||||
set_triggers: function(args, params) {
|
set_triggers: function(args, params) {
|
||||||
// This function will send request to enable or
|
// This function will send request to enable or
|
||||||
// disable triggers on table level
|
// disable triggers on table level
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -191,16 +191,16 @@ function(
|
|||||||
},
|
},
|
||||||
/* Truncate table */
|
/* Truncate table */
|
||||||
truncate_table: function(args) {
|
truncate_table: function(args) {
|
||||||
var params = {'cascade': false };
|
let params = {'cascade': false };
|
||||||
this.callbacks.truncate.apply(this, [args, params]);
|
this.callbacks.truncate.apply(this, [args, params]);
|
||||||
},
|
},
|
||||||
/* Truncate table with cascade */
|
/* Truncate table with cascade */
|
||||||
truncate_table_cascade: function(args) {
|
truncate_table_cascade: function(args) {
|
||||||
var params = {'cascade': true };
|
let params = {'cascade': true };
|
||||||
this.callbacks.truncate.apply(this, [args, params]);
|
this.callbacks.truncate.apply(this, [args, params]);
|
||||||
},
|
},
|
||||||
truncate: function(args, params) {
|
truncate: function(args, params) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -213,7 +213,7 @@ function(
|
|||||||
gettext('Truncate Table'),
|
gettext('Truncate Table'),
|
||||||
gettext('Are you sure you want to truncate table %s?', d.label),
|
gettext('Are you sure you want to truncate table %s?', d.label),
|
||||||
function () {
|
function () {
|
||||||
var data = d;
|
let data = d;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: obj.generate_url(i, 'truncate' , d, true),
|
url: obj.generate_url(i, 'truncate' , d, true),
|
||||||
type:'PUT',
|
type:'PUT',
|
||||||
@@ -231,7 +231,7 @@ function(
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
reset_table_stats: function(args) {
|
reset_table_stats: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -244,7 +244,7 @@ function(
|
|||||||
gettext('Reset statistics'),
|
gettext('Reset statistics'),
|
||||||
gettext('Are you sure you want to reset the statistics for table "%s"?', d._label),
|
gettext('Are you sure you want to reset the statistics for table "%s"?', d._label),
|
||||||
function () {
|
function () {
|
||||||
var data = d;
|
let data = d;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: obj.generate_url(i, 'reset' , d, true),
|
url: obj.generate_url(i, 'reset' , d, true),
|
||||||
type:'DELETE',
|
type:'DELETE',
|
||||||
@@ -261,7 +261,7 @@ function(
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
detach_partition: function(args) {
|
detach_partition: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -281,7 +281,7 @@ function(
|
|||||||
.done(function(res) {
|
.done(function(res) {
|
||||||
if (res.success == 1) {
|
if (res.success == 1) {
|
||||||
Notify.success(res.info);
|
Notify.success(res.info);
|
||||||
var n = t.next(i);
|
let n = t.next(i);
|
||||||
if (!n) {
|
if (!n) {
|
||||||
n = t.prev(i);
|
n = t.prev(i);
|
||||||
if (!n) {
|
if (!n) {
|
||||||
|
|||||||
@@ -281,7 +281,7 @@ export default class PartitionTableSchema extends BaseUISchema {
|
|||||||
editable: false, type: 'select', controlProps: {allowClear: false},
|
editable: false, type: 'select', controlProps: {allowClear: false},
|
||||||
group: 'partition', deps: ['is_partitioned'],
|
group: 'partition', deps: ['is_partitioned'],
|
||||||
options: function() {
|
options: function() {
|
||||||
var options = [{
|
let options = [{
|
||||||
label: gettext('Range'), value: 'range',
|
label: gettext('Range'), value: 'range',
|
||||||
},{
|
},{
|
||||||
label: gettext('List'), value: 'list',
|
label: gettext('List'), value: 'list',
|
||||||
@@ -318,7 +318,7 @@ export default class PartitionTableSchema extends BaseUISchema {
|
|||||||
canAddRow: function(state) {
|
canAddRow: function(state) {
|
||||||
let columnsExist = false;
|
let columnsExist = false;
|
||||||
|
|
||||||
var maxRowCount = 1000;
|
let maxRowCount = 1000;
|
||||||
if (state.partition_type && state.partition_type == 'list')
|
if (state.partition_type && state.partition_type == 'list')
|
||||||
maxRowCount = 1;
|
maxRowCount = 1;
|
||||||
|
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ define('pgadmin.node.row_security_policy', [
|
|||||||
},
|
},
|
||||||
canCreate: function(itemData, item) {
|
canCreate: function(itemData, item) {
|
||||||
|
|
||||||
var treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
let treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
||||||
server = treeData['server'];
|
server = treeData['server'];
|
||||||
|
|
||||||
// If node is under catalog then do not allow 'create' menu
|
// If node is under catalog then do not allow 'create' menu
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ export default class RowSecurityPolicySchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
disableWithCheckField(state){
|
disableWithCheckField(state){
|
||||||
var event = state.event;
|
let event = state.event;
|
||||||
if ((event == 'SELECT') || (event == 'DELETE')){
|
if ((event == 'SELECT') || (event == 'DELETE')){
|
||||||
state.withcheck = '';
|
state.withcheck = '';
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ define('pgadmin.node.rule', [
|
|||||||
callbacks: {
|
callbacks: {
|
||||||
/* Enable rule */
|
/* Enable rule */
|
||||||
enable_rule: function(args) {
|
enable_rule: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -138,7 +138,7 @@ define('pgadmin.node.rule', [
|
|||||||
if (!d)
|
if (!d)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var data = d;
|
let data = d;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: obj.generate_url(i, 'obj' , d, true),
|
url: obj.generate_url(i, 'obj' , d, true),
|
||||||
type:'PUT',
|
type:'PUT',
|
||||||
@@ -165,7 +165,7 @@ define('pgadmin.node.rule', [
|
|||||||
},
|
},
|
||||||
/* Disable rule */
|
/* Disable rule */
|
||||||
disable_rule: function(args) {
|
disable_rule: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -174,7 +174,7 @@ define('pgadmin.node.rule', [
|
|||||||
if (!d)
|
if (!d)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var data = d;
|
let data = d;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: obj.generate_url(i, 'obj' , d, true),
|
url: obj.generate_url(i, 'obj' , d, true),
|
||||||
type:'PUT',
|
type:'PUT',
|
||||||
@@ -216,7 +216,7 @@ define('pgadmin.node.rule', [
|
|||||||
if (data && data.check === false)
|
if (data && data.check === false)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
var t = pgBrowser.tree, i = item, d = itemData;
|
let t = pgBrowser.tree, i = item, d = itemData;
|
||||||
|
|
||||||
// To iterate over tree to check parent node
|
// To iterate over tree to check parent node
|
||||||
while (i) {
|
while (i) {
|
||||||
@@ -228,7 +228,7 @@ define('pgadmin.node.rule', [
|
|||||||
if ('coll-rule' == d._type) {
|
if ('coll-rule' == d._type) {
|
||||||
|
|
||||||
//Check if we are not child of rule
|
//Check if we are not child of rule
|
||||||
var prev_i = t.hasParent(i) ? t.parent(i) : null,
|
let prev_i = t.hasParent(i) ? t.parent(i) : null,
|
||||||
prev_j = t.hasParent(prev_i) ? t.parent(prev_i) : null,
|
prev_j = t.hasParent(prev_i) ? t.parent(prev_i) : null,
|
||||||
prev_k = t.hasParent(prev_j) ? t.parent(prev_j) : null,
|
prev_k = t.hasParent(prev_j) ? t.parent(prev_j) : null,
|
||||||
prev_f = prev_k ? t.itemData(prev_k) : null;
|
prev_f = prev_k ? t.itemData(prev_k) : null;
|
||||||
@@ -240,9 +240,9 @@ define('pgadmin.node.rule', [
|
|||||||
then allow to create Rule
|
then allow to create Rule
|
||||||
*/
|
*/
|
||||||
else if('view' == d._type || 'table' == d._type){
|
else if('view' == d._type || 'table' == d._type){
|
||||||
prev_i = t.hasParent(i) ? t.parent(i) : null;
|
let prev_i = t.hasParent(i) ? t.parent(i) : null,
|
||||||
prev_j = t.hasParent(prev_i) ? t.parent(prev_i) : null;
|
prev_j = t.hasParent(prev_i) ? t.parent(prev_i) : null,
|
||||||
var prev_e = prev_j ? t.itemData(prev_j) : null;
|
prev_e = prev_j ? t.itemData(prev_j) : null;
|
||||||
return (!_.isNull(prev_e) && prev_e._type == 'schema');
|
return (!_.isNull(prev_e) && prev_e._type == 'schema');
|
||||||
}
|
}
|
||||||
i = t.hasParent(i) ? t.parent(i) : null;
|
i = t.hasParent(i) ? t.parent(i) : null;
|
||||||
@@ -255,7 +255,7 @@ define('pgadmin.node.rule', [
|
|||||||
},
|
},
|
||||||
|
|
||||||
canCreate_with_rule_enable: function(itemData, item, data) {
|
canCreate_with_rule_enable: function(itemData, item, data) {
|
||||||
var treeData = pgBrowser.tree.getTreeNodeHierarchy(item);
|
let treeData = pgBrowser.tree.getTreeNodeHierarchy(item);
|
||||||
if ('view' in treeData) {
|
if ('view' in treeData) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -265,7 +265,7 @@ define('pgadmin.node.rule', [
|
|||||||
},
|
},
|
||||||
// Check to whether rule is enable ?
|
// Check to whether rule is enable ?
|
||||||
canCreate_with_rule_disable: function(itemData, item, data) {
|
canCreate_with_rule_disable: function(itemData, item, data) {
|
||||||
var treeData = pgBrowser.tree.getTreeNodeHierarchy(item);
|
let treeData = pgBrowser.tree.getTreeNodeHierarchy(item);
|
||||||
if ('view' in treeData) {
|
if ('view' in treeData) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -314,7 +314,7 @@ export class PartitionsSchema extends BaseUISchema {
|
|||||||
editable: false, type: 'select', controlProps: {allowClear: false},
|
editable: false, type: 'select', controlProps: {allowClear: false},
|
||||||
group: 'Partition', deps: ['is_sub_partitioned'],
|
group: 'Partition', deps: ['is_sub_partitioned'],
|
||||||
options: function() {
|
options: function() {
|
||||||
var options = [{
|
let options = [{
|
||||||
label: gettext('Range'), value: 'range',
|
label: gettext('Range'), value: 'range',
|
||||||
},{
|
},{
|
||||||
label: gettext('List'), value: 'list',
|
label: gettext('List'), value: 'list',
|
||||||
@@ -346,7 +346,7 @@ export class PartitionsSchema extends BaseUISchema {
|
|||||||
let columnsExist = false;
|
let columnsExist = false;
|
||||||
let columns = obj.top.sessData.columns;
|
let columns = obj.top.sessData.columns;
|
||||||
|
|
||||||
var maxRowCount = 1000;
|
let maxRowCount = 1000;
|
||||||
if (state.sub_partition_type && state.sub_partition_type == 'list')
|
if (state.sub_partition_type && state.sub_partition_type == 'list')
|
||||||
maxRowCount = 1;
|
maxRowCount = 1;
|
||||||
|
|
||||||
|
|||||||
@@ -156,20 +156,20 @@ define('pgadmin.node.table', [
|
|||||||
},
|
},
|
||||||
/* Truncate table */
|
/* Truncate table */
|
||||||
truncate_table: function(args) {
|
truncate_table: function(args) {
|
||||||
var params = {'cascade': false };
|
let params = {'cascade': false };
|
||||||
this.callbacks.truncate.apply(this, [args, params]);
|
this.callbacks.truncate.apply(this, [args, params]);
|
||||||
},
|
},
|
||||||
/* Truncate table with cascade */
|
/* Truncate table with cascade */
|
||||||
truncate_table_cascade: function(args) {
|
truncate_table_cascade: function(args) {
|
||||||
var params = {'cascade': true };
|
let params = {'cascade': true };
|
||||||
this.callbacks.truncate.apply(this, [args, params]);
|
this.callbacks.truncate.apply(this, [args, params]);
|
||||||
},
|
},
|
||||||
truncate_table_identity: function(args) {
|
truncate_table_identity: function(args) {
|
||||||
var params = {'identity': true };
|
let params = {'identity': true };
|
||||||
this.callbacks.truncate.apply(this, [args, params]);
|
this.callbacks.truncate.apply(this, [args, params]);
|
||||||
},
|
},
|
||||||
truncate: function(args, params) {
|
truncate: function(args, params) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -182,7 +182,7 @@ define('pgadmin.node.table', [
|
|||||||
gettext('Truncate Table'),
|
gettext('Truncate Table'),
|
||||||
gettext('Are you sure you want to truncate table %s?', d.label),
|
gettext('Are you sure you want to truncate table %s?', d.label),
|
||||||
function () {
|
function () {
|
||||||
var data = d;
|
let data = d;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: obj.generate_url(i, 'truncate' , d, true),
|
url: obj.generate_url(i, 'truncate' , d, true),
|
||||||
type:'PUT',
|
type:'PUT',
|
||||||
@@ -215,7 +215,7 @@ define('pgadmin.node.table', [
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
reset_table_stats: function(args) {
|
reset_table_stats: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -228,7 +228,7 @@ define('pgadmin.node.table', [
|
|||||||
gettext('Reset statistics'),
|
gettext('Reset statistics'),
|
||||||
gettext('Are you sure you want to reset the statistics for table "%s"?', d._label),
|
gettext('Are you sure you want to reset the statistics for table "%s"?', d._label),
|
||||||
function () {
|
function () {
|
||||||
var data = d;
|
let data = d;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: obj.generate_url(i, 'reset' , d, true),
|
url: obj.generate_url(i, 'reset' , d, true),
|
||||||
type:'DELETE',
|
type:'DELETE',
|
||||||
@@ -257,7 +257,7 @@ define('pgadmin.node.table', [
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
count_table_rows: function(args) {
|
count_table_rows: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -354,18 +354,18 @@ define('pgadmin.node.table', [
|
|||||||
this.canCreate.apply(this, [itemData, item, data]);
|
this.canCreate.apply(this, [itemData, item, data]);
|
||||||
},
|
},
|
||||||
onTableUpdated: function(_node, _oldNodeData, _newNodeData) {
|
onTableUpdated: function(_node, _oldNodeData, _newNodeData) {
|
||||||
var key, childIDs;
|
let key, childIDs;
|
||||||
if (
|
if (
|
||||||
_newNodeData.is_partitioned &&
|
_newNodeData.is_partitioned &&
|
||||||
'affected_partitions' in _newNodeData
|
'affected_partitions' in _newNodeData
|
||||||
) {
|
) {
|
||||||
var partitions = _newNodeData.affected_partitions,
|
let partitions = _newNodeData.affected_partitions,
|
||||||
newPartitionsIDs = [],
|
newPartitionsIDs = [],
|
||||||
insertChildTreeNodes = [],
|
insertChildTreeNodes = [],
|
||||||
insertChildrenNodes = function() {
|
insertChildrenNodes = function() {
|
||||||
if (!insertChildTreeNodes.length)
|
if (!insertChildTreeNodes.length)
|
||||||
return;
|
return;
|
||||||
var option = insertChildTreeNodes.pop();
|
let option = insertChildTreeNodes.pop();
|
||||||
pgBrowser.addChildTreeNodes(
|
pgBrowser.addChildTreeNodes(
|
||||||
option.treeHierarchy, option.parent, option.type,
|
option.treeHierarchy, option.parent, option.type,
|
||||||
option.childrenIDs, insertChildrenNodes
|
option.childrenIDs, insertChildrenNodes
|
||||||
@@ -383,7 +383,7 @@ define('pgadmin.node.table', [
|
|||||||
schemaNode = pgBrowser.findParentTreeNodeByType(
|
schemaNode = pgBrowser.findParentTreeNodeByType(
|
||||||
_node, 'schema'
|
_node, 'schema'
|
||||||
);
|
);
|
||||||
var detachedBySchema = _.groupBy(
|
let detachedBySchema = _.groupBy(
|
||||||
partitions.detached,
|
partitions.detached,
|
||||||
function(_d) { return parseInt(_d.schema_id); }
|
function(_d) { return parseInt(_d.schema_id); }
|
||||||
);
|
);
|
||||||
@@ -397,7 +397,7 @@ define('pgadmin.node.table', [
|
|||||||
function(_d) { return parseInt(_d.oid); }
|
function(_d) { return parseInt(_d.oid); }
|
||||||
);
|
);
|
||||||
|
|
||||||
var tablesCollNode = pgBrowser.findChildCollectionTreeNode(
|
let tablesCollNode = pgBrowser.findChildCollectionTreeNode(
|
||||||
schemaNode, 'coll-table'
|
schemaNode, 'coll-table'
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -420,7 +420,7 @@ define('pgadmin.node.table', [
|
|||||||
schemaNode = pgBrowser.findParentTreeNodeByType(
|
schemaNode = pgBrowser.findParentTreeNodeByType(
|
||||||
_node, 'schema'
|
_node, 'schema'
|
||||||
);
|
);
|
||||||
var attachedBySchema = _.groupBy(
|
let attachedBySchema = _.groupBy(
|
||||||
partitions.attached,
|
partitions.attached,
|
||||||
function(_d) { return parseInt(_d.schema_id); }
|
function(_d) { return parseInt(_d.schema_id); }
|
||||||
);
|
);
|
||||||
@@ -449,7 +449,7 @@ define('pgadmin.node.table', [
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (newPartitionsIDs.length) {
|
if (newPartitionsIDs.length) {
|
||||||
var partitionsCollNode = pgBrowser.findChildCollectionTreeNode(
|
let partitionsCollNode = pgBrowser.findChildCollectionTreeNode(
|
||||||
_node, 'coll-partition'
|
_node, 'coll-partition'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -640,7 +640,7 @@ export default class TableSchema extends BaseUISchema {
|
|||||||
deps: ['typname', 'is_partitioned'],
|
deps: ['typname', 'is_partitioned'],
|
||||||
depChange: (state, source, topState, actionObj)=>{
|
depChange: (state, source, topState, actionObj)=>{
|
||||||
if(source[0] === 'columns') {
|
if(source[0] === 'columns') {
|
||||||
/* In ERD, attnum is an imp var for setting the links
|
/* In ERD, attnum is an imp let for setting the links
|
||||||
Here, attnum is set to max avail value.
|
Here, attnum is set to max avail value.
|
||||||
*/
|
*/
|
||||||
let columns = state.columns;
|
let columns = state.columns;
|
||||||
@@ -820,7 +820,7 @@ export default class TableSchema extends BaseUISchema {
|
|||||||
editable: false, type: 'select', controlProps: {allowClear: false},
|
editable: false, type: 'select', controlProps: {allowClear: false},
|
||||||
group: 'partition', deps: ['is_partitioned'],
|
group: 'partition', deps: ['is_partitioned'],
|
||||||
options: function() {
|
options: function() {
|
||||||
var options = [{
|
let options = [{
|
||||||
label: gettext('Range'), value: 'range',
|
label: gettext('Range'), value: 'range',
|
||||||
},{
|
},{
|
||||||
label: gettext('List'), value: 'list',
|
label: gettext('List'), value: 'list',
|
||||||
@@ -858,7 +858,7 @@ export default class TableSchema extends BaseUISchema {
|
|||||||
canAddRow: function(state) {
|
canAddRow: function(state) {
|
||||||
let columnsExist = false;
|
let columnsExist = false;
|
||||||
|
|
||||||
var maxRowCount = 1000;
|
let maxRowCount = 1000;
|
||||||
if (state.partition_type && state.partition_type == 'list')
|
if (state.partition_type && state.partition_type == 'list')
|
||||||
maxRowCount = 1;
|
maxRowCount = 1;
|
||||||
|
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ define('pgadmin.node.trigger', [
|
|||||||
callbacks: {
|
callbacks: {
|
||||||
/* Enable trigger */
|
/* Enable trigger */
|
||||||
enable_trigger: function(args) {
|
enable_trigger: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -107,7 +107,7 @@ define('pgadmin.node.trigger', [
|
|||||||
if (!d)
|
if (!d)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var data = d;
|
let data = d;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: obj.generate_url(i, 'enable' , d, true),
|
url: obj.generate_url(i, 'enable' , d, true),
|
||||||
type:'PUT',
|
type:'PUT',
|
||||||
@@ -136,7 +136,7 @@ define('pgadmin.node.trigger', [
|
|||||||
},
|
},
|
||||||
/* Disable trigger */
|
/* Disable trigger */
|
||||||
disable_trigger: function(args) {
|
disable_trigger: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -145,7 +145,7 @@ define('pgadmin.node.trigger', [
|
|||||||
if (!d)
|
if (!d)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var data = d;
|
let data = d;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: obj.generate_url(i, 'enable' , d, true),
|
url: obj.generate_url(i, 'enable' , d, true),
|
||||||
type:'PUT',
|
type:'PUT',
|
||||||
@@ -191,7 +191,7 @@ define('pgadmin.node.trigger', [
|
|||||||
canCreate: SchemaChildTreeNode.isTreeItemOfChildOfSchema,
|
canCreate: SchemaChildTreeNode.isTreeItemOfChildOfSchema,
|
||||||
// Check to whether trigger is disable ?
|
// Check to whether trigger is disable ?
|
||||||
canCreate_with_trigger_enable: function(itemData, item, data) {
|
canCreate_with_trigger_enable: function(itemData, item, data) {
|
||||||
var treeData = pgBrowser.tree.getTreeNodeHierarchy(item);
|
let treeData = pgBrowser.tree.getTreeNodeHierarchy(item);
|
||||||
if ('view' in treeData) {
|
if ('view' in treeData) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -201,7 +201,7 @@ define('pgadmin.node.trigger', [
|
|||||||
},
|
},
|
||||||
// Check to whether trigger is enable ?
|
// Check to whether trigger is enable ?
|
||||||
canCreate_with_trigger_disable: function(itemData, item, data) {
|
canCreate_with_trigger_disable: function(itemData, item, data) {
|
||||||
var treeData = pgBrowser.tree.getTreeNodeHierarchy(item);
|
let treeData = pgBrowser.tree.getTreeNodeHierarchy(item);
|
||||||
if ('view' in treeData) {
|
if ('view' in treeData) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ export class EventSchema extends BaseUISchema {
|
|||||||
type: 'switch', mode: ['create','edit', 'properties'],
|
type: 'switch', mode: ['create','edit', 'properties'],
|
||||||
group: gettext('Events'),
|
group: gettext('Events'),
|
||||||
readonly: (state) => {
|
readonly: (state) => {
|
||||||
var evn_insert = state.evnt_insert;
|
let evn_insert = state.evnt_insert;
|
||||||
if (!_.isUndefined(evn_insert) && obj.nodeInfo && obj.nodeInfo.server.server_type == 'ppas' && obj.isNew(state))
|
if (!_.isUndefined(evn_insert) && obj.nodeInfo && obj.nodeInfo.server.server_type == 'ppas' && obj.isNew(state))
|
||||||
return false;
|
return false;
|
||||||
return obj.inSchemaWithModelCheck(state);
|
return obj.inSchemaWithModelCheck(state);
|
||||||
@@ -62,7 +62,7 @@ export class EventSchema extends BaseUISchema {
|
|||||||
type: 'switch', mode: ['create','edit', 'properties'],
|
type: 'switch', mode: ['create','edit', 'properties'],
|
||||||
group: gettext('Events'),
|
group: gettext('Events'),
|
||||||
readonly: (state) => {
|
readonly: (state) => {
|
||||||
var evn_update = state.evnt_update;
|
let evn_update = state.evnt_update;
|
||||||
if (!_.isUndefined(evn_update) && obj.nodeInfo && obj.nodeInfo.server.server_type == 'ppas' && obj.isNew(state))
|
if (!_.isUndefined(evn_update) && obj.nodeInfo && obj.nodeInfo.server.server_type == 'ppas' && obj.isNew(state))
|
||||||
return false;
|
return false;
|
||||||
return obj.inSchemaWithModelCheck(state);
|
return obj.inSchemaWithModelCheck(state);
|
||||||
@@ -72,7 +72,7 @@ export class EventSchema extends BaseUISchema {
|
|||||||
type: 'switch', mode: ['create','edit', 'properties'],
|
type: 'switch', mode: ['create','edit', 'properties'],
|
||||||
group: gettext('Events'),
|
group: gettext('Events'),
|
||||||
readonly: (state) => {
|
readonly: (state) => {
|
||||||
var evn_delete = state.evnt_delete;
|
let evn_delete = state.evnt_delete;
|
||||||
if (!_.isUndefined(evn_delete) && obj.nodeInfo && obj.nodeInfo.server.server_type == 'ppas' && obj.isNew(state))
|
if (!_.isUndefined(evn_delete) && obj.nodeInfo && obj.nodeInfo.server.server_type == 'ppas' && obj.isNew(state))
|
||||||
return false;
|
return false;
|
||||||
return obj.inSchemaWithModelCheck(state);
|
return obj.inSchemaWithModelCheck(state);
|
||||||
@@ -81,7 +81,7 @@ export class EventSchema extends BaseUISchema {
|
|||||||
id: 'evnt_truncate', label: gettext('TRUNCATE'),
|
id: 'evnt_truncate', label: gettext('TRUNCATE'),
|
||||||
type: 'switch', group: gettext('Events'), deps: ['is_row_trigger', 'is_constraint_trigger'],
|
type: 'switch', group: gettext('Events'), deps: ['is_row_trigger', 'is_constraint_trigger'],
|
||||||
readonly: (state) => {
|
readonly: (state) => {
|
||||||
var is_constraint_trigger = state.is_constraint_trigger,
|
let is_constraint_trigger = state.is_constraint_trigger,
|
||||||
is_row_trigger = state.is_row_trigger,
|
is_row_trigger = state.is_row_trigger,
|
||||||
server_type = obj.nodeInfo ? obj.nodeInfo.server.server_type: null;
|
server_type = obj.nodeInfo ? obj.nodeInfo.server.server_type: null;
|
||||||
if (is_row_trigger == true){
|
if (is_row_trigger == true){
|
||||||
@@ -151,7 +151,7 @@ export default class TriggerSchema extends BaseUISchema {
|
|||||||
disableTransition(state) {
|
disableTransition(state) {
|
||||||
if (!this.isNew())
|
if (!this.isNew())
|
||||||
return true;
|
return true;
|
||||||
var flag = false,
|
let flag = false,
|
||||||
evnt = null,
|
evnt = null,
|
||||||
name = state.name,
|
name = state.name,
|
||||||
evnt_count = 0;
|
evnt_count = 0;
|
||||||
@@ -239,7 +239,7 @@ export default class TriggerSchema extends BaseUISchema {
|
|||||||
|
|
||||||
// If constraint trigger is set to True then row trigger will
|
// If constraint trigger is set to True then row trigger will
|
||||||
// automatically set to True and becomes disable
|
// automatically set to True and becomes disable
|
||||||
var is_constraint_trigger = state.is_constraint_trigger;
|
let is_constraint_trigger = state.is_constraint_trigger;
|
||||||
if(!obj.inSchemaWithModelCheck(state)) {
|
if(!obj.inSchemaWithModelCheck(state)) {
|
||||||
if(!_.isUndefined(is_constraint_trigger) &&
|
if(!_.isUndefined(is_constraint_trigger) &&
|
||||||
is_constraint_trigger === true) {
|
is_constraint_trigger === true) {
|
||||||
@@ -251,7 +251,7 @@ export default class TriggerSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Check if it is row trigger then enabled it.
|
// Check if it is row trigger then enabled it.
|
||||||
var is_row_trigger = state.is_row_trigger;
|
let is_row_trigger = state.is_row_trigger;
|
||||||
if (!_.isUndefined(is_row_trigger) && obj.nodeInfo.server.server_type == 'ppas') {
|
if (!_.isUndefined(is_row_trigger) && obj.nodeInfo.server.server_type == 'ppas') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -267,7 +267,7 @@ export default class TriggerSchema extends BaseUISchema {
|
|||||||
deps: ['tfunction'],
|
deps: ['tfunction'],
|
||||||
readonly: (state) => {
|
readonly: (state) => {
|
||||||
// Disabled if table is a partitioned table.
|
// Disabled if table is a partitioned table.
|
||||||
var tfunction = state.tfunction;
|
let tfunction = state.tfunction;
|
||||||
if (( _.has(obj.nodeInfo, 'table') && _.has(obj.nodeInfo.table, 'is_partitioned') &&
|
if (( _.has(obj.nodeInfo, 'table') && _.has(obj.nodeInfo.table, 'is_partitioned') &&
|
||||||
obj.nodeInfo.table.is_partitioned) || ( _.has(obj.nodeInfo, 'view')) ||
|
obj.nodeInfo.table.is_partitioned) || ( _.has(obj.nodeInfo, 'view')) ||
|
||||||
(obj.nodeInfo.server.server_type === 'ppas' && !_.isUndefined(tfunction) &&
|
(obj.nodeInfo.server.server_type === 'ppas' && !_.isUndefined(tfunction) &&
|
||||||
@@ -290,7 +290,7 @@ export default class TriggerSchema extends BaseUISchema {
|
|||||||
deps: ['is_constraint_trigger'],
|
deps: ['is_constraint_trigger'],
|
||||||
readonly: (state) => {
|
readonly: (state) => {
|
||||||
// If constraint trigger is set to True then only enable it
|
// If constraint trigger is set to True then only enable it
|
||||||
var is_constraint_trigger = state.is_constraint_trigger;
|
let is_constraint_trigger = state.is_constraint_trigger;
|
||||||
if(!obj.inSchemaWithModelCheck(state)) {
|
if(!obj.inSchemaWithModelCheck(state)) {
|
||||||
if(!_.isUndefined(is_constraint_trigger) &&
|
if(!_.isUndefined(is_constraint_trigger) &&
|
||||||
is_constraint_trigger === true) {
|
is_constraint_trigger === true) {
|
||||||
@@ -317,7 +317,7 @@ export default class TriggerSchema extends BaseUISchema {
|
|||||||
deps: ['tgdeferrable', 'is_constraint_trigger'],
|
deps: ['tgdeferrable', 'is_constraint_trigger'],
|
||||||
readonly: (state) => {
|
readonly: (state) => {
|
||||||
// If Deferrable is set to True then only enable it
|
// If Deferrable is set to True then only enable it
|
||||||
var tgdeferrable = state.tgdeferrable;
|
let tgdeferrable = state.tgdeferrable;
|
||||||
if(!obj.inSchemaWithModelCheck(state)) {
|
if(!obj.inSchemaWithModelCheck(state)) {
|
||||||
if(!_.isUndefined(tgdeferrable) && tgdeferrable) {
|
if(!_.isUndefined(tgdeferrable) && tgdeferrable) {
|
||||||
return false;
|
return false;
|
||||||
@@ -351,7 +351,7 @@ export default class TriggerSchema extends BaseUISchema {
|
|||||||
readonly: (state) => {
|
readonly: (state) => {
|
||||||
// We will disable it when EDB PPAS and trigger function is
|
// We will disable it when EDB PPAS and trigger function is
|
||||||
// set to Inline EDB-SPL
|
// set to Inline EDB-SPL
|
||||||
var tfunction = state.tfunction,
|
let tfunction = state.tfunction,
|
||||||
server_type = obj.nodeInfo.server.server_type;
|
server_type = obj.nodeInfo.server.server_type;
|
||||||
if(!obj.inSchemaWithModelCheck(state)) {
|
if(!obj.inSchemaWithModelCheck(state)) {
|
||||||
if(server_type === 'ppas' &&
|
if(server_type === 'ppas' &&
|
||||||
@@ -372,7 +372,7 @@ export default class TriggerSchema extends BaseUISchema {
|
|||||||
id: 'fires', label: gettext('Fires'), deps: ['is_constraint_trigger'],
|
id: 'fires', label: gettext('Fires'), deps: ['is_constraint_trigger'],
|
||||||
mode: ['create','edit', 'properties'], group: gettext('Events'),
|
mode: ['create','edit', 'properties'], group: gettext('Events'),
|
||||||
options: () => {
|
options: () => {
|
||||||
var table_options = [
|
let table_options = [
|
||||||
{label: 'BEFORE', value: 'BEFORE'},
|
{label: 'BEFORE', value: 'BEFORE'},
|
||||||
{label: 'AFTER', value: 'AFTER'}],
|
{label: 'AFTER', value: 'AFTER'}],
|
||||||
view_options = [
|
view_options = [
|
||||||
@@ -391,7 +391,7 @@ export default class TriggerSchema extends BaseUISchema {
|
|||||||
if (!obj.isNew())
|
if (!obj.isNew())
|
||||||
return true;
|
return true;
|
||||||
// If contraint trigger is set to True then only enable it
|
// If contraint trigger is set to True then only enable it
|
||||||
var is_constraint_trigger = state.is_constraint_trigger;
|
let is_constraint_trigger = state.is_constraint_trigger;
|
||||||
if(!obj.inSchemaWithModelCheck(state)) {
|
if(!obj.inSchemaWithModelCheck(state)) {
|
||||||
if(!_.isUndefined(is_constraint_trigger) &&
|
if(!_.isUndefined(is_constraint_trigger) &&
|
||||||
is_constraint_trigger === true) {
|
is_constraint_trigger === true) {
|
||||||
@@ -402,7 +402,7 @@ export default class TriggerSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Check if it is row trigger then enabled it.
|
// Check if it is row trigger then enabled it.
|
||||||
var fires_ = state.fires;
|
let fires_ = state.fires;
|
||||||
if (!_.isUndefined(fires_) && obj.nodeInfo.server.server_type == 'ppas') {
|
if (!_.isUndefined(fires_) && obj.nodeInfo.server.server_type == 'ppas') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -434,7 +434,7 @@ export default class TriggerSchema extends BaseUISchema {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// Enable column only if update event is set true
|
// Enable column only if update event is set true
|
||||||
var isUpdate = state.evnt_update;
|
let isUpdate = state.evnt_update;
|
||||||
if(!_.isUndefined(isUpdate) && isUpdate) {
|
if(!_.isUndefined(isUpdate) && isUpdate) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -460,7 +460,7 @@ export default class TriggerSchema extends BaseUISchema {
|
|||||||
disabled: (state) => {
|
disabled: (state) => {
|
||||||
// We will enable it only when EDB PPAS and trigger function is
|
// We will enable it only when EDB PPAS and trigger function is
|
||||||
// set to Inline EDB-SPL
|
// set to Inline EDB-SPL
|
||||||
var tfunction = state.tfunction,
|
let tfunction = state.tfunction,
|
||||||
server_type = obj.nodeInfo.server.server_type;
|
server_type = obj.nodeInfo.server.server_type;
|
||||||
|
|
||||||
return (server_type !== 'ppas' ||
|
return (server_type !== 'ppas' ||
|
||||||
|
|||||||
@@ -85,12 +85,12 @@ function getRangeSchema(nodeObj, treeNodeInfo, itemNodeData) {
|
|||||||
return new Promise((resolve, reject)=>{
|
return new Promise((resolve, reject)=>{
|
||||||
const api = getApiInstance();
|
const api = getApiInstance();
|
||||||
|
|
||||||
var _url = nodeObj.generate_url.apply(
|
let _url = nodeObj.generate_url.apply(
|
||||||
nodeObj, [
|
nodeObj, [
|
||||||
null, 'get_subopclass', itemNodeData, false,
|
null, 'get_subopclass', itemNodeData, false,
|
||||||
treeNodeInfo,
|
treeNodeInfo,
|
||||||
]);
|
]);
|
||||||
var data;
|
let data;
|
||||||
|
|
||||||
if(!_.isUndefined(typname) && typname != ''){
|
if(!_.isUndefined(typname) && typname != ''){
|
||||||
api.get(_url, {
|
api.get(_url, {
|
||||||
@@ -113,12 +113,12 @@ function getRangeSchema(nodeObj, treeNodeInfo, itemNodeData) {
|
|||||||
return new Promise((resolve, reject)=>{
|
return new Promise((resolve, reject)=>{
|
||||||
const api = getApiInstance();
|
const api = getApiInstance();
|
||||||
|
|
||||||
var _url = nodeObj.generate_url.apply(
|
let _url = nodeObj.generate_url.apply(
|
||||||
nodeObj, [
|
nodeObj, [
|
||||||
null, 'get_canonical', itemNodeData, false,
|
null, 'get_canonical', itemNodeData, false,
|
||||||
treeNodeInfo,
|
treeNodeInfo,
|
||||||
]);
|
]);
|
||||||
var data = [];
|
let data = [];
|
||||||
|
|
||||||
if(!_.isUndefined(name) && name != '' && name != null){
|
if(!_.isUndefined(name) && name != '' && name != null){
|
||||||
api.get(_url, {
|
api.get(_url, {
|
||||||
@@ -140,12 +140,12 @@ function getRangeSchema(nodeObj, treeNodeInfo, itemNodeData) {
|
|||||||
return new Promise((resolve, reject)=>{
|
return new Promise((resolve, reject)=>{
|
||||||
const api = getApiInstance();
|
const api = getApiInstance();
|
||||||
|
|
||||||
var _url = nodeObj.generate_url.apply(
|
let _url = nodeObj.generate_url.apply(
|
||||||
nodeObj, [
|
nodeObj, [
|
||||||
null, 'get_stypediff', itemNodeData, false,
|
null, 'get_stypediff', itemNodeData, false,
|
||||||
treeNodeInfo,
|
treeNodeInfo,
|
||||||
]);
|
]);
|
||||||
var data;
|
let data;
|
||||||
|
|
||||||
if(!_.isUndefined(typname) && typname != '' &&
|
if(!_.isUndefined(typname) && typname != '' &&
|
||||||
!_.isUndefined(opcname) && opcname != ''){
|
!_.isUndefined(opcname) && opcname != ''){
|
||||||
@@ -211,7 +211,7 @@ class EnumerationSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get baseFields() {
|
get baseFields() {
|
||||||
var obj = this;
|
let obj = this;
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
id: 'label', label: gettext('Label'),
|
id: 'label', label: gettext('Label'),
|
||||||
@@ -247,7 +247,7 @@ class RangeSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get baseFields() {
|
get baseFields() {
|
||||||
var obj = this;
|
let obj = this;
|
||||||
return [{
|
return [{
|
||||||
// We will disable range type control in edit mode
|
// We will disable range type control in edit mode
|
||||||
id: 'typname', label: gettext('Subtype'),
|
id: 'typname', label: gettext('Subtype'),
|
||||||
@@ -333,7 +333,7 @@ class RangeSchema extends BaseUISchema {
|
|||||||
return disableCollNameControl;
|
return disableCollNameControl;
|
||||||
|
|
||||||
// To check if collation is allowed?
|
// To check if collation is allowed?
|
||||||
var of_subtype = state.typname;
|
let of_subtype = state.typname;
|
||||||
if(!_.isUndefined(of_subtype)) {
|
if(!_.isUndefined(of_subtype)) {
|
||||||
// iterating over all the types
|
// iterating over all the types
|
||||||
_.each(state.subtypes, function(s) {
|
_.each(state.subtypes, function(s) {
|
||||||
@@ -473,7 +473,7 @@ class ExternalSchema extends BaseUISchema {
|
|||||||
|
|
||||||
// Function will help us to fill combobox
|
// Function will help us to fill combobox
|
||||||
external_func_combo(control) {
|
external_func_combo(control) {
|
||||||
var result = [];
|
let result = [];
|
||||||
_.each(control, function(item) {
|
_.each(control, function(item) {
|
||||||
|
|
||||||
if(item && item.label == '') {
|
if(item && item.label == '') {
|
||||||
@@ -515,7 +515,7 @@ class ExternalSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get baseFields() {
|
get baseFields() {
|
||||||
var obj = this;
|
let obj = this;
|
||||||
return [{
|
return [{
|
||||||
id: 'spacer_ctrl', group: gettext('Required'), mode: ['edit', 'create'], type: 'spacer',
|
id: 'spacer_ctrl', group: gettext('Required'), mode: ['edit', 'create'], type: 'spacer',
|
||||||
},{
|
},{
|
||||||
@@ -892,7 +892,7 @@ class CompositeSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get baseFields() {
|
get baseFields() {
|
||||||
var obj = this;
|
let obj = this;
|
||||||
return [{
|
return [{
|
||||||
id: 'member_name', label: gettext('Member Name'),
|
id: 'member_name', label: gettext('Member Name'),
|
||||||
type: 'text', cell: 'text'
|
type: 'text', cell: 'text'
|
||||||
@@ -951,8 +951,8 @@ class CompositeSchema extends BaseUISchema {
|
|||||||
deps: ['type'],
|
deps: ['type'],
|
||||||
editable: (state) => {
|
editable: (state) => {
|
||||||
// We will store type from selected from combobox
|
// We will store type from selected from combobox
|
||||||
var of_type = state.type;
|
let of_type = state.type;
|
||||||
var flag = false;
|
let flag = false;
|
||||||
if(obj.type_options) {
|
if(obj.type_options) {
|
||||||
// iterating over all the types
|
// iterating over all the types
|
||||||
_.each(obj.type_options, function(o) {
|
_.each(obj.type_options, function(o) {
|
||||||
@@ -1026,7 +1026,7 @@ class DataTypeSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get baseFields() {
|
get baseFields() {
|
||||||
var dataTypeObj = this;
|
let dataTypeObj = this;
|
||||||
return [{
|
return [{
|
||||||
id: 'type',
|
id: 'type',
|
||||||
label: gettext('Data Type'),
|
label: gettext('Data Type'),
|
||||||
@@ -1048,7 +1048,7 @@ class DataTypeSchema extends BaseUISchema {
|
|||||||
controlProps: {
|
controlProps: {
|
||||||
allowClear: false,
|
allowClear: false,
|
||||||
filter: (options) => {
|
filter: (options) => {
|
||||||
var data_types = [];
|
let data_types = [];
|
||||||
options.forEach((option) => {
|
options.forEach((option) => {
|
||||||
if (!(option.value.includes('[]'))) {
|
if (!(option.value.includes('[]'))) {
|
||||||
data_types.push(option);
|
data_types.push(option);
|
||||||
@@ -1089,7 +1089,7 @@ class DataTypeSchema extends BaseUISchema {
|
|||||||
visible: (state) => isVisible(state, 'N'),
|
visible: (state) => isVisible(state, 'N'),
|
||||||
disabled: function(state) {
|
disabled: function(state) {
|
||||||
|
|
||||||
var of_type = state.type,
|
let of_type = state.type,
|
||||||
flag = true;
|
flag = true;
|
||||||
if (state.type_options) {
|
if (state.type_options) {
|
||||||
_.each(state.type_options, function (o) {
|
_.each(state.type_options, function (o) {
|
||||||
@@ -1129,7 +1129,7 @@ class DataTypeSchema extends BaseUISchema {
|
|||||||
cell: 'int',
|
cell: 'int',
|
||||||
visible: (state) => isVisible(state, 'N'),
|
visible: (state) => isVisible(state, 'N'),
|
||||||
disabled: function(state) {
|
disabled: function(state) {
|
||||||
var of_type = state.type,
|
let of_type = state.type,
|
||||||
flag = true;
|
flag = true;
|
||||||
_.each(state.type_options, function(o) {
|
_.each(state.type_options, function(o) {
|
||||||
if ( of_type == o.value ) {
|
if ( of_type == o.value ) {
|
||||||
@@ -1217,7 +1217,7 @@ export default class TypeSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get baseFields() {
|
get baseFields() {
|
||||||
var obj = this;
|
let obj = this;
|
||||||
return [{
|
return [{
|
||||||
id: 'name', label: gettext('Name'), cell: 'string',
|
id: 'name', label: gettext('Name'), cell: 'string',
|
||||||
type: 'text', mode: ['properties', 'create', 'edit'],
|
type: 'text', mode: ['properties', 'create', 'edit'],
|
||||||
@@ -1272,7 +1272,7 @@ export default class TypeSchema extends BaseUISchema {
|
|||||||
},
|
},
|
||||||
controlProps: { allowClear: false },
|
controlProps: { allowClear: false },
|
||||||
options: function() {
|
options: function() {
|
||||||
var typetype = [
|
let typetype = [
|
||||||
{label: gettext('Composite'), value: 'c'},
|
{label: gettext('Composite'), value: 'c'},
|
||||||
{label: gettext('Enumeration'), value: 'e'},
|
{label: gettext('Enumeration'), value: 'e'},
|
||||||
{label: gettext('External'), value: 'b'},
|
{label: gettext('External'), value: 'b'},
|
||||||
@@ -1462,7 +1462,7 @@ export default class TypeSchema extends BaseUISchema {
|
|||||||
// Do not allow to add when shell type is selected
|
// Do not allow to add when shell type is selected
|
||||||
// Clear acl & security label collections as well
|
// Clear acl & security label collections as well
|
||||||
if (state.typtype === 'p') {
|
if (state.typtype === 'p') {
|
||||||
var acl = state.typacl;
|
let acl = state.typacl;
|
||||||
if(acl && acl.length > 0)
|
if(acl && acl.length > 0)
|
||||||
acl.splice(0, acl.length);
|
acl.splice(0, acl.length);
|
||||||
}
|
}
|
||||||
@@ -1480,7 +1480,7 @@ export default class TypeSchema extends BaseUISchema {
|
|||||||
// Do not allow to add when shell type is selected
|
// Do not allow to add when shell type is selected
|
||||||
// Clear acl & security label collections as well
|
// Clear acl & security label collections as well
|
||||||
if (state.typtype === 'p') {
|
if (state.typtype === 'p') {
|
||||||
var secLabs = state.seclabels;
|
let secLabs = state.seclabels;
|
||||||
if(secLabs && secLabs.length > 0)
|
if(secLabs && secLabs.length > 0)
|
||||||
secLabs.splice(0, secLabs.length);
|
secLabs.splice(0, secLabs.length);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ define('pgadmin.node.mview', [
|
|||||||
},
|
},
|
||||||
|
|
||||||
refresh_mview: function(args) {
|
refresh_mview: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -161,7 +161,7 @@ define('pgadmin.node.mview', [
|
|||||||
|
|
||||||
let j = i;
|
let j = i;
|
||||||
while (j) {
|
while (j) {
|
||||||
var node_data = pgBrowser.tree.itemData(j);
|
let node_data = pgBrowser.tree.itemData(j);
|
||||||
if (node_data._type == 'server') {
|
if (node_data._type == 'server') {
|
||||||
server_data = node_data;
|
server_data = node_data;
|
||||||
break;
|
break;
|
||||||
@@ -227,7 +227,7 @@ define('pgadmin.node.mview', [
|
|||||||
},
|
},
|
||||||
|
|
||||||
is_version_supported: function(data, item) {
|
is_version_supported: function(data, item) {
|
||||||
var t = pgAdmin.Browser.tree,
|
let t = pgAdmin.Browser.tree,
|
||||||
i = item || t.selected(),
|
i = item || t.selected(),
|
||||||
info = t && t.getTreeNodeHierarchy(i),
|
info = t && t.getTreeNodeHierarchy(i),
|
||||||
version = _.isUndefined(info) ? 0 : info.server.version;
|
version = _.isUndefined(info) ? 0 : info.server.version;
|
||||||
|
|||||||
@@ -108,13 +108,13 @@ define('pgadmin.node.database', [
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
can_create_database: function(node, item) {
|
can_create_database: function(node, item) {
|
||||||
var treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
let treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
||||||
server = treeData['server'];
|
server = treeData['server'];
|
||||||
|
|
||||||
return server.connected && server.user.can_create_db;
|
return server.connected && server.user.can_create_db;
|
||||||
},
|
},
|
||||||
canCreate: function(itemData, item) {
|
canCreate: function(itemData, item) {
|
||||||
var treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
let treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
||||||
server = treeData['server'];
|
server = treeData['server'];
|
||||||
|
|
||||||
// If server is less than 10 then do not allow 'create' menu
|
// If server is less than 10 then do not allow 'create' menu
|
||||||
@@ -139,7 +139,7 @@ define('pgadmin.node.database', [
|
|||||||
},
|
},
|
||||||
connection_lost: function(i, resp, server_connected) {
|
connection_lost: function(i, resp, server_connected) {
|
||||||
if (pgBrowser.tree) {
|
if (pgBrowser.tree) {
|
||||||
var t = pgBrowser.tree,
|
let t = pgBrowser.tree,
|
||||||
d = i && t.itemData(i),
|
d = i && t.itemData(i),
|
||||||
self = this;
|
self = this;
|
||||||
|
|
||||||
@@ -153,7 +153,7 @@ define('pgadmin.node.database', [
|
|||||||
if (_.isUndefined(d.is_connecting) || !d.is_connecting) {
|
if (_.isUndefined(d.is_connecting) || !d.is_connecting) {
|
||||||
d.is_connecting = true;
|
d.is_connecting = true;
|
||||||
|
|
||||||
var disconnect = function(_i, _d) {
|
let disconnect = function(_i, _d) {
|
||||||
if (_d._id == this._id) {
|
if (_d._id == this._id) {
|
||||||
d.is_connecting = false;
|
d.is_connecting = false;
|
||||||
pgBrowser.Events.off(
|
pgBrowser.Events.off(
|
||||||
@@ -187,7 +187,7 @@ define('pgadmin.node.database', [
|
|||||||
d.is_connecting = false;
|
d.is_connecting = false;
|
||||||
t.unload(i);
|
t.unload(i);
|
||||||
t.setInode(i);
|
t.setInode(i);
|
||||||
var dbIcon = d.isTemplate ? 'icon-database-template-not-connected':'icon-database-not-connected';
|
let dbIcon = d.isTemplate ? 'icon-database-template-not-connected':'icon-database-not-connected';
|
||||||
t.addIcon(i, {icon: dbIcon});
|
t.addIcon(i, {icon: dbIcon});
|
||||||
pgBrowser.Events.trigger(
|
pgBrowser.Events.trigger(
|
||||||
'pgadmin:database:connect:cancelled', i, d, self
|
'pgadmin:database:connect:cancelled', i, d, self
|
||||||
@@ -200,7 +200,7 @@ define('pgadmin.node.database', [
|
|||||||
callbacks: {
|
callbacks: {
|
||||||
/* Connect the database */
|
/* Connect the database */
|
||||||
connect_database: function(args){
|
connect_database: function(args){
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -218,7 +218,7 @@ define('pgadmin.node.database', [
|
|||||||
},
|
},
|
||||||
/* Disconnect the database */
|
/* Disconnect the database */
|
||||||
disconnect_database: function(args) {
|
disconnect_database: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -229,14 +229,14 @@ define('pgadmin.node.database', [
|
|||||||
gettext('Disconnect from database'),
|
gettext('Disconnect from database'),
|
||||||
gettext('Are you sure you want to disconnect from database - %s?', d.label),
|
gettext('Are you sure you want to disconnect from database - %s?', d.label),
|
||||||
function() {
|
function() {
|
||||||
var data = d;
|
let data = d;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: obj.generate_url(i, 'connect', d, true),
|
url: obj.generate_url(i, 'connect', d, true),
|
||||||
type:'DELETE',
|
type:'DELETE',
|
||||||
})
|
})
|
||||||
.done(function(res) {
|
.done(function(res) {
|
||||||
if (res.success == 1) {
|
if (res.success == 1) {
|
||||||
var prv_i = t.parent(i);
|
let prv_i = t.parent(i);
|
||||||
if(res.data.info_prefix) {
|
if(res.data.info_prefix) {
|
||||||
res.info = `${_.escape(res.data.info_prefix)} - ${res.info}`;
|
res.info = `${_.escape(res.data.info_prefix)} - ${res.info}`;
|
||||||
}
|
}
|
||||||
@@ -275,7 +275,7 @@ define('pgadmin.node.database', [
|
|||||||
|
|
||||||
/* Generate the ERD */
|
/* Generate the ERD */
|
||||||
generate_erd: function(args) {
|
generate_erd: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
d = i ? t.itemData(i) : undefined;
|
d = i ? t.itemData(i) : undefined;
|
||||||
@@ -311,7 +311,7 @@ define('pgadmin.node.database', [
|
|||||||
},
|
},
|
||||||
|
|
||||||
refresh: function(cmd, i) {
|
refresh: function(cmd, i) {
|
||||||
var t = pgBrowser.tree,
|
let t = pgBrowser.tree,
|
||||||
item = i || t.selected(),
|
item = i || t.selected(),
|
||||||
d = t.itemData(item);
|
d = t.itemData(item);
|
||||||
|
|
||||||
@@ -367,18 +367,18 @@ define('pgadmin.node.database', [
|
|||||||
if (args && 'node_info' in args) {
|
if (args && 'node_info' in args) {
|
||||||
// If node_info is not present in current object then it might in its
|
// If node_info is not present in current object then it might in its
|
||||||
// parent in case if we used sub node control
|
// parent in case if we used sub node control
|
||||||
var node_info = args.node_info || args.handler.node_info;
|
let node_info = args.node_info || args.handler.node_info;
|
||||||
return 'catalog' in node_info ? false : true;
|
return 'catalog' in node_info ? false : true;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
var connect_to_database = function(obj, data, tree, item, _wasConnected) {
|
let connect_to_database = function(obj, data, tree, item, _wasConnected) {
|
||||||
connect(obj, data, tree, item, _wasConnected);
|
connect(obj, data, tree, item, _wasConnected);
|
||||||
},
|
},
|
||||||
connect = function (obj, data, tree, item, _wasConnected) {
|
connect = function (obj, data, tree, item, _wasConnected) {
|
||||||
var wasConnected = _wasConnected || data.connected,
|
let wasConnected = _wasConnected || data.connected,
|
||||||
onFailure = function(
|
onFailure = function(
|
||||||
xhr, status, error, _model, _data, _tree, _item, _status
|
xhr, status, error, _model, _data, _tree, _item, _status
|
||||||
) {
|
) {
|
||||||
@@ -392,7 +392,7 @@ define('pgadmin.node.database', [
|
|||||||
},
|
},
|
||||||
function(fun_error) {
|
function(fun_error) {
|
||||||
tree.setInode(_item);
|
tree.setInode(_item);
|
||||||
var dbIcon = data.isTemplate ? 'icon-database-template-not-connected':'icon-database-not-connected';
|
let dbIcon = data.isTemplate ? 'icon-database-template-not-connected':'icon-database-not-connected';
|
||||||
tree.addIcon(_item, {icon: dbIcon});
|
tree.addIcon(_item, {icon: dbIcon});
|
||||||
Notify.pgNotifier(fun_error, xhr, gettext('Connect to database.'));
|
Notify.pgNotifier(fun_error, xhr, gettext('Connect to database.'));
|
||||||
}
|
}
|
||||||
@@ -400,7 +400,7 @@ define('pgadmin.node.database', [
|
|||||||
} else {
|
} else {
|
||||||
if (!_status) {
|
if (!_status) {
|
||||||
tree.setInode(_item);
|
tree.setInode(_item);
|
||||||
var dbIcon = data.isTemplate ? 'icon-database-template-not-connected':'icon-database-not-connected';
|
let dbIcon = data.isTemplate ? 'icon-database-template-not-connected':'icon-database-not-connected';
|
||||||
tree.addIcon(_item, {icon: dbIcon});
|
tree.addIcon(_item, {icon: dbIcon});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -430,7 +430,7 @@ define('pgadmin.node.database', [
|
|||||||
if (typeof res.data.icon == 'string') {
|
if (typeof res.data.icon == 'string') {
|
||||||
_tree.removeIcon(_item);
|
_tree.removeIcon(_item);
|
||||||
_data.icon = res.data.icon;
|
_data.icon = res.data.icon;
|
||||||
var dbIcon = _data.isTemplate ? 'icon-database-template-connected':_data.icon;
|
let dbIcon = _data.isTemplate ? 'icon-database-template-connected':_data.icon;
|
||||||
_tree.addIcon(_item, {icon: dbIcon});
|
_tree.addIcon(_item, {icon: dbIcon});
|
||||||
}
|
}
|
||||||
if(res.data.already_connected) {
|
if(res.data.already_connected) {
|
||||||
@@ -462,11 +462,11 @@ define('pgadmin.node.database', [
|
|||||||
},
|
},
|
||||||
onCancel = function(_tree, _item, _data) {
|
onCancel = function(_tree, _item, _data) {
|
||||||
_data.is_connecting = false;
|
_data.is_connecting = false;
|
||||||
var server = _tree.parent(_item);
|
let server = _tree.parent(_item);
|
||||||
_tree.unload(_item);
|
_tree.unload(_item);
|
||||||
_tree.setInode(_item);
|
_tree.setInode(_item);
|
||||||
_tree.removeIcon(_item);
|
_tree.removeIcon(_item);
|
||||||
var dbIcon = data.isTemplate ? 'icon-database-template-not-connected':'icon-database-not-connected';
|
let dbIcon = data.isTemplate ? 'icon-database-template-not-connected':'icon-database-not-connected';
|
||||||
_tree.addIcon(_item, {icon: dbIcon});
|
_tree.addIcon(_item, {icon: dbIcon});
|
||||||
obj.trigger('connect:cancelled', obj, _item, _data);
|
obj.trigger('connect:cancelled', obj, _item, _data);
|
||||||
pgBrowser.Events.trigger(
|
pgBrowser.Events.trigger(
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ define('pgadmin.node.subscription', [
|
|||||||
return new Promise((resolve, reject)=>{
|
return new Promise((resolve, reject)=>{
|
||||||
const api = getApiInstance();
|
const api = getApiInstance();
|
||||||
if(host != undefined && port!= undefined && username!= undefined && db != undefined){
|
if(host != undefined && port!= undefined && username!= undefined && db != undefined){
|
||||||
var _url = pgBrowser.Nodes['cast'].generate_url.apply(
|
let _url = pgBrowser.Nodes['cast'].generate_url.apply(
|
||||||
pgBrowser.Nodes['subscription'], [
|
pgBrowser.Nodes['subscription'], [
|
||||||
null, 'get_publications', itemNodeData, false,
|
null, 'get_publications', itemNodeData, false,
|
||||||
treeNodeInfo,
|
treeNodeInfo,
|
||||||
|
|||||||
@@ -258,7 +258,7 @@ export default class SubscriptionSchema extends BaseUISchema{
|
|||||||
group: gettext('SSL'), mode: ['properties'],
|
group: gettext('SSL'), mode: ['properties'],
|
||||||
deps: ['sslmode'],
|
deps: ['sslmode'],
|
||||||
visible: function(state) {
|
visible: function(state) {
|
||||||
var sslcert = state.sslcert;
|
let sslcert = state.sslcert;
|
||||||
return !_.isUndefined(sslcert) && !_.isNull(sslcert);
|
return !_.isUndefined(sslcert) && !_.isNull(sslcert);
|
||||||
},
|
},
|
||||||
},{
|
},{
|
||||||
@@ -266,7 +266,7 @@ export default class SubscriptionSchema extends BaseUISchema{
|
|||||||
group: gettext('SSL'), mode: ['properties'],
|
group: gettext('SSL'), mode: ['properties'],
|
||||||
deps: ['sslmode'],
|
deps: ['sslmode'],
|
||||||
visible: function(state) {
|
visible: function(state) {
|
||||||
var sslkey = state.sslkey;
|
let sslkey = state.sslkey;
|
||||||
return !_.isUndefined(sslkey) && !_.isNull(sslkey);
|
return !_.isUndefined(sslkey) && !_.isNull(sslkey);
|
||||||
},
|
},
|
||||||
},{
|
},{
|
||||||
@@ -274,7 +274,7 @@ export default class SubscriptionSchema extends BaseUISchema{
|
|||||||
group: gettext('SSL'), mode: ['properties'],
|
group: gettext('SSL'), mode: ['properties'],
|
||||||
deps: ['sslmode'],
|
deps: ['sslmode'],
|
||||||
visible: function(state) {
|
visible: function(state) {
|
||||||
var sslrootcert = state.sslrootcert;
|
let sslrootcert = state.sslrootcert;
|
||||||
return !_.isUndefined(sslrootcert) && !_.isNull(sslrootcert);
|
return !_.isUndefined(sslrootcert) && !_.isNull(sslrootcert);
|
||||||
},
|
},
|
||||||
},{
|
},{
|
||||||
@@ -282,7 +282,7 @@ export default class SubscriptionSchema extends BaseUISchema{
|
|||||||
group: gettext('SSL'), mode: ['properties'],
|
group: gettext('SSL'), mode: ['properties'],
|
||||||
deps: ['sslmode'],
|
deps: ['sslmode'],
|
||||||
visible: function(state) {
|
visible: function(state) {
|
||||||
var sslcrl = state.sslcrl;
|
let sslcrl = state.sslcrl;
|
||||||
return !_.isUndefined(sslcrl) && !_.isNull(sslcrl);
|
return !_.isUndefined(sslcrl) && !_.isNull(sslcrl);
|
||||||
},
|
},
|
||||||
},{
|
},{
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ define('pgadmin.node.pga_job', [
|
|||||||
}),
|
}),
|
||||||
/* Run pgagent job now */
|
/* Run pgagent job now */
|
||||||
run_pga_job_now: function(args) {
|
run_pga_job_now: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ define('pgadmin.node.pga_jobstep', [
|
|||||||
initialize: function() {
|
initialize: function() {
|
||||||
pgBrowser.Node.Model.prototype.initialize.apply(this, arguments);
|
pgBrowser.Node.Model.prototype.initialize.apply(this, arguments);
|
||||||
if (this.isNew() && this.get('jstconntype')) {
|
if (this.isNew() && this.get('jstconntype')) {
|
||||||
var args = arguments.length > 1 && arguments[1];
|
let args = arguments.length > 1 && arguments[1];
|
||||||
|
|
||||||
if (args) {
|
if (args) {
|
||||||
if (!_.isUndefined(args['node_info']) ||
|
if (!_.isUndefined(args['node_info']) ||
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ define('pgadmin.node.resource_group', [
|
|||||||
* Resource Group only supported in PPAS 9.4 and above.
|
* Resource Group only supported in PPAS 9.4 and above.
|
||||||
*/
|
*/
|
||||||
enable: function(node, item) {
|
enable: function(node, item) {
|
||||||
var treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
let treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
||||||
server = treeData['server'];
|
server = treeData['server'];
|
||||||
return server.connected && node.server_type === 'ppas' &&
|
return server.connected && node.server_type === 'ppas' &&
|
||||||
node.version >= 90400;
|
node.version >= 90400;
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ define('pgadmin.node.role', [
|
|||||||
hasSQL: true,
|
hasSQL: true,
|
||||||
width: '550px',
|
width: '550px',
|
||||||
canDrop: function(node, item) {
|
canDrop: function(node, item) {
|
||||||
var treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
let treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
||||||
server = treeData['server'];
|
server = treeData['server'];
|
||||||
/*
|
/*
|
||||||
To Drop a role:
|
To Drop a role:
|
||||||
@@ -112,13 +112,13 @@ define('pgadmin.node.role', [
|
|||||||
}]);
|
}]);
|
||||||
},
|
},
|
||||||
can_create_role: function(node, item) {
|
can_create_role: function(node, item) {
|
||||||
var treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
let treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
||||||
server = treeData['server'];
|
server = treeData['server'];
|
||||||
|
|
||||||
return server.connected && server.user.can_create_role;
|
return server.connected && server.user.can_create_role;
|
||||||
},
|
},
|
||||||
can_reassign_role: function(node, item) {
|
can_reassign_role: function(node, item) {
|
||||||
var treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
let treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
||||||
server = treeData['server'];
|
server = treeData['server'];
|
||||||
|
|
||||||
return server.connected && node.can_login;
|
return server.connected && node.can_login;
|
||||||
|
|||||||
@@ -49,16 +49,16 @@ export default class RoleSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
readOnly(state) {
|
readOnly(state) {
|
||||||
var user = this.nodeInfo.server.user;
|
let user = this.nodeInfo.server.user;
|
||||||
this.oid = state.oid;
|
this.oid = state.oid;
|
||||||
this.isReadOnly = !(user.is_superuser || user.can_create_role);
|
this.isReadOnly = !(user.is_superuser || user.can_create_role);
|
||||||
return (!(user.is_superuser || user.can_create_role) && user.id != state.oid);
|
return (!(user.is_superuser || user.can_create_role) && user.id != state.oid);
|
||||||
}
|
}
|
||||||
|
|
||||||
memberDataFormatter(rawData) {
|
memberDataFormatter(rawData) {
|
||||||
var members = '';
|
let members = '';
|
||||||
if(_.isObject(rawData)) {
|
if(_.isObject(rawData)) {
|
||||||
var withAdmin = '';
|
let withAdmin = '';
|
||||||
rawData.forEach(member => {
|
rawData.forEach(member => {
|
||||||
if(member.admin) { withAdmin = ' [WITH ADMIN]';}
|
if(member.admin) { withAdmin = ' [WITH ADMIN]';}
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
* privilege -> Has privilege? (true/false)
|
* privilege -> Has privilege? (true/false)
|
||||||
* with_grant -> Has privilege with grant option (true/false)
|
* with_grant -> Has privilege with grant option (true/false)
|
||||||
**/
|
**/
|
||||||
var PrivilegeModel = pgNode.Model.extend({
|
let PrivilegeModel = pgNode.Model.extend({
|
||||||
idAttribute: 'privilege_type',
|
idAttribute: 'privilege_type',
|
||||||
defaults: {
|
defaults: {
|
||||||
privilege_type: undefined,
|
privilege_type: undefined,
|
||||||
@@ -44,7 +44,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
* + grantor - Grantor who has given this permission.
|
* + grantor - Grantor who has given this permission.
|
||||||
* + privileges - Privileges for that role.
|
* + privileges - Privileges for that role.
|
||||||
**/
|
**/
|
||||||
var PrivilegeRoleModel = pgNode.PrivilegeRoleModel = pgNode.Model.extend({
|
let PrivilegeRoleModel = pgNode.PrivilegeRoleModel = pgNode.Model.extend({
|
||||||
idAttribute: 'grantee',
|
idAttribute: 'grantee',
|
||||||
defaults: {
|
defaults: {
|
||||||
grantee: undefined,
|
grantee: undefined,
|
||||||
@@ -72,7 +72,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
transform: function() {
|
transform: function() {
|
||||||
var res =
|
let res =
|
||||||
Backgrid.Extension.NodeListByNameCell.prototype.defaults.transform.apply(
|
Backgrid.Extension.NodeListByNameCell.prototype.defaults.transform.apply(
|
||||||
this, arguments
|
this, arguments
|
||||||
);
|
);
|
||||||
@@ -81,7 +81,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
},
|
},
|
||||||
cell: Backgrid.Extension.NodeListByNameCell.extend({
|
cell: Backgrid.Extension.NodeListByNameCell.extend({
|
||||||
initialize: function(opts) {
|
initialize: function(opts) {
|
||||||
var self = this,
|
let self = this,
|
||||||
override_opts = true;
|
override_opts = true;
|
||||||
|
|
||||||
// We would like to override the original options, because - we
|
// We would like to override the original options, because - we
|
||||||
@@ -105,8 +105,8 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
var rerender = function (m) {
|
let rerender = function (m) {
|
||||||
var _self = this;
|
let _self = this;
|
||||||
if ('grantee' in m.changed && this.model.cid != m.cid) {
|
if ('grantee' in m.changed && this.model.cid != m.cid) {
|
||||||
setTimeout(
|
setTimeout(
|
||||||
function() {
|
function() {
|
||||||
@@ -125,7 +125,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
},
|
},
|
||||||
// Remove all the selected roles (though- not mine).
|
// Remove all the selected roles (though- not mine).
|
||||||
omit_selected_roles: function(opts, cell) {
|
omit_selected_roles: function(opts, cell) {
|
||||||
var res = opts(cell),
|
let res = opts(cell),
|
||||||
selected = {},
|
selected = {},
|
||||||
model = cell.model,
|
model = cell.model,
|
||||||
cid = model.cid,
|
cid = model.cid,
|
||||||
@@ -140,7 +140,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
curr_user = node_info.server.user.name;
|
curr_user = node_info.server.user.name;
|
||||||
|
|
||||||
model.collection.each(function(m) {
|
model.collection.each(function(m) {
|
||||||
var grantee = m.get('grantee');
|
let grantee = m.get('grantee');
|
||||||
|
|
||||||
if (m.cid != cid && !_.isUndefined(grantee) &&
|
if (m.cid != cid && !_.isUndefined(grantee) &&
|
||||||
curr_user == m.get('grantor')) {
|
curr_user == m.get('grantor')) {
|
||||||
@@ -194,7 +194,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
/*
|
/*
|
||||||
* Define the collection of the privilege supported by this model
|
* Define the collection of the privilege supported by this model
|
||||||
*/
|
*/
|
||||||
var self = this,
|
let self = this,
|
||||||
models = self.get('privileges'),
|
models = self.get('privileges'),
|
||||||
privileges = this.get('privileges') || {};
|
privileges = this.get('privileges') || {};
|
||||||
|
|
||||||
@@ -210,7 +210,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
this.set('privileges', privileges, {silent: true});
|
this.set('privileges', privileges, {silent: true});
|
||||||
}
|
}
|
||||||
|
|
||||||
var privs = {};
|
let privs = {};
|
||||||
_.each(self.privileges, function(p) {
|
_.each(self.privileges, function(p) {
|
||||||
privs[p] = {
|
privs[p] = {
|
||||||
'privilege_type': p, 'privilege': false, 'with_grant': false,
|
'privilege_type': p, 'privilege': false, 'with_grant': false,
|
||||||
@@ -234,7 +234,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
},
|
},
|
||||||
|
|
||||||
granteeChanged: function() {
|
granteeChanged: function() {
|
||||||
var privileges = this.get('privileges'),
|
let privileges = this.get('privileges'),
|
||||||
grantee = this.get('grantee');
|
grantee = this.get('grantee');
|
||||||
|
|
||||||
// Reset all with grant options if grantee is public.
|
// Reset all with grant options if grantee is public.
|
||||||
@@ -247,7 +247,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
|
|
||||||
toJSON: function() {
|
toJSON: function() {
|
||||||
|
|
||||||
var privileges = [];
|
let privileges = [];
|
||||||
|
|
||||||
if (this.attributes &&
|
if (this.attributes &&
|
||||||
!this.attributes['privileges']) {
|
!this.attributes['privileges']) {
|
||||||
@@ -269,7 +269,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
},
|
},
|
||||||
|
|
||||||
validate: function() {
|
validate: function() {
|
||||||
var errmsg = null,
|
let errmsg = null,
|
||||||
msg;
|
msg;
|
||||||
|
|
||||||
if (_.isUndefined(this.get('grantee'))) {
|
if (_.isUndefined(this.get('grantee'))) {
|
||||||
@@ -282,7 +282,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
|
|
||||||
if (this.attributes &&
|
if (this.attributes &&
|
||||||
this.attributes['privileges']) {
|
this.attributes['privileges']) {
|
||||||
var anyPrivSelected = false;
|
let anyPrivSelected = false;
|
||||||
this.attributes['privileges'].each(
|
this.attributes['privileges'].each(
|
||||||
function(p) {
|
function(p) {
|
||||||
if (p.get('privilege')) {
|
if (p.get('privilege')) {
|
||||||
@@ -306,7 +306,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
/**
|
/**
|
||||||
Custom cell editor for editing privileges.
|
Custom cell editor for editing privileges.
|
||||||
*/
|
*/
|
||||||
var PrivilegeCellEditor = Backgrid.Extension.PrivilegeCellEditor =
|
let PrivilegeCellEditor = Backgrid.Extension.PrivilegeCellEditor =
|
||||||
Backgrid.CellEditor.extend({
|
Backgrid.CellEditor.extend({
|
||||||
tagName: 'div',
|
tagName: 'div',
|
||||||
|
|
||||||
@@ -358,16 +358,16 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
this.$el.attr('tabindex', '1');
|
this.$el.attr('tabindex', '1');
|
||||||
this.$el.attr('target', this.elId);
|
this.$el.attr('target', this.elId);
|
||||||
|
|
||||||
var collection = this.model.get(this.column.get('name')),
|
let collection = this.model.get(this.column.get('name')),
|
||||||
tbl = $('<table aria-label='+this.column.get('label')+'></table>').appendTo(this.$el),
|
tbl = $('<table aria-label='+this.column.get('label')+'></table>').appendTo(this.$el),
|
||||||
self = this,
|
self = this,
|
||||||
privilege = true, with_grant = true;
|
privilege = true, with_grant = true;
|
||||||
|
|
||||||
// For each privilege generate html template.
|
// For each privilege generate html template.
|
||||||
// List down all the Privilege model.
|
// List down all the Privilege model.
|
||||||
var checkbox_id = _.uniqueId();
|
let checkbox_id = _.uniqueId();
|
||||||
collection.each(function(m) {
|
collection.each(function(m) {
|
||||||
var d = m.toJSON();
|
let d = m.toJSON();
|
||||||
|
|
||||||
privilege = (privilege && d.privilege);
|
privilege = (privilege && d.privilege);
|
||||||
with_grant = (with_grant && privilege && d.with_grant);
|
with_grant = (with_grant && privilege && d.with_grant);
|
||||||
@@ -423,7 +423,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
/*
|
/*
|
||||||
* We're looking for checkboxes only.
|
* We're looking for checkboxes only.
|
||||||
*/
|
*/
|
||||||
var $el = $(ev.target),
|
let $el = $(ev.target),
|
||||||
privilege_type = $el.attr('privilege'),
|
privilege_type = $el.attr('privilege'),
|
||||||
type = $el.attr('name'),
|
type = $el.attr('name'),
|
||||||
checked = $el.prop('checked'),
|
checked = $el.prop('checked'),
|
||||||
@@ -439,7 +439,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
* the checkbox for each privilege.
|
* the checkbox for each privilege.
|
||||||
*/
|
*/
|
||||||
if (privilege_type == 'ALL') {
|
if (privilege_type == 'ALL') {
|
||||||
var allPrivilege, allWithGrant;
|
let allPrivilege, allWithGrant;
|
||||||
|
|
||||||
$elGrant = $tr.find('input[name=with_grant]');
|
$elGrant = $tr.find('input[name=with_grant]');
|
||||||
$allPrivileges = $tbl.find(
|
$allPrivileges = $tbl.find(
|
||||||
@@ -513,7 +513,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
* Particular privilege has been selected/deselected, which can be
|
* Particular privilege has been selected/deselected, which can be
|
||||||
* identified using the privilege="X" attribute.
|
* identified using the privilege="X" attribute.
|
||||||
*/
|
*/
|
||||||
var attrs = {};
|
let attrs = {};
|
||||||
|
|
||||||
$tbl = $tr.closest('table');
|
$tbl = $tr.closest('table');
|
||||||
$allPrivileges = $tbl.find(
|
$allPrivileges = $tbl.find(
|
||||||
@@ -568,7 +568,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
}
|
}
|
||||||
this.model.trigger('change', this.model);
|
this.model.trigger('change', this.model);
|
||||||
|
|
||||||
var anySelected = false,
|
let anySelected = false,
|
||||||
msg = null;
|
msg = null;
|
||||||
|
|
||||||
collection.each(function(m) {
|
collection.each(function(m) {
|
||||||
@@ -603,13 +603,13 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
/*
|
/*
|
||||||
* We lost the focus, it's time for us to exit the editor.
|
* We lost the focus, it's time for us to exit the editor.
|
||||||
*/
|
*/
|
||||||
var self = this,
|
let self = this,
|
||||||
/*
|
/*
|
||||||
* Function to determine whether one dom element is descendant of another
|
* Function to determine whether one dom element is descendant of another
|
||||||
* dom element.
|
* dom element.
|
||||||
*/
|
*/
|
||||||
isDescendant = function (parent, child) {
|
isDescendant = function (parent, child) {
|
||||||
var node = child.parentNode;
|
let node = child.parentNode;
|
||||||
while (node != null) {
|
while (node != null) {
|
||||||
if (node == parent) {
|
if (node == parent) {
|
||||||
return true;
|
return true;
|
||||||
@@ -657,12 +657,12 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
* if user clicks somewhere else then we will get tagName as 'BODY'
|
* if user clicks somewhere else then we will get tagName as 'BODY'
|
||||||
* or 'WINDOW'
|
* or 'WINDOW'
|
||||||
*/
|
*/
|
||||||
var is_active_element = document.activeElement.tagName == 'DIV' ||
|
let is_active_element = document.activeElement.tagName == 'DIV' ||
|
||||||
document.activeElement.tagName == 'BUTTON';
|
document.activeElement.tagName == 'BUTTON';
|
||||||
|
|
||||||
if (is_active_element && self.$el[0] != document.activeElement &&
|
if (is_active_element && self.$el[0] != document.activeElement &&
|
||||||
!isDescendant(self.$el[0], document.activeElement)) {
|
!isDescendant(self.$el[0], document.activeElement)) {
|
||||||
var m = self.model;
|
let m = self.model;
|
||||||
m.trigger('backgrid:edited', m, self.column, new Backgrid.Command(ev));
|
m.trigger('backgrid:edited', m, self.column, new Backgrid.Command(ev));
|
||||||
}},10);
|
}},10);
|
||||||
},
|
},
|
||||||
@@ -672,7 +672,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
* This will help us transform the privileges value in proper format to be
|
* This will help us transform the privileges value in proper format to be
|
||||||
* displayed in the cell.
|
* displayed in the cell.
|
||||||
*/
|
*/
|
||||||
var PrivilegeCellFormatter = Backgrid.Extension.PrivilegeCellFormatter =
|
let PrivilegeCellFormatter = Backgrid.Extension.PrivilegeCellFormatter =
|
||||||
function () {/*This is intentional (SonarQube)*/};
|
function () {/*This is intentional (SonarQube)*/};
|
||||||
_.extend(PrivilegeCellFormatter.prototype, {
|
_.extend(PrivilegeCellFormatter.prototype, {
|
||||||
notation: {
|
notation: {
|
||||||
@@ -694,7 +694,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
* string for display.
|
* string for display.
|
||||||
*/
|
*/
|
||||||
fromRaw: function (rawData) {
|
fromRaw: function (rawData) {
|
||||||
var res = '';
|
let res = '';
|
||||||
|
|
||||||
if (rawData instanceof Backbone.Collection) {
|
if (rawData instanceof Backbone.Collection) {
|
||||||
rawData.each(function(m) {
|
rawData.each(function(m) {
|
||||||
@@ -719,7 +719,7 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
editor: PrivilegeCellEditor,
|
editor: PrivilegeCellEditor,
|
||||||
|
|
||||||
initialize: function () {
|
initialize: function () {
|
||||||
var self = this;
|
let self = this;
|
||||||
Backgrid.Cell.prototype.initialize.apply(this, arguments);
|
Backgrid.Cell.prototype.initialize.apply(this, arguments);
|
||||||
|
|
||||||
self.model.on('change:grantee', function() {
|
self.model.on('change:grantee', function() {
|
||||||
@@ -741,9 +741,9 @@ define(['sources/gettext', 'jquery', 'backbone',
|
|||||||
},
|
},
|
||||||
|
|
||||||
saveOrCancel: function (e) {
|
saveOrCancel: function (e) {
|
||||||
var model = this.model;
|
let model = this.model;
|
||||||
var column = this.column;
|
let column = this.column;
|
||||||
var command = new Backgrid.Command(e);
|
let command = new Backgrid.Command(e);
|
||||||
|
|
||||||
if (command.moveUp() || command.moveDown() || command.moveLeft() || command.moveRight() ||
|
if (command.moveUp() || command.moveDown() || command.moveLeft() || command.moveRight() ||
|
||||||
command.save()) {
|
command.save()) {
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ define('pgadmin.node.server', [
|
|||||||
if (_.isUndefined(this.get('label')) ||
|
if (_.isUndefined(this.get('label')) ||
|
||||||
_.isNull(this.get('label')) ||
|
_.isNull(this.get('label')) ||
|
||||||
String(this.get('label')).replace(/^\s+|\s+$/g, '') == '') {
|
String(this.get('label')).replace(/^\s+|\s+$/g, '') == '') {
|
||||||
var errmsg = gettext('Security label must be specified.');
|
let errmsg = gettext('Security label must be specified.');
|
||||||
this.errorModel.set('label', errmsg);
|
this.errorModel.set('label', errmsg);
|
||||||
return errmsg;
|
return errmsg;
|
||||||
}
|
}
|
||||||
@@ -59,7 +59,7 @@ define('pgadmin.node.server', [
|
|||||||
dialogHelp: url_for('help.static', {'filename': 'server_dialog.html'}),
|
dialogHelp: url_for('help.static', {'filename': 'server_dialog.html'}),
|
||||||
label: gettext('Server'),
|
label: gettext('Server'),
|
||||||
canDrop: function(node){
|
canDrop: function(node){
|
||||||
var serverOwner = node.user_id;
|
let serverOwner = node.user_id;
|
||||||
if (serverOwner != current_user.id && !_.isUndefined(serverOwner))
|
if (serverOwner != current_user.id && !_.isUndefined(serverOwner))
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
@@ -178,7 +178,7 @@ define('pgadmin.node.server', [
|
|||||||
return (node && node.connected != true);
|
return (node && node.connected != true);
|
||||||
},
|
},
|
||||||
canCreate: function(node){
|
canCreate: function(node){
|
||||||
var serverOwner = node.user_id;
|
let serverOwner = node.user_id;
|
||||||
if (serverOwner == current_user.id || _.isUndefined(serverOwner))
|
if (serverOwner == current_user.id || _.isUndefined(serverOwner))
|
||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
@@ -227,7 +227,7 @@ define('pgadmin.node.server', [
|
|||||||
callbacks: {
|
callbacks: {
|
||||||
/* Connect the server */
|
/* Connect the server */
|
||||||
connect_server: function(args){
|
connect_server: function(args){
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -240,7 +240,7 @@ define('pgadmin.node.server', [
|
|||||||
},
|
},
|
||||||
/* Disconnect the server */
|
/* Disconnect the server */
|
||||||
disconnect_server: function(args, notify) {
|
disconnect_server: function(args, notify) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = 'item' in input ? input.item : t.selected(),
|
i = 'item' in input ? input.item : t.selected(),
|
||||||
@@ -249,7 +249,7 @@ define('pgadmin.node.server', [
|
|||||||
if (d) {
|
if (d) {
|
||||||
notify = notify || _.isUndefined(notify) || _.isNull(notify);
|
notify = notify || _.isUndefined(notify) || _.isNull(notify);
|
||||||
|
|
||||||
var disconnect = function() {
|
let disconnect = function() {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: obj.generate_url(i, 'connect', d, true),
|
url: obj.generate_url(i, 'connect', d, true),
|
||||||
type:'DELETE',
|
type:'DELETE',
|
||||||
@@ -332,7 +332,7 @@ define('pgadmin.node.server', [
|
|||||||
},
|
},
|
||||||
/* Reload configuration */
|
/* Reload configuration */
|
||||||
reload_configuration: function(args){
|
reload_configuration: function(args){
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -368,7 +368,7 @@ define('pgadmin.node.server', [
|
|||||||
},
|
},
|
||||||
/* Add restore point */
|
/* Add restore point */
|
||||||
restore_point: function(args) {
|
restore_point: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -382,7 +382,7 @@ define('pgadmin.node.server', [
|
|||||||
|
|
||||||
/* Change password */
|
/* Change password */
|
||||||
change_password: function(args){
|
change_password: function(args){
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -426,7 +426,7 @@ define('pgadmin.node.server', [
|
|||||||
|
|
||||||
/* Pause WAL Replay */
|
/* Pause WAL Replay */
|
||||||
pause_wal_replay: function(args) {
|
pause_wal_replay: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -451,7 +451,7 @@ define('pgadmin.node.server', [
|
|||||||
|
|
||||||
/* Resume WAL Replay */
|
/* Resume WAL Replay */
|
||||||
resume_wal_replay: function(args) {
|
resume_wal_replay: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -476,7 +476,7 @@ define('pgadmin.node.server', [
|
|||||||
|
|
||||||
/* Cleat saved database server password */
|
/* Cleat saved database server password */
|
||||||
clear_saved_password: function(args){
|
clear_saved_password: function(args){
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -513,7 +513,7 @@ define('pgadmin.node.server', [
|
|||||||
|
|
||||||
/* Reset stored ssh tunnel password */
|
/* Reset stored ssh tunnel password */
|
||||||
clear_sshtunnel_password: function(args){
|
clear_sshtunnel_password: function(args){
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
@@ -549,7 +549,7 @@ define('pgadmin.node.server', [
|
|||||||
},
|
},
|
||||||
/* Open psql tool for server*/
|
/* Open psql tool for server*/
|
||||||
server_psql_tool: function(args) {
|
server_psql_tool: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
d = i ? t.itemData(i) : undefined;
|
d = i ? t.itemData(i) : undefined;
|
||||||
@@ -567,7 +567,7 @@ define('pgadmin.node.server', [
|
|||||||
},
|
},
|
||||||
connection_lost: function(i, resp) {
|
connection_lost: function(i, resp) {
|
||||||
if (pgBrowser.tree) {
|
if (pgBrowser.tree) {
|
||||||
var t = pgBrowser.tree,
|
let t = pgBrowser.tree,
|
||||||
d = i && t.itemData(i),
|
d = i && t.itemData(i),
|
||||||
self = this;
|
self = this;
|
||||||
|
|
||||||
@@ -580,7 +580,7 @@ define('pgadmin.node.server', [
|
|||||||
if (_.isUndefined(d.is_connecting) || !d.is_connecting) {
|
if (_.isUndefined(d.is_connecting) || !d.is_connecting) {
|
||||||
d.is_connecting = true;
|
d.is_connecting = true;
|
||||||
|
|
||||||
var disconnect = function(_sid) {
|
let disconnect = function(_sid) {
|
||||||
if (d._id == _sid) {
|
if (d._id == _sid) {
|
||||||
d.is_connecting = false;
|
d.is_connecting = false;
|
||||||
// Stop listening to the connection cancellation event
|
// Stop listening to the connection cancellation event
|
||||||
@@ -628,7 +628,7 @@ define('pgadmin.node.server', [
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
var connect_to_server = function(obj, data, tree, item, reconnect) {
|
let connect_to_server = function(obj, data, tree, item, reconnect) {
|
||||||
// Open properties dialog in edit mode
|
// Open properties dialog in edit mode
|
||||||
let server_url = obj.generate_url(item, 'obj', data, true);
|
let server_url = obj.generate_url(item, 'obj', data, true);
|
||||||
// Fetch the updated data
|
// Fetch the updated data
|
||||||
@@ -658,7 +658,7 @@ define('pgadmin.node.server', [
|
|||||||
data.is_connecting = false;
|
data.is_connecting = false;
|
||||||
});
|
});
|
||||||
|
|
||||||
var wasConnected = reconnect || data.connected,
|
let wasConnected = reconnect || data.connected,
|
||||||
onFailure = function(
|
onFailure = function(
|
||||||
xhr, status, error, _node, _data, _tree, _item, _wasConnected
|
xhr, status, error, _node, _data, _tree, _item, _wasConnected
|
||||||
) {
|
) {
|
||||||
@@ -714,7 +714,7 @@ define('pgadmin.node.server', [
|
|||||||
_.extend(_data, res.data);
|
_.extend(_data, res.data);
|
||||||
_data.is_connecting = false;
|
_data.is_connecting = false;
|
||||||
|
|
||||||
var serverInfo = pgBrowser.serverInfo =
|
let serverInfo = pgBrowser.serverInfo =
|
||||||
pgBrowser.serverInfo || {};
|
pgBrowser.serverInfo || {};
|
||||||
serverInfo[_data._id] = _.extend({}, _data);
|
serverInfo[_data._id] = _.extend({}, _data);
|
||||||
|
|
||||||
@@ -763,7 +763,7 @@ define('pgadmin.node.server', [
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var onCancel = function(_tree, _item, _data, _status) {
|
let onCancel = function(_tree, _item, _data, _status) {
|
||||||
_data.is_connecting = false;
|
_data.is_connecting = false;
|
||||||
_tree.unload(_item);
|
_tree.unload(_item);
|
||||||
_tree.setInode(_item);
|
_tree.setInode(_item);
|
||||||
@@ -793,7 +793,7 @@ define('pgadmin.node.server', [
|
|||||||
tree.setLeaf(item);
|
tree.setLeaf(item);
|
||||||
tree.removeIcon(item);
|
tree.removeIcon(item);
|
||||||
tree.addIcon(item, {icon: 'icon-server-connecting'});
|
tree.addIcon(item, {icon: 'icon-server-connecting'});
|
||||||
var url = obj.generate_url(item, 'connect', data, true);
|
let url = obj.generate_url(item, 'connect', data, true);
|
||||||
$.post(url)
|
$.post(url)
|
||||||
.done(function(res) {
|
.done(function(res) {
|
||||||
if (res.success == 1) {
|
if (res.success == 1) {
|
||||||
@@ -811,8 +811,8 @@ define('pgadmin.node.server', [
|
|||||||
data.is_connecting = false;
|
data.is_connecting = false;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
var fetch_connection_status = function(obj, data, tree, item) {
|
let fetch_connection_status = function(obj, data, tree, item) {
|
||||||
var url = obj.generate_url(item, 'connect', data, true);
|
let url = obj.generate_url(item, 'connect', data, true);
|
||||||
|
|
||||||
tree.setLeaf(item);
|
tree.setLeaf(item);
|
||||||
tree.removeIcon(item);
|
tree.removeIcon(item);
|
||||||
@@ -828,7 +828,7 @@ define('pgadmin.node.server', [
|
|||||||
}
|
}
|
||||||
_.extend(data, res.data);
|
_.extend(data, res.data);
|
||||||
|
|
||||||
var serverInfo = pgBrowser.serverInfo = pgBrowser.serverInfo || {};
|
let serverInfo = pgBrowser.serverInfo = pgBrowser.serverInfo || {};
|
||||||
serverInfo[data._id] = _.extend({}, data);
|
serverInfo[data._id] = _.extend({}, data);
|
||||||
|
|
||||||
if(data.errmsg) {
|
if(data.errmsg) {
|
||||||
|
|||||||
@@ -65,10 +65,7 @@ export default class ServerSchema extends BaseUISchema {
|
|||||||
get SSL_MODES() { return ['prefer', 'require', 'verify-ca', 'verify-full']; }
|
get SSL_MODES() { return ['prefer', 'require', 'verify-ca', 'verify-full']; }
|
||||||
|
|
||||||
isShared(state) {
|
isShared(state) {
|
||||||
if(!this.isNew(state) && this.userId != current_user.id && state.shared) {
|
return !this.isNew(state) && this.userId != current_user.id && state.shared;
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
isConnected(state) {
|
isConnected(state) {
|
||||||
@@ -105,11 +102,8 @@ export default class ServerSchema extends BaseUISchema {
|
|||||||
{
|
{
|
||||||
id: 'server_owner', label: gettext('Shared Server Owner'), type: 'text', mode: ['properties'],
|
id: 'server_owner', label: gettext('Shared Server Owner'), type: 'text', mode: ['properties'],
|
||||||
visible: function(state) {
|
visible: function(state) {
|
||||||
var serverOwner = obj.userId;
|
let serverOwner = obj.userId;
|
||||||
if (state.shared && serverOwner != current_user.id && pgAdmin.server_mode == 'True'){
|
return state.shared && serverOwner != current_user.id && pgAdmin.server_mode == 'True';
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -143,16 +137,10 @@ export default class ServerSchema extends BaseUISchema {
|
|||||||
id: 'shared', label: gettext('Shared?'), type: 'switch',
|
id: 'shared', label: gettext('Shared?'), type: 'switch',
|
||||||
mode: ['properties', 'create', 'edit'],
|
mode: ['properties', 'create', 'edit'],
|
||||||
readonly: function(state){
|
readonly: function(state){
|
||||||
var serverOwner = obj.userId;
|
let serverOwner = obj.userId;
|
||||||
if (!obj.isNew(state) && serverOwner != current_user.id) {
|
return !obj.isNew(state) && serverOwner != current_user.id;
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}, visible: function(){
|
}, visible: function(){
|
||||||
if (current_user.is_admin && pgAdmin.server_mode == 'True')
|
return current_user.is_admin && pgAdmin.server_mode == 'True';
|
||||||
return true;
|
|
||||||
|
|
||||||
return false;
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -229,9 +217,7 @@ export default class ServerSchema extends BaseUISchema {
|
|||||||
return state.connect_now && obj.isNew(state);
|
return state.connect_now && obj.isNew(state);
|
||||||
},
|
},
|
||||||
disabled: function(state) {
|
disabled: function(state) {
|
||||||
if (!current_user.allow_save_password || state.kerberos_conn)
|
return !current_user.allow_save_password || state.kerberos_conn;
|
||||||
return true;
|
|
||||||
return false;
|
|
||||||
},
|
},
|
||||||
},{
|
},{
|
||||||
id: 'role', label: gettext('Role'), type: 'text', group: gettext('Connection'),
|
id: 'role', label: gettext('Role'), type: 'text', group: gettext('Connection'),
|
||||||
@@ -301,7 +287,7 @@ export default class ServerSchema extends BaseUISchema {
|
|||||||
group: gettext('SSL'), mode: ['properties'],
|
group: gettext('SSL'), mode: ['properties'],
|
||||||
deps: ['sslmode'],
|
deps: ['sslmode'],
|
||||||
visible: function(state) {
|
visible: function(state) {
|
||||||
var sslcert = state.sslcert;
|
let sslcert = state.sslcert;
|
||||||
return !_.isUndefined(sslcert) && !_.isNull(sslcert);
|
return !_.isUndefined(sslcert) && !_.isNull(sslcert);
|
||||||
},
|
},
|
||||||
},{
|
},{
|
||||||
@@ -309,7 +295,7 @@ export default class ServerSchema extends BaseUISchema {
|
|||||||
group: gettext('SSL'), mode: ['properties'],
|
group: gettext('SSL'), mode: ['properties'],
|
||||||
deps: ['sslmode'],
|
deps: ['sslmode'],
|
||||||
visible: function(state) {
|
visible: function(state) {
|
||||||
var sslkey = state.sslkey;
|
let sslkey = state.sslkey;
|
||||||
return !_.isUndefined(sslkey) && !_.isNull(sslkey);
|
return !_.isUndefined(sslkey) && !_.isNull(sslkey);
|
||||||
},
|
},
|
||||||
},{
|
},{
|
||||||
@@ -317,7 +303,7 @@ export default class ServerSchema extends BaseUISchema {
|
|||||||
group: gettext('SSL'), mode: ['properties'],
|
group: gettext('SSL'), mode: ['properties'],
|
||||||
deps: ['sslmode'],
|
deps: ['sslmode'],
|
||||||
visible: function(state) {
|
visible: function(state) {
|
||||||
var sslrootcert = state.sslrootcert;
|
let sslrootcert = state.sslrootcert;
|
||||||
return !_.isUndefined(sslrootcert) && !_.isNull(sslrootcert);
|
return !_.isUndefined(sslrootcert) && !_.isNull(sslrootcert);
|
||||||
},
|
},
|
||||||
},{
|
},{
|
||||||
@@ -325,7 +311,7 @@ export default class ServerSchema extends BaseUISchema {
|
|||||||
group: gettext('SSL'), mode: ['properties'],
|
group: gettext('SSL'), mode: ['properties'],
|
||||||
deps: ['sslmode'],
|
deps: ['sslmode'],
|
||||||
visible: function(state) {
|
visible: function(state) {
|
||||||
var sslcrl = state.sslcrl;
|
let sslcrl = state.sslcrl;
|
||||||
return !_.isUndefined(sslcrl) && !_.isNull(sslcrl);
|
return !_.isUndefined(sslcrl) && !_.isNull(sslcrl);
|
||||||
},
|
},
|
||||||
},{
|
},{
|
||||||
@@ -435,7 +421,7 @@ export default class ServerSchema extends BaseUISchema {
|
|||||||
id: 'passfile', label: gettext('Password file'), type: 'text',
|
id: 'passfile', label: gettext('Password file'), type: 'text',
|
||||||
group: gettext('Advanced'), mode: ['properties'],
|
group: gettext('Advanced'), mode: ['properties'],
|
||||||
visible: function(state) {
|
visible: function(state) {
|
||||||
var passfile = state.passfile;
|
let passfile = state.passfile;
|
||||||
return !_.isUndefined(passfile) && !_.isNull(passfile);
|
return !_.isUndefined(passfile) && !_.isNull(passfile);
|
||||||
},
|
},
|
||||||
},{
|
},{
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ export default class VacuumSettingsSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get baseFields() {
|
get baseFields() {
|
||||||
var obj = this;
|
let obj = this;
|
||||||
return [{
|
return [{
|
||||||
id: 'autovacuum_custom', label: gettext('Custom auto-vacuum?'),
|
id: 'autovacuum_custom', label: gettext('Custom auto-vacuum?'),
|
||||||
group: gettext('Table'), mode: ['edit', 'create'], skipChange: true,
|
group: gettext('Table'), mode: ['edit', 'create'], skipChange: true,
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
* cellFunction for variable control.
|
* cellFunction for variable control.
|
||||||
* This function returns cell class depending on vartype.
|
* This function returns cell class depending on vartype.
|
||||||
*/
|
*/
|
||||||
var cellFunction = function(model) {
|
let cellFunction = function(model) {
|
||||||
var self = this,
|
let self = this,
|
||||||
name = model.get('name'),
|
name = model.get('name'),
|
||||||
availVariables = {};
|
availVariables = {};
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var variable = name ? availVariables[name]: undefined,
|
let variable = name ? availVariables[name]: undefined,
|
||||||
value = model.get('value');
|
value = model.get('value');
|
||||||
|
|
||||||
switch(variable && variable.vartype) {
|
switch(variable && variable.vartype) {
|
||||||
@@ -79,19 +79,19 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
* This row will define behaviour or value column cell depending upon
|
* This row will define behaviour or value column cell depending upon
|
||||||
* variable name.
|
* variable name.
|
||||||
*/
|
*/
|
||||||
var VariableRow = Backgrid.Row.extend({
|
let VariableRow = Backgrid.Row.extend({
|
||||||
modelDuplicateClass: 'bg-model-duplicate',
|
modelDuplicateClass: 'bg-model-duplicate',
|
||||||
|
|
||||||
initialize: function () {
|
initialize: function () {
|
||||||
Backgrid.Row.prototype.initialize.apply(this, arguments);
|
Backgrid.Row.prototype.initialize.apply(this, arguments);
|
||||||
var self = this;
|
let self = this;
|
||||||
self.model.on('change:name', function() {
|
self.model.on('change:name', function() {
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
self.columns.each(function(col) {
|
self.columns.each(function(col) {
|
||||||
if (col.get('name') == 'value') {
|
if (col.get('name') == 'value') {
|
||||||
// Reset old value
|
// Reset old value
|
||||||
self.model.set({'value': undefined}, {silent:true});
|
self.model.set({'value': undefined}, {silent:true});
|
||||||
var idx = self.columns.indexOf(col),
|
let idx = self.columns.indexOf(col),
|
||||||
cf = col.get('cellFunction'),
|
cf = col.get('cellFunction'),
|
||||||
cell = new (cf.apply(col, [self.model]))({
|
cell = new (cf.apply(col, [self.model]))({
|
||||||
column: col,
|
column: col,
|
||||||
@@ -122,7 +122,7 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
* VariableModel used to represent configuration parameters (variables tab)
|
* VariableModel used to represent configuration parameters (variables tab)
|
||||||
* for database objects.
|
* for database objects.
|
||||||
**/
|
**/
|
||||||
var VariableModel = pgNode.VariableModel = pgNode.Model.extend({
|
let VariableModel = pgNode.VariableModel = pgNode.Model.extend({
|
||||||
keys: ['name'],
|
keys: ['name'],
|
||||||
defaults: {
|
defaults: {
|
||||||
name: undefined,
|
name: undefined,
|
||||||
@@ -142,7 +142,7 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
|
|
||||||
// Immediately process options as we need them before render.
|
// Immediately process options as we need them before render.
|
||||||
|
|
||||||
var opVals = _.clone(this.optionValues ||
|
let opVals = _.clone(this.optionValues ||
|
||||||
(_.isFunction(this.column.get('options')) ?
|
(_.isFunction(this.column.get('options')) ?
|
||||||
(this.column.get('options'))(this) :
|
(this.column.get('options'))(this) :
|
||||||
this.column.get('options')));
|
this.column.get('options')));
|
||||||
@@ -153,7 +153,7 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
url: 'vopts',
|
url: 'vopts',
|
||||||
select2: { allowClear: false },
|
select2: { allowClear: false },
|
||||||
transform: function(vars, cell) {
|
transform: function(vars, cell) {
|
||||||
var res = [],
|
let res = [],
|
||||||
availVariables = {};
|
availVariables = {};
|
||||||
|
|
||||||
_.each(vars, function(v) {
|
_.each(vars, function(v) {
|
||||||
@@ -180,7 +180,7 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
node: 'role', cell: Backgrid.Extension.NodeListByNameCell},
|
node: 'role', cell: Backgrid.Extension.NodeListByNameCell},
|
||||||
],
|
],
|
||||||
toJSON: function() {
|
toJSON: function() {
|
||||||
var d = Backbone.Model.prototype.toJSON.apply(this);
|
let d = Backbone.Model.prototype.toJSON.apply(this);
|
||||||
|
|
||||||
// Remove not defined values from model values.
|
// Remove not defined values from model values.
|
||||||
// i.e.
|
// i.e.
|
||||||
@@ -196,7 +196,7 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
return d;
|
return d;
|
||||||
},
|
},
|
||||||
validate: function() {
|
validate: function() {
|
||||||
var msg = null;
|
let msg = null;
|
||||||
if (_.isUndefined(this.get('name')) ||
|
if (_.isUndefined(this.get('name')) ||
|
||||||
_.isNull(this.get('name')) ||
|
_.isNull(this.get('name')) ||
|
||||||
String(this.get('name')).replace(/^\s+|\s+$/g, '') == '') {
|
String(this.get('name')).replace(/^\s+|\s+$/g, '') == '') {
|
||||||
@@ -228,7 +228,7 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
hasRole: false,
|
hasRole: false,
|
||||||
|
|
||||||
initialize: function(opts) {
|
initialize: function(opts) {
|
||||||
var self = this,
|
let self = this,
|
||||||
keys = ['name'];
|
keys = ['name'];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -266,7 +266,7 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
|
|
||||||
self.availVariables = {};
|
self.availVariables = {};
|
||||||
|
|
||||||
var gridCols = ['name', 'value'];
|
let gridCols = ['name', 'value'];
|
||||||
|
|
||||||
if (self.hasDatabase) {
|
if (self.hasDatabase) {
|
||||||
gridCols.push('database');
|
gridCols.push('database');
|
||||||
@@ -287,7 +287,7 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
* Get the variable data for this node.
|
* Get the variable data for this node.
|
||||||
*/
|
*/
|
||||||
getVariables: function() {
|
getVariables: function() {
|
||||||
var self = this,
|
let self = this,
|
||||||
url = this.field.get('url'),
|
url = this.field.get('url'),
|
||||||
m = self.model;
|
m = self.model;
|
||||||
|
|
||||||
@@ -295,7 +295,7 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (url && !m.isNew()) {
|
if (url && !m.isNew()) {
|
||||||
var node = self.field.get('node'),
|
let node = self.field.get('node'),
|
||||||
node_data = self.field.get('node_data'),
|
node_data = self.field.get('node_data'),
|
||||||
node_info = self.field.get('node_info'),
|
node_info = self.field.get('node_info'),
|
||||||
full_url = node.generate_url.apply(
|
full_url = node.generate_url.apply(
|
||||||
@@ -336,7 +336,7 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
|
|
||||||
showGridControl: function(data) {
|
showGridControl: function(data) {
|
||||||
|
|
||||||
var self = this,
|
let self = this,
|
||||||
titleTmpl = _.template([
|
titleTmpl = _.template([
|
||||||
'<div class=\'subnode-header\'>',
|
'<div class=\'subnode-header\'>',
|
||||||
'<span class=\'control-label\'><%-label%></span>',
|
'<span class=\'control-label\'><%-label%></span>',
|
||||||
@@ -352,7 +352,7 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
self.grid.remove();
|
self.grid.remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
var gridSchema = _.clone(this.gridSchema);
|
let gridSchema = _.clone(this.gridSchema);
|
||||||
|
|
||||||
_.each(gridSchema.columns, function(col) {
|
_.each(gridSchema.columns, function(col) {
|
||||||
if (col.name == 'value') {
|
if (col.name == 'value') {
|
||||||
@@ -372,7 +372,7 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
// Change format of each of the data
|
// Change format of each of the data
|
||||||
// Because - data coming from the server is in string format
|
// Because - data coming from the server is in string format
|
||||||
self.collection.each(function(model) {
|
self.collection.each(function(model) {
|
||||||
var name = model.get('name'), val;
|
let name = model.get('name'), val;
|
||||||
|
|
||||||
if (name in self.availVariables) {
|
if (name in self.availVariables) {
|
||||||
switch(self.availVariables[name].vartype) {
|
switch(self.availVariables[name].vartype) {
|
||||||
@@ -393,7 +393,7 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Initialize a new Grid instance
|
// Initialize a new Grid instance
|
||||||
var grid = self.grid = new Backgrid.Grid({
|
let grid = self.grid = new Backgrid.Grid({
|
||||||
columns: gridSchema.columns,
|
columns: gridSchema.columns,
|
||||||
collection: self.collection,
|
collection: self.collection,
|
||||||
row: VariableRow,
|
row: VariableRow,
|
||||||
@@ -407,18 +407,18 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
if (!(data.disabled || data.canAdd == false)) {
|
if (!(data.disabled || data.canAdd == false)) {
|
||||||
$gridBody.find('button.add').first().on('click',(e) => {
|
$gridBody.find('button.add').first().on('click',(e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
var canAddRow = _.isFunction(data.canAddRow) ?
|
let canAddRow = _.isFunction(data.canAddRow) ?
|
||||||
data.canAddRow.apply(self, [self.model]) : true;
|
data.canAddRow.apply(self, [self.model]) : true;
|
||||||
if (canAddRow) {
|
if (canAddRow) {
|
||||||
|
|
||||||
var allowMultipleEmptyRows = !!self.field.get('allowMultipleEmptyRows');
|
let allowMultipleEmptyRows = !!self.field.get('allowMultipleEmptyRows');
|
||||||
|
|
||||||
// If allowMultipleEmptyRows is not set or is false then don't allow second new empty row.
|
// If allowMultipleEmptyRows is not set or is false then don't allow second new empty row.
|
||||||
// There should be only one empty row.
|
// There should be only one empty row.
|
||||||
if (!allowMultipleEmptyRows && self.collection) {
|
if (!allowMultipleEmptyRows && self.collection) {
|
||||||
var isEmpty = false;
|
let isEmpty = false;
|
||||||
self.collection.each(function(model) {
|
self.collection.each(function(model) {
|
||||||
var modelValues = [];
|
let modelValues = [];
|
||||||
_.each(model.attributes, function(val) {
|
_.each(model.attributes, function(val) {
|
||||||
modelValues.push(val);
|
modelValues.push(val);
|
||||||
});
|
});
|
||||||
@@ -432,7 +432,7 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$(grid.body.$el.find($('tr.new'))).removeClass('new');
|
$(grid.body.$el.find($('tr.new'))).removeClass('new');
|
||||||
var m = new (data.model) (null, {
|
let m = new (data.model) (null, {
|
||||||
silent: true,
|
silent: true,
|
||||||
handler: self.collection,
|
handler: self.collection,
|
||||||
top: self.model.top || self.model,
|
top: self.model.top || self.model,
|
||||||
@@ -441,7 +441,7 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
});
|
});
|
||||||
self.collection.add(m);
|
self.collection.add(m);
|
||||||
|
|
||||||
var idx = self.collection.indexOf(m),
|
let idx = self.collection.indexOf(m),
|
||||||
newRow = grid.body.rows[idx].$el;
|
newRow = grid.body.rows[idx].$el;
|
||||||
|
|
||||||
newRow.addClass('new');
|
newRow.addClass('new');
|
||||||
@@ -459,7 +459,7 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
addVariable: function(ev) {
|
addVariable: function(ev) {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
|
|
||||||
var self = this,
|
let self = this,
|
||||||
m = new (self.field.get('model'))(
|
m = new (self.field.get('model'))(
|
||||||
self.headerData.toJSON(), {
|
self.headerData.toJSON(), {
|
||||||
silent: true, top: self.collection.top,
|
silent: true, top: self.collection.top,
|
||||||
@@ -469,14 +469,14 @@ function(gettext, $, Backbone, Backform, Backgrid, pgNode) {
|
|||||||
|
|
||||||
coll.add(m);
|
coll.add(m);
|
||||||
|
|
||||||
var idx = coll.indexOf(m);
|
let idx = coll.indexOf(m);
|
||||||
|
|
||||||
// idx may not be always > -1 because our UniqueColCollection may
|
// idx may not be always > -1 because our UniqueColCollection may
|
||||||
// remove 'm' if duplicate value found.
|
// remove 'm' if duplicate value found.
|
||||||
if (idx > -1) {
|
if (idx > -1) {
|
||||||
self.$grid.find('.new').removeClass('new');
|
self.$grid.find('.new').removeClass('new');
|
||||||
|
|
||||||
var newRow = self.grid.body.rows[idx].$el;
|
let newRow = self.grid.body.rows[idx].$el;
|
||||||
|
|
||||||
newRow.addClass('new');
|
newRow.addClass('new');
|
||||||
$(newRow).pgMakeVisible('backform-tab');
|
$(newRow).pgMakeVisible('backform-tab');
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ export function getNodeVariableSchema(nodeObj, treeNodeInfo, itemNodeData, hasDa
|
|||||||
}
|
}
|
||||||
return new VariableSchema(
|
return new VariableSchema(
|
||||||
()=>getNodeAjaxOptions('vopts', nodeObj, treeNodeInfo, itemNodeData, null, (vars)=>{
|
()=>getNodeAjaxOptions('vopts', nodeObj, treeNodeInfo, itemNodeData, null, (vars)=>{
|
||||||
var res = [];
|
let res = [];
|
||||||
_.each(vars, function(v) {
|
_.each(vars, function(v) {
|
||||||
res.push({
|
res.push({
|
||||||
'value': v.name,
|
'value': v.name,
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ define('pgadmin.node.tablespace', [
|
|||||||
]);
|
]);
|
||||||
},
|
},
|
||||||
can_create_tablespace: function(node, item) {
|
can_create_tablespace: function(node, item) {
|
||||||
var treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
let treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
||||||
server = treeData['server'];
|
server = treeData['server'];
|
||||||
|
|
||||||
return server.connected && server.user.is_superuser;
|
return server.connected && server.user.is_superuser;
|
||||||
@@ -103,10 +103,10 @@ define('pgadmin.node.tablespace', [
|
|||||||
|
|
||||||
// Default values!
|
// Default values!
|
||||||
initialize: function(attrs, args) {
|
initialize: function(attrs, args) {
|
||||||
var isNew = (_.size(attrs) === 0);
|
let isNew = (_.size(attrs) === 0);
|
||||||
|
|
||||||
if (isNew) {
|
if (isNew) {
|
||||||
var userInfo = pgBrowser.serverInfo[args.node_info.server._id].user;
|
let userInfo = pgBrowser.serverInfo[args.node_info.server._id].user;
|
||||||
this.set({'spcuser': userInfo.name}, {silent: true});
|
this.set({'spcuser': userInfo.name}, {silent: true});
|
||||||
}
|
}
|
||||||
pgBrowser.Node.Model.prototype.initialize.apply(this, arguments);
|
pgBrowser.Node.Model.prototype.initialize.apply(this, arguments);
|
||||||
|
|||||||
@@ -39,13 +39,13 @@ define('pgadmin.node.server_group', [
|
|||||||
},
|
},
|
||||||
getSchema: ()=>new ServerGroupSchema(),
|
getSchema: ()=>new ServerGroupSchema(),
|
||||||
canDrop: function(itemData) {
|
canDrop: function(itemData) {
|
||||||
var serverOwner = itemData.user_id;
|
let serverOwner = itemData.user_id;
|
||||||
if (serverOwner != current_user.id && !_.isUndefined(serverOwner))
|
if (serverOwner != current_user.id && !_.isUndefined(serverOwner))
|
||||||
return false;
|
return false;
|
||||||
return true; },
|
return true; },
|
||||||
dropAsRemove: true,
|
dropAsRemove: true,
|
||||||
canDelete: function(i) {
|
canDelete: function(i) {
|
||||||
var s = pgAdmin.Browser.tree.siblings(i, true);
|
let s = pgAdmin.Browser.tree.siblings(i, true);
|
||||||
|
|
||||||
/* This is the only server group - we can't remove it*/
|
/* This is the only server group - we can't remove it*/
|
||||||
if (!s || s.length == 0) {
|
if (!s || s.length == 0) {
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ define([
|
|||||||
'pgadmin.browser.node', 'backgrid.select.all',
|
'pgadmin.browser.node', 'backgrid.select.all',
|
||||||
], function(gettext, pgAdmin, generateUrl) {
|
], function(gettext, pgAdmin, generateUrl) {
|
||||||
|
|
||||||
var pgBrowser = pgAdmin.Browser = pgAdmin.Browser || {};
|
let pgBrowser = pgAdmin.Browser = pgAdmin.Browser || {};
|
||||||
|
|
||||||
// It has already been defined.
|
// It has already been defined.
|
||||||
// Avoid running this script again.
|
// Avoid running this script again.
|
||||||
@@ -103,17 +103,17 @@ define([
|
|||||||
* Using list, and collection functions of a node to get the nodes
|
* Using list, and collection functions of a node to get the nodes
|
||||||
* under the collection, and properties of the collection respectively.
|
* under the collection, and properties of the collection respectively.
|
||||||
*/
|
*/
|
||||||
var opURL = {
|
let opURL = {
|
||||||
'properties': 'obj',
|
'properties': 'obj',
|
||||||
'children': 'nodes',
|
'children': 'nodes',
|
||||||
'drop': 'obj',
|
'drop': 'obj',
|
||||||
},
|
},
|
||||||
self = this;
|
self = this;
|
||||||
var collectionPickFunction = function (treeInfoValue, treeInfoKey) {
|
let collectionPickFunction = function (treeInfoValue, treeInfoKey) {
|
||||||
return (treeInfoKey != self.type);
|
return (treeInfoKey != self.type);
|
||||||
};
|
};
|
||||||
var treeInfo = pgBrowser.tree.getTreeNodeHierarchy(item);
|
let treeInfo = pgBrowser.tree.getTreeNodeHierarchy(item);
|
||||||
var actionType = type in opURL ? opURL[type] : type;
|
let actionType = type in opURL ? opURL[type] : type;
|
||||||
return generateUrl.generate_url(
|
return generateUrl.generate_url(
|
||||||
pgAdmin.Browser.URL, treeInfo, actionType, self.node,
|
pgAdmin.Browser.URL, treeInfo, actionType, self.node,
|
||||||
collectionPickFunction
|
collectionPickFunction
|
||||||
@@ -130,7 +130,7 @@ define([
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
show_psql_tool: function(args) {
|
show_psql_tool: function(args) {
|
||||||
var input = args || {},
|
let input = args || {},
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
d = i ? t.itemData(i) : undefined;
|
d = i ? t.itemData(i) : undefined;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import _ from 'lodash';
|
|||||||
define([
|
define([
|
||||||
'sources/pgadmin', 'jquery', 'backbone', 'sources/utils',
|
'sources/pgadmin', 'jquery', 'backbone', 'sources/utils',
|
||||||
], function(pgAdmin, $, Backbone, pgadminUtils) {
|
], function(pgAdmin, $, Backbone, pgadminUtils) {
|
||||||
var pgBrowser = pgAdmin.Browser = pgAdmin.Browser || {};
|
let pgBrowser = pgAdmin.Browser = pgAdmin.Browser || {};
|
||||||
|
|
||||||
pgBrowser.DataModel = Backbone.Model.extend({
|
pgBrowser.DataModel = Backbone.Model.extend({
|
||||||
/*
|
/*
|
||||||
@@ -19,15 +19,15 @@ define([
|
|||||||
*/
|
*/
|
||||||
on_server: false,
|
on_server: false,
|
||||||
parse: function(res) {
|
parse: function(res) {
|
||||||
var self = this;
|
let self = this;
|
||||||
if (res && _.isObject(res) && 'node' in res && res['node']) {
|
if (res && _.isObject(res) && 'node' in res && res['node']) {
|
||||||
self.tnode = _.extend({}, res.node);
|
self.tnode = _.extend({}, res.node);
|
||||||
delete res.node;
|
delete res.node;
|
||||||
}
|
}
|
||||||
var objectOp = function(schema) {
|
let objectOp = function(schema) {
|
||||||
if (schema && _.isArray(schema)) {
|
if (schema && _.isArray(schema)) {
|
||||||
_.each(schema, function(s) {
|
_.each(schema, function(s) {
|
||||||
var obj, val;
|
let obj, val;
|
||||||
switch (s.type) {
|
switch (s.type) {
|
||||||
case 'collection':
|
case 'collection':
|
||||||
obj = self.get(s.id);
|
obj = self.get(s.id);
|
||||||
@@ -132,7 +132,7 @@ define([
|
|||||||
},
|
},
|
||||||
primary_key: function() {
|
primary_key: function() {
|
||||||
if (this.keys && _.isArray(this.keys)) {
|
if (this.keys && _.isArray(this.keys)) {
|
||||||
var res = {},
|
let res = {},
|
||||||
self = this;
|
self = this;
|
||||||
|
|
||||||
_.each(self.keys, function(k) {
|
_.each(self.keys, function(k) {
|
||||||
@@ -144,7 +144,7 @@ define([
|
|||||||
return this.cid;
|
return this.cid;
|
||||||
},
|
},
|
||||||
initialize: function(attributes, options) {
|
initialize: function(attributes, options) {
|
||||||
var self = this;
|
let self = this;
|
||||||
self._previous_key_values = {};
|
self._previous_key_values = {};
|
||||||
|
|
||||||
if (!_.isUndefined(options) && 'on_server' in options && options.on_server) {
|
if (!_.isUndefined(options) && 'on_server' in options && options.on_server) {
|
||||||
@@ -170,8 +170,8 @@ define([
|
|||||||
self.errorModel = new Backbone.Model();
|
self.errorModel = new Backbone.Model();
|
||||||
self.node_info = options.node_info;
|
self.node_info = options.node_info;
|
||||||
|
|
||||||
var obj;
|
let obj;
|
||||||
var objectOp = function(schema) {
|
let objectOp = function(schema) {
|
||||||
if (schema && _.isArray(schema)) {
|
if (schema && _.isArray(schema)) {
|
||||||
_.each(schema, function(s) {
|
_.each(schema, function(s) {
|
||||||
|
|
||||||
@@ -204,7 +204,7 @@ define([
|
|||||||
if (!obj || !(obj instanceof pgBrowser.Node.Collection)) {
|
if (!obj || !(obj instanceof pgBrowser.Node.Collection)) {
|
||||||
if (_.isString(s.model) &&
|
if (_.isString(s.model) &&
|
||||||
s.model in pgBrowser.Nodes) {
|
s.model in pgBrowser.Nodes) {
|
||||||
var node = pgBrowser.Nodes[s.model];
|
let node = pgBrowser.Nodes[s.model];
|
||||||
obj = new(node.Collection)(obj, {
|
obj = new(node.Collection)(obj, {
|
||||||
model: node.model,
|
model: node.model,
|
||||||
top: self.top || self,
|
top: self.top || self,
|
||||||
@@ -283,7 +283,7 @@ define([
|
|||||||
},
|
},
|
||||||
// Create a reset function, which allow us to remove the nested object.
|
// Create a reset function, which allow us to remove the nested object.
|
||||||
reset: function(opts) {
|
reset: function(opts) {
|
||||||
var obj,
|
let obj,
|
||||||
reindex = !!(opts && opts.reindex);
|
reindex = !!(opts && opts.reindex);
|
||||||
|
|
||||||
if (opts && opts.stop)
|
if (opts && opts.stop)
|
||||||
@@ -294,7 +294,7 @@ define([
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var id in this.objects) {
|
for (let id in this.objects) {
|
||||||
obj = this.get(id);
|
obj = this.get(id);
|
||||||
|
|
||||||
if (obj) {
|
if (obj) {
|
||||||
@@ -318,11 +318,11 @@ define([
|
|||||||
Backbone.Collection.prototype.reset.apply(this, arguments);
|
Backbone.Collection.prototype.reset.apply(this, arguments);
|
||||||
},
|
},
|
||||||
sessChanged: function() {
|
sessChanged: function() {
|
||||||
var self = this;
|
let self = this;
|
||||||
|
|
||||||
return (_.size(self.sessAttrs) > 0 ||
|
return (_.size(self.sessAttrs) > 0 ||
|
||||||
_.some(self.objects, function(k) {
|
_.some(self.objects, function(k) {
|
||||||
var obj = self.get(k);
|
let obj = self.get(k);
|
||||||
if (!(_.isNull(obj) || _.isUndefined(obj))) {
|
if (!(_.isNull(obj) || _.isUndefined(obj))) {
|
||||||
return obj.sessChanged();
|
return obj.sessChanged();
|
||||||
}
|
}
|
||||||
@@ -330,7 +330,7 @@ define([
|
|||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
sessValid: function() {
|
sessValid: function() {
|
||||||
var self = this;
|
let self = this;
|
||||||
// Perform default validations.
|
// Perform default validations.
|
||||||
if ('default_validate' in self && typeof(self.default_validate) == 'function' &&
|
if ('default_validate' in self && typeof(self.default_validate) == 'function' &&
|
||||||
_.isString(self.default_validate())) {
|
_.isString(self.default_validate())) {
|
||||||
@@ -344,13 +344,13 @@ define([
|
|||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
set: function(key, val, options) {
|
set: function(key, val, options) {
|
||||||
var opts = _.isObject(key) ? val : options;
|
let opts = _.isObject(key) ? val : options;
|
||||||
|
|
||||||
this._changing = true;
|
this._changing = true;
|
||||||
this._previousAttributes = _.clone(this.attributes);
|
this._previousAttributes = _.clone(this.attributes);
|
||||||
this.changed = {};
|
this.changed = {};
|
||||||
|
|
||||||
var res = Backbone.Model.prototype.set.call(this, key, val, options);
|
let res = Backbone.Model.prototype.set.call(this, key, val, options);
|
||||||
this._changing = false;
|
this._changing = false;
|
||||||
|
|
||||||
if ((opts && opts.internal) || !this.trackChanges) {
|
if ((opts && opts.internal) || !this.trackChanges) {
|
||||||
@@ -358,11 +358,11 @@ define([
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (key != null && res) {
|
if (key != null && res) {
|
||||||
var attrs = {},
|
let attrs = {},
|
||||||
self = this,
|
self = this,
|
||||||
msg;
|
msg;
|
||||||
|
|
||||||
var attrChanged = function(v, k) {
|
let attrChanged = function(v, k) {
|
||||||
if (k in self.objects) {
|
if (k in self.objects) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -442,7 +442,7 @@ define([
|
|||||||
* only from the parent object.
|
* only from the parent object.
|
||||||
*/
|
*/
|
||||||
toJSON: function(session, method) {
|
toJSON: function(session, method) {
|
||||||
var self = this,
|
let self = this,
|
||||||
res, isNew = self.isNew();
|
res, isNew = self.isNew();
|
||||||
|
|
||||||
session = (typeof(session) != 'undefined' && session == true);
|
session = (typeof(session) != 'undefined' && session == true);
|
||||||
@@ -462,7 +462,7 @@ define([
|
|||||||
_.each(
|
_.each(
|
||||||
self.objects,
|
self.objects,
|
||||||
function(k) {
|
function(k) {
|
||||||
var obj = self.get(k);
|
let obj = self.get(k);
|
||||||
/*
|
/*
|
||||||
* For session changes, we only need the modified data to be
|
* For session changes, we only need the modified data to be
|
||||||
* transformed to JSON data.
|
* transformed to JSON data.
|
||||||
@@ -506,7 +506,7 @@ define([
|
|||||||
return res;
|
return res;
|
||||||
},
|
},
|
||||||
startNewSession: function() {
|
startNewSession: function() {
|
||||||
var self = this;
|
let self = this;
|
||||||
|
|
||||||
if (self.trackChanges) {
|
if (self.trackChanges) {
|
||||||
self.trigger('pgadmin-session:stop', self);
|
self.trigger('pgadmin-session:stop', self);
|
||||||
@@ -522,7 +522,7 @@ define([
|
|||||||
self.origSessAttrs = _.clone(self.attributes);
|
self.origSessAttrs = _.clone(self.attributes);
|
||||||
|
|
||||||
_.each(self.objects, function(o) {
|
_.each(self.objects, function(o) {
|
||||||
var obj = self.get(o);
|
let obj = self.get(o);
|
||||||
|
|
||||||
if (_.isUndefined(obj) || _.isNull(obj)) {
|
if (_.isUndefined(obj) || _.isNull(obj)) {
|
||||||
return;
|
return;
|
||||||
@@ -549,18 +549,18 @@ define([
|
|||||||
},
|
},
|
||||||
|
|
||||||
onChildInvalid: function(msg, obj) {
|
onChildInvalid: function(msg, obj) {
|
||||||
var self = this;
|
let self = this;
|
||||||
|
|
||||||
if (self.trackChanges && obj) {
|
if (self.trackChanges && obj) {
|
||||||
var objName = obj.attrName;
|
let objName = obj.attrName;
|
||||||
|
|
||||||
if (!objName) {
|
if (!objName) {
|
||||||
var hasPrimaryKey = obj.primary_key &&
|
let hasPrimaryKey = obj.primary_key &&
|
||||||
typeof(obj.primary_key) === 'function';
|
typeof(obj.primary_key) === 'function';
|
||||||
var key = hasPrimaryKey ? obj.primary_key() : obj.cid,
|
let key = hasPrimaryKey ? obj.primary_key() : obj.cid,
|
||||||
comparator = hasPrimaryKey ?
|
comparator = hasPrimaryKey ?
|
||||||
function(k) {
|
function(k) {
|
||||||
var o = self.get('k');
|
let o = self.get('k');
|
||||||
|
|
||||||
if (o && o.primary_key() === key) {
|
if (o && o.primary_key() === key) {
|
||||||
objName = k;
|
objName = k;
|
||||||
@@ -570,7 +570,7 @@ define([
|
|||||||
return false;
|
return false;
|
||||||
} :
|
} :
|
||||||
function(k) {
|
function(k) {
|
||||||
var o = self.get(k);
|
let o = self.get(k);
|
||||||
|
|
||||||
if (o.cid === key) {
|
if (o.cid === key) {
|
||||||
objName = k;
|
objName = k;
|
||||||
@@ -599,18 +599,18 @@ define([
|
|||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
onChildValid: function(obj) {
|
onChildValid: function(obj) {
|
||||||
var self = this;
|
let self = this;
|
||||||
|
|
||||||
if (self.trackChanges && obj) {
|
if (self.trackChanges && obj) {
|
||||||
var objName = obj.attrName;
|
let objName = obj.attrName;
|
||||||
|
|
||||||
if (!objName) {
|
if (!objName) {
|
||||||
var hasPrimaryKey = (obj.primary_key &&
|
let hasPrimaryKey = (obj.primary_key &&
|
||||||
(typeof(obj.primary_key) === 'function'));
|
(typeof(obj.primary_key) === 'function'));
|
||||||
var key = hasPrimaryKey ? obj.primary_key() : obj.cid,
|
let key = hasPrimaryKey ? obj.primary_key() : obj.cid,
|
||||||
comparator = hasPrimaryKey ?
|
comparator = hasPrimaryKey ?
|
||||||
function(k) {
|
function(k) {
|
||||||
var o = self.get('k');
|
let o = self.get('k');
|
||||||
|
|
||||||
if (o && o.primary_key() === key) {
|
if (o && o.primary_key() === key) {
|
||||||
objName = k;
|
objName = k;
|
||||||
@@ -620,7 +620,7 @@ define([
|
|||||||
return false;
|
return false;
|
||||||
} :
|
} :
|
||||||
function(k) {
|
function(k) {
|
||||||
var o = self.get('k');
|
let o = self.get('k');
|
||||||
|
|
||||||
if (o && o.cid === key) {
|
if (o && o.cid === key) {
|
||||||
objName = k;
|
objName = k;
|
||||||
@@ -633,7 +633,7 @@ define([
|
|||||||
_.findIndex(self.objects, comparator);
|
_.findIndex(self.objects, comparator);
|
||||||
}
|
}
|
||||||
|
|
||||||
var msg = null,
|
let msg = null,
|
||||||
validate = function(m, attrs) {
|
validate = function(m, attrs) {
|
||||||
if ('default_validate' in m && typeof(m.default_validate) == 'function') {
|
if ('default_validate' in m && typeof(m.default_validate) == 'function') {
|
||||||
msg = m.default_validate();
|
msg = m.default_validate();
|
||||||
@@ -651,7 +651,7 @@ define([
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (obj instanceof Backbone.Collection) {
|
if (obj instanceof Backbone.Collection) {
|
||||||
for (var idx in obj.models) {
|
for (let idx in obj.models) {
|
||||||
if (validate(obj.models[idx]))
|
if (validate(obj.models[idx]))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -704,11 +704,11 @@ define([
|
|||||||
|
|
||||||
onChildCollectionChanged: function(obj, obj_hand) {
|
onChildCollectionChanged: function(obj, obj_hand) {
|
||||||
|
|
||||||
var self = this;
|
let self = this;
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
|
||||||
var msg = null,
|
let msg = null,
|
||||||
validate = function(m, attrs) {
|
validate = function(m, attrs) {
|
||||||
if ('default_validate' in m && typeof(m.default_validate) == 'function') {
|
if ('default_validate' in m && typeof(m.default_validate) == 'function') {
|
||||||
msg = m.default_validate();
|
msg = m.default_validate();
|
||||||
@@ -729,13 +729,13 @@ define([
|
|||||||
|
|
||||||
let collection = self.collection || obj_hand;
|
let collection = self.collection || obj_hand;
|
||||||
if(collection) {
|
if(collection) {
|
||||||
var collection_selector = collection.attrName || collection.name;
|
let collection_selector = collection.attrName || collection.name;
|
||||||
let activeTab = $('.show.active div.'+collection_selector);
|
let activeTab = $('.show.active div.'+collection_selector);
|
||||||
$(activeTab).find('.error-in-grid').removeClass('error-in-grid');
|
$(activeTab).find('.error-in-grid').removeClass('error-in-grid');
|
||||||
|
|
||||||
model_collection_exit : if (collection instanceof Backbone.Collection) {
|
model_collection_exit : if (collection instanceof Backbone.Collection) {
|
||||||
|
|
||||||
for (var cid in collection.models) {
|
for (let cid in collection.models) {
|
||||||
let model = collection.models[cid];
|
let model = collection.models[cid];
|
||||||
|
|
||||||
for(let mod_obj of model.objects) {
|
for(let mod_obj of model.objects) {
|
||||||
@@ -765,7 +765,7 @@ define([
|
|||||||
},
|
},
|
||||||
|
|
||||||
onChildChanged: function(obj) {
|
onChildChanged: function(obj) {
|
||||||
var self = this;
|
let self = this;
|
||||||
|
|
||||||
if (self.trackChanges && self.collection) {
|
if (self.trackChanges && self.collection) {
|
||||||
(self.collection).trigger('change', self);
|
(self.collection).trigger('change', self);
|
||||||
@@ -774,7 +774,7 @@ define([
|
|||||||
},
|
},
|
||||||
|
|
||||||
stopSession: function() {
|
stopSession: function() {
|
||||||
var self = this;
|
let self = this;
|
||||||
|
|
||||||
if (self.trackChanges) {
|
if (self.trackChanges) {
|
||||||
self.off('pgadmin-session:model:invalid', self.onChildInvalid);
|
self.off('pgadmin-session:model:invalid', self.onChildInvalid);
|
||||||
@@ -790,7 +790,7 @@ define([
|
|||||||
self.origSessAttrs = {};
|
self.origSessAttrs = {};
|
||||||
|
|
||||||
_.each(self.objects, function(o) {
|
_.each(self.objects, function(o) {
|
||||||
var obj = self.get(o);
|
let obj = self.get(o);
|
||||||
|
|
||||||
if (_.isUndefined(obj) || _.isNull(obj)) {
|
if (_.isUndefined(obj) || _.isNull(obj)) {
|
||||||
return;
|
return;
|
||||||
@@ -807,9 +807,9 @@ define([
|
|||||||
self.trigger('pgadmin-session:stop');
|
self.trigger('pgadmin-session:stop');
|
||||||
},
|
},
|
||||||
default_validate: function() {
|
default_validate: function() {
|
||||||
var msg, field, value, type;
|
let msg, field, value, type;
|
||||||
|
|
||||||
for (var i = 0, keys = _.keys(this.attributes), l = keys.length; i < l; i++) {
|
for (let i = 0, keys = _.keys(this.attributes), l = keys.length; i < l; i++) {
|
||||||
|
|
||||||
value = this.attributes[keys[i]];
|
value = this.attributes[keys[i]];
|
||||||
field = this.fieldData[keys[i]];
|
field = this.fieldData[keys[i]];
|
||||||
@@ -850,7 +850,7 @@ define([
|
|||||||
},
|
},
|
||||||
|
|
||||||
check_min_max: function(value, field) {
|
check_min_max: function(value, field) {
|
||||||
var label = field.label,
|
let label = field.label,
|
||||||
min_value = field.min,
|
min_value = field.min,
|
||||||
max_value = field.max;
|
max_value = field.max;
|
||||||
|
|
||||||
@@ -862,14 +862,14 @@ define([
|
|||||||
return null;
|
return null;
|
||||||
},
|
},
|
||||||
number_validate: function(value, field) {
|
number_validate: function(value, field) {
|
||||||
var pattern = new RegExp('^-?[0-9]+(\.?[0-9]*)?$');
|
let pattern = new RegExp('^-?[0-9]+(\.?[0-9]*)?$');
|
||||||
if (!pattern.test(value)) {
|
if (!pattern.test(value)) {
|
||||||
return pgadminUtils.sprintf(pgAdmin.Browser.messages.MUST_BE_NUM, field.label);
|
return pgadminUtils.sprintf(pgAdmin.Browser.messages.MUST_BE_NUM, field.label);
|
||||||
}
|
}
|
||||||
return this.check_min_max(value, field);
|
return this.check_min_max(value, field);
|
||||||
},
|
},
|
||||||
integer_validate: function(value, field) {
|
integer_validate: function(value, field) {
|
||||||
var pattern = new RegExp('^-?[0-9]*$');
|
let pattern = new RegExp('^-?[0-9]*$');
|
||||||
if (!pattern.test(value)) {
|
if (!pattern.test(value)) {
|
||||||
return pgadminUtils.sprintf(pgAdmin.Browser.messages.MUST_BE_INT, field.label);
|
return pgadminUtils.sprintf(pgAdmin.Browser.messages.MUST_BE_INT, field.label);
|
||||||
}
|
}
|
||||||
@@ -880,7 +880,7 @@ define([
|
|||||||
pgBrowser.DataCollection = Backbone.Collection.extend({
|
pgBrowser.DataCollection = Backbone.Collection.extend({
|
||||||
// Model collection
|
// Model collection
|
||||||
initialize: function(attributes, options) {
|
initialize: function(attributes, options) {
|
||||||
var self = this;
|
let self = this;
|
||||||
|
|
||||||
options = options || {};
|
options = options || {};
|
||||||
/*
|
/*
|
||||||
@@ -915,7 +915,7 @@ define([
|
|||||||
return self;
|
return self;
|
||||||
},
|
},
|
||||||
startNewSession: function() {
|
startNewSession: function() {
|
||||||
var self = this,
|
let self = this,
|
||||||
msg;
|
msg;
|
||||||
|
|
||||||
if (self.trackChanges) {
|
if (self.trackChanges) {
|
||||||
@@ -961,7 +961,7 @@ define([
|
|||||||
self.on('pgadmin-session:model:valid', self.onModelValid);
|
self.on('pgadmin-session:model:valid', self.onModelValid);
|
||||||
},
|
},
|
||||||
onModelInvalid: function(msg, m) {
|
onModelInvalid: function(msg, m) {
|
||||||
var self = this,
|
let self = this,
|
||||||
invalidModels = self.sessAttrs['invalid'];
|
invalidModels = self.sessAttrs['invalid'];
|
||||||
|
|
||||||
if (self.trackChanges) {
|
if (self.trackChanges) {
|
||||||
@@ -979,12 +979,12 @@ define([
|
|||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
onModelValid: function(m) {
|
onModelValid: function(m) {
|
||||||
var self = this,
|
let self = this,
|
||||||
invalidModels = self.sessAttrs['invalid'];
|
invalidModels = self.sessAttrs['invalid'];
|
||||||
|
|
||||||
if (self.trackChanges) {
|
if (self.trackChanges) {
|
||||||
// Now check uniqueness of current model with other models.
|
// Now check uniqueness of current model with other models.
|
||||||
var isUnique = self.checkDuplicateWithModel(m);
|
let isUnique = self.checkDuplicateWithModel(m);
|
||||||
|
|
||||||
// If unique then find the object the invalid list, if found remove it from the list
|
// If unique then find the object the invalid list, if found remove it from the list
|
||||||
// and inform the parent that - I am a valid object now.
|
// and inform the parent that - I am a valid object now.
|
||||||
@@ -1001,7 +1001,7 @@ define([
|
|||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
stopSession: function() {
|
stopSession: function() {
|
||||||
var self = this;
|
let self = this;
|
||||||
|
|
||||||
self.trackChanges = false;
|
self.trackChanges = false;
|
||||||
self.sessAttrs = {
|
self.sessAttrs = {
|
||||||
@@ -1039,13 +1039,13 @@ define([
|
|||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
toJSON: function(session) {
|
toJSON: function(session) {
|
||||||
var self = this;
|
let self = this;
|
||||||
session = (typeof(session) != 'undefined' && session == true);
|
session = (typeof(session) != 'undefined' && session == true);
|
||||||
|
|
||||||
if (!session) {
|
if (!session) {
|
||||||
return Backbone.Collection.prototype.toJSON.call(self);
|
return Backbone.Collection.prototype.toJSON.call(self);
|
||||||
} else {
|
} else {
|
||||||
var res = {};
|
let res = {};
|
||||||
|
|
||||||
res['added'] = [];
|
res['added'] = [];
|
||||||
_.each(this.sessAttrs['added'], function(o) {
|
_.each(this.sessAttrs['added'], function(o) {
|
||||||
@@ -1089,7 +1089,7 @@ define([
|
|||||||
Backbone.Collection.prototype.reset.apply(this, arguments);
|
Backbone.Collection.prototype.reset.apply(this, arguments);
|
||||||
},
|
},
|
||||||
objFindInSession: function(m, type) {
|
objFindInSession: function(m, type) {
|
||||||
var hasPrimaryKey = m.primary_key &&
|
let hasPrimaryKey = m.primary_key &&
|
||||||
typeof(m.primary_key) == 'function',
|
typeof(m.primary_key) == 'function',
|
||||||
key = hasPrimaryKey ? m.primary_key() : m.cid,
|
key = hasPrimaryKey ? m.primary_key() : m.cid,
|
||||||
comparator = hasPrimaryKey ? function(o) {
|
comparator = hasPrimaryKey ? function(o) {
|
||||||
@@ -1102,14 +1102,14 @@ define([
|
|||||||
},
|
},
|
||||||
onModelAdd: function(obj) {
|
onModelAdd: function(obj) {
|
||||||
if (this.trackChanges) {
|
if (this.trackChanges) {
|
||||||
var self = this,
|
let self = this,
|
||||||
msg,
|
msg,
|
||||||
idx = self.objFindInSession(obj, 'deleted');
|
idx = self.objFindInSession(obj, 'deleted');
|
||||||
|
|
||||||
// Hmm.. - it was originally deleted from this collection, we should
|
// Hmm.. - it was originally deleted from this collection, we should
|
||||||
// remove it from the 'deleted' list.
|
// remove it from the 'deleted' list.
|
||||||
if (idx >= 0) {
|
if (idx >= 0) {
|
||||||
var origObj = self.sessAttrs['deleted'][idx];
|
let origObj = self.sessAttrs['deleted'][idx];
|
||||||
|
|
||||||
obj.origSessAttrs = _.clone(origObj.origSessAttrs);
|
obj.origSessAttrs = _.clone(origObj.origSessAttrs);
|
||||||
obj.attributes = _.extend(obj.attributes, origObj.attributes);
|
obj.attributes = _.extend(obj.attributes, origObj.attributes);
|
||||||
@@ -1175,7 +1175,7 @@ define([
|
|||||||
*/
|
*/
|
||||||
obj.errorModel.clear();
|
obj.errorModel.clear();
|
||||||
|
|
||||||
var self = this,
|
let self = this,
|
||||||
invalidModels = self.sessAttrs['invalid'],
|
invalidModels = self.sessAttrs['invalid'],
|
||||||
copy = _.clone(obj),
|
copy = _.clone(obj),
|
||||||
idx = self.objFindInSession(obj, 'added');
|
idx = self.objFindInSession(obj, 'added');
|
||||||
@@ -1225,12 +1225,12 @@ define([
|
|||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
triggerValidationEvent: function() {
|
triggerValidationEvent: function() {
|
||||||
var self = this,
|
let self = this,
|
||||||
msg = null,
|
msg = null,
|
||||||
invalidModels = self.sessAttrs['invalid'],
|
invalidModels = self.sessAttrs['invalid'],
|
||||||
validModels = [];
|
validModels = [];
|
||||||
|
|
||||||
for (var key in invalidModels) {
|
for (let key in invalidModels) {
|
||||||
msg = invalidModels[key];
|
msg = invalidModels[key];
|
||||||
if (msg) {
|
if (msg) {
|
||||||
break;
|
break;
|
||||||
@@ -1243,7 +1243,7 @@ define([
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Let's remove the un
|
// Let's remove the un
|
||||||
for (key in validModels) {
|
for (let key in validModels) {
|
||||||
delete invalidModels[validModels[key]];
|
delete invalidModels[validModels[key]];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1262,10 +1262,10 @@ define([
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
onModelChange: function(obj) {
|
onModelChange: function(obj) {
|
||||||
var self = this;
|
let self = this;
|
||||||
|
|
||||||
if (this.trackChanges && obj instanceof pgBrowser.Node.Model) {
|
if (this.trackChanges && obj instanceof pgBrowser.Node.Model) {
|
||||||
var idx = self.objFindInSession(obj, 'added');
|
let idx = self.objFindInSession(obj, 'added');
|
||||||
|
|
||||||
// It was newly added model, we don't need to add into the changed
|
// It was newly added model, we don't need to add into the changed
|
||||||
// list.
|
// list.
|
||||||
@@ -1311,7 +1311,7 @@ define([
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var self = this,
|
let self = this,
|
||||||
condition = {},
|
condition = {},
|
||||||
previous_condition = {};
|
previous_condition = {};
|
||||||
|
|
||||||
@@ -1327,21 +1327,21 @@ define([
|
|||||||
// Reset previously changed values.
|
// Reset previously changed values.
|
||||||
model._previous_key_values = {};
|
model._previous_key_values = {};
|
||||||
|
|
||||||
var old_conflicting_models = self.where(previous_condition);
|
let old_conflicting_models = self.where(previous_condition);
|
||||||
|
|
||||||
if (old_conflicting_models.length == 1) {
|
if (old_conflicting_models.length == 1) {
|
||||||
var m = old_conflicting_models[0];
|
let m = old_conflicting_models[0];
|
||||||
self.clearInvalidSessionIfModelValid(m);
|
self.clearInvalidSessionIfModelValid(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
var new_conflicting_models = self.where(condition);
|
let new_conflicting_models = self.where(condition);
|
||||||
if (new_conflicting_models.length == 0) {
|
if (new_conflicting_models.length == 0) {
|
||||||
self.clearInvalidSessionIfModelValid(model);
|
self.clearInvalidSessionIfModelValid(model);
|
||||||
} else if (new_conflicting_models.length == 1) {
|
} else if (new_conflicting_models.length == 1) {
|
||||||
self.clearInvalidSessionIfModelValid(model);
|
self.clearInvalidSessionIfModelValid(model);
|
||||||
self.clearInvalidSessionIfModelValid(new_conflicting_models[0]);
|
self.clearInvalidSessionIfModelValid(new_conflicting_models[0]);
|
||||||
} else {
|
} else {
|
||||||
var msg = 'Duplicate rows.';
|
let msg = 'Duplicate rows.';
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
_.each(new_conflicting_models, function(local_model) {
|
_.each(new_conflicting_models, function(local_model) {
|
||||||
self.trigger(
|
self.trigger(
|
||||||
@@ -1358,7 +1358,7 @@ define([
|
|||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
clearInvalidSessionIfModelValid: function(m) {
|
clearInvalidSessionIfModelValid: function(m) {
|
||||||
var errors = m.errorModel.attributes,
|
let errors = m.errorModel.attributes,
|
||||||
invalidModels = this.sessAttrs['invalid'];
|
invalidModels = this.sessAttrs['invalid'];
|
||||||
|
|
||||||
m.trigger('pgadmin-session:model:unique', m);
|
m.trigger('pgadmin-session:model:unique', m);
|
||||||
|
|||||||
@@ -11,12 +11,12 @@ define([
|
|||||||
'sources/pgadmin', 'jquery', 'wcdocker',
|
'sources/pgadmin', 'jquery', 'wcdocker',
|
||||||
], function(pgAdmin, $) {
|
], function(pgAdmin, $) {
|
||||||
|
|
||||||
var pgBrowser = pgAdmin.Browser = pgAdmin.Browser || {},
|
let pgBrowser = pgAdmin.Browser = pgAdmin.Browser || {},
|
||||||
wcDocker = window.wcDocker,
|
wcDocker = window.wcDocker,
|
||||||
wcIFrame = window.wcIFrame;
|
wcIFrame = window.wcIFrame;
|
||||||
|
|
||||||
pgAdmin.Browser.Frame = function(options) {
|
pgAdmin.Browser.Frame = function(options) {
|
||||||
var defaults = [
|
let defaults = [
|
||||||
'name', 'title', 'width', 'height', 'showTitle', 'isCloseable',
|
'name', 'title', 'width', 'height', 'showTitle', 'isCloseable',
|
||||||
'isPrivate', 'url', 'icon', 'onCreate', 'isLayoutMember', 'isRenamable',
|
'isPrivate', 'url', 'icon', 'onCreate', 'isLayoutMember', 'isRenamable',
|
||||||
];
|
];
|
||||||
@@ -39,7 +39,7 @@ define([
|
|||||||
frame: null,
|
frame: null,
|
||||||
onCreate: null,
|
onCreate: null,
|
||||||
load: function(docker) {
|
load: function(docker) {
|
||||||
var that = this;
|
let that = this;
|
||||||
if (!that.panel) {
|
if (!that.panel) {
|
||||||
docker.registerPanelType(this.name, {
|
docker.registerPanelType(this.name, {
|
||||||
title: that.title,
|
title: that.title,
|
||||||
@@ -57,10 +57,10 @@ define([
|
|||||||
myPanel.closeable(!!that.isCloseable);
|
myPanel.closeable(!!that.isCloseable);
|
||||||
myPanel.renamable(that.isRenamable);
|
myPanel.renamable(that.isRenamable);
|
||||||
|
|
||||||
var $frameArea = $('<div style="position:absolute;top:0 !important;width:100%;height:100%;display:table;z-index:0;">');
|
let $frameArea = $('<div style="position:absolute;top:0 !important;width:100%;height:100%;display:table;z-index:0;">');
|
||||||
myPanel.layout().addItem($frameArea);
|
myPanel.layout().addItem($frameArea);
|
||||||
that.panel = myPanel;
|
that.panel = myPanel;
|
||||||
var frame = new wcIFrame($frameArea, myPanel);
|
let frame = new wcIFrame($frameArea, myPanel);
|
||||||
$(myPanel).data('frameInitialized', false);
|
$(myPanel).data('frameInitialized', false);
|
||||||
$(myPanel).data('embeddedFrame', frame);
|
$(myPanel).data('embeddedFrame', frame);
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ define([
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
eventFunc: function(eventName) {
|
eventFunc: function(eventName) {
|
||||||
var name = $(this).data('pgAdminName');
|
let name = $(this).data('pgAdminName');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
pgBrowser.Events.trigger('pgadmin-browser:frame', eventName, this, arguments);
|
pgBrowser.Events.trigger('pgadmin-browser:frame', eventName, this, arguments);
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import Notify from '../../../static/js/helpers/Notifier';
|
|||||||
|
|
||||||
const pgBrowser = pgAdmin.Browser = pgAdmin.Browser || {};
|
const pgBrowser = pgAdmin.Browser = pgAdmin.Browser || {};
|
||||||
|
|
||||||
var wcDocker = window.wcDocker;
|
let wcDocker = window.wcDocker;
|
||||||
|
|
||||||
/* Add cache related methods and properties */
|
/* Add cache related methods and properties */
|
||||||
_.extend(pgBrowser, {
|
_.extend(pgBrowser, {
|
||||||
@@ -29,8 +29,8 @@ _.extend(pgBrowser, {
|
|||||||
|
|
||||||
// Build the default layout
|
// Build the default layout
|
||||||
buildDefaultLayout: function(docker) {
|
buildDefaultLayout: function(docker) {
|
||||||
var browserPanel = docker.addPanel('browser', wcDocker.DOCK.LEFT);
|
let browserPanel = docker.addPanel('browser', wcDocker.DOCK.LEFT);
|
||||||
var dashboardPanel = docker.addPanel(
|
let dashboardPanel = docker.addPanel(
|
||||||
'dashboard', wcDocker.DOCK.RIGHT, browserPanel);
|
'dashboard', wcDocker.DOCK.RIGHT, browserPanel);
|
||||||
docker.addPanel('properties', wcDocker.DOCK.STACKED, dashboardPanel, {
|
docker.addPanel('properties', wcDocker.DOCK.STACKED, dashboardPanel, {
|
||||||
tabOrientation: wcDocker.TAB.TOP,
|
tabOrientation: wcDocker.TAB.TOP,
|
||||||
@@ -48,7 +48,7 @@ _.extend(pgBrowser, {
|
|||||||
|
|
||||||
save_current_layout: function(layout_id, docker) {
|
save_current_layout: function(layout_id, docker) {
|
||||||
if(docker) {
|
if(docker) {
|
||||||
var layout = docker.save(),
|
let layout = docker.save(),
|
||||||
settings = { setting: layout_id, value: layout };
|
settings = { setting: layout_id, value: layout };
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
@@ -65,7 +65,7 @@ _.extend(pgBrowser, {
|
|||||||
docker.restore(layout);
|
docker.restore(layout);
|
||||||
if(checkLayout) {
|
if(checkLayout) {
|
||||||
// Check restore layout is restored pgAdmin 4 layout successfully if not then reset layout to default pgAdmin 4 layout.
|
// Check restore layout is restored pgAdmin 4 layout successfully if not then reset layout to default pgAdmin 4 layout.
|
||||||
var _panel = docker.findPanels('properties');
|
let _panel = docker.findPanels('properties');
|
||||||
if(_panel.length == 0 && defaultLayoutCallback){
|
if(_panel.length == 0 && defaultLayoutCallback){
|
||||||
// clear the wcDocker before reset layout.
|
// clear the wcDocker before reset layout.
|
||||||
docker.clear();
|
docker.clear();
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ define([
|
|||||||
pgAdmin.Browser = pgAdmin.Browser || {};
|
pgAdmin.Browser = pgAdmin.Browser || {};
|
||||||
|
|
||||||
// Individual menu-item class
|
// Individual menu-item class
|
||||||
var MenuItem = pgAdmin.Browser.MenuItem = function(opts) {
|
let MenuItem = pgAdmin.Browser.MenuItem = function(opts) {
|
||||||
var menu_opts = [
|
let menu_opts = [
|
||||||
'name', 'label', 'priority', 'module', 'callback', 'data', 'enable',
|
'name', 'label', 'priority', 'module', 'callback', 'data', 'enable',
|
||||||
'category', 'target', 'url' /* Do not show icon in the menus, 'icon' */ , 'node',
|
'category', 'target', 'url' /* Do not show icon in the menus, 'icon' */ , 'node',
|
||||||
'checked', 'below', 'menu_items',
|
'checked', 'below', 'menu_items',
|
||||||
@@ -62,17 +62,17 @@ define([
|
|||||||
_.each(this.menu_items, function(submenu_item){
|
_.each(this.menu_items, function(submenu_item){
|
||||||
submenu_item.generate(node, item);
|
submenu_item.generate(node, item);
|
||||||
});
|
});
|
||||||
var create_submenu = pgAdmin.Browser.MenuGroup({
|
let create_submenu = pgAdmin.Browser.MenuGroup({
|
||||||
'label': this.label,
|
'label': this.label,
|
||||||
'id': this.name,
|
'id': this.name,
|
||||||
}, this.menu_items);
|
}, this.menu_items);
|
||||||
this.$el = create_submenu.$el;
|
this.$el = create_submenu.$el;
|
||||||
} else {
|
} else {
|
||||||
var data_disabled = null;
|
let data_disabled = null;
|
||||||
if(this.data != undefined && this.data.data_disabled != undefined){
|
if(this.data != undefined && this.data.data_disabled != undefined){
|
||||||
data_disabled = this.data.data_disabled;
|
data_disabled = this.data.data_disabled;
|
||||||
}
|
}
|
||||||
var url = $('<a></a>', {
|
let url = $('<a></a>', {
|
||||||
'id': this.name,
|
'id': this.name,
|
||||||
'href': this.url,
|
'href': this.url,
|
||||||
'target': this.target,
|
'target': this.target,
|
||||||
@@ -98,11 +98,11 @@ define([
|
|||||||
|
|
||||||
url.addClass((this.is_disabled ? ' disabled' : ''));
|
url.addClass((this.is_disabled ? ' disabled' : ''));
|
||||||
|
|
||||||
var textSpan = $('<span data-test="menu-item-text"></span>').text(' ' + this.label);
|
let textSpan = $('<span data-test="menu-item-text"></span>').text(' ' + this.label);
|
||||||
|
|
||||||
url.append(textSpan);
|
url.append(textSpan);
|
||||||
|
|
||||||
var mnu_element = $('<li/>').append(url);
|
let mnu_element = $('<li/>').append(url);
|
||||||
// Check if below parameter is defined and true then we need to add
|
// Check if below parameter is defined and true then we need to add
|
||||||
// separator.
|
// separator.
|
||||||
if (!_.isUndefined(this.below) && this.below === true) {
|
if (!_.isUndefined(this.below) && this.below === true) {
|
||||||
@@ -141,7 +141,7 @@ define([
|
|||||||
* This will be called when context-menu is clicked.
|
* This will be called when context-menu is clicked.
|
||||||
*/
|
*/
|
||||||
context_menu_callback: function(item) {
|
context_menu_callback: function(item) {
|
||||||
var o = this,
|
let o = this,
|
||||||
cb;
|
cb;
|
||||||
|
|
||||||
if (o.module['callbacks'] && (
|
if (o.module['callbacks'] && (
|
||||||
@@ -219,7 +219,7 @@ define([
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
pgAdmin.Browser.MenuGroup = function(opts, items, prev, ctx) {
|
pgAdmin.Browser.MenuGroup = function(opts, items, prev, ctx) {
|
||||||
var template = _.template([
|
let template = _.template([
|
||||||
'<% if (above) { %><li class="dropdown-divider"></li><% } %>',
|
'<% if (above) { %><li class="dropdown-divider"></li><% } %>',
|
||||||
'<li class="dropdown-submenu" role="menuitem">',
|
'<li class="dropdown-submenu" role="menuitem">',
|
||||||
' <a href="#" class="dropdown-item">',
|
' <a href="#" class="dropdown-item">',
|
||||||
@@ -254,7 +254,7 @@ define([
|
|||||||
return a.priority - b.priority;
|
return a.priority - b.priority;
|
||||||
});
|
});
|
||||||
|
|
||||||
for (var idx in items) {
|
for (let idx in items) {
|
||||||
m = items[idx];
|
m = items[idx];
|
||||||
$menu.append(m.$el);
|
$menu.append(m.$el);
|
||||||
if (!m.is_disabled) {
|
if (!m.is_disabled) {
|
||||||
@@ -263,7 +263,7 @@ define([
|
|||||||
ctxId++;
|
ctxId++;
|
||||||
}
|
}
|
||||||
|
|
||||||
var is_disabled = (_.size(submenus) == 0);
|
let is_disabled = (_.size(submenus) == 0);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
$el: $el,
|
$el: $el,
|
||||||
@@ -319,7 +319,7 @@ define([
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var groups = {
|
let groups = {
|
||||||
'common': [],
|
'common': [],
|
||||||
},
|
},
|
||||||
common, idx = 0,
|
common, idx = 0,
|
||||||
@@ -331,11 +331,11 @@ define([
|
|||||||
delete m.$el;
|
delete m.$el;
|
||||||
}
|
}
|
||||||
m.generate(d, item);
|
m.generate(d, item);
|
||||||
var group = groups[m.category || 'common'] =
|
let group = groups[m.category || 'common'] =
|
||||||
groups[m.category || 'common'] || [];
|
groups[m.category || 'common'] || [];
|
||||||
group.push(m);
|
group.push(m);
|
||||||
} else {
|
} else {
|
||||||
for (var key in m) {
|
for (let key in m) {
|
||||||
update_menuitem(m[key]);
|
update_menuitem(m[key]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -352,10 +352,10 @@ define([
|
|||||||
common = groups['common'];
|
common = groups['common'];
|
||||||
delete groups['common'];
|
delete groups['common'];
|
||||||
|
|
||||||
var prev = true;
|
let prev = true;
|
||||||
|
|
||||||
for (var name in groups) {
|
for (let name in groups) {
|
||||||
var g = groups[name],
|
let g = groups[name],
|
||||||
c = categories[name] || {
|
c = categories[name] || {
|
||||||
'label': name,
|
'label': name,
|
||||||
single: false,
|
single: false,
|
||||||
@@ -384,14 +384,14 @@ define([
|
|||||||
common.sort(function(a, b) {
|
common.sort(function(a, b) {
|
||||||
return a.priority - b.priority;
|
return a.priority - b.priority;
|
||||||
});
|
});
|
||||||
var len = _.size(common);
|
let len = _.size(common);
|
||||||
|
|
||||||
for (idx in common) {
|
for (idx in common) {
|
||||||
item = common[idx];
|
item = common[idx];
|
||||||
|
|
||||||
item.priority = (item.priority || 10);
|
item.priority = (item.priority || 10);
|
||||||
$mnu.append(item.$el);
|
$mnu.append(item.$el);
|
||||||
var prefix = ctxId + '_' + item.priority + '_' + ctxIdx;
|
let prefix = ctxId + '_' + item.priority + '_' + ctxIdx;
|
||||||
|
|
||||||
if (ctxIdx != 1 && item.above && !item.is_disabled) {
|
if (ctxIdx != 1 && item.above && !item.is_disabled) {
|
||||||
// For creatign the seprator any string will do.
|
// For creatign the seprator any string will do.
|
||||||
@@ -413,7 +413,7 @@ define([
|
|||||||
|
|
||||||
// MENU PUBLIC CLASS DEFINITION
|
// MENU PUBLIC CLASS DEFINITION
|
||||||
// ==============================
|
// ==============================
|
||||||
var Menu = function(element, options) {
|
let Menu = function(element, options) {
|
||||||
this.$element = $(element);
|
this.$element = $(element);
|
||||||
this.options = $.extend({}, Menu.DEFAULTS, options);
|
this.options = $.extend({}, Menu.DEFAULTS, options);
|
||||||
this.isLoading = false;
|
this.isLoading = false;
|
||||||
@@ -422,15 +422,15 @@ define([
|
|||||||
Menu.DEFAULTS = {};
|
Menu.DEFAULTS = {};
|
||||||
|
|
||||||
Menu.prototype.toggle = function(ev) {
|
Menu.prototype.toggle = function(ev) {
|
||||||
var $parent = this.$element.closest('.dropdown-item');
|
let $parent = this.$element.closest('.dropdown-item');
|
||||||
if ($parent.hasClass('disabled')) {
|
if ($parent.hasClass('disabled')) {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var d = this.$element.data('pgMenu');
|
let d = this.$element.data('pgMenu');
|
||||||
if (d.cb) {
|
if (d.cb) {
|
||||||
var cb = d.module && d.module['callbacks'] && d.module['callbacks'][d.cb] || d.module && d.module[d.cb];
|
let cb = d.module && d.module['callbacks'] && d.module['callbacks'][d.cb] || d.module && d.module[d.cb];
|
||||||
if (cb) {
|
if (cb) {
|
||||||
cb.apply(d.module, [d.data, pgAdmin.Browser.tree.selected()]);
|
cb.apply(d.module, [d.data, pgAdmin.Browser.tree.selected()]);
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
@@ -446,9 +446,9 @@ define([
|
|||||||
|
|
||||||
function Plugin(option, ev) {
|
function Plugin(option, ev) {
|
||||||
return this.each(function() {
|
return this.each(function() {
|
||||||
var $this = $(this);
|
let $this = $(this);
|
||||||
var data = $this.data('pg.menu');
|
let data = $this.data('pg.menu');
|
||||||
var options = typeof option == 'object' && option;
|
let options = typeof option == 'object' && option;
|
||||||
|
|
||||||
if (!data) $this.data('pg.menu', (data = new Menu(this, options)));
|
if (!data) $this.data('pg.menu', (data = new Menu(this, options)));
|
||||||
|
|
||||||
@@ -456,7 +456,7 @@ define([
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
var old = $.fn.button;
|
let old = $.fn.button;
|
||||||
|
|
||||||
$.fn.pgmenu = Plugin;
|
$.fn.pgmenu = Plugin;
|
||||||
$.fn.pgmenu.Constructor = Menu;
|
$.fn.pgmenu.Constructor = Menu;
|
||||||
@@ -475,7 +475,7 @@ define([
|
|||||||
|
|
||||||
$(document)
|
$(document)
|
||||||
.on('click.pg.menu.data-api', '[data-toggle^="pg-menu"]', function(ev) {
|
.on('click.pg.menu.data-api', '[data-toggle^="pg-menu"]', function(ev) {
|
||||||
var $menu = $(ev.target);
|
let $menu = $(ev.target);
|
||||||
if (!$menu.hasClass('dropdown-item'))
|
if (!$menu.hasClass('dropdown-item'))
|
||||||
$menu = $menu.closest('.dropdown-item');
|
$menu = $menu.closest('.dropdown-item');
|
||||||
Plugin.call($menu, 'toggle', ev);
|
Plugin.call($menu, 'toggle', ev);
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ define([
|
|||||||
* specify the 'transform' function too, which will convert the fetched
|
* specify the 'transform' function too, which will convert the fetched
|
||||||
* data to proper 'label', 'value' format.
|
* data to proper 'label', 'value' format.
|
||||||
*/
|
*/
|
||||||
var NodeAjaxOptionsControl = Backform.NodeAjaxOptionsControl =
|
let NodeAjaxOptionsControl = Backform.NodeAjaxOptionsControl =
|
||||||
Backform.Select2Control.extend({
|
Backform.Select2Control.extend({
|
||||||
defaults: _.extend(Backform.Select2Control.prototype.defaults, {
|
defaults: _.extend(Backform.Select2Control.prototype.defaults, {
|
||||||
url: undefined,
|
url: undefined,
|
||||||
@@ -127,7 +127,7 @@ define([
|
|||||||
/*
|
/*
|
||||||
* We're about to fetch the options required for this control.
|
* We're about to fetch the options required for this control.
|
||||||
*/
|
*/
|
||||||
var self = this,
|
let self = this,
|
||||||
url = self.field.get('url') || self.defaults.url,
|
url = self.field.get('url') || self.defaults.url,
|
||||||
m = self.model.top || self.model,
|
m = self.model.top || self.model,
|
||||||
url_jump_after_node = self.field.get('url_jump_after_node') || null;
|
url_jump_after_node = self.field.get('url_jump_after_node') || null;
|
||||||
@@ -135,7 +135,7 @@ define([
|
|||||||
// Hmm - we found the url option.
|
// Hmm - we found the url option.
|
||||||
// That means - we needs to fetch the options from that node.
|
// That means - we needs to fetch the options from that node.
|
||||||
if (url) {
|
if (url) {
|
||||||
var node = this.field.get('schema_node'),
|
let node = this.field.get('schema_node'),
|
||||||
node_info = this.field.get('node_info'),
|
node_info = this.field.get('node_info'),
|
||||||
with_id = this.field.get('url_with_id') || false,
|
with_id = this.field.get('url_with_id') || false,
|
||||||
full_url = node.generate_url.apply(
|
full_url = node.generate_url.apply(
|
||||||
@@ -158,7 +158,7 @@ define([
|
|||||||
* If yes - use that, and do not bother about fetching it again,
|
* If yes - use that, and do not bother about fetching it again,
|
||||||
* and use it.
|
* and use it.
|
||||||
*/
|
*/
|
||||||
var data = cache_node.cache(node.type + '#' + url, node_info, cache_level);
|
let data = cache_node.cache(node.type + '#' + url, node_info, cache_level);
|
||||||
|
|
||||||
if (this.field.get('version_compatible') &&
|
if (this.field.get('version_compatible') &&
|
||||||
(_.isUndefined(data) || _.isNull(data))) {
|
(_.isUndefined(data) || _.isNull(data))) {
|
||||||
@@ -188,7 +188,7 @@ define([
|
|||||||
/*
|
/*
|
||||||
* Transform the data
|
* Transform the data
|
||||||
*/
|
*/
|
||||||
var transform = this.field.get('transform') || self.defaults.transform;
|
let transform = this.field.get('transform') || self.defaults.transform;
|
||||||
if (transform && _.isFunction(transform)) {
|
if (transform && _.isFunction(transform)) {
|
||||||
// We will transform the data later, when rendering.
|
// We will transform the data later, when rendering.
|
||||||
// It will allow us to generate different data based on the
|
// It will allow us to generate different data based on the
|
||||||
@@ -201,12 +201,12 @@ define([
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
var formatNode = function(opt) {
|
let formatNode = function(opt) {
|
||||||
if (!opt.id) {
|
if (!opt.id) {
|
||||||
return opt.text;
|
return opt.text;
|
||||||
}
|
}
|
||||||
|
|
||||||
var optimage = $(opt.element).data('image');
|
let optimage = $(opt.element).data('image');
|
||||||
|
|
||||||
if (!optimage) {
|
if (!optimage) {
|
||||||
return opt.text;
|
return opt.text;
|
||||||
@@ -219,11 +219,11 @@ define([
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var filterRows = function(self, filter, rows, node) {
|
let filterRows = function(self, filter, rows, node) {
|
||||||
var res = [];
|
let res = [];
|
||||||
_.each(rows, function(r) {
|
_.each(rows, function(r) {
|
||||||
if (filter(r)) {
|
if (filter(r)) {
|
||||||
var l = (_.isFunction(node['node_label']) ?
|
let l = (_.isFunction(node['node_label']) ?
|
||||||
(node['node_label']).apply(node, [r, self.model, self]) :
|
(node['node_label']).apply(node, [r, self.model, self]) :
|
||||||
r.label),
|
r.label),
|
||||||
image = (_.isFunction(node['node_image']) ?
|
image = (_.isFunction(node['node_image']) ?
|
||||||
@@ -243,13 +243,13 @@ define([
|
|||||||
return res;
|
return res;
|
||||||
};
|
};
|
||||||
|
|
||||||
var NodeListByIdControl = Backform.NodeListByIdControl = NodeAjaxOptionsControl.extend({
|
let NodeListByIdControl = Backform.NodeListByIdControl = NodeAjaxOptionsControl.extend({
|
||||||
controlClassName: 'pgadmin-node-select form-control',
|
controlClassName: 'pgadmin-node-select form-control',
|
||||||
defaults: _.extend({}, NodeAjaxOptionsControl.prototype.defaults, {
|
defaults: _.extend({}, NodeAjaxOptionsControl.prototype.defaults, {
|
||||||
url: 'nodes',
|
url: 'nodes',
|
||||||
filter: undefined,
|
filter: undefined,
|
||||||
transform: function(rows) {
|
transform: function(rows) {
|
||||||
var self = this,
|
let self = this,
|
||||||
node = self.field.get('schema_node'),
|
node = self.field.get('schema_node'),
|
||||||
filter = self.field.get('filter') || function() {
|
filter = self.field.get('filter') || function() {
|
||||||
return true;
|
return true;
|
||||||
@@ -271,7 +271,7 @@ define([
|
|||||||
Backform.NodeListByNameControl = NodeListByIdControl.extend({
|
Backform.NodeListByNameControl = NodeListByIdControl.extend({
|
||||||
defaults: _.extend({}, NodeListByIdControl.prototype.defaults, {
|
defaults: _.extend({}, NodeListByIdControl.prototype.defaults, {
|
||||||
transform: function(rows) {
|
transform: function(rows) {
|
||||||
var self = this,
|
let self = this,
|
||||||
node = self.field.get('schema_node'),
|
node = self.field.get('schema_node'),
|
||||||
res = [],
|
res = [],
|
||||||
filter = self.field.get('filter') || function() {
|
filter = self.field.get('filter') || function() {
|
||||||
@@ -282,7 +282,7 @@ define([
|
|||||||
|
|
||||||
_.each(rows, function(r) {
|
_.each(rows, function(r) {
|
||||||
if (filter(r)) {
|
if (filter(r)) {
|
||||||
var l = (_.isFunction(node['node_label']) ?
|
let l = (_.isFunction(node['node_label']) ?
|
||||||
(node['node_label']).apply(node, [r, self.model, self]) :
|
(node['node_label']).apply(node, [r, self.model, self]) :
|
||||||
r.label),
|
r.label),
|
||||||
image = (_.isFunction(node['node_image']) ?
|
image = (_.isFunction(node['node_image']) ?
|
||||||
@@ -311,7 +311,7 @@ define([
|
|||||||
return this.each(function() {
|
return this.each(function() {
|
||||||
if (!this || !$(this.length))
|
if (!this || !$(this.length))
|
||||||
return;
|
return;
|
||||||
var top, p = $(this),
|
let top, p = $(this),
|
||||||
hasScrollbar = function(j) {
|
hasScrollbar = function(j) {
|
||||||
if (j && j.length > 0) {
|
if (j && j.length > 0) {
|
||||||
return j.get(0).scrollHeight > j.height();
|
return j.get(0).scrollHeight > j.height();
|
||||||
@@ -340,7 +340,7 @@ define([
|
|||||||
if (!this || !$(this.length))
|
if (!this || !$(this.length))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var elem = $(this),
|
let elem = $(this),
|
||||||
backgridDiv = $(this).offsetParent().parent(), // Backgrid div.subnode
|
backgridDiv = $(this).offsetParent().parent(), // Backgrid div.subnode
|
||||||
backgridDivTop = backgridDiv.offset().top,
|
backgridDivTop = backgridDiv.offset().top,
|
||||||
backgridDivHeight = backgridDiv.height(),
|
backgridDivHeight = backgridDiv.height(),
|
||||||
@@ -353,7 +353,7 @@ define([
|
|||||||
gridScroll = backformTab[0].offsetHeight - backgridDivTop;
|
gridScroll = backformTab[0].offsetHeight - backgridDivTop;
|
||||||
|
|
||||||
if (backgridDivHeight > gridScroll) {
|
if (backgridDivHeight > gridScroll) {
|
||||||
var top = elem.get(0).offsetTop + elem.height();
|
let top = elem.get(0).offsetTop + elem.height();
|
||||||
backformTab.find('.tab-content').scrollTop(top);
|
backformTab.find('.tab-content').scrollTop(top);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -372,7 +372,7 @@ define([
|
|||||||
* specify the 'transform' function too, which will convert the fetched
|
* specify the 'transform' function too, which will convert the fetched
|
||||||
* data to proper 'label', 'value' format.
|
* data to proper 'label', 'value' format.
|
||||||
*/
|
*/
|
||||||
var NodeAjaxOptionsCell = Backgrid.Extension.NodeAjaxOptionsCell = Backgrid.Extension.Select2Cell.extend({
|
let NodeAjaxOptionsCell = Backgrid.Extension.NodeAjaxOptionsCell = Backgrid.Extension.Select2Cell.extend({
|
||||||
defaults: _.extend({}, Backgrid.Extension.Select2Cell.prototype.defaults, {
|
defaults: _.extend({}, Backgrid.Extension.Select2Cell.prototype.defaults, {
|
||||||
url: undefined,
|
url: undefined,
|
||||||
transform: undefined,
|
transform: undefined,
|
||||||
@@ -395,14 +395,14 @@ define([
|
|||||||
initialize: function() {
|
initialize: function() {
|
||||||
Backgrid.Extension.Select2Cell.prototype.initialize.apply(this, arguments);
|
Backgrid.Extension.Select2Cell.prototype.initialize.apply(this, arguments);
|
||||||
|
|
||||||
var url = this.column.get('url') || this.defaults.url,
|
let url = this.column.get('url') || this.defaults.url,
|
||||||
is_options_cached = _.has(this.column.attributes, 'options_cached'),
|
is_options_cached = _.has(this.column.attributes, 'options_cached'),
|
||||||
options_cached = is_options_cached && this.column.get('options_cached');
|
options_cached = is_options_cached && this.column.get('options_cached');
|
||||||
// Hmm - we found the url option.
|
// Hmm - we found the url option.
|
||||||
// That means - we needs to fetch the options from that node.
|
// That means - we needs to fetch the options from that node.
|
||||||
if (url && !options_cached) {
|
if (url && !options_cached) {
|
||||||
|
|
||||||
var self = this,
|
let self = this,
|
||||||
m = this.model,
|
m = this.model,
|
||||||
column = this.column,
|
column = this.column,
|
||||||
eventHandler = m.top || m,
|
eventHandler = m.top || m,
|
||||||
@@ -430,7 +430,7 @@ define([
|
|||||||
* If yes - use that, and do not bother about fetching it again,
|
* If yes - use that, and do not bother about fetching it again,
|
||||||
* and use it.
|
* and use it.
|
||||||
*/
|
*/
|
||||||
var data = cache_node.cache(node.type + '#' + url, node_info, cache_level);
|
let data = cache_node.cache(node.type + '#' + url, node_info, cache_level);
|
||||||
|
|
||||||
if (column.get('version_compatible') &&
|
if (column.get('version_compatible') &&
|
||||||
(_.isUndefined(data) || _.isNull(data))) {
|
(_.isUndefined(data) || _.isNull(data))) {
|
||||||
@@ -460,7 +460,7 @@ define([
|
|||||||
/*
|
/*
|
||||||
* Transform the data
|
* Transform the data
|
||||||
*/
|
*/
|
||||||
var transform = column.get('transform') || self.defaults.transform;
|
let transform = column.get('transform') || self.defaults.transform;
|
||||||
if (transform && _.isFunction(transform)) {
|
if (transform && _.isFunction(transform)) {
|
||||||
// We will transform the data later, when rendering.
|
// We will transform the data later, when rendering.
|
||||||
// It will allow us to generate different data based on the
|
// It will allow us to generate different data based on the
|
||||||
@@ -477,8 +477,8 @@ define([
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
var transformFunc = function(rows, control) {
|
let transformFunc = function(rows, control) {
|
||||||
var self = control || this,
|
let self = control || this,
|
||||||
node = self.column.get('schema_node'),
|
node = self.column.get('schema_node'),
|
||||||
filter = self.column.get('filter') || function() {
|
filter = self.column.get('filter') || function() {
|
||||||
return true;
|
return true;
|
||||||
@@ -537,7 +537,7 @@ define([
|
|||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
getValueFromDOM: function() {
|
getValueFromDOM: function() {
|
||||||
var res = [];
|
let res = [];
|
||||||
|
|
||||||
this.$el.find('select').find(':selected').each(function() {
|
this.$el.find('select').find(':selected').each(function() {
|
||||||
res.push($(this).attr('value'));
|
res.push($(this).attr('value'));
|
||||||
|
|||||||
@@ -14,18 +14,18 @@ import pgAdmin from 'sources/pgadmin';
|
|||||||
|
|
||||||
/* It generates the URL based on collection node selected */
|
/* It generates the URL based on collection node selected */
|
||||||
export function generateCollectionURL(item, type) {
|
export function generateCollectionURL(item, type) {
|
||||||
var opURL = {
|
let opURL = {
|
||||||
'properties': 'obj',
|
'properties': 'obj',
|
||||||
'children': 'nodes',
|
'children': 'nodes',
|
||||||
'drop': 'obj',
|
'drop': 'obj',
|
||||||
};
|
};
|
||||||
let nodeObj= this;
|
let nodeObj= this;
|
||||||
var collectionPickFunction = function (treeInfoValue, treeInfoKey) {
|
let collectionPickFunction = function (treeInfoValue, treeInfoKey) {
|
||||||
return (treeInfoKey != nodeObj.type);
|
return (treeInfoKey != nodeObj.type);
|
||||||
};
|
};
|
||||||
var treeInfo = pgAdmin.Browser.tree.getTreeNodeHierarchy(item);
|
let treeInfo = pgAdmin.Browser.tree.getTreeNodeHierarchy(item);
|
||||||
var actionType = type in opURL ? opURL[type] : type;
|
let actionType = type in opURL ? opURL[type] : type;
|
||||||
var nodeType = type === 'properties' ? nodeObj.type : nodeObj.node;
|
let nodeType = type === 'properties' ? nodeObj.type : nodeObj.node;
|
||||||
return generate_url(
|
return generate_url(
|
||||||
pgAdmin.Browser.URL, treeInfo, actionType, nodeType,
|
pgAdmin.Browser.URL, treeInfo, actionType, nodeType,
|
||||||
collectionPickFunction
|
collectionPickFunction
|
||||||
@@ -69,7 +69,7 @@ export function generateNodeUrl(treeNodeInfo, actionType, itemNodeData, withId,
|
|||||||
jump_after_priority = treeNodeInfo[jumpAfterNode].priority;
|
jump_after_priority = treeNodeInfo[jumpAfterNode].priority;
|
||||||
}
|
}
|
||||||
|
|
||||||
var nodePickFunction = function(treeInfoValue) {
|
let nodePickFunction = function(treeInfoValue) {
|
||||||
return (treeInfoValue.priority <= jump_after_priority || treeInfoValue.priority == priority);
|
return (treeInfoValue.priority <= jump_after_priority || treeInfoValue.priority == priority);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -111,7 +111,7 @@ export function getNodeAjaxOptions(url, nodeObj, treeNodeInfo, itemNodeData, par
|
|||||||
* If yes - use that, and do not bother about fetching it again,
|
* If yes - use that, and do not bother about fetching it again,
|
||||||
* and use it.
|
* and use it.
|
||||||
*/
|
*/
|
||||||
var data = cacheNode.cache(nodeObj.type + '#' + url, treeNodeInfo, cacheLevel);
|
let data = cacheNode.cache(nodeObj.type + '#' + url, treeNodeInfo, cacheLevel);
|
||||||
|
|
||||||
if (_.isUndefined(data) || _.isNull(data)) {
|
if (_.isUndefined(data) || _.isNull(data)) {
|
||||||
api.get(fullUrl, {
|
api.get(fullUrl, {
|
||||||
@@ -139,11 +139,11 @@ export function getNodeAjaxOptions(url, nodeObj, treeNodeInfo, itemNodeData, par
|
|||||||
export function getNodeListById(nodeObj, treeNodeInfo, itemNodeData, params={}, filter=()=>true) {
|
export function getNodeListById(nodeObj, treeNodeInfo, itemNodeData, params={}, filter=()=>true) {
|
||||||
/* Transform the result to add image details */
|
/* Transform the result to add image details */
|
||||||
const transform = (rows) => {
|
const transform = (rows) => {
|
||||||
var res = [];
|
let res = [];
|
||||||
|
|
||||||
_.each(rows, function(r) {
|
_.each(rows, function(r) {
|
||||||
if (filter(r)) {
|
if (filter(r)) {
|
||||||
var l = (_.isFunction(nodeObj['node_label']) ?
|
let l = (_.isFunction(nodeObj['node_label']) ?
|
||||||
(nodeObj['node_label']).apply(nodeObj, [r]) :
|
(nodeObj['node_label']).apply(nodeObj, [r]) :
|
||||||
r.label),
|
r.label),
|
||||||
image = (_.isFunction(nodeObj['node_image']) ?
|
image = (_.isFunction(nodeObj['node_image']) ?
|
||||||
@@ -170,11 +170,11 @@ export function getNodeListByName(node, treeNodeInfo, itemNodeData, params={}, f
|
|||||||
let {includeItemKeys} = params;
|
let {includeItemKeys} = params;
|
||||||
/* Transform the result to add image details */
|
/* Transform the result to add image details */
|
||||||
const transform = (rows) => {
|
const transform = (rows) => {
|
||||||
var res = [];
|
let res = [];
|
||||||
|
|
||||||
_.each(rows, function(r) {
|
_.each(rows, function(r) {
|
||||||
if (filter(r)) {
|
if (filter(r)) {
|
||||||
var l = (_.isFunction(nodeObj['node_label']) ?
|
let l = (_.isFunction(nodeObj['node_label']) ?
|
||||||
(nodeObj['node_label']).apply(nodeObj, [r]) :
|
(nodeObj['node_label']).apply(nodeObj, [r]) :
|
||||||
r.label),
|
r.label),
|
||||||
image = (_.isFunction(nodeObj['node_image']) ?
|
image = (_.isFunction(nodeObj['node_image']) ?
|
||||||
|
|||||||
@@ -14,11 +14,11 @@ define(
|
|||||||
['sources/pgadmin', 'jquery', 'wcdocker'],
|
['sources/pgadmin', 'jquery', 'wcdocker'],
|
||||||
function(pgAdmin, $) {
|
function(pgAdmin, $) {
|
||||||
|
|
||||||
var pgBrowser = pgAdmin.Browser = pgAdmin.Browser || {},
|
let pgBrowser = pgAdmin.Browser = pgAdmin.Browser || {},
|
||||||
wcDocker = window.wcDocker;
|
wcDocker = window.wcDocker;
|
||||||
|
|
||||||
pgAdmin.Browser.Panel = function(options) {
|
pgAdmin.Browser.Panel = function(options) {
|
||||||
var defaults = [
|
let defaults = [
|
||||||
'name', 'title', 'width', 'height', 'showTitle', 'isCloseable',
|
'name', 'title', 'width', 'height', 'showTitle', 'isCloseable',
|
||||||
'isPrivate', 'isLayoutMember', 'content', 'icon', 'events', 'onCreate', 'elContainer',
|
'isPrivate', 'isLayoutMember', 'content', 'icon', 'events', 'onCreate', 'elContainer',
|
||||||
'canHide', 'limit', 'extraClasses', 'canMaximise',
|
'canHide', 'limit', 'extraClasses', 'canMaximise',
|
||||||
@@ -44,7 +44,7 @@ define(
|
|||||||
limit: null,
|
limit: null,
|
||||||
extraClasses: null,
|
extraClasses: null,
|
||||||
load: function(docker, title) {
|
load: function(docker, title) {
|
||||||
var that = this;
|
let that = this;
|
||||||
if (!that.panel) {
|
if (!that.panel) {
|
||||||
docker.registerPanelType(that.name, {
|
docker.registerPanelType(that.name, {
|
||||||
title: that.title,
|
title: that.title,
|
||||||
@@ -58,13 +58,13 @@ define(
|
|||||||
if (!that.showTitle)
|
if (!that.showTitle)
|
||||||
myPanel.title(false);
|
myPanel.title(false);
|
||||||
else {
|
else {
|
||||||
var title_elem = '<a href="#" tabindex="-1" class="panel-link-heading">' + (title || that.title) + '</a>';
|
let title_elem = '<a href="#" tabindex="-1" class="panel-link-heading">' + (title || that.title) + '</a>';
|
||||||
myPanel.title(title_elem);
|
myPanel.title(title_elem);
|
||||||
if (that.icon != '')
|
if (that.icon != '')
|
||||||
myPanel.icon(that.icon);
|
myPanel.icon(that.icon);
|
||||||
}
|
}
|
||||||
|
|
||||||
var $container = $('<div>', {
|
let $container = $('<div>', {
|
||||||
'class': 'pg-panel-content',
|
'class': 'pg-panel-content',
|
||||||
}).append($(that.content));
|
}).append($(that.content));
|
||||||
|
|
||||||
@@ -197,7 +197,7 @@ define(
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
eventFunc: function(eventName) {
|
eventFunc: function(eventName) {
|
||||||
var name = $(this).data('pgAdminName');
|
let name = $(this).data('pgAdminName');
|
||||||
try {
|
try {
|
||||||
pgBrowser.Events.trigger(
|
pgBrowser.Events.trigger(
|
||||||
'pgadmin-browser:panel', eventName, this, arguments
|
'pgadmin-browser:panel', eventName, this, arguments
|
||||||
@@ -219,7 +219,7 @@ define(
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
resizedContainer: function() {
|
resizedContainer: function() {
|
||||||
var p = this;
|
let p = this;
|
||||||
|
|
||||||
if (p.pgElContainer && !p.pgResizeTimeout) {
|
if (p.pgElContainer && !p.pgResizeTimeout) {
|
||||||
if (!p.isVisible()) {
|
if (!p.isVisible()) {
|
||||||
@@ -230,7 +230,7 @@ define(
|
|||||||
}
|
}
|
||||||
p.pgResizeTimeout = setTimeout(
|
p.pgResizeTimeout = setTimeout(
|
||||||
function() {
|
function() {
|
||||||
var w = p.width(),
|
let w = p.width(),
|
||||||
elAttr = 'xs';
|
elAttr = 'xs';
|
||||||
p.pgResizeTimeout = null;
|
p.pgResizeTimeout = null;
|
||||||
|
|
||||||
@@ -259,7 +259,7 @@ define(
|
|||||||
|
|
||||||
let selectedPanel = pgBrowser.docker.findPanels(this._type)[0];
|
let selectedPanel = pgBrowser.docker.findPanels(this._type)[0];
|
||||||
let isPanelVisible = selectedPanel.isVisible();
|
let isPanelVisible = selectedPanel.isVisible();
|
||||||
var $container = selectedPanel
|
let $container = selectedPanel
|
||||||
.layout()
|
.layout()
|
||||||
.scene()
|
.scene()
|
||||||
.find('.pg-panel-content');
|
.find('.pg-panel-content');
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ _.extend(pgBrowser, {
|
|||||||
|
|
||||||
/* Get all the preferences of a module */
|
/* Get all the preferences of a module */
|
||||||
get_preferences_for_module: function(module) {
|
get_preferences_for_module: function(module) {
|
||||||
var self = this;
|
let self = this;
|
||||||
let preferences = {};
|
let preferences = {};
|
||||||
_.each(
|
_.each(
|
||||||
_.where(self.preferences_cache, {'module': module}),
|
_.where(self.preferences_cache, {'module': module}),
|
||||||
@@ -69,14 +69,14 @@ _.extend(pgBrowser, {
|
|||||||
|
|
||||||
/* Get preference of an id, id is numeric */
|
/* Get preference of an id, id is numeric */
|
||||||
get_preference_for_id : function(id) {
|
get_preference_for_id : function(id) {
|
||||||
var self = this;
|
let self = this;
|
||||||
/* findWhere returns undefined if not found */
|
/* findWhere returns undefined if not found */
|
||||||
return _.findWhere(self.preferences_cache, {'id': id});
|
return _.findWhere(self.preferences_cache, {'id': id});
|
||||||
},
|
},
|
||||||
|
|
||||||
// Get and cache the preferences
|
// Get and cache the preferences
|
||||||
cache_preferences: function (modulesChanged) {
|
cache_preferences: function (modulesChanged) {
|
||||||
var self = this,
|
let self = this,
|
||||||
headers = {};
|
headers = {};
|
||||||
headers[pgAdmin.csrf_token_header] = pgAdmin.csrf_token;
|
headers[pgAdmin.csrf_token_header] = pgAdmin.csrf_token;
|
||||||
|
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ export function initializeToolbar(panel, wcDocker) {
|
|||||||
else if ('name' in data && data.name === gettext('Search objects'))
|
else if ('name' in data && data.name === gettext('Search objects'))
|
||||||
pgAdmin.Tools.SearchObjects.show_search_objects('', pgAdmin.Browser.tree.selected());
|
pgAdmin.Tools.SearchObjects.show_search_objects('', pgAdmin.Browser.tree.selected());
|
||||||
else if ('name' in data && data.name === gettext('PSQL Tool')){
|
else if ('name' in data && data.name === gettext('PSQL Tool')){
|
||||||
var input = {},
|
let input = {},
|
||||||
t = pgAdmin.Browser.tree,
|
t = pgAdmin.Browser.tree,
|
||||||
i = input.item || t.selected(),
|
i = input.item || t.selected(),
|
||||||
d = i ? t.itemData(i) : undefined;
|
d = i ? t.itemData(i) : undefined;
|
||||||
|
|||||||
@@ -12,12 +12,12 @@ define(
|
|||||||
['sources/gettext', 'sources/pgadmin'],
|
['sources/gettext', 'sources/pgadmin'],
|
||||||
function(gettext, pgAdmin) {
|
function(gettext, pgAdmin) {
|
||||||
|
|
||||||
var pgBrowser = pgAdmin.Browser = pgAdmin.Browser || {};
|
let pgBrowser = pgAdmin.Browser = pgAdmin.Browser || {};
|
||||||
|
|
||||||
if (pgBrowser.messages)
|
if (pgBrowser.messages)
|
||||||
return pgBrowser.messages;
|
return pgBrowser.messages;
|
||||||
|
|
||||||
var messages = pgBrowser.messages = {
|
let messages = pgBrowser.messages = {
|
||||||
'SERVER_LOST': gettext('Connection to the server has been lost.'),
|
'SERVER_LOST': gettext('Connection to the server has been lost.'),
|
||||||
'CLICK_FOR_DETAILED_MSG': gettext('Click here for details.'),
|
'CLICK_FOR_DETAILED_MSG': gettext('Click here for details.'),
|
||||||
'GENERAL_CATEGORY': gettext('General'),
|
'GENERAL_CATEGORY': gettext('General'),
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
define('pgadmin.browser.utils',
|
define('pgadmin.browser.utils',
|
||||||
['sources/pgadmin'], function(pgAdmin) {
|
['sources/pgadmin'], function(pgAdmin) {
|
||||||
|
|
||||||
var pgBrowser = pgAdmin.Browser = pgAdmin.Browser || {};
|
let pgBrowser = pgAdmin.Browser = pgAdmin.Browser || {};
|
||||||
|
|
||||||
/* Add hooked-in panels by extensions */
|
/* Add hooked-in panels by extensions */
|
||||||
pgBrowser['panels_items'] = '{{ current_app.panels|tojson }}';
|
pgBrowser['panels_items'] = '{{ current_app.panels|tojson }}';
|
||||||
@@ -62,7 +62,7 @@ define('pgadmin.browser.utils',
|
|||||||
pgAdmin['enable_binary_path_browsing'] = '{{ current_app.config.get('ENABLE_BINARY_PATH_BROWSING') }}' == 'True';
|
pgAdmin['enable_binary_path_browsing'] = '{{ current_app.config.get('ENABLE_BINARY_PATH_BROWSING') }}' == 'True';
|
||||||
|
|
||||||
// Define list of nodes on which Query tool option doesn't appears
|
// Define list of nodes on which Query tool option doesn't appears
|
||||||
var unsupported_nodes = pgAdmin.unsupported_nodes = [
|
let unsupported_nodes = pgAdmin.unsupported_nodes = [
|
||||||
'server_group', 'server', 'coll-tablespace', 'tablespace',
|
'server_group', 'server', 'coll-tablespace', 'tablespace',
|
||||||
'coll-role', 'role', 'coll-resource_group', 'resource_group',
|
'coll-role', 'role', 'coll-resource_group', 'resource_group',
|
||||||
'coll-database'
|
'coll-database'
|
||||||
@@ -96,7 +96,7 @@ define('pgadmin.browser.utils',
|
|||||||
//
|
//
|
||||||
// First - register the menus from the other
|
// First - register the menus from the other
|
||||||
// modules/extensions.
|
// modules/extensions.
|
||||||
var self = this;
|
let self = this;
|
||||||
if (this.counter.total == this.counter.loaded) {
|
if (this.counter.total == this.counter.loaded) {
|
||||||
{% for key in ('File', 'Edit', 'Object' 'Tools', 'Management', 'Help') %}
|
{% for key in ('File', 'Edit', 'Object' 'Tools', 'Management', 'Help') %}
|
||||||
obj.add_menus({{ MENU_ITEMS(key, current_app.menu_items['%s_items' % key.lower()])}});
|
obj.add_menus({{ MENU_ITEMS(key, current_app.menu_items['%s_items' % key.lower()])}});
|
||||||
@@ -110,7 +110,7 @@ define('pgadmin.browser.utils',
|
|||||||
|
|
||||||
// load the module right now
|
// load the module right now
|
||||||
load_module: function(name, path, c) {
|
load_module: function(name, path, c) {
|
||||||
var obj = this;
|
let obj = this;
|
||||||
require([name],function(m) {
|
require([name],function(m) {
|
||||||
try {
|
try {
|
||||||
// initialize the module (if 'init' function present).
|
// initialize the module (if 'init' function present).
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
export function getHelpUrl(base_path, file, version) {
|
export function getHelpUrl(base_path, file, version) {
|
||||||
var major = Math.floor(version / 10000),
|
let major = Math.floor(version / 10000),
|
||||||
minor = Math.floor(version / 100) - (major * 100),
|
minor = Math.floor(version / 100) - (major * 100),
|
||||||
url = '',
|
url = '',
|
||||||
replace_string = major + '.' + minor;
|
replace_string = major + '.' + minor;
|
||||||
@@ -28,7 +28,7 @@ export function getHelpUrl(base_path, file, version) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getEPASHelpUrl(version) {
|
export function getEPASHelpUrl(version) {
|
||||||
var major = Math.floor(version / 10000),
|
let major = Math.floor(version / 10000),
|
||||||
minor = Math.floor(version / 100) - (major * 100),
|
minor = Math.floor(version / 100) - (major * 100),
|
||||||
epasHelp11Plus = 'https://www.enterprisedb.com/docs/epas/$VERSION$/epas_compat_sql/',
|
epasHelp11Plus = 'https://www.enterprisedb.com/docs/epas/$VERSION$/epas_compat_sql/',
|
||||||
epasHelp = 'https://www.enterprisedb.com/docs/epas/$VERSION$/',
|
epasHelp = 'https://www.enterprisedb.com/docs/epas/$VERSION$/',
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ export function AwsInstanceDetails(props) {
|
|||||||
{
|
{
|
||||||
return new Promise((resolve, reject)=>{
|
return new Promise((resolve, reject)=>{
|
||||||
const api = getApiInstance();
|
const api = getApiInstance();
|
||||||
var _url = url_for('rds.db_instances') ;
|
let _url = url_for('rds.db_instances') ;
|
||||||
|
|
||||||
if (engine) _url += '?eng_version=' + engine;
|
if (engine) _url += '?eng_version=' + engine;
|
||||||
if (reload || options === undefined || options.length == 0) {
|
if (reload || options === undefined || options.length == 0) {
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ const useStyles = makeStyles(() =>
|
|||||||
export function AzureCredentials(props) {
|
export function AzureCredentials(props) {
|
||||||
const [cloudDBCredInstance, setCloudDBCredInstance] = React.useState();
|
const [cloudDBCredInstance, setCloudDBCredInstance] = React.useState();
|
||||||
|
|
||||||
var _eventBus = React.useContext(CloudWizardEventsContext);
|
let _eventBus = React.useContext(CloudWizardEventsContext);
|
||||||
React.useMemo(() => {
|
React.useMemo(() => {
|
||||||
const azureCloudDBCredSchema = new AzureCredSchema({
|
const azureCloudDBCredSchema = new AzureCredSchema({
|
||||||
authenticateAzure:(auth_type, azure_tenant_id) => {
|
authenticateAzure:(auth_type, azure_tenant_id) => {
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ define('pgadmin.misc.cloud', [
|
|||||||
this.initialized = true;
|
this.initialized = true;
|
||||||
|
|
||||||
// Define the nodes on which the menus to be appear
|
// Define the nodes on which the menus to be appear
|
||||||
var menus = [{
|
let menus = [{
|
||||||
name: 'register_and_deploy_cloud_instance',
|
name: 'register_and_deploy_cloud_instance',
|
||||||
module: this,
|
module: this,
|
||||||
applies: ['object', 'context'],
|
applies: ['object', 'context'],
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ export default class Preferences {
|
|||||||
return;
|
return;
|
||||||
this.initialized = true;
|
this.initialized = true;
|
||||||
// Add Preferences in to file menu
|
// Add Preferences in to file menu
|
||||||
var menus = [{
|
let menus = [{
|
||||||
name: 'mnu_preferences',
|
name: 'mnu_preferences',
|
||||||
module: this,
|
module: this,
|
||||||
applies: ['file'],
|
applies: ['file'],
|
||||||
@@ -49,7 +49,7 @@ export default class Preferences {
|
|||||||
|
|
||||||
// This is a callback function to show preferences.
|
// This is a callback function to show preferences.
|
||||||
show() {
|
show() {
|
||||||
|
|
||||||
// Render Preferences component
|
// Render Preferences component
|
||||||
Notify.showModal(gettext('Preferences'), (closeModal) => {
|
Notify.showModal(gettext('Preferences'), (closeModal) => {
|
||||||
return <PreferencesComponent
|
return <PreferencesComponent
|
||||||
@@ -59,4 +59,4 @@ export default class Preferences {
|
|||||||
}} closeModal={closeModal} />;
|
}} closeModal={closeModal} />;
|
||||||
}, { isFullScreen: false, isResizeable: true, showFullScreen: true, isFullWidth: true, dialogWidth: 900, dialogHeight: 550 });
|
}, { isFullScreen: false, isResizeable: true, showFullScreen: true, isFullWidth: true, dialogWidth: 900, dialogHeight: 550 });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ define('pgadmin.settings', [
|
|||||||
Notify.confirm(gettext('Reset layout'),
|
Notify.confirm(gettext('Reset layout'),
|
||||||
gettext('Are you sure you want to reset the current layout? This will cause the application to reload and any un-saved data will be lost.'),
|
gettext('Are you sure you want to reset the current layout? This will cause the application to reload and any un-saved data will be lost.'),
|
||||||
function() {
|
function() {
|
||||||
var reloadingIndicator = $('<div id="reloading-indicator"></div>');
|
let reloadingIndicator = $('<div id="reloading-indicator"></div>');
|
||||||
$('body').append(reloadingIndicator);
|
$('body').append(reloadingIndicator);
|
||||||
// Delete the record from database as well, then only reload page
|
// Delete the record from database as well, then only reload page
|
||||||
$.ajax({
|
$.ajax({
|
||||||
|
|||||||
@@ -10,9 +10,9 @@
|
|||||||
define('app', [
|
define('app', [
|
||||||
'sources/pgadmin', 'bundled_browser',
|
'sources/pgadmin', 'bundled_browser',
|
||||||
], function(pgAdmin) {
|
], function(pgAdmin) {
|
||||||
var initializeModules = function(Object) {
|
let initializeModules = function(Object) {
|
||||||
for (var key in Object) {
|
for (let key in Object) {
|
||||||
var module = Object[key];
|
let module = Object[key];
|
||||||
|
|
||||||
if (module && module.init && typeof module.init == 'function') {
|
if (module && module.init && typeof module.init == 'function') {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import 'codemirror/addon/comment/comment';
|
|||||||
import 'sources/codemirror/addon/fold/pgadmin-sqlfoldcode';
|
import 'sources/codemirror/addon/fold/pgadmin-sqlfoldcode';
|
||||||
import 'sources/codemirror/extension/centre_on_line';
|
import 'sources/codemirror/extension/centre_on_line';
|
||||||
|
|
||||||
var cmds = CodeMirror.commands;
|
let cmds = CodeMirror.commands;
|
||||||
cmds.focusOut = function(){
|
cmds.focusOut = function(){
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
document.activeElement.blur();
|
document.activeElement.blur();
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ export default function FormView({
|
|||||||
let isOnScreen = useOnScreen(formRef);
|
let isOnScreen = useOnScreen(formRef);
|
||||||
if(isOnScreen) {
|
if(isOnScreen) {
|
||||||
/* Don't do it when the form is alredy visible */
|
/* Don't do it when the form is alredy visible */
|
||||||
if(onScreenTracker.current == false) {
|
if(!onScreenTracker.current) {
|
||||||
/* Re-select the tab. If form is hidden then sometimes it is not selected */
|
/* Re-select the tab. If form is hidden then sometimes it is not selected */
|
||||||
setTabValue(tabValue);
|
setTabValue(tabValue);
|
||||||
onScreenTracker.current = true;
|
onScreenTracker.current = true;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -24,14 +24,14 @@ define([],
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Exclude non-applicable nodes
|
// Exclude non-applicable nodes
|
||||||
var nodes_not_supported = [
|
let nodes_not_supported = [
|
||||||
'server_group', 'server', 'catalog_object_column',
|
'server_group', 'server', 'catalog_object_column',
|
||||||
];
|
];
|
||||||
if(_.indexOf(nodes_not_supported, node_type) >= 0) {
|
if(_.indexOf(nodes_not_supported, node_type) >= 0) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var preference = pgBrowser.get_preference('browser', 'show_node_'+node_type);
|
let preference = pgBrowser.get_preference('browser', 'show_node_'+node_type);
|
||||||
|
|
||||||
if (preference) {
|
if (preference) {
|
||||||
return preference.value;
|
return preference.value;
|
||||||
|
|||||||
@@ -17,20 +17,21 @@
|
|||||||
})(function(CodeMirror) {
|
})(function(CodeMirror) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var pgadminKeywordRangeFinder = function(cm, start, tokenSet) {
|
let pgadminKeywordRangeFinder = function(cm, start, tokenSet) {
|
||||||
var line = start.line,
|
let line = start.line,
|
||||||
lineText = cm.getLine(line);
|
lineText = cm.getLine(line);
|
||||||
var at = lineText.length,
|
let at = lineText.length,
|
||||||
startChar, tokenType;
|
startChar, tokenType;
|
||||||
|
|
||||||
let tokenSetNo = 0;
|
let tokenSetNo = 0,
|
||||||
|
startToken, endToken;
|
||||||
let startTkn = tokenSet[tokenSetNo].start,
|
let startTkn = tokenSet[tokenSetNo].start,
|
||||||
endTkn = tokenSet[tokenSetNo].end;
|
endTkn = tokenSet[tokenSetNo].end;
|
||||||
while (at > 0) {
|
while (at > 0) {
|
||||||
var found = lineText.toUpperCase().lastIndexOf(startTkn, at);
|
let found = lineText.toUpperCase().lastIndexOf(startTkn, at);
|
||||||
found = checkStartTokenFoundOnEndToken(found, lineText.toUpperCase(), endTkn, startTkn);
|
found = checkStartTokenFoundOnEndToken(found, lineText.toUpperCase(), endTkn, startTkn);
|
||||||
var startToken = startTkn;
|
startToken = startTkn;
|
||||||
var endToken = endTkn;
|
endToken = endTkn;
|
||||||
|
|
||||||
if (found < start.ch) {
|
if (found < start.ch) {
|
||||||
/* If the start token is not found then search for the next set of token */
|
/* If the start token is not found then search for the next set of token */
|
||||||
@@ -52,18 +53,18 @@
|
|||||||
at = found - 1;
|
at = found - 1;
|
||||||
}
|
}
|
||||||
if (startChar == null || lineText.toUpperCase().lastIndexOf(startToken) > startChar) return;
|
if (startChar == null || lineText.toUpperCase().lastIndexOf(startToken) > startChar) return;
|
||||||
var count = 1,
|
let count = 1,
|
||||||
lastLine = cm.lineCount(),
|
lastLine = cm.lineCount(),
|
||||||
end, endCh;
|
end, endCh;
|
||||||
outer: for (var i = line + 1; i < lastLine; ++i) {
|
outer: for (let i = line + 1; i < lastLine; ++i) {
|
||||||
var text = cm.getLine(i).toUpperCase(),
|
let text = cm.getLine(i).toUpperCase(),
|
||||||
pos = 0;
|
pos = 0;
|
||||||
var whileloopvar = 0;
|
let whileloopvar = 0;
|
||||||
while (whileloopvar < 1) {
|
while (whileloopvar < 1) {
|
||||||
var nextOpen = text.indexOf(startToken, pos);
|
let nextOpen = text.indexOf(startToken, pos);
|
||||||
nextOpen = checkStartTokenFoundOnEndToken(nextOpen, text, endToken, startToken);
|
nextOpen = checkStartTokenFoundOnEndToken(nextOpen, text, endToken, startToken);
|
||||||
|
|
||||||
var nextClose = text.indexOf(endToken, pos);
|
let nextClose = text.indexOf(endToken, pos);
|
||||||
if (nextOpen < 0) nextOpen = text.length;
|
if (nextOpen < 0) nextOpen = text.length;
|
||||||
if (nextClose < 0) nextClose = text.length;
|
if (nextClose < 0) nextClose = text.length;
|
||||||
pos = Math.min(nextOpen, nextClose);
|
pos = Math.min(nextOpen, nextClose);
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
import CodeMirror from 'codemirror/lib/codemirror';
|
import CodeMirror from 'codemirror/lib/codemirror';
|
||||||
|
|
||||||
CodeMirror.defineExtension('centerOnLine', function(line) {
|
CodeMirror.defineExtension('centerOnLine', function(line) {
|
||||||
var ht = this.getScrollInfo().clientHeight;
|
let ht = this.getScrollInfo().clientHeight;
|
||||||
var coords = this.charCoords({line: line, ch: 0}, 'local');
|
let coords = this.charCoords({line: line, ch: 0}, 'local');
|
||||||
this.scrollTo(null, (coords.top + coords.bottom - ht) / 2);
|
this.scrollTo(null, (coords.top + coords.bottom - ht) / 2);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ export function setPGCSRFToken(header, token) {
|
|||||||
|
|
||||||
// Configure Backbone.sync to set CSRF-Token-header request header for
|
// Configure Backbone.sync to set CSRF-Token-header request header for
|
||||||
// every requests except GET.
|
// every requests except GET.
|
||||||
var origBackboneSync = Backbone.sync;
|
let origBackboneSync = Backbone.sync;
|
||||||
Backbone.sync = function(method, model, options) {
|
Backbone.sync = function(method, model, options) {
|
||||||
options.beforeSend = function(xhr) {
|
options.beforeSend = function(xhr) {
|
||||||
xhr.setRequestHeader(header, token);
|
xhr.setRequestHeader(header, token);
|
||||||
@@ -30,7 +30,7 @@ export function setPGCSRFToken(header, token) {
|
|||||||
|
|
||||||
// Configure Backbone.get to set 'X-CSRFToken' request header for
|
// Configure Backbone.get to set 'X-CSRFToken' request header for
|
||||||
// GET requests.
|
// GET requests.
|
||||||
var origBackboneGet = Backbone.get;
|
let origBackboneGet = Backbone.get;
|
||||||
Backbone.get = function(method, model, options) {
|
Backbone.get = function(method, model, options) {
|
||||||
options.beforeSend = function(xhr) {
|
options.beforeSend = function(xhr) {
|
||||||
xhr.setRequestHeader(header, token);
|
xhr.setRequestHeader(header, token);
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ class dialogTabNavigator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onKeyboardEvent(event, shortcut) {
|
onKeyboardEvent(event, shortcut) {
|
||||||
var currentTabPane = this.dialogContainer
|
let currentTabPane = this.dialogContainer
|
||||||
.find('.tab-content:first > .tab-pane.active:first:visible'),
|
.find('.tab-content:first > .tab-pane.active:first:visible'),
|
||||||
childTabData = this.isActivePaneHasChildTabs(currentTabPane);
|
childTabData = this.isActivePaneHasChildTabs(currentTabPane);
|
||||||
|
|
||||||
@@ -44,7 +44,7 @@ class dialogTabNavigator {
|
|||||||
this.tabSwitching = true;
|
this.tabSwitching = true;
|
||||||
|
|
||||||
if(childTabData) {
|
if(childTabData) {
|
||||||
var res = this.navigate(shortcut, childTabData.childTab,
|
let res = this.navigate(shortcut, childTabData.childTab,
|
||||||
childTabData.childTabPane, event);
|
childTabData.childTabPane, event);
|
||||||
|
|
||||||
if (!res) {
|
if (!res) {
|
||||||
@@ -56,7 +56,7 @@ class dialogTabNavigator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
isActivePaneHasChildTabs(currentTabPane) {
|
isActivePaneHasChildTabs(currentTabPane) {
|
||||||
var childTab = currentTabPane.find('.nav-tabs:first:visible'),
|
let childTab = currentTabPane.find('.nav-tabs:first:visible'),
|
||||||
childTabPane;
|
childTabPane;
|
||||||
|
|
||||||
if (childTab.length > 0) {
|
if (childTab.length > 0) {
|
||||||
@@ -82,7 +82,7 @@ class dialogTabNavigator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
navigateBackward(tabs, tab_pane, event) {
|
navigateBackward(tabs, tab_pane, event) {
|
||||||
var self = this,
|
let self = this,
|
||||||
nextTabPane,
|
nextTabPane,
|
||||||
innerTabContainer,
|
innerTabContainer,
|
||||||
prevtab = $(tabs).find('li').has('a.active').prev('li');
|
prevtab = $(tabs).find('li').has('a.active').prev('li');
|
||||||
@@ -113,7 +113,7 @@ class dialogTabNavigator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
navigateForward(tabs, tab_pane, event) {
|
navigateForward(tabs, tab_pane, event) {
|
||||||
var self = this,
|
let self = this,
|
||||||
nextTabPane,
|
nextTabPane,
|
||||||
innerTabContainer,
|
innerTabContainer,
|
||||||
nexttab = $(tabs).find('li').has('a.active').next('li');
|
nexttab = $(tabs).find('li').has('a.active').next('li');
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ define(['translations'], function (translations) {
|
|||||||
*/
|
*/
|
||||||
return function gettext(text) {
|
return function gettext(text) {
|
||||||
|
|
||||||
var rawTranslation = translations[text] ? translations[text] : text;
|
let rawTranslation = translations[text] ? translations[text] : text;
|
||||||
|
|
||||||
if(arguments.length == 1) {
|
if(arguments.length == 1) {
|
||||||
return rawTranslation;
|
return rawTranslation;
|
||||||
|
|||||||
@@ -4,17 +4,17 @@
|
|||||||
(function() {
|
(function() {
|
||||||
|
|
||||||
// Used to resolve the internal `[[Class]]` of values
|
// Used to resolve the internal `[[Class]]` of values
|
||||||
var toString = Object.prototype.toString;
|
let toString = Object.prototype.toString;
|
||||||
|
|
||||||
// Used to resolve the decompiled source of functions
|
// Used to resolve the decompiled source of functions
|
||||||
var fnToString = Function.prototype.toString;
|
let fnToString = Function.prototype.toString;
|
||||||
|
|
||||||
// Used to detect host constructors (Safari > 4; really typed array specific)
|
// Used to detect host constructors (Safari > 4; really typed array specific)
|
||||||
var reHostCtor = /^\[object .+?Constructor\]$/;
|
let reHostCtor = /^\[object .+?Constructor\]$/;
|
||||||
|
|
||||||
// Compile a regexp using a common native method as a template.
|
// Compile a regexp using a common native method as a template.
|
||||||
// We chose `Object#toString` because there's a good chance it is not being mucked with.
|
// We chose `Object#toString` because there's a good chance it is not being mucked with.
|
||||||
var reNative = RegExp('^' +
|
let reNative = RegExp('^' +
|
||||||
// Coerce `Object#toString` to a string
|
// Coerce `Object#toString` to a string
|
||||||
String(toString)
|
String(toString)
|
||||||
// Escape any special regexp characters
|
// Escape any special regexp characters
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
);
|
);
|
||||||
|
|
||||||
function isNative(value) {
|
function isNative(value) {
|
||||||
var type = typeof value;
|
let type = typeof value;
|
||||||
return type == 'function'
|
return type == 'function'
|
||||||
// Use `Function#toString` to bypass the value's own `toString` method
|
// Use `Function#toString` to bypass the value's own `toString` method
|
||||||
// and avoid being faked out.
|
// and avoid being faked out.
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
//////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
define([], function() {
|
define([], function() {
|
||||||
var pgAdmin = window.pgAdmin = window.pgAdmin || {};
|
let pgAdmin = window.pgAdmin = window.pgAdmin || {};
|
||||||
|
|
||||||
// Reference:
|
// Reference:
|
||||||
// https://github.com/heygrady/Units/blob/master/Length.min.js
|
// https://github.com/heygrady/Units/blob/master/Length.min.js
|
||||||
@@ -57,7 +57,7 @@ define([], function() {
|
|||||||
else('auto' === _o || _i && 'px' !== _i) && m ? _o = 0 : _i && 'px' !== _i && !m && (_o = r(_t, _o) + 'px');
|
else('auto' === _o || _i && 'px' !== _i) && m ? _o = 0 : _i && 'px' !== _i && !m && (_o = r(_t, _o) + 'px');
|
||||||
return _o;
|
return _o;
|
||||||
}
|
}
|
||||||
var p, n = e.createElement('test'),
|
let p, n = e.createElement('test'),
|
||||||
i = e.documentElement,
|
i = e.documentElement,
|
||||||
l = e.defaultView,
|
l = e.defaultView,
|
||||||
m = l && l.getComputedStyle,
|
m = l && l.getComputedStyle,
|
||||||
@@ -76,7 +76,7 @@ define([], function() {
|
|||||||
pgAdmin.natural_sort = function(a, b, options) {
|
pgAdmin.natural_sort = function(a, b, options) {
|
||||||
options = options || {};
|
options = options || {};
|
||||||
|
|
||||||
var re = /(^-?[0-9]+(\.?[0-9]*)[df]?e?[0-9]?$|^0x[0-9a-f]+$|[0-9]+)/gi,
|
let re = /(^-?[0-9]+(\.?[0-9]*)[df]?e?[0-9]?$|^0x[0-9a-f]+$|[0-9]+)/gi,
|
||||||
sre = /(^[ ]*|[ ]*$)/g,
|
sre = /(^[ ]*|[ ]*$)/g,
|
||||||
dre = /(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,
|
dre = /(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,
|
||||||
hre = /^0x[0-9a-f]+$/i,
|
hre = /^0x[0-9a-f]+$/i,
|
||||||
@@ -102,7 +102,7 @@ define([], function() {
|
|||||||
else if (xD > yD) return 1 * mult;
|
else if (xD > yD) return 1 * mult;
|
||||||
|
|
||||||
// natural sorting through split numeric strings and default strings
|
// natural sorting through split numeric strings and default strings
|
||||||
for (var cLoc = 0, numS = Math.max(xN.length, yN.length); cLoc < numS; cLoc++) {
|
for (let cLoc = 0, numS = Math.max(xN.length, yN.length); cLoc < numS; cLoc++) {
|
||||||
// find floats not starting with '0', string or 0 if not defined (Clint Priest)
|
// find floats not starting with '0', string or 0 if not defined (Clint Priest)
|
||||||
oFxNcL = !(xN[cLoc] || '').match(ore) && parseFloat(xN[cLoc]) || xN[cLoc] || 0;
|
oFxNcL = !(xN[cLoc] || '').match(ore) && parseFloat(xN[cLoc]) || xN[cLoc] || 0;
|
||||||
oFyNcL = !(yN[cLoc] || '').match(ore) && parseFloat(yN[cLoc]) || yN[cLoc] || 0;
|
oFyNcL = !(yN[cLoc] || '').match(ore) && parseFloat(yN[cLoc]) || yN[cLoc] || 0;
|
||||||
|
|||||||
@@ -26,24 +26,24 @@ export default function (options) {
|
|||||||
Utils.Extend(ScrollDataAdapter, BaseAdapter);
|
Utils.Extend(ScrollDataAdapter, BaseAdapter);
|
||||||
|
|
||||||
ScrollDataAdapter.prototype.query = function (params, callback) {
|
ScrollDataAdapter.prototype.query = function (params, callback) {
|
||||||
var data = [];
|
let data = [];
|
||||||
var self = this;
|
let self = this;
|
||||||
if (!params.page) {
|
if (!params.page) {
|
||||||
params.page = 1;
|
params.page = 1;
|
||||||
}
|
}
|
||||||
var pageSize = 20;
|
let pageSize = 20;
|
||||||
|
|
||||||
var $options = this.$element.children();
|
let $options = this.$element.children();
|
||||||
$options.each(function () {
|
$options.each(function () {
|
||||||
var $option = $(this);
|
let $option = $(this);
|
||||||
|
|
||||||
if (!$option.is('option') && !$option.is('optgroup')) {
|
if (!$option.is('option') && !$option.is('optgroup')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var option = self.item($option);
|
let option = self.item($option);
|
||||||
|
|
||||||
var matches = self.matches(params, option);
|
let matches = self.matches(params, option);
|
||||||
|
|
||||||
if (matches !== null) {
|
if (matches !== null) {
|
||||||
data.push(matches);
|
data.push(matches);
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import Notify from '../helpers/Notifier';
|
|||||||
define(['sources/gettext'], function (gettext) {
|
define(['sources/gettext'], function (gettext) {
|
||||||
return {
|
return {
|
||||||
copyTextToClipboard: function (text) {
|
copyTextToClipboard: function (text) {
|
||||||
var textArea = document.createElement('textarea');
|
let textArea = document.createElement('textarea');
|
||||||
|
|
||||||
//
|
//
|
||||||
// *** This styling is an extra step which is likely not required. ***
|
// *** This styling is an extra step which is likely not required. ***
|
||||||
@@ -54,7 +54,7 @@ define(['sources/gettext'], function (gettext) {
|
|||||||
textArea.textContent = text;
|
textArea.textContent = text;
|
||||||
textArea.select();
|
textArea.select();
|
||||||
|
|
||||||
var copyTextToClipboardHandler = function(e) {
|
let copyTextToClipboardHandler = function(e) {
|
||||||
/* Remove oncopy event listener from document as we add listener for
|
/* Remove oncopy event listener from document as we add listener for
|
||||||
* oncopy event on each copy operation.
|
* oncopy event on each copy operation.
|
||||||
* Also we don't want this listener to be persistent; Otherwise it'll get
|
* Also we don't want this listener to be persistent; Otherwise it'll get
|
||||||
@@ -62,7 +62,7 @@ define(['sources/gettext'], function (gettext) {
|
|||||||
* this document.
|
* this document.
|
||||||
*/
|
*/
|
||||||
document.removeEventListener('copy', copyTextToClipboardHandler);
|
document.removeEventListener('copy', copyTextToClipboardHandler);
|
||||||
var clipboardData = e.clipboardData || window.clipboardData;
|
let clipboardData = e.clipboardData || window.clipboardData;
|
||||||
|
|
||||||
if (clipboardData) {
|
if (clipboardData) {
|
||||||
clipboardData.setData('text', text);
|
clipboardData.setData('text', text);
|
||||||
|
|||||||
@@ -16,10 +16,10 @@ define(['sources/selection/range_selection_helper', 'json-bignumber'],
|
|||||||
}
|
}
|
||||||
|
|
||||||
allRanges.sort(firstElementNumberComparator);
|
allRanges.sort(firstElementNumberComparator);
|
||||||
var unionedRanges = [allRanges[0]];
|
let unionedRanges = [allRanges[0]];
|
||||||
|
|
||||||
allRanges.forEach(function (range) {
|
allRanges.forEach(function (range) {
|
||||||
var maxBeginningOfRange = _.last(unionedRanges);
|
let maxBeginningOfRange = _.last(unionedRanges);
|
||||||
if (isStartInsideRange(range, maxBeginningOfRange)) {
|
if (isStartInsideRange(range, maxBeginningOfRange)) {
|
||||||
if (!isEndInsideRange(range, maxBeginningOfRange)) {
|
if (!isEndInsideRange(range, maxBeginningOfRange)) {
|
||||||
maxBeginningOfRange[1] = range[1];
|
maxBeginningOfRange[1] = range[1];
|
||||||
@@ -45,9 +45,9 @@ define(['sources/selection/range_selection_helper', 'json-bignumber'],
|
|||||||
},
|
},
|
||||||
|
|
||||||
mapDimensionBoundaryUnion: function (unionedDimensionBoundaries, iteratee) {
|
mapDimensionBoundaryUnion: function (unionedDimensionBoundaries, iteratee) {
|
||||||
var mapResult = [];
|
let mapResult = [];
|
||||||
unionedDimensionBoundaries.forEach(function (subrange) {
|
unionedDimensionBoundaries.forEach(function (subrange) {
|
||||||
for (var index = subrange[0]; index <= subrange[1]; index += 1) {
|
for (let index = subrange[0]; index <= subrange[1]; index += 1) {
|
||||||
mapResult.push(iteratee(index));
|
mapResult.push(iteratee(index));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -55,11 +55,11 @@ define(['sources/selection/range_selection_helper', 'json-bignumber'],
|
|||||||
},
|
},
|
||||||
|
|
||||||
mapOver2DArray: function (rowRangeBounds, colRangeBounds, processCell, rowCollector) {
|
mapOver2DArray: function (rowRangeBounds, colRangeBounds, processCell, rowCollector) {
|
||||||
var unionedRowRanges = this.getUnion(rowRangeBounds);
|
let unionedRowRanges = this.getUnion(rowRangeBounds);
|
||||||
var unionedColRanges = this.getUnion(colRangeBounds);
|
let unionedColRanges = this.getUnion(colRangeBounds);
|
||||||
|
|
||||||
return this.mapDimensionBoundaryUnion(unionedRowRanges, function (rowId) {
|
return this.mapDimensionBoundaryUnion(unionedRowRanges, function (rowId) {
|
||||||
var rowData = this.mapDimensionBoundaryUnion(unionedColRanges, function (colId) {
|
let rowData = this.mapDimensionBoundaryUnion(unionedColRanges, function (colId) {
|
||||||
return processCell(rowId, colId);
|
return processCell(rowId, colId);
|
||||||
});
|
});
|
||||||
return rowCollector(rowData);
|
return rowCollector(rowData);
|
||||||
@@ -67,7 +67,7 @@ define(['sources/selection/range_selection_helper', 'json-bignumber'],
|
|||||||
},
|
},
|
||||||
|
|
||||||
getHeaderData: function (columnDefinitions, CSVOptions) {
|
getHeaderData: function (columnDefinitions, CSVOptions) {
|
||||||
var headerData = [],
|
let headerData = [],
|
||||||
field_separator = CSVOptions.field_separator || '\t',
|
field_separator = CSVOptions.field_separator || '\t',
|
||||||
quote_char = CSVOptions.quote_char || '"';
|
quote_char = CSVOptions.quote_char || '"';
|
||||||
|
|
||||||
@@ -82,10 +82,10 @@ define(['sources/selection/range_selection_helper', 'json-bignumber'],
|
|||||||
|
|
||||||
rangesToCsv: function (data, columnDefinitions, selectedRanges, CSVOptions, copyWithHeader) {
|
rangesToCsv: function (data, columnDefinitions, selectedRanges, CSVOptions, copyWithHeader) {
|
||||||
|
|
||||||
var rowRangeBounds = selectedRanges.map(function (range) {
|
let rowRangeBounds = selectedRanges.map(function (range) {
|
||||||
return [range.fromRow, range.toRow];
|
return [range.fromRow, range.toRow];
|
||||||
});
|
});
|
||||||
var colRangeBounds = selectedRanges.map(function (range) {
|
let colRangeBounds = selectedRanges.map(function (range) {
|
||||||
return [range.fromCell, range.toCell];
|
return [range.fromCell, range.toCell];
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -93,13 +93,13 @@ define(['sources/selection/range_selection_helper', 'json-bignumber'],
|
|||||||
colRangeBounds = this.removeFirstColumn(colRangeBounds);
|
colRangeBounds = this.removeFirstColumn(colRangeBounds);
|
||||||
}
|
}
|
||||||
|
|
||||||
var csvRows = this.mapOver2DArray(rowRangeBounds, colRangeBounds, this.csvCell.bind(this, data, columnDefinitions, CSVOptions), function (rowData) {
|
let csvRows = this.mapOver2DArray(rowRangeBounds, colRangeBounds, this.csvCell.bind(this, data, columnDefinitions, CSVOptions), function (rowData) {
|
||||||
var field_separator = CSVOptions.field_separator || '\t';
|
let field_separator = CSVOptions.field_separator || '\t';
|
||||||
return rowData.join(field_separator);
|
return rowData.join(field_separator);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (copyWithHeader) {
|
if (copyWithHeader) {
|
||||||
var headerData = '';
|
let headerData = '';
|
||||||
headerData = this.getHeaderData(columnDefinitions, CSVOptions);
|
headerData = this.getHeaderData(columnDefinitions, CSVOptions);
|
||||||
|
|
||||||
return headerData + '\n' + csvRows.join('\n');
|
return headerData + '\n' + csvRows.join('\n');
|
||||||
@@ -109,13 +109,13 @@ define(['sources/selection/range_selection_helper', 'json-bignumber'],
|
|||||||
},
|
},
|
||||||
|
|
||||||
removeFirstColumn: function (colRangeBounds) {
|
removeFirstColumn: function (colRangeBounds) {
|
||||||
var unionedColRanges = this.getUnion(colRangeBounds);
|
let unionedColRanges = this.getUnion(colRangeBounds);
|
||||||
|
|
||||||
if(unionedColRanges.length == 0) {
|
if(unionedColRanges.length == 0) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
var firstSubrangeStartsAt0 = function () {
|
let firstSubrangeStartsAt0 = function () {
|
||||||
return unionedColRanges[0][0] == 0;
|
return unionedColRanges[0][0] == 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -134,7 +134,7 @@ define(['sources/selection/range_selection_helper', 'json-bignumber'],
|
|||||||
},
|
},
|
||||||
|
|
||||||
csvCell: function (data, columnDefinitions, CSVOptions, rowId, colId) {
|
csvCell: function (data, columnDefinitions, CSVOptions, rowId, colId) {
|
||||||
var val = data[rowId][columnDefinitions[colId].field],
|
let val = data[rowId][columnDefinitions[colId].field],
|
||||||
cell_type = columnDefinitions[colId].cell || '',
|
cell_type = columnDefinitions[colId].cell || '',
|
||||||
quoting = CSVOptions.quoting || 'strings',
|
quoting = CSVOptions.quoting || 'strings',
|
||||||
quote_char = CSVOptions.quote_char || '"';
|
quote_char = CSVOptions.quote_char || '"';
|
||||||
|
|||||||
@@ -24,11 +24,11 @@ define(
|
|||||||
|
|
||||||
function getRowPrimaryKeyValuesToStage(selectedRows, primaryKeys, dataView, client_primary_key) {
|
function getRowPrimaryKeyValuesToStage(selectedRows, primaryKeys, dataView, client_primary_key) {
|
||||||
return _.reduce(selectedRows, function (primaryKeyValuesToStage, dataGridRowIndex) {
|
return _.reduce(selectedRows, function (primaryKeyValuesToStage, dataGridRowIndex) {
|
||||||
var gridRow = dataView.getItem(dataGridRowIndex);
|
let gridRow = dataView.getItem(dataGridRowIndex);
|
||||||
if (isRowMissingPrimaryKeys(gridRow, primaryKeys)) {
|
if (isRowMissingPrimaryKeys(gridRow, primaryKeys)) {
|
||||||
return primaryKeyValuesToStage;
|
return primaryKeyValuesToStage;
|
||||||
}
|
}
|
||||||
var tempPK = gridRow[client_primary_key];
|
let tempPK = gridRow[client_primary_key];
|
||||||
primaryKeyValuesToStage[tempPK] = getSingleRowPrimaryKeyValueToStage(primaryKeys, gridRow);
|
primaryKeyValuesToStage[tempPK] = getSingleRowPrimaryKeyValueToStage(primaryKeys, gridRow);
|
||||||
return primaryKeyValuesToStage;
|
return primaryKeyValuesToStage;
|
||||||
}, {});
|
}, {});
|
||||||
@@ -47,7 +47,7 @@ define(
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getSingleRowPrimaryKeyValueToStage(primaryKeys, gridRow) {
|
function getSingleRowPrimaryKeyValueToStage(primaryKeys, gridRow) {
|
||||||
var rowToStage = {};
|
let rowToStage = {};
|
||||||
if (primaryKeys && primaryKeys.length) {
|
if (primaryKeys && primaryKeys.length) {
|
||||||
_.each(_.keys(gridRow), function (columnNames) {
|
_.each(_.keys(gridRow), function (columnNames) {
|
||||||
if (_.contains(primaryKeys, columnNames))
|
if (_.contains(primaryKeys, columnNames))
|
||||||
@@ -58,12 +58,12 @@ define(
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getPrimaryKeysForSelectedRows(self, selectedRows) {
|
function getPrimaryKeysForSelectedRows(self, selectedRows) {
|
||||||
var dataView = self.grid.getData();
|
let dataView = self.grid.getData();
|
||||||
return getRowPrimaryKeyValuesToStage(selectedRows, _.keys(self.keys), dataView, self.client_primary_key);
|
return getRowPrimaryKeyValuesToStage(selectedRows, _.keys(self.keys), dataView, self.client_primary_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
return function () {
|
return function () {
|
||||||
var self = this;
|
let self = this;
|
||||||
|
|
||||||
function setStagedRows(rowsToStage) {
|
function setStagedRows(rowsToStage) {
|
||||||
self.editor.handler.data_store.staged_rows = rowsToStage;
|
self.editor.handler.data_store.staged_rows = rowsToStage;
|
||||||
@@ -81,15 +81,15 @@ define(
|
|||||||
self.selection.getSelectedRanges());
|
self.selection.getSelectedRanges());
|
||||||
}
|
}
|
||||||
|
|
||||||
var selectedRanges = this.selection.getSelectedRanges();
|
let selectedRanges = this.selection.getSelectedRanges();
|
||||||
|
|
||||||
if (selectedRanges.length > 0) {
|
if (selectedRanges.length > 0) {
|
||||||
enableButton('#btn-copy-row');
|
enableButton('#btn-copy-row');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (areAllSelectionsEntireRows()) {
|
if (areAllSelectionsEntireRows()) {
|
||||||
var selectedRows = RangeSelectionHelper.getIndexesOfCompleteRows(this.grid, this.selection.getSelectedRanges());
|
let selectedRows = RangeSelectionHelper.getIndexesOfCompleteRows(this.grid, this.selection.getSelectedRanges());
|
||||||
var stagedRows = getPrimaryKeysForSelectedRows(self, selectedRows);
|
let stagedRows = getPrimaryKeysForSelectedRows(self, selectedRows);
|
||||||
setStagedRows(stagedRows);
|
setStagedRows(stagedRows);
|
||||||
if (_.isEmpty(stagedRows)) {
|
if (_.isEmpty(stagedRows)) {
|
||||||
this.selection.setSelectedRows([]);
|
this.selection.setSelectedRows([]);
|
||||||
|
|||||||
@@ -75,11 +75,11 @@ _.extend(pgBrowser.browserTreeState, {
|
|||||||
type: 'DELETE',
|
type: 'DELETE',
|
||||||
})
|
})
|
||||||
.fail(function(jqx) {
|
.fail(function(jqx) {
|
||||||
var msg = jqx.responseText;
|
let msg = jqx.responseText;
|
||||||
/* Error from the server */
|
/* Error from the server */
|
||||||
if (jqx.status == 417 || jqx.status == 410 || jqx.status == 500) {
|
if (jqx.status == 417 || jqx.status == 410 || jqx.status == 500) {
|
||||||
try {
|
try {
|
||||||
var data = JSON.parse(jqx.responseText);
|
let data = JSON.parse(jqx.responseText);
|
||||||
msg = data.errormsg;
|
msg = data.errormsg;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.warn(e.stack || e);
|
console.warn(e.stack || e);
|
||||||
@@ -93,7 +93,7 @@ _.extend(pgBrowser.browserTreeState, {
|
|||||||
},
|
},
|
||||||
save_state: function() {
|
save_state: function() {
|
||||||
|
|
||||||
var self = pgBrowser.browserTreeState;
|
let self = pgBrowser.browserTreeState;
|
||||||
if(self.last_state == JSON.stringify(self.current_state))
|
if(self.last_state == JSON.stringify(self.current_state))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -108,11 +108,11 @@ _.extend(pgBrowser.browserTreeState, {
|
|||||||
self.fetch_state();
|
self.fetch_state();
|
||||||
})
|
})
|
||||||
.fail(function(jqx) {
|
.fail(function(jqx) {
|
||||||
var msg = jqx.responseText;
|
let msg = jqx.responseText;
|
||||||
/* Error from the server */
|
/* Error from the server */
|
||||||
if (jqx.status == 417 || jqx.status == 410 || jqx.status == 500) {
|
if (jqx.status == 417 || jqx.status == 410 || jqx.status == 500) {
|
||||||
try {
|
try {
|
||||||
var data = JSON.parse(jqx.responseText);
|
let data = JSON.parse(jqx.responseText);
|
||||||
msg = data.errormsg;
|
msg = data.errormsg;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.warn(e.stack || e);
|
console.warn(e.stack || e);
|
||||||
@@ -125,7 +125,7 @@ _.extend(pgBrowser.browserTreeState, {
|
|||||||
},
|
},
|
||||||
fetch_state: function() {
|
fetch_state: function() {
|
||||||
|
|
||||||
var self = this;
|
let self = this;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: url_for('settings.get_tree_state'),
|
url: url_for('settings.get_tree_state'),
|
||||||
type: 'GET',
|
type: 'GET',
|
||||||
@@ -136,11 +136,11 @@ _.extend(pgBrowser.browserTreeState, {
|
|||||||
self.stored_state = res;
|
self.stored_state = res;
|
||||||
})
|
})
|
||||||
.fail(function(jqx) {
|
.fail(function(jqx) {
|
||||||
var msg = jqx.responseText;
|
let msg = jqx.responseText;
|
||||||
/* Error from the server */
|
/* Error from the server */
|
||||||
if (jqx.status == 417 || jqx.status == 410 || jqx.status == 500) {
|
if (jqx.status == 417 || jqx.status == 410 || jqx.status == 500) {
|
||||||
try {
|
try {
|
||||||
var data = JSON.parse(jqx.responseText);
|
let data = JSON.parse(jqx.responseText);
|
||||||
msg = data.errormsg;
|
msg = data.errormsg;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.warn(e.stack || e);
|
console.warn(e.stack || e);
|
||||||
|
|||||||
@@ -22,10 +22,10 @@ define(['pgadmin.browser.endpoints'], function(endpoints) {
|
|||||||
*/
|
*/
|
||||||
return function url_for(endpoint, substitutions) {
|
return function url_for(endpoint, substitutions) {
|
||||||
|
|
||||||
var rawURL = endpoints[endpoint];
|
let rawURL = endpoints[endpoint];
|
||||||
|
|
||||||
// captures things of the form <path:substitutionName>
|
// captures things of the form <path:substitutionName>
|
||||||
var substitutionGroupsRegExp = /([<])([^:^>]*:)?([^>]+)([>])/g,
|
let substitutionGroupsRegExp = /([<])([^:^>]*:)?([^>]+)([>])/g,
|
||||||
interpolated = rawURL;
|
interpolated = rawURL;
|
||||||
|
|
||||||
if (!rawURL)
|
if (!rawURL)
|
||||||
|
|||||||
@@ -15,10 +15,10 @@ import Notify from './helpers/Notifier';
|
|||||||
import { hasTrojanSource } from 'anti-trojan-source';
|
import { hasTrojanSource } from 'anti-trojan-source';
|
||||||
import convert from 'convert-units';
|
import convert from 'convert-units';
|
||||||
|
|
||||||
var wcDocker = window.wcDocker;
|
let wcDocker = window.wcDocker;
|
||||||
|
|
||||||
export function parseShortcutValue(obj) {
|
export function parseShortcutValue(obj) {
|
||||||
var shortcut = '';
|
let shortcut = '';
|
||||||
if (obj.alt) { shortcut += 'alt+'; }
|
if (obj.alt) { shortcut += 'alt+'; }
|
||||||
if (obj.shift) { shortcut += 'shift+'; }
|
if (obj.shift) { shortcut += 'shift+'; }
|
||||||
if (obj.control) { shortcut += 'ctrl+'; }
|
if (obj.control) { shortcut += 'ctrl+'; }
|
||||||
@@ -89,7 +89,7 @@ export function findAndSetFocus(container) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
var first_el = container
|
let first_el = container
|
||||||
.find('button.fa-plus:first');
|
.find('button.fa-plus:first');
|
||||||
|
|
||||||
/* Adding the tabindex condition makes sure that
|
/* Adding the tabindex condition makes sure that
|
||||||
@@ -263,7 +263,7 @@ export function getRandomInt(min, max) {
|
|||||||
const intArray = new Uint32Array(1);
|
const intArray = new Uint32Array(1);
|
||||||
crypto.getRandomValues(intArray);
|
crypto.getRandomValues(intArray);
|
||||||
|
|
||||||
var range = max - min + 1;
|
let range = max - min + 1;
|
||||||
return min + (intArray[0] % range);
|
return min + (intArray[0] % range);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -303,7 +303,7 @@ export function CSVToArray(strData, strDelimiter, quoteChar){
|
|||||||
quoteChar = quoteChar || '"';
|
quoteChar = quoteChar || '"';
|
||||||
|
|
||||||
// Create a regular expression to parse the CSV values.
|
// Create a regular expression to parse the CSV values.
|
||||||
var objPattern = new RegExp(
|
let objPattern = new RegExp(
|
||||||
(
|
(
|
||||||
// Delimiters.
|
// Delimiters.
|
||||||
'(\\' + strDelimiter + '|\\r?\\n|\\r|^)' +
|
'(\\' + strDelimiter + '|\\r?\\n|\\r|^)' +
|
||||||
@@ -317,7 +317,7 @@ export function CSVToArray(strData, strDelimiter, quoteChar){
|
|||||||
|
|
||||||
// Create an array to hold our data. Give the array
|
// Create an array to hold our data. Give the array
|
||||||
// a default empty first row.
|
// a default empty first row.
|
||||||
var arrData = [[]];
|
let arrData = [[]];
|
||||||
|
|
||||||
// The regex doesn't handle and skips start value if
|
// The regex doesn't handle and skips start value if
|
||||||
// string starts with delimiter
|
// string starts with delimiter
|
||||||
@@ -327,13 +327,13 @@ export function CSVToArray(strData, strDelimiter, quoteChar){
|
|||||||
|
|
||||||
// Create an array to hold our individual pattern
|
// Create an array to hold our individual pattern
|
||||||
// matching groups.
|
// matching groups.
|
||||||
var arrMatches = null;
|
let arrMatches = null;
|
||||||
|
|
||||||
// Keep looping over the regular expression matches
|
// Keep looping over the regular expression matches
|
||||||
// until we can no longer find a match.
|
// until we can no longer find a match.
|
||||||
while ((arrMatches = objPattern.exec( strData ))){
|
while ((arrMatches = objPattern.exec( strData ))){
|
||||||
// Get the delimiter that was found.
|
// Get the delimiter that was found.
|
||||||
var strMatchedDelimiter = arrMatches[ 1 ];
|
let strMatchedDelimiter = arrMatches[ 1 ];
|
||||||
|
|
||||||
// Check to see if the given delimiter has a length
|
// Check to see if the given delimiter has a length
|
||||||
// (is not the start of string) and if it matches
|
// (is not the start of string) and if it matches
|
||||||
@@ -345,7 +345,7 @@ export function CSVToArray(strData, strDelimiter, quoteChar){
|
|||||||
arrData.push( [] );
|
arrData.push( [] );
|
||||||
}
|
}
|
||||||
|
|
||||||
var strMatchedValue;
|
let strMatchedValue;
|
||||||
|
|
||||||
// Now that we have our delimiter out of the way,
|
// Now that we have our delimiter out of the way,
|
||||||
// let's check to see which kind of value we
|
// let's check to see which kind of value we
|
||||||
@@ -429,11 +429,11 @@ export function registerDetachEvent(panel){
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
panel.on(wcDocker.EVENT.ORDER_CHANGED, function() {
|
panel.on(wcDocker.EVENT.ORDER_CHANGED, function() {
|
||||||
var docker = this.docker(this._panel);
|
let docker = this.docker(this._panel);
|
||||||
var dockerPos = docker.$container.offset();
|
let dockerPos = docker.$container.offset();
|
||||||
var pos = this.$container.offset();
|
let pos = this.$container.offset();
|
||||||
var width = this.$container.width();
|
let width = this.$container.width();
|
||||||
var height = this.$container.height();
|
let height = this.$container.height();
|
||||||
|
|
||||||
$((this.$container)[0].ownerDocument).find('.wcIFrameFloating').css('top', pos.top - dockerPos.top);
|
$((this.$container)[0].ownerDocument).find('.wcIFrameFloating').css('top', pos.top - dockerPos.top);
|
||||||
$((this.$container)[0].ownerDocument).find('.wcIFrameFloating').css('left', pos.left - dockerPos.left);
|
$((this.$container)[0].ownerDocument).find('.wcIFrameFloating').css('left', pos.left - dockerPos.left);
|
||||||
@@ -446,7 +446,7 @@ export function registerDetachEvent(panel){
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getBrowser() {
|
export function getBrowser() {
|
||||||
var ua=navigator.userAgent,tem,M=ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
|
let ua=navigator.userAgent,tem,M=ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
|
||||||
if(/trident/i.test(M[1])) {
|
if(/trident/i.test(M[1])) {
|
||||||
tem=/\brv[ :]+(\d+)/g.exec(ua) || [];
|
tem=/\brv[ :]+(\d+)/g.exec(ua) || [];
|
||||||
return {name:'IE', version:(tem[1]||'')};
|
return {name:'IE', version:(tem[1]||'')};
|
||||||
@@ -536,13 +536,13 @@ export function calcFontSize(fontSize) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function pgHandleItemError(xhr, args) {
|
export function pgHandleItemError(xhr, args) {
|
||||||
var pgBrowser = window.pgAdmin.Browser;
|
let pgBrowser = window.pgAdmin.Browser;
|
||||||
|
|
||||||
if (!xhr || !pgBrowser) {
|
if (!xhr || !pgBrowser) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var contentType = xhr.getResponseHeader('Content-Type'),
|
let contentType = xhr.getResponseHeader('Content-Type'),
|
||||||
jsonResp = contentType &&
|
jsonResp = contentType &&
|
||||||
contentType.indexOf('application/json') == 0 &&
|
contentType.indexOf('application/json') == 0 &&
|
||||||
JSON.parse(xhr.responseText);
|
JSON.parse(xhr.responseText);
|
||||||
@@ -568,14 +568,14 @@ export function pgHandleItemError(xhr, args) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check the status of the maintenance server connection.
|
// Check the status of the maintenance server connection.
|
||||||
var server = pgBrowser.Nodes['server'],
|
let server = pgBrowser.Nodes['server'],
|
||||||
ctx = {
|
ctx = {
|
||||||
resp: jsonResp,
|
resp: jsonResp,
|
||||||
xhr: xhr,
|
xhr: xhr,
|
||||||
args: args,
|
args: args,
|
||||||
},
|
},
|
||||||
reconnectServer = function() {
|
reconnectServer = function() {
|
||||||
var ctx_local = this,
|
let ctx_local = this,
|
||||||
onServerConnect = function(_sid, _i, _d) {
|
onServerConnect = function(_sid, _i, _d) {
|
||||||
// Yay - server is reconnected.
|
// Yay - server is reconnected.
|
||||||
if (this.args.info.server._id == _sid) {
|
if (this.args.info.server._id == _sid) {
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ export function minMaxValidator(label, value, minValue, maxValue) {
|
|||||||
export function numberValidator(label, value) {
|
export function numberValidator(label, value) {
|
||||||
if((_.isUndefined(value) || _.isNull(value) || String(value) === ''))
|
if((_.isUndefined(value) || _.isNull(value) || String(value) === ''))
|
||||||
return null;
|
return null;
|
||||||
var pattern = new RegExp('^-?[0-9]+(\.?[0-9]*)?$');
|
let pattern = new RegExp('^-?[0-9]+(\.?[0-9]*)?$');
|
||||||
if (!pattern.test(value)) {
|
if (!pattern.test(value)) {
|
||||||
return sprintf(pgAdmin.Browser.messages.MUST_BE_NUM, label);
|
return sprintf(pgAdmin.Browser.messages.MUST_BE_NUM, label);
|
||||||
}
|
}
|
||||||
@@ -38,7 +38,7 @@ export function numberValidator(label, value) {
|
|||||||
export function integerValidator(label, value) {
|
export function integerValidator(label, value) {
|
||||||
if((_.isUndefined(value) || _.isNull(value) || String(value) === ''))
|
if((_.isUndefined(value) || _.isNull(value) || String(value) === ''))
|
||||||
return null;
|
return null;
|
||||||
var pattern = new RegExp('^-?[0-9]*$');
|
let pattern = new RegExp('^-?[0-9]*$');
|
||||||
if (!pattern.test(value)) {
|
if (!pattern.test(value)) {
|
||||||
return sprintf(pgAdmin.Browser.messages.MUST_BE_INT, label);
|
return sprintf(pgAdmin.Browser.messages.MUST_BE_INT, label);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ define([
|
|||||||
this.initialized = true;
|
this.initialized = true;
|
||||||
|
|
||||||
// Define the nodes on which the menus to be appear
|
// Define the nodes on which the menus to be appear
|
||||||
var menus = [{
|
let menus = [{
|
||||||
name: 'backup_global',
|
name: 'backup_global',
|
||||||
module: this,
|
module: this,
|
||||||
applies: ['tools'],
|
applies: ['tools'],
|
||||||
@@ -142,36 +142,36 @@ define([
|
|||||||
},
|
},
|
||||||
startBackupGlobal: function(action, treeItem) {
|
startBackupGlobal: function(action, treeItem) {
|
||||||
pgBrowser.Node.registerUtilityPanel();
|
pgBrowser.Node.registerUtilityPanel();
|
||||||
var panel = pgBrowser.Node.addUtilityPanel(pgBrowser.stdW.md);
|
let panel = pgBrowser.Node.addUtilityPanel(pgBrowser.stdW.md);
|
||||||
var tree = pgBrowser.tree,
|
let tree = pgBrowser.tree,
|
||||||
i = treeItem || tree.selected(),
|
i = treeItem || tree.selected(),
|
||||||
data = i ? tree.itemData(i) : undefined,
|
data = i ? tree.itemData(i) : undefined,
|
||||||
j = panel.$container.find('.obj_properties').first();
|
j = panel.$container.find('.obj_properties').first();
|
||||||
|
|
||||||
var schema = this.getGlobalUISchema(treeItem);
|
let schema = this.getGlobalUISchema(treeItem);
|
||||||
panel.title('Backup Globals');
|
panel.title('Backup Globals');
|
||||||
panel.focus();
|
panel.focus();
|
||||||
var typeOfDialog = 'globals';
|
let typeOfDialog = 'globals';
|
||||||
var serverIdentifier = this.retrieveServerIdentifier();
|
let serverIdentifier = this.retrieveServerIdentifier();
|
||||||
|
|
||||||
var extraData = this.setExtraParameters(typeOfDialog);
|
let extraData = this.setExtraParameters(typeOfDialog);
|
||||||
this.showBackupDialog(schema, treeItem, j, data, panel, typeOfDialog, serverIdentifier, extraData);
|
this.showBackupDialog(schema, treeItem, j, data, panel, typeOfDialog, serverIdentifier, extraData);
|
||||||
},
|
},
|
||||||
startBackupServer: function(action, treeItem) {
|
startBackupServer: function(action, treeItem) {
|
||||||
pgBrowser.Node.registerUtilityPanel();
|
pgBrowser.Node.registerUtilityPanel();
|
||||||
var panel = pgBrowser.Node.addUtilityPanel(pgBrowser.stdW.md);
|
let panel = pgBrowser.Node.addUtilityPanel(pgBrowser.stdW.md);
|
||||||
var tree = pgBrowser.tree,
|
let tree = pgBrowser.tree,
|
||||||
i = treeItem || tree.selected(),
|
i = treeItem || tree.selected(),
|
||||||
data = i ? tree.itemData(i) : undefined,
|
data = i ? tree.itemData(i) : undefined,
|
||||||
j = panel.$container.find('.obj_properties').first();
|
j = panel.$container.find('.obj_properties').first();
|
||||||
|
|
||||||
var schema = this.getUISchema(treeItem, 'server');
|
let schema = this.getUISchema(treeItem, 'server');
|
||||||
panel.title(gettext('Backup Server'));
|
panel.title(gettext('Backup Server'));
|
||||||
panel.focus();
|
panel.focus();
|
||||||
var typeOfDialog = 'server';
|
let typeOfDialog = 'server';
|
||||||
var serverIdentifier = this.retrieveServerIdentifier();
|
let serverIdentifier = this.retrieveServerIdentifier();
|
||||||
|
|
||||||
var extraData = this.setExtraParameters(typeOfDialog);
|
let extraData = this.setExtraParameters(typeOfDialog);
|
||||||
this.showBackupDialog(schema, treeItem, j, data, panel, typeOfDialog, serverIdentifier, extraData);
|
this.showBackupDialog(schema, treeItem, j, data, panel, typeOfDialog, serverIdentifier, extraData);
|
||||||
},
|
},
|
||||||
saveCallBack: function(data) {
|
saveCallBack: function(data) {
|
||||||
@@ -202,8 +202,8 @@ define([
|
|||||||
const baseUrl = url_for(urlShortcut, {
|
const baseUrl = url_for(urlShortcut, {
|
||||||
'sid': serverIdentifier,
|
'sid': serverIdentifier,
|
||||||
});
|
});
|
||||||
var sqlHelpUrl = 'backup.html';
|
let sqlHelpUrl = 'backup.html';
|
||||||
var helpUrl = url_for('help.static', {
|
let helpUrl = url_for('help.static', {
|
||||||
'filename': this.getHelpFile(typeOfDialog),
|
'filename': this.getHelpFile(typeOfDialog),
|
||||||
});
|
});
|
||||||
getUtilityView(
|
getUtilityView(
|
||||||
@@ -212,8 +212,8 @@ define([
|
|||||||
},
|
},
|
||||||
// Callback to draw Backup Dialog for objects
|
// Callback to draw Backup Dialog for objects
|
||||||
backupObjects: function(action, treeItem) {
|
backupObjects: function(action, treeItem) {
|
||||||
var that = this;
|
let that = this;
|
||||||
var tree = pgBrowser.tree,
|
let tree = pgBrowser.tree,
|
||||||
i = treeItem || tree.selected(),
|
i = treeItem || tree.selected(),
|
||||||
data = i ? tree.itemData(i) : undefined;
|
data = i ? tree.itemData(i) : undefined;
|
||||||
|
|
||||||
@@ -235,14 +235,14 @@ define([
|
|||||||
}
|
}
|
||||||
|
|
||||||
pgBrowser.Node.registerUtilityPanel();
|
pgBrowser.Node.registerUtilityPanel();
|
||||||
var panel = pgBrowser.Node.addUtilityPanel(pgBrowser.stdW.md, pgBrowser.stdH.lg),
|
let panel = pgBrowser.Node.addUtilityPanel(pgBrowser.stdW.md, pgBrowser.stdH.lg),
|
||||||
j = panel.$container.find('.obj_properties').first();
|
j = panel.$container.find('.obj_properties').first();
|
||||||
|
|
||||||
var schema = that.getUISchema(treeItem, 'backup_objects');
|
let schema = that.getUISchema(treeItem, 'backup_objects');
|
||||||
panel.title(gettext(`Backup (${pgBrowser.Nodes[data._type].label}: ${data.label})`));
|
panel.title(gettext(`Backup (${pgBrowser.Nodes[data._type].label}: ${data.label})`));
|
||||||
panel.focus();
|
panel.focus();
|
||||||
|
|
||||||
var typeOfDialog = 'backup_objects',
|
let typeOfDialog = 'backup_objects',
|
||||||
serverIdentifier = that.retrieveServerIdentifier(),
|
serverIdentifier = that.retrieveServerIdentifier(),
|
||||||
extraData = that.setExtraParameters(typeOfDialog);
|
extraData = that.setExtraParameters(typeOfDialog);
|
||||||
|
|
||||||
@@ -286,14 +286,14 @@ define([
|
|||||||
retrieveServerIdentifier() {
|
retrieveServerIdentifier() {
|
||||||
const selectedNode = pgBrowser.tree.selected();
|
const selectedNode = pgBrowser.tree.selected();
|
||||||
|
|
||||||
var node = pgBrowser.tree.findNodeByDomElement(selectedNode);
|
let node = pgBrowser.tree.findNodeByDomElement(selectedNode);
|
||||||
const treeInfo = pgBrowser.tree.getTreeNodeHierarchy(node);
|
const treeInfo = pgBrowser.tree.getTreeNodeHierarchy(node);
|
||||||
return treeInfo.server._id;
|
return treeInfo.server._id;
|
||||||
},
|
},
|
||||||
setExtraParameters(typeOfDialog) {
|
setExtraParameters(typeOfDialog) {
|
||||||
var extraData = {};
|
let extraData = {};
|
||||||
const selectedNode = pgBrowser.tree.selected();
|
const selectedNode = pgBrowser.tree.selected();
|
||||||
var selectedTreeNode = pgBrowser.tree.findNodeByDomElement(selectedNode);
|
let selectedTreeNode = pgBrowser.tree.findNodeByDomElement(selectedNode);
|
||||||
const treeInfo = pgBrowser.tree.getTreeNodeHierarchy(selectedTreeNode);
|
const treeInfo = pgBrowser.tree.getTreeNodeHierarchy(selectedTreeNode);
|
||||||
if (typeOfDialog === 'backup_objects') {
|
if (typeOfDialog === 'backup_objects') {
|
||||||
|
|
||||||
|
|||||||
@@ -181,7 +181,7 @@ export class SaveOptSchema extends BaseUISchema {
|
|||||||
disabled: false,
|
disabled: false,
|
||||||
group: gettext('Do not save'),
|
group: gettext('Do not save'),
|
||||||
visible: function() {
|
visible: function() {
|
||||||
var serverInfo = _.isUndefined(obj.fieldOptions.nodeInfo) ? undefined : obj.fieldOptions.nodeInfo.server;
|
let serverInfo = _.isUndefined(obj.fieldOptions.nodeInfo) ? undefined : obj.fieldOptions.nodeInfo.server;
|
||||||
|
|
||||||
return _.isUndefined(serverInfo) ? false : serverInfo.version >= 110000;
|
return _.isUndefined(serverInfo) ? false : serverInfo.version >= 110000;
|
||||||
},
|
},
|
||||||
@@ -267,7 +267,7 @@ export class QueryOptionSchema extends BaseUISchema {
|
|||||||
if (!_.isUndefined(obj.backupType) && obj.backupType === 'server')
|
if (!_.isUndefined(obj.backupType) && obj.backupType === 'server')
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var serverInfo = _.isUndefined(obj.fieldOptions.nodeInfo) ? undefined : obj.fieldOptions.nodeInfo.server;
|
let serverInfo = _.isUndefined(obj.fieldOptions.nodeInfo) ? undefined : obj.fieldOptions.nodeInfo.server;
|
||||||
|
|
||||||
return _.isUndefined(serverInfo) ? false : serverInfo.version >= 110000;
|
return _.isUndefined(serverInfo) ? false : serverInfo.version >= 110000;
|
||||||
},
|
},
|
||||||
@@ -349,7 +349,7 @@ export class MiscellaneousSchema extends BaseUISchema {
|
|||||||
deps: ['use_column_inserts', 'use_insert_commands'],
|
deps: ['use_column_inserts', 'use_insert_commands'],
|
||||||
group: gettext('Miscellaneous'),
|
group: gettext('Miscellaneous'),
|
||||||
disabled: function(state) {
|
disabled: function(state) {
|
||||||
var serverInfo = _.isUndefined(obj.fieldOptions.nodeInfo) ? undefined : obj.fieldOptions.nodeInfo.server;
|
let serverInfo = _.isUndefined(obj.fieldOptions.nodeInfo) ? undefined : obj.fieldOptions.nodeInfo.server;
|
||||||
|
|
||||||
if (!_.isUndefined(serverInfo) && serverInfo.version >= 120000)
|
if (!_.isUndefined(serverInfo) && serverInfo.version >= 120000)
|
||||||
return true;
|
return true;
|
||||||
@@ -418,7 +418,7 @@ export default class BackupSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get baseFields() {
|
get baseFields() {
|
||||||
var obj = this;
|
let obj = this;
|
||||||
return [{
|
return [{
|
||||||
id: 'file',
|
id: 'file',
|
||||||
label: gettext('Filename'),
|
label: gettext('Filename'),
|
||||||
@@ -480,7 +480,7 @@ export default class BackupSchema extends BaseUISchema {
|
|||||||
options: obj.fieldOptions.encoding,
|
options: obj.fieldOptions.encoding,
|
||||||
visible: function() {
|
visible: function() {
|
||||||
if (!_.isUndefined(obj.backupType) && obj.backupType === 'server') {
|
if (!_.isUndefined(obj.backupType) && obj.backupType === 'server') {
|
||||||
var dbNode = obj.pgBrowser.serverInfo[obj.treeNodeInfo.server._id];
|
let dbNode = obj.pgBrowser.serverInfo[obj.treeNodeInfo.server._id];
|
||||||
return _.isUndefined(dbNode) ? false : dbNode.version >= 110000;
|
return _.isUndefined(dbNode) ? false : dbNode.version >= 110000;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ export default class BackupGlobalSchema extends BaseUISchema {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get baseFields() {
|
get baseFields() {
|
||||||
var obj = this;
|
let obj = this;
|
||||||
return [{
|
return [{
|
||||||
id: 'file',
|
id: 'file',
|
||||||
label: gettext('Filename'),
|
label: gettext('Filename'),
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user