Merge branch 'temp7-create-template-fix' into dev-v7

This commit is contained in:
Warren Buckley
2018-11-05 14:49:43 +00:00
2 changed files with 58 additions and 35 deletions

View File

@@ -6,7 +6,7 @@
* @description
* The controller for the content type editor templates sub view
*/
(function() {
(function () {
'use strict';
function TemplatesController($scope, entityResource, contentTypeHelper, templateResource, $routeParams) {
@@ -16,33 +16,35 @@
var vm = this;
vm.availableTemplates = [];
vm.canCreateTemplate = false;
vm.updateTemplatePlaceholder = false;
vm.createTemplate = createTemplate;
/* ---------- INIT ---------- */
init(function () {
function onInit() {
// update placeholder template information on new doc types
if (!$routeParams.notemplate && $scope.model.id === 0) {
vm.updateTemplatePlaceholder = true;
vm.availableTemplates = contentTypeHelper.insertTemplatePlaceholder(vm.availableTemplates);
}
});
function init(callback) {
entityResource.getAll("Template").then(function(templates){
entityResource.getAll("Template").then(function (templates) {
vm.availableTemplates = templates;
callback();
// update placeholder template information on new doc types
if (!$routeParams.notemplate && $scope.model.id === 0) {
vm.updateTemplatePlaceholder = true;
vm.availableTemplates = contentTypeHelper.insertTemplatePlaceholder(vm.availableTemplates);
}
checkIfTemplateExists();
});
}
vm.createTemplate = function () {
function createTemplate() {
vm.createTemplateButtonState = "busy";
templateResource.getScaffold(-1).then(function (template) {
template.alias = $scope.model.alias;
@@ -50,24 +52,39 @@
templateResource.save(template).then(function (savedTemplate) {
init(function () {
// add icon
savedTemplate.icon = "icon-layout";
vm.availableTemplates.push(savedTemplate);
vm.canCreateTemplate = false;
var newTemplate = vm.availableTemplates.filter(function (t) { return t.id === savedTemplate.id });
if (newTemplate.length > 0) {
$scope.model.allowedTemplates.push(newTemplate[0]);
$scope.model.allowedTemplates.push(savedTemplate);
if ($scope.model.defaultTemplate === null) {
$scope.model.defaultTemplate = newTemplate[0];
}
}
if ($scope.model.defaultTemplate === null) {
$scope.model.defaultTemplate = savedTemplate;
}
});
vm.createTemplateButtonState = "success";
}, function() {
vm.createTemplateButtonState = "error";
});
}, function() {
vm.createTemplateButtonState = "error";
});
};
function checkIfTemplateExists() {
var existingTemplate = vm.availableTemplates.find(function (availableTemplate) {
return (availableTemplate.name === $scope.model.name || availableTemplate.placeholder);
});
vm.canCreateTemplate = existingTemplate ? false : true;
}
onInit();
}
angular.module("umbraco").controller("Umbraco.Editors.DocumentType.TemplatesController", TemplatesController);

View File

@@ -7,20 +7,26 @@
<div class="sub-view-column-right">
<umb-grid-selector ng-if="vm.availableTemplates"
selected-items="model.allowedTemplates"
available-items="vm.availableTemplates"
default-item="model.defaultTemplate"
item-name="template"
name="model.name"
alias="model.alias"
update-placeholder="vm.updateTemplatePlaceholder">
<umb-grid-selector
ng-if="vm.availableTemplates"
selected-items="model.allowedTemplates"
available-items="vm.availableTemplates"
default-item="model.defaultTemplate"
item-name="template"
name="model.name"
alias="model.alias"
update-placeholder="vm.updateTemplatePlaceholder">
</umb-grid-selector>
<button type="button" ng-click="vm.createTemplate()" class="btn btn-info" ng-show="model.allowedTemplates.length == 0">
<i class="icon icon-add"></i>
<localize key="shortcuts_addTemplate">Add template</localize>
</button>
<umb-button
ng-if="vm.canCreateTemplate"
type="button"
button-style="info"
action="vm.createTemplate()"
state="vm.createTemplateButtonState"
label-key="settings_createMatchingTemplate">
</umb-button>
</div>
</div>