Jdlrobson has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/278395

Change subject: WIP: Allow filtering of data breakdowns
......................................................................

WIP: Allow filtering of data breakdowns

Allow graphs to only show mobile web or desktop

Change-Id: I809dd4fdbafdf24a36e4743e03cad726a4f1898a
---
M src/app/apis/pageview-api.js
M src/components/breakdown-toggle/breakdown-toggle.html
M src/components/breakdown-toggle/breakdown-toggle.js
M src/components/visualizers/wikimetrics/wikimetrics.js
4 files changed, 46 insertions(+), 18 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/analytics/dashiki 
refs/changes/95/278395/1

diff --git a/src/app/apis/pageview-api.js b/src/app/apis/pageview-api.js
index cd4291a..ac0cc44 100644
--- a/src/app/apis/pageview-api.js
+++ b/src/app/apis/pageview-api.js
@@ -38,10 +38,14 @@
 
         var deferred = new $.Deferred(),
             endDate = moment().format('YYYYMMDDHH'),
-            accessMethods;
+            accessMethods = [];
 
         if (showBreakdown) {
-            accessMethods = ['all-access', 'desktop', 'mobile-web'];
+            metric.columns.forEach(function (column) {
+              if ( column.selected() ) {
+                accessMethods.push(column.id);
+              }
+            });
         } else {
             accessMethods = ['all-access'];
         }
diff --git a/src/components/breakdown-toggle/breakdown-toggle.html 
b/src/components/breakdown-toggle/breakdown-toggle.html
index 41b8d1b..f431fbc 100644
--- a/src/components/breakdown-toggle/breakdown-toggle.html
+++ b/src/components/breakdown-toggle/breakdown-toggle.html
@@ -7,14 +7,15 @@
     </a>
     <!-- ko if: metric().showBreakdown -->
     <div class="colored menu">
-    <!-- ko foreach: metric().breakdown.columns -->
+    <!-- ko foreach: metric().columns -->
         <div class="item">
             <span>
                 <i class="circle icon"></i>
-                <span data-bind="text: $data"></span>
+                <span data-bind="text: label"></span>
+                <input type="checkbox" data-bind="checked: selected">
                 <svg height="10" width="80">
                     <path stroke="white"
-                          data-bind="attr: {'stroke-dasharray': 
$parent.dashes($index)}"
+                          data-bind="attr: {'stroke-dasharray': pattern}"
                           d="M6 5 l215 0" />
                 </svg>
             </span>
diff --git a/src/components/breakdown-toggle/breakdown-toggle.js 
b/src/components/breakdown-toggle/breakdown-toggle.js
index 45ab1b2..4797142 100644
--- a/src/components/breakdown-toggle/breakdown-toggle.js
+++ b/src/components/breakdown-toggle/breakdown-toggle.js
@@ -1,27 +1,44 @@
 'use strict';
 define(function (require) {
-
+    var ko = require('knockout');
     var templateMarkup = require('text!./breakdown-toggle.html');
 
     function BreakdownToggle(params) {
         var self = this;
+        var dashes = [
+            '',
+            '5, 5',
+            '15, 15',
+            '30, 5',
+        ];
+        // fixme
+        var ids = [
+          'desktop', 'mobile-web'
+        ];
 
         self.metric = params.metric;
+        // fixme: cleanup
+        self.metric().columns = [
+          {
+            id: 'all-access',
+            label: 'All',
+            pattern: dashes[0],
+            selected: ko.observable(true)
+          }
+        ];
+        
+        ko.unwrap(self.metric).breakdown.columns.forEach(function (label, 
index) {
+           self.metric().columns.push( {
+            id: ids[index],
+            selected: ko.observable(true),
+            label: label,
+            // repeat pattern if more than dashes.length
+            pattern: dashes[(index + 1) % dashes.length]
+          } );
+        });
 
         self.toggle = function () {
             self.metric().showBreakdown(!self.metric().showBreakdown());
-        };
-
-        self.dashes = function (index) {
-            // NOTE: this is the same list used in the vega visualization
-            // it would be possible to relate them directly but we should
-            // think carefully about the interface to that component.
-            return [
-                '',
-                '5, 5',
-                '15, 15',
-                '30, 5',
-            ][index() + 1];
         };
     }
 
diff --git a/src/components/visualizers/wikimetrics/wikimetrics.js 
b/src/components/visualizers/wikimetrics/wikimetrics.js
index ec47866..178573f 100644
--- a/src/components/visualizers/wikimetrics/wikimetrics.js
+++ b/src/components/visualizers/wikimetrics/wikimetrics.js
@@ -34,6 +34,12 @@
             if (metric && projects && projects.length) {
                 var showBreakdown = ko.unwrap(metric.showBreakdown);
 
+                if ( showBreakdown ) {
+                  metric.columns.forEach(function ( column ) {
+                    column.selected();
+                  });
+                }
+
                 var api = apiFinder(metric);
 
                 var promises = projects.map(function (project) {

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I809dd4fdbafdf24a36e4743e03cad726a4f1898a
Gerrit-PatchSet: 1
Gerrit-Project: analytics/dashiki
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to