diff --git a/web/pgadmin/browser/__init__.py b/web/pgadmin/browser/__init__.py index 7778805..656b175 100644 --- a/web/pgadmin/browser/__init__.py +++ b/web/pgadmin/browser/__init__.py @@ -546,6 +546,9 @@ def utils(): editor_use_spaces_pref = prefs.preference('use_spaces') editor_use_spaces = editor_use_spaces_pref.get() + editor_indent_with_tabs_pref = prefs.preference('indent_with_tabs') + editor_indent_with_tabs = editor_indent_with_tabs_pref.get() + editor_wrap_code_pref = prefs.preference('wrap_code') editor_wrap_code = editor_wrap_code_pref.get() @@ -578,6 +581,7 @@ def utils(): editor_wrap_code=editor_wrap_code, editor_brace_matching=brace_matching, editor_insert_pair_brackets=insert_pair_brackets, + editor_indent_with_tabs=editor_indent_with_tabs, app_name=config.APP_NAME, pg_libpq_version=pg_libpq_version ), diff --git a/web/pgadmin/browser/static/js/browser.js b/web/pgadmin/browser/static/js/browser.js index ed43578..0621255 100644 --- a/web/pgadmin/browser/static/js/browser.js +++ b/web/pgadmin/browser/static/js/browser.js @@ -1970,7 +1970,8 @@ define( tabSize: pgBrowser.utils.tabSize, wrapCode: pgBrowser.utils.wrapCode, insert_pair_brackets: pgBrowser.utils.insertPairBrackets, - brace_matching: pgBrowser.utils.braceMatching + brace_matching: pgBrowser.utils.braceMatching, + indent_with_tabs: pgBrowser.utils.is_indent_with_tabs } }); diff --git a/web/pgadmin/browser/templates/browser/js/utils.js b/web/pgadmin/browser/templates/browser/js/utils.js index fc475dd..be3b712 100644 --- a/web/pgadmin/browser/templates/browser/js/utils.js +++ b/web/pgadmin/browser/templates/browser/js/utils.js @@ -23,6 +23,7 @@ define('pgadmin.browser.utils', 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}}, diff --git a/web/pgadmin/static/js/backform.pgadmin.js b/web/pgadmin/static/js/backform.pgadmin.js index 93a933c..0fb8485 100644 --- a/web/pgadmin/static/js/backform.pgadmin.js +++ b/web/pgadmin/static/js/backform.pgadmin.js @@ -2049,6 +2049,8 @@ lineNumbers: true, mode: "text/x-pgsql", extraKeys: pgAdmin.Browser.editor_shortcut_keys, + indentWithTabs: pgAdmin.Browser.editor_options.indent_with_tabs, + indentUnit: pgAdmin.Browser.editor_options.tabSize, tabSize: pgAdmin.Browser.editor_options.tabSize, lineWrapping: pgAdmin.Browser.editor_options.wrapCode, autoCloseBrackets: pgAdmin.Browser.editor_options.insert_pair_brackets, diff --git a/web/pgadmin/tools/datagrid/static/js/datagrid.js b/web/pgadmin/tools/datagrid/static/js/datagrid.js index c67bf4e..28ac09b 100644 --- a/web/pgadmin/tools/datagrid/static/js/datagrid.js +++ b/web/pgadmin/tools/datagrid/static/js/datagrid.js @@ -258,9 +258,10 @@ define('pgadmin.datagrid', [ // Apply CodeMirror to filter text area. this.filter_obj = CodeMirror.fromTextArea($sql_filter.get(0), { lineNumbers: true, - indentUnit: 4, mode: "text/x-pgsql", extraKeys: pgBrowser.editor_shortcut_keys, + indentWithTabs: pgAdmin.Browser.editor_options.indent_with_tabs, + indentUnit: pgAdmin.Browser.editor_options.tabSize, tabSize: pgBrowser.editor_options.tabSize, lineWrapping: pgAdmin.Browser.editor_options.wrapCode, autoCloseBrackets: pgAdmin.Browser.editor_options.insert_pair_brackets, diff --git a/web/pgadmin/tools/debugger/static/js/direct.js b/web/pgadmin/tools/debugger/static/js/direct.js index 6906d09..33597a7 100644 --- a/web/pgadmin/tools/debugger/static/js/direct.js +++ b/web/pgadmin/tools/debugger/static/js/direct.js @@ -1636,6 +1636,8 @@ define([ mode: "text/x-pgsql", readOnly: true, extraKeys: pgAdmin.Browser.editor_shortcut_keys, + indentWithTabs: pgAdmin.Browser.editor_options.indent_with_tabs, + indentUnit: pgAdmin.Browser.editor_options.tabSize, tabSize: pgAdmin.Browser.editor_options.tabSize, lineWrapping: pgAdmin.Browser.editor_options.wrapCode, autoCloseBrackets: pgAdmin.Browser.editor_options.insert_pair_brackets, diff --git a/web/pgadmin/tools/sqleditor/__init__.py b/web/pgadmin/tools/sqleditor/__init__.py index ee7dc8c..7bb2212 100644 --- a/web/pgadmin/tools/sqleditor/__init__.py +++ b/web/pgadmin/tools/sqleditor/__init__.py @@ -117,9 +117,13 @@ class SqlEditorModule(PgAdminModule): category_label=gettext('Display'), min_val=-1, max_val=999999, - help_str=gettext('The length of time to display the query info notifier after execution has completed. ' - 'A value of -1 disables the notifier and a value of 0 displays it until clicked. ' - 'Values greater than 1 display the notifier for the number of seconds specified.') + help_str=gettext( + 'The length of time to display the query info notifier after ' + 'execution has completed. A value of -1 disables the notifier ' + 'and a value of 0 displays it until clicked. Values greater ' + 'than 1 display the notifier for the number of seconds ' + 'specified.' + ) ) self.open_in_new_tab = self.preference.register( @@ -172,10 +176,13 @@ class SqlEditorModule(PgAdminModule): min_val=0.1, max_val=10, category_label=gettext('Display'), - help_str=gettext('The font size to use for the SQL text boxes and editors. ' - 'The value specified is in "em" units, in which 1 is the default relative font size. ' - 'For example, to increase the font size by 20 percent use a value of 1.2, or to reduce ' - 'by 20 percent, use a value of 0.8. Minimum 0.1, maximum 10.') + help_str=gettext( + 'The font size to use for the SQL text boxes and editors. ' + 'The value specified is in "em" units, in which 1 is the ' + 'default relative font size. For example, to increase the ' + 'font size by 20 percent use a value of 1.2, or to reduce ' + 'by 20 percent, use a value of 0.8. Minimum 0.1, maximum 10.' + ) ) self.tab_size = self.preference.register( @@ -184,35 +191,57 @@ class SqlEditorModule(PgAdminModule): min_val=2, max_val=8, category_label=gettext('Options'), - help_str=gettext('The number of spaces per tab. Minimum 2, maximum 8.') + help_str=gettext( + 'The number of spaces per tab. Minimum 2, maximum 8.' + ) ) self.use_spaces = self.preference.register( 'Options', 'use_spaces', gettext("Use spaces?"), 'boolean', False, category_label=gettext('Options'), - help_str=gettext('Specifies whether or not to insert spaces instead of tabs when the tab key is used.') + help_str=gettext( + 'Specifies whether or not to insert spaces instead of tabs ' + 'when the tab key is used.' + ) + ) + + self.use_spaces = self.preference.register( + 'Options', 'indent_with_tabs', + gettext("Use tabs for indentation?"), 'boolean', False, + category_label=gettext('Options'), + help_str=gettext( + 'Specifies whether or not to use tabs for indentation.' + ) ) self.wrap_code = self.preference.register( 'Options', 'wrap_code', gettext("Line wrapping?"), 'boolean', False, category_label=gettext('Options'), - help_str=gettext('Specifies whether or not to wrap SQL code in the editor.') + help_str=gettext( + 'Specifies whether or not to wrap SQL code in the editor.' + ) ) self.insert_pair_brackets = self.preference.register( 'Options', 'insert_pair_brackets', gettext("Insert bracket pairs?"), 'boolean', True, category_label=gettext('Options'), - help_str=gettext('Specifies whether or not to insert paired brackets in the editor.') + help_str=gettext( + 'Specifies whether or not to insert paired brackets in the ' + 'editor.' + ) ) self.brace_matching = self.preference.register( 'Options', 'brace_matching', gettext("Brace matching?"), 'boolean', True, category_label=gettext('Options'), - help_str=gettext('Specifies whether or not to highlight matched braces in the editor.') + help_str=gettext( + 'Specifies whether or not to highlight matched braces ' + 'in the editor.' + ) ) @@ -222,7 +251,9 @@ blueprint = SqlEditorModule(MODULE_NAME, __name__, static_url_path='/static') @blueprint.route('/') @login_required def index(): - return bad_request(errormsg=gettext('This URL cannot be requested directly.')) + return bad_request( + errormsg=gettext('This URL cannot be requested directly.') + ) def update_session_grid_transaction(trans_id, data): @@ -248,7 +279,9 @@ def check_transaction_status(trans_id): # Return from the function if transaction id not found if str(trans_id) not in grid_data: - return False, gettext('Transaction ID not found in the session.'), None, None, None + return False, gettext( + 'Transaction ID not found in the session.' + ), None, None, None # Fetch the object for the specified transaction id. # Use pickle.loads function to get the command object diff --git a/web/pgadmin/tools/sqleditor/static/js/sqleditor.js b/web/pgadmin/tools/sqleditor/static/js/sqleditor.js index 8dc22cf..177788c 100644 --- a/web/pgadmin/tools/sqleditor/static/js/sqleditor.js +++ b/web/pgadmin/tools/sqleditor/static/js/sqleditor.js @@ -109,7 +109,6 @@ define('tools.querytool', [ $('.editor-title').text(_.unescape(self.editor_title)); self.filter_obj = CodeMirror.fromTextArea(filter.get(0), { lineNumbers: true, - indentUnit: 4, mode: self.handler.server_type === "gpdb" ? "text/x-gpsql" : "text/x-pgsql", foldOptions: { widget: "\u2026" @@ -120,6 +119,8 @@ define('tools.querytool', [ }, gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"], extraKeys: pgBrowser.editor_shortcut_keys, + indentWithTabs: pgAdmin.Browser.editor_options.indent_with_tabs, + indentUnit: pgAdmin.Browser.editor_options.tabSize, tabSize: pgAdmin.Browser.editor_options.tabSize, lineWrapping: pgAdmin.Browser.editor_options.wrapCode, autoCloseBrackets: pgAdmin.Browser.editor_options.insert_pair_brackets, @@ -153,7 +154,6 @@ define('tools.querytool', [ self.query_tool_obj = CodeMirror.fromTextArea(text_container.get(0), { lineNumbers: true, - indentUnit: 4, styleSelectedText: true, mode: self.handler.server_type === "gpdb" ? "text/x-gpsql" : "text/x-pgsql", foldOptions: { @@ -165,6 +165,8 @@ define('tools.querytool', [ }, gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"], extraKeys: pgBrowser.editor_shortcut_keys, + indentWithTabs: pgAdmin.Browser.editor_options.indent_with_tabs, + indentUnit: pgAdmin.Browser.editor_options.tabSize, tabSize: pgAdmin.Browser.editor_options.tabSize, lineWrapping: pgAdmin.Browser.editor_options.wrapCode, scrollbarStyle: 'simple',