From adbf6149cf1778cd48a9bbf8e97332669dbcb7cb Mon Sep 17 00:00:00 2001 From: Paul Slaughter Date: Thu, 27 Sep 2018 16:57:30 -0500 Subject: [PATCH] Keep IDE RightPane views alive **Why?** - This is needed for the Web Terminal feature. https://gitlab.com/gitlab-org/gitlab-ee/issues/5426 **Notes:** - Introduces a `pane` Vuex module. - Some views should not be kept alive (i.e. job details). This is why a `keepAlive` flag was introduced for views. --- .../ide/components/ide_status_bar.vue | 6 +- .../ide/components/panes/right.vue | 63 +++++++++----- .../ide/components/repo_editor.vue | 6 +- app/assets/javascripts/ide/constants.js | 8 +- app/assets/javascripts/ide/stores/actions.js | 4 - app/assets/javascripts/ide/stores/index.js | 2 + .../ide/stores/modules/pane/actions.js | 30 +++++++ .../ide/stores/modules/pane/getters.js | 4 + .../ide/stores/modules/pane/index.js | 12 +++ .../ide/stores/modules/pane/mutation_types.js | 3 + .../ide/stores/modules/pane/mutations.js | 19 ++++ .../ide/stores/modules/pane/state.js | 5 ++ .../ide/stores/modules/pipelines/actions.js | 2 +- .../javascripts/ide/stores/mutation_types.js | 2 - .../javascripts/ide/stores/mutations.js | 5 -- app/assets/javascripts/ide/stores/state.js | 1 - .../ide/components/ide_status_bar_spec.js | 5 +- .../ide/components/panes/right_spec.js | 24 ++--- .../ide/components/repo_editor_spec.js | 4 +- spec/javascripts/ide/helpers.js | 2 + .../ide/stores/modules/pane/actions_spec.js | 87 +++++++++++++++++++ .../ide/stores/modules/pane/getters_spec.js | 61 +++++++++++++ .../ide/stores/modules/pane/mutations_spec.js | 42 +++++++++ .../stores/modules/pipelines/actions_spec.js | 10 +-- 24 files changed, 345 insertions(+), 62 deletions(-) create mode 100644 app/assets/javascripts/ide/stores/modules/pane/actions.js create mode 100644 app/assets/javascripts/ide/stores/modules/pane/getters.js create mode 100644 app/assets/javascripts/ide/stores/modules/pane/index.js create mode 100644 app/assets/javascripts/ide/stores/modules/pane/mutation_types.js create mode 100644 app/assets/javascripts/ide/stores/modules/pane/mutations.js create mode 100644 app/assets/javascripts/ide/stores/modules/pane/state.js create mode 100644 spec/javascripts/ide/stores/modules/pane/actions_spec.js create mode 100644 spec/javascripts/ide/stores/modules/pane/getters_spec.js create mode 100644 spec/javascripts/ide/stores/modules/pane/mutations_spec.js diff --git a/app/assets/javascripts/ide/components/ide_status_bar.vue b/app/assets/javascripts/ide/components/ide_status_bar.vue index 715dc1bfb42..a04d09ef374 100644 --- a/app/assets/javascripts/ide/components/ide_status_bar.vue +++ b/app/assets/javascripts/ide/components/ide_status_bar.vue @@ -50,7 +50,9 @@ export default { this.stopPipelinePolling(); }, methods: { - ...mapActions(['setRightPane']), + ...mapActions('rightPane', { + openRightPane: 'open', + }), ...mapActions('pipelines', ['fetchLatestPipeline', 'stopPipelinePolling']), startTimer() { this.intervalId = setInterval(() => { @@ -88,7 +90,7 @@ export default {