diff --git a/src/App.vue b/src/App.vue index 6d3a7930bb8d0b7c66b35b6abb1191880b440dcb..f161d11d2e95ebc94b94db39cd7d8175ff9130c8 100644 --- a/src/App.vue +++ b/src/App.vue @@ -100,6 +100,9 @@ </h1> <h3 ref="wrongText">{{ $t('views.app.something_went_wrong') }}</h3> <p>{{ $t('views.app.its_not_your_mistake') }}</p> + <h3 v-if="!$store.state.netvs_online" class="text-danger"> + <netvs-icon :beat_fade="true" icon="offline"/> {{$t('system.offline')}} + </h3> <CopyField class="shadow" variant="danger" :text="global_error_sanitized" height_override="60vh" @@ -117,6 +120,12 @@ <h3>{{ $t('views.app.new_version_available') }}</h3> <p>{{ $t('views.app.please_reload_page') }}</p> </b-modal> + <b-modal content-class="text-center text-danger" centered id="netvs-offline" hide-footer hide-header size="lg"> + <h1> + <netvs-icon icon="offline" size="3x"></netvs-icon> + </h1> + <h3>{{ $t('system.offline') }}</h3> + </b-modal> </template> <template v-else> <b-alert variant="danger" fade show> @@ -376,6 +385,9 @@ export default { window.console.debug('UPDATE!') self.$bvModal.show('net-suite-update') }) + EventBus.$on('offline_request_failed', (payload) => { + self.$bvModal.show('netvs-offline') + }) EventBus.$on('overwrite_breadcrumb_name_of_url', (payload) => { for (let i = 0; i < this.breadcrumbs.length; i++) { if (this.breadcrumbs[i].to === payload.url) { @@ -454,7 +466,11 @@ export default { return } self.global_error = '```json\n' + self.global_error + '\n```' - this.$bvModal.show('net-suite-error') + if (this.$store.state.netvs_online) { + this.$bvModal.show('net-suite-error') + } else { + EventBus.$emit('offline_request_failed') + } }) EventBus.$on('set_colorblind_mode', (payload) => { this.colorblind_mode = payload diff --git a/src/vuex.js b/src/vuex.js index cd447f6caa8fb3f605b13ba27437257ef8c9ed5d..afe2a23f45491ffd0d19a19888d0eb200940a754 100644 --- a/src/vuex.js +++ b/src/vuex.js @@ -221,6 +221,10 @@ const NetvsVuex = new Vuex.Store({ } }, setOnline(state, payload) { + // Invalidate current view when coming back online + if (!state.netvs_online && payload) { + state.reload_count++ + } state.netvs_online = payload }, update_session_info(state, payload) {