client-ui
Version:
Testing implementation of nodeJs Backend, angular frontend, and hopefully in a way that this can be deployed to s3/cloudfront
83 lines (73 loc) • 2.4 kB
JavaScript
/* global moduleName */
(function () {
'use strict';
function loadingController($modal, loadService) {
return {
restrict: 'EA',
scope: {
header: "@",
},
link: function (scope, element, attrs) {
loadService.setConfig({
"header": scope.header
});
}
};
}
angular.module(moduleName).directive('loading', loadingController);
loadingController.$inject = ['$modal', 'loadingService'];
var intervalID;
function loadingService($modal, $q, $timeout) {
var self = this;
self.modal = false;
self.config = false;
function open() {
self.modal = $modal.open({
templateUrl: "modals/loading.html",
controller: "loadingModalCtrl",
size: 'md',
windowClass: 'app-modal-window',
backdrop: 'static',
resolve: {
modalContent: function () {
return self.config;
}
}
});
}
function close() {
self.modal.rendered.then(function() {
self.modal.close();
clearInterval(intervalID);
});
}
function setConfig(config) {
self.config = config;
}
self.setConfig = setConfig;
self.close = close;
self.open = open;
}
angular.module(moduleName).service('loadingService', loadingService);
loadingService.$inject = ["$modal", "$q", "$timeout"];
function loadingModalCtrl($scope, $modalInstance, modalContent) {
$scope.header = modalContent.header;
$scope.timer = function () {
var y = 10;
intervalID = setInterval(time, 1000);
$scope.countdown="00:10 seconds";
function time() {
if(y!==0){
$scope.countdown=('00:0'+ (--y) + ' seconds');
$scope.$apply();
}
else {
clearInterval(intervalID);
}
}
}
$scope.timer();
}
module.controller('loadingModalCtrl', loadingModalCtrl);
loadingModalCtrl.$inject = ['$scope', '$modalInstance', 'modalContent'];
})();