Files
pgadmin4/web/pgadmin/browser/templates/browser/js/utils.js

91 lines
3.4 KiB
JavaScript

define('pgadmin.browser.utils',
['sources/pgadmin'], function(pgAdmin) {
var pgBrowser = pgAdmin.Browser = pgAdmin.Browser || {};
/* Add hooked-in panels by extensions */
pgBrowser['panels_items'] = '{{ current_app.panels|tojson }}';
// Define list of nodes on which Query tool option doesn't appears
var unsupported_nodes = pgAdmin.unsupported_nodes = [
'server_group', 'server', 'coll-tablespace', 'tablespace',
'coll-role', 'role', 'coll-resource_group', 'resource_group',
'coll-database'
];
pgBrowser.utils = {
layout: '{{ layout }}',
pg_help_path: '{{ pg_help_path }}',
edbas_help_path: '{{ edbas_help_path }}',
tabSize: '{{ editor_tab_size }}',
wrapCode: '{{ editor_wrap_code }}' == 'True',
useSpaces: '{{ editor_use_spaces }}',
insertPairBrackets: '{{ editor_insert_pair_brackets }}' == 'True',
braceMatching: '{{ editor_brace_matching }}' == 'True',
is_indent_with_tabs: '{{ editor_indent_with_tabs }}' == 'True',
app_name: '{{ app_name }}',
pg_libpq_version: {{pg_libpq_version|e}},
counter: {total: 0, loaded: 0},
registerScripts: function (ctx) {
// There are some scripts which needed to be loaded immediately,
// but - not all. We will will need to generate all the menus only
// after they all were loaded completely.
},
addMenus: function (obj) {
// Generate the menu items only when all the initial scripts
// were loaded completely.
//
// First - register the menus from the other
// modules/extensions.
var self = this;
if (this.counter.total == this.counter.loaded) {
{% for key in ('File', 'Edit', 'Object' 'Tools', 'Management', 'Help') %}
obj.add_menus([{% for item in current_app.menu_items['%s_items' % key.lower()] %}{% if loop.index != 1 %}, {% endif %}{
name: "{{ item.name }}",
{% if item.module %}module: {{ item.module }},
{% endif %}{% if item.url %}url: "{{ item.url }}",
{% endif %}{% if item.target %}target: "{{ item.target }}",
{% endif %}{% if item.callback %}callback: "{{ item.callback }}",
{% endif %}{% if item.category %}category: "{{ item.category }}",
{% endif %}{% if item.icon %}icon: '{{ item.icon }}',
{% endif %}{% if item.data %}data: {{ item.data }},
{% endif %}label: '{{ item.label }}', applies: ['{{ key.lower() }}'],
priority: {{ item.priority }},
enable: '{{ item.enable }}'
}{% set hasMenus = True %}{% endfor %}]);
{% endfor %}
obj.create_menus();
} else {
//recall after some time
setTimeout(function(){ self.addMenus(obj); }, 3000);
}
},
// load the module right now
load_module: function(name, path, c) {
var obj = this;
require([name],function(m) {
try {
// initialize the module (if 'init' function present).
if (m.init && typeof(m.init) == 'function')
m.init();
} catch (e) {
// Log this exception on console to understand the issue properly.
console.log(e);
obj.report_error(gettext('Error loading script - ') + path);
}
if (c)
c.loaded += 1;
}, function() {
// Log the arguments on console to understand the issue properly.
console.log(arguments);
obj.report_error(gettext('Error loading script - ') + path);
});
}
};
return pgBrowser;
});