Use the content type model when creating a "matching template"
This commit is contained in:
@@ -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);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user