Preferences: Fix and improve search

This commit is contained in:
Abe Jellinek 2024-01-17 13:45:29 -08:00 committed by Dan Stillman
parent 6e651271e8
commit 1d662b9fef
3 changed files with 34 additions and 23 deletions

View file

@ -218,6 +218,7 @@ var Zotero_Preferences = {
this.navigation.append(listItem); this.navigation.append(listItem);
let container = document.createElement('div'); let container = document.createElement('div');
container.classList.add('pane-container');
container.hidden = true; container.hidden = true;
this.helpContainer.before(container); this.helpContainer.before(container);
@ -276,8 +277,13 @@ var Zotero_Preferences = {
let heading = document.createElement('h1'); let heading = document.createElement('h1');
heading.textContent = pane.rawLabel; heading.textContent = pane.rawLabel;
pane.container.append(heading);
pane.container.append(contentFragment); pane.container.append(contentFragment);
if (pane.container.querySelector('.main-section')) {
pane.container.querySelector('.main-section').prepend(heading);
}
else {
pane.container.prepend(heading);
}
await document.l10n.ready; await document.l10n.ready;
await document.l10n.translateFragment(pane.container); await document.l10n.translateFragment(pane.container);
@ -585,12 +591,13 @@ ${str}
let termForDisplay = Zotero.Utilities.trimInternal(term).toLowerCase(); let termForDisplay = Zotero.Utilities.trimInternal(term).toLowerCase();
term = this._normalizeSearch(term); term = this._normalizeSearch(term);
for (let container of this.content.children) { for (let paneContainer of this.content.querySelectorAll(':scope > .pane-container')) {
let root = container.firstElementChild; let roots = paneContainer.children;
if (!root) continue; while (roots.length === 1 && roots[0].childElementCount) {
roots = roots[0].children;
for (let child of root.children) { }
let matches = await this._findNodesMatching(child, term); for (let root of roots) {
let matches = await this._findNodesMatching(root, term);
if (matches.length) { if (matches.length) {
let touchedTabPanels = new Set(); let touchedTabPanels = new Set();
for (let node of matches) { for (let node of matches) {
@ -642,10 +649,14 @@ ${str}
} }
} }
else { else {
child.classList.add('hidden-by-search'); root.classList.add('hidden-by-search');
child.ariaHidden = true; root.ariaHidden = true;
} }
} }
if (Array.from(roots).every(root => root.classList.contains('hidden-by-search'))) {
paneContainer.classList.add('hidden-by-search');
paneContainer.ariaHidden = true;
}
} }
}), }),

View file

@ -203,18 +203,18 @@
<label value="&zotero.preferences.trashAutoEmptyDaysPost;"/> <label value="&zotero.preferences.trashAutoEmptyDaysPost;"/>
</hbox> </hbox>
</groupbox> </groupbox>
<groupbox>
<label><html:h2>&zotero.preferences.groups;</html:h2></label>
<label value="&zotero.preferences.groups.whenCopyingInclude;"/>
<vbox style="margin-left: 2em">
<checkbox label="&zotero.preferences.groups.childNotes;" preference="extensions.zotero.groups.copyChildNotes" native="true"/>
<checkbox label="&zotero.preferences.groups.childFiles;" preference="extensions.zotero.groups.copyChildFileAttachments" native="true"/>
<checkbox label="&zotero.preferences.groups.annotations;" preference="extensions.zotero.groups.copyAnnotations" native="true"/>
<checkbox label="&zotero.preferences.groups.childLinks;" preference="extensions.zotero.groups.copyChildLinks" native="true"/>
<checkbox label="&zotero.preferences.groups.tags;" preference="extensions.zotero.groups.copyTags" native="true"/>
</vbox>
</groupbox>
</vbox> </vbox>
<groupbox>
<label><html:h2>&zotero.preferences.groups;</html:h2></label>
<label value="&zotero.preferences.groups.whenCopyingInclude;"/>
<vbox style="margin-left: 2em">
<checkbox label="&zotero.preferences.groups.childNotes;" preference="extensions.zotero.groups.copyChildNotes" native="true"/>
<checkbox label="&zotero.preferences.groups.childFiles;" preference="extensions.zotero.groups.copyChildFileAttachments" native="true"/>
<checkbox label="&zotero.preferences.groups.annotations;" preference="extensions.zotero.groups.copyAnnotations" native="true"/>
<checkbox label="&zotero.preferences.groups.childLinks;" preference="extensions.zotero.groups.copyChildLinks" native="true"/>
<checkbox label="&zotero.preferences.groups.tags;" preference="extensions.zotero.groups.copyTags" native="true"/>
</vbox>
</groupbox>
</vbox> </vbox>

View file

@ -222,7 +222,7 @@ groupbox:not(:first-of-type) label > h2 {
} }
.hidden-by-search { .hidden-by-search {
display: none; display: none !important;
} }
prefwindow .chromeclass-toolbar prefwindow .chromeclass-toolbar