Use the content type model when creating a "matching template"

This commit is contained in:
Kenn Jacobsen
2019-04-06 08:00:44 +02:00
parent 9d9c201984
commit 2ee8f9dea2
3 changed files with 35 additions and 21 deletions

View File

@@ -344,6 +344,12 @@ function contentTypeResource($q, $http, umbRequestHelper, umbDataFormatter, loca
$http.post(umbRequestHelper.getApiUrl("contentTypeApiBaseUrl", "Import", { file: file })),
"Failed to import document type " + file
);
},
createDefaultTemplate: function (id) {
return umbRequestHelper.resourcePromise(
$http.post(umbRequestHelper.getApiUrl("contentTypeApiBaseUrl", "PostCreateDefaultTemplate", { id: id })),
'Failed to create default template for content type with id ' + id);
}
};
}

View File

@@ -9,7 +9,7 @@
(function () {
'use strict';
function TemplatesController($scope, entityResource, contentTypeHelper, templateResource, $routeParams) {
function TemplatesController($scope, entityResource, contentTypeHelper, templateResource, contentTypeResource, $routeParams) {
/* ----------- SCOPE VARIABLES ----------- */
@@ -48,34 +48,25 @@
vm.createTemplateButtonState = "busy";
templateResource.getScaffold(-1).then(function (template) {
template.alias = $scope.model.alias;
template.name = $scope.model.name;
templateResource.save(template).then(function (savedTemplate) {
// add icon
savedTemplate.icon = "icon-layout";
contentTypeResource.createDefaultTemplate($scope.model.id).then(function (savedTemplate) {
// add icon
savedTemplate.icon = "icon-layout";
vm.availableTemplates.push(savedTemplate);
vm.canCreateTemplate = false;
vm.availableTemplates.push(savedTemplate);
vm.canCreateTemplate = false;
$scope.model.allowedTemplates.push(savedTemplate);
$scope.model.allowedTemplates.push(savedTemplate);
if ($scope.model.defaultTemplate === null) {
$scope.model.defaultTemplate = savedTemplate;
}
if ($scope.model.defaultTemplate === null) {
$scope.model.defaultTemplate = savedTemplate;
}
vm.createTemplateButtonState = "success";
}, function() {
vm.createTemplateButtonState = "error";
});
vm.createTemplateButtonState = "success";
}, function() {
vm.createTemplateButtonState = "error";
});
};
function checkIfTemplateExists() {

View File

@@ -322,6 +322,23 @@ namespace Umbraco.Web.Editors
return display;
}
public TemplateDisplay PostCreateDefaultTemplate(int id)
{
var contentType = Services.ContentTypeService.Get(id);
if (contentType == null)
{
throw new NullReferenceException("No content type found with id " + id);
}
var template = CreateTemplateForContentType(contentType.Alias, contentType.Name);
if (template == null)
{
throw new NullReferenceException("Could not create default template for content type with id " + id);
}
return Mapper.Map<TemplateDisplay>(template);
}
private ITemplate CreateTemplateForContentType(string contentTypeAlias, string contentTypeName)
{
var template = Services.FileService.GetTemplate(contentTypeAlias);