Fixing how user story neighbor works for backlog and taskboard
parent
90f83f9694
commit
846a6813c6
|
@ -100,6 +100,11 @@ NavigationUrlsDirective = ($navurls, $auth, $q, $location) ->
|
|||
url = $navurls.resolve(name)
|
||||
fullUrl = $navurls.formatUrl(url, options)
|
||||
|
||||
if $attrs.tgNavGetParams
|
||||
getURLParams = JSON.parse($attrs.tgNavGetParams)
|
||||
getURLParamsStr = $.param(getURLParams)
|
||||
fullUrl = "#{fullUrl}?#{getURLParamsStr}"
|
||||
|
||||
target.data("fullUrl", fullUrl)
|
||||
|
||||
if target.is("a")
|
||||
|
|
|
@ -25,14 +25,9 @@ generateHash = taiga.generateHash
|
|||
|
||||
resourceProvider = ($repo, $model, $storage) ->
|
||||
service = {}
|
||||
hashSuffixUserstories = "userstories-queryparams"
|
||||
|
||||
service.get = (projectId, sprintId) ->
|
||||
return $repo.queryOne("milestones", sprintId).then (sprint) ->
|
||||
service.storeUserstoriesQueryParams(projectId, {
|
||||
milestone: sprintId
|
||||
order_by: "sprint_order"
|
||||
})
|
||||
uses = sprint.user_stories
|
||||
uses = _.map(uses, (u) -> $model.make_model("userstories", u))
|
||||
sprint._attrs.user_stories = uses
|
||||
|
@ -51,10 +46,6 @@ resourceProvider = ($repo, $model, $storage) ->
|
|||
m._attrs.user_stories = uses
|
||||
return milestones
|
||||
|
||||
service.storeUserstoriesQueryParams = (projectId, params) ->
|
||||
ns = "#{projectId}:#{hashSuffixUserstories}"
|
||||
hash = generateHash([projectId, ns])
|
||||
$storage.set(hash, params)
|
||||
|
||||
return (instance) ->
|
||||
instance.sprints = service
|
||||
|
|
|
@ -109,6 +109,30 @@ class UserStoryDetailController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
return project
|
||||
|
||||
loadUs: ->
|
||||
httpParams = _.pick(@location.search(), "milestone", "no-milestone", "kanban-status")
|
||||
milestone = httpParams.milestone
|
||||
if milestone
|
||||
@rs.userstories.storeQueryParams(@scope.projectId, {
|
||||
milestone: milestone
|
||||
order_by: "sprint_order"
|
||||
})
|
||||
|
||||
noMilestone = httpParams["no-milestone"]
|
||||
if noMilestone
|
||||
@rs.userstories.storeQueryParams(@scope.projectId, {
|
||||
milestone: "null"
|
||||
order_by: "backlog_order"
|
||||
})
|
||||
|
||||
kanbanStaus = httpParams["kanban-status"]
|
||||
if kanbanStaus
|
||||
@rs.userstories.storeQueryParams(@scope.projectId, {
|
||||
status: kanbanStaus
|
||||
order_by: "kanban_order"
|
||||
})
|
||||
|
||||
|
||||
|
||||
return @rs.userstories.getByRef(@scope.projectId, @params.usref).then (us) =>
|
||||
@scope.us = us
|
||||
@scope.usId = us.id
|
||||
|
|
|
@ -4,6 +4,7 @@ div.row.us-item-row(ng-repeat="us in visibleUserstories track by us.id", tg-bind
|
|||
div.user-story-name
|
||||
input(tg-check-permission="modify_us", type="checkbox", name="")
|
||||
a.clickable(tg-nav="project-userstories-detail:project=project.slug,ref=us.ref",
|
||||
tg-nav-get-params="{\"no-milestone\": 1}",
|
||||
title="#{{ us.ref }} {{ us.subject }}")
|
||||
span(tg-bo-ref="us.ref")
|
||||
span(ng-bind="us.subject")
|
||||
|
|
|
@ -6,6 +6,7 @@ div.sprint-table
|
|||
div.row.milestone-us-item-row(ng-repeat="us in sprint.user_stories track by us.id", tg-bind-scope)
|
||||
div.column-us
|
||||
a.us-name.clickable(tg-nav="project-userstories-detail:project=project.slug,ref=us.ref",
|
||||
tg-nav-get-params="{\"milestone\": {{us.milestone}}}"
|
||||
tg-bo-title="'#' + us.ref + ' ' + us.subject",
|
||||
ng-class="{closed: us.is_closed, blocked: us.is_blocked}")
|
||||
span(tg-bo-ref="us.ref")
|
||||
|
|
|
@ -14,7 +14,9 @@ div.taskboard-table(tg-taskboard-squish-column)
|
|||
a.icon.icon-vfold.vfold(href="", title="{{'TASKBOARD.TABLE.TITLE_ACTION_FOLD_ROW' | translate}}", ng-click='foldUs(us)', ng-class='{hidden:usFolded[us.id]}')
|
||||
a.icon.icon-vunfold.vunfold(href="", title="{{'TASKBOARD.TABLE.TITLE_ACTION_UNFOLD_ROW' | translate}}", ng-click='foldUs(us)', ng-class='{hidden:!usFolded[us.id]}')
|
||||
h3.us-title
|
||||
a(href="", tg-nav="project-userstories-detail:project=project.slug,ref=us.ref",
|
||||
a(href="",
|
||||
tg-nav="project-userstories-detail:project=project.slug,ref=us.ref",
|
||||
tg-nav-get-params="{\"milestone\": {{us.milestone}}}",
|
||||
tg-bo-title="'#' + us.ref + ' ' + us.subject")
|
||||
span.us-ref(tg-bo-ref="us.ref")
|
||||
span(ng-bind="us.subject")
|
||||
|
|
|
@ -5,7 +5,8 @@ div.kanban-task-inner(ng-class="{'task-archived': us.isArchived}")
|
|||
a.task-assigned(href="", title="{{'US.ASSIGN' | translate}}")
|
||||
span.task-num(tg-bo-ref="us.ref")
|
||||
a.task-name(href="", title="#{{ ::us.ref }} {{ us.subject }}", ng-bind="us.subject",
|
||||
tg-nav="project-userstories-detail:project=project.slug,ref=us.ref")
|
||||
tg-nav="project-userstories-detail:project=project.slug,ref=us.ref",
|
||||
tg-nav-get-params="{\"kanban-status\": {{us.status}}}")
|
||||
|
||||
p.task-points(href="", title="{{'US.TOTAL_US_POINTS' | translate}}")
|
||||
span(ng-if="us.total_points !== null", ng-bind="us.total_points")
|
||||
|
|
Loading…
Reference in New Issue