From ae5e549a8e63ca4969c3264966d25de42f6d088a Mon Sep 17 00:00:00 2001 From: Robert Date: Thu, 1 Nov 2018 10:40:42 +0100 Subject: [PATCH 1/3] Only show "Add Template" button if the template does not currently exists. --- .../views/templates/templates.controller.js | 43 +++++++++++-------- .../views/templates/templates.html | 2 +- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.controller.js b/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.controller.js index 3ce795b01e..82f13dcc9f 100644 --- a/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.controller.js @@ -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,6 +16,7 @@ var vm = this; vm.availableTemplates = []; + vm.canCreateTemplate = false; vm.updateTemplatePlaceholder = false; @@ -31,15 +32,9 @@ }); function init(callback) { + checkIfTemplateExists(); - entityResource.getAll("Template").then(function(templates){ - - vm.availableTemplates = templates; - - callback(); - - }); - + callback(); } vm.createTemplate = function () { @@ -50,21 +45,31 @@ templateResource.save(template).then(function (savedTemplate) { - init(function () { + 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; + } }); + }); + }; + + function checkIfTemplateExists() { + entityResource.getAll("Template").then(function (templates) { + + vm.availableTemplates = templates; + + var existingTemplate = vm.availableTemplates.find(function (availableTemplate) { + return availableTemplate.name === $scope.model.name; + }); + + vm.canCreateTemplate = existingTemplate ? false : true; + }); } diff --git a/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.html b/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.html index c02bb78de7..0f7387e855 100644 --- a/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.html +++ b/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.html @@ -17,7 +17,7 @@ update-placeholder="vm.updateTemplatePlaceholder"> - From 42bcde2c59d1a493760dfa4ca2e64b3f2ca83596 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 5 Nov 2018 15:32:07 +0100 Subject: [PATCH 2/3] rename button, use umb button directive, add icon to template + a bit of code clean up --- .../views/templates/templates.controller.js | 54 +++++++++++-------- .../views/templates/templates.html | 30 ++++++----- 2 files changed, 51 insertions(+), 33 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.controller.js b/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.controller.js index 82f13dcc9f..e9499bedf8 100644 --- a/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.controller.js @@ -19,25 +19,32 @@ 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); - } - }); + entityResource.getAll("Template").then(function (templates) { - function init(callback) { - checkIfTemplateExists(); + vm.availableTemplates = templates; + + // 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(); + + }); - callback(); } - vm.createTemplate = function () { + function createTemplate() { + + vm.createTemplateButtonState = "busy"; + templateResource.getScaffold(-1).then(function (template) { template.alias = $scope.model.alias; @@ -45,6 +52,9 @@ templateResource.save(template).then(function (savedTemplate) { + // add icon + savedTemplate.icon = "icon-layout"; + vm.availableTemplates.push(savedTemplate); vm.canCreateTemplate = false; @@ -54,25 +64,27 @@ $scope.model.defaultTemplate = savedTemplate; } + vm.createTemplateButtonState = "success"; + + }, function() { + vm.createTemplateButtonState = "error"; }); + }, function() { + vm.createTemplateButtonState = "error"; }); }; function checkIfTemplateExists() { - entityResource.getAll("Template").then(function (templates) { - - vm.availableTemplates = templates; - - var existingTemplate = vm.availableTemplates.find(function (availableTemplate) { - return availableTemplate.name === $scope.model.name; - }); - - vm.canCreateTemplate = existingTemplate ? false : true; - + var existingTemplate = vm.availableTemplates.find(function (availableTemplate) { + return availableTemplate.name === $scope.model.name; }); + + vm.canCreateTemplate = existingTemplate ? false : true; } + onInit(); + } angular.module("umbraco").controller("Umbraco.Editors.DocumentType.TemplatesController", TemplatesController); diff --git a/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.html b/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.html index 0f7387e855..8cc1081b3e 100644 --- a/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.html +++ b/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.html @@ -7,20 +7,26 @@
- + - + + +
From 9153e4443fca96d5858bd26c9dc6173ed69fb2c8 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 5 Nov 2018 15:39:56 +0100 Subject: [PATCH 3/3] check for "fake template" when creating a new doc type with a template --- .../views/documenttypes/views/templates/templates.controller.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.controller.js b/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.controller.js index e9499bedf8..33204f4a74 100644 --- a/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/documenttypes/views/templates/templates.controller.js @@ -77,7 +77,7 @@ function checkIfTemplateExists() { var existingTemplate = vm.availableTemplates.find(function (availableTemplate) { - return availableTemplate.name === $scope.model.name; + return (availableTemplate.name === $scope.model.name || availableTemplate.placeholder); }); vm.canCreateTemplate = existingTemplate ? false : true;