From a3d1c4bc65c200cf1f7ac1afebe573de79bbeb96 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Wed, 22 Oct 2014 08:54:38 +0200 Subject: [PATCH] fix #1397 - rename role --- app/coffee/modules/admin/roles.coffee | 37 +++++++++++++++++++++++ app/partials/admin-roles.jade | 13 ++++++-- app/styles/modules/admin/admin-roles.scss | 14 +++++++++ 3 files changed, 61 insertions(+), 3 deletions(-) diff --git a/app/coffee/modules/admin/roles.coffee b/app/coffee/modules/admin/roles.coffee index 423a0ecb..72fbf60f 100644 --- a/app/coffee/modules/admin/roles.coffee +++ b/app/coffee/modules/admin/roles.coffee @@ -123,6 +123,43 @@ class RolesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fil module.controller("RolesController", RolesController) +EditRoleDirective = ($repo, $confirm) -> + link = ($scope, $el, $attrs) -> + toggleView = -> + $el.find('.total').toggle() + $el.find('.edit-role').toggle() + + submit = () -> + $scope.role.name = $el.find("input").val() + + promise = $repo.save($scope.role) + + promise.then -> + $confirm.notify("success") + + promise.then null, (data) -> + $confirm.notify("error") + + toggleView() + + $el.on "click", "a.icon-edit", -> + toggleView() + $el.find("input").focus() + + $el.on "click", "a.save", submit + + $el.on "keyup", "input", -> + if event.keyCode == 13 # Enter key + submit() + else if event.keyCode == 27 # ESC key + toggleView() + + $scope.$on "$destroy", -> + $el.off() + + return {link:link} + +module.directive("tgEditRole", ["$tgRepo", "$tgConfirm", EditRoleDirective]) RolesDirective = -> link = ($scope, $el, $attrs) -> diff --git a/app/partials/admin-roles.jade b/app/partials/admin-roles.jade index 900332e5..acdb715c 100644 --- a/app/partials/admin-roles.jade +++ b/app/partials/admin-roles.jade @@ -17,9 +17,16 @@ block content .action-buttons a.button.button-red.delete-role(href="", title="Delete", ng-click="ctrl.delete()") Delete - p.total - | {{ role.name }} - span ({{ role.members_count }} members with this role) + + div(tg-edit-role) + .edit-role.hidden + input(type="text", value="{{ role.name }}") + a.save.icon.icon-floppy(href="", title="Save") + + p.total + | {{ role.name }} + a.edit-value.icon.icon-edit + span ({{ role.members_count }} members with this role) div.any-computable-role(ng-hide="anyComputableRole") Be careful, no role in your project will be able to estimate the point value for user stories diff --git a/app/styles/modules/admin/admin-roles.scss b/app/styles/modules/admin/admin-roles.scss index 1ae92901..4bd3839b 100644 --- a/app/styles/modules/admin/admin-roles.scss +++ b/app/styles/modules/admin/admin-roles.scss @@ -1,4 +1,18 @@ .admin-roles { + .edit-value { + cursor: pointer; + margin-left: .5rem; + } + .edit-role { + @include table-flex(stretch, left, center, row, wrap); + margin-bottom: 1rem; + input { + width: auto; + } + .icon-floppy { + margin-left: .5rem; + } + } .total { @extend %large; @extend %title;