From e4ad0b48701e73a7438024d8d3a0e59e35972a33 Mon Sep 17 00:00:00 2001
From: jshjelse <jshjelse@stud.ntnu.no>
Date: Sun, 8 Oct 2023 13:38:41 +0200
Subject: [PATCH 1/2] Fix

---
 javascript/union.js | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/javascript/union.js b/javascript/union.js
index 1e38d20..c3cff44 100644
--- a/javascript/union.js
+++ b/javascript/union.js
@@ -6,12 +6,9 @@ function union() {
     var name = document.getElementById("unionName").value;
 
     // MÃ¥ konverteres fra feature collection til multipolygon:
-    var coords1 = featureCollectionToMultiPolygon(layer1);
-    var coords2 = featureCollectionToMultiPolygon(layer2);
+    var multiPolygon1 = featureCollectionToMultiPolygon(layer1);
+    var multiPolygon2 = featureCollectionToMultiPolygon(layer2);
     
-    var multiPolygon1 = turf.multiPolygon(coords1);
-    var multiPolygon2 = turf.multiPolygon(coords2);
-
     try {
         var union = turf.union(multiPolygon1, multiPolygon2);
 
-- 
GitLab


From 791b219fc966f5016082e37294cc22d8f74fc247 Mon Sep 17 00:00:00 2001
From: jshjelse <jshjelse@stud.ntnu.no>
Date: Sun, 8 Oct 2023 18:47:52 +0200
Subject: [PATCH 2/2] =?UTF-8?q?Kontroll=20p=C3=A5=20alle=20operasjoner?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 index.html               |  6 +++---
 javascript/buffer.js     | 18 ++++++++++++++++++
 javascript/difference.js | 15 +++++++++++++++
 javascript/dissolve.js   | 13 +++++++++++++
 javascript/extract.js    | 29 +++++++++++++++++++++++------
 javascript/intersect.js  | 15 +++++++++++++++
 javascript/union.js      | 15 +++++++++++++++
 7 files changed, 102 insertions(+), 9 deletions(-)

diff --git a/index.html b/index.html
index 3d7cc58..4c8967e 100644
--- a/index.html
+++ b/index.html
@@ -100,7 +100,7 @@
                         <p>Choose a name for the new buffer:</p>
                         <input id="bufferName"><br>
 
-                        <p>Do you want to dissolve the layers? <input type="checkbox" id="bufferCheck"></p>
+                        <p>Do you want to dissolve the buffers? <input type="checkbox" id="bufferCheck"></p>
 
                         <button class="button" style="font-size: 25px;" onclick="makeBuffer()">Make buffer</button>
                     </div>
@@ -115,7 +115,7 @@
                             </svg>
                         </div>
 
-                        <p>Which layer do you want to remove features from:</p>
+                        <p>Which layer do you want to remove areas from:</p>
                         <select id="differenceSelect_1"></select>
 
                         <p>Which layer do you want to remove from the first one:</p>
@@ -160,7 +160,7 @@
                         <select id="extractSelect"></select>
 
                         <p>Which feature will you extract to a new layer:</p>
-                        <select id="propertySelect"></select>
+                        <select id="featureSelect"></select>
 
                         <p>Which value will you sort out:</p>
                         <select id="valueSelect"></select>
diff --git a/javascript/buffer.js b/javascript/buffer.js
index 63abc67..fe26755 100644
--- a/javascript/buffer.js
+++ b/javascript/buffer.js
@@ -4,6 +4,24 @@ https://turfjs.org/docs/
 */
 
 function makeBuffer() {
+    
+    // Sjekk av faktisk og gyldig input:
+    
+    var regex_1 = /^[0-9]+$/;
+    var regex_2 = /^[a-zA-Z_0-9]+$/;
+    
+    if (document.getElementById("bufferSelect").value == "- - -") {
+        return alert("You need to choose a layer!");
+    } else if (!document.getElementById("bufferDistance").value) {
+        return alert("You need to set a distance as an integer!");
+    } else if (!document.getElementById("bufferDistance").value.match(regex_1)) {
+        return alert("You need to set a distance as an integer!");
+    } else if (!document.getElementById("bufferName").value) {
+        return alert("You need to choose a name for the new layer!");
+    } else if (!document.getElementById("bufferName").value.match(regex_2)) {
+        return alert("The new name must consist of normal letters!");
+    }
+
     var input = document.getElementById("bufferSelect").value;
     var layer = overlayMaps[input].toGeoJSON();
     var distance = parseFloat(document.getElementById("bufferDistance").value);
diff --git a/javascript/difference.js b/javascript/difference.js
index 6b9f6d3..d0abe02 100644
--- a/javascript/difference.js
+++ b/javascript/difference.js
@@ -1,4 +1,19 @@
 function difference() {
+
+    // Sjekk av faktisk og gyldig input:
+
+    var regex = /^[a-zA-Z_0-9]+$/;
+
+    if (document.getElementById("differenceSelect_1").value == "- - -") {
+        return alert("You need to choose the first layer!");
+    } else if (document.getElementById("differenceSelect_2").value == "- - -") {
+        return alert("You need to choose the second layer!");
+    } else if (!document.getElementById("differenceName").value) {
+        return alert("You need to choose a name for the new layer!");
+    } else if (!document.getElementById("differenceName").value.match(regex)) {
+        return alert("The new name must consist of normal letters!");
+    }
+    
     var input1 = document.getElementById("differenceSelect_1").value;
     var layer1 = overlayMaps[input1].toGeoJSON();
     var input2 = document.getElementById("differenceSelect_2").value;
diff --git a/javascript/dissolve.js b/javascript/dissolve.js
index b81f94c..653845c 100644
--- a/javascript/dissolve.js
+++ b/javascript/dissolve.js
@@ -1,4 +1,17 @@
 function dissolve() {
+
+    // Sjekk av faktisk og gyldig input:
+
+    var regex = /^[a-zA-Z_0-9]+$/;
+
+    if (document.getElementById("dissolveSelect").value == "- - -") {
+        return alert("You need to choose a layer!");
+    } else if (!document.getElementById("dissolveName").value) {
+        return alert("You need to choose a name for the new layer!");
+    } else if (!document.getElementById("dissolveName").value.match(regex)) {
+        return alert("The new name must consist of normal letters!");
+    }
+
     var input = document.getElementById("dissolveSelect").value;
     var layer = overlayMaps[input].toGeoJSON();
     var name = document.getElementById("dissolveName").value;
diff --git a/javascript/extract.js b/javascript/extract.js
index 51fdfe2..9ff6b31 100644
--- a/javascript/extract.js
+++ b/javascript/extract.js
@@ -2,7 +2,7 @@ document.getElementById("extractSelect").addEventListener("change", () => {
     var input = document.getElementById("extractSelect").value;
 
     if (input == "- - -") {
-        var select = document.getElementById("propertySelect");
+        var select = document.getElementById("featureSelect");
         select.innerHTML = "";
         select.add(new Option(text="- - -"));
     } else {
@@ -18,7 +18,7 @@ document.getElementById("extractSelect").addEventListener("change", () => {
             }
         }
         
-        var select = document.getElementById("propertySelect");
+        var select = document.getElementById("featureSelect");
         select.innerHTML = "";
         select.add(new Option(text="- - -"));
 
@@ -28,7 +28,7 @@ document.getElementById("extractSelect").addEventListener("change", () => {
     }
 })
 
-document.getElementById("propertySelect").addEventListener("change", () => {
+document.getElementById("featureSelect").addEventListener("change", () => {
     var input = document.getElementById("extractSelect").value;
 
     if (input == "- - -") {
@@ -37,7 +37,7 @@ document.getElementById("propertySelect").addEventListener("change", () => {
         select.add(new Option(text="- - -"));
     } else {
         var layer = overlayMaps[input].toGeoJSON();
-        var property = document.getElementById("propertySelect").value;
+        var property = document.getElementById("featureSelect").value;
 
         var values = [];
 
@@ -58,9 +58,26 @@ document.getElementById("propertySelect").addEventListener("change", () => {
 })
 
 function extract() {
+    
+    // Sjekk av faktisk og gyldig input:
+
+    var regex = /^[a-zA-Z_0-9]+$/;
+
+    if (document.getElementById("extractSelect").value == "- - -") {
+        return alert("You need to choose a layer!");
+    } else if (document.getElementById("featureSelect").value == "- - -") {
+        return alert("You need to choose a feature!");
+    } else if (document.getElementById("valueSelect").value == "- - -") {
+        return alert("You need to choose a value!");
+    } else if (!document.getElementById("extractName").value) {
+        return alert("You need to choose a name for the new layer!");
+    } else if (!document.getElementById("extractName").value.match(regex)) {
+        return alert("The new name must consist of normal letters!");
+    }
+
     var input = document.getElementById("extractSelect").value;
     var layer = overlayMaps[input].toGeoJSON();
-    var property = document.getElementById("propertySelect").value;
+    var property = document.getElementById("featureSelect").value;
     var value = document.getElementById("valueSelect").value;
     var name = document.getElementById("extractName").value;
 
@@ -90,7 +107,7 @@ function extract() {
 function resetInput() {
     fillSelect("extractSelect");
 
-    var select = document.getElementById("propertySelect");
+    var select = document.getElementById("featureSelect");
     select.innerHTML = "";
 
     var select = document.getElementById("valueSelect");
diff --git a/javascript/intersect.js b/javascript/intersect.js
index d04e02d..100fb2a 100644
--- a/javascript/intersect.js
+++ b/javascript/intersect.js
@@ -1,4 +1,19 @@
 function intersection() {
+
+    // Sjekk av faktisk og gyldig input:
+
+    var regex = /^[a-zA-Z_0-9]+$/;
+
+    if (document.getElementById("intersectionSelect_1").value == "- - -") {
+        return alert("You need to choose the first layer!");
+    } else if (document.getElementById("intersectionSelect_2").value == "- - -") {
+        return alert("You need to choose the secondt layer!");
+    } else if (!document.getElementById("intersectionName").value) {
+        return alert("You need to choose a name for the new layer!");
+    } else if (!document.getElementById("intersectionName").value.match(regex)) {
+        return alert("The new name must consist of normal letters!");
+    }
+
     var input1 = document.getElementById("intersectionSelect_1").value;
     var layer1 = overlayMaps[input1].toGeoJSON();
     var input2 = document.getElementById("intersectionSelect_2").value;
diff --git a/javascript/union.js b/javascript/union.js
index c3cff44..3369f8a 100644
--- a/javascript/union.js
+++ b/javascript/union.js
@@ -1,4 +1,19 @@
 function union() {
+
+    // Sjekk av faktisk og gyldig input:
+
+    var regex = /^[a-zA-Z_0-9]+$/;
+
+    if (document.getElementById("unionSelect_1").value == "- - -") {
+        return alert("You need to choose the first layer!");
+    } else if (document.getElementById("unionSelect_2").value == "- - -") {
+        return alert("You need to choose the secondt layer!");
+    } else if (!document.getElementById("unionName").value) {
+        return alert("You need to choose a name for the new layer!");
+    } else if (!document.getElementById("unionName").value.match(regex)) {
+        return alert("The new name must consist of normal letters!");
+    }
+
     var input1 = document.getElementById("unionSelect_1").value;
     var layer1 = overlayMaps[input1].toGeoJSON();
     var input2 = document.getElementById("unionSelect_2").value;
-- 
GitLab