From a3d1c4bc65c200cf1f7ac1afebe573de79bbeb96 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Wed, 22 Oct 2014 08:54:38 +0200 Subject: [PATCH 1/8] 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; From f2eeb11a606df3d8647d09d0a75b4b5275e47ba4 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Wed, 22 Oct 2014 08:54:38 +0200 Subject: [PATCH 2/8] fix #1397 - rename role --- app/partials/views/modules/lightbox-ask-choice.jade | 1 + app/styles/modules/admin/admin-roles.scss | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/partials/views/modules/lightbox-ask-choice.jade b/app/partials/views/modules/lightbox-ask-choice.jade index 0dcf1406..1fd43298 100644 --- a/app/partials/views/modules/lightbox-ask-choice.jade +++ b/app/partials/views/modules/lightbox-ask-choice.jade @@ -7,6 +7,7 @@ form span.subtitle #125 Crear el perfil de usuario senior en el admin span.replacement What value do you want to use as replacement? select.choices + p if the role is deleted all role estimates will be deleted div.options a.button.button-green(href="", title="Accept") span Accept diff --git a/app/styles/modules/admin/admin-roles.scss b/app/styles/modules/admin/admin-roles.scss index 4bd3839b..9bcbcb46 100644 --- a/app/styles/modules/admin/admin-roles.scss +++ b/app/styles/modules/admin/admin-roles.scss @@ -5,8 +5,16 @@ } .edit-role { @include table-flex(stretch, left, center, row, wrap); +<<<<<<< HEAD margin-bottom: 1rem; input { +======= + background-color: $whitish; + margin-bottom: 1rem; + padding: .5rem; + input { + background-color: $white; +>>>>>>> fix #1397 - rename role width: auto; } .icon-floppy { @@ -18,7 +26,7 @@ @extend %title; background-color: $whitish; color: $grayer; - padding: .5rem 1rem; + padding: 1rem; span { @extend %medium; @extend %text; From ebe5f4a4d6e155fbf16f0f013fae1f688b6aed77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Thu, 23 Oct 2014 10:01:40 +0200 Subject: [PATCH 3/8] Admin roles design and UX --- app/partials/admin-roles.jade | 3 +- app/styles/layout/base.scss | 12 ++++++- app/styles/layout/wiki.scss | 10 ------ app/styles/modules/admin/admin-roles.scss | 44 ++++++++++++++++------- 4 files changed, 44 insertions(+), 25 deletions(-) diff --git a/app/partials/admin-roles.jade b/app/partials/admin-roles.jade index acdb715c..2e7e8091 100644 --- a/app/partials/admin-roles.jade +++ b/app/partials/admin-roles.jade @@ -24,9 +24,8 @@ block content a.save.icon.icon-floppy(href="", title="Save") p.total - | {{ role.name }} + span.role-name(title="{{ role.members_count }} members with this role") {{ 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/layout/base.scss b/app/styles/layout/base.scss index 9dc54351..f9c50732 100644 --- a/app/styles/layout/base.scss +++ b/app/styles/layout/base.scss @@ -129,7 +129,17 @@ body { margin-bottom: 1rem; .action-buttons { @include flex-shrink(0); - padding-left: 1rem; + } + .button { + color: $white; + float: right; + margin-left: 10px; + &:first-child { + margin-left: 0; + } + &:hover { + color: $white; + } } h1 { margin-bottom: 0; diff --git a/app/styles/layout/wiki.scss b/app/styles/layout/wiki.scss index 743f82da..d8cfd8fb 100644 --- a/app/styles/layout/wiki.scss +++ b/app/styles/layout/wiki.scss @@ -1,13 +1,3 @@ .wiki-content { margin-bottom: 2rem; } -.action-buttons { - .button { - color: $white; - float: right; - margin-left: 10px; - &:hover { - color: $white; - } - } -} diff --git a/app/styles/modules/admin/admin-roles.scss b/app/styles/modules/admin/admin-roles.scss index 9bcbcb46..2907d0e7 100644 --- a/app/styles/modules/admin/admin-roles.scss +++ b/app/styles/modules/admin/admin-roles.scss @@ -1,36 +1,56 @@ .admin-roles { + .total { + background-color: $whitish; + padding: 1rem; + &:hover { + .edit-value { + @include transition(opacity .3s linear); + opacity: 1; + } + } + } + .role-name { + @extend %xlarge; + @extend %title; + color: $grayer; + } .edit-value { + @include transition(opacity .3s linear); + @extend %medium; + color: $gray-light; cursor: pointer; margin-left: .5rem; + opacity: 0; } .edit-role { @include table-flex(stretch, left, center, row, wrap); +<<<<<<< HEAD <<<<<<< HEAD margin-bottom: 1rem; input { ======= +======= +>>>>>>> Admin roles design and UX background-color: $whitish; margin-bottom: 1rem; padding: .5rem; input { background-color: $white; +<<<<<<< HEAD >>>>>>> fix #1397 - rename role width: auto; +======= + width: 50%; +>>>>>>> Admin roles design and UX } .icon-floppy { + @include transition(color.3s linear); + color: $gray-light; margin-left: .5rem; - } - } - .total { - @extend %large; - @extend %title; - background-color: $whitish; - color: $grayer; - padding: 1rem; - span { - @extend %medium; - @extend %text; - padding-left: .5rem; + &:hover { + @include transition(color.3s linear); + color: $green-taiga; + } } } .any-computable-role { From b4bc65a00de24d2969bef7d7ea37d50a43096f24 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 23 Oct 2014 11:04:15 +0200 Subject: [PATCH 4/8] close edit view when role changes --- app/coffee/modules/admin/roles.coffee | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/coffee/modules/admin/roles.coffee b/app/coffee/modules/admin/roles.coffee index 72fbf60f..aa452b01 100644 --- a/app/coffee/modules/admin/roles.coffee +++ b/app/coffee/modules/admin/roles.coffee @@ -154,6 +154,10 @@ EditRoleDirective = ($repo, $confirm) -> else if event.keyCode == 27 # ESC key toggleView() + $scope.$on "role:changed", -> + if $el.find('.edit-role').is(":visible") + toggleView() + $scope.$on "$destroy", -> $el.off() From ebb000ea4b13e5e56a31329378364cd67acfcc23 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Wed, 22 Oct 2014 08:54:38 +0200 Subject: [PATCH 5/8] fix #1397 - rename role --- app/partials/views/modules/lightbox-ask-choice.jade | 11 +++++------ app/styles/modules/admin/admin-roles.scss | 12 ++++++++++++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/app/partials/views/modules/lightbox-ask-choice.jade b/app/partials/views/modules/lightbox-ask-choice.jade index 1fd43298..f539263c 100644 --- a/app/partials/views/modules/lightbox-ask-choice.jade +++ b/app/partials/views/modules/lightbox-ask-choice.jade @@ -2,12 +2,11 @@ a.close(href="", title="close") span.icon.icon-delete form h2.title Delete User Story - p - span.question Are you sure you want to delete? - span.subtitle #125 Crear el perfil de usuario senior en el admin - span.replacement What value do you want to use as replacement? - select.choices - p if the role is deleted all role estimates will be deleted + p.question Are you sure you want to delete? + p.subtitle #125 Crear el perfil de usuario senior en el admin + p.replacement What value do you want to use as replacement? + select.choices + p if the role is deleted all role estimates will be deleted div.options a.button.button-green(href="", title="Accept") span Accept diff --git a/app/styles/modules/admin/admin-roles.scss b/app/styles/modules/admin/admin-roles.scss index 2907d0e7..cd3e3593 100644 --- a/app/styles/modules/admin/admin-roles.scss +++ b/app/styles/modules/admin/admin-roles.scss @@ -53,6 +53,18 @@ } } } + .total { + @extend %large; + @extend %title; + background-color: $whitish; + color: $grayer; + padding: 1rem; + span { + @extend %medium; + @extend %text; + padding-left: .5rem; + } + } .any-computable-role { background: $red; color: $white; From 5614f763a72a11c356a30bca155506eb3695677b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Thu, 23 Oct 2014 12:39:02 +0200 Subject: [PATCH 6/8] Project values lightbox refactor --- .../modules/admin/project-values.coffee | 5 ++-- app/coffee/modules/admin/roles.coffee | 8 ++++--- app/coffee/modules/common/confirm.coffee | 23 ++++++++++++++----- .../views/modules/lightbox-ask-choice.jade | 11 +++++---- app/styles/modules/common/lightbox.scss | 9 +++++--- 5 files changed, 37 insertions(+), 19 deletions(-) diff --git a/app/coffee/modules/admin/project-values.coffee b/app/coffee/modules/admin/project-values.coffee index 72351515..9399e392 100644 --- a/app/coffee/modules/admin/project-values.coffee +++ b/app/coffee/modules/admin/project-values.coffee @@ -260,12 +260,13 @@ ProjectValuesDirective = ($log, $repo, $confirm, $location, animationFrame) -> choices[option.id] = option.name #TODO: i18n - title = "Delete" + title = "Delete value" subtitle = value.name + replacement = "All items with this value will be changed to" if _.keys(choices).length == 0 return $confirm.error("You can't delete all values.") - return $confirm.askChoice(title, subtitle, choices).then (response) -> + return $confirm.askChoice(title, subtitle, choices, replacement).then (response) -> onSucces = -> $ctrl.loadValues().finally -> response.finish() diff --git a/app/coffee/modules/admin/roles.coffee b/app/coffee/modules/admin/roles.coffee index aa452b01..cf2d6bd7 100644 --- a/app/coffee/modules/admin/roles.coffee +++ b/app/coffee/modules/admin/roles.coffee @@ -89,8 +89,10 @@ class RolesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fil delete: -> # TODO: i18n - title = "Delete Role" + title = "Delete Role" # TODO: i18n subtitle = @scope.role.name + replacement = "All the users with this role will be moved to" # TODO: i18n + warning = "Be careful, all role estimations will be removed" # TODO: i18n choices = {} for role in @scope.roles @@ -98,9 +100,9 @@ class RolesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fil choices[role.id] = role.name if _.keys(choices).length == 0 - return @confirm.error("You can't delete all values.") + return @confirm.error("You can't delete all values.") # TODO: i18n - return @confirm.askChoice(title, subtitle, choices).then (response) => + return @confirm.askChoice(title, subtitle, choices, replacement, warning).then (response) => promise = @repo.remove(@scope.role, {moveTo: response.selected}) promise.then => @.loadProject() diff --git a/app/coffee/modules/common/confirm.coffee b/app/coffee/modules/common/confirm.coffee index d52ce5d4..81679f42 100644 --- a/app/coffee/modules/common/confirm.coffee +++ b/app/coffee/modules/common/confirm.coffee @@ -82,13 +82,24 @@ class ConfirmService extends taiga.Service askOnDelete: (title, message) -> return @.ask(title, "Are you sure you want to delete?", message) #TODO: i18n - askChoice: (title, subtitle, choices, lightboxSelector=".lightbox-ask-choice") -> + askChoice: (title, subtitle, choices, replacement, warning, lightboxSelector=".lightbox-ask-choice") -> el = angular.element(lightboxSelector) # Render content - el.find("h2.title").html(title) - el.find("span.subtitle").html(subtitle) - choicesField = el.find("select.choices") + el.find(".title").html(title) + el.find(".subtitle").html(subtitle) + + if replacement + el.find(".replacement").html(replacement) + else + el.find(".replacement").remove() + + if warning + el.find(".warning").html(warning) + else + el.find(".warning").remove() + + choicesField = el.find(".choices") choicesField.html('') _.each choices, (value, key) -> choicesField.append(angular.element("")) @@ -168,9 +179,9 @@ class ConfirmService extends taiga.Service el = angular.element(selector) if title - el.find("h4").html(title) + el.find("h4").html(title) else - el.find("h4").html(NOTIFICATION_MSG[type].title) + el.find("h4").html(NOTIFICATION_MSG[type].title) if message el.find("p").html(message) diff --git a/app/partials/views/modules/lightbox-ask-choice.jade b/app/partials/views/modules/lightbox-ask-choice.jade index f539263c..4e69be3b 100644 --- a/app/partials/views/modules/lightbox-ask-choice.jade +++ b/app/partials/views/modules/lightbox-ask-choice.jade @@ -1,12 +1,13 @@ a.close(href="", title="close") span.icon.icon-delete form - h2.title Delete User Story - p.question Are you sure you want to delete? - p.subtitle #125 Crear el perfil de usuario senior en el admin - p.replacement What value do you want to use as replacement? + h2.title + p.question + p.subtitle + p.replacement select.choices - p if the role is deleted all role estimates will be deleted + p.warning + div.options a.button.button-green(href="", title="Accept") span Accept diff --git a/app/styles/modules/common/lightbox.scss b/app/styles/modules/common/lightbox.scss index 46d83ba5..a771c4f3 100644 --- a/app/styles/modules/common/lightbox.scss +++ b/app/styles/modules/common/lightbox.scss @@ -311,13 +311,14 @@ } .lightbox-ask-choice { + text-align: center; form { - @include table-flex-child(0, 420px, 0, 420px); + @include table-flex-child(0, 420px, 0); } .question, .subtitle { display: block; - line-height: 2rem; + line-height: 1.5rem; text-align: center; } .subtitle { @@ -326,7 +327,9 @@ } .replacement { display: block; - text-align: center; + span { + display: block; + } } .options { @include table-flex(); From f9b102527da61b63217cfbed62d21ff0b11fc59e Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 23 Oct 2014 11:04:15 +0200 Subject: [PATCH 7/8] Fix total header in admin roles --- app/styles/modules/admin/admin-roles.scss | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/app/styles/modules/admin/admin-roles.scss b/app/styles/modules/admin/admin-roles.scss index cd3e3593..0a713da8 100644 --- a/app/styles/modules/admin/admin-roles.scss +++ b/app/styles/modules/admin/admin-roles.scss @@ -1,6 +1,9 @@ .admin-roles { .total { + @extend %large; + @extend %title; background-color: $whitish; + color: $grayer; padding: 1rem; &:hover { .edit-value { @@ -53,18 +56,6 @@ } } } - .total { - @extend %large; - @extend %title; - background-color: $whitish; - color: $grayer; - padding: 1rem; - span { - @extend %medium; - @extend %text; - padding-left: .5rem; - } - } .any-computable-role { background: $red; color: $white; From 3eb76b5566dec2d1c6cba3426bfceac91e39e34d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xavier=20Juli=C3=A1n?= Date: Thu, 23 Oct 2014 13:21:13 +0200 Subject: [PATCH 8/8] =?UTF-8?q?Rrebohluci=C3=B3nt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/styles/modules/admin/admin-roles.scss | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/app/styles/modules/admin/admin-roles.scss b/app/styles/modules/admin/admin-roles.scss index 0a713da8..fb5b000f 100644 --- a/app/styles/modules/admin/admin-roles.scss +++ b/app/styles/modules/admin/admin-roles.scss @@ -27,24 +27,12 @@ } .edit-role { @include table-flex(stretch, left, center, row, wrap); -<<<<<<< HEAD -<<<<<<< HEAD - margin-bottom: 1rem; - input { -======= -======= ->>>>>>> Admin roles design and UX background-color: $whitish; margin-bottom: 1rem; padding: .5rem; input { background-color: $white; -<<<<<<< HEAD ->>>>>>> fix #1397 - rename role - width: auto; -======= width: 50%; ->>>>>>> Admin roles design and UX } .icon-floppy { @include transition(color.3s linear);