#3642 - also save all languages with content on publish

This commit is contained in:
Bjarke Berg
2019-01-10 14:28:22 +01:00
parent 228fca04ec
commit 10d0c79c1d
3 changed files with 50 additions and 6 deletions

View File

@@ -6,11 +6,12 @@
var vm = this;
vm.loading = true;
vm.hasPristineVariants = false;
vm.isNew = true;
vm.changeSelection = changeSelection;
vm.dirtyVariantFilter = dirtyVariantFilter;
vm.pristineVariantFilter = pristineVariantFilter;
/** Returns true if publishing is possible based on if there are un-published mandatory languages */
function canPublish() {
var selected = [];
@@ -22,7 +23,7 @@
var published = !(variant.state === "NotCreated" || variant.state === "Draft");
if ((variant.language.isMandatory && !published) && (!publishable || !variant.publish)) {
//if a mandatory variant isn't published
//if a mandatory variant isn't published
//and it's not publishable or not selected to be published
//then we cannot continue
@@ -53,12 +54,35 @@
return (variant.active || variant.isDirty || variant.state === "Draft" || variant.state === "PublishedPendingChanges" || variant.state === "NotCreated");
}
function hasAnyData(variant) {
var result = variant.isDirty != null || (variant.name != null && variant.name.length > 0);
if(result) return true;
for (var t=0; t < variant.tabs.length; t++){
for (var p=0; p < variant.tabs[t].properties.length; p++){
var property = variant.tabs[t].properties[p];
if(property.culture == null) continue;
result = result || (property.value != null && property.value.length > 0);
if(result) return true;
}
}
return result;
}
function pristineVariantFilter(variant) {
return !(dirtyVariantFilter(variant));
}
function onInit() {
vm.variants = $scope.model.variants;
if (!$scope.model.title) {
@@ -69,6 +93,13 @@
vm.hasPristineVariants = false;
_.each(vm.variants,
function (variant) {
if(variant.state !== "NotCreated"){
vm.isNew = false;
}
});
_.each(vm.variants,
function (variant) {
variant.compositeId = variant.language.culture + "_" + (variant.segment ? variant.segment : "");
@@ -78,6 +109,10 @@
if (!vm.hasPristineVariants) {
vm.hasPristineVariants = pristineVariantFilter(variant);
}
if(vm.isNew && hasAnyData(variant)){
variant.save = true;
}
});
if (vm.variants.length !== 0) {
@@ -103,8 +138,16 @@
$scope.model.disableSubmitButton = true;
}
vm.loading = false;
var labelKey = vm.isNew ? "content_languagesToPublishForFirstTime" : "content_languagesToPublish";
localizationService.localize(labelKey).then(function (value) {
vm.headline = value;
vm.loading = false;
});
}
onInit();

View File

@@ -1,7 +1,7 @@
<div ng-controller="Umbraco.Overlays.PublishController as vm">
<div style="margin-bottom: 15px;">
<p><localize key="content_languagesToPublish"></localize></p>
<p>{{vm.headline}}</p>
</div>
<div ng-if="vm.loading" style="min-height: 50px; position: relative;">
@@ -65,7 +65,7 @@
<div ng-repeat="notification in variant.notifications">
<div class="umb-permission__description" style="color: #1FB572;">{{notification.message}}</div>
</div>
</div>
</div>
</div>