Disable color selector if the user doesn\t have permission to edit epic

stable
David Barragán Merino 2016-09-21 16:13:00 +02:00
parent 4c3710cf4f
commit 4c89ff3669
5 changed files with 24 additions and 3 deletions

View File

@ -22,11 +22,19 @@ getDefaulColorList = taiga.getDefaulColorList
class ColorSelectorController class ColorSelectorController
constructor: () -> @.$inject = [
"tgProjectService",
]
constructor: (@projectService) ->
@.colorList = getDefaulColorList() @.colorList = getDefaulColorList()
@.checkIsColorRequired() @.checkIsColorRequired()
@.displayColorList = false @.displayColorList = false
userCanChangeColor: () ->
return true if not @.requiredPerm
return @projectService.hasPermission(@.requiredPerm)
checkIsColorRequired: () -> checkIsColorRequired: () ->
if !@.isColorRequired if !@.isColorRequired
@.colorList = _.dropRight(@.colorList) @.colorList = _.dropRight(@.colorList)

View File

@ -56,7 +56,8 @@ ColorSelectorDirective = ($timeout) ->
bindToController: { bindToController: {
isColorRequired: "=", isColorRequired: "=",
onSelectColor: "&", onSelectColor: "&",
initColor: "=" initColor: "=",
requiredPerm: "@"
}, },
scope: {}, scope: {},
} }

View File

@ -1,4 +1,12 @@
.color-selector //- Read only mode
.color-selector(ng-if="!vm.userCanChangeColor()")
.tag-color.disabled.e2e-open-color-selector(
ng-class="{'empty-color': !vm.color}"
ng-style="{'background': vm.color}"
)
//- Read & Edit mode
.color-selector(ng-if="vm.userCanChangeColor()")
.tag-color.e2e-open-color-selector( .tag-color.e2e-open-color-selector(
ng-click="vm.toggleColorList()" ng-click="vm.toggleColorList()"
ng-class="{'empty-color': !vm.color}" ng-class="{'empty-color': !vm.color}"

View File

@ -18,6 +18,9 @@
border-radius: 0; border-radius: 0;
margin: 0; margin: 0;
transition: background .3s ease-out; transition: background .3s ease-out;
&.disabled {
cursor: auto;
}
&.empty-color { &.empty-color {
@include empty-color(34); @include empty-color(34);
} }

View File

@ -23,6 +23,7 @@ div.wrapper(
is-color-required="true" is-color-required="true"
init-color="epic.color" init-color="epic.color"
on-select-color="ctrl.onSelectColor(color)" on-select-color="ctrl.onSelectColor(color)"
required-perm="modify_epic"
) )
tg-detail-header( tg-detail-header(
item="epic" item="epic"