From 8689c90e52470344f9ab15b32bd0944ae6f48db6 Mon Sep 17 00:00:00 2001 From: frauch Date: Tue, 30 Apr 2024 12:35:58 +0200 Subject: [PATCH 1/6] remove Bug that keeps oldGeometry even after saving --- .../Resources/public/mapbender.element.digitizer.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Mapbender/DigitizerBundle/Resources/public/mapbender.element.digitizer.js b/src/Mapbender/DigitizerBundle/Resources/public/mapbender.element.digitizer.js index ea293fb4..1ae618c9 100644 --- a/src/Mapbender/DigitizerBundle/Resources/public/mapbender.element.digitizer.js +++ b/src/Mapbender/DigitizerBundle/Resources/public/mapbender.element.digitizer.js @@ -231,6 +231,7 @@ revertGeometry: function(feature) { feature.setGeometry(feature.get('oldGeometry').clone()); feature.set('dirty', false); + feature.set('oldGeometry', null); }, /** * Called by both _deactivateSchema (schema selector switch) and deactivate (sidepane interaction) @@ -538,6 +539,7 @@ feature.setGeometry(geometry); widget._replaceItemData(itemSchema, feature, savedItem.properties || {}); feature.set('dirty', false); + feature.set('oldGeometry', null); widget.tableRenderer.refreshRow(feature, false); widget._saveEvent(itemSchema, feature, widget._getUniqueItemId(feature)); } From 44c146d8dbb44672707d61c32e00ec337185adcc Mon Sep 17 00:00:00 2001 From: frauch Date: Tue, 30 Apr 2024 12:39:49 +0200 Subject: [PATCH 2/6] update Changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ff87f11..ba38480b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ ## next release +* Remove bug that allowed a feature to revert to a status it had before the last save. * prevent Draw Donut On Non-Digitizer Features ([PR#120](https://github.com/mapbender/mapbender-digitizer/pull/120)) * Prevent self intersection of polygons not only on modification, but on creation as well ([PR#118](https://github.com/mapbender/mapbender-digitizer/pull/118)) * Allow leaving modification mode on pressing escape ([PR#118](https://github.com/mapbender/mapbender-digitizer/pull/118)) From 7825837aee0fdd0982a9a3d7ff7a8ebf43c5c071 Mon Sep 17 00:00:00 2001 From: Felix Rauch Date: Tue, 30 Apr 2024 12:41:54 +0200 Subject: [PATCH 3/6] Update CHANGELOG.md --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ba38480b..bfe38e8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## next release -* Remove bug that allowed a feature to revert to a status it had before the last save. -* prevent Draw Donut On Non-Digitizer Features ([PR#120](https://github.com/mapbender/mapbender-digitizer/pull/120)) +* Remove bug that allowed a feature to revert to a status it had before the last save. ([PR#123] https://github.com/mapbender/mapbender-digitizer/pull/123) +* Prevent Draw Donut On Non-Digitizer Features ([PR#120](https://github.com/mapbender/mapbender-digitizer/pull/120)) * Prevent self intersection of polygons not only on modification, but on creation as well ([PR#118](https://github.com/mapbender/mapbender-digitizer/pull/118)) * Allow leaving modification mode on pressing escape ([PR#118](https://github.com/mapbender/mapbender-digitizer/pull/118)) * Allow deletion of vertices on single click ([PR#118](https://github.com/mapbender/mapbender-digitizer/pull/118)) From 0ac9528ba3d4ce28ec92b63115a22c0a1854a829 Mon Sep 17 00:00:00 2001 From: frauch Date: Wed, 15 May 2024 10:11:37 +0200 Subject: [PATCH 4/6] revert removing of old geometry on revertGeometry --- .../Resources/public/mapbender.element.digitizer.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Mapbender/DigitizerBundle/Resources/public/mapbender.element.digitizer.js b/src/Mapbender/DigitizerBundle/Resources/public/mapbender.element.digitizer.js index 1ae618c9..dacdba80 100644 --- a/src/Mapbender/DigitizerBundle/Resources/public/mapbender.element.digitizer.js +++ b/src/Mapbender/DigitizerBundle/Resources/public/mapbender.element.digitizer.js @@ -231,7 +231,6 @@ revertGeometry: function(feature) { feature.setGeometry(feature.get('oldGeometry').clone()); feature.set('dirty', false); - feature.set('oldGeometry', null); }, /** * Called by both _deactivateSchema (schema selector switch) and deactivate (sidepane interaction) From c7e85d9692886b1b91cf4a9c94db20b5b1cab1e9 Mon Sep 17 00:00:00 2001 From: frauch Date: Thu, 13 Jun 2024 12:12:05 +0200 Subject: [PATCH 5/6] dont show context menu when in editing mode --- src/Mapbender/DigitizerBundle/Resources/public/contextMenu.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Mapbender/DigitizerBundle/Resources/public/contextMenu.js b/src/Mapbender/DigitizerBundle/Resources/public/contextMenu.js index 6001d1c3..4ce9a833 100644 --- a/src/Mapbender/DigitizerBundle/Resources/public/contextMenu.js +++ b/src/Mapbender/DigitizerBundle/Resources/public/contextMenu.js @@ -78,7 +78,7 @@ getMenuItems: function(feature) { var items = []; var widget = this.widget; - if (feature.get('dirty') && feature.get('oldGeometry')) { + if (feature.get('dirty') && feature.get('oldGeometry') && !feature.get("editing")) { // show contextmenu only when feature not in editing mode items.push({ text: Mapbender.trans('mb.digitizer.revert.geometry'), callback: function() { From 6a2d0a6d92db6c9ab9eaa7b97c6130fdf6d0b7e2 Mon Sep 17 00:00:00 2001 From: frauch Date: Thu, 13 Jun 2024 12:12:28 +0200 Subject: [PATCH 6/6] set oldGeometry after saving feature --- .../Resources/public/mapbender.element.digitizer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Mapbender/DigitizerBundle/Resources/public/mapbender.element.digitizer.js b/src/Mapbender/DigitizerBundle/Resources/public/mapbender.element.digitizer.js index 666f60ea..bbe64963 100644 --- a/src/Mapbender/DigitizerBundle/Resources/public/mapbender.element.digitizer.js +++ b/src/Mapbender/DigitizerBundle/Resources/public/mapbender.element.digitizer.js @@ -538,7 +538,7 @@ feature.setGeometry(geometry); widget._replaceItemData(itemSchema, feature, savedItem.properties || {}); feature.set('dirty', false); - feature.set('oldGeometry', null); + feature.set('oldGeometry', geometry); widget.tableRenderer.refreshRow(feature, false); widget._saveEvent(itemSchema, feature, widget._getUniqueItemId(feature)); }