Move assigned to lightbox directive to commons.

stable
Andrey Antukh 2014-07-22 12:59:44 +02:00
parent 2ef0a69679
commit 38c0fc1e10
6 changed files with 76 additions and 76 deletions

View File

@ -195,3 +195,75 @@ module.directive("tgLbCreateBulkUserstories", [
"$rootScope",
CreateBulkUserstoriesDirective
])
#############################################################################
## AssignedTo Lightbox Directive
#############################################################################
AssignedToLightboxDirective = ->
link = ($scope, $el, $attrs) ->
editingElement = null
updateScopeFilteringUsers = (searchingText) ->
console.log "updateScopeFilteringUsers", searchingText
usersById = _.clone($scope.usersById, false)
# Exclude selected user
if $scope.selectedUser?
delete usersById[$scope.selectedUser.id]
# Filter text
usersById = _.filter usersById, (user) ->
return _.contains(user.full_name_display.toUpperCase(), searchingText.toUpperCase())
# Return max of 5 elements
users = _.map(usersById, (user) -> user)
$scope.AssignedToUsersSearch = searchingText
$scope.filteringUsers = users.length > 5
$scope.filteredUsers = _.first(users, 5)
$scope.$on "assigned-to:add", (ctx, element) ->
editingElement = element
assignedToId = editingElement?.assigned_to
$scope.selectedUser = null
$scope.selectedUser = $scope.usersById[assignedToId] if assignedToId?
updateScopeFilteringUsers("")
$el.removeClass("hidden")
$el.find("input").focus()
$scope.$watch "AssignedToUsersSearch", (searchingText) ->
updateScopeFilteringUsers(searchingText)
$el.on "click", ".watcher-single", (event) ->
event.preventDefault()
target = angular.element(event.currentTarget)
if editingElement?
user = target.scope().user
editingElement.assigned_to = user.id
$el.addClass("hidden")
$scope.$broadcast("assigned-to:added", editingElement)
$el.on "click", ".remove-assigned-to", (event) ->
event.preventDefault()
event.stopPropagation()
if editingElement?
editingElement.assigned_to = null
$el.addClass("hidden")
$scope.$broadcast("assigned-to:added", editingElement)
$el.on "click", ".close", (event) ->
event.preventDefault()
$el.addClass("hidden")
$scope.$on "$destroy", ->
$el.off()
return {link:link}
module.directive("tgLbAssignedto", AssignedToLightboxDirective)

View File

@ -153,75 +153,3 @@ AddWatcherDirective = ->
return {link:link}
module.directive("tgLbAddWatcher", AddWatcherDirective)
#############################################################################
## AssignedTo Lightbox Directive
#############################################################################
# FIXME: rename to: AssignedToLightboxDirective/tgLbAssignedto
EditAssignedToDirective = ->
link = ($scope, $el, $attrs) ->
editingElement = null
updateScopeFilteringUsers = (searchingText) ->
console.log "updateScopeFilteringUsers", searchingText
usersById = _.clone($scope.usersById, false)
# Exclude selected user
if $scope.selectedUser?
delete usersById[$scope.selectedUser.id]
# Filter text
usersById = _.filter usersById, (user) ->
return _.contains(user.full_name_display.toUpperCase(), searchingText.toUpperCase())
# Return max of 5 elements
users = _.map(usersById, (user) -> user)
$scope.AssignedToUsersSearch = searchingText
$scope.filteringUsers = users.length > 5
$scope.filteredUsers = _.first(users, 5)
$scope.$on "assigned-to:add", (ctx, element) ->
editingElement = element
assignedToId = editingElement?.assigned_to
$scope.selectedUser = null
$scope.selectedUser = $scope.usersById[assignedToId] if assignedToId?
updateScopeFilteringUsers("")
$el.removeClass("hidden")
$el.find("input").focus()
$scope.$watch "AssignedToUsersSearch", (searchingText) ->
updateScopeFilteringUsers(searchingText)
$el.on "click", ".watcher-single", (event) ->
event.preventDefault()
target = angular.element(event.currentTarget)
if editingElement?
user = target.scope().user
editingElement.assigned_to = user.id
$el.addClass("hidden")
$scope.$broadcast("assigned-to:added", editingElement)
$el.on "click", ".remove-assigned-to", (event) ->
event.preventDefault()
event.stopPropagation()
if editingElement?
editingElement.assigned_to = null
$el.addClass("hidden")
$scope.$broadcast("assigned-to:added", editingElement)
$el.on "click", ".close", (event) ->
event.preventDefault()
$el.addClass("hidden")
$scope.$on "$destroy", ->
$el.off()
return {link:link}
module.directive("tgLbEditAssignedTo", EditAssignedToDirective)

View File

@ -41,7 +41,7 @@ block content
div.lightbox.lightbox_block.hidden(tg-lb-block, title="Blocking issue", ng-model="issue")
include views/modules/lightbox_block
div.lightbox.lightbox_select_user.hidden(tg-lb-edit-assigned-to)
div.lightbox.lightbox_select_user.hidden(tg-lb-assignedto)
include views/modules/lightbox-assigned-to
div.lightbox.lightbox_select_user.hidden(tg-lb-add-watcher)

View File

@ -45,7 +45,7 @@ block content
div.lightbox.lightbox_block.hidden(tg-lb-block, title="Blocking task", ng-model="task")
include views/modules/lightbox_block
div.lightbox.lightbox_select_user.hidden(tg-lb-edit-assigned-to)
div.lightbox.lightbox_select_user.hidden(tg-lb-assignedto)
include views/modules/lightbox-assigned-to
div.lightbox.lightbox_select_user.hidden(tg-lb-add-watcher)

View File

@ -23,5 +23,5 @@ block content
include views/modules/lightbox_add-edit-task
div.lightbox.lightbox_add-bulk.hidden(tg-lb-create-bulk-tasks)
include views/modules/lightbox_add-task-bulk
div.lightbox.lightbox_select_user.hidden(tg-lb-edit-assigned-to)
div.lightbox.lightbox_select_user.hidden(tg-lb-assignedto)
include views/modules/lightbox-assigned-to

View File

@ -48,7 +48,7 @@ block content
div.lightbox.lightbox_block.hidden(tg-lb-block, title="Blocking issue", ng-model="us")
include views/modules/lightbox_block
div.lightbox.lightbox_select_user.hidden(tg-lb-edit-assigned-to)
div.lightbox.lightbox_select_user.hidden(tg-lb-assignedto)
include views/modules/lightbox-assigned-to
div.lightbox.lightbox_select_user.hidden(tg-lb-add-watcher)