Fix issues found while testing changes for preferences tab and search. #6743

pull/8870/head
Aditya Toshniwal 2025-06-19 11:49:37 +05:30
parent 7946ee78f6
commit 5df2c7686c
6 changed files with 41 additions and 23 deletions

View File

@ -199,7 +199,9 @@ export default function PreferencesComponent({panelId}) {
useEffect(()=>{
/* Bind the close event and check if user should be warned */
const deregister = layoutDocker.eventBus.registerListener(LAYOUT_EVENTS.CLOSING, ()=>{
const deregister = layoutDocker.eventBus.registerListener(LAYOUT_EVENTS.CLOSING, (id)=>{
if(panelId != id) return;
if(Object.keys(prefChangedData.current).length > 0) {
pgAdmin.Browser.notifier.confirm(
gettext('Warning'),

View File

@ -139,6 +139,7 @@ export function prepareSubnodeData(node, subNode, nodeData, preferencesStore) {
delete element.value; // Original value is moved to fieldValues
element.visible = false;
element.labelTooltip = `${node.name}:${subNode.name}:${element.name}`;
element.helpMessage = element?.help_str || null;
element.parentId = nodeData.id;
fieldItems.push(element);

View File

@ -34,7 +34,6 @@ export default function RightPreference({ schema, filteredItemIds, selectedItem,
schema.schemaFields.forEach((field) => {
field.visible = field.parentId === selectedItem.id && filteredItemIds.includes(field.id);
field.labelTooltip = `${selectedItem.key.toLowerCase()}:${selectedItem.key}:${field.key}`;
});
schema.categoryUpdated(selectedItem.id);
};

View File

@ -84,6 +84,10 @@ export default function cmOverride(theme) {
color: editor.guttersFg,
borderRight: 'none',
'& .cm-lineNumbers': {
padding: '0px 4px',
},
'& .cm-foldGutter': {
padding: '0px',
color: editor.fg,

View File

@ -160,8 +160,6 @@ const defaultExtensions = [
EditorView.clipboardOutputFilter.of((text, state)=>{
return CustomEditorView.getSelectionFromState(state);
}),
// Custom folding service for PL/pgSQL
plpgsqlFoldService,
];
export default function Editor({
@ -174,9 +172,10 @@ export default function Editor({
const editorContainerRef = useRef();
const editor = useRef();
const defaultOptions = {
const finalOptions = {
lineNumbers: true,
foldGutter: true,
...options
};
const preferencesStore = usePreferences();
@ -189,28 +188,13 @@ export default function Editor({
useEffect(() => {
if (!checkIsMounted()) return;
const finalOptions = { ...defaultOptions, ...options };
const osEOL = OS_EOL === 'crlf' ? '\r\n' : '\n';
const finalExtns = [
(language == 'json') ? json() : sql({dialect: PgSQL}),
...defaultExtensions,
];
if (finalOptions.lineNumbers) {
finalExtns.push(lineNumbers());
}
if (finalOptions.foldGutter) {
finalExtns.push(foldGutter({
markerDOM: (open)=>{
let icon = document.createElement('span');
if(open) {
icon.innerHTML = arrowDownHtml;
} else {
icon.innerHTML = arrowRightHtml;
}
return icon;
},
}));
}
if (editorContainerRef.current) {
const state = EditorState.create({
extensions: [
@ -388,6 +372,34 @@ export default function Editor({
newConfigExtn.push(currentQueryHighlighterExtn());
}
if(!pref.plain_editor_mode) {
// lang override
if(language == 'json') {
newConfigExtn.push(json());
} else {
newConfigExtn.push(sql({dialect: PgSQL}));
}
}
if(pref.code_folding && finalOptions.foldGutter) {
newConfigExtn.push(foldGutter({
markerDOM: (open)=>{
let icon = document.createElement('span');
if(open) {
icon.innerHTML = arrowDownHtml;
} else {
icon.innerHTML = arrowRightHtml;
}
return icon;
},
}));
}
// add fold service conditionally
if(!pref.plain_editor_mode && pref.code_folding && language == 'pgsql') {
newConfigExtn.push(plpgsqlFoldService);
}
editor.current.dispatch({
effects: configurables.current.reconfigure(newConfigExtn)
});

View File

@ -177,7 +177,7 @@ def register_query_tool_preferences(self):
)
)
self.sql_font_size = self.preference.register(
self.preference.register(
'Editor', 'plain_editor_mode',
gettext("Plain text mode?"), 'boolean', False,
category_label=PREF_LABEL_EDITOR,
@ -188,7 +188,7 @@ def register_query_tool_preferences(self):
)
)
self.sql_font_size = self.preference.register(
self.preference.register(
'Editor', 'code_folding',
gettext("Code folding?"), 'boolean', True,
category_label=PREF_LABEL_EDITOR,
@ -1064,7 +1064,7 @@ def register_query_tool_preferences(self):
)
)
self.sql_font_size = self.preference.register(
self.preference.register(
'Editor', 'indent_new_line',
gettext("Auto-indent new line?"), 'boolean', True,
category_label=PREF_LABEL_EDITOR,