From 5d8664653d3918c03e3d68775904e75eadd89873 Mon Sep 17 00:00:00 2001 From: Stas Vilchik Date: Tue, 13 May 2014 12:25:48 +0200 Subject: [PATCH] SONAR-5209 Time changes menu --- .../main/coffee/component-viewer/popup.coffee | 13 +- .../coffee/component-viewer/source.coffee | 19 ++- .../time-changes-popup.coffee | 15 ++ .../component-viewer/header/_basic-header.hbs | 118 +++++++++++---- .../header/_coverage-header.hbs | 38 ++--- .../header/_issues-header.hbs | 142 +++++++++--------- .../component-viewer/time-changes-popup.hbs | 13 ++ .../src/main/less/component-viewer.less | 49 +++++- 8 files changed, 287 insertions(+), 120 deletions(-) create mode 100644 sonar-server/src/main/coffee/component-viewer/time-changes-popup.coffee create mode 100644 sonar-server/src/main/hbs/component-viewer/time-changes-popup.hbs diff --git a/sonar-server/src/main/coffee/component-viewer/popup.coffee b/sonar-server/src/main/coffee/component-viewer/popup.coffee index bd806802b06..ed750cc8fe5 100644 --- a/sonar-server/src/main/coffee/component-viewer/popup.coffee +++ b/sonar-server/src/main/coffee/component-viewer/popup.coffee @@ -13,9 +13,16 @@ define [ onRender: -> @$el.detach().appendTo $('body') - @$el.css - top: @options.triggerEl.offset().top - left: @options.triggerEl.offset().left + @options.triggerEl.outerWidth() + + unless @options.bottom + @$el.css + top: @options.triggerEl.offset().top + left: @options.triggerEl.offset().left + @options.triggerEl.outerWidth() + else + @$el.addClass 'component-viewer-popup-bottom' + @$el.css + top: @options.triggerEl.offset().top + @options.triggerEl.outerHeight() + left: @options.triggerEl.offset().left $('body').on 'click.coverage-popup', => $('body').off 'click.coverage-popup' diff --git a/sonar-server/src/main/coffee/component-viewer/source.coffee b/sonar-server/src/main/coffee/component-viewer/source.coffee index 9cbfcea4818..e38c8cf44d8 100644 --- a/sonar-server/src/main/coffee/component-viewer/source.coffee +++ b/sonar-server/src/main/coffee/component-viewer/source.coffee @@ -3,6 +3,7 @@ define [ 'templates/component-viewer' 'component-viewer/coverage-popup' 'component-viewer/duplication-popup' + 'component-viewer/time-changes-popup' 'issues/issue-view' 'issues/models/issue' 'common/handlebars-extensions' @@ -11,6 +12,7 @@ define [ Templates CoveragePopupView DuplicationPopupView + TimeChangesPopupView IssueView Issue ) -> @@ -42,6 +44,8 @@ define [ 'click .js-expand': 'expandBlock' 'click .js-expand-all': 'expandAll' + 'click .js-time-changes': 'toggleTimeChangePopup' + initialize: -> super @@ -94,8 +98,9 @@ define [ @$('.component-viewer-source-settings').toggleClass 'open' - toggleMeasures: -> - @$('.component-viewer-measures-section').toggleClass 'brief' + toggleMeasures: (e) -> + row = $(e.currentTarget).closest '.component-viewer-header' + row.toggleClass 'component-viewer-header-full' toggleSetting: (e, show, hide) -> @@ -171,6 +176,16 @@ define [ @render() + toggleTimeChangePopup: (e) -> + e.stopPropagation() + $('body').click() + popup = new TimeChangesPopupView + triggerEl: $(e.currentTarget) + main: @options.main + bottom: true + popup.render() + + getLineCoverage: (line) -> coverage = @model.get 'coverage' diff --git a/sonar-server/src/main/coffee/component-viewer/time-changes-popup.coffee b/sonar-server/src/main/coffee/component-viewer/time-changes-popup.coffee new file mode 100644 index 00000000000..74e9e25a91f --- /dev/null +++ b/sonar-server/src/main/coffee/component-viewer/time-changes-popup.coffee @@ -0,0 +1,15 @@ +define [ + 'backbone.marionette' + 'templates/component-viewer' + 'component-viewer/popup' +], ( + Marionette + Templates + Popup +) -> + + $ = jQuery + + + class TimeChangesPopupView extends Popup + template: Templates['time-changes-popup'] diff --git a/sonar-server/src/main/hbs/component-viewer/header/_basic-header.hbs b/sonar-server/src/main/hbs/component-viewer/header/_basic-header.hbs index 7b9ab70ba2e..28581feeb09 100644 --- a/sonar-server/src/main/hbs/component-viewer/header/_basic-header.hbs +++ b/sonar-server/src/main/hbs/component-viewer/header/_basic-header.hbs @@ -7,35 +7,99 @@ {{/if}} - + -
- {{component.measures.ncloc.frmt_val}} - {{t 'metric.ncloc.name'}} -
-
- {{component.measures.lines.frmt_val}} - {{t 'metric.lines.name'}} -
-
- {{component.measures.functions.frmt_val}} - {{t 'metric.functions.name'}} -
-
- {{component.measures.accessors.frmt_val}} - {{t 'metric.accessors.name'}} -
-
- {{component.measures.classes.frmt_val}} - {{t 'metric.classes.name'}} -
-
- - Time changes +
+
+ {{component.measures.ncloc.frmt_val}} + {{t 'metric.ncloc.name'}} +
+ + {{#if component.measures.lines.frmt_val}} +
+ {{component.measures.lines.frmt_val}} + {{t 'metric.lines.name'}} +
+ {{/if}} + + {{#if component.measures.functions.frmt_val}} +
+ {{component.measures.functions.frmt_val}} + {{t 'metric.functions.name'}} +
+ {{/if}} + + {{#if component.measures.accessors.frmt_val}} +
+ {{component.measures.accessors.frmt_val}} + {{t 'metric.accessors.name'}} +
+ {{/if}} + + {{#if component.measures.classes.frmt_val}} +
+ {{component.measures.classes.frmt_val}} + {{t 'metric.classes.name'}} +
+ {{/if}} + + {{#if component.measures.complexity.frmt_val}} +
+ {{component.measures.complexity.frmt_val}} + {{t 'metric.complexity.name'}} +
+ {{/if}} + + {{#if component.measures.function_complexity.frmt_val}} +
+ {{component.measures.function_complexity.frmt_val}} + {{t 'metric.function_complexity.name'}} +
+ {{/if}} + + {{#if component.measures.comment_lines_density.frmt_val}} +
+ {{component.measures.comment_lines_density.frmt_val}} + {{t 'metric.comment_lines_density.name'}} +
+ {{/if}} + + {{#if component.measures.comment_lines.frmt_val}} +
+ {{component.measures.comment_lines.frmt_val}} + {{t 'metric.comment_lines.name'}} +
+ {{/if}} + + {{#if component.measures.public_documented_api_density.frmt_val}} +
+ {{component.measures.public_documented_api_density.frmt_val}} + {{t 'metric.public_documented_api_density.name'}} +
+ {{/if}} + + {{#if component.measures.public_undocumented_api.frmt_val}} +
+ {{component.measures.public_undocumented_api.frmt_val}} + {{t 'metric.public_undocumented_api.name'}} +
+ {{/if}} + + {{#if component.measures.public_api.frmt_val}} +
+ {{component.measures.public_api.frmt_val}} + {{t 'metric.public_api.name'}} +
+ {{/if}} + +
+ + Time changes +
\ No newline at end of file diff --git a/sonar-server/src/main/hbs/component-viewer/header/_coverage-header.hbs b/sonar-server/src/main/hbs/component-viewer/header/_coverage-header.hbs index fd776cf1789..b55814b3a22 100644 --- a/sonar-server/src/main/hbs/component-viewer/header/_coverage-header.hbs +++ b/sonar-server/src/main/hbs/component-viewer/header/_coverage-header.hbs @@ -10,25 +10,27 @@ -
- {{component.measures.coverage.frmt_val}} - {{t 'metric.coverage.name'}} -
-
- {{component.measures.line_coverage.frmt_val}} - {{t 'metric.line_coverage.name'}} -
-
- {{component.measures.branch_coverage.frmt_val}} - {{t 'metric.branch_coverage.name'}} -
+
+
+ {{component.measures.coverage.frmt_val}} + {{t 'metric.coverage.name'}} +
+
+ {{component.measures.line_coverage.frmt_val}} + {{t 'metric.line_coverage.name'}} +
+
+ {{component.measures.branch_coverage.frmt_val}} + {{t 'metric.branch_coverage.name'}} +
-
- - Time changes +
+ + Time changes +
\ No newline at end of file diff --git a/sonar-server/src/main/hbs/component-viewer/header/_issues-header.hbs b/sonar-server/src/main/hbs/component-viewer/header/_issues-header.hbs index cb12904430e..1ab3c714e20 100644 --- a/sonar-server/src/main/hbs/component-viewer/header/_issues-header.hbs +++ b/sonar-server/src/main/hbs/component-viewer/header/_issues-header.hbs @@ -6,79 +6,85 @@ {{#if settings.duplications}} {{/if}} - - - + -
- {{component.measures.violations.frmt_val}} - {{t 'metric.violations.name'}} -
-
- {{component.measures.sqale_index.frmt_val}} - {{t 'metric.sqale_index.name'}} -
- {{#if component.measures.blocker_violations.frmt_val}} -
- - - {{component.measures.blocker_violations.frmt_val}} - - {{t 'severity.BLOCKER'}} -
- {{/if}} - {{#if component.measures.critical_violations.frmt_val}} -
- - - {{component.measures.critical_violations.frmt_val}} - - {{t 'severity.CRITICAL'}} -
- {{/if}} - {{#if component.measures.major_violations.frmt_val}} -
- - - {{component.measures.major_violations.frmt_val}} - - {{t 'severity.MAJOR'}} -
- {{/if}} - {{#if component.measures.minor_violations.frmt_val}} -
- - - {{component.measures.minor_violations.frmt_val}} - - {{t 'severity.MINOR'}} +
+ +
+ {{component.measures.violations.frmt_val}} + {{t 'metric.violations.name'}}
- {{/if}} - {{#if component.measures.info_violations.frmt_val}} -
- - - {{component.measures.info_violations.frmt_val}} - - {{t 'severity.INFO'}} + +
+ {{component.measures.sqale_index.frmt_val}} + {{t 'metric.sqale_index.name'}}
- {{/if}} -
- - Time changes -
+ {{#if component.measures.blocker_violations.frmt_val}} +
+ + + {{component.measures.blocker_violations.frmt_val}} + + {{t 'severity.BLOCKER'}} +
+ {{/if}} -
- - All issues -
+ {{#if component.measures.critical_violations.frmt_val}} +
+ + + {{component.measures.critical_violations.frmt_val}} + + {{t 'severity.CRITICAL'}} +
+ {{/if}} + + {{#if component.measures.major_violations.frmt_val}} +
+ + + {{component.measures.major_violations.frmt_val}} + + {{t 'severity.MAJOR'}} +
+ {{/if}} + + {{#if component.measures.minor_violations.frmt_val}} +
+ + + {{component.measures.minor_violations.frmt_val}} + + {{t 'severity.MINOR'}} +
+ {{/if}} + + {{#if component.measures.info_violations.frmt_val}} +
+ + + {{component.measures.info_violations.frmt_val}} + + {{t 'severity.INFO'}} +
+ {{/if}} +
+ + Time changes +
+ +
+ + All issues +
+
\ No newline at end of file diff --git a/sonar-server/src/main/hbs/component-viewer/time-changes-popup.hbs b/sonar-server/src/main/hbs/component-viewer/time-changes-popup.hbs new file mode 100644 index 00000000000..5925fc12d03 --- /dev/null +++ b/sonar-server/src/main/hbs/component-viewer/time-changes-popup.hbs @@ -0,0 +1,13 @@ + + +
\ No newline at end of file diff --git a/sonar-server/src/main/less/component-viewer.less b/sonar-server/src/main/less/component-viewer.less index e847f609f78..b9f30efc38f 100644 --- a/sonar-server/src/main/less/component-viewer.less +++ b/sonar-server/src/main/less/component-viewer.less @@ -252,13 +252,23 @@ padding: 4px 0 4px 5px; } +.component-viewer-header-box { margin-bottom: -20px; } + .component-viewer-header-measure { display: inline-block; vertical-align: bottom; - margin-right: 20px; + margin: 0 20px 20px 0; font-size: @baseFontSize; } +.component-viewer-header-measure-extra { + display: none; +} + +.component-viewer-header-full .component-viewer-header-measure-extra { + display: inline-block; +} + .component-viewer-header-measure-label { display: block; margin-top: 2px; @@ -284,7 +294,7 @@ .component-viewer-header-filter { display: inline-block; vertical-align: bottom; - margin-right: 20px; + margin: 0 20px 20px 0; padding-left: 20px; border-left: 1px solid @barBorderColor; font-size: @baseFontSize; @@ -333,6 +343,29 @@ } } +.component-viewer-popup-bottom { + margin-top: @popupArrowSize; + margin-left: -16px; + + .component-viewer-popup-arrow { + top: -@popupArrowSize; + left: 15px; + border-left-width: @popupArrowSize; + border-top-width: 0; + border-right-color: transparent; + border-bottom-color: @barBorderColor; + + &:after { + left: -@popupArrowSize; + bottom: -@popupArrowSize - 1px; + border-left-width: @popupArrowSize; + border-top-width: 0; + border-right-color: transparent; + border-bottom-color: @white; + } + } +} + .component-viewer-popup-section + .component-viewer-popup-section { margin-top: 10px; } @@ -344,6 +377,18 @@ .component-viewer-popup-list { margin-top: 5px; + + & > li { + + & > a { + display: block; + margin: 0 -10px; + padding: 5px 10px; + .trans; + + &:hover { background-color: @barBackgroundColor; } + } + } } .component-viewer-popup-test { -- 2.39.5