diff --git a/components/environments/addEnvironment.vue b/components/environments/addEnvironment.vue index a87873e18..43ef6636b 100644 --- a/components/environments/addEnvironment.vue +++ b/components/environments/addEnvironment.vue @@ -69,7 +69,7 @@ export default { }, addNewEnvironment() { if (!this.$data.name) { - this.$toast.info($t("invalid_environment_name")); + this.$toast.info(this.$t("invalid_environment_name")); return; } let newEnvironment = [ @@ -78,11 +78,15 @@ export default { variables: [] } ]; - this.$store.commit("postwoman/importAddEnvironments", newEnvironment); + this.$store.commit("postwoman/importAddEnvironments", { + environments: newEnvironment, + confirmation: "Environment added" + }); this.$emit("hide-modal"); this.syncEnvironments(); }, hideModal() { + this.$data.name = undefined; this.$emit("hide-modal"); } } diff --git a/components/environments/editEnvironment.vue b/components/environments/editEnvironment.vue index 01308fccf..9c15b33e2 100644 --- a/components/environments/editEnvironment.vue +++ b/components/environments/editEnvironment.vue @@ -71,7 +71,11 @@ { let content = event.target.result; - let environment = JSON.parse(content); - this.$store.commit("postwoman/replaceEnvironments", environment); + let environments = JSON.parse(content); + this.$store.commit("postwoman/replaceEnvironments", environments); }; reader.readAsText(this.$refs.inputChooseFileToReplaceWith.files[0]); this.fileImported(); @@ -129,11 +129,14 @@ export default { let reader = new FileReader(); reader.onload = event => { let content = event.target.result; - let environment = JSON.parse(content); - this.$store.commit("postwoman/importAddEnvironments", environment); + let environments = JSON.parse(content); + let confirmation = this.$t("file_imported") + this.$store.commit("postwoman/importAddEnvironments", { + environments, + confirmation + }); }; reader.readAsText(this.$refs.inputChooseFileToImportFrom.files[0]); - this.fileImported(); }, exportJSON() { let text = this.environmentJson; diff --git a/store/postwoman.js b/store/postwoman.js index bbec6e90f..c7cae06eb 100644 --- a/store/postwoman.js +++ b/store/postwoman.js @@ -122,7 +122,7 @@ export const mutations = { }, setVariableValue({ editingEnvironment }, { index, value }) { - editingEnvironment.variables[index].value = value; + editingEnvironment.variables[index].value = testValue(value); }, removeVariable({ editingEnvironment }, variables) { @@ -137,7 +137,19 @@ export const mutations = { state.environments = environments; }, - importAddEnvironments(state, environments) { + importAddEnvironments(state, { environments, confirmation }) { + const duplicateEnvironment = environments.some( + item => { + return state.environments.some( + item2 => { + return item.name.toLowerCase() === item2.name.toLowerCase(); + }); + } + ); + if (duplicateEnvironment) { + this.$toast.info("Duplicate environment"); + return; + }; state.environments = [...state.environments, ...environments]; let index = 0; @@ -145,6 +157,9 @@ export const mutations = { environment.environmentIndex = index; index += 1; } + this.$toast.info(confirmation, { + icon: "folder_shared" + }); }, removeEnvironment({ environments }, environmentIndex) { @@ -154,7 +169,9 @@ export const mutations = { saveEnvironment({ environments }, payload) { const { environment, environmentIndex } = payload; const { name } = environment; - const duplicateEnvironment = environments.some( + const duplicateEnvironment = environments.length === 1 + ? false + : environments.some( item => item.environmentIndex !== environmentIndex && item.name.toLowerCase() === name.toLowerCase() @@ -394,8 +411,11 @@ export const mutations = { } }; -// export const getters = { -// getEditingEnvironment: state => { -// return state.editingEnvironment -// } -// } +function testValue(myValue) { + try { + return JSON.parse(myValue); + } catch(ex) { + // Now we know it's a string just leave it as a string value. + return myValue; + } +}