From 07ab45d7e07c4d0a6e3e67979cc3539f1a0669cc Mon Sep 17 00:00:00 2001 From: nboisteault Date: Thu, 8 Feb 2024 11:03:28 +0100 Subject: [PATCH 1/2] Fix hideGroupCheckbox --- assets/src/components/Treeview.js | 5 ++++- assets/src/modules/config/Options.js | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/assets/src/components/Treeview.js b/assets/src/components/Treeview.js index 5e7a450353..8f75bc9b3c 100644 --- a/assets/src/components/Treeview.js +++ b/assets/src/components/Treeview.js @@ -51,7 +51,10 @@ export default class Treeview extends HTMLElement { ? html`
` : '' } - item.checked = !item.checked} > + ${item.type === 'group' && mainLizmap.initialConfig.options.hideGroupCheckbox + ? '' + : html` item.checked = !item.checked} >` + }
${item.type === 'layer' ? html`` diff --git a/assets/src/modules/config/Options.js b/assets/src/modules/config/Options.js index d9d0244381..60e1d32729 100644 --- a/assets/src/modules/config/Options.js +++ b/assets/src/modules/config/Options.js @@ -29,6 +29,7 @@ const optionalProperties = { 'fixed_scale_overview_map': {type: 'boolean', default: true}, 'use_native_zoom_levels': {type: 'boolean', nullable: true, default: null}, 'hide_numeric_scale_value': {type: 'boolean', default: false}, + 'hideGroupCheckbox': { type: 'boolean', nullable: true, default: null }, }; /** @@ -58,6 +59,7 @@ export class OptionsConfig extends BaseObjectConfig { * @param {Boolean} [cfg.fixed_scale_overview_map=true] - does the Overview map have fixed scale ? * @param {Boolean} [cfg.use_native_zoom_levels=false] - does the map use native zoom levels ? * @param {Boolean} [cfg.hide_numeric_scale_value=false] - does the scale line hide numeric scale value ? + * @param {Boolean} [cfg.hideGroupCheckbox=false] - are groups checkbox hidden ? */ constructor(cfg) { if (!cfg || typeof cfg !== "object") { @@ -222,4 +224,12 @@ export class OptionsConfig extends BaseObjectConfig { get hide_numeric_scale_value() { return this._hide_numeric_scale_value; } + + /** + * Hide groups checkbox + * @type {boolean} + */ + get hideGroupCheckbox() { + return this._hideGroupCheckbox; + } } From 8dd86d290310e80e883f915da6440e39bdb69ba5 Mon Sep 17 00:00:00 2001 From: nboisteault Date: Thu, 8 Feb 2024 11:39:47 +0100 Subject: [PATCH 2/2] e2e: test "Hide checkboxes for groups" --- tests/end2end/playwright/treeview.spec.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/end2end/playwright/treeview.spec.ts b/tests/end2end/playwright/treeview.spec.ts index c0a3c55dcc..472d2bf257 100644 --- a/tests/end2end/playwright/treeview.spec.ts +++ b/tests/end2end/playwright/treeview.spec.ts @@ -49,4 +49,20 @@ test.describe('Treeview', () => { test('displays "title" defined in Lizmap plugin', async ({ page }) => { await expect(page.getByTestId('tramway_lines').locator('label')).toHaveText('Tramway lines'); }); +}); + +test.describe('Treeview mocked with "Hide checkboxes for groups" option', () => { + test('"Hide checkboxes for groups" option', async ({ page }) => { + await page.route('**/service/getProjectConfig*', async route => { + const response = await route.fetch(); + const json = await response.json(); + json.options['hideGroupCheckbox'] = 'True'; + await route.fulfill({ response, json }); + }); + + const url = '/index.php/view/map/?repository=testsrepository&project=treeview'; + await page.goto(url, { waitUntil: 'networkidle' }); + + await expect(page.locator('lizmap-treeview div.group > input')).toHaveCount(0); + }); }); \ No newline at end of file