Choose default template as first template, show message when all templates are chosen, allow removal of default template if all other templates has been removed.

This commit is contained in:
Mads Rasmussen
2015-06-15 11:29:30 +02:00
parent 2c9343afcb
commit be35aa0eef
2 changed files with 48 additions and 19 deletions

View File

@@ -36,11 +36,8 @@ function TemplatesController($scope, entityResource) {
});
if(exists) {
template.show = false;
} else {
template.show = true;
}
// set template show/hide in overlay
template.show = !exists;
});
});
@@ -54,18 +51,24 @@ function TemplatesController($scope, entityResource) {
$scope.contentType.allowedTemplates.splice(selectedTemplateIndex, 1);
// show content type in content types array
for (var templateIndex = 0; templateIndex < $scope.templates.availableTemplates.length; templateIndex++) {
var template = $scope.templates.availableTemplates[templateIndex];
if( selectedTemplate.alias === template.alias ) {
template.show = true;
}
}
showTemplateInOverlay(selectedTemplate);
};
$scope.openTemplatesPicker = function($event){
$scope.removeDefaultTemplate = function() {
// show template in picker
showTemplateInOverlay($scope.contentType.defaultTemplate);
// remove default template from array - it will be the last template so we can clear the array
$scope.contentType.allowedTemplates = [];
// remove as default template
$scope.contentType.defaultTemplate = null;
};
$scope.openTemplatesPicker = function($event, setAsDefaultTemplate){
$scope.showDialog = false;
$scope.dialogModel = {};
$scope.dialogModel.title = "Choose template";
@@ -76,17 +79,23 @@ function TemplatesController($scope, entityResource) {
$scope.dialogModel.chooseTemplate = function(selectedTemplate) {
// push template as allowed template
$scope.contentType.allowedTemplates.push(selectedTemplate);
// if true set template as default template
if(setAsDefaultTemplate) {
$scope.setAsDefaultTemplate(selectedTemplate);
}
// remove template from overlay picker
for (var templateIndex = 0; templateIndex < $scope.templates.availableTemplates.length; templateIndex++) {
var template = $scope.templates.availableTemplates[templateIndex];
if( selectedTemplate.alias === template.alias ) {
template.show = false;
}
}
// hide dialog
$scope.showDialog = false;
$scope.dialogModel = null;
};
@@ -98,6 +107,20 @@ function TemplatesController($scope, entityResource) {
};
function showTemplateInOverlay(templateToShow) {
for (var templateIndex = 0; templateIndex < $scope.templates.availableTemplates.length; templateIndex++) {
var template = $scope.templates.availableTemplates[templateIndex];
if( templateToShow.alias === template.alias ) {
template.show = true;
}
}
}
$scope.setAsDefaultTemplate = function(template) {
$scope.contentType.defaultTemplate = {};
$scope.contentType.defaultTemplate = template;

View File

@@ -9,12 +9,13 @@
<div class="templates-grid">
<div class="template template-default">
<div class="template template-default" ng-if="contentType.defaultTemplate !== null">
<div class="template-content">
<i class="icon icon-newspaper-alt"></i>
<div class="template-name">{{ contentType.defaultTemplate.name }}</div>
<span class="template-default-label">(Default)</span>
</div>
<i class="icon icon-trash remove-template" ng-if="contentType.allowedTemplates.length === 1" ng-click="removeDefaultTemplate()"></i>
</div>
<div class="template" ng-repeat="template in contentType.allowedTemplates | filter: { id:'!'+contentType.defaultTemplate.id }">
@@ -26,14 +27,19 @@
<i class="icon icon-trash remove-template" ng-click="removeTemplate(template)"></i>
</div>
<div class="template template-placeholder">
<div class="template template-placeholder" ng-if="(templates.availableTemplates | filter:{show:true}).length > 0">
<div class="template-content">
<div class="template-name" ng-click="openTemplatesPicker($event)">Choose template</div>
<div class="template-name" ng-if="contentType.defaultTemplate !== null" ng-click="openTemplatesPicker($event)">Choose template</div>
<div class="template-name" ng-if="contentType.defaultTemplate === null" ng-click="openTemplatesPicker($event, true)">Choose default template</div>
</div>
</div>
</div>
<div class="text-center" ng-if="(templates.availableTemplates | filter:{show:true}).length === 0">
<small>All templates are added as allowed templates</small>
</div>
</div>
<umb-overlay