diff --git a/KenticoInspector.WebApplication/ClientApp/src/api/index.js b/KenticoInspector.WebApplication/ClientApp/src/api/index.js index 404741ed..66ae18a7 100644 --- a/KenticoInspector.WebApplication/ClientApp/src/api/index.js +++ b/KenticoInspector.WebApplication/ClientApp/src/api/index.js @@ -19,8 +19,8 @@ export default { axios.post("/api/instances", instance) .then(r => r.data) .catch(reject) - .then(instances => { - resolve(instances) + .then(instance => { + resolve(instance) }) }) }, diff --git a/KenticoInspector.WebApplication/ClientApp/src/components/instance-connect-form-manual.vue b/KenticoInspector.WebApplication/ClientApp/src/components/instance-connect-form-manual.vue index 93d00cad..3792fa16 100644 --- a/KenticoInspector.WebApplication/ClientApp/src/components/instance-connect-form-manual.vue +++ b/KenticoInspector.WebApplication/ClientApp/src/components/instance-connect-form-manual.vue @@ -117,12 +117,19 @@ export default { } }), methods: { - ...mapActions([ - 'upsertInstance' - ]), + ...mapActions('instances', { + connectInstance: 'connect', + upsertInstance: 'upsertItem' + }), submit () { if (this.$refs.form.validate()) { - this.upsertInstance(this.instance) + this.upsertInstance(this.instance).then((newInstance) => { + this.connectInstance(newInstance.guid) + .then(() => { + this.$router.push('/reports') + }) + }) + //this.$refs.form.reset() } }, diff --git a/KenticoInspector.WebApplication/ClientApp/src/store/modules/instances.js b/KenticoInspector.WebApplication/ClientApp/src/store/modules/instances.js index 8ff49741..d56cd25f 100644 --- a/KenticoInspector.WebApplication/ClientApp/src/store/modules/instances.js +++ b/KenticoInspector.WebApplication/ClientApp/src/store/modules/instances.js @@ -3,6 +3,8 @@ import api from '../../api' const state = { items: {}, currentInstanceDetails: null, + upserting: false, + upsertingError: null, connecting: false, connectionError: null } @@ -27,40 +29,39 @@ const getters = { } const actions = { - getAll: ({ commit }) => { - api.getInstances() - .then(instances => { - commit('setItems', instances) - }) + async getAll ({ commit }) { + commit('setItems', await api.getInstances()) }, - upsertItem: ({ dispatch }, instance) => { - api.upsertInstance(instance) - .then(()=>{ - dispatch('getAll') - }) + async upsertItem ({ commit, dispatch }, instance) { + commit('setUpserting',true) + try { + const newInstance = await api.upsertInstance(instance) + dispatch('getAll') + return newInstance + } catch (error) { + commit('setUpsertingError', error) + } + + commit('setUpserting',false) }, - deleteItem: ({ dispatch }, guid) => { - api.deleteInstance(guid) - .then(()=>{ - dispatch('getAll') - }) + async deleteItem ({ dispatch }, guid) { + await api.deleteInstance(guid) + await dispatch('getAll') }, - connect: ({ commit }, guid) => { - return new Promise((resolve) => { - commit('setConnecting',true) - api.getInstanceDetails(guid) - .then(instanceDetails => { - commit('setCurrentInstanceDetails', instanceDetails) - commit('setConnecting',false) - resolve() - }) - .catch(reason => { - commit('setConnectionError', reason) - }) - }) + async connect ({ commit }, guid) { + commit('setConnecting',true) + + try { + const instanceDetails = await api.getInstanceDetails(guid) + commit('setCurrentInstanceDetails', instanceDetails) + } catch (error) { + commit('setConnectionError', error) + } + + commit('setConnecting',false) }, cancelConnecting: ({ commit }) => { @@ -82,6 +83,14 @@ const mutations = { state.connectionError = reason }, + setUpserting (state, status) { + state.upserting = status + }, + + setUpsertingError (state, reason) { + state.upsertingError = reason + }, + setCurrentInstanceDetails (state, instanceDetails) { state.currentInstanceDetails = instanceDetails },