diff --git a/src/Umbraco.Core/EmbeddedResources/Lang/en_us.xml b/src/Umbraco.Core/EmbeddedResources/Lang/en_us.xml
index ca10876cc0..bcd1030130 100644
--- a/src/Umbraco.Core/EmbeddedResources/Lang/en_us.xml
+++ b/src/Umbraco.Core/EmbeddedResources/Lang/en_us.xml
@@ -323,6 +323,7 @@
Publish is not allowed
Send for approval is not allowed
Schedule is not allowed
+ Unpublish is not allowed
%0%]]>
diff --git a/src/Umbraco.Web.UI.Client/src/views/content/overlays/unpublish.controller.js b/src/Umbraco.Web.UI.Client/src/views/content/overlays/unpublish.controller.js
index f6c0ea67f9..94c01662b5 100644
--- a/src/Umbraco.Web.UI.Client/src/views/content/overlays/unpublish.controller.js
+++ b/src/Umbraco.Web.UI.Client/src/views/content/overlays/unpublish.controller.js
@@ -34,7 +34,7 @@
var active = vm.variants.find(v => v.active);
- if (active && publishedVariantFilter(active)) {
+ if (active && publishedVariantFilter(active) && allowUnpublish(active)) {
//ensure that the current one is selected
active.save = true;
}
@@ -45,6 +45,10 @@
}
+ function allowUnpublish (variant) {
+ return variant.allowedActions.includes("Z");
+ }
+
function changeSelection(selectedVariant) {
// if a mandatory variant is selected we want to select all other variants, we cant have anything published if a mandatory variants gets unpublished.
@@ -101,13 +105,15 @@
//determine a variant is 'published' (meaning it will show up as able unpublish)
// * it has been published
// * it has been published with pending changes
- return (variant.state === "Published" || variant.state === "PublishedPendingChanges");
+ variant.notAllowed = allowUnpublish(variant) === false && variant.active;
+ return (variant.state === "Published" || variant.state === "PublishedPendingChanges") && (allowUnpublish(variant) || variant.active);
}
//when this dialog is closed, remove all unpublish and disabled flags
$scope.$on('$destroy', () => {
vm.variants.forEach(variant => {
variant.save = variant.disabled = false;
+ variant.notAllowed = false;
});
});
diff --git a/src/Umbraco.Web.UI.Client/src/views/content/overlays/unpublish.html b/src/Umbraco.Web.UI.Client/src/views/content/overlays/unpublish.html
index b938065bc2..aec494c6ae 100644
--- a/src/Umbraco.Web.UI.Client/src/views/content/overlays/unpublish.html
+++ b/src/Umbraco.Web.UI.Client/src/views/content/overlays/unpublish.html
@@ -21,7 +21,7 @@
name="unpublishVariantSelector"
model="variant.save"
on-change="vm.changeSelection(variant)"
- disabled="variant.disabled"
+ disabled="variant.disabled || variant.notAllowed"
server-validation-field="{{variant.htmlId}}">
@@ -37,6 +37,10 @@
-
Mandatory
+ -
+
+
+
{{publishVariantSelectorForm.publishVariantSelector.errorMsg}}