diff --git a/web/pgadmin/browser/__init__.py b/web/pgadmin/browser/__init__.py index 521526651..c6c5545a8 100644 --- a/web/pgadmin/browser/__init__.py +++ b/web/pgadmin/browser/__init__.py @@ -259,6 +259,14 @@ class BrowserPluginModule(PgAdminModule): """ return [] + @property + def module_use_template_javascript(self): + """ + Returns whether Jinja2 template is used for generating the javascript + module. + """ + return False + def get_own_javascripts(self): """ Returns the list of javascripts information used by the module. @@ -280,14 +288,26 @@ class BrowserPluginModule(PgAdminModule): """ scripts = [] - scripts.extend([{ - 'name': 'pgadmin.node.%s' % self.node_type, - 'path': url_for('browser.index') + '%s/module' % self.node_type, - 'when': self.script_load - }]) + if self.module_use_template_javascript: + scripts.extend([{ + 'name': 'pgadmin.node.%s' % self.node_type, + 'path': url_for('browser.index') + '%s/module' % self.node_type, + 'when': self.script_load, + 'is_template': True + }]) + else: + scripts.extend([{ + 'name': 'pgadmin.node.%s' % self.node_type, + 'path': url_for( + '%s.static'% self.name, filename=('js/%s' % self.node_type) + ), + 'when': self.script_load, + 'is_template': False + }]) for module in self.submodules: scripts.extend(module.get_own_javascripts()) + return scripts def generate_browser_node( diff --git a/web/pgadmin/browser/collection.py b/web/pgadmin/browser/collection.py index e03971ed1..0554f4880 100644 --- a/web/pgadmin/browser/collection.py +++ b/web/pgadmin/browser/collection.py @@ -45,14 +45,34 @@ class CollectionNodeModule(PgAdminModule, PGChildModule): """ return [] + @property + def module_use_template_javascript(self): + """ + Returns whether Jinja2 template is used for generating the javascript + module. + """ + return True + + def get_own_javascripts(self): scripts = [] - scripts.extend([{ - 'name': 'pgadmin.node.%s' % self.node_type, - 'path': url_for('browser.index') + '%s/module' % self.node_type, - 'when': self.script_load - }]) + if self.module_use_template_javascript: + scripts.extend([{ + 'name': 'pgadmin.node.%s' % self.node_type, + 'path': url_for('browser.index') + '%s/module' % self.node_type, + 'when': self.script_load, + 'is_template': True + }]) + else: + scripts.extend([{ + 'name': 'pgadmin.node.%s' % self.node_type, + 'path': url_for( + '%s.static'% self.name, filename=('js/%s' % self.node_type) + ), + 'when': self.script_load, + 'is_template': False + }]) for module in self.submodules: scripts.extend(module.get_own_javascripts()) diff --git a/web/pgadmin/browser/server_groups/__init__.py b/web/pgadmin/browser/server_groups/__init__.py index e766b39bf..ab0a3ee2a 100644 --- a/web/pgadmin/browser/server_groups/__init__.py +++ b/web/pgadmin/browser/server_groups/__init__.py @@ -87,7 +87,7 @@ class ServerGroupPluginModule(BrowserPluginModule): pass -blueprint = ServerGroupModule(__name__, static_url_path='') +blueprint = ServerGroupModule(__name__) class ServerGroupView(NodeView): @@ -276,16 +276,6 @@ class ServerGroupView(NodeView): def dependents(self, gid): return make_json_response(status=422) - def module_js(self, **kwargs): - """ - This property defines (if javascript) exists for this node. - Override this property for your own logic. - """ - return make_response( - render_template("server_groups/server_groups.js"), - 200, {'Content-Type': 'application/x-javascript'} - ) - def nodes(self, gid=None): """Return a JSON document listing the server groups for the user""" nodes = [] diff --git a/web/pgadmin/browser/server_groups/servers/__init__.py b/web/pgadmin/browser/server_groups/servers/__init__.py index 3b37a1c0f..d88363a66 100644 --- a/web/pgadmin/browser/server_groups/servers/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/__init__.py @@ -128,24 +128,23 @@ class ServerModule(sg.ServerGroupPluginModule): scripts = [] scripts.extend([{ - 'name': 'pgadmin.node.server', - 'path': url_for('browser.index') + '%s/module' % self.node_type, - 'when': self.script_load - }, - { - 'name': 'pgadmin.browser.server.privilege', - 'path': url_for('browser.index') + 'server/static/js/privilege', - 'when': self.node_type, - 'deps': ['pgadmin.browser.node.ui'] - }, - { - 'name': 'pgadmin.browser.server.variable', - 'path': url_for('browser.index') + 'server/static/js/variable', - 'when': self.node_type - }]) - - for module in self.submodules: - scripts.extend(module.get_own_javascripts()) + 'name': 'pgadmin.browser.server.privilege', + 'path': url_for('%s.static'% self.name, filename='js/privilege'), + 'when': self.node_type, + 'is_template': False, + 'deps': ['pgadmin.browser.node.ui'] + }, { + 'name': 'pgadmin.browser.server.variable', + 'path': url_for('%s.static'% self.name, filename='js/variable'), + 'when': self.node_type, + 'is_template': False + },{ + 'name': 'pgadmin.server.supported_servers', + 'path': url_for('browser.index') + 'server/supported_servers', + 'is_template': True, + 'when': self.node_type + }]) + scripts.extend(sg.ServerGroupPluginModule.get_own_javascripts(self)) return scripts @@ -199,7 +198,7 @@ class ServerNode(PGChildNodeView): 'dependency': [{'get': 'dependencies'}], 'dependent': [{'get': 'dependents'}], 'children': [{'get': 'children'}], - 'module.js': [{}, {}, {'get': 'module_js'}], + 'supported_servers.js': [{}, {}, {'get': 'supported_servers'}], 'reload': [{'get': 'reload_configuration'}], 'restore_point': @@ -561,7 +560,6 @@ class ServerNode(PGChildNodeView): db.session.commit() connected = False - icon = "icon-server-not-connected" user = None manager = None @@ -663,21 +661,16 @@ class ServerNode(PGChildNodeView): def dependents(self, gid, sid): return make_json_response(data='') - def module_js(self, **kwargs): + def supported_servers(self, **kwargs): """ This property defines (if javascript) exists for this node. Override this property for your own logic. """ - username = 'postgres' - if config.SERVER_MODE is True: - username = current_user.email.split('@')[0] return make_response( render_template( - "servers/servers.js", - server_types=ServerType.types(), - _=gettext, - username=username, + "servers/supported_servers.js", + server_types=ServerType.types() ), 200, {'Content-Type': 'application/x-javascript'} ) diff --git a/web/pgadmin/browser/server_groups/servers/databases/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/__init__.py index b92c6c362..e40c78753 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/__init__.py @@ -14,7 +14,7 @@ import re from functools import wraps import pgadmin.browser.server_groups.servers as servers -from flask import render_template, make_response, current_app, request, jsonify +from flask import render_template, current_app, request, jsonify from flask_babel import gettext as _ from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.server_groups.servers.databases.utils import \ @@ -78,6 +78,13 @@ class DatabaseModule(CollectionNodeModule): return snippets + @property + def module_use_template_javascript(self): + """ + Returns whether Jinja2 template is used for generating the javascript + module. + """ + return False blueprint = DatabaseModule(__name__) @@ -106,7 +113,6 @@ class DatabaseView(PGChildNodeView): 'dependency': [{'get': 'dependencies'}], 'dependent': [{'get': 'dependents'}], 'children': [{'get': 'children'}], - 'module.js': [{}, {}, {'get': 'module_js'}], 'connect': [{ 'get': 'connect_status', 'post': 'connect', 'delete': 'disconnect' }], @@ -345,19 +351,6 @@ class DatabaseView(PGChildNodeView): res['rows'][0].setdefault(row['deftype'], []).append(priv) return res - def module_js(self): - """ - This property defines (if javascript) exists for this node. - Override this property for your own logic. - """ - return make_response( - render_template( - "databases/js/databases.js", - _=_ - ), - 200, {'Content-Type': 'application/x-javascript'} - ) - def connect(self, gid, sid, did): """Connect the Database.""" from pgadmin.utils.driver import get_driver diff --git a/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py index 71dc0ab29..c4c841a48 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/casts/__init__.py @@ -13,7 +13,7 @@ import simplejson as json from functools import wraps import pgadmin.browser.server_groups.servers.databases as databases -from flask import render_template, make_response, request, jsonify +from flask import render_template, request, jsonify from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.utils import PGChildNodeView @@ -78,6 +78,14 @@ class CastModule(CollectionNodeModule): """ return databases.DatabaseModule.NODE_TYPE + @property + def module_use_template_javascript(self): + """ + Returns whether Jinja2 template is used for generating the javascript + module. + """ + return False + blueprint = CastModule(__name__) @@ -95,10 +103,6 @@ class CastView(PGChildNodeView): * __init__(**kwargs) - Method is used to initialize the CastView and it's base view. - * module_js() - - This property defines (if javascript) exists for this node. - Override this property for your own logic - * check_precondition() - This function will behave as a decorator which will checks database connection before running view, it will also attaches @@ -166,7 +170,6 @@ class CastView(PGChildNodeView): 'stats': [{'get': 'statistics'}], 'dependency': [{'get': 'dependencies'}], 'dependent': [{'get': 'dependents'}], - 'module.js': [{}, {}, {'get': 'module_js'}], 'get_type': [{'get': 'get_src_and_trg_type'}, {'get': 'get_src_and_trg_type'}], 'get_functions': [{'post': 'get_functions'}, {'post': 'get_functions'}] }) @@ -177,18 +180,6 @@ class CastView(PGChildNodeView): self.manager = None super(CastView, self).__init__(**kwargs) - def module_js(self): - """ - This property defines whether javascript exists for this node. - """ - return make_response( - render_template( - "cast/js/casts.js", - _=gettext - ), - 200, {'Content-Type': 'application/x-javascript'} - ) - def check_precondition(f): """ This function will behave as a decorator which will check the diff --git a/web/pgadmin/browser/server_groups/servers/databases/casts/templates/cast/js/casts.js b/web/pgadmin/browser/server_groups/servers/databases/casts/static/js/cast.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/casts/templates/cast/js/casts.js rename to web/pgadmin/browser/server_groups/servers/databases/casts/static/js/cast.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py index e574d7ae8..603b7f9ed 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/event_triggers/__init__.py @@ -12,7 +12,7 @@ import re from functools import wraps import pgadmin.browser.server_groups.servers.databases as database -from flask import render_template, make_response, request, jsonify +from flask import render_template, request, jsonify from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.utils import PGChildNodeView @@ -83,6 +83,14 @@ class EventTriggerModule(CollectionNodeModule): """ return database.DatabaseModule.NODE_TYPE + @property + def module_use_template_javascript(self): + """ + Returns whether Jinja2 template is used for generating the javascript + module. + """ + return False + blueprint = EventTriggerModule(__name__) @@ -101,9 +109,6 @@ class EventTriggerView(PGChildNodeView): * __init__(**kwargs) - Method is used to initialize the EventTriggerView and it's base view. - * module_js() - - Returns the javascript module for event trigger. - * check_precondition() - This function will behave as a decorator which will checks database connection before running view, it will also attaches @@ -165,22 +170,9 @@ class EventTriggerView(PGChildNodeView): 'stats': [{'get': 'statistics'}], 'dependency': [{'get': 'dependencies'}], 'dependent': [{'get': 'dependents'}], - 'module.js': [{}, {}, {'get': 'module_js'}], 'fopts': [{'get': 'get_event_funcs'}, {'get': 'get_event_funcs'}] }) - def module_js(self): - """ - Returns the javascript module for event trigger. - """ - return make_response( - render_template( - "event_triggers/js/event_trigger.js", - _=gettext - ), - 200, {'Content-Type': 'application/x-javascript'} - ) - def check_precondition(f): """ This function will behave as a decorator which will checks diff --git a/web/pgadmin/browser/server_groups/servers/databases/event_triggers/templates/event_triggers/js/event_trigger.js b/web/pgadmin/browser/server_groups/servers/databases/event_triggers/static/js/event_trigger.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/event_triggers/templates/event_triggers/js/event_trigger.js rename to web/pgadmin/browser/server_groups/servers/databases/event_triggers/static/js/event_trigger.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py index aed393e17..8d9d108f3 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/extensions/__init__.py @@ -13,7 +13,7 @@ import simplejson as json from functools import wraps import pgadmin.browser.server_groups.servers.databases as databases -from flask import render_template, make_response, request, jsonify +from flask import render_template, request, jsonify from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.utils import PGChildNodeView @@ -82,6 +82,14 @@ class ExtensionModule(CollectionNodeModule): """ return databases.DatabaseModule.NODE_TYPE + @property + def module_use_template_javascript(self): + """ + Returns whether Jinja2 template is used for generating the javascript + module. + """ + return False + # Create blueprint of extension module blueprint = ExtensionModule(__name__) @@ -123,7 +131,6 @@ class ExtensionView(PGChildNodeView): 'stats': [{'get': 'statistics'}], 'dependency': [{'get': 'dependencies'}], 'dependent': [{'get': 'dependents'}], - 'module.js': [{}, {}, {'get': 'module_js'}], 'avails': [{}, {'get': 'avails'}], 'schemas': [{}, {'get': 'schemas'}], 'children': [{'get': 'children'}] @@ -450,18 +457,6 @@ class ExtensionView(PGChildNodeView): status=200 ) - def module_js(self): - """ - This property defines whether javascript exists for this node. - """ - return make_response( - render_template( - "extensions/js/extensions.js", - _=gettext - ), - 200, {'Content-Type': 'application/x-javascript'} - ) - @check_precondition def sql(self, gid, sid, did, eid): """ diff --git a/web/pgadmin/browser/server_groups/servers/databases/extensions/templates/extensions/js/extensions.js b/web/pgadmin/browser/server_groups/servers/databases/extensions/static/js/extension.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/extensions/templates/extensions/js/extensions.js rename to web/pgadmin/browser/server_groups/servers/databases/extensions/static/js/extension.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/__init__.py index 0bed261c9..d4ba568e9 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/__init__.py @@ -13,7 +13,7 @@ import simplejson as json from functools import wraps import pgadmin.browser.server_groups.servers.databases as databases -from flask import render_template, make_response, request, jsonify +from flask import render_template, request, jsonify from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.server_groups.servers.utils import parse_priv_from_db, \ @@ -85,6 +85,14 @@ class ForeignDataWrapperModule(CollectionNodeModule): """ return databases.DatabaseModule.NODE_TYPE + @property + def module_use_template_javascript(self): + """ + Returns whether Jinja2 template is used for generating the javascript + module. + """ + return False + blueprint = ForeignDataWrapperModule(__name__) @@ -102,10 +110,6 @@ class ForeignDataWrapperView(PGChildNodeView): * __init__(**kwargs) - Method is used to initialize the ForeignDataWrapperView and it's base view. - * module_js() - - This property defines (if javascript) exists for this node. - Override this property for your own logic - * check_precondition() - This function will behave as a decorator which will checks database connection before running view, it will also attaches @@ -178,24 +182,10 @@ class ForeignDataWrapperView(PGChildNodeView): 'stats': [{'get': 'statistics'}], 'dependency': [{'get': 'dependencies'}], 'dependent': [{'get': 'dependents'}], - 'module.js': [{}, {}, {'get': 'module_js'}], 'get_handlers': [{}, {'get': 'get_handlers'}], 'get_validators': [{}, {'get': 'get_validators'}] }) - def module_js(self): - """ - This property defines (if javascript) exists for this node. - Override this property for your own logic. - """ - return make_response( - render_template( - "foreign_data_wrappers/js/foreign_data_wrappers.js", - _=gettext - ), - 200, {'Content-Type': 'application/x-javascript'} - ) - def check_precondition(f): """ This function will behave as a decorator which will checks diff --git a/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/templates/foreign_data_wrappers/js/foreign_data_wrappers.js b/web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/static/js/foreign_data_wrapper.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/templates/foreign_data_wrappers/js/foreign_data_wrappers.js rename to web/pgadmin/browser/server_groups/servers/databases/foreign_data_wrappers/static/js/foreign_data_wrapper.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/languages/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/languages/__init__.py index 1fe224830..b1e796e67 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/languages/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/languages/__init__.py @@ -13,7 +13,7 @@ import simplejson as json from functools import wraps import pgadmin.browser.server_groups.servers.databases as databases -from flask import render_template, make_response, request, jsonify +from flask import render_template, request, jsonify from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.server_groups.servers.utils import parse_priv_from_db, \ @@ -96,6 +96,14 @@ class LanguageModule(CollectionNodeModule): """ return databases.DatabaseModule.NODE_TYPE + @property + def module_use_template_javascript(self): + """ + Returns whether Jinja2 template is used for generating the javascript + module. + """ + return False + blueprint = LanguageModule(__name__) @@ -113,10 +121,6 @@ class LanguageView(PGChildNodeView): * __init__(**kwargs) - Method is used to initialize the LanguageView and it's base view. - * module_js() - - This property defines (if javascript) exists for this node. - Override this property for your own logic - * check_precondition() - This function will behave as a decorator which will checks database connection before running view, it will also attaches @@ -185,7 +189,6 @@ class LanguageView(PGChildNodeView): 'stats': [{'get': 'statistics'}], 'dependency': [{'get': 'dependencies'}], 'dependent': [{'get': 'dependents'}], - 'module.js': [{}, {}, {'get': 'module_js'}], 'get_functions': [{}, {'get': 'get_functions'}], 'get_templates': [{}, {'get': 'get_templates'}], 'delete': [{'delete': 'delete'}] @@ -205,18 +208,6 @@ class LanguageView(PGChildNodeView): super(LanguageView, self).__init__(**kwargs) - def module_js(self): - """ - This property defines whether javascript exists for this node. - """ - return make_response( - render_template( - "languages/js/languages.js", - _=gettext - ), - 200, {'Content-Type': 'application/x-javascript'} - ) - def check_precondition(f): """ This function will behave as a decorator which will check the diff --git a/web/pgadmin/browser/server_groups/servers/databases/languages/templates/languages/js/languages.js b/web/pgadmin/browser/server_groups/servers/databases/languages/static/js/language.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/languages/templates/languages/js/languages.js rename to web/pgadmin/browser/server_groups/servers/databases/languages/static/js/language.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py index 2582693b4..4e1f011ba 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/__init__.py @@ -93,6 +93,14 @@ class SchemaModule(CollectionNodeModule): """ return servers.ServerModule.NODE_TYPE + @property + def module_use_template_javascript(self): + """ + Returns whether Jinja2 template is used for generating the javascript + module. + """ + return False + class CatalogModule(SchemaModule): """ @@ -151,10 +159,6 @@ class SchemaView(PGChildNodeView): * __init__(**kwargs) - Method is used to initialize the SchemaView and it's base view. - * module_js() - - Request handler for module.js routes for the schema node module - javascript, which returns javscript for this module. - * list() - This function is used to list all the schema nodes within the collection. @@ -217,7 +221,6 @@ class SchemaView(PGChildNodeView): 'stats': [{'get': 'statistics'}], 'dependency': [{'get': 'dependencies'}], 'dependent': [{'get': 'dependents'}], - 'module.js': [{}, {}, {'get': 'module_js'}], 'delete': [{'delete': 'delete'}] }) @@ -901,10 +904,6 @@ class CatalogView(SchemaView): * __init__(**kwargs) - Method is used to initialize the CatalogView and it's base view. - * module_js() - - This property defines (if javascript) exists for this node. - Override this property for your own logic - * create(gid, sid, did, scid) - Raise an error - we cannot create a catalog. diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/templates/catalog_object/js/catalog_object.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/static/js/catalog_object.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/templates/catalog_object/js/catalog_object.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/static/js/catalog_object.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/collations/templates/collation/js/collation.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/collations/static/js/collation.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/collations/templates/collation/js/collation.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/collations/static/js/collation.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/__init__.py index e6c26f446..85cd1c031 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/__init__.py @@ -14,7 +14,7 @@ from functools import wraps import pgadmin.browser.server_groups.servers.databases.schemas.domains \ as domains -from flask import render_template, make_response, request, jsonify +from flask import render_template, request, jsonify from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.utils import PGChildNodeView @@ -86,6 +86,14 @@ class DomainConstraintModule(CollectionNodeModule): ) ] + @property + def module_use_template_javascript(self): + """ + Returns whether Jinja2 template is used for generating the javascript + module. + """ + return False + blueprint = DomainConstraintModule(__name__) @@ -103,9 +111,6 @@ class DomainConstraintView(PGChildNodeView): Methods: ------- - * module_js(): - - Load JS file (domain_constraints.js) for this module. - * check_precondition(f): - Works as a decorator. - Checks database connection status. @@ -170,8 +175,7 @@ class DomainConstraintView(PGChildNodeView): 'msql': [{'get': 'msql'}, {'get': 'msql'}], 'stats': [{'get': 'statistics'}], 'dependency': [{'get': 'dependencies'}], - 'dependent': [{'get': 'dependents'}], - 'module.js': [{}, {}, {'get': 'module_js'}] + 'dependent': [{'get': 'dependents'}] }) def validate_request(f): @@ -227,18 +231,6 @@ class DomainConstraintView(PGChildNodeView): return wrap - def module_js(self): - """ - Load JS file (domain_constraints.js) for this module. - """ - return make_response( - render_template( - "domain_constraints/js/domain_constraints.js", - _=gettext - ), - 200, {'Content-Type': 'application/x-javascript'} - ) - def check_precondition(f): """ Works as a decorator. @@ -338,7 +330,6 @@ class DomainConstraintView(PGChildNodeView): doid: Domain Id coid: Domain Constraint Id """ - res = [] SQL = render_template("/".join([self.template_path, 'properties.sql']), coid=coid) diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/templates/domain_constraints/js/domain_constraints.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/static/js/domain_constraint.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/templates/domain_constraints/js/domain_constraints.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/domains/domain_constraints/static/js/domain_constraint.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/templates/domains/js/domains.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/domains/static/js/domain.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/domains/templates/domains/js/domains.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/domains/static/js/domain.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/js/foreign_tables.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/static/js/foreign-table.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/templates/foreign_tables/js/foreign_tables.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/foreign_tables/static/js/foreign-table.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/templates/fts_configuration/js/fts_configuration.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/static/js/fts_configuration.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/templates/fts_configuration/js/fts_configuration.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/fts_configurations/static/js/fts_configuration.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/templates/fts_dictionary/js/fts_dictionary.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/static/js/fts_dictionary.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/templates/fts_dictionary/js/fts_dictionary.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/fts_dictionaries/static/js/fts_dictionary.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/templates/fts_parser/js/fts_parser.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/static/js/fts_parser.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/templates/fts_parser/js/fts_parser.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/fts_parser/static/js/fts_parser.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/templates/fts_template/js/fts_templates.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/static/js/fts_template.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/templates/fts_template/js/fts_templates.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/fts_templates/static/js/fts_template.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/js/functions.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/static/js/function.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/function/js/functions.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/functions/static/js/function.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/js/procedures.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/static/js/procedure.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/js/procedures.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/functions/static/js/procedure.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/js/trigger_functions.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/static/js/trigger_function.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/trigger_function/js/trigger_functions.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/functions/static/js/trigger_function.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/templates/package/js/package.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/static/js/package.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/packages/templates/package/js/package.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/packages/static/js/package.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequence/js/sequence.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/static/js/sequence.js similarity index 97% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequence/js/sequence.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/static/js/sequence.js index 3dbf6e554..a84fb88ee 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/templates/sequence/js/sequence.js +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/static/js/sequence.js @@ -235,7 +235,7 @@ define('pgadmin.node.sequence', [ if (!this.isNew()) { if (_.isUndefined(this.get('current_value')) || String(this.get('current_value')).replace(/^\s+|\s+$/g, '') == '') { - msg = '{{ _('Current value cannot be empty.') }}'; + msg = gettext('Current value cannot be empty.'); this.errorModel.set('current_value', msg); return msg; } else { @@ -244,7 +244,7 @@ define('pgadmin.node.sequence', [ if (_.isUndefined(this.get('increment')) || String(this.get('increment')).replace(/^\s+|\s+$/g, '') == '') { - msg = '{{ _('Increment value cannot be empty.') }}'; + msg = gettext('Increment value cannot be empty.'); this.errorModel.set('increment', msg); return msg; } else { @@ -253,7 +253,7 @@ define('pgadmin.node.sequence', [ if (_.isUndefined(this.get('minimum')) || String(this.get('minimum')).replace(/^\s+|\s+$/g, '') == '') { - msg = '{{ _('Minimum value cannot be empty.') }}'; + msg = gettext('Minimum value cannot be empty.'); this.errorModel.set('minimum', msg); return msg; } else { @@ -262,7 +262,7 @@ define('pgadmin.node.sequence', [ if (_.isUndefined(this.get('maximum')) || String(this.get('maximum')).replace(/^\s+|\s+$/g, '') == '') { - msg = '{{ _('Maximum value cannot be empty.') }}'; + msg = gettext('Maximum value cannot be empty.'); this.errorModel.set('maximum', msg); return msg; } else { @@ -271,7 +271,7 @@ define('pgadmin.node.sequence', [ if (_.isUndefined(this.get('cache')) || String(this.get('cache')).replace(/^\s+|\s+$/g, '') == '') { - msg = '{{ _('Cache value cannot be empty.') }}'; + msg = gettext('Cache value cannot be empty.'); this.errorModel.set('cache', msg); return msg; } else { diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/js/catalog.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/static/js/catalog.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/templates/catalog/js/catalog.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/static/js/catalog.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/schema/js/schema.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/static/js/schema.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/templates/schema/js/schema.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/static/js/schema.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/js/synonym.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/static/js/synonym.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/js/synonym.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/static/js/synonym.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/js/table.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/static/js/table.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/tables/templates/table/js/table.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/tables/static/js/table.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/types/templates/type/js/type.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/types/static/js/type.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/types/templates/type/js/type.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/types/static/js/type.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/utils.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/utils.py index 3cc31d226..852724d4d 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/utils.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/utils.py @@ -14,7 +14,6 @@ import json from flask import render_template from pgadmin.browser.collection import CollectionNodeModule from pgadmin.utils.ajax import internal_server_error -from config import PG_DEFAULT_DRIVER class SchemaChildModule(CollectionNodeModule): """ @@ -62,6 +61,14 @@ class SchemaChildModule(CollectionNodeModule): self, manager, **kwargs ) + @property + def module_use_template_javascript(self): + """ + Returns whether Jinja2 template is used for generating the javascript + module. + """ + return False + class DataTypeReader: """ @@ -165,7 +172,6 @@ class DataTypeReader: conn: Connection Object condition: condition to restrict SQL statement """ - needSchema = isDup schema = nsp if nsp is not None else '' name = '' array = '' diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mview/js/mview.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/static/js/mview.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mview/js/mview.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/views/static/js/mview.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/view/js/view.js b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/static/js/view.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/view/js/view.js rename to web/pgadmin/browser/server_groups/servers/databases/schemas/views/static/js/view.js diff --git a/web/pgadmin/browser/server_groups/servers/databases/templates/databases/js/databases.js b/web/pgadmin/browser/server_groups/servers/databases/static/js/database.js similarity index 100% rename from web/pgadmin/browser/server_groups/servers/databases/templates/databases/js/databases.js rename to web/pgadmin/browser/server_groups/servers/databases/static/js/database.js diff --git a/web/pgadmin/browser/server_groups/servers/pgagent/__init__.py b/web/pgadmin/browser/server_groups/servers/pgagent/__init__.py index bd6e248dd..5ce8eb186 100644 --- a/web/pgadmin/browser/server_groups/servers/pgagent/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/pgagent/__init__.py @@ -11,7 +11,7 @@ from functools import wraps import json -from flask import render_template, make_response, request, jsonify +from flask import render_template, request, jsonify from flask_babel import gettext as _ from config import PG_DEFAULT_DRIVER @@ -98,6 +98,14 @@ SELECT EXISTS( return snippets + @property + def module_use_template_javascript(self): + """ + Returns whether Jinja2 template is used for generating the javascript + module. + """ + return False + blueprint = JobModule(__name__) @@ -124,8 +132,7 @@ class JobView(PGChildNodeView): 'run_now': [{'put': 'run_now'}], 'classes': [{}, {'get': 'job_classes'}], 'children': [{'get': 'children'}], - 'stats': [{'get': 'statistics'}], - 'module.js': [{}, {}, {'get': 'module_js'}] + 'stats': [{'get': 'statistics'}] }) def check_precondition(f): @@ -249,19 +256,6 @@ SELECT EXISTS( status=200 ) - def module_js(self): - """ - This property defines (if javascript) exists for this node. - Override this property for your own logic. - """ - return make_response( - render_template( - "pga_job/js/pga_job.js", - _=_ - ), - 200, {'Content-Type': 'application/x-javascript'} - ) - @check_precondition def create(self, gid, sid): """Create the pgAgent job.""" diff --git a/web/pgadmin/browser/server_groups/servers/pgagent/schedules/__init__.py b/web/pgadmin/browser/server_groups/servers/pgagent/schedules/__init__.py index fefcc4919..0f5a9e8db 100644 --- a/web/pgadmin/browser/server_groups/servers/pgagent/schedules/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/pgagent/schedules/__init__.py @@ -12,7 +12,7 @@ import json from functools import wraps -from flask import render_template, make_response, request, jsonify +from flask import render_template, request, jsonify from flask_babel import gettext from pgadmin.browser.collection import CollectionNodeModule from pgadmin.browser.utils import PGChildNodeView @@ -71,6 +71,14 @@ class JobScheduleModule(CollectionNodeModule): """ return 'pga_job' + @property + def module_use_template_javascript(self): + """ + Returns whether Jinja2 template is used for generating the javascript + module. + """ + return False + blueprint = JobScheduleModule(__name__) @@ -88,10 +96,6 @@ class JobScheduleView(PGChildNodeView): * __init__(**kwargs) - Method is used to initialize the JobScheduleView and it's base view. - * module_js() - - This property defines (if javascript) exists for this node. - Override this property for your own logic - * check_precondition() - This function will behave as a decorator which will checks database connection before running view, it will also attaches @@ -140,8 +144,7 @@ class JobScheduleView(PGChildNodeView): ], 'nodes': [{'get': 'nodes'}, {'get': 'nodes'}], 'msql': [{'get': 'msql'}, {'get': 'msql'}], - 'sql': [{'get': 'sql'}], - 'module.js': [{}, {}, {'get': 'module_js'}] + 'sql': [{'get': 'sql'}] }) def _init_(self, **kwargs): @@ -159,18 +162,6 @@ class JobScheduleView(PGChildNodeView): super(JobScheduleView, self).__init__(**kwargs) - def module_js(self): - """ - This property defines whether javascript exists for this node. - """ - return make_response( - render_template( - "pga_schedule/js/pga_schedule.js", - _=gettext - ), - 200, {'Content-Type': 'application/x-javascript'} - ) - def check_precondition(f): """ This function will behave as a decorator which will check the diff --git a/web/pgadmin/browser/server_groups/servers/pgagent/schedules/templates/pga_schedule/js/pga_schedule.js b/web/pgadmin/browser/server_groups/servers/pgagent/schedules/static/js/pga_schedule.js similarity index 95% rename from web/pgadmin/browser/server_groups/servers/pgagent/schedules/templates/pga_schedule/js/pga_schedule.js rename to web/pgadmin/browser/server_groups/servers/pgagent/schedules/static/js/pga_schedule.js index df6d98e3d..60cf5003d 100644 --- a/web/pgadmin/browser/server_groups/servers/pgagent/schedules/templates/pga_schedule/js/pga_schedule.js +++ b/web/pgadmin/browser/server_groups/servers/pgagent/schedules/static/js/pga_schedule.js @@ -337,7 +337,10 @@ define('pgadmin.node.pga_schedule', [ ); this.$el.prepend( - '