Christopher Johnson (WMDE) has submitted this change and it was merged.
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(-)
Approvals:
jenkins-bot: Verified
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: merged
Gerrit-Change-Id: If4ff934de3509c83b940ec8cd8bed0849b22ce6b
Gerrit-PatchSet: 1
Gerrit-Project: phabricator/extensions/Sprint
Gerrit-Branch: master
Gerrit-Owner: Christopher Johnson (WMDE) <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits