Christopher Johnson (WMDE) has uploaded a new change for review.

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

Change subject: adds BoardDataPieView that shows  board column point 
distribution
......................................................................

adds BoardDataPieView that shows  board column point distribution

Change-Id: If4ff934de3509c83b940ec8cd8bed0849b22ce6b
---
A rsrc/behavior-board-data-pie.js
M rsrc/behavior-c3-pie.js
M src/__phutil_library_map__.php
M src/celerity/map.php
M src/query/SprintQuery.php
A src/view/burndown/BoardDataPieView.php
M src/view/burndown/SprintDataView.php
7 files changed, 130 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/phabricator/extensions/Sprint 
refs/changes/17/189017/1

diff --git a/rsrc/behavior-board-data-pie.js b/rsrc/behavior-board-data-pie.js
new file mode 100644
index 0000000..5ce7ed1
--- /dev/null
+++ b/rsrc/behavior-board-data-pie.js
@@ -0,0 +1,23 @@
+/**
+ * @provides javelin-behavior-c3-board-data-pie
+ */
+
+JX.behavior('c3-board-data-pie', function(config) {
+
+    var h = JX.$(config.hardpoint);
+    var l = c3.generate({
+        bindto: h,
+        data: {
+            columns: [
+                ['Backlog', config.Backlog],
+                ['Doing', config.Doing],
+                ['Review', config.Review],
+                ['Done', config.Done]
+            ],
+            type: 'pie'
+        },
+        color: {
+            pattern: ['#BDBDBD', '#FF7F0E', '#2CA02C', '#D62728' ]
+        }
+    });
+});
diff --git a/rsrc/behavior-c3-pie.js b/rsrc/behavior-c3-pie.js
index 248132b..a598aa9 100644
--- a/rsrc/behavior-c3-pie.js
+++ b/rsrc/behavior-c3-pie.js
@@ -13,6 +13,9 @@
                 ['resolved', config.resolved]
             ],
             type: 'pie'
+        },
+        color: {
+            pattern: ['#1f77b4', '#D62728']
         }
     });
 });
diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
index efd8141..10b524d 100644
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -10,6 +10,7 @@
   '__library_version__' => 2,
   'class' => array(
     'AutoLoader' => 'tests/Autoloader.php',
+    'BoardDataPieView' => 'view/burndown/BoardDataPieView.php',
     'BoardDataProvider' => 'storage/BoardDataProvider.php',
     'BoardDataView' => 'view/burndown/BoardDataView.php',
     'BurndownActionMenuEventListener' => 
'events/BurndownActionMenuEventListener.php',
diff --git a/src/celerity/map.php b/src/celerity/map.php
index 63426aa..0c6ecb4 100644
--- a/src/celerity/map.php
+++ b/src/celerity/map.php
@@ -7,8 +7,9 @@
  */
 return array(
   'names' => array(
+    'behavior-board-data-pie.js' => 'a1302bf1',
     'behavior-c3-chart.js' => '4bd6b4ca',
-    'behavior-c3-pie.js' => '4731bdd9',
+    'behavior-c3-pie.js' => 'ae804fb1',
     'behavior-sprint-boards.js' => 'b2754b95',
     'c3.css' => '93642428',
     'c3.js' => '4b517cca',
@@ -19,8 +20,9 @@
     'c3' => '4b517cca',
     'c3-css' => '93642428',
     'd3' => '1595fbde',
+    'javelin-behavior-c3-board-data-pie' => 'a1302bf1',
     'javelin-behavior-c3-chart' => '4bd6b4ca',
-    'javelin-behavior-c3-pie' => '4731bdd9',
+    'javelin-behavior-c3-pie' => 'ae804fb1',
     'javelin-behavior-sprint-boards' => 'b2754b95',
     'phui-workboard-view-css' => '24307748',
   ),
diff --git a/src/query/SprintQuery.php b/src/query/SprintQuery.php
index 39af964..b0c6561 100644
--- a/src/query/SprintQuery.php
+++ b/src/query/SprintQuery.php
@@ -224,6 +224,7 @@
         ->setViewer($this->viewer)
         ->withProjectPHIDs(array($this->project_phid))
         ->execute();
+    $columns = msort($columns, 'getSequence');
     return $columns;
   }
 
diff --git a/src/view/burndown/BoardDataPieView.php 
b/src/view/burndown/BoardDataPieView.php
new file mode 100644
index 0000000..6979eb4
--- /dev/null
+++ b/src/view/burndown/BoardDataPieView.php
@@ -0,0 +1,85 @@
+<?php
+
+final class BoardDataPieView {
+
+  private $project;
+  private $board_data;
+
+  public function setBoardData ($board_data) {
+    $this->board_data = $board_data;
+    return $this;
+  }
+
+  public function setProject($project) {
+    $this->project = $project;
+    return $this;
+  }
+
+  public function buildBoardDataPie() {
+    require_celerity_resource('d3', 'sprint');
+    require_celerity_resource('c3-css', 'sprint');
+    require_celerity_resource('c3', 'sprint');
+
+    $coldata = array();
+    $board_columns = $this->board_data->buildBoardDataSet();
+    foreach ($board_columns as $column_phid => $tasks) {
+      $colname = $this->board_data->getColumnName($column_phid);
+      $task_count = count($tasks);
+      $task_points_total = $this->board_data->getTaskPointsSum($tasks);
+      $coldata[] = array(
+          $colname, $task_count, $task_points_total,
+      );
+    }
+    $done_points = '0';
+    $backlog_points = '0';
+    $doing_points = '0';
+    $review_points = '0';
+
+    foreach ($coldata as $col) {
+      switch ($col[0]) {
+        case ('Done'):
+          $done_points = $col[2];
+          break;
+        case ('Backlog'):
+          $backlog_points = $col[2];
+          break;
+        case ('Doing'):
+          $doing_points = $col[2];
+          break;
+        case ('Review'):
+          $review_points = $col[2];
+          break;
+        default:
+          break;
+      }
+    }
+
+    $id = 'c3-board-data-pie';
+    Javelin::initBehavior('c3-board-data-pie', array(
+        'hardpoint' => $id,
+        'Backlog' => $backlog_points,
+        'Doing' => $doing_points,
+        'Review' => $review_points,
+        'Done' => $done_points,
+    ), 'sprint');
+
+
+    $boardpie = phutil_tag('div',
+            array(
+                'id' => 'c3-board-data-pie',
+                'style' => 'width: 400px; height:200px; padding-right: 200px; 
float: left;',
+            ), pht('Board'));
+    $taskpie = phutil_tag('div',
+            array(
+                'id' => 'pie',
+                'style' => 'width: 300px; height:200px; margin-left: 600px;',
+            ), pht('Task Status'));
+    $box = id(new PHUIObjectBoxView())
+        ->setHeaderText(pht('Progress Report for '.
+            $this->project->getName()))
+        ->appendChild($boardpie)
+        ->appendChild($taskpie);
+    return $box;
+  }
+}
+
diff --git a/src/view/burndown/SprintDataView.php 
b/src/view/burndown/SprintDataView.php
index 8a6407d..599661e 100644
--- a/src/view/burndown/SprintDataView.php
+++ b/src/view/burndown/SprintDataView.php
@@ -59,11 +59,22 @@
         ->setStats($stats)
         ->setQuery($query);
 
+    $pie_chart_view = id(new C3PieView())
+        ->setTasks($this->tasks)
+        ->setTaskPoints($this->taskpoints)
+        ->setProject($this->project);
+    $task_pie = $pie_chart_view->buildC3Pie();
+
+    $board_data_pie_view = id(new BoardDataPieView())
+        ->setBoardData($board_model)
+        ->setProject($this->project);
+    $pies = $board_data_pie_view->buildBoardDataPie();
+
     $board_data_table_view = id(new BoardDataView())
         ->setBoardData($board_model);
     $board_table = $board_data_table_view->buildBoardDataTable();
-    $board_chart_data = $board_model->buildChartfromBoardData();
 
+    $board_chart_data = $board_model->buildChartfromBoardData();
     $board_chart_view = id(new C3ChartView())
         ->setChartData($board_chart_data)
         ->setProject($this->project)
@@ -79,12 +90,6 @@
         ->setQuery($query);
     $tasks_table = $tasks_table_view->buildTasksTable();
 
-    $pie_chart_view = id(new C3PieView())
-        ->setTasks($this->tasks)
-        ->setTaskPoints($this->taskpoints)
-        ->setProject($this->project);
-    $pie_chart = $pie_chart_view->buildC3Pie();
-
     $event_table_view = id(new EventTableView())
         ->setProject($this->project)
         ->setViewer($this->viewer)
@@ -94,7 +99,7 @@
     $event_table = $event_table_view->buildEventTable(
         $this->start, $this->end);
 
-    return array($board_chart, $board_table, $pie_chart, $tasks_table,
+    return array($board_chart, $board_table, $pies, $tasks_table,
      $event_table,);
   }
 

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: If4ff934de3509c83b940ec8cd8bed0849b22ce6b
Gerrit-PatchSet: 1
Gerrit-Project: phabricator/extensions/Sprint
Gerrit-Branch: master
Gerrit-Owner: Christopher Johnson (WMDE) <[email protected]>

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

Reply via email to