Refactoring create project broadcast

stable
Alejandro Alonso 2015-04-23 12:13:26 +02:00 committed by Juanfran
parent 71f8ab18e0
commit abff53c5c5
7 changed files with 24 additions and 10 deletions

View File

@ -26,7 +26,7 @@ debounce = @.taiga.debounce
module = angular.module("taigaProject") module = angular.module("taigaProject")
CreateProject = ($rootscope, $repo, $confirm, $location, $navurls, $rs, $projectUrl, $loading, lightboxService, $cacheFactory, $translate) -> CreateProject = ($rootscope, $repo, $confirm, $location, $navurls, $rs, $projectUrl, $loading, lightboxService, $cacheFactory, $translate, projects) ->
link = ($scope, $el, attrs) -> link = ($scope, $el, attrs) ->
$scope.data = {} $scope.data = {}
$scope.templates = [] $scope.templates = []
@ -46,6 +46,7 @@ CreateProject = ($rootscope, $repo, $confirm, $location, $navurls, $rs, $project
$location.url($projectUrl.get(response)) $location.url($projectUrl.get(response))
lightboxService.close($el) lightboxService.close($el)
projects.fetchProjects()
onErrorSubmit = (response) -> onErrorSubmit = (response) ->
$loading.finish(submitButton) $loading.finish(submitButton)
@ -69,7 +70,7 @@ CreateProject = ($rootscope, $repo, $confirm, $location, $navurls, $rs, $project
promise = $repo.create("projects", $scope.data) promise = $repo.create("projects", $scope.data)
promise.then(onSuccessSubmit, onErrorSubmit) promise.then(onSuccessSubmit, onErrorSubmit)
$scope.$on "projects:create", -> createProjectCallback = ->
$scope.data = { $scope.data = {
total_story_points: 100 total_story_points: 100
total_milestones: 5 total_milestones: 5
@ -89,6 +90,8 @@ CreateProject = ($rootscope, $repo, $confirm, $location, $navurls, $rs, $project
timeout 600, -> timeout 600, ->
$el.find(".progress-bar").addClass('step1') $el.find(".progress-bar").addClass('step1')
projects.emiter.on 'create', createProjectCallback
$el.on "click", ".button-next", (event) -> $el.on "click", ".button-next", (event) ->
event.preventDefault() event.preventDefault()
@ -125,6 +128,9 @@ CreateProject = ($rootscope, $repo, $confirm, $location, $navurls, $rs, $project
event.preventDefault() event.preventDefault()
lightboxService.close($el) lightboxService.close($el)
$scope.$on "$destroy", ->
emitter.off(projects.emiter, createProjectCallback)
$el.off()
directive = { directive = {
link: link, link: link,
@ -135,8 +141,9 @@ CreateProject = ($rootscope, $repo, $confirm, $location, $navurls, $rs, $project
return directive return directive
module.directive("tgLbCreateProject", ["$rootScope", "$tgRepo", "$tgConfirm", "$location", "$tgNavUrls", module.directive("tgLbCreateProject", ["$rootScope", "$tgRepo", "$tgConfirm",
"$tgResources", "$projectUrl", "$tgLoading", "lightboxService", "$cacheFactory", "$translate", CreateProject]) "$location", "$tgNavUrls", "$tgResources", "$projectUrl", "$tgLoading",
"lightboxService", "$cacheFactory", "$translate", "tgProjects", CreateProject])
############################################################################# #############################################################################

View File

@ -66,9 +66,6 @@ class ProjectsController extends taiga.Controller
return projects return projects
newProject: ->
@rootscope.$broadcast("projects:create")
logout: -> logout: ->
@auth.logout() @auth.logout()
@location.path(@navUrls.resolve("login")) @location.path(@navUrls.resolve("login"))

View File

@ -2,7 +2,9 @@ DropdownProjectListDirective = (projectsService) ->
link = (scope, el, attrs, ctrl) -> link = (scope, el, attrs, ctrl) ->
scope.vm = {} scope.vm = {}
scope.vm.projects = projectsService.projects scope.vm.projects = projectsService.projects
scope.vm.newProject = ->
projectsService.newProject()
directive = { directive = {
templateUrl: "navigation-bar/dropdown-project-list/dropdown-project-list.html" templateUrl: "navigation-bar/dropdown-project-list/dropdown-project-list.html"
scope: {} scope: {}

View File

@ -25,6 +25,9 @@ ProjectsListingDirective = (projectsService) ->
scope.vm.projects = projectsService.projects scope.vm.projects = projectsService.projects
scope.vm.newProject = ->
projectsService.newProject()
directive = { directive = {
templateUrl: "projects/listing/listing.html" templateUrl: "projects/listing/listing.html"
scope: {} scope: {}

View File

@ -6,9 +6,9 @@ class ProjectsService extends taiga.Service
@.inProgress = false @.inProgress = false
@.projectsPromise = null @.projectsPromise = null
@.fetchProjects() @.fetchProjects()
@.emiter = new EventEmitter2()
fetchProjects: -> fetchProjects: ->
console.log "fetchProjects", @.inProgress
if not @.inProgress if not @.inProgress
@.inProgress = true @.inProgress = true
@.projectsPromise = @rs.projects.listByMember(@rootScope.user?.id).then (projects) => @.projectsPromise = @rs.projects.listByMember(@rootScope.user?.id).then (projects) =>
@ -25,6 +25,9 @@ class ProjectsService extends taiga.Service
return @.projectsPromise return @.projectsPromise
newProject: ->
@.emiter.emit("create")
bulkUpdateProjectsOrder: (sortData) -> bulkUpdateProjectsOrder: (sortData) ->
@rs.projects.bulkUpdateOrder(sortData).then => @rs.projects.bulkUpdateOrder(sortData).then =>
@.fetchProjects() @.fetchProjects()

View File

@ -77,7 +77,8 @@
"angular-translate": "~2.6.1", "angular-translate": "~2.6.1",
"angular-translate-loader-static-files": "~2.6.1", "angular-translate-loader-static-files": "~2.6.1",
"angular-translate-interpolation-messageformat": "~2.6.1", "angular-translate-interpolation-messageformat": "~2.6.1",
"ngInfiniteScroll": "1.0.0" "ngInfiniteScroll": "1.0.0",
"eventemitter2": "~0.4.14"
}, },
"resolutions": { "resolutions": {
"lodash": "~2.4.1", "lodash": "~2.4.1",

View File

@ -143,6 +143,7 @@ paths.libs = [
paths.vendor + "l.js/l.js", paths.vendor + "l.js/l.js",
paths.vendor + "messageformat/locale/*.js", paths.vendor + "messageformat/locale/*.js",
paths.vendor + "ngInfiniteScroll/build/ng-infinite-scroll.js", paths.vendor + "ngInfiniteScroll/build/ng-infinite-scroll.js",
paths.vendor + "eventemitter2/lib/eventemitter2.js",
paths.app + "js/jquery.ui.git-custom.js", paths.app + "js/jquery.ui.git-custom.js",
paths.app + "js/jquery-ui.drag-multiple-custom.js", paths.app + "js/jquery-ui.drag-multiple-custom.js",
paths.app + "js/jquery.ui.touch-punch.min.js", paths.app + "js/jquery.ui.touch-punch.min.js",