From f72a1bf09cce4b4cf01b7eb12da0dc78ce477a9d Mon Sep 17 00:00:00 2001 From: Filipa Lacerda Date: Wed, 3 Oct 2018 14:13:20 +0000 Subject: Moves stages dropdown into the new vue app --- app/assets/javascripts/job.js | 23 - .../javascripts/jobs/components/jobs_container.vue | 30 +- app/assets/javascripts/jobs/components/sidebar.vue | 297 ++++++ .../jobs/components/sidebar_details_block.vue | 276 ------ .../jobs/components/stages_dropdown.vue | 116 +-- app/assets/javascripts/jobs/job_details_bundle.js | 26 +- app/assets/javascripts/jobs/store/actions.js | 28 +- app/assets/stylesheets/pages/builds.scss | 23 +- app/views/projects/jobs/_sidebar.html.haml | 38 - app/views/projects/jobs/show.html.haml | 2 +- locale/gitlab.pot | 6 +- .../projects/environments/environment_spec.rb | 12 +- .../projects/jobs/user_browses_job_spec.rb | 6 +- spec/features/projects/jobs_spec.rb | 8 +- spec/javascripts/job_spec.js | 19 - .../jobs/components/jobs_container_spec.js | 23 +- .../jobs/components/sidebar_details_block_spec.js | 139 --- spec/javascripts/jobs/components/sidebar_spec.js | 196 ++++ .../jobs/components/stages_dropdown_spec.js | 32 +- spec/javascripts/jobs/mock_data.js | 1047 +++++++++++++++++++- spec/javascripts/jobs/store/actions_spec.js | 54 +- 21 files changed, 1727 insertions(+), 674 deletions(-) create mode 100644 app/assets/javascripts/jobs/components/sidebar.vue delete mode 100644 app/assets/javascripts/jobs/components/sidebar_details_block.vue delete mode 100644 app/views/projects/jobs/_sidebar.html.haml delete mode 100644 spec/javascripts/jobs/components/sidebar_details_block_spec.js create mode 100644 spec/javascripts/jobs/components/sidebar_spec.js diff --git a/app/assets/javascripts/job.js b/app/assets/javascripts/job.js index 0e71e705c13..854445bd2a4 100644 --- a/app/assets/javascripts/job.js +++ b/app/assets/javascripts/job.js @@ -24,7 +24,6 @@ export default class Job extends LogOutputBehaviours { this.$document = $(document); this.$window = $(window); this.logBytes = 0; - this.updateDropdown = this.updateDropdown.bind(this); this.$buildTrace = $('#build-trace'); this.$buildRefreshAnimation = $('.js-build-refresh'); @@ -35,18 +34,12 @@ export default class Job extends LogOutputBehaviours { clearTimeout(this.timeout); this.initSidebar(); - this.populateJobs(this.buildStage); - this.updateStageDropdownText(this.buildStage); this.sidebarOnResize(); this.$document .off('click', '.js-sidebar-build-toggle') .on('click', '.js-sidebar-build-toggle', this.sidebarOnClick.bind(this)); - this.$document - .off('click', '.stage-item') - .on('click', '.stage-item', this.updateDropdown); - this.scrollThrottled = _.throttle(this.toggleScroll.bind(this), 100); this.$window @@ -194,20 +187,4 @@ export default class Job extends LogOutputBehaviours { if (this.shouldHideSidebarForViewport()) this.toggleSidebar(); } - // eslint-disable-next-line class-methods-use-this - populateJobs(stage) { - $('.build-job').hide(); - $(`.build-job[data-stage="${stage}"]`).show(); - } - // eslint-disable-next-line class-methods-use-this - updateStageDropdownText(stage) { - $('.stage-selection').text(stage); - } - - updateDropdown(e) { - e.preventDefault(); - const stage = e.currentTarget.text; - this.updateStageDropdownText(stage); - this.populateJobs(stage); - } } diff --git a/app/assets/javascripts/jobs/components/jobs_container.vue b/app/assets/javascripts/jobs/components/jobs_container.vue index 93e2292ff84..271b7790d75 100644 --- a/app/assets/javascripts/jobs/components/jobs_container.vue +++ b/app/assets/javascripts/jobs/components/jobs_container.vue @@ -1,4 +1,5 @@