[MediaWiki-commits] [Gerrit] Add new feature Task Status Report Pie Chart in BurndownView - change (phabricator...Sprint)
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)
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 =