anthtrigger
Version:
Trigger events via http service
89 lines (76 loc) • 1.96 kB
text/coffeescript
angular.module('anthTrigger')
.controller 'userController', ($scope, $http, $modal, $q, notify)->
$scope.st = _st = {}
$scope.list = []
loadList = ->
_st.list = 'loading'
$http
.get '/user/list'
.success (data)->
$scope.list = data.list or []
if not data.success
_st.list = 'error'
else
_st.list = 'done'
loadList()
# Convert tags data format between object[] and string
# eg: [{ text: 'aaa' }, {text: 'bbb' }] => ['aaa', 'bbb']
convertTags = (data)->
return data?.map? (v)-> if v.text then v.text else { text: v }
editModal = (opt)->
$modal.open {
backdrop: 'static'
keyboard: false
templateUrl: "/page/users/edit_user.html"
controller: ['$scope', (scope)->
scope.options = opt
scope.user = angular.copy opt.user
scope.user.tags = convertTags opt.user.tags
scope.loadTags = $scope.loadTags
]
}
.result
$scope.addUser = ->
editModal {
mode: 'add'
user: { role: 'tester' }
}
.then (user)->
# to string
user.tags = convertTags(user.tags)
$http
.post "/user/add", user
.success (data)->
loadList()
notify "添加用户 #{user.name} 成功!"
.error ->
notify "添加用户失败!"
$scope.editUser = (preUser)->
editModal {
mode: 'edit'
user: preUser
}
.then (user)->
# to string
user.tags = convertTags(user.tags)
$http
.post "/user/edit", user
.success (data)->
loadList()
notify "编辑用户 #{user.name} 成功!"
.error ->
notify "编辑用户出错!"
$scope.loadTags = (query)->
deferred = $q.defer()
$http
.get '/scripts/tags?q=' + query
.success (data)->
deferred.resolve(data.map (v)-> { text: v })
return deferred.promise
$scope.frozeUser = (user)->
$http
.put '/user/frozen?uid=' + user._id
.success (result)->
loadList()
.error ->
notify "禁用用户失败!"