From a648ca210691dbc9ede1c311db5c4ac526d36a2f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timoth=C3=A9e?= <tpoussard@neogeo.fr>
Date: Wed, 13 Jul 2022 11:16:47 +0200
Subject: [PATCH] fix error if form is null & fix filtered features opens on
 first feature

---
 src/components/Feature/FeatureEditStatusField.vue  |  1 -
 .../FeaturesListAndMap/FeatureListTable.vue        |  2 +-
 src/views/Feature/FeatureDetail.vue                | 14 ++++++++------
 3 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/components/Feature/FeatureEditStatusField.vue b/src/components/Feature/FeatureEditStatusField.vue
index 19661d36..806182c3 100644
--- a/src/components/Feature/FeatureEditStatusField.vue
+++ b/src/components/Feature/FeatureEditStatusField.vue
@@ -47,7 +47,6 @@ export default {
     selectedStatus: {
       get() {
         return this.statusObject;
-
       },
       set(newValue) {
         this.$store.commit('feature/UPDATE_FORM_FIELD', { name: 'status', value: newValue.value });
diff --git a/src/components/Project/FeaturesListAndMap/FeatureListTable.vue b/src/components/Project/FeaturesListAndMap/FeatureListTable.vue
index abd24d46..fff79a99 100644
--- a/src/components/Project/FeaturesListAndMap/FeatureListTable.vue
+++ b/src/components/Project/FeaturesListAndMap/FeatureListTable.vue
@@ -218,7 +218,7 @@
                   params: {
                     slug_type_signal: feature.feature_type.slug,
                   },
-                  query: queryparams
+                  query: { ...queryparams, offset: queryparams.offset + index }
                 }"
               >
                 {{ feature.title || feature.feature_id }}
diff --git a/src/views/Feature/FeatureDetail.vue b/src/views/Feature/FeatureDetail.vue
index 487de403..dc39b0e4 100644
--- a/src/views/Feature/FeatureDetail.vue
+++ b/src/views/Feature/FeatureDetail.vue
@@ -190,12 +190,14 @@ export default {
     ]),
 
     hasUnsavedChange() {
-      if (this.form.title !== this.currentFeature.title) return true;
-      if (this.form.description.value !== this.currentFeature.description) return true;
-      if (this.form.status.value !== this.currentFeature.status) return true;
-      for (const xForm of this.$store.state.feature.extra_forms) {
-        const originalField = this.currentFeature.feature_data.find(el => el.label === xForm.label);
-        if (originalField && xForm.value !== originalField.value) return true;
+      if (this.form) {
+        if (this.form.title !== this.currentFeature.title) return true;
+        if (this.form.description.value !== this.currentFeature.description) return true;
+        if (this.form.status.value !== this.currentFeature.status) return true;
+        for (const xForm of this.$store.state.feature.extra_forms) {
+          const originalField = this.currentFeature.feature_data.find(el => el.label === xForm.label);
+          if (originalField && xForm.value !== originalField.value) return true;
+        }
       }
       return false;
     }
-- 
GitLab