Skip to content

Commit 519bb4e

Browse files
authored
Merge pull request #4221 from rldhont/fix-css-pointer-coarse-docks
[Bugfix] CSS: display docks with pointer: coarse
2 parents d36b652 + 759700d commit 519bb4e

File tree

2 files changed

+61
-10
lines changed

2 files changed

+61
-10
lines changed

lizmap/www/assets/css/media.css

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -287,8 +287,7 @@ only screen and ( max-device-height : 640px) {
287287

288288
#docks-wrapper{
289289
left: -1px;
290-
width: 80%;
291-
padding-top: 45px;
290+
width: 100%;
292291
box-sizing: border-box;
293292
}
294293

@@ -412,8 +411,8 @@ only screen and ( max-device-height : 640px) {
412411
background-image: url(images/glyphicons-halflings-white.png);
413412
}
414413

415-
#right-dock{
416-
margin: 0;
414+
#dock{
415+
margin-top: 45px;
417416
}
418417

419418
.digitizing .btn {

tests/end2end/playwright/viewport.spec.js

Lines changed: 58 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ test.describe('Viewport devicePixelRatio 1', () => {
3636
// Check that the WMS Max Size has been well overwrite
3737
expect(await page.evaluate(() => lizMap.mainLizmap.initialConfig.options.wmsMaxHeight)).toBe(950);
3838
expect(await page.evaluate(() => window.devicePixelRatio)).toBe(1);
39-
expect(await page.evaluate(() => lizMap.mainLizmap.map.getSize())).toStrictEqual([870,575]);
39+
expect(await page.evaluate(() => lizMap.mainLizmap.map.getSize())).toStrictEqual([870, 575]);
4040
await page.unroute('**/service/getProjectConfig*')
4141

4242
// Catch GetMaps request;
@@ -46,7 +46,7 @@ test.describe('Viewport devicePixelRatio 1', () => {
4646
if (request.url().includes('GetMap')) {
4747
GetMaps.push(request.url());
4848
}
49-
}, {times: 4});
49+
}, { times: 4 });
5050

5151
// Activate world layer
5252
await page.getByLabel('world').check();
@@ -56,7 +56,7 @@ test.describe('Viewport devicePixelRatio 1', () => {
5656

5757
// Check GetMap requests
5858
expect(GetMaps).toHaveLength(4);
59-
for(const GetMap of GetMaps) {
59+
for (const GetMap of GetMaps) {
6060
expect(GetMap).toContain('&WIDTH=790&')
6161
expect(GetMap).toContain('&HEIGHT=575&')
6262
expect(GetMap).toContain('&DPI=96&')
@@ -105,7 +105,7 @@ test.describe('Viewport devicePixelRatio 2', () => {
105105
// Check that the WMS Max Size has been well overwrite
106106
expect(await page.evaluate(() => lizMap.mainLizmap.initialConfig.options.wmsMaxHeight)).toBe(1900);
107107
expect(await page.evaluate(() => window.devicePixelRatio)).toBe(2);
108-
expect(await page.evaluate(() => lizMap.mainLizmap.map.getSize())).toStrictEqual([870,620]);
108+
expect(await page.evaluate(() => lizMap.mainLizmap.map.getSize())).toStrictEqual([870, 620]);
109109
await page.unroute('**/service/getProjectConfig*')
110110

111111
// Catch GetMaps request;
@@ -115,7 +115,7 @@ test.describe('Viewport devicePixelRatio 2', () => {
115115
if (request.url().includes('GetMap')) {
116116
GetMaps.push(request.url());
117117
}
118-
}, {times: 4});
118+
}, { times: 4 });
119119

120120
// Activate world layer
121121
await page.getByLabel('world').check();
@@ -125,11 +125,63 @@ test.describe('Viewport devicePixelRatio 2', () => {
125125

126126
// Check GetMap requests
127127
expect(GetMaps).toHaveLength(4);
128-
for(const GetMap of GetMaps) {
128+
for (const GetMap of GetMaps) {
129129
expect(GetMap).toContain('&WIDTH=870&')
130130
expect(GetMap).toContain('&HEIGHT=620&')
131131
expect(GetMap).toContain('&DPI=180&')
132132
}
133133
await page.unroute('**/service*')
134134
})
135135
})
136+
137+
test.describe('Viewport mobile', () => {
138+
test.use({
139+
hasTouch: true,
140+
isMobile: true,
141+
});
142+
test('Display docks', async ({ page }) => {
143+
// atlas project
144+
const url = '/index.php/view/map/?repository=testsrepository&project=atlas'
145+
// Go to the map
146+
await page.goto(url, { waitUntil: 'networkidle' });
147+
148+
// Check menu and menu toggle button
149+
await expect(await page.locator('#mapmenu')).not.toBeInViewport();
150+
await expect(await page.locator('#menuToggle')).toBeVisible();
151+
await expect(await page.locator('#menuToggle')).not.toHaveClass('opened');
152+
await page.locator('#menuToggle').click();
153+
154+
// Open menu
155+
await expect(await page.locator('#menuToggle')).toHaveClass('opened');
156+
await expect(await page.locator('#mapmenu')).toBeInViewport();
157+
await expect(await page.getByRole('link', { name: 'atlas' })).toBeVisible();
158+
159+
// Open atlas
160+
await page.getByRole('link', { name: 'atlas', exact: true }).click();
161+
await expect(await page.locator('#menuToggle')).not.toHaveClass('opened');
162+
await expect(await page.locator('#mapmenu')).not.toBeInViewport();
163+
await expect(await page.locator('#right-dock')).toBeVisible();
164+
await expect(await page.locator('#right-dock')).toBeInViewport();
165+
166+
// Choose a feature and check getFeatureInfo
167+
let getFeatureInfoRequestPromise = page.waitForRequest(request => request.method() === 'POST' && request?.postData().includes('GetFeatureInfo'));
168+
await page.locator('#liz-atlas-select').selectOption('2');
169+
let getFeatureInfoRequest = await getFeatureInfoRequestPromise;
170+
let getFeatureInfoResponse = await getFeatureInfoRequest.response();
171+
await expect(await getFeatureInfoResponse.headerValue('content-type')).toContain('text/html');
172+
await expect(await page.locator('#liz-atlas-item-detail .lizmapPopupContent')).toBeInViewport();
173+
await expect(await page.locator('#liz-atlas-item-detail .lizmapPopupContent')).toContainText('MOSSON');
174+
// Close atlas
175+
await page.locator('#right-dock-close').click();
176+
await expect(await page.locator('#right-dock')).not.toBeInViewport();
177+
await expect(await page.locator('#right-dock')).not.toBeVisible();
178+
179+
// Test permalink (mini-dock)
180+
await expect(await page.locator('#permalink')).not.toBeVisible();
181+
await page.locator('#menuToggle').click();
182+
await page.getByRole('link', { name: 'Permalink' }).click();
183+
await expect(await page.locator('#permalink')).toBeVisible();
184+
await expect(await page.locator('#permalink')).toBeInViewport();
185+
await expect(await page.locator('#tab-share-permalink')).toBeVisible();
186+
})
187+
})

0 commit comments

Comments
 (0)