When dragging a User Story to a Sprint, use the entire Sprint box to accept drag
parent
48f1f8f081
commit
76b53218a3
|
@ -159,6 +159,9 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F
|
||||||
@scope.sprints = sprints
|
@scope.sprints = sprints
|
||||||
@scope.openSprints = _.filter(sprints, (sprint) => not sprint.closed)
|
@scope.openSprints = _.filter(sprints, (sprint) => not sprint.closed)
|
||||||
@scope.closedSprints = _.filter(sprints, (sprint) => sprint.closed)
|
@scope.closedSprints = _.filter(sprints, (sprint) => sprint.closed)
|
||||||
|
if not @excludeClosedSprints
|
||||||
|
@scope.totalClosedMilestones = @scope.closedSprints.length
|
||||||
|
|
||||||
@scope.sprintsCounter = sprints.length
|
@scope.sprintsCounter = sprints.length
|
||||||
@scope.sprintsById = groupBy(sprints, (x) -> x.id)
|
@scope.sprintsById = groupBy(sprints, (x) -> x.id)
|
||||||
@rootscope.$broadcast("sprints:loaded", sprints)
|
@rootscope.$broadcast("sprints:loaded", sprints)
|
||||||
|
@ -213,6 +216,7 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F
|
||||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||||
@scope.projectId = project.id
|
@scope.projectId = project.id
|
||||||
@scope.project = project
|
@scope.project = project
|
||||||
|
@scope.totalClosedMilestones = project.total_closed_milestones
|
||||||
@scope.$emit('project:loaded', project)
|
@scope.$emit('project:loaded', project)
|
||||||
@scope.points = _.sortBy(project.points, "order")
|
@scope.points = _.sortBy(project.points, "order")
|
||||||
@scope.pointsById = groupBy(project.points, (x) -> x.id)
|
@scope.pointsById = groupBy(project.points, (x) -> x.id)
|
||||||
|
|
|
@ -54,7 +54,7 @@ BacklogSortableDirective = ($repo, $rs, $rootscope, $tgConfirm) ->
|
||||||
$tgConfirm.notify("error", "You can't drop on backlog when filters are open") #TODO: i18n
|
$tgConfirm.notify("error", "You can't drop on backlog when filters are open") #TODO: i18n
|
||||||
|
|
||||||
$el.sortable({
|
$el.sortable({
|
||||||
connectWith: ".sprint-table"
|
connectWith: ".sprint"
|
||||||
containment: ".wrapper"
|
containment: ".wrapper"
|
||||||
dropOnEmpty: true
|
dropOnEmpty: true
|
||||||
placeholder: "row us-item-row us-item-drag sortable-placeholder"
|
placeholder: "row us-item-row us-item-drag sortable-placeholder"
|
||||||
|
@ -158,7 +158,8 @@ SprintSortableDirective = ($repo, $rs, $rootscope) ->
|
||||||
$el.sortable({
|
$el.sortable({
|
||||||
scroll: true
|
scroll: true
|
||||||
dropOnEmpty: true
|
dropOnEmpty: true
|
||||||
connectWith: ".sprint-table,.backlog-table-body,.empty-backlog"
|
items: ".sprint-table .milestone-us-item-row",
|
||||||
|
connectWith: ".sprint,.backlog-table-body,.empty-backlog"
|
||||||
})
|
})
|
||||||
|
|
||||||
$el.on "multiplesortreceive", (event, ui) ->
|
$el.on "multiplesortreceive", (event, ui) ->
|
||||||
|
|
|
@ -2,7 +2,7 @@ header(tg-backlog-sprint-header, ng-model="sprint")
|
||||||
|
|
||||||
div.sprint-progress-bar(tg-progress-bar="100 * sprint.closed_points / sprint.total_points")
|
div.sprint-progress-bar(tg-progress-bar="100 * sprint.closed_points / sprint.total_points")
|
||||||
|
|
||||||
div.sprint-table(tg-sprint-sortable)
|
div.sprint-table
|
||||||
div.row.milestone-us-item-row(ng-repeat="us in sprint.user_stories track by us.id")
|
div.row.milestone-us-item-row(ng-repeat="us in sprint.user_stories track by us.id")
|
||||||
div.column-us
|
div.column-us
|
||||||
a.us-name.clickable(tg-nav="project-userstories-detail:project=project.slug,ref=us.ref",
|
a.us-name.clickable(tg-nav="project-userstories-detail:project=project.slug,ref=us.ref",
|
||||||
|
|
|
@ -12,13 +12,13 @@ section.sprints
|
||||||
tg-check-permission="add_milestone")
|
tg-check-permission="add_milestone")
|
||||||
span.text + New sprint
|
span.text + New sprint
|
||||||
|
|
||||||
div.sprint.sprint-open(ng-repeat="sprint in openSprints track by sprint.id" tg-backlog-sprint="sprint")
|
div.sprint.sprint-open(ng-repeat="sprint in openSprints track by sprint.id", tg-backlog-sprint="sprint", tg-sprint-sortable)
|
||||||
include sprint
|
include sprint
|
||||||
|
|
||||||
a.filter-closed-sprints(href="", ng-show="project.total_closed_milestones")
|
a.filter-closed-sprints(href="", ng-show="totalClosedMilestones")
|
||||||
span.icon.icon-archive
|
span.icon.icon-archive
|
||||||
span(tg-backlog-toggle-closed-sprints-visualization="ctrl.excludeClosedSprints") Show closed sprints
|
span(tg-backlog-toggle-closed-sprints-visualization="ctrl.excludeClosedSprints") Show closed sprints
|
||||||
span.load
|
span.load
|
||||||
|
|
||||||
div.sprint.sprint-closed(ng-repeat="sprint in closedSprints track by sprint.id" tg-backlog-sprint="sprint")
|
div.sprint.sprint-closed(ng-repeat="sprint in closedSprints track by sprint.id" tg-backlog-sprint="sprint", tg-sprint-sortable)
|
||||||
include sprint
|
include sprint
|
||||||
|
|
Loading…
Reference in New Issue