Make burndown chart collapsible at the backlog panel

stable
David Barragán Merino 2015-06-30 16:44:06 +02:00
parent acbc43ba3d
commit 40d5336522
6 changed files with 68 additions and 30 deletions

View File

@ -6,6 +6,7 @@
### Features ### Features
- Ability to create single-line or multi-line custom fields. (thanks to [@artlepool](https://github.com/artlepool)) - Ability to create single-line or multi-line custom fields. (thanks to [@artlepool](https://github.com/artlepool))
- Add custom videoconference system. - Add custom videoconference system.
- Make burndown chart collapsible at the backlog panel.
### Misc ### Misc
- Improve performance: Show cropped images in timelines. - Improve performance: Show cropped images in timelines.

View File

@ -28,6 +28,7 @@ bindOnce = @.taiga.bindOnce
groupBy = @.taiga.groupBy groupBy = @.taiga.groupBy
timeout = @.taiga.timeout timeout = @.taiga.timeout
bindMethods = @.taiga.bindMethods bindMethods = @.taiga.bindMethods
generateHash = @.taiga.generateHash
module = angular.module("taigaBacklog") module = angular.module("taigaBacklog")
@ -644,7 +645,7 @@ BacklogDirective = ($repo, $rootscope, $translate) ->
_.map elements, (elm) -> _.map elements, (elm) ->
input = $(elm).find("input:checkbox") input = $(elm).find("input:checkbox")
input.prop('checked', true); input.prop('checked', true)
checkSelected(input) checkSelected(input)
target = angular.element(event.currentTarget) target = angular.element(event.currentTarget)
@ -724,7 +725,6 @@ BacklogDirective = ($repo, $rootscope, $translate) ->
$el.find(".backlog-table-body").disableSelection() $el.find(".backlog-table-body").disableSelection()
filters = $ctrl.getUrlFilters() filters = $ctrl.getUrlFilters()
if filters.statuses || if filters.statuses ||
filters.tags || filters.tags ||
filters.q filters.q
@ -903,6 +903,39 @@ UsPointsDirective = ($tgEstimationsService, $repo, $tgTemplate) ->
module.directive("tgBacklogUsPoints", ["$tgEstimationsService", "$tgRepo", "$tgTemplate", UsPointsDirective]) module.directive("tgBacklogUsPoints", ["$tgEstimationsService", "$tgRepo", "$tgTemplate", UsPointsDirective])
#############################################################################
## Burndown graph directive
#############################################################################
ToggleBurndownVisibility = ($storage) ->
link = ($scope, $el, $attrs) ->
hash = generateHash(["is-burndown-grpahs-collapsed"])
toggleGraph = ->
if $scope.isBurndownGraphCollapsed
$(".js-toggle-burndown-visibility-button").removeClass("active")
$(".js-burndown-graph").removeClass("open")
else
$(".js-toggle-burndown-visibility-button").addClass("active")
$(".js-burndown-graph").addClass("open")
$scope.isBurndownGraphCollapsed = $storage.get(hash) or false
toggleGraph()
$el.on "click", ".js-toggle-burndown-visibility-button", ->
$scope.isBurndownGraphCollapsed = !$scope.isBurndownGraphCollapsed
$storage.set(hash, $scope.isBurndownGraphCollapsed)
toggleGraph()
$scope.$on "$destroy", ->
$el.off()
return {
scope: {}
link: link
}
module.directive("tgToggleBurndownVisibility", ["$tgStorage", ToggleBurndownVisibility])
############################################################################# #############################################################################
## Burndown graph directive ## Burndown graph directive
############################################################################# #############################################################################

View File

@ -919,7 +919,8 @@
"OPEN_TASKS": "open<br />tasks", "OPEN_TASKS": "open<br />tasks",
"CLOSED_TASKS": "closed<br />tasks", "CLOSED_TASKS": "closed<br />tasks",
"IOCAINE_DOSES": "iocaine<br />doses", "IOCAINE_DOSES": "iocaine<br />doses",
"SHOW_STATISTICS_TITLE": "Show statistics" "SHOW_STATISTICS_TITLE": "Show statistics",
"TOGGLE_BAKLOG_GRAPH": "Show/Hide burndown graph"
}, },
"SUMMARY": { "SUMMARY": {
"PROJECT_POINTS": "project<br />points", "PROJECT_POINTS": "project<br />points",

View File

@ -7,9 +7,11 @@ div.wrapper(tg-backlog, ng-controller="BacklogController as ctrl",
include ../includes/modules/backlog-filters include ../includes/modules/backlog-filters
section.main.backlog section.main.backlog
include ../includes/components/mainTitle include ../includes/components/mainTitle
div.backlog-summary(tg-toggle-burndown-visibility)
include ../includes/components/summary include ../includes/components/summary
div.graphics-container.burndown-container div.graphics-container.burndown-container.js-burndown-graph
div.burndown(tg-burndown-backlog-graph) div.burndown(tg-burndown-backlog-graph)
include ../includes/modules/burndown include ../includes/modules/burndown

View File

@ -16,3 +16,7 @@ div.summary
div.summary-stats div.summary-stats
span.number(ng-bind="stats.speed | number:0") -- span.number(ng-bind="stats.speed | number:0") --
span.description(translate="BACKLOG.SUMMARY.POINTS_PER_SPRINT") span.description(translate="BACKLOG.SUMMARY.POINTS_PER_SPRINT")
a.icon.icon-stats.js-toggle-burndown-visibility-button(href="",
title="{{'BACKLOG.SPRINT_SUMMARY.TOGGLE_BAKLOG_GRAPH' | translate}}")

View File

@ -17,7 +17,24 @@
} }
} }
.icon { .icon {
@extend %large; font-size: 1.4rem;
margin-right: .4rem;
&.icon-stats {
color: $gray;
float: right;
transition: color .3s linear;
&:hover {
color: $fresh-taiga;
transition: color .3s linear;
}
&.active {
color: $fresh-taiga;
}
&.active:hover {
color: $gray;
transition: color .3s linear;
}
}
} }
.number { .number {
@extend %xlarge; @extend %xlarge;
@ -88,24 +105,4 @@
.summary-stats-divider { .summary-stats-divider {
margin-right: 2rem; margin-right: 2rem;
} }
.icon {
font-size: 1.4rem;
margin-right: .4rem;
&.icon-stats {
color: $gray;
float: right;
transition: color .3s linear;
&:hover {
color: $fresh-taiga;
transition: color .3s linear;
}
&.active {
color: $fresh-taiga;
}
&.active:hover {
color: $gray;
transition: color .3s linear;
}
}
}
} }