]> ToastFreeware Gitweb - philipp/winterrodeln/mediawiki_extensions/wrmap.git/commitdiff
Now the DOM for the popup is created in JavaScript which eases to use of more maps...
authorPhilipp Spitzer <philipp@spitzer.priv.at>
Wed, 8 Nov 2023 21:24:40 +0000 (22:24 +0100)
committerPhilipp Spitzer <philipp@spitzer.priv.at>
Wed, 8 Nov 2023 21:24:40 +0000 (22:24 +0100)
src/wrmap.ts
wrmap.body.php

index b62d2a61b09c8c756b13c2a2310c47d4e78e9aaf..01bbf8d4e03e4cb39f16a33c23b159562b17294c 100644 (file)
@@ -193,9 +193,16 @@ function init_wrmap(_: number, jq_map_element: HTMLElement) {
 
        // popup overlay
        // -------------
-       let popup_container = document.getElementById('popup')!;
-       let popup_content = document.getElementById('popup-content')!;
-       let popup_closer = document.getElementById('popup-closer')!;
+
+       let popup_container = document.createElement('div');
+       popup_container.setAttribute('class', 'ol-popup');
+       popup_container = jq_map_element.insertAdjacentElement('afterend', popup_container) as HTMLDivElement;
+       let popup_closer = document.createElement('a');
+       popup_closer.setAttribute('href', '#');
+       popup_closer.setAttribute('class', 'ol-popup-closer');
+       popup_closer = popup_container.insertAdjacentElement('beforeend', popup_closer) as HTMLAnchorElement;
+       let popup_content = document.createElement('div');
+       popup_content = popup_container.insertAdjacentElement('beforeend', popup_content) as HTMLDivElement;
        let popup_overlay = new OlOverlay({element: popup_container, autoPan: {animation: {duration: 250}}});
        popup_closer.onclick = function() {popup_overlay.setPosition(undefined); popup_closer.blur(); return false;};
 
index ab0f1788268b846b93cfb99b0bdab7bd3a397ea7..78669649af178cf5edd711f3682e1ecb847a1f66 100644 (file)
@@ -283,11 +283,7 @@ class WrBaseMap {
                $div_map->appendElement('div', array())->appendText(wfMessage('wrmap-loading')->text());
                // data
                $div_map->appendElement('div', array('style' => 'height: 0px; display:none;'))->appendText($json_string);
-               // popup
-               $div_popup = $doc->appendElement('div', array('id' => 'popup', 'class' => 'ol-popup'));
-               $div_popup->appendElement('a', array('id' => 'popup-closer', 'href' => '#', 'class' => 'ol-popup-closer'));
-               $div_popup->appendElement('div', array('id' => 'popup-content'));
-               return array($doc->saveHTML($div_map) . $doc->saveHTML($div_popup), 'markerType' => 'nowiki');
+               return array($doc->saveHTML($div_map), 'markerType' => 'nowiki');
        }
 }