(function(){ var portal = angular.module('portal',['ngRoute','ui.mask']); portal.config(['$locationProvider', function($locationProvider) { $locationProvider.hashPrefix(''); }]); portal.config(function($routeProvider) { var login = '\
\
\ \
\
{{company.name}}
\
\
\ \
\
\ \
\
\ \
\
\
\
\ '; $routeProvider .when('/', { controller: 'PageCtrl as pCtrl', templateUrl: '/portal/template.php?file=files' }) .when('/login', { template: login }) .when('/revenue', { controller: 'revenueCtrl as rCtrl', templateUrl: '/portal/template.php?file=revenue' }) .when('/inconsistencies', { controller: 'inconsistenciesCtrl as iCtrl', templateUrl: '/portal/template.php?file=inconsistencies' }) .when('/inconsistencies/:item', { controller: 'inconsistenciesCtrl as iCtrl', templateUrl: '/portal/template.php?file=inconsistencies' }) .when('/processes', { controller: 'processesCtrl as prCtrl', templateUrl: '/portal/template.php?file=processes' }) .when('/processes/:item', { controller: 'processesCtrl as prCtrl', templateUrl: '/portal/template.php?file=processes' }) .when('/sendFile', { controller: 'sendFileCtrl as sfCtrl', templateUrl: '/portal/template.php?file=sendFile' }) .when('/eventsMap', { controller: 'eventsMapCtrl as emCtrl', templateUrl: '/portal/template.php?file=eventsMap' }) .when('/:page', { controller: 'PageCtrl as pCtrl', templateUrl: '/portal/template.php?file=files' }) .when('/:page/:item', { controller: 'PageCtrl as pCtrl', templateUrl: '/portal/template.php?file=files' }) .when('/:page/:item/:data', { controller: 'PageCtrl as pCtrl', templateUrl: '/portal/template.php?file=files' }) .when('/:page/:item/:data/:extra', { controller: 'PageCtrl as pCtrl', templateUrl: '/portal/template.php?file=files' }) .otherwise({ redirectTo:'/' }); }); portal.filter('htmlTrusted', ['$sce', function($sce){ return function(text) { return $sce.trustAsHtml(text); }; }]); portal.directive('html', function(){ return { restrict: 'E', controllerAs: 'html', controller: function($scope,$locale,$location,$routeParams,$interval,$http){ $locale.id = 'pt-br'; $locale.NUMBER_FORMATS.CURRENCY_SYM = 'R$'; $locale.NUMBER_FORMATS.DECIMAL_SEP = ','; $locale.NUMBER_FORMATS.GROUP_SEP = '.'; $scope.url = {}; $scope.logout = function(){ delete localStorage.data; $scope.user = {}; $location.path('/login'); }; $scope.company = {id: '544867'}; $scope.company.name = 'Excallibur Contabilidade e Apoio Empresarial';$scope.company.logo = '544867_config_company_logo.png'; $scope.blocks = []; $scope.user = {}; if(localStorage.data){ var data = JSON.parse(localStorage.data); $scope.data = data; if(data.company.id == $scope.company.id){ $scope.user = data.user; }; }; $scope.list; if(localStorage.layout){ $scope.layout = localStorage.layout; } else { $scope.layout = 'apps'; }; $scope.layoutSet = function(l){ $scope.layout = l; localStorage.layout = l; }; $scope.print = function(){ window.print(); }; $scope.goTo = function(link){ $location.path(link); }; $scope.folders = []; $scope.loadFx = 0; $scope.hash = window.location.hash; $scope.controls = {}; $scope.revenuesControls = {}; $scope.inconsistenciesControls = {}; $scope.processesControls = {}; $scope.loading = 0; $scope.post = function(fn){ $scope.loading = 1; if($scope.loader){ $interval.cancel($scope.loader); }; $scope.loadFx = 0; $scope.loader = $interval(function(){ if($scope.loadFx == 1){ $scope.loadFx = 0; } else { $scope.loadFx = 1; }; },500); $http( { method: 'POST', url: fn.url, data: fn.data, } ) .then( function successCallback(result){ var d = result.data; console.log(d); $scope.loading = 0; $interval.cancel($scope.loader); if(typeof fn.success == 'function'){ fn.success(d); }; }, function errorCallback(result){ var d = result.data; console.log(result); $scope.loading = 0; $interval.cancel($scope.loader); if(typeof fn.error == 'function'){ fn.error(d); }; } ); }; $scope.syspost = function(fn){ $http( { method: 'POST', url: fn.url, data: fn.data, } ) .then( function successCallback(result){ var d = result.data; console.log(d); $interval.cancel($scope.loader); if(typeof fn.success == 'function'){ fn.success(d); }; }, function errorCallback(result){ var d = result.data; console.log(result); $interval.cancel($scope.loader); if(typeof fn.error == 'function'){ fn.error(d); }; } ); }; $scope.docs = []; $scope.searchDocs = []; $scope.relationships = []; $scope.revenue = {}; $scope.inconsistencies = {}; $scope.processes = {}; $scope.process = {}; $scope.filesNotReceived = []; $scope.eventsMap = {}; $scope.imgUrl = function(img){ return '/site/download.php?o='+btoa(JSON.stringify({file:img,name:img})); }; $scope.loadStart = function(){ $scope.loading = 1; if($scope.loader){ $interval.cancel($scope.loader); }; $scope.loadFx = 0; $scope.loader = $interval(function(){ if($scope.loadFx == 1){ $scope.loadFx = 0; } else { $scope.loadFx = 1; }; },500); }; $scope.loadStop = function(){ $scope.loading = 0; $interval.cancel($scope.loader); }; teste = $scope; } } }); portal.controller('PageCtrl', function($scope,$routeParams,$location) { $scope.url = $routeParams; this.log = function(){ console.log($scope) }; this.get = function(){ $scope.files = []; var data = $routeParams; data.user = $scope.user.id; data.controls = $scope.controls; $scope.post({ url: '/portal/response.php?company='+$scope.company.id+'&get=page&errors=1', data: data, success: function(d){ var success = 0; if(typeof d != 'undefined'){ if(d.r == 1){ if(d.folder){ if(d.folder.data){ $scope.company.id = d.folder.data.company_id; $scope.company.name = d.folder.data.company_name; $scope.company.logo = d.folder.data.logo; }; if(d.folder.files){ $scope.files = d.folder.files; success = 1; delete $scope.error; }; }; }; }; if(success != 1){ //$location.path('/'); $scope.error = 1; }; } }); }; console.log( 'dados', $scope.user.id, $routeParams.login, $routeParams.page, $routeParams.item ); if( ( !$scope.user.id && !$routeParams.login && !$routeParams.page && !$routeParams.item ) || ( !$scope.user.id && $routeParams.login != 'login' && ( $routeParams.page != 'protocols' && $routeParams.item ) && ( $scope.url.page != 'inconsistencies' && $routeParams.item ) ) ){ $location.path('/login'); } else if(!$routeParams.page) { $location.path('/folder/all'); } else { if($scope.docs.length == 0){ $scope.post({ url: '/portal/response.php?company='+$scope.company.id+'&get=docs', data: $scope.data, success: function(d){ if(typeof d != 'undefined'){ if(d.r == 1){ $scope.docs = d.d; }; }; } }); }; this.get(); }; }); portal.controller('revenueCtrl', function($scope,$routeParams,$location,$interval,$timeout) { $scope.url = {page:'revenue'}; this.log = function(){ console.log($scope) }; this.get = function(){ $scope.revenue = {}; var data = $routeParams; data.user = $scope.user.id; data.controls = $scope.revenuesControls; $scope.post({ url: '/portal/response.php?company='+$scope.company.id+'&get=revenue&errors=1', data: data, success: function(d){ if(typeof d != 'undefined'){ if(d.r == 1){ if(d.list){ $scope.revenue = d; }; if(d.controls){ $scope.revenuesControls = d.controls; }; }; }; } }); }; this.send = function(){ $scope.post({ url: '/portal/response.php?company='+$scope.company.id+'&get=userEmails', success: function(d){ if(typeof d != 'undefined'){ if(d.r == 1){ var emails = prompt('Digite os e-mails, separando por vírgula',d.d); if(emails){ var data = $routeParams; data.user = $scope.user.id; data.emails = emails; data.controls = $scope.revenuesControls; $scope.post({ url: '/portal/response.php?company='+$scope.company.id+'&get=sendRevenue', data: data, success: function(d){ if(typeof d != 'undefined'){ if(d.r == 1){ alert('Enviado com sucesso!'); return true; } else if(d.r == 'error'){ var msg = 'Ops! Alguma coisa saiu errado aqui. Tenta de novo!'; if(d.msg){ msg = d.msg; }; alert(msg); return false; }; }; alert('Ops! Alguma coisa saiu errado aqui. Tenta de novo!'); } }); }; return true; }; }; alert('Ops! Alguma coisa saiu errado aqui. Tenta de novo!'); } }); }; this.oldDsend = function(){ $scope.post({ url: '/portal/response.php?company='+$scope.company.id+'&get=userEmails', success: function(d){ if(typeof d != 'undefined'){ if(d.r == 1){ var emails = prompt('Digite os e-mails, separando por vírgula',d.d); if(emails){ $scope.loadStart(); var doc = document.querySelector('[revenue]'); doc.style.backgroundColor = 'white'; doc.parentElement.style.position = 'relative'; doc.parentElement.style.width = '210mm'; doc.parentElement.style.height = 'auto'; doc.parentElement.style.overflowY = 'hidden'; doc.parentElement.style.overflowX = 'hidden'; $timeout(function(){ //window.scrollTo(0,doc.offsetHeight + 230 - window.outerHeight); //doc.parentElement.scrollTo(0,doc.offsetHeight); html2canvas(doc, { height: doc.offsetHeight, taintTest: false, onrendered: function(canvas) { delete doc.parentElement.setAttribute('style',''); $scope.loadStop(); var data = { file: canvas.toDataURL("image/jpeg"), name: $scope.revenue.file_title, title: $scope.revenue.mail_title, url: window.location.href, emails: emails }; $scope.post({ url: '/portal/response.php?company='+$scope.company.id+'&get=sendRevenue', data: data, success: function(d){ if(typeof d != 'undefined'){ if(d.r == 1){ alert('Enviado com sucesso!'); return true; } else if(d.r == 'error'){ var msg = 'Ops! Alguma coisa saiu errado aqui. Tenta de novo!'; if(d.msg){ msg = d.msg; }; alert(msg); return false; }; }; alert('Ops! Alguma coisa saiu errado aqui. Tenta de novo!'); } }); } }); },100); }; return true; }; }; alert('Ops! Alguma coisa saiu errado aqui. Tenta de novo!'); } }); }; this.total = function(v1,v2){ if(isNaN(v1)){ v1 = 0; }; if(isNaN(v2)){ v2 = 0; }; return (parseFloat(v1)+parseFloat(v2)).toFixed(2); }; console.log( 'dados', $scope.user.id, $routeParams.login, $routeParams.page, $routeParams.item ); if( ( !$scope.user.id && !$routeParams.login && !$routeParams.page && !$routeParams.item ) || ( !$scope.user.id && $routeParams.login != 'login' && ( $routeParams.page != 'protocols' && $routeParams.item ) && ( $scope.url.page != 'inconsistencies' && $routeParams.item ) ) ){ $location.path('/login'); } else { if($scope.relationships.length == 0){ $scope.post({ url: '/portal/response.php?company='+$scope.company.id+'&get=relationships', success: function(d){ if(typeof d != 'undefined'){ if(d.r == 1){ $scope.relationships = d.d; }; }; } }); }; this.get(); }; }); portal.controller('eventsMapCtrl', function($scope,$routeParams,$location,$interval,$timeout) { $scope.url = {page:'eventsMap'}; console.log($scope.eventsMap); this.getEventDescription = function(code){ if($scope.eventsMap){ if($scope.eventsMap.events){ if($scope.eventsMap.events.length){ for(var i=0;i<$scope.eventsMap.events.length;i++){ if($scope.eventsMap.events[i].code){ if($scope.eventsMap.events[i].code == code){ console.log($scope.eventsMap); return $scope.eventsMap.events[i].description; }; }; }; }; }; }; return ''; }; var getEventDescription = this.getEventDescription; this.getRelationshipName = function(id){ if($scope.relationships){ if($scope.relationships.length){ for(var i=0;i<$scope.relationships.length;i++){ if($scope.relationships[i].id){ if($scope.relationships[i].id == id){ return $scope.relationships[i].name; }; }; }; }; }; return ''; }; var getRelationshipName = this.getRelationshipName; this.send = function(){ var data = [['CPF','Nome','Evento','Historico','Valor','Referencia','Observacao']]; if( typeof $scope.eventsMap.list == 'object' && $scope.eventsMapControls.relationship ){ if($scope.eventsMap.list[$scope.eventsMapControls.relationship]){ if($scope.eventsMap.list[$scope.eventsMapControls.relationship].employees){ if($scope.eventsMap.list[$scope.eventsMapControls.relationship].employees.length){ if($scope.eventsMap.list[$scope.eventsMapControls.relationship].employees.length > 0){ var employees = $scope.eventsMap.list[$scope.eventsMapControls.relationship].employees; for(var i=0;i 0){ for(var ie=0;ie 0){ $scope.post({ url: '/portal/response.php?company='+$scope.company.id+'&get=createEventsMap&errors=1', data: { data: data, fileName: fileName, title: title }, success: function(d){ console.log('d',d); if(typeof d != 'undefined'){ if(d.r == 1){ alert('Enviado com sucesso!'); return true; }; }; alert('Ops! Alguma coisa saiu errado aqui. Tenta de novo!'); return false; } }); return true; }; }; }; alert('Não há dados para gerar o Mapa de Eventos.'); }; this.changeEmployee = function(dir){ console.log(dir,$scope.eventsMapControls,$scope.eventsMap); if( $scope.eventsMap.list && $scope.eventsMapControls ){ if( typeof $scope.eventsMap.list == 'object' && $scope.eventsMapControls.relationship ){ if($scope.eventsMap.list[$scope.eventsMapControls.relationship]){ if($scope.eventsMap.list[$scope.eventsMapControls.relationship].employees){ if($scope.eventsMap.list[$scope.eventsMapControls.relationship].employees.length){ if($scope.eventsMap.list[$scope.eventsMapControls.relationship].employees.length > 0){ var show = $scope.eventsMap.list[$scope.eventsMapControls.relationship].show; var length = $scope.eventsMap.list[$scope.eventsMapControls.relationship].employees.length; if(dir == 'previous'){ if(show - 1 > -1){ $scope.eventsMap.list[$scope.eventsMapControls.relationship].show = show - 1; } else { $scope.eventsMap.list[$scope.eventsMapControls.relationship].show = length - 1; }; } else if(dir == 'next'){ if(show + 1 <= length - 1){ $scope.eventsMap.list[$scope.eventsMapControls.relationship].show = show + 1; } else { $scope.eventsMap.list[$scope.eventsMapControls.relationship].show = 0; }; }; }; }; }; }; }; }; }; this.get = function(){ var data = $routeParams; data.user = $scope.user.id; data.controls = $scope.eventsMapControls; if($scope.eventsMap.r != 1){ $scope.post({ url: '/portal/response.php?company='+$scope.company.id+'&get=eventsMap&errors=1', data: data, success: function(d){ if(typeof d != 'undefined'){ if(d.r == 1){ if(d.list){ console.log('EventsMap', d); $scope.eventsMap = d; }; if(d.controls){ $scope.eventsMapControls = d.controls; }; }; }; } }); }; }; console.log( 'dados', $scope.user.id, $routeParams.login, $routeParams.page, $routeParams.item ); if( ( !$scope.user.id && !$routeParams.login && !$routeParams.page && !$routeParams.item ) || ( !$scope.user.id && $routeParams.login != 'login' && ( $routeParams.page != 'protocols' && $routeParams.item ) && ( $scope.url.page != 'inconsistencies' && $routeParams.item ) ) ){ $location.path('/login'); } else { if($scope.relationships.length == 0){ $scope.post({ url: '/portal/response.php?company='+$scope.company.id+'&get=relationships', success: function(d){ if(typeof d != 'undefined'){ if(d.r == 1){ $scope.relationships = d.d; }; }; } }); }; this.get(); }; }); portal.controller('inconsistenciesCtrl', function($scope,$routeParams,$location) { $scope.url = {page:'inconsistencies'}; this.log = function(){ console.log($scope) }; this.getClientName = function(client){ if(client && $scope.relationships){ if($scope.relationships.length > 0){ for(var i=0;i<$scope.relationships.length;i++){ if($scope.relationships[i]){ if($scope.relationships[i].id){ if($scope.relationships[i].id == client){ return $scope.relationships[i].name; }; }; }; }; }; }; return false; }; this.get = function(){ $scope.inconsistencies = {}; var data = $routeParams; data.user = $scope.user.id; data.controls = $scope.inconsistenciesControls; $scope.post({ url: '/portal/response.php?company='+$scope.company.id+'&get=inconsistencies&errors=1', data: data, success: function(d){ if(typeof d != 'undefined'){ if(d.r == 1){ if(d.list){ $scope.inconsistencies = d; }; if(d.controls){ $scope.inconsistenciesControls = d.controls; }; }; }; } }); }; console.log( 'dados', $scope.user.id, $routeParams.login, $routeParams.page, $routeParams.item ); if( ( !$scope.user.id && !$routeParams.login && !$routeParams.page && !$routeParams.item ) || ( !$scope.user.id && $routeParams.login != 'login' && ( $routeParams.page != 'protocols' && $routeParams.item ) && ( $scope.url.page != 'inconsistencies' && $routeParams.item ) ) ){ $location.path('/login'); } else { if($scope.relationships.length == 0){ $scope.post({ url: '/portal/response.php?company='+$scope.company.id+'&get=relationships', success: function(d){ if(typeof d != 'undefined'){ if(d.r == 1){ $scope.relationships = d.d; }; }; } }); }; this.get(); }; }); portal.controller('processesCtrl', function($scope,$routeParams,$location) { $scope.url = {page:'processes',item:$routeParams.item}; this.log = function(){ console.log($scope) }; this.link = function(p){ if(p){ if(p.file && p.file_link){ return 'http://diretiva1.com.br/site/download.php?o='+btoa(JSON.stringify({ 'file': p.file_link, 'name': p.file })); }; }; return false; }; this.get = function(){ $scope.processes = {}; var data = $routeParams; data.user = $scope.user.id; data.item = $routeParams.item; data.controls = $scope.processesControls; $scope.post({ url: '/portal/response.php?company='+$scope.company.id+'&get=processes&errors=1', data: data, success: function(d){ if(typeof d != 'undefined'){ if(d.r == 1){ if(d.list){ if(d.type == 'list'){ $scope.processes = d; } else { $scope.process = d; }; }; if(d.controls){ $scope.processesControls = d.controls; }; }; }; } }); }; this.situations = { '0': 'Em andamento', '1': 'Concluído', '2': 'Cancelado' }; this.docSituations = { '0': 'Não recebido', '1': 'Recebido', '2': 'Desobrigado', '3': 'Pendente' }; this.stageSituations = { '0': 'Aguardando início', '1': 'Realizado', '2': 'Desobrigado', '3': 'Pendente', '4': 'Em andamento' }; console.log( 'dados', $scope.user.id, $routeParams.login, $routeParams.page, $routeParams.item ); if( ( !$scope.user.id && !$routeParams.login && !$routeParams.page && !$routeParams.item ) || ( !$scope.user.id && $routeParams.login != 'login' && ( $routeParams.page != 'protocols' && $routeParams.item ) && ( $scope.url.page != 'inconsistencies' && $routeParams.item ) ) ){ $location.path('/login'); } else { if($scope.relationships.length == 0){ $scope.post({ url: '/portal/response.php?company='+$scope.company.id+'&get=relationships', success: function(d){ if(typeof d != 'undefined'){ if(d.r == 1){ $scope.relationships = d.d; }; }; } }); }; this.get(); }; }); portal.directive('fileInput', ['$parse', function ($parse) { return { restrict: 'A', link: function(scope,element,attr){ element.bind('change',function(e){ var set = function(obj,add){ if(!obj){ obj = {}; }; if(!obj[add]){ obj[add] = {}; }; return obj[add]; }; var find = function(o,v){ if(!o){ var o = scope; }; if(o[v]){ return o[v]; } else { return false; }; }; if(attr.fileInput){ var setTo = attr.fileInput.split('.'); if(setTo.length){ if(setTo.length > 0){ obj = scope; for(var i=0;i 0){ for(var i=0;i 2){ var name = data.name; if($scope.searchDocs.length){ if($scope.searchDocs.length > 0){ for(var i=0;i<$scope.searchDocs.length;i++){ if(name == $scope.searchDocs[i].name){ return true; }; }; }; }; $scope.syspost({ url: '/portal/response.php?company='+$scope.company.id+'&get=docs&errors=1', data: { name: name }, success: function(d){ if(typeof d != 'undefined'){ if(d.r == 1){ if(d.d){ if(d.d.length > 0){ $scope.searchDocs = d.d; }; }; }; }; } }); }; }; }; }; }; this.submit = function(){ if(data){ if(!data.department){ alert('Selecione um departamento para continuar.'); return false; }; if(!data.name){ alert('Digite o nome do documento para continuar.'); return false; }; if(!data.file){ alert('Adicione um arquivo para continuar.'); return false; } else { if(!data.file.name || !data.file.data){ alert('Adicione um arquivo para continuar.'); return false; }; }; $scope.post({ url: '/portal/response.php?company='+$scope.company.id+'&get=sendFile', data: data, success: function(d){ var msg = 'Ops! Alguma coisa saiu errado aqui. Tenta de novo!'; if(typeof d != 'undefined'){ if(d.r == 1){ alert('Arquivo enviado com sucesso!'); window.location.reload(); return true; } else if(d.r == 'error' && d.msg){ msg = d.msg; }; }; alert(msg); }, error: function(d){ alert('Ops! Alguma coisa saiu errado aqui. Tenta de novo!'); } }); } else { alert('Preencha os dados corretamente para continuar.'); return false; }; console.log(data); }; this.sendFromList = function(file){ data.id = file.id; data.name = file.name; data.department = file.dpt; data.origin = file.origin; console.log(data); document.getElementById('sendFileInput').click(); //this.showForm = 1; }; if( ( !$scope.user.id && !$routeParams.login && !$routeParams.page && !$routeParams.item ) || ( !$scope.user.id && $routeParams.login != 'login' && ( $routeParams.page != 'protocols' && $routeParams.item ) && ( $scope.url.page != 'inconsistencies' && $routeParams.item ) ) ){ $location.path('/login'); } else { if($scope.filesNotReceived.length == 0){ $scope.post({ url: '/portal/response.php?company='+$scope.company.id+'&get=filesNotReceived', success: function(d){ if(typeof d != 'undefined'){ if(d.r == 1){ $scope.filesNotReceived = d.d; }; }; } }); }; }; }); portal.directive('dir', function($rootScope){ return { restrict: 'A', controllerAs: 'dirCtrl', controller: function($scope,$locale,$location,$routeParams,$interval,$http){ this.item = function(){ return $routeParams.item; }; this.link = function(f){ if(f.ext == 'folder'){ $location.path('/folder/'+f.id); } else { $location.path('/'+f.ext); }; }; var data = $routeParams; data.user = $rootScope.user.id; if(!$rootScope.list){ $scope.post({ url: '/portal/response.php?company='+$rootScope.company.id+'&get=dir', data: data, success: function(d){ if(typeof d != 'undefined'){ if(d.r == 1){ $rootScope.list = d.d; }; }; } }); }; } } }); portal.directive('file', function(){ return { restrict: 'A', controllerAs: 'fileCtrl', controller: function($scope,$locale,$location,$routeParams,$interval,$http){ this.link = function(d){ window.open('https://myhappen.azurewebsites.net/portal/download.php?o='+d.link,'_blank'); }; this.view = function(d){ window.open('https://myhappen.azurewebsites.net/portal/view.php?o='+d.link); }; this.download = function(d){ if(d.download == 1){ this.link(d); }; }; } } }); portal.directive('login', function($rootScope){ return { restrict: 'A', controllerAs: 'loginCtrl', controller: function($scope,$locale,$location,$routeParams,$interval,$http){ this.data = {}; var data = this.data; this.submit = function(e){ $scope.post({ url: '/portal/response.php?company='+$rootScope.company.id+'&get=login', data: data, success: function(d){ if(d){ if(d.r == 1){ $rootScope.user = d.d; localStorage.data = JSON.stringify({ company: $rootScope.company, user: d.d }); $location.path('/'); } else if (d.r == 'error'){ var msg = 'Ops! Alguma coisa saiu errado aqui. Tenta de novo!'; if(d.msg){ msg = d.msg; }; alert(msg); data.error = msg; }; }; } }); }; } } }); portal.directive('blocks', function($rootScope){ return { restrict: 'A', template: '\ \
\
\
\ ', controllerAs: 'blocksCtrl', controller: function($scope,$locale,$location,$routeParams,$interval,$http){ $scope.post({ url: '/portal/response.php?company='+$rootScope.company.id+'&get=blocks', success: function(d){ if(d){ if(d.r == 1){ $rootScope.blocks = d.d; }; }; } }); } } }); portal.directive('money', function(){ return { require: 'ngModel', restrict: 'A', link: function(scope, element, attr, ctrl) { function inputValue(val) { if(val){ var digits = val.replace(/[^0-9.]/g, ''); if(digits !== val) { ctrl.$setViewValue(digits); ctrl.$render(); }; return parseFloat(digits); }; return undefined; }; ctrl.$parsers.push(inputValue); } }; }); })();