]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5623 Further frontend work
authorStas Vilchik <vilchiks@gmail.com>
Thu, 9 Oct 2014 08:39:59 +0000 (10:39 +0200)
committerStas Vilchik <vilchiks@gmail.com>
Thu, 9 Oct 2014 08:40:08 +0000 (10:40 +0200)
server/sonar-web/src/main/coffee/monitoring/app.coffee
server/sonar-web/src/main/coffee/monitoring/mockjax.coffee
server/sonar-web/src/main/coffee/monitoring/views/header-view.coffee
server/sonar-web/src/main/coffee/monitoring/views/report-view.coffee
server/sonar-web/src/main/hbs/monitoring/monitoring-header.hbs
server/sonar-web/src/main/hbs/monitoring/monitoring-layout.hbs
server/sonar-web/src/main/hbs/monitoring/monitoring-report.hbs
server/sonar-web/src/main/less/monitoring.less
sonar-core/src/main/resources/org/sonar/l10n/core.properties

index da57c63b4ec8a269ec9274d0bde42dc72b74268d..6130fe06aadcbfaf724251d8969ba4fde709d34b 100644 (file)
@@ -42,7 +42,11 @@ requirejs [
   App = new Marionette.Application
 
 
-  # Construct layout
+  App.addInitializer ->
+    @state = new Backbone.Model active: true
+    @state.on 'change:active', => @reports?.fetch()
+
+
   App.addInitializer ->
     @layout = new MonitoringLayout app: @
     jQuery('#monitoring').empty().append @layout.render().el
@@ -65,15 +69,5 @@ requirejs [
     @reports.fetch()
 
 
-#  App.addInitializer ->
-#    @codingRulesActionsView = new CodingRulesActionsView
-#      app: @
-#      collection: @reports
-#    @layout.actionsRegion.show @codingRulesActionsView
-
-
-  # Message bundles
   l10nXHR = window.requestMessages()
-
-
   jQuery.when(l10nXHR).done -> App.start()
index 94deb2289b3bd0f0eb89bc4898f00473fececfe2..ebf88e223e25b78168f9bea16f0c8dd88280ba4a 100644 (file)
@@ -9,14 +9,14 @@ define ['third-party/jquery.mockjax'], ->
     responseText: JSON.stringify
       paging:
         pageIndex: 1
-        pageSize: 5
-        total: 206
-        pages: 42
+        pageSize: 3
+        total: 3
+        pages: 1
       reports: [
         {
           id: 84
-          project: "org.codehaus.sonar:sonar"
-          projectName: "SonarQube"
+          project: "org.codehaus.sonar-plugins.visualstudio:sonar-visual-studio-plugin"
+          projectName: "Analysis Bootstrapper for Visual Studio Projects"
           startDate: "2014-07-19T23:11:33+06:00"
           status: "PENDING"
         }
@@ -24,90 +24,14 @@ define ['third-party/jquery.mockjax'], ->
           id: 83
           project: "org.codehaus.sonar:sonar"
           projectName: "SonarQube"
-          startDate: "2014-07-19T23:10:33+06:00"
-          endDate: "2014-07-19T23:12:01+06:00"
-          status: "DONE"
-          extra: "Some additional text or stack trace."
+          startDate: "2014-07-19T23:11:33+06:00"
+          status: "WORKING"
         }
         {
           id: 82
           project: "org.codehaus.sonar:sonar"
           projectName: "SonarQube"
-          startDate: "2014-07-19T23:10:33+06:00"
-          endDate: "2014-07-19T23:12:01+06:00"
-          status: "DONE"
-          extra: "Some additional text or stack trace."
-        }
-        {
-          id: 81
-          project: "org.codehaus.sonar:sonar"
-          projectName: "SonarQube"
-          startDate: "2014-07-19T23:10:33+06:00"
-          endDate: "2014-07-19T23:12:01+06:00"
-          status: "DONE"
-          extra: "Some additional text or stack trace."
-        }
-        {
-          id: 80
-          project: "org.codehaus.sonar:sonar"
-          projectName: "SonarQube"
-          startDate: "2014-07-19T23:10:33+06:00"
-          endDate: "2014-07-19T23:12:01+06:00"
-          status: "DONE"
-          extra: "Some additional text or stack trace."
-        }
-        {
-          id: 79
-          project: "org.codehaus.sonar:sonar"
-          projectName: "SonarQube"
-          startDate: "2014-07-19T23:10:33+06:00"
-          endDate: "2014-07-19T23:12:01+06:00"
-          status: "DONE"
-          extra: "Some additional text or stack trace."
-        }
-        {
-          id: 78
-          project: "org.codehaus.sonar:sonar"
-          projectName: "SonarQube"
-          startDate: "2014-07-19T23:10:33+06:00"
-          endDate: "2014-07-19T23:12:01+06:00"
-          status: "DONE"
-          extra: "Some additional text or stack trace."
-        }
-        {
-          id: 77
-          project: "org.codehaus.sonar:sonar"
-          projectName: "SonarQube"
-          startDate: "2014-07-19T23:10:33+06:00"
-          endDate: "2014-07-19T23:12:01+06:00"
-          status: "DONE"
-          extra: "Some additional text or stack trace."
-        }
-        {
-          id: 76
-          project: "org.codehaus.sonar:sonar"
-          projectName: "SonarQube"
-          startDate: "2014-07-19T23:10:33+06:00"
-          endDate: "2014-07-19T23:12:01+06:00"
-          status: "DONE"
-          extra: "Some additional text or stack trace."
-        }
-        {
-          id: 75
-          project: "org.codehaus.sonar:sonar"
-          projectName: "SonarQube"
-          startDate: "2014-07-19T23:10:33+06:00"
-          endDate: "2014-07-19T23:12:01+06:00"
-          status: "DONE"
-          extra: "Some asdditional text or stack trace."
-        }
-        {
-          id: 74
-          project: "org.codehaus.sonar:sonar"
-          projectName: "SonarQube"
-          startDate: "2014-07-19T23:10:33+06:00"
-          endDate: "2014-07-19T23:12:01+06:00"
-          status: "DONE"
-          extra: "Some additional text or stack trace."
+          startDate: "2014-07-19T23:11:33+06:00"
+          status: "PENDING"
         }
       ]
index 4decd30ef9947aabfbae487eabf1d3e06b972ce1..cbfa90101e4ef5164228445b74d767d600ad4302 100644 (file)
@@ -8,3 +8,25 @@ define [
 
   class extends Marionette.ItemView
     template: Templates['monitoring-header']
+    
+
+    events:
+      'click .js-monitoring-past': 'showPastReports'
+      'click .js-monitoring-current': 'showCurrentActivity'
+
+
+    initialize: (options) ->
+      @listenTo options.app.state, 'change', @render
+
+
+    showPastReports: ->
+      @options.app.state.set active: false
+
+
+    showCurrentActivity: ->
+      @options.app.state.set active: true
+
+
+    serializeData: ->
+      _.extend super,
+        state: @options.app.state.toJSON()
index 31680d448c2bd951832d842bd1ab50d23e6ec3bf..6967d5dade28e52a69190154bf45e1693b0cfa2a 100644 (file)
@@ -9,3 +9,10 @@ define [
   class extends Marionette.ItemView
     tagName: 'li'
     template: Templates['monitoring-report']
+
+
+    onRender: ->
+      status = @model.get 'status'
+      @$el.addClass 'monitoring-report-pending' if status is 'PENDING'
+      @$el.addClass 'monitoring-report-working' if status is 'WORKING'
+      @$el.addClass 'monitoring-report-done' if status is 'DONE'
index 7882d9e99f2d760786937638476577ef21715a89..9ec333d0f87f5bfe6ced2495c10023dd51dca7b0 100644 (file)
@@ -1,2 +1,9 @@
 <h1 class="navigator-header-title">{{t 'monitoring.page'}}</h1>
 
+<div class="navigator-header-actions button-group">
+  {{#if state.active}}
+    <button class="js-monitoring-past">{{t 'monitoring.show_past_reports'}}</button>
+  {{else}}
+    <button class="js-monitoring-current">{{t 'monitoring.show_current_activity'}}</button>
+  {{/if}}
+</div>
index f4bf713e493236224b9676e4545a9e2b70f6056a..b8bb92bc4bbfba358f36fafc88ee9634c8320605 100644 (file)
@@ -6,4 +6,9 @@
       <div class="navigator-results"></div>
     </div>
   </div>
+  <div class="navigator-main">
+    <div class="navigator-details">
+      <i class="spinner monitoring-spinner"></i>
+    </div>
+  </div>
 </div>
index c6bdea3bc369ab5fbf7ec181b69c3ec4c154b241..cf4ee94b215fc1a07db2bf1acececd6cd44b1293 100644 (file)
@@ -1,7 +1,19 @@
-<div class="line line-small">
-  Started: {{dt startTime}}
-</div>
+{{#if endDate}}
+  <div class="line line-small">
+    Finished: {{dt endDate}}
+  </div>
+{{/if}}
 
 <div class="line">
-  <i class="icon-qualifier-trk"></i> {{projectName}}
+  <span class="monitoring-project">
+    <i class="icon-qualifier-trk"></i>
+    <a href="{{dashboardUrl project}}">{{projectName}}</a>
+  </span>
+
+  <span class="monitoring-timestamp line-small">
+    Started: {{dt startDate}}
+    {{#eq status 'WORKING'}}<i class="spinner monitoring-timestamp-spinner"></i> {{/eq}}
+  </span>
 </div>
+
+<div class="monitoring-report-id">{{id}} {{status}}</div>
index 376b7b1ceb511bcd29d4937bbb51affb5d6472c2..2b3ce0ea0415225b1f2c116f332cc6ac0a2732b0 100644 (file)
@@ -1,7 +1,25 @@
+@import (reference) "mixins";
+@import (reference) "variables";
+@import (reference) "ui";
+
+
+@pendingColor: #fdfce2;
+@workingColor: #ecf9fc;
+
+
 .monitoring-navigator {
   margin: -10px;
 
-  .navigator-results { margin-top: 0; }
+  .navigator-side {
+    width: 50%;
+    max-width: none;
+  }
+
+  .navigator-results {
+    width: auto;
+    max-width: none;
+    margin-top: 0;
+  }
 
   .navigator-results-list > li {
     cursor: default;
@@ -9,4 +27,66 @@
     &:hover { background: transparent; }
   }
 
+  .navigator-details { text-align: center; }
+
+}
+
+.monitoring-report-pending {
+  background-color: @pendingColor !important;
+}
+
+.monitoring-report-working {
+  background-color: @workingColor !important;
+}
+
+.monitoring-report-done {
+  opacity: 0.75;
+}
+
+.monitoring-project {
+  display: inline-block;
+  vertical-align: middle;
+  width: 30%;
+  .text-ellipsis;
+}
+
+.monitoring-timestamp {
+  display: inline-block;
+  vertical-align: middle;
+  width: 180px;
+  margin-left: 15px;
+}
+
+.monitoring-report-id {
+  position: absolute;
+  top: 6px;
+  right: 6px;
+  opacity: 0.3;
+  font-size: @bigFontSize;
+
+  &:before { content: '#'; }
+}
+
+.monitoring-spinner {
+  .size(200px, 200px);
+  margin-top: 20px;
 }
+
+.monitoring-spinner,
+.monitoring-spinner:before
+.monitoring-spinner:after {
+  -webkit-animation-duration: 6s;
+  animation-duration: 6s;
+}
+
+.monitoring-timestamp-spinner {
+  margin-left: 10px;
+}
+
+.monitoring-timestamp-spinner,
+.monitoring-timestamp-spinner:before,
+.monitoring-timestamp-spinner:after {
+  -webkit-animation-duration: 2s;
+  animation-duration: 2s;
+}
+
index a6028bd5417beaebffc92111678bc7e446752de0..3e5d12289511f06a9e1da03e3de53be19e1effaf 100644 (file)
@@ -2763,4 +2763,5 @@ libs.usageLink=Usages
 # MONITORING
 #
 #------------------------------------------------------------------------------
-
+monitoring.show_past_reports=Show Past Reports
+monitoring.show_current_activity=Show Current Activity