46 lines
1.4 KiB
CoffeeScript
46 lines
1.4 KiB
CoffeeScript
taiga = @.taiga
|
|
bindOnce = @.taiga.bindOnce
|
|
|
|
module = angular.module("taigaProject")
|
|
|
|
CreateProject = ($repo, $confirm, $location, $navurls) ->
|
|
link = ($scope, $el, attrs) ->
|
|
$scope.data = {}
|
|
form = $el.find("form").checksley()
|
|
|
|
onSuccessSubmit = (response) ->
|
|
$el.addClass("hidden")
|
|
|
|
$confirm.notify("success", "Success") #TODO: i18n
|
|
|
|
url = $navurls.resolve('project')
|
|
fullUrl = $navurls.formatUrl(url, {'project': response.slug})
|
|
|
|
$location.url(fullUrl)
|
|
|
|
onErrorSubmit = (response) ->
|
|
$confirm.notify("light-error", "According to our Oompa Loompas, project name is
|
|
already in use.") #TODO: i18n
|
|
|
|
submit = ->
|
|
if not form.validate()
|
|
return
|
|
promise = $repo.create("projects", $scope.data)
|
|
promise.then(onSuccessSubmit, onErrorSubmit)
|
|
|
|
$scope.$on "projects:create", ->
|
|
$scope.data = {}
|
|
$el.removeClass("hidden")
|
|
|
|
$el.on "click", ".close", (event) ->
|
|
event.preventDefault()
|
|
$el.addClass("hidden")
|
|
|
|
$el.on "click", "a.button-green", (event) ->
|
|
event.preventDefault()
|
|
submit()
|
|
|
|
return {link:link}
|
|
|
|
module.directive("tgLbCreateProject", ["$tgRepo", "$tgConfirm", "$location", "$tgNavUrls", CreateProject])
|