(function () {
'use strict';
//controller that handles backpack stuff
var controllerId = 'customiseController';
angular.module('app').controller(controllerId, ['common', 'backpackDatacontext', 'user', '$window', 'config', '$scope', '$location', '$modal', '$rootScope', 'myUsersDataContext', 'branding', customiseController]);
function customiseController(common, backpackDatacontext, user, $window, config, $scope, $location, $modal, $rootScope, myUsersDataContext, branding) {
var getLogFn = common.logger.getLogFn;
var log = getLogFn(controllerId);
var logSuccess = getLogFn(controllerId, "success");
var vm = this;
var initial = true;
$scope.collectionId = $location.search().collectionId;
$scope.branding = branding;
$scope.goBack = function (next) {
if (!angular.equals($scope.collection, $scope.originalCollection)) {
var modalHtml = '
Are you sure you want to go back? Any unsaved changes will be lost.
';
modalHtml += '';
$modal.open({
template: modalHtml,
controller: goBackController,
size: 'sm',
windowClass: 'center-modal',
backdrop: 'static',
resolve: {
next: function () {
return next;
},
$window: function () {
return $window;
},
}
});
} else {
$window.location.href = next;
}
}
var goBackController = function ($scope, $modalInstance, $window, next) {
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
$scope.ok = function () {
$modalInstance.dismiss('cancel');
$window.location.href = next;
}
}
backpackDatacontext.getCollectionById($scope.collectionId).then(function (data) {
$scope.loadedCollection = true;
$scope.collection = data;
$scope.originalCollection = angular.copy($scope.collection);
$rootScope.collectionTitle = $scope.collection.draftCollection.name;
if ($scope.collection.draftCollection.modeType == 1) {
$scope.displayOptions = $scope.collection.draftCollection.advancedCollectionDisplay;
$scope.templateMode = 'Advanced';
} else {
$scope.displayOptions = $scope.collection.draftCollection.simpleCollectionDisplay;
$scope.templateMode = 'Simple';
}
if ($scope.displayOptions.headerImageUrl == null) {
$scope.displayOptions.headerImageUrl = '/assets/backgrounds/1.jpg';
}
if ($scope.displayOptions.fontStyle == null) {
$scope.displayOptions.fontStyle = 'Open Sans';
}
if ($scope.displayOptions.itemsOrderBy == '-') {
$scope.orderMenuOption = 'Date added to collection reverse'
}
if ($scope.displayOptions.itemsOrderBy == 'backpackItem.badgeIssuedOn') {
$scope.orderMenuOption = 'Date issued'
}
if ($scope.displayOptions.itemsOrderBy == 'backpackItem.badgeName') {
$scope.orderMenuOption = 'Badge name'
}
if ($scope.displayOptions.itemsOrderBy == '') {
$scope.orderMenuOption = 'Date added to collection'
}
if ($scope.displayOptions.itemsOrderBy == '-backpackItem.badgeIssuedOn') {
$scope.orderMenuOption = 'Date issued reverse'
}
if ($scope.displayOptions.itemsOrderBy == '-backpackItem.badgeName') {
$scope.orderMenuOption = 'Badge name reverse'
}
});
$scope.setOrder = function (order) {
$scope.displayOptions.itemsOrderBy = order.order;
$scope.orderMenuOption = order.name
}
$scope.changeView = function (mode) {
if (mode == 'Simple') {
$scope.displayOptions = $scope.collection.draftCollection.simpleCollectionDisplay;
$scope.collection.draftCollection.modeType = 0;
}
if (mode == 'Advanced') {
$scope.displayOptions = $scope.collection.draftCollection.advancedCollectionDisplay;
$scope.collection.draftCollection.modeType = 1;
}
}
$scope.saveCollection = function (collection) {
backpackDatacontext.updateCollection(collection).then(function (data) {
logSuccess('Collection successfully updated');
$scope.originalCollection = angular.copy($scope.collection);
});
}
$scope.publishCollectionContent = function (collection) {
collection.published = true;
backpackDatacontext.updateCollection(collection.draftCollection).then(function (data) {
backpackDatacontext.publishCollectionContent(collection.id).then(function (data) {
logSuccess('Collection successfully published');
$scope.originalCollection = angular.copy($scope.collection);
});
});
}
$scope.availableFonts = [
{ font: 'Courier New' },
{ font: 'Open Sans' },
{ font: 'Open Sans Condensed' },
{ font: 'Pacifico' },
{ font: 'Roboto' },
{ font: 'Roboto Condensed' },
{ font: 'Roboto Slab' },
{ font: 'Source Sans Pro' },
{ font: 'Times New Roman' },
];
$scope.availableOrders = [
{
name: 'Date added to collection',
order: ''
},
{
name: 'Date issued',
order: 'backpackItem.badgeIssuedOn'
},
{
name: 'Badge name',
order: 'backpackItem.badgeName'
},
{
name: 'Date added to collection reverse',
order: '-'
},
{
name: 'Date issued reverse',
order: '-backpackItem.badgeIssuedOn'
},
{
name: 'Badge name reverse',
order: '-backpackItem.badgeName'
},
];
function getBackgroundPatterns() {
return [
{ name: 'pattern 1', src: '/assets/patterns/pattern1.png' },
{ name: 'pattern 2', src: '/assets/patterns/pattern2.png' },
{ name: 'pattern 3', src: '/assets/patterns/pattern3.png' },
{ name: 'pattern 4', src: '/assets/patterns/pattern4.png' },
{ name: 'pattern 5', src: '/assets/patterns/pattern5.png' },
{ name: 'pattern 6', src: '/assets/patterns/pattern6.png' },
{ name: 'pattern 7', src: '/assets/patterns/pattern7.png' },
{ name: 'pattern 8', src: '/assets/patterns/pattern8.png' },
{ name: 'pattern 9', src: '/assets/patterns/pattern9.png' },
{ name: 'pattern 10', src: '/assets/patterns/pattern10.png' },
];
}
$scope.backgroundPatterns = getBackgroundPatterns();
$rootScope.pageTitle = 'Customise';
$scope.display = 'Large';
$scope.includeHeader = true;
$scope.includeDetails = true;
$scope.displayItem = 'Large';
$scope.heading = 'My badge showcase';
$scope.text = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.';
$scope.headerBackground = 'http://phandroid.s3.amazonaws.com/wp-content/uploads/2014/06/ripples.png';
activate();
function activate() {
NProgress.done();
log('Activated Customise View');
}
}
})();