From 03c6e69208b853be0e7f583aa11fef13cc09b4e8 Mon Sep 17 00:00:00 2001 From: Alvaro Soliverez <alvaro.soliverez@collabora.com> Date: Tue, 29 Nov 2016 23:27:33 +0000 Subject: [PATCH] Fix hardcoded columns and priorities in burndown page Not happy with the way it parses columns and priorities, but I couldn't find a way to pass an array through Javelin to JS code Differential Revision: https://phabricator.collabora.co.uk/D973 --- rsrc/behavior-board-data-pie.js | 21 ++++++----- rsrc/behavior-priority-pie.js | 23 ++++++------ src/celerity/map.php | 12 +++--- src/view/burndown/BoardDataPieView.php | 52 ++++++-------------------- 4 files changed, 41 insertions(+), 67 deletions(-) diff --git a/rsrc/behavior-board-data-pie.js b/rsrc/behavior-board-data-pie.js index 5ce7ed1..0e98a44 100644 --- a/rsrc/behavior-board-data-pie.js +++ b/rsrc/behavior-board-data-pie.js @@ -4,20 +4,23 @@ JX.behavior('c3-board-data-pie', function(config) { + var columnPoints = new Array(); + var data = config.Columns.split(";"); + + var len = data.length -1; + for (x = 0; x < len; x = x + 2) { + var column = new Array(); + column[0] = data[x]; + column[1] = data[x+1]; + columnPoints.push(column); + } + 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] - ], + columns: columnPoints, type: 'pie' }, - color: { - pattern: ['#BDBDBD', '#FF7F0E', '#2CA02C', '#D62728' ] - } }); }); diff --git a/rsrc/behavior-priority-pie.js b/rsrc/behavior-priority-pie.js index af41460..ac2a550 100644 --- a/rsrc/behavior-priority-pie.js +++ b/rsrc/behavior-priority-pie.js @@ -4,22 +4,23 @@ JX.behavior('priority-pie', function(config) { + var priorityPoints = new Array(); + var data = config.Priorities.split(";"); + + var len = data.length -1; + for (x = 0; x < len; x = x + 2) { + var priority = new Array(); + priority[0] = data[x]; + priority[1] = data[x+1]; + priorityPoints.push(priority); + } + var h = JX.$(config.hardpoint); var l = c3.generate({ bindto: h, data: { - columns: [ - ['Needs Triage', config.Triage], - ['Unbreak Now!', config.Unbreak], - ['High', config.High], - ['Normal', config.Normal], - ['Low', config.Low], - ['Wishlist', config.Wishlist] - ], + columns: priorityPoints, type: 'pie' }, - color: { - pattern: ['#8e44ad', '#6e5cb6', '#c0392b', '#e67e22', '#f1c40f', '#3498db'] - } }); }); diff --git a/src/celerity/map.php b/src/celerity/map.php index b443d0a..a8b3c58 100644 --- a/src/celerity/map.php +++ b/src/celerity/map.php @@ -7,12 +7,12 @@ */ return array( 'names' => array( - 'behavior-board-data-pie.js' => 'a1302bf1', + 'behavior-board-data-pie.js' => '0e141d9b', 'behavior-burndown-report-chart.js' => '631b0017', 'behavior-c3-chart.js' => '0fe21223', 'behavior-c3-pie.js' => 'ae804fb1', 'behavior-events-table.js' => 'f2c22d32', - 'behavior-priority-pie.js' => 'f72c0144', + 'behavior-priority-pie.js' => 'f0f024ce', 'behavior-sprint-history-table.js' => 'b38db637', 'behavior-sprint-table.js' => '7fb99402', 'behavior-tasks-table.js' => '04f4d973', @@ -23,7 +23,7 @@ return array( 'images/Screenshot-1.png' => '500c0ca0', 'jquery-1.11.3.js' => '944b5c07', 'jquery.dataTables.js' => 'd78eac7f', - 'phui-object-box.css' => '7177101e', + 'phui-object-box.css' => 'ade5179a', 'sprint-report.css' => 'f6959ade', 'webroot-static/sort_asc.png' => '68adbacc', 'webroot-static/sort_both.png' => '9c425f1b', @@ -36,16 +36,16 @@ return array( 'dataTables' => 'd78eac7f', 'dataTables-css' => '31e0c8fd', 'javelin-behavior-burndown-report-chart' => '631b0017', - 'javelin-behavior-c3-board-data-pie' => 'a1302bf1', + 'javelin-behavior-c3-board-data-pie' => '0e141d9b', 'javelin-behavior-c3-chart' => '0fe21223', 'javelin-behavior-c3-pie' => 'ae804fb1', 'javelin-behavior-events-table' => 'f2c22d32', - 'javelin-behavior-priority-pie' => 'f72c0144', + 'javelin-behavior-priority-pie' => 'f0f024ce', 'javelin-behavior-sprint-history-table' => 'b38db637', 'javelin-behavior-sprint-table' => '7fb99402', 'javelin-behavior-tasks-table' => '04f4d973', 'jquery' => '944b5c07', - 'phui-object-box-css' => '7177101e', + 'phui-object-box-css' => 'ade5179a', 'sprint-report-css' => 'f6959ade', ), 'requires' => array( diff --git a/src/view/burndown/BoardDataPieView.php b/src/view/burndown/BoardDataPieView.php index 0da8063..5edca05 100644 --- a/src/view/burndown/BoardDataPieView.php +++ b/src/view/burndown/BoardDataPieView.php @@ -50,38 +50,20 @@ final class BoardDataPieView extends Phobject { require_celerity_resource('c3', 'sprint'); $coldata = $this->boardData->getColumnData(); - $done_points = '0'; - $backlog_points = '0'; - $doing_points = '0'; - $review_points = '0'; + $columns = ""; 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; - } + $col_name = $col[0]; + $col_points = $col[2]; + $columns .= $col_name . ";" . $col_points . ";"; } $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, + 'Columns' => $columns, ), 'sprint'); + } private function initTaskStatusPie() { @@ -110,12 +92,10 @@ final class BoardDataPieView extends Phobject { $task_priority_sum = $sprintpoints ->getPrioritySums(); - if (isset($task_priority_sum['Wishlist'])) { - $lowest_priority = $task_priority_sum['Wishlist']; - } else if (isset($task_priority_sum['Needs Volunteer'])) { - $lowest_priority = $task_priority_sum['Needs Volunteer']; - } else { - $lowest_priority = null; + $priorities = ""; + + foreach(array_keys($task_priority_sum) as $key) { + $priorities .= $key . ";" . $task_priority_sum[$key] . ";"; } require_celerity_resource('d3', 'sprint'); @@ -125,17 +105,7 @@ final class BoardDataPieView extends Phobject { $id = 'priority-pie'; Javelin::initBehavior('priority-pie', array( 'hardpoint' => $id, - 'Wishlist' => $lowest_priority, - 'Normal' => (isset($task_priority_sum['Normal'])) ? - $task_priority_sum['Normal']: null, - 'High' => (isset($task_priority_sum['High'])) ? - $task_priority_sum['High']: null, - 'Unbreak' => (isset($task_priority_sum['Unbreak Now!'])) ? - $task_priority_sum['Unbreak Now!']: null, - 'Triage' => (isset($task_priority_sum['Needs Triage'])) ? - $task_priority_sum['Needs Triage']: null, - 'Low' => (isset($task_priority_sum['Low'])) ? - $task_priority_sum['Low']: null, + 'Priorities' => $priorities, ), 'sprint'); } } -- GitLab