src/Modules/SimplCommerce.Module.Cms/wwwroot/admin/html-widget/html-widget-form.js (74 lines of code) (raw):
/*global angular, jQuery*/
(function ($) {
angular
.module('simplAdmin.cms')
.controller('HtmlWidgetFormCtrl', ['$state', '$stateParams', 'summerNoteService', 'htmlWidgetService', 'translateService', HtmlWidgetFormCtrl]);
function HtmlWidgetFormCtrl($state, $stateParams, summerNoteService, htmlWidgetService, translateService) {
var vm = this;
vm.translate = translateService;
vm.widgetZones = [];
vm.widgetInstance = { widgetZoneId: 1, publishStart : new Date() };
vm.widgetInstanceId = $stateParams.id;
vm.isEditMode = vm.widgetInstanceId > 0;
vm.datePickerPublishStart = {};
vm.datePickerPublishEnd = {};
vm.numberOfWidgets = [];
vm.openCalendar = function (e, picker) {
vm[picker].open = true;
};
vm.imageUpload = function (files) {
summerNoteService.upload(files[0])
.then(function (response) {
$(vm.htmlContent).summernote('insertImage', response.data);
});
};
vm.save = function save() {
var promise;
if (vm.isEditMode) {
promise = htmlWidgetService.editHtmlWidget(vm.widgetInstance);
} else {
promise = htmlWidgetService.createHtmlWidget(vm.widgetInstance);
}
promise
.then(function (result) {
$state.go('widget');
})
.catch(function (response) {
var error = response.data;
vm.validationErrors = [];
if (error && angular.isObject(error)) {
for (var key in error) {
vm.validationErrors.push(error[key][0]);
}
} else {
vm.validationErrors.push('Could not html widget.');
}
});
};
function init() {
htmlWidgetService.getWidgetZones().then(function (result) {
vm.widgetZones = result.data;
});
htmlWidgetService.getNumberOfWidgets().then(function (result) {
var count = parseInt(result.data);
if (!vm.isEditMode) {
count = count + 1;
}
for (var i = 1; i <= count; i++)
vm.numberOfWidgets.push(i);
});
if (vm.isEditMode) {
htmlWidgetService.getHtmlWidget(vm.widgetInstanceId).then(function (result) {
vm.widgetInstance = result.data;
if (vm.widgetInstance.publishStart) {
vm.widgetInstance.publishStart = new Date(vm.widgetInstance.publishStart);
}
if (vm.widgetInstance.publishEnd) {
vm.widgetInstance.publishEnd = new Date(vm.widgetInstance.publishEnd);
}
});
}
}
init();
}
})(jQuery);