From 7fa4d814a271c98c2f12cfeec7b151d0d3dca202 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Fri, 24 Apr 2015 08:16:22 +0200 Subject: [PATCH] Adding tag support for projects --- app/coffee/modules/admin/project-profile.coffee | 12 +++++++++++- app/coffee/modules/common/tags.coffee | 9 ++++++--- app/locales/locale-en.json | 3 ++- app/partials/admin/admin-project-profile.jade | 4 ++++ 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/app/coffee/modules/admin/project-profile.coffee b/app/coffee/modules/admin/project-profile.coffee index ffbb97f0..5f36c546 100644 --- a/app/coffee/modules/admin/project-profile.coffee +++ b/app/coffee/modules/admin/project-profile.coffee @@ -84,12 +84,22 @@ class ProjectProfileController extends mixOf(taiga.Controller, taiga.PageMixin) @scope.$emit('project:loaded', project) return project + loadTagsColors: -> + return @rs.projects.tagsColors(@scope.projectId).then (tags_colors) => + @scope.project.tags_colors = tags_colors + + loadProjectProfile: -> + return @q.all([ + @.loadProject(), + @.loadTagsColors() + ]) + loadInitialData: -> promise = @repo.resolve({pslug: @params.pslug}).then (data) => @scope.projectId = data.project return data - return promise.then(=> @.loadProject()) + return promise.then(=> @.loadProjectProfile()) openDeleteLightbox: -> @rootscope.$broadcast("deletelightbox:new", @scope.project) diff --git a/app/coffee/modules/common/tags.coffee b/app/coffee/modules/common/tags.coffee index a4c68d41..e915fd84 100644 --- a/app/coffee/modules/common/tags.coffee +++ b/app/coffee/modules/common/tags.coffee @@ -237,7 +237,10 @@ TagLineDirective = ($rootScope, $repo, $rs, $confirm, $qqueue, $template, $compi link = ($scope, $el, $attrs, $model) -> isEditable = -> - return $scope.project.my_permissions.indexOf($attrs.requiredPerm) != -1 + if $attrs.requiredPerm? + return $scope.project.my_permissions.indexOf($attrs.requiredPerm) != -1 + + return true ## Render renderTags = (tags, tagsColors) -> @@ -362,7 +365,7 @@ TagLineDirective = ($rootScope, $repo, $rs, $confirm, $qqueue, $template, $compi deleteValue(value) - bindOnce $scope, "project", (project) -> + bindOnce $scope, "project.tags_colors", (tags_colors) -> if not isEditable() renderInReadModeOnly() return @@ -376,7 +379,7 @@ TagLineDirective = ($rootScope, $repo, $rs, $confirm, $qqueue, $template, $compi menu.css("left", position.left) $el.find("input").autocomplete({ - source: _.keys(project.tags_colors) + source: _.keys(tags_colors) position: { my: "left top", using: positioningFunction diff --git a/app/locales/locale-en.json b/app/locales/locale-en.json index 5e667b78..9997386b 100644 --- a/app/locales/locale-en.json +++ b/app/locales/locale-en.json @@ -38,7 +38,8 @@ "TAGS": { "PLACEHOLDER": "I'm it! Tag me...", "DELETE": "Delete tag", - "ADD": "Add tag" + "ADD": "Add tag", + "LIST": "Tags" }, "DESCRIPTION": { "EMPTY": "Empty space is so boring... go on be descriptive... A rose by any other name would smell as sweet...", diff --git a/app/partials/admin/admin-project-profile.jade b/app/partials/admin/admin-project-profile.jade index f71f6acb..ada40387 100644 --- a/app/partials/admin/admin-project-profile.jade +++ b/app/partials/admin/admin-project-profile.jade @@ -34,6 +34,10 @@ div.wrapper(tg-project-profile, ng-controller="ProjectProfileController as ctrl" id="total-story-points", ng-model="project.total_story_points", data-type="digits", data-required="true") + fieldset + label(for="tags", translate="COMMON.TAGS.LIST") + div.tags-block(tg-tag-line, ng-model="project") + fieldset label(for="project-description", translate="ADMIN.PROJECT_PROFILE.DESCRIPTION") textarea(name="description", placeholder="{{'ADMIN.PROJECT_PROFILE.DESCRIPTION' | translate}}", id="project-description",