Skip to content

Commit 226cbae

Browse files
authored
feat(controlList): add controllist widget for classic mode (#300)
* feat(controlList): add controllist widget for classic mode * fix le truc d'elias
1 parent 5c28f3d commit 226cbae

File tree

8 files changed

+72
-17
lines changed

8 files changed

+72
-17
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "geopf-extensions-openlayers",
33
"description": "French Geoportal Extensions for OpenLayers libraries",
4-
"version": "1.0.0-beta.1-296",
4+
"version": "1.0.0-beta.1-300",
55
"date": "11/12/2024",
66
"module": "src/index.js",
77
"directories": {},

samples-src/pages/tests/Default/pages-ol-modules-default.html

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@
4444
<script src="{{ baseurl }}/dist/modules/GpfExtOlCatalog.js"></script>
4545
<link rel="stylesheet" href="{{ baseurl }}/dist/modules/GpfExtOlTerritories.css" />
4646
<script src="{{ baseurl }}/dist/modules/GpfExtOlTerritories.js"></script>
47+
<link rel="stylesheet" href="{{ baseurl }}/dist/modules/GpfExtOlControlList.css" />
48+
<script src="{{ baseurl }}/dist/modules/GpfExtOlControlList.js"></script>
4749
{{/content}}
4850

4951
{{#content "head"}}
@@ -54,7 +56,7 @@
5456
<style>
5557
div#map {
5658
width: 100%;
57-
height: 800px;
59+
height: 600px;
5860
}
5961
</style>
6062
{{/content}}
@@ -108,16 +110,18 @@ <h2>Ajout de tous les widgets</h2>
108110
position : "top-left"
109111
});
110112
map.addControl(overview);
111-
113+
112114
var drawing = new ol.control.Drawing({
113115
draggable: true,
114-
position : "bottom-left"
116+
position : "bottom-left",
117+
listable: true,
115118
});
116119
map.addControl(drawing);
117120

118121
var iso = new ol.control.Isocurve({
119122
draggable: true,
120-
position : "bottom-left"
123+
position : "bottom-left",
124+
listable: true,
121125
});
122126
map.addControl(iso);
123127

@@ -148,13 +152,15 @@ <h2>Ajout de tous les widgets</h2>
148152
map.addControl(route);
149153

150154
var feature = new ol.control.GetFeatureInfo({
151-
position : "top-left"
155+
position : "top-left",
156+
listable: true,
152157
});
153158
map.addControl(feature);
154159

155160
var reverse = new ol.control.ReverseGeocode({
156161
draggable: true,
157-
position : "top-right"
162+
position : "top-right",
163+
listable: true,
158164
});
159165
map.addControl(reverse);
160166

@@ -202,8 +208,15 @@ <h2>Ajout de tous les widgets</h2>
202208
auto: true
203209
});
204210
map.addControl(territories);
211+
212+
var controlList = new ol.control.ControlList({
213+
draggable: false,
214+
position: "bottom-right",
215+
});
216+
map.addControl(controlList);
205217
};
206218

219+
207220
Gp.Services.getConfig({
208221
customConfigFile : "{{ configurl }}",
209222
callbackSuffix : "",

samples-src/pages/tests/Default/pages-ol-modules-dsfr-default.html

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ <h2>Ajout de tous les widgets</h2>
7171

7272
{{#content "js"}}
7373
<script type="text/javascript">
74-
74+
7575
var createMap = function () {
7676
// on cache l'image de chargement du Géoportail.
7777
document.getElementById("map").style.backgroundImage = "none";
@@ -161,7 +161,8 @@ <h2>Ajout de tous les widgets</h2>
161161
map.addControl(route);
162162

163163
var feature = new ol.control.GetFeatureInfo({
164-
position : "top-left"
164+
position : "top-left",
165+
listable: true,
165166
});
166167
map.addControl(feature);
167168

src/packages/CSS/Controls/ControlList/DSFRcontrolListStyle.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
button[id^="GPshowControlListPicto-"][aria-pressed="true"] + dialog {
2+
width: 370px;
3+
}
4+
15
div[id^="GPcontrolList-"] .GPshowOpen > span {
26
font-size: 32px;
37
position: absolute;

src/packages/CSS/Controls/ControlList/GPFcontrolList.css

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ button[id^="GPshowControlListPicto-"][aria-pressed="true"] + dialog {
1111
flex-direction: column;
1212
visibility: visible;
1313
opacity: 100%;
14-
width: 370px;
1514
}
1615

1716
dialog[id^="GPcontrolListPanel-"] {
Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,37 @@
1-
/* En attente d'implementation */
2-
div[id^="GPcontrolList-"] {
3-
display: none;
1+
div[id^="GPcontrolList-"] .GPshowOpen > span {
2+
font-size: 24px;
3+
color: white;
4+
display: block;
5+
height: 24px;
6+
line-height: 24px;
7+
pointer-events: none;
8+
}
9+
10+
button[id^="GPshowControlListPicto-"][aria-pressed="true"] + dialog {
11+
width: 200px;
12+
}
13+
14+
.GPcontrolListPanelClose {
15+
background-image: url("img/close.png");
16+
}
17+
18+
dialog[id^="GPcontrolListPanel-"] .gpf-panel__content > div {
19+
display: flex;
20+
flex-direction: row;
21+
column-gap: 1rem;
22+
align-items: center;
23+
padding: 0.5rem 0.5rem;
24+
}
25+
26+
dialog[id^="GPcontrolListPanel-"] .gpf-panel__content > div:hover {
27+
background-color: #EEE;
28+
cursor: pointer;
29+
}
30+
31+
dialog[id^="GPcontrolListPanel-"] .gpf-panel__content > div > button {
32+
flex-shrink: 0;
33+
}
34+
35+
dialog[id^="GPcontrolListPanel-"] .gpf-panel__content > div > button:hover {
36+
background-color: rgba(0,60,136,0.5);
437
}
660 Bytes
Loading

src/packages/Controls/ControlList/ControlListDOM.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,12 @@ var ControlListDOM = {
172172
* @returns {DOMElement} DOM element
173173
*/
174174
_createControlListPanelControl : function (control) {
175-
const controlContainer = control.getContainer();
175+
let controlContainer;
176+
try {
177+
controlContainer = control.getContainer();
178+
} catch (e) {
179+
controlContainer = control.container;
180+
}
176181
var container = document.createElement("div");
177182
var btn = controlContainer.querySelector(".GPshowOpen").cloneNode();
178183
btn.id = btn.id + "-controllist";
@@ -181,12 +186,12 @@ var ControlListDOM = {
181186
var divText = document.createElement("div");
182187
var spanTitle = document.createElement("span");
183188
divText.appendChild(spanTitle);
184-
if (controlContainer.querySelector(".GPpanelTitle")) {
189+
if (controlContainer.querySelector(".GPshowOpen").ariaLabel) {
190+
spanTitle.innerText = controlContainer.querySelector(".GPshowOpen").ariaLabel;
191+
} else if (controlContainer.querySelector(".GPpanelTitle")) {
185192
spanTitle.innerText = controlContainer.querySelector(".GPpanelTitle").innerText;
186193
} else if (controlContainer.querySelector("[class^='gpf-btn-header-']")) {
187194
spanTitle.innerText = controlContainer.querySelector("[class^='gpf-btn-header-']").title;
188-
} else {
189-
spanTitle.innerText = controlContainer.querySelector(".GPshowOpen").ariaLabel;
190195
}
191196
if (control.description) {
192197
var spanDescription = document.createElement("span");

0 commit comments

Comments
 (0)