From b2b823d47fe16f1e1d36a6ec81d812e16f6533d9 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Thu, 23 Apr 2015 12:53:26 +0200 Subject: [PATCH] Refactoring feedback --- app/coffee/modules/feedback.coffee | 10 +++++--- app/modules/feedback/feedback-service.coffee | 8 +++++++ .../dropdown-user.directive.coffee | 23 +++++++++++++++---- .../dropdown-user/dropdown-user.jade | 2 +- .../navigation-bar.directive.coffee | 10 ++++++-- .../navigation-bar/navigation-bar.jade | 2 +- .../projects/projects-page.controller.coffee | 3 --- 7 files changed, 43 insertions(+), 15 deletions(-) create mode 100644 app/modules/feedback/feedback-service.coffee diff --git a/app/coffee/modules/feedback.coffee b/app/coffee/modules/feedback.coffee index 79ba422f..bfc4032f 100644 --- a/app/coffee/modules/feedback.coffee +++ b/app/coffee/modules/feedback.coffee @@ -29,7 +29,7 @@ trim = @.taiga.trim module = angular.module("taigaFeedback", []) -FeedbackDirective = ($lightboxService, $repo, $confirm, $loading)-> +FeedbackDirective = ($lightboxService, $repo, $confirm, $loading, feedbackService)-> link = ($scope, $el, $attrs) -> form = $el.find("form").checksley() @@ -56,14 +56,18 @@ FeedbackDirective = ($lightboxService, $repo, $confirm, $loading)-> $el.on "submit", "form", submit - $scope.$on "feedback:show", -> + sendFeedbackCallback = -> $scope.feedback = {} $lightboxService.open($el) $el.find("textarea").focus() + feedbackService.emiter.on "send", sendFeedbackCallback + $scope.$on "$destroy", -> + emitter.off(feedbackService.emiter, sendFeedbackCallback) $el.off() return {link:link} -module.directive("tgLbFeedback", ["lightboxService", "$tgRepo", "$tgConfirm", "$tgLoading", FeedbackDirective]) +module.directive("tgLbFeedback", ["lightboxService", "$tgRepo", "$tgConfirm", + "$tgLoading", "tgFeedback", FeedbackDirective]) diff --git a/app/modules/feedback/feedback-service.coffee b/app/modules/feedback/feedback-service.coffee new file mode 100644 index 00000000..c063f215 --- /dev/null +++ b/app/modules/feedback/feedback-service.coffee @@ -0,0 +1,8 @@ +class FeedbackService extends taiga.Service + constructor: -> + @.emiter = new EventEmitter2() + + sendFeedback: -> + @.emiter.emit("send") + +angular.module("taigaFeedback").service("tgFeedback", FeedbackService) diff --git a/app/modules/navigation-bar/dropdown-user/dropdown-user.directive.coffee b/app/modules/navigation-bar/dropdown-user/dropdown-user.directive.coffee index 7a3d0793..a417292d 100644 --- a/app/modules/navigation-bar/dropdown-user/dropdown-user.directive.coffee +++ b/app/modules/navigation-bar/dropdown-user/dropdown-user.directive.coffee @@ -1,13 +1,26 @@ -DropdownUserDirective = () -> +DropdownUserDirective = (authService, configService, locationService, + navUrlsService, feedbackService) -> + + link = (scope, el, attrs, ctrl) -> + scope.vm = {} + scope.vm.user = authService.getUser() + scope.vm.isFeedbackEnabled = configService.get("feedbackEnabled") + + scope.vm.logout = -> + authService.logout() + locationService.path(navUrlsService.resolve("login")) + + scope.vm.sendFeedback = -> + feedbackService.sendFeedback() + directive = { templateUrl: "navigation-bar/dropdown-user/dropdown-user.html" - controller: "ProjectsController" scope: {} - bindToController: true - controllerAs: "vm" + link: link } return directive angular.module("taigaNavigationBar").directive("tgDropdownUser", - DropdownUserDirective) + ["$tgAuth", "$tgConfig", "$tgLocation", "$tgNavUrls", "tgFeedback", + DropdownUserDirective]) diff --git a/app/modules/navigation-bar/dropdown-user/dropdown-user.jade b/app/modules/navigation-bar/dropdown-user/dropdown-user.jade index b8d11dfe..e7ddf281 100644 --- a/app/modules/navigation-bar/dropdown-user/dropdown-user.jade +++ b/app/modules/navigation-bar/dropdown-user/dropdown-user.jade @@ -39,7 +39,7 @@ div.navbar-dropdown.dropdown-user title="{{'PROJECT.NAVIGATION.NOTIFICATIONS_TITLE' | translate}}", translate="PROJECT.NAVIGATION.NOTIFICATIONS") - li(ng-show="vm.isFeedbackEnabled()") + li(ng-show="vm.isFeedbackEnabled") a( href="#", ng-click="vm.sendFeedback()", diff --git a/app/modules/navigation-bar/navigation-bar.directive.coffee b/app/modules/navigation-bar/navigation-bar.directive.coffee index 1be03abf..44607883 100644 --- a/app/modules/navigation-bar/navigation-bar.directive.coffee +++ b/app/modules/navigation-bar/navigation-bar.directive.coffee @@ -1,10 +1,16 @@ -NavigationBarDirective = () -> +NavigationBarDirective = (projectsService) -> + link = (scope, el, attrs, ctrl) -> + scope.vm = {} + scope.vm.projects = projectsService.projects + directive = { templateUrl: "navigation-bar/navigation-bar.html" + scope: {} + link: link } return directive angular.module("taigaNavigationBar").directive("tgNavigationBar", - NavigationBarDirective) + ["tgProjects", NavigationBarDirective]) diff --git a/app/modules/navigation-bar/navigation-bar.jade b/app/modules/navigation-bar/navigation-bar.jade index e642d7b5..c003c61a 100644 --- a/app/modules/navigation-bar/navigation-bar.jade +++ b/app/modules/navigation-bar/navigation-bar.jade @@ -26,7 +26,7 @@ nav.navbar include ../../svg/dashboard.svg - div.topnav-dropdown-wrapper(tg-dropdown-project-list) + div.topnav-dropdown-wrapper(ng-show="vm.projects.recents", tg-dropdown-project-list) //div.topnav-dropdown-wrapper(tg-dropdown-organization-list) div.topnav-dropdown-wrapper(tg-dropdown-user) diff --git a/app/modules/projects/projects-page.controller.coffee b/app/modules/projects/projects-page.controller.coffee index c45217bc..1496e80a 100644 --- a/app/modules/projects/projects-page.controller.coffee +++ b/app/modules/projects/projects-page.controller.coffee @@ -21,9 +21,6 @@ class ProjectsPageController extends taiga.Controller if !@auth.isAuthenticated() @location.path(@navUrls.resolve("login")) - #TODO: - @.user = @auth.getUser() - #Projects promise = @projects.fetchProjects()