check for send to publish permission

This commit is contained in:
Mads Rasmussen
2022-05-12 18:05:38 +02:00
parent c26a0a46b0
commit 7405cbe6ef
3 changed files with 14 additions and 2 deletions

View File

@@ -44,6 +44,10 @@
}
function allowSendToPublish (variant) {
return variant.allowedActions.includes("H");
}
function changeSelection() {
var firstSelected = vm.variants.find(v => v.save);
$scope.model.disableSubmitButton = !firstSelected; //disable submit button if there is none selected
@@ -62,13 +66,15 @@
// * it's editor is in a $dirty state
// * it has pending saves
// * it is unpublished
return (variant.active || variant.isDirty || variant.state === "Draft" || variant.state === "PublishedPendingChanges");
variant.notAllowed = allowSendToPublish(variant) === false && variant.active;
return (variant.active || variant.isDirty || variant.state === "Draft" || variant.state === "PublishedPendingChanges") && (allowSendToPublish(variant) || variant.active);
}
//when this dialog is closed, reset all 'save' flags
$scope.$on('$destroy', function () {
vm.variants.forEach(variant => {
variant.save = false;
variant.notAllowed = false;
});
});

View File

@@ -18,7 +18,8 @@
name="publishVariantSelector"
model="variant.publish"
on-change="vm.changeSelection(variant)"
server-validation-field="{{variant.htmlId}}">
server-validation-field="{{variant.htmlId}}"
disabled="variant.notAllowed">
<span class="umb-variant-selector-entry__title" ng-if="!(variant.segment && variant.language)">
<span ng-bind="variant.displayName"></span>
@@ -33,6 +34,10 @@
<umb-variant-state variant="variant"></umb-variant-state>
<span ng-if="variant.isMandatory"> - </span>
<span ng-if="variant.isMandatory" ng-class="{'text-error': (variant.publish === false) }"><localize key="general_mandatory">Mandatory</localize></span>
<span ng-if="variant.notAllowed"> - </span>
<span ng-if="variant.notAllowed" class="text-error">
<localize key="content_variantSendForApprovalNotAllowed"></localize>
</span>
</span>
<span class="umb-variant-selector-entry__description" ng-messages="publishVariantSelectorForm.publishVariantSelector.$error" show-validation-on-submit>
<span class="text-error" ng-message="valServerField">{{publishVariantSelectorForm.publishVariantSelector.errorMsg}}</span>