diff --git a/src/components/Feature/Detail/FeatureTable.vue b/src/components/Feature/Detail/FeatureTable.vue index bfb939f9ff74921a3d7b15359c69e37cf996db97..ce19426b2854da96502073c75f30a52f06c90b76 100644 --- a/src/components/Feature/Detail/FeatureTable.vue +++ b/src/components/Feature/Detail/FeatureTable.vue @@ -5,12 +5,12 @@ aria-describedby="Table des données du signalement" > <tbody> - <tr v-if="feature_type || featureType"> + <tr v-if="featureType"> <td> <strong> Type de signalement </strong> </td> <td> - <FeatureTypeLink :feature-type="feature_type || featureType" /> + <FeatureTypeLink :feature-type="featureType" /> </td> </tr> <tr @@ -108,7 +108,7 @@ <script> -import { mapState, mapGetters } from 'vuex'; +import { mapState } from 'vuex'; import FeatureTypeLink from '@/components/FeatureType/FeatureTypeLink'; import { statusChoices } from '@/utils'; @@ -141,10 +141,6 @@ export default { 'linked_features', ]), - ...mapGetters('feature-type', [ - 'feature_type', - ]), - statusIcon() { switch (this.currentFeature.status) { case 'archived': diff --git a/src/components/FeatureType/FeatureTypeLink.vue b/src/components/FeatureType/FeatureTypeLink.vue index d39330e1439d31d42c6e6efa2b121e04f8d7166f..0a247d114fe15454a03f2802de77f87d717ecbcc 100644 --- a/src/components/FeatureType/FeatureTypeLink.vue +++ b/src/components/FeatureType/FeatureTypeLink.vue @@ -1,5 +1,6 @@ <template> <router-link + v-if="featureType && featureType.slug" :to="{ name: 'details-type-signalement', params: { feature_type_slug: featureType.slug }, diff --git a/src/store/index.js b/src/store/index.js index 3836a3d2d6310ba1af371f563f9764cfcd21a6c2..6def4d63334533a704be681ce0cde6ed4a144582 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -76,8 +76,8 @@ export default new Vuex.Store({ }, DISPLAY_MESSAGE(state, message) { state.messages = [message, ...state.messages]; - if (document.getElementById('content')) { - document.getElementById('content').scrollIntoView({ block: 'start', inline: 'nearest' }); + if (document.getElementById('app-content')) { + document.getElementById('app-content').scrollIntoView({ block: 'start', inline: 'nearest' }); } setTimeout(() => { state.messages = []; diff --git a/src/views/Feature/FeatureDetail.vue b/src/views/Feature/FeatureDetail.vue index f8db00a581da92112bf1fe8531bff9ebc23778b2..2e784c14b394a8ee7d9f8724e9328f4c0996b801 100644 --- a/src/views/Feature/FeatureDetail.vue +++ b/src/views/Feature/FeatureDetail.vue @@ -149,7 +149,8 @@ export default { 'project' ]), ...mapState('feature-type', [ - 'feature_types' + 'feature_types', + 'feature_type', ]), ...mapState('feature', [ 'currentFeature' @@ -198,6 +199,7 @@ export default { async getPageInfo() { if (this.$route.params.slug_signal) { // if coming from the route with an id this.slugSignal = this.$route.params.slug_signal; + this.featureType = this.feature_type; } //* else it would be retrieve after fetchFilteredFeature with offset this.DISPLAY_LOADER('Recherche du signalement'); let promises = []; @@ -208,7 +210,7 @@ export default { this.GET_PROJECT_INFO(this.$route.params.slug), ); } - //* changement de requête selon s'il y a un id ou un offset + //* changement de requête selon s'il y a un id ou un offset(dans le cas du parcours des signalements filtrés) if (this.$route.query.offset >= 0) { promises.push(this.fetchFilteredFeature()); } else if (!this.currentFeature || this.currentFeature.feature_id !== this.slugSignal) { diff --git a/src/views/Project/ProjectBasemaps.vue b/src/views/Project/ProjectBasemaps.vue index 6eddf46e6aaa54b5feca5dafd658cff1a493a8b6..fd89fcd2c28f4e3021a7d0ccaf1b95e0a665aeb8 100644 --- a/src/views/Project/ProjectBasemaps.vue +++ b/src/views/Project/ProjectBasemaps.vue @@ -1,26 +1,5 @@ <template> <div id="project-basemaps"> - <div - v-if="infoMessage.length > 0" - id="message_info" - class="fullwidth" - > - <div - v-for="(message, index) of infoMessage" - :key="index" - :class="['ui message', message.success ? 'positive' : 'negative']" - style="text-align: left" - > - <div class="header"> - <i - class="info circle icon" - aria-hidden="true" - /> - Informations - </div> - {{ message.comment }} - </div> - </div> <h1 class="ui header"> Administration des fonds cartographiques </h1> @@ -76,7 +55,7 @@ <script> import BasemapListItem from '@/components/Project/Basemaps/BasemapListItem.vue'; -import { mapState, mapGetters } from 'vuex'; +import { mapState, mapGetters, mapMutations } from 'vuex'; export default { name: 'ProjectBasemaps', @@ -87,7 +66,6 @@ export default { data() { return { - infoMessage: [], newBasemapIds: [], }; }, @@ -109,6 +87,7 @@ export default { }, methods: { + ...mapMutations(['DISPLAY_MESSAGE']), addBasemap() { this.newBasemapIds.push(this.basemapMaxId + 1); //* register new basemaps to seperate post and put this.$store.commit('map/CREATE_BASEMAP', this.basemapMaxId + 1); @@ -140,27 +119,17 @@ export default { res.status === 200 && res.status === 201 && res.status === 204 ); if (errors.length === 0) { - this.infoMessage.push({ - success: true, + this.DISPLAY_MESSAGE({ comment: 'Enregistrement effectué.', + level: 'positive' }); this.newBasemapIds = []; } else { - this.infoMessage.push({ - success: false, - comment: "L'édition des fonds cartographiques a échoué. ", + this.DISPLAY_MESSAGE({ + comment: 'L\'édition des fonds cartographiques a échoué.', + level: 'negative' }); } - - document - .getElementById('message_info') - .scrollIntoView({ block: 'end', inline: 'nearest' }); - setTimeout( - function () { - this.infoMessage = []; - }.bind(this), - 5000 - ); }) .catch((error) => { console.error(error);