diff --git a/app/coffee/modules/backlog/sortable.coffee b/app/coffee/modules/backlog/sortable.coffee index b871ffcb..2966afe9 100644 --- a/app/coffee/modules/backlog/sortable.coffee +++ b/app/coffee/modules/backlog/sortable.coffee @@ -90,6 +90,31 @@ BacklogSortableDirective = ($repo, $rs, $rootscope) -> return {link: link} +BacklogEmptySortableDirective = ($repo, $rs, $rootscope) -> + # Notes about jquery bug: + # http://stackoverflow.com/questions/5791886/jquery-draggable-shows- + # helper-in-wrong-place-when-scrolled-down-page + + link = ($scope, $el, $attrs) -> + bindOnce $scope, "project", (project) -> + # If the user has not enough permissions we don't enable the sortable + if project.my_permissions.indexOf("modify_us") > -1 + $el.sortable({ + dropOnEmpty: true + }) + + $el.on "sortreceive", (event, ui) -> + itemUs = ui.item.scope().us + itemIndex = ui.item.index() + + deleteElement(ui.item) + $scope.$emit("sprint:us:move", itemUs, itemIndex, null) + + $scope.$on "$destroy", -> + $el.off() + + return {link: link} + SprintSortableDirective = ($repo, $rs, $rootscope) -> link = ($scope, $el, $attrs) -> @@ -98,7 +123,7 @@ SprintSortableDirective = ($repo, $rs, $rootscope) -> if project.my_permissions.indexOf("modify_us") > -1 $el.sortable({ dropOnEmpty: true - connectWith: ".sprint-table,.backlog-table-body" + connectWith: ".sprint-table,.backlog-table-body,.empty-backlog" }) $el.on "sortreceive", (event, ui) -> @@ -128,6 +153,13 @@ module.directive("tgBacklogSortable", [ BacklogSortableDirective ]) +module.directive("tgBacklogEmptySortable", [ + "$tgRepo", + "$tgResources", + "$rootScope", + BacklogEmptySortableDirective +]) + module.directive("tgSprintSortable", [ "$tgRepo", "$tgResources", diff --git a/app/partials/backlog.jade b/app/partials/backlog.jade index 37876fb0..2cbd7bed 100644 --- a/app/partials/backlog.jade +++ b/app/partials/backlog.jade @@ -28,7 +28,7 @@ block content include views/components/addnewus section.backlog-table(ng-class="{'hidden': !visibleUserstories.length}") include views/modules/backlog-table - div.empty.empty-backlog(ng-class="{'hidden': visibleUserstories.length}") + div.empty.empty-backlog(ng-class="{'hidden': visibleUserstories.length}", tg-backlog-empty-sortable) span.icon.icon-backlog span.title Your backlog is empty! a(href="", title+"Create a new US", ng-click="ctrl.addNewUs('standard')", tg-check-permission="tg-check-permission", permission="add_us") You may want to create a new user story