[MediaWiki-commits] [Gerrit] Add new feature Task Status Report Pie Chart in BurndownView - change (phabricator...Sprint)

2014-11-10 Thread Christopher Johnson (WMDE) (Code Review)
Christopher Johnson (WMDE) has uploaded a new change for review.

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

Change subject: Add new feature Task Status Report Pie Chart in BurndownView
..

Add new feature Task Status Report Pie Chart in BurndownView

Change-Id: I53cf91cc6dd892814e6f34a30a0b9ee94edd8822
---
A rsrc/behavior-c3-pie.js
M src/celerity/CeleritySprintResources.php
M src/celerity/map.php
M src/storage/SprintBuildStats.php
M src/view/BurndownDataView.php
M src/view/SprintReportOpenTasksView.php
6 files changed, 134 insertions(+), 39 deletions(-)


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

diff --git a/rsrc/behavior-c3-pie.js b/rsrc/behavior-c3-pie.js
new file mode 100644
index 000..248132b
--- /dev/null
+++ b/rsrc/behavior-c3-pie.js
@@ -0,0 +1,18 @@
+/**
+ * @provides javelin-behavior-c3-pie
+ */
+
+JX.behavior('c3-pie', function(config) {
+
+var h = JX.$(config.hardpoint);
+var l = c3.generate({
+bindto: h,
+data: {
+columns: [
+['open', config.open],
+['resolved', config.resolved]
+],
+type: 'pie'
+}
+});
+});
diff --git a/src/celerity/CeleritySprintResources.php 
b/src/celerity/CeleritySprintResources.php
index 44f2caf..3aa7373 100644
--- a/src/celerity/CeleritySprintResources.php
+++ b/src/celerity/CeleritySprintResources.php
@@ -10,7 +10,7 @@
   }
 
   public function getPathToResources() {
-return $this-getSprintPath('rsrc');
+return $this-getSprintPath('../rsrc');
   }
 
   public function getPathToMap() {
diff --git a/src/celerity/map.php b/src/celerity/map.php
index b0839a4..a16d715 100644
--- a/src/celerity/map.php
+++ b/src/celerity/map.php
@@ -8,6 +8,7 @@
 return array(
   'names' = array(
 'behavior-c3-chart.js' = '339d1b90',
+'behavior-c3-pie.js' = '4731bdd9',
 'c3.css' = '93642428',
 'c3.js' = '4b517cca',
 'd3.min.js' = '1595fbde',
@@ -17,6 +18,7 @@
 'c3-css' = '93642428',
 'd3' = '1595fbde',
 'javelin-behavior-c3-chart' = '339d1b90',
+'javelin-behavior-c3-pie' = '4731bdd9',
   ),
   'requires' = array(
 '4b517cca' = array(
diff --git a/src/storage/SprintBuildStats.php b/src/storage/SprintBuildStats.php
index 120d18c..8506279 100644
--- a/src/storage/SprintBuildStats.php
+++ b/src/storage/SprintBuildStats.php
@@ -2,7 +2,10 @@
 
 final class SprintBuildStats {
 
-  public function buildDateArray($start, $end, $timezone) {
+  private $task_open_status_sum;
+  private $task_closed_status_sum;
+
+public function buildDateArray($start, $end, $timezone) {
 
 $period = new DatePeriod(
 id(new DateTime(@ . $start, $timezone))-setTime(8, 0),
@@ -105,4 +108,14 @@
 }
 return $data;
   }
+
+  public function setTaskOpenStatusSum ($task_open_status_sum,$points)
+  {
+return $task_open_status_sum += $points;
+  }
+
+  public function setTaskClosedStatusSum ($task_closed_status_sum, $points)
+  {
+return $task_closed_status_sum+=$points;
+  }
 }
diff --git a/src/view/BurndownDataView.php b/src/view/BurndownDataView.php
index 004fce2..98e2ba1 100644
--- a/src/view/BurndownDataView.php
+++ b/src/view/BurndownDataView.php
@@ -12,6 +12,8 @@
   private $viewer;
   private $tasks;
   private $xactions;
+  private $task_open_status_sum;
+  private $task_closed_status_sum;
 
   public function setProject ($project) {
 $this-project = $project;
@@ -31,9 +33,10 @@
   public function render() {
 $chart = $this-buildC3Chart();
 $tasks_table = $this-buildTasksTable();
+$pie = $this-buildC3Pie();
 $burndown_table = $this-buildBurnDownTable();
 $event_table = $this-buildEventTable();
-return array ($chart, $tasks_table, $burndown_table, $event_table);
+return array ($chart, $pie, $tasks_table, $burndown_table, $event_table);
   }
 
   private function buildChartDataSet() {
@@ -120,6 +123,32 @@
 ), ''));
 
 return $chart;
+  }
+
+  private function buildC3Pie() {
+$task_open_status_sum = $this-task_open_status_sum;
+$task_closed_status_sum = $this-task_closed_status_sum;
+
+require_celerity_resource('d3','sprint');
+require_celerity_resource('c3-css','sprint');
+require_celerity_resource('c3','sprint');
+
+$id = 'pie';
+Javelin::initBehavior('c3-pie', array(
+'hardpoint' = $id,
+'open' = $task_open_status_sum,
+'resolved' = $task_closed_status_sum,
+), 'sprint');
+
+$pie= id(new PHUIObjectBoxView())
+-setHeaderText(pht('Task Status Report for ' . 
$this-project-getName()))
+-appendChild(phutil_tag('div',
+array(
+'id' = 'pie',
+'style' = 'width: 100%; height:200px'
+), ''));
+
+return $pie;
   }
 
   /**
@@ -271,6 +300,15 @@
 $points = trim($points, '');
 
 $priority_name = new ManiphestTaskPriority();
+
+$status 

[MediaWiki-commits] [Gerrit] Add new feature Task Status Report Pie Chart in BurndownView - change (phabricator...Sprint)

2014-11-10 Thread Christopher Johnson (WMDE) (Code Review)
Christopher Johnson (WMDE) has submitted this change and it was merged.

Change subject: Add new feature Task Status Report Pie Chart in BurndownView
..


Add new feature Task Status Report Pie Chart in BurndownView

Change-Id: I53cf91cc6dd892814e6f34a30a0b9ee94edd8822
---
A rsrc/behavior-c3-pie.js
M src/celerity/CeleritySprintResources.php
M src/celerity/map.php
M src/storage/SprintBuildStats.php
M src/view/BurndownDataView.php
M src/view/SprintReportOpenTasksView.php
6 files changed, 141 insertions(+), 39 deletions(-)

Approvals:
  Christopher Johnson (WMDE): Verified; Looks good to me, approved



diff --git a/rsrc/behavior-c3-pie.js b/rsrc/behavior-c3-pie.js
new file mode 100644
index 000..248132b
--- /dev/null
+++ b/rsrc/behavior-c3-pie.js
@@ -0,0 +1,18 @@
+/**
+ * @provides javelin-behavior-c3-pie
+ */
+
+JX.behavior('c3-pie', function(config) {
+
+var h = JX.$(config.hardpoint);
+var l = c3.generate({
+bindto: h,
+data: {
+columns: [
+['open', config.open],
+['resolved', config.resolved]
+],
+type: 'pie'
+}
+});
+});
diff --git a/src/celerity/CeleritySprintResources.php 
b/src/celerity/CeleritySprintResources.php
index 44f2caf..3aa7373 100644
--- a/src/celerity/CeleritySprintResources.php
+++ b/src/celerity/CeleritySprintResources.php
@@ -10,7 +10,7 @@
   }
 
   public function getPathToResources() {
-return $this-getSprintPath('rsrc');
+return $this-getSprintPath('../rsrc');
   }
 
   public function getPathToMap() {
diff --git a/src/celerity/map.php b/src/celerity/map.php
index b0839a4..a16d715 100644
--- a/src/celerity/map.php
+++ b/src/celerity/map.php
@@ -8,6 +8,7 @@
 return array(
   'names' = array(
 'behavior-c3-chart.js' = '339d1b90',
+'behavior-c3-pie.js' = '4731bdd9',
 'c3.css' = '93642428',
 'c3.js' = '4b517cca',
 'd3.min.js' = '1595fbde',
@@ -17,6 +18,7 @@
 'c3-css' = '93642428',
 'd3' = '1595fbde',
 'javelin-behavior-c3-chart' = '339d1b90',
+'javelin-behavior-c3-pie' = '4731bdd9',
   ),
   'requires' = array(
 '4b517cca' = array(
diff --git a/src/storage/SprintBuildStats.php b/src/storage/SprintBuildStats.php
index 120d18c..c412391 100644
--- a/src/storage/SprintBuildStats.php
+++ b/src/storage/SprintBuildStats.php
@@ -2,7 +2,10 @@
 
 final class SprintBuildStats {
 
-  public function buildDateArray($start, $end, $timezone) {
+  private $task_open_status_sum;
+  private $task_closed_status_sum;
+
+public function buildDateArray($start, $end, $timezone) {
 
 $period = new DatePeriod(
 id(new DateTime(@ . $start, $timezone))-setTime(8, 0),
@@ -105,4 +108,14 @@
 }
 return $data;
   }
+
+  public function setTaskOpenStatusSum ($task_open_status_sum, $points) {
+$task_open_status_sum += $points;
+return $task_open_status_sum;
+  }
+
+  public function setTaskClosedStatusSum ($task_closed_status_sum, $points) {
+$task_closed_status_sum += $points;
+return $task_closed_status_sum;
+  }
 }
diff --git a/src/view/BurndownDataView.php b/src/view/BurndownDataView.php
index 004fce2..b8ce0f9 100644
--- a/src/view/BurndownDataView.php
+++ b/src/view/BurndownDataView.php
@@ -12,6 +12,8 @@
   private $viewer;
   private $tasks;
   private $xactions;
+  private $task_open_status_sum;
+  private $task_closed_status_sum;
 
   public function setProject ($project) {
 $this-project = $project;
@@ -31,9 +33,10 @@
   public function render() {
 $chart = $this-buildC3Chart();
 $tasks_table = $this-buildTasksTable();
+$pie = $this-buildC3Pie();
 $burndown_table = $this-buildBurnDownTable();
 $event_table = $this-buildEventTable();
-return array ($chart, $tasks_table, $burndown_table, $event_table);
+return array ($chart, $pie, $tasks_table, $burndown_table, $event_table);
   }
 
   private function buildChartDataSet() {
@@ -120,6 +123,32 @@
 ), ''));
 
 return $chart;
+  }
+
+  private function buildC3Pie() {
+$task_open_status_sum = $this-task_open_status_sum;
+$task_closed_status_sum = $this-task_closed_status_sum;
+
+require_celerity_resource('d3','sprint');
+require_celerity_resource('c3-css','sprint');
+require_celerity_resource('c3','sprint');
+
+$id = 'pie';
+Javelin::initBehavior('c3-pie', array(
+'hardpoint' = $id,
+'open' = $task_open_status_sum,
+'resolved' = $task_closed_status_sum,
+), 'sprint');
+
+$pie= id(new PHUIObjectBoxView())
+-setHeaderText(pht('Task Status Report for ' . 
$this-project-getName()))
+-appendChild(phutil_tag('div',
+array(
+'id' = 'pie',
+'style' = 'width: 100%; height:200px'
+), ''));
+
+return $pie;
   }
 
   /**
@@ -271,6 +300,8 @@
 $points = trim($points, '');
 
 $priority_name = new ManiphestTaskPriority();
+$status =