Skip to content

Commit 5c59959

Browse files
authored
Merge pull request #3688 from ilandikov/feat-show-hide-toolbar
feat: show/hide toolbar instruction
2 parents 362bbac + c604cd8 commit 5c59959

File tree

4 files changed

+20
-2
lines changed

4 files changed

+20
-2
lines changed

src/Layout/QueryLayoutOptions.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
* @see LayoutOptions
55
*/
66
export class QueryLayoutOptions {
7+
hideToolbar: boolean = false;
78
hidePostponeButton: boolean = false;
89
hideTaskCount: boolean = false;
910
hideBacklinks: boolean = false;
@@ -29,6 +30,7 @@ export function parseQueryShowHideOptions(queryLayoutOptions: QueryLayoutOptions
2930
['edit button', 'hideEditButton'],
3031
['postpone button', 'hidePostponeButton'],
3132
['task count', 'hideTaskCount'],
33+
['toolbar', 'hideToolbar'],
3234
['tree', 'hideTree'],
3335
['urgency', 'hideUrgency'],
3436
]);

src/Renderer/HtmlQueryResultsRenderer.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ export class HtmlQueryResultsRenderer extends QueryResultsRendererBase {
8080
}
8181

8282
protected renderSearchResultsHeader(queryResult: QueryResult): void {
83-
this.addCopyButton(queryResult);
83+
this.addToolbar(queryResult);
8484
}
8585

8686
protected renderSearchResultsFooter(queryResult: QueryResult): void {
@@ -102,9 +102,17 @@ export class HtmlQueryResultsRenderer extends QueryResultsRendererBase {
102102
explanationsBlock.textContent = explanation;
103103
}
104104

105-
private addCopyButton(_queryResult: QueryResult) {
105+
private addToolbar(_queryResult: QueryResult) {
106+
if (this.getters.query().queryLayoutOptions.hideToolbar) {
107+
return;
108+
}
109+
106110
const toolbar = createAndAppendElement('div', this.content);
107111
toolbar.classList.add('plugin-tasks-toolbar');
112+
this.addCopyButton(toolbar);
113+
}
114+
115+
private addCopyButton(toolbar: HTMLDivElement): void {
108116
const copyButton = createAndAppendElement('button', toolbar);
109117
setIcon(copyButton, 'lucide-copy');
110118
setTooltip(copyButton, 'Copy results');

tests/Layout/QueryLayoutOptions.test.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,16 @@ describe('parsing query show/hide layout options', () => {
1212
['edit button', 'hideEditButton', false],
1313
['postpone button', 'hidePostponeButton', false],
1414
['task count', 'hideTaskCount', false],
15+
['toolbar', 'hideToolbar', false],
1516
['tree', 'hideTree', true],
1617
['urgency', 'hideUrgency', true],
1718
];
1819

20+
it('should have tests for all show/hide instructions', () => {
21+
const testedKeys = Object.keys(new QueryLayoutOptions()).filter((key) => key.startsWith('hide'));
22+
expect(testedKeys.length).toBe(testCases.length);
23+
});
24+
1925
it.each(testCases)('should parse "%s" option', (option, property, hiddenByDefault) => {
2026
const options = new QueryLayoutOptions();
2127
expect(options[property]).toBe(hiddenByDefault);

tests/Query/Query.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,7 @@ description includes \
514514
'hide start date',
515515
'hide tags',
516516
'hide task count',
517+
'hide toolbar',
517518
'hide tree',
518519
'hide urgency',
519520
'ignore global query',
@@ -539,6 +540,7 @@ description includes \
539540
'show start date',
540541
'show tags',
541542
'show task count',
543+
'show toolbar',
542544
'show tree',
543545
'show urgency',
544546
];

0 commit comments

Comments
 (0)