cobuild-angular-stack
Version:
Base stack angular sass jade gulp
74 lines (64 loc) • 2.67 kB
JavaScript
/**
* Created by garusis on 19/06/16.
*/
(function (module) {
var settings = {};
var defaultSettings = {};
module
.controller('OnboardingDefaultDisplayStepController', OnboardingDefaultDisplayStepController);
OnboardingDefaultDisplayStepController.$inject = ['$scope', 'Onboarding', '$uibModal', '$sce', '$http', 'Restangular', '$q', 'toastr', 'lodash'];
function OnboardingDefaultDisplayStepController($scope, Onboarding, $uibModal, $sce, $http, Restangular, $q, toastr, lodash) {
var stepCtrl = this;
$scope.datePickerOptions = {
minDate: new Date()
};
$(".uib-datepicker-popup.dropdown-menu").attr("style","left: -5px");
$scope.step.customTemplate = $sce.trustAsHtml($scope.step.customTemplate);
stepCtrl.moveBack = function (onboarding, step) {
if (onboarding.steps.indexOf(step) <= 0) {
return;
}
onboarding.stepActive--;
};
stepCtrl.moveNext = function (onboarding, step) {
var index = onboarding.steps.indexOf(step);
if (onboarding.steps.length - 1 === index) {
return Onboarding.end(onboarding.id);
}
onboarding.stepActive++;
};
stepCtrl.sendNext = function (onboarding, step) {
var element = $scope.$$element;
var promise;
if (step.endpoint) {
var data = {};
var restangularConf = Restangular.configuration;
element
.find('input')
.each(function (index, input) {
data[input.name] = input.value;
});
promise = $http.post(restangularConf.baseUrl + '/' + step.endpoint, data);
} else {
promise = $q.resolve();
}
promise
.then(function () {
stepCtrl.moveNext(onboarding, step);
})
.catch(function (err) {
switch (err.status) {
case 422:
var messagesGroup = err.data.error.details.messages;
lodash.forEach(messagesGroup, function (messages) {
lodash.forEach(messages, function (message) {
toastr.error(message);
});
});
break;
default:
}
});
}
}
})(angular.module('rokk3rlabs.onboarding'));