diff --git a/app/coffee/app.coffee b/app/coffee/app.coffee index 4316337a..bfdec816 100644 --- a/app/coffee/app.coffee +++ b/app/coffee/app.coffee @@ -220,6 +220,7 @@ modules = [ "taigaNavMenu", "taigaProject", "taigaUserSettings", + "taigaFeedback", "taigaPlugins", # Vendor modules diff --git a/app/coffee/modules/feedback.coffee b/app/coffee/modules/feedback.coffee new file mode 100644 index 00000000..fe630cb7 --- /dev/null +++ b/app/coffee/modules/feedback.coffee @@ -0,0 +1,43 @@ +taiga = @.taiga + +groupBy = @.taiga.groupBy +bindOnce = @.taiga.bindOnce +mixOf = @.taiga.mixOf +debounce = @.taiga.debounce +trim = @.taiga.trim + +module = angular.module("taigaFeedback", []) + +FeedbackDirective = ($lightboxService, $navurls, $location, $route)-> + link = ($scope, $el, $attrs) -> + form = $el.find("form").checksley() + project = null + + submit = debounce 2000, -> + if not form.validate() + return + + $scope.$on "feedback:show", (ctx, newProject)-> + project = newProject + + $scope.$apply -> + $scope.issueTypes = _.sortBy(project.issue_types, "order") + + $scope.feedback = { + project: project.id + type: project.default_issue_type + } + + $lightboxService.open($el) + $el.find("textarea").focus() + + $el.on "submit", (event) -> + submit() + + $el.on "click", ".button-green", (event) -> + event.preventDefault() + submit() + + return {link:link} + +module.directive("tgFeedback", ["lightboxService", "$tgNavUrls", "$tgLocation", "$route", FeedbackDirective]) diff --git a/app/coffee/modules/nav.coffee b/app/coffee/modules/nav.coffee index 88a7a4e1..fd6f6b17 100644 --- a/app/coffee/modules/nav.coffee +++ b/app/coffee/modules/nav.coffee @@ -262,6 +262,7 @@ ProjectMenuDirective = ($log, $compile, $auth, $rootscope, $tgAuth, $location, $