Disable color selector if the user doesn\t have permission to edit epic
parent
4c3710cf4f
commit
4c89ff3669
|
@ -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)
|
||||||
|
|
|
@ -56,7 +56,8 @@ ColorSelectorDirective = ($timeout) ->
|
||||||
bindToController: {
|
bindToController: {
|
||||||
isColorRequired: "=",
|
isColorRequired: "=",
|
||||||
onSelectColor: "&",
|
onSelectColor: "&",
|
||||||
initColor: "="
|
initColor: "=",
|
||||||
|
requiredPerm: "@"
|
||||||
},
|
},
|
||||||
scope: {},
|
scope: {},
|
||||||
}
|
}
|
||||||
|
|
|
@ -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}"
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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"
|
||||||
|
|
Loading…
Reference in New Issue