diff options
author | Claude Paroz <claude@2xlibre.net> | 2022-12-29 08:30:30 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-29 08:30:30 +0100 |
commit | 1833eb3f3e3bda5052637f1a51a27fa1b11b6871 (patch) | |
tree | 427a50c5c20d673f902672b3dff5ddad9b146bf4 /django/contrib/gis | |
parent | 279967ec859a9a5240318cf29a077539b0e3139f (diff) | |
download | django-1833eb3f3e3bda5052637f1a51a27fa1b11b6871.tar.gz |
Upgraded OpenLayers to v.7.2.2.
Diffstat (limited to 'django/contrib/gis')
-rw-r--r-- | django/contrib/gis/forms/widgets.py | 4 | ||||
-rw-r--r-- | django/contrib/gis/static/gis/js/OLMapWidget.js | 57 |
2 files changed, 31 insertions, 30 deletions
diff --git a/django/contrib/gis/forms/widgets.py b/django/contrib/gis/forms/widgets.py index 5f169e9cb3..49ca48794b 100644 --- a/django/contrib/gis/forms/widgets.py +++ b/django/contrib/gis/forms/widgets.py @@ -102,12 +102,12 @@ class OpenLayersWidget(BaseGeometryWidget): class Media: css = { "all": ( - "https://cdnjs.cloudflare.com/ajax/libs/ol3/4.6.5/ol.css", + "https://cdn.jsdelivr.net/npm/ol@v7.2.2/ol.css", "gis/css/ol3.css", ) } js = ( - "https://cdnjs.cloudflare.com/ajax/libs/ol3/4.6.5/ol.js", + "https://cdn.jsdelivr.net/npm/ol@v7.2.2/dist/ol.js", "gis/js/OLMapWidget.js", ) diff --git a/django/contrib/gis/static/gis/js/OLMapWidget.js b/django/contrib/gis/static/gis/js/OLMapWidget.js index fe944a4a87..b750327409 100644 --- a/django/contrib/gis/static/gis/js/OLMapWidget.js +++ b/django/contrib/gis/static/gis/js/OLMapWidget.js @@ -1,39 +1,40 @@ /* global ol */ 'use strict'; -function GeometryTypeControl(opt_options) { +class GeometryTypeControl extends ol.control.Control { // Map control to switch type when geometry type is unknown - const options = opt_options || {}; + constructor(opt_options) { + const options = opt_options || {}; - const element = document.createElement('div'); - element.className = 'switch-type type-' + options.type + ' ol-control ol-unselectable'; - if (options.active) { - element.classList.add("type-active"); - } - - const self = this; - const switchType = function(e) { - e.preventDefault(); - if (options.widget.currentGeometryType !== self) { - options.widget.map.removeInteraction(options.widget.interactions.draw); - options.widget.interactions.draw = new ol.interaction.Draw({ - features: options.widget.featureCollection, - type: options.type - }); - options.widget.map.addInteraction(options.widget.interactions.draw); - options.widget.currentGeometryType.element.classList.remove('type-active'); - options.widget.currentGeometryType = self; + const element = document.createElement('div'); + element.className = 'switch-type type-' + options.type + ' ol-control ol-unselectable'; + if (options.active) { element.classList.add("type-active"); } - }; - element.addEventListener('click', switchType, false); - element.addEventListener('touchstart', switchType, false); + super({ + element: element, + target: options.target + }); + const self = this; + const switchType = function(e) { + e.preventDefault(); + if (options.widget.currentGeometryType !== self) { + options.widget.map.removeInteraction(options.widget.interactions.draw); + options.widget.interactions.draw = new ol.interaction.Draw({ + features: options.widget.featureCollection, + type: options.type + }); + options.widget.map.addInteraction(options.widget.interactions.draw); + options.widget.currentGeometryType.element.classList.remove('type-active'); + options.widget.currentGeometryType = self; + element.classList.add("type-active"); + } + }; - ol.control.Control.call(this, { - element: element - }); -}; -ol.inherits(GeometryTypeControl, ol.control.Control); + element.addEventListener('click', switchType, false); + element.addEventListener('touchstart', switchType, false); + } +} // TODO: allow deleting individual features (#8972) class MapWidget { |