Minor improvements on tgTagLine directive.
parent
9c1dff28ec
commit
803da21993
|
@ -124,7 +124,7 @@ TagLineDirective = ($log, $rs) ->
|
||||||
|
|
||||||
link = ($scope, $el, $attrs, $model) ->
|
link = ($scope, $el, $attrs, $model) ->
|
||||||
editable = if $attrs.editable == "true" then true else false
|
editable = if $attrs.editable == "true" then true else false
|
||||||
$el.addClass('tags-block')
|
$el.addClass("tags-block")
|
||||||
|
|
||||||
addValue = (value) ->
|
addValue = (value) ->
|
||||||
value = trim(value)
|
value = trim(value)
|
||||||
|
@ -137,33 +137,34 @@ TagLineDirective = ($log, $rs) ->
|
||||||
$scope.$apply ->
|
$scope.$apply ->
|
||||||
$model.$setViewValue(normalizeTags(tags))
|
$model.$setViewValue(normalizeTags(tags))
|
||||||
|
|
||||||
|
|
||||||
$scope.$watch $attrs.ngModel, (val) ->
|
$scope.$watch $attrs.ngModel, (val) ->
|
||||||
return if not val
|
console.log "WATCH", val
|
||||||
renderTags($el, val, editable, $scope.project.tags_colors)
|
renderTags($el, val, editable, $scope.project.tags_colors) if val?
|
||||||
|
|
||||||
|
bindOnce $scope, "projectId", (projectId) ->
|
||||||
|
# If not editable, no tags preloading is needed.
|
||||||
|
return if not editable
|
||||||
|
|
||||||
$scope.$watch "projectId", (val) ->
|
|
||||||
return if not val?
|
|
||||||
positioningFunction = (position, elements) ->
|
positioningFunction = (position, elements) ->
|
||||||
menu = elements.element.element
|
menu = elements.element.element
|
||||||
menu.css 'width', elements.target.width
|
menu.css("width", elements.target.width)
|
||||||
menu.css 'top', position.top
|
menu.css("top", position.top)
|
||||||
menu.css 'left', position.left
|
menu.css("left", position.left)
|
||||||
|
|
||||||
promise = $rs.projects.tags($scope.projectId)
|
$rs.projects.tags(projectId).then (data) ->
|
||||||
promise.then (data) ->
|
$el.find("input").autocomplete({
|
||||||
if editable
|
source: data
|
||||||
$el.find("input").autocomplete({
|
position: {
|
||||||
source: data,
|
my: "left top",
|
||||||
position:
|
using: positioningFunction
|
||||||
my: "left top",
|
}
|
||||||
using: positioningFunction
|
select: (event, ui) ->
|
||||||
select: (event, ui) ->
|
addValue(ui.item.value)
|
||||||
addValue(ui.item.value)
|
ui.item.value = ""
|
||||||
ui.item.value = ""
|
})
|
||||||
})
|
|
||||||
|
|
||||||
$el.find("input").remove() if not editable
|
if not editable
|
||||||
|
$el.find("input").remove()
|
||||||
|
|
||||||
$el.on "keypress", "input", (event) ->
|
$el.on "keypress", "input", (event) ->
|
||||||
return if event.keyCode != 13
|
return if event.keyCode != 13
|
||||||
|
@ -178,7 +179,6 @@ TagLineDirective = ($log, $rs) ->
|
||||||
target.val("")
|
target.val("")
|
||||||
$el.find("input").autocomplete("close")
|
$el.find("input").autocomplete("close")
|
||||||
|
|
||||||
|
|
||||||
$el.on "click", ".icon-delete", (event) ->
|
$el.on "click", ".icon-delete", (event) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
target = angular.element(event.currentTarget)
|
target = angular.element(event.currentTarget)
|
||||||
|
|
Loading…
Reference in New Issue