Mforns has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/348227 )

Change subject: Add annotations to tabs layout
......................................................................

Add annotations to tabs layout

Bug: T162482
Change-Id: I5d0c9cab72aa713c7f0e6cd7b1f1d832c7aca5b8
---
M src/app/apis/aqs-api.js
M src/components/layouts/tabs/tabs.js
M src/components/visualizers/dygraphs-timeseries/bindings.js
M src/components/visualizers/visualizer/visualizer.js
M src/layouts/tabs/styles.css
5 files changed, 46 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/analytics/dashiki 
refs/changes/27/348227/1

diff --git a/src/app/apis/aqs-api.js b/src/app/apis/aqs-api.js
index 8f339d2..280dbf9 100644
--- a/src/app/apis/aqs-api.js
+++ b/src/app/apis/aqs-api.js
@@ -92,7 +92,7 @@
 
                 // Datasets are disjoint but we need to add them so that
                 // the timeseries object makes sense.
-                var ts = TimeseriesData.mergeAll(timeseries)
+                var ts = TimeseriesData.mergeAll(timeseries);
                 deferred.resolve(ts);
 
             }, function (reason) {
diff --git a/src/components/layouts/tabs/tabs.js 
b/src/components/layouts/tabs/tabs.js
index 6866983..3f0edc8 100644
--- a/src/components/layouts/tabs/tabs.js
+++ b/src/components/layouts/tabs/tabs.js
@@ -7,7 +7,8 @@
     var ko = require('knockout'),
         _ = require('lodash'),
         templateMarkup = require('text!./tabs.html'),
-        configApi = require('apis.config');
+        configApi = require('apis.config'),
+        annotationsApi = require('apis.annotations');
 
     require('twix');
 
@@ -64,6 +65,15 @@
                         g.type === 'stacked-bars' ? 'bar' :
                         g.type === 'dygraphs-timeseries' ? 'line' :
                         g.type === 'table-timeseries' ? 'table' : '';
+
+                    // Fetch annotations if present
+                    var annotationsInfo = g.annotations;
+                    g.annotations = ko.observable();
+                    if (annotationsInfo) {
+                        annotationsApi.getTimeseriesData(
+                            {annotations: annotationsInfo}
+                        ).then(g.annotations);
+                    }
                 });
 
             }, this);
diff --git a/src/components/visualizers/dygraphs-timeseries/bindings.js 
b/src/components/visualizers/dygraphs-timeseries/bindings.js
index 78d5692..201b8d2 100644
--- a/src/components/visualizers/dygraphs-timeseries/bindings.js
+++ b/src/components/visualizers/dygraphs-timeseries/bindings.js
@@ -75,12 +75,14 @@
                     dygraphChart.ready(function () {
                         var i = 0,
                             $roller = $(dygraphChart.roller_),
-                            $rollerHolder = $('<span 
class="dygraph-roller">Averaging: </span>');
+                            $rollerHolder = $('<span 
class="dygraph-roller">Averaging: </span>')
+                            charCode = 65;
 
                         
dygraphChart.setAnnotations(annotations.rowData().map(function (a) {
                             // find the closest date in the data that fits
                             var closestDate = null;
                             var lastDistance = Math.pow(2, 53) - 1;
+
                             for (; i < rows.length; i++) {
                                 var date = rows[i][0];
                                 var thisDistance = Math.min(lastDistance, 
Math.abs(date.getTime() - a[0]));
@@ -103,7 +105,7 @@
                                 // just attach to the first series and show on 
X axis
                                 series: options.labels[1],
                                 attachAtBottom: true,
-                                shortText: 'A',
+                                shortText: String.fromCharCode(charCode++),
                                 // annoying thing to learn through 
experimentation:
                                 //   Dygraphs requires Date instances for the 
data, but
                                 //   Dygraphs requires milliseconds since 
epoch for the annotations
diff --git a/src/components/visualizers/visualizer/visualizer.js 
b/src/components/visualizers/visualizer/visualizer.js
index 19002a9..e28204b 100644
--- a/src/components/visualizers/visualizer/visualizer.js
+++ b/src/components/visualizers/visualizer/visualizer.js
@@ -141,6 +141,7 @@
             format: numberUtils.numberFormatter(graph.format),
             height: 500,
             id: _.kebabCase([graph.metric, graph.submetric].join('-')),
+            annotations: graph.annotations,
         };
         this.params.downloadLink = graph.downloadLink;
         this.legendHeight = this.params.height - 80 + 'px';
diff --git a/src/layouts/tabs/styles.css b/src/layouts/tabs/styles.css
index 94d181b..c35ba52 100644
--- a/src/layouts/tabs/styles.css
+++ b/src/layouts/tabs/styles.css
@@ -82,3 +82,32 @@
     font-size: 11px!important;
     padding-right: 4px!important;
 }
+
+/* Patches appearance of annotations */
+.dygraphDefaultAnnotation {
+    top: 0 !important;
+    height: calc(100% - 1.8em) !important;
+    width: 0 !important;
+    border-left: 0.05em dashed !important;
+    border-right-style: none !important;
+    border-top-style: none !important;
+    border-bottom-style: none !important;
+    background-color: transparent !important;
+    margin-left: 0.53em !important;
+    padding-left: 0.15em !important;
+    overflow: visible !important;
+}
+
+/* Presence of annotations messes with the averaging days control */
+.dygraph-roller input {
+    position: relative !important;
+    left: auto !important;
+    top: auto !important;
+    display: inline !important;
+}
+
+/* Presence of annotations needs to modify position of the legend */
+.dygraph-legend {
+    z-index: 15 !important;
+    top: 1.5em !important;
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/348227
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5d0c9cab72aa713c7f0e6cd7b1f1d832c7aca5b8
Gerrit-PatchSet: 1
Gerrit-Project: analytics/dashiki
Gerrit-Branch: master
Gerrit-Owner: Mforns <mfo...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to