88 lines
2.5 KiB
JavaScript
88 lines
2.5 KiB
JavaScript
(function() {
|
|
'use strict';
|
|
|
|
angular
|
|
.module('vertoControllers')
|
|
.controller('SplashScreenController', ['$scope', '$rootScope', '$location', '$timeout', 'splashscreen', 'prompt', 'verto',
|
|
function($scope, $rootScope, $location, $timeout, splashscreen, prompt, verto) {
|
|
console.debug('Executing SplashScreenController.');
|
|
|
|
$scope.progress_percentage = splashscreen.progress_percentage;
|
|
$scope.message = '';
|
|
$scope.interrupt_next = false;
|
|
$scope.errors = [];
|
|
|
|
var redirectTo = function(link, activity) {
|
|
if(activity) {
|
|
if(activity == 'browser-upgrade') {
|
|
link = activity;
|
|
}
|
|
}
|
|
|
|
$location.path(link);
|
|
}
|
|
|
|
var checkProgressState = function(current_progress, status, promise, activity, soft, interrupt, message) {
|
|
$scope.progress_percentage = splashscreen.calculate(current_progress);
|
|
$scope.message = message;
|
|
|
|
if(interrupt && status == 'error') {
|
|
$scope.errors.push(message);
|
|
if(!soft) {
|
|
redirectTo('', activity);
|
|
return;
|
|
} else {
|
|
message = message + '. Continue?';
|
|
};
|
|
|
|
if(!confirm(message)) {
|
|
$scope.interrupt_next = true;
|
|
};
|
|
};
|
|
|
|
if($scope.interrupt_next) {
|
|
return;
|
|
};
|
|
|
|
$scope.message = splashscreen.getProgressMessage(current_progress+1);
|
|
|
|
return true;
|
|
};
|
|
|
|
$rootScope.$on('progress.next', function(ev, current_progress, status, promise, activity, soft, interrupt, message) {
|
|
$timeout(function() {
|
|
if(promise) {
|
|
promise.then(function(response) {
|
|
message = response['message'];
|
|
status = response['status'];
|
|
if(checkProgressState(current_progress, status, promise, activity, soft, interrupt, message)) {
|
|
splashscreen.next();
|
|
};
|
|
});
|
|
|
|
return;
|
|
}
|
|
|
|
if(!checkProgressState(current_progress, status, promise, activity, soft, interrupt, message)) {
|
|
return;
|
|
}
|
|
|
|
splashscreen.next();
|
|
}, 400);
|
|
});
|
|
|
|
$rootScope.$on('progress.complete', function(ev, current_progress) {
|
|
$scope.message = 'Complete';
|
|
if(verto.data.connected) {
|
|
redirectTo('/dialpad');
|
|
} else {
|
|
redirectTo('/login');
|
|
}
|
|
});
|
|
|
|
splashscreen.next();
|
|
|
|
}]);
|
|
|
|
})();
|