Files
Umbraco-CMS/src/Umbraco.Web.UI.Client/src/views/common/overlays/insertfield/insertfield.controller.js
2018-06-06 10:15:50 +02:00

149 lines
4.8 KiB
JavaScript

(function () {
"use strict";
function InsertFieldController($scope, $http, contentTypeResource, localizationService) {
var vm = this;
vm.field;
vm.altField;
vm.altText;
vm.insertBefore;
vm.insertAfter;
vm.recursive = false;
vm.properties = [];
vm.standardFields = [];
vm.date = false;
vm.dateTime = false;
vm.dateTimeSeparator = "";
vm.casingUpper = false;
vm.casingLower = false;
vm.encodeHtml = false;
vm.encodeUrl = false;
vm.convertLinebreaks = false;
vm.showAltField = false;
vm.showAltText = false;
vm.setDateOption = setDateOption;
vm.setCasingOption = setCasingOption;
vm.setEncodingOption = setEncodingOption;
vm.generateOutputSample = generateOutputSample;
function onInit() {
// set default title
if(!$scope.model.title) {
localizationService.localize("template_insertPageField").then(function(value){
$scope.model.title = value;
});
}
// Load all fields
contentTypeResource.getAllPropertyTypeAliases().then(function (array) {
vm.properties = array;
});
// Load all standard fields
contentTypeResource.getAllStandardFields().then(function (array) {
vm.standardFields = array;
});
}
// date formatting
function setDateOption(option) {
if (option === 'date') {
if(vm.date) {
vm.date = false;
} else {
vm.date = true;
vm.dateTime = false;
}
}
if (option === 'dateWithTime') {
if(vm.dateTime) {
vm.dateTime = false;
} else {
vm.date = false;
vm.dateTime = true;
}
}
}
// casing formatting
function setCasingOption(option) {
if (option === 'uppercase') {
if(vm.casingUpper) {
vm.casingUpper = false;
} else {
vm.casingUpper = true;
vm.casingLower = false;
}
}
if (option === 'lowercase') {
if(vm.casingLower) {
vm.casingLower = false;
} else {
vm.casingUpper = false;
vm.casingLower = true;
}
}
}
// encoding formatting
function setEncodingOption(option) {
if (option === 'html') {
if(vm.encodeHtml) {
vm.encodeHtml = false;
} else {
vm.encodeHtml = true;
vm.encodeUrl = false;
}
}
if (option === 'url') {
if (vm.encodeUrl) {
vm.encodeUrl = false;
} else {
vm.encodeHtml = false;
vm.encodeUrl = true;
}
}
}
function generateOutputSample() {
var pageField = (vm.field !== undefined ? '@Umbraco.Field("' + vm.field + '"' : "")
+ (vm.altField !== undefined ? ', altFieldAlias:"' + vm.altField + '"' : "")
+ (vm.altText !== undefined ? ', altText:"' + vm.altText + '"' : "")
+ (vm.insertBefore !== undefined ? ', insertBefore:"' + vm.insertBefore + '"' : "")
+ (vm.insertAfter !== undefined ? ', insertAfter:"' + vm.insertAfter + '"' : "")
+ (vm.recursive !== false ? ', recursive: ' + vm.recursive : "")
+ (vm.date !== false ? ', formatAsDate: ' + vm.date : "")
+ (vm.dateTime !== false ? ', formatAsDateWithTimeSeparator:"' + vm.dateTimeSeparator + '"' : "")
+ (vm.casingUpper !== false ? ', casing: ' + "RenderFieldCaseType.Upper" : "")
+ (vm.casingLower !== false ? ', casing: ' + "RenderFieldCaseType.Lower" : "")
+ (vm.encodeHtml !== false ? ', encoding: ' + "RenderFieldEncodingType.Html" : "")
+ (vm.encodeUrl !== false ? ', encoding: ' + "RenderFieldEncodingType.Url" : "")
+ (vm.convertLinebreaks !== false ? ', convertLineBreaks: ' + "true" : "")
+ (vm.field ? ')' : "");
$scope.model.umbracoField = pageField;
return pageField;
}
onInit();
}
angular.module("umbraco").controller("Umbraco.Overlays.InsertFieldController", InsertFieldController);
})();