diff options
12 files changed, 35 insertions, 23 deletions
diff --git a/app/assets/javascripts/cycle_analytics/components/item_issue_component.js.es6 b/app/assets/javascripts/cycle_analytics/components/item_issue_component.js.es6 index 57e20b2aa4e..e73b2db1ba8 100644 --- a/app/assets/javascripts/cycle_analytics/components/item_issue_component.js.es6 +++ b/app/assets/javascripts/cycle_analytics/components/item_issue_component.js.es6 @@ -15,7 +15,6 @@ */ global.cycleAnalytics.ItemIssueComponent = Vue.extend({ - template: '#item-issue-component', props: { issue: Object, }, @@ -39,8 +38,8 @@ </span> <span> by - <a href="issue.profile" class="issue-author-link"> - {{ issue.author }} + <a :href="issue.author.web_url" class="issue-author-link"> + {{ issue.author.name }} </a> </span> </div> diff --git a/app/assets/javascripts/cycle_analytics/components/stage_code_component.js.es6 b/app/assets/javascripts/cycle_analytics/components/stage_code_component.js.es6 index 0a61ac797dd..b070d22af8a 100644 --- a/app/assets/javascripts/cycle_analytics/components/stage_code_component.js.es6 +++ b/app/assets/javascripts/cycle_analytics/components/stage_code_component.js.es6 @@ -13,7 +13,7 @@ template: ` <div> <div class="events-description"> - {{ stage.shortDescription }} + {{ stage.description }} </div> <ul class="stage-event-list"> <li class="stage-event-item" v-for="mergeRequest in items"> diff --git a/app/assets/javascripts/cycle_analytics/components/stage_issue_component.js.es6 b/app/assets/javascripts/cycle_analytics/components/stage_issue_component.js.es6 index 16b392138a6..204f4d1b806 100644 --- a/app/assets/javascripts/cycle_analytics/components/stage_issue_component.js.es6 +++ b/app/assets/javascripts/cycle_analytics/components/stage_issue_component.js.es6 @@ -13,7 +13,7 @@ template: ` <div> <div class="events-description"> - {{ stage.shortDescription }} + {{ stage.description }} </div> <ul class="stage-event-list"> <li class="stage-event-item" v-for="issue in items"> diff --git a/app/assets/javascripts/cycle_analytics/components/stage_plan_component.js.es6 b/app/assets/javascripts/cycle_analytics/components/stage_plan_component.js.es6 index 87b189adacb..637f3877a2e 100644 --- a/app/assets/javascripts/cycle_analytics/components/stage_plan_component.js.es6 +++ b/app/assets/javascripts/cycle_analytics/components/stage_plan_component.js.es6 @@ -13,7 +13,7 @@ template: ` <div> <div class="events-description"> - {{ stage.shortDescription }} + {{ stage.description }} </div> <ul class="stage-event-list"> <li class="stage-event-item" v-for="commit in items"> diff --git a/app/assets/javascripts/cycle_analytics/components/stage_production_component.js.es6 b/app/assets/javascripts/cycle_analytics/components/stage_production_component.js.es6 index 15477f957fd..8616316d69b 100644 --- a/app/assets/javascripts/cycle_analytics/components/stage_production_component.js.es6 +++ b/app/assets/javascripts/cycle_analytics/components/stage_production_component.js.es6 @@ -13,7 +13,7 @@ template: ` <div> <div class="events-description"> - {{ stage.shortDescription }} + {{ stage.description }} </div> <ul> <li v-for="issue in items"> diff --git a/app/assets/javascripts/cycle_analytics/components/stage_review_component.js.es6 b/app/assets/javascripts/cycle_analytics/components/stage_review_component.js.es6 index b52ecbb21f3..516c259722c 100644 --- a/app/assets/javascripts/cycle_analytics/components/stage_review_component.js.es6 +++ b/app/assets/javascripts/cycle_analytics/components/stage_review_component.js.es6 @@ -8,11 +8,12 @@ }, props: { items: Array, + stage: Object, }, template: ` <div> <div class="events-description"> - The time taken to review the code + {{ stage.description }} </div> <ul class="stage-event-list"> <li class="stage-event-item" v-for="mergeRequest in items"> diff --git a/app/assets/javascripts/cycle_analytics/components/stage_staging_component.js.es6 b/app/assets/javascripts/cycle_analytics/components/stage_staging_component.js.es6 index c07f556ed84..1f983ecbab9 100644 --- a/app/assets/javascripts/cycle_analytics/components/stage_staging_component.js.es6 +++ b/app/assets/javascripts/cycle_analytics/components/stage_staging_component.js.es6 @@ -9,11 +9,12 @@ }, props: { items: Array, + stage: Object, }, template: ` <div> <div class="events-description"> - The time taken in staging + {{ stage.description }} </div> <ul> <li v-for="build in items"> diff --git a/app/assets/javascripts/cycle_analytics/components/stage_test_component.js.es6 b/app/assets/javascripts/cycle_analytics/components/stage_test_component.js.es6 index b09fd8c8a6f..ecb730e7b7c 100644 --- a/app/assets/javascripts/cycle_analytics/components/stage_test_component.js.es6 +++ b/app/assets/javascripts/cycle_analytics/components/stage_test_component.js.es6 @@ -13,7 +13,7 @@ template: ` <div> <div class="events-description"> - {{ stage.shortDescription }} + {{ stage.description }} </div> <ul class="stage-event-list"> <li class="stage-event-item" v-for="build in items"> diff --git a/app/assets/javascripts/cycle_analytics/cycle_analytics_bundle.js b/app/assets/javascripts/cycle_analytics/cycle_analytics_bundle.js index 05038c3c500..6ca12cb7e78 100644 --- a/app/assets/javascripts/cycle_analytics/cycle_analytics_bundle.js +++ b/app/assets/javascripts/cycle_analytics/cycle_analytics_bundle.js @@ -86,7 +86,7 @@ $(() => { if (this.currentStage === stage) return; this.isLoadingStage = true; - cycleAnalyticsStore.setStageItems([]); + cycleAnalyticsStore.setStageEvents([]); cycleAnalyticsStore.setActiveStage(stage); cycleAnalyticsService @@ -95,8 +95,8 @@ $(() => { startDate: this.startDate, }) .done((response) => { - this.isEmptyStage = !response.items.length; - cycleAnalyticsStore.setStageItems(response.items); + this.isEmptyStage = !response.events.length; + cycleAnalyticsStore.setStageEvents(response.events); }) .error(() => { this.isEmptyStage = true; diff --git a/app/assets/javascripts/cycle_analytics/cycle_analytics_store.js.es6 b/app/assets/javascripts/cycle_analytics/cycle_analytics_store.js.es6 index bef741c879a..9315f7621a7 100644 --- a/app/assets/javascripts/cycle_analytics/cycle_analytics_store.js.es6 +++ b/app/assets/javascripts/cycle_analytics/cycle_analytics_store.js.es6 @@ -6,7 +6,7 @@ summary: '', stats: '', analytics: '', - items: [], + events: [], stages:[], }, setCycleAnalyticsData(data) { @@ -47,8 +47,19 @@ this.deactivateAllStages(); stage.active = true; }, - setStageItems(items) { - this.state.items = items; + setStageEvents(events) { + this.state.events = this.decorateEvents(events); + }, + decorateEvents(events) { + let newEvents = events; + + newEvents.forEach((item) => { + item.totalTime = item.total_time; + + delete item.total_time; + }); + + return newEvents; }, currentActiveStage() { return this.state.stages.find(stage => stage.active); diff --git a/app/controllers/projects/cycle_analytics_controller.rb b/app/controllers/projects/cycle_analytics_controller.rb index 2fb496053a5..fd263960b93 100644 --- a/app/controllers/projects/cycle_analytics_controller.rb +++ b/app/controllers/projects/cycle_analytics_controller.rb @@ -31,11 +31,11 @@ class Projects::CycleAnalyticsController < Projects::ApplicationController cycle_analytics_view_data = [[:issue, "Issue", "Related Issues", "Time before an issue gets scheduled"], [:plan, "Plan", "Related Commits", "Time before an issue starts implementation"], - [:code, "Code", "Related Merge Requests", "Time until first merge request"], - [:test, "Test", "Relative Builds Trigger by Commits", "Total test time for all commits/merges"], - [:review, "Review", "Relative Merged Requests", "Time between merge request creation and merge/close"], - [:staging, "Staging", "Relative Deployed Builds", "From merge request merge until deploy to production"], - [:production, "Production", "Related Issues", "From issue creation until deploy to production"]] + [:code, "Code", "Related Merge Requests", "Time spent coding"], + [:test, "Test", "Relative Builds Trigger by Commits", "The time taken to build and test the application"], + [:review, "Review", "Relative Merged Requests", "The time taken to review the code"], + [:staging, "Staging", "Relative Deployed Builds", "The time taken in staging"], + [:production, "Production", "Related Issues", "The total time taken from idea to production"]] stats = cycle_analytics_view_data.reduce([]) do |stats, (stage_method, stage_text, stage_legend, stage_description)| value = @cycle_analytics.send(stage_method).presence diff --git a/app/views/projects/cycle_analytics/show.html.haml b/app/views/projects/cycle_analytics/show.html.haml index cf496b46e4f..010f64b3bb5 100644 --- a/app/views/projects/cycle_analytics/show.html.haml +++ b/app/views/projects/cycle_analytics/show.html.haml @@ -83,5 +83,5 @@ = icon("spinner spin", "v-show" => "isLoadingStage") %template{ "v-if" => "isEmptyStage" } = render partial: "empty_stage" - %template{ "v-if" => "state.items.length && !isLoadingStage && !isEmptyStage" } - %component{ ":is" => "currentStage.component", ":stage" => "currentStage", ":items" => "state.items" } + %template{ "v-if" => "state.events.length && !isLoadingStage && !isEmptyStage" } + %component{ ":is" => "currentStage.component", ":stage" => "currentStage", ":items" => "state.events" } |