diff --git a/assets/src/modules/Permalink.js b/assets/src/modules/Permalink.js index 8f5c54bb8c..24578ad1ca 100644 --- a/assets/src/modules/Permalink.js +++ b/assets/src/modules/Permalink.js @@ -143,10 +143,12 @@ export default class Permalink { if(itemsInURL && itemsInURL.includes(encodeURIComponent(item.name))){ const itemIndex = itemsInURL.indexOf(encodeURIComponent(item.name)); item.checked = true; - if(item.type === 'layer'){ + if (item.type === 'layer' && stylesInURL[itemIndex]) { item.wmsSelectedStyleName = decodeURIComponent(stylesInURL[itemIndex]); } - item.opacity = parseFloat(opacitiesInURL[itemIndex]); + if (opacitiesInURL[itemIndex]) { + item.opacity = parseFloat(opacitiesInURL[itemIndex]); + } } else { item.checked = false; } @@ -213,7 +215,7 @@ export default class Permalink { for (const item of lizMap.mainLizmap.state.rootMapGroup.findMapLayersAndGroups()) { if (item.checked){ - itemsVisibility.push(item.name); + itemsVisibility.push(encodeURIComponent(item.name)); itemsStyle.push(item.wmsSelectedStyleName); itemsOpacity.push(item.opacity); } diff --git a/tests/end2end/playwright/permalink.spec.ts b/tests/end2end/playwright/permalink.spec.ts index 1864dc390a..048a07a85a 100644 --- a/tests/end2end/playwright/permalink.spec.ts +++ b/tests/end2end/playwright/permalink.spec.ts @@ -378,7 +378,7 @@ test.describe('Permalink', () => { await expect(page.locator('#sub-dock .btn-opacity-layer.active')).toHaveText('60'); }); - test('Permalink parameters error: not enough styles', async ({ page }) => { + test('Permalink parameters error: not enough styles -> No errors', async ({ page }) => { const baseUrl = '/index.php/view/map?repository=testsrepository&project=permalink' const bbox = '3.7980645260916805,43.59756940064654,3.904383263124536,43.672963842067254' const layers = 'sousquartiers,Les%20quartiers%20%C3%A0%20Montpellier' @@ -388,11 +388,11 @@ test.describe('Permalink', () => { await page.goto(url, { waitUntil: 'networkidle' }); // Errors - await expect(page.locator('p.error-msg')).toHaveCount(1); - await expect(page.locator('#switcher lizmap-treeview ul li')).toHaveCount(0); + await expect(page.locator('p.error-msg')).toHaveCount(0); + await expect(page.locator('#switcher lizmap-treeview ul li')).not.toHaveCount(0); }); - test('Permalink parameters error: not enough opacities', async ({ page }) => { + test('Permalink parameters error: not enough opacities -> No errors', async ({ page }) => { const baseUrl = '/index.php/view/map?repository=testsrepository&project=permalink' const bbox = '3.7980645260916805,43.59756940064654,3.904383263124536,43.672963842067254' const layers = 'sousquartiers,Les%20quartiers%20%C3%A0%20Montpellier' @@ -402,7 +402,7 @@ test.describe('Permalink', () => { await page.goto(url, { waitUntil: 'networkidle' }); // Errors - await expect(page.locator('p.error-msg')).toHaveCount(1); - await expect(page.locator('#switcher lizmap-treeview ul li')).toHaveCount(0); + await expect(page.locator('p.error-msg')).toHaveCount(0); + await expect(page.locator('#switcher lizmap-treeview ul li')).not.toHaveCount(0); }); });