From c193375b916fb7d2b62a4dcefb4e4cfda890bddc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timoth=C3=A9e=20Poussard?= <tpoussard@neogeo.fr>
Date: Mon, 27 Sep 2021 12:44:00 +0200
Subject: [PATCH] adjust routing for project and feature

---
 src/store/modules/feature.js       | 40 +++++++++---------
 src/views/feature/Feature_edit.vue | 11 -----
 src/views/project/Project_edit.vue | 68 ++++++++++++++----------------
 3 files changed, 53 insertions(+), 66 deletions(-)

diff --git a/src/store/modules/feature.js b/src/store/modules/feature.js
index b48b9ee9..b1ab9cac 100644
--- a/src/store/modules/feature.js
+++ b/src/store/modules/feature.js
@@ -104,10 +104,11 @@ const feature = {
           .then((response) => {
             if (response.status === 200 && response.data) {
               router.push({
-                name: "project_detail",
+                name: "details-signalement",
                 params: {
-                  slug: rootState.project_slug,
-                  message: "Le signalement a été mis à jour",
+                  slug_type_signal: rootState.feature_type.current_feature_type_slug,
+                  slug_signal: state.form.feature_id,
+                  //message: "Le signalement a été mis à jour",
                 },
               });
             }
@@ -122,10 +123,11 @@ const feature = {
             if (response.status === 201 && response.data) {
               dispatch("SEND_ATTACHMENTS", response.data.id)
               router.push({
-                name: "project_detail",
+                name: "details-signalement",
                 params: {
-                  slug: rootState.project_slug,
-                  message: "Le signalement a été crée",
+                  slug_type_signal: rootState.feature_type.current_feature_type_slug,
+                  slug_signal: response.data.id,
+                  //message: "Le signalement a été crée",
                 },
               });
             }
@@ -159,21 +161,21 @@ const feature = {
       }
     },
 
-/*     GET_FEATURE_LINK({ commit }, featureId) {
-      featureAPI
-        .getlinked_features(featureId)
-        .then((data) => commit("SET_FEATURE_LINKS", data));
-    } */
+    /*     GET_FEATURE_LINK({ commit }, featureId) {
+          featureAPI
+            .getlinked_features(featureId)
+            .then((data) => commit("SET_FEATURE_LINKS", data));
+        } */
     DELETE_FEATURE({ state, rootState }, feature_id) {
       console.log("Deleting feature:", feature_id, state)
-      const url=`${rootState.configuration.VUE_APP_DJANGO_API_BASE}features/${feature_id}`;
-        axios
-          .delete(url, {
-          })
-          .then()
-          .catch(() => {
-            return false;
-          });
+      const url = `${rootState.configuration.VUE_APP_DJANGO_API_BASE}features/${feature_id}`;
+      axios
+        .delete(url, {
+        })
+        .then()
+        .catch(() => {
+          return false;
+        });
     },
 
     // POST_COMMENT({ state }, data) {
diff --git a/src/views/feature/Feature_edit.vue b/src/views/feature/Feature_edit.vue
index 1b591450..600cdedb 100644
--- a/src/views/feature/Feature_edit.vue
+++ b/src/views/feature/Feature_edit.vue
@@ -579,16 +579,6 @@ export default {
       return isValid;
     },
 
-    goBackToProject(message) {
-      this.$router.push({
-        name: "project_detail",
-        params: {
-          slug: this.$store.state.project_slug,
-          message,
-        },
-      });
-    },
-
     postForm() {
       let is_valid = true;
       if (!this.feature_type.title_optional) {
@@ -876,7 +866,6 @@ export default {
   },
 
   created() {
-
     if (!this.project) {
       this.project = this.$store.state.projects.find((project) => project.slug === this.$store.state.project_slug);
       this.makeStatusChoicesFilter();
diff --git a/src/views/project/Project_edit.vue b/src/views/project/Project_edit.vue
index 72a6344c..8fefe1f8 100644
--- a/src/views/project/Project_edit.vue
+++ b/src/views/project/Project_edit.vue
@@ -172,12 +172,11 @@ import Dropdown from "@/components/Dropdown.vue";
 
 import { mapGetters } from "vuex";
 
-axios.defaults.headers.common['X-CSRFToken'] = (name => {
-    var re = new RegExp(name + "=([^;]+)");
-    var value = re.exec(document.cookie);
-    return (value != null) ? unescape(value[1]) : null;
-  })('csrftoken');
-
+axios.defaults.headers.common["X-CSRFToken"] = ((name) => {
+  var re = new RegExp(name + "=([^;]+)");
+  var value = re.exec(document.cookie);
+  return value != null ? unescape(value[1]) : null;
+})("csrftoken");
 
 export default {
   name: "Project_edit",
@@ -284,30 +283,28 @@ export default {
 
     postProjectThumbnail(projectSlug) {
       //* send img to the backend when feature_type is created
-      if (this.fileToImport.size > 0) {
-        let formData = new FormData();
-        formData.append("file", this.fileToImport);
-        const url =
-          this.$store.state.configuration.VUE_APP_DJANGO_API_BASE +
-          "projects/" +
-          projectSlug +
-          "/thumbnail/";
-        return axios
-          .put(url, formData, {
-            headers: {
-              "Content-Type": "multipart/form-data",
-            },
-          })
-          .then((response) => {
-            if (response && response.status === 200) {
-              //dispatch("GET_IMPORTS", feature_type_slug); // ? Besoin de vérifier le statut de l'import ?
-              this.goBackNrefresh(projectSlug);
-            }
-          })
-          .catch((error) => {
-            throw error;
-          });
-      }
+      let formData = new FormData();
+      formData.append("file", this.fileToImport);
+      const url =
+        this.$store.state.configuration.VUE_APP_DJANGO_API_BASE +
+        "projects/" +
+        projectSlug +
+        "/thumbnail/";
+      return axios
+        .put(url, formData, {
+          headers: {
+            "Content-Type": "multipart/form-data",
+          },
+        })
+        .then((response) => {
+          if (response && response.status === 200) {
+            //dispatch("GET_IMPORTS", feature_type_slug); // ? Besoin de vérifier le statut de l'import ?
+            this.goBackNrefresh(projectSlug);
+          }
+        })
+        .catch((error) => {
+          throw error;
+        });
     },
 
     checkForm() {
@@ -331,8 +328,6 @@ export default {
 
     async postForm() {
       if (!this.checkForm()) return;
-      // todo: check form
-      //let url = `${configuration.VUE_APP_DJANGO_API_BASE}projects/`;
       const projectData = {
         title: this.form.title,
         description: this.form.description,
@@ -371,11 +366,12 @@ export default {
           )
           .then((response) => {
             if (response && response.status === 200) {
-              //* send thumbnail after feature_type was created
-              if (this.fileToImport)
+              //* send thumbnail after feature_type was updated
+              if (this.fileToImport.size > 0) {
                 this.postProjectThumbnail(this.project.slug);
-            } else {
-              this.goBackNrefresh(this.project.slug);
+              } else {
+                this.goBackNrefresh(this.project.slug);
+              }
             }
           })
           .catch((error) => {
-- 
GitLab