diff --git a/docs/en_US/release_notes_4_24.rst b/docs/en_US/release_notes_4_24.rst index 353f4c5f5..442de03ce 100644 --- a/docs/en_US/release_notes_4_24.rst +++ b/docs/en_US/release_notes_4_24.rst @@ -21,6 +21,7 @@ Bug fixes ********* | `Issue #3851 `_ - Add proper indentation to the code while generating functions, procedures, and trigger functions. +| `Issue #4235 `_ - Fixed tab indent issue on a selection of lines is deleting the content when 'use spaces == true' in the preferences. | `Issue #5621 `_ - Remove extra brackets from reverse engineering SQL of RLS Policy. | `Issue #5630 `_ - Fixed an issue where installation of pgadmin4 not working on 32-bit Windows. | `Issue #5631 `_ - Fixed 'cant execute empty query' issue when remove the value of 'USING' or 'WITH CHECK' option of RLS Policy. \ No newline at end of file diff --git a/web/pgadmin/static/js/backform.pgadmin.js b/web/pgadmin/static/js/backform.pgadmin.js index 59ef7ae98..0864575e5 100644 --- a/web/pgadmin/static/js/backform.pgadmin.js +++ b/web/pgadmin/static/js/backform.pgadmin.js @@ -2527,6 +2527,22 @@ define([ self.sqlCtrl.setOption('lineWrapping', sqlEditPreferences.wrap_code); self.sqlCtrl.setOption('autoCloseBrackets', sqlEditPreferences.insert_pair_brackets); self.sqlCtrl.setOption('matchBrackets', sqlEditPreferences.brace_matching); + // Added extra logic to handel tab indent and use space setting. + self.sqlCtrl.setOption('extraKeys', { + Tab: (cm) => { + if(cm.somethingSelected()){ + cm.execCommand('indentMore'); + } else { + if (!sqlEditPreferences.use_spaces) { + cm.replaceSelection('\t', 'end', '+input'); + } + else { + cm.execCommand('insertSoftTab'); + } + } + }, + 'Shift-Tab': (cm) => cm.execCommand('indentLess'), + }); setTimeout(function() { if (self.sqlCtrl) self.sqlCtrl.refresh(); }, 500); diff --git a/web/pgadmin/static/js/sqleditor/query_tool_preferences.js b/web/pgadmin/static/js/sqleditor/query_tool_preferences.js index 5a3d15582..676df7ab5 100644 --- a/web/pgadmin/static/js/sqleditor/query_tool_preferences.js +++ b/web/pgadmin/static/js/sqleditor/query_tool_preferences.js @@ -224,6 +224,22 @@ function updateUIPreferences(sqlEditor) { sqlEditor.query_tool_obj.setOption('lineWrapping', preferences.wrap_code); sqlEditor.query_tool_obj.setOption('autoCloseBrackets', preferences.insert_pair_brackets); sqlEditor.query_tool_obj.setOption('matchBrackets', preferences.brace_matching); + // Added extra logic to handel tab indent and use space setting. + sqlEditor.query_tool_obj.setOption('extraKeys', { + Tab: (cm) => { + if(cm.somethingSelected()){ + cm.execCommand('indentMore'); + } else { + if (!preferences.use_spaces) { + cm.replaceSelection('\t', 'end', '+input'); + } + else { + cm.execCommand('insertSoftTab'); + } + } + }, + 'Shift-Tab': (cm) => cm.execCommand('indentLess'), + }); sqlEditor.query_tool_obj.refresh(); /* Render history to reflect Font size change */ diff --git a/web/pgadmin/tools/datagrid/static/js/show_data.js b/web/pgadmin/tools/datagrid/static/js/show_data.js index 04a2b46f2..914ac4fb9 100644 --- a/web/pgadmin/tools/datagrid/static/js/show_data.js +++ b/web/pgadmin/tools/datagrid/static/js/show_data.js @@ -200,6 +200,22 @@ function initFilterDialog(alertify, pgBrowser) { $(this.filter_obj.getWrapperElement()).css('font-size', sql_font_size); setTimeout(function() { + // Added extra logic to handel tab indent and use space setting. + that.filter_obj.setOption('extraKeys', { + Tab: (cm) => { + if(cm.somethingSelected()){ + cm.execCommand('indentMore'); + } else { + if (!that.preferences.use_spaces) { + cm.replaceSelection('\t', 'end', '+input'); + } + else { + cm.execCommand('insertSoftTab'); + } + } + }, + 'Shift-Tab': (cm) => cm.execCommand('indentLess'), + }); // Set focus on editor that.filter_obj.refresh(); that.filter_obj.focus();