var app=angular.module('app',['ngRoute','ui.tinymce','angularModalService','angular-md5','webcam','signature','ap.canvas.ext']);app.run(function($rootScope,$location,$routeParams,auth,auth2,auth3,$window,$q,query){$rootScope.page={title:'ICT Portal'} $rootScope.system={localip:'',loading_mod:0,loading_mod_max:0,is_loading:!1,allow_access:!1,allow_enroll:!1,allow_drop:!1,allow_change:!1,master_filter:{schoolyear:'',semester:'',srcode:''}} $rootScope.idleTime=0;$rootScope.login={'details':{'usr_name':'','fullname':'',},'credentials':{'username':'17-00268','password':''},'change_password':{'old_password':'','new_password':'','retype_new_password':''},'status':{'logged':!1}} $rootScope.menu=[];$rootScope.sub_menu=[];window.onbeforeunload=function(){};$rootScope.db_online=!0;$rootScope.check_db=function(){var deffered=$q.defer();var promise=query.get('backend/public/index.php/is_db_online');promise.then(function(result){$rootScope.db_online=result==0?true:!1;if(result==1){$location.path('/db-server-down')} deffered.resolve(result)});return deffered.promise} $q.all([$rootScope.check_db()]).then(function(data){});$rootScope.$on('$locationChangeStart',function(event){var path=$location.path();var s=path.substring(0,path.lastIndexOf('/'));switch(path.toLowerCase()){case "/tech/dashboard":{$rootScope.page.title="ICT Technician's Portal - Dashboard";break} case "/tech/":{$rootScope.page.title="ICT Technician's Portal - Dashboard";break} case "/tech/auth":{$rootScope.page.title="ICT Technician's Portal - Login";break}} if(path=="/dashboard"||path=="/dashboard2"||path=="/idcapture"||path=="/for_id_printing"||path=="/bannercard"){auth.check_session()} if($location.path()=="/logout"){auth.logout("/auth")} if(path=="/system-request"){auth2.check_session()} if(path=="/system-request-logout"){auth2.logout("/system-request-auth")} if(path=="/tech/logout"){auth3.logout("/tech/auth")} if(path=="/tech/dashboard"){auth3.check_session()}});$rootScope.$on('$routeChangeSuccess',function(){if($location.path()=="/logout"){auth.logout("/auth")}});$rootScope.$on('$routeChangeError',function(){})});app.config(function($compileProvider,$routeProvider,$httpProvider,$locationProvider){$routeProvider.when('/',{templateUrl:'pages/page.default.php',controller:'BaseController'}).when('/dashboard',{templateUrl:'pages/page.dashboard.php',controller:'DashboardController'}).when('/student_id_capturing',{templateUrl:'pages/page.id_capturing_student.php',controller:'StudentIDCapturingController'}).when('/json_viewer',{templateUrl:'pages/page.json_viewer.php',controller:'JSONViewerController'}).when('/for_id_printing',{templateUrl:'pages/page.id_files.php',controller:'JSONViewerController'}).when('/bannercard_x',{templateUrl:'pages/page.id_files.php',controller:'JSONViewerController'}).when('/auth',{templateUrl:'pages/page.default.php',controller:'BaseController'}).when('/db-server-down',{templateUrl:'pages/page.db-down.php'}).when('/system-request',{templateUrl:'pages/page.sysreq.dashboard.php',controller:'SysReqController'}).when('/system-request-dev',{templateUrl:'pages/page.sysreq.dashboard-dev.php',controller:'SysReqDevController'}).when('/system-request-manage',{templateUrl:'pages/page.sysreq.dashboard-manage.php',controller:'SysReqManageController'}).when('/system-request-auth',{templateUrl:'pages/page.sysreq.login.php',controller:'SysReqController'}).when('/qrcode-reader',{templateUrl:'pages/page.qrcode.reader.php',controller:'QRCodeController'}).when('/tech',{templateUrl:'pages/page.tech.dashboard.php',controller:'TechController'}).when('/tech/auth',{templateUrl:'pages/page.tech.login.php',controller:'TechController'}).when('/tech/dashboard',{templateUrl:'pages/page.tech.dashboard_2025.php',controller:'TechController'}).when('/tech/dashboard2',{templateUrl:'pages/page.tech.dashboard_2025.php',controller:'TechController'}).when('/check/id/card',{templateUrl:'pages/page.check_id_card.php',controller:'CheckIDCardController'}).when('/check/id/for-print',{templateUrl:'pages/page.check_id_for_print.php',controller:'CheckIDForPrintController'}).when('/serve/sr/:jwt',{templateUrl:'pages/page.sr_serve.php',controller:'SRController'}).when('/confirm/sr/:jwt',{templateUrl:'pages/page.sr_confirm.php',controller:'SRController'}).otherwise({templateUrl:'pages/page.404.php'});$locationProvider.html5Mode({enabled:!1});$compileProvider.debugInfoEnabled(!1)});app.controller('ModalController',function($scope,close){$scope.close=function(result){close(result,500)}});app.factory('jwt',function($q,query3){return{decode:function(jwt){var deffered=$q.defer();var promise=query3.post('data/decode_jwt',{jwt:jwt});promise.then(function(result){deffered.resolve(result)});return deffered.promise}}});app.factory('api',function($q,$rootScope,$location,$http,$parse,query){api_data="backend/public/index.php/data/api_data";api_auth="backend/public/index.php/data/api_auth";return{photo:function(id){return this.get('util/fetch/student/photo',{id:id,r:1})},get:function(service,param){var deffered=$q.defer();param.service=service;$http.get(api_data,{params:param}).success(function(result){deffered.resolve(result)});return deffered.promise},auth:function(credentials){var deffered=$q.defer();var auth=btoa(credentials.username+':'+credentials.password);$http.post(api_auth,{auth:auth}).success(function(result){deffered.resolve(result)});return deffered.promise},}});app.factory('fetch',function($q,$parse,query){return{campuses:function($scope,out){var deffered=$q.defer();var promise=query.get($scope.backend_url+'/fetch_campuses',{});promise.then(function(result){var data=$parse(out);data.assign($scope,result);out=result;deffered.resolve(result)});return deffered.promise},offices:function($scope,out){var deffered=$q.defer();var promise=query.get($scope.backend_url+'/fetch_offices',{});promise.then(function(result){var data=$parse(out);data.assign($scope,result);out=result;deffered.resolve(result)});return deffered.promise}}});app.factory('sysreq',function($q,$parse,query2){return{summary:(role)=>{var deffered=$q.defer();var promise=query2.post('fetch/sysreq/summary',{role:role});promise.then((result)=>{console.log(result);deffered.resolve(result)});return deffered.promise}}});app.factory('fetch2',function($q,$parse,query2){return{developers:()=>{var deffered=$q.defer();var promise=query2.post('fetch/developers',{});promise.then((result)=>{console.log(result);deffered.resolve(result)});return deffered.promise},systems:()=>{var deffered=$q.defer();var promise=query2.post('fetch/systems',{});promise.then((result)=>{console.log(result);deffered.resolve(result)});return deffered.promise},service:(service)=>{var deffered=$q.defer();var promise=query2.get('fetch/service',{service:service});promise.then((result)=>{console.log(result);deffered.resolve(result)});return deffered.promise},service_param:(service,param)=>{var data=param;data.service=service;var deffered=$q.defer();var promise=query2.get('fetch/service',data);promise.then((result)=>{console.log(result);deffered.resolve(result)});return deffered.promise},offices:()=>{return service('oeams/offices')},profile:()=>{var deffered=$q.defer();var promise=query2.post('fetch/user/details',{});promise.then((result)=>{console.log(result);deffered.resolve(result)});return deffered.promise},}});app.factory('util',function(){return{getb64json:function(string){return JSON.parse(Base64.decode(string))},set_default_value:function(arr,find,compare){var ret;angular.forEach(arr,function(value,index){if(value[find]==compare){ret=value}});return ret},timeMinuteDifference:function(endDate,startDate){var difference=endDate.getTime()-startDate.getTime();difference=difference/60/1000;return difference},get_object_value:function(obj,prop,def_value){var ret=def_value;var err=0;if(obj===undefined){return""} if(obj===null){return""} if(obj[prop]===undefined){return""} if(obj[prop]===null){return""} ret=obj[prop];return ret},Hex2ASCII:function(str1){var hex=str1.toString();var str='';for(var n=0;n0){$location.path('/system-request-manage')}else if(n_dev>0){$location.path('/system-request-dev')}else{$location.path('/system-request')}} deffered.resolve(result)});return deffered.promise},authenticate:function(credentials,route_to){var deffered=$q.defer();var promise=query.post('backend/public/index.php/auth/sysreq_authenticate',credentials);promise.then(function(result){deffered.resolve(result);$rootScope.login.details=result;$rootScope.login.status.logged=!0;$location.path(route_to)}).catch(function(response){console.log("error");console.error('error',response.status,response.data)}).finally(function(){console.log("finally finished ")});return deffered.promise}}});app.factory('auth',function($q,$rootScope,$location,$http,query,util){return{logout:function(route_to){var deffered=$q.defer();var promise=query.post('backend/public/index.php/auth/clear');promise.then(function(result){console.log(result);$location.path(route_to);deffered.resolve(result)});return deffered.promise},session:function(){var deffered=$q.defer();var promise=query.post('backend/public/index.php/auth/session');promise.then(function(result){var data=result;deffered.resolve(data)});return deffered.promise},check_session:function(){var deffered=$q.defer();var promise=this.session();promise.then(function(result){if(result=='null'||result==null||result=='false'){$location.path('/auth');$rootScope.login.details={}}else{if($location.path()=="/"){if($rootScope.login.details.is_guest){$location.path('/guest')}else{$location.path('/dashboard')}}else{if($rootScope.login.details.is_guest){$location.path($rootScope.login.details.dashboard_path)}} $rootScope.login.details=result} deffered.resolve(result)});return deffered.promise},authenticate:function(credentials,route_to){var deffered=$q.defer();var promise=query.post('backend/public/index.php/auth/authenticate',credentials);promise.then(function(result){console.log(result);$rootScope.login.details $rootScope.login.logged=!1;if(result.length!='undefined'){if(result!='false'){console.log("test2");$rootScope.login.details=result;$rootScope.login.status.logged=!0;$location.path(route_to)}}else{console.log(result.length)} deffered.resolve(result)}).catch(function(response){console.log("error");console.error('error',response.status,response.data)}).finally(function(){console.log("finally finished ")});return deffered.promise}}});app.factory('Excel',function($window){var uri='data:application/vnd.ms-excel;base64,',template='{table}
',base64=function(s){return $window.btoa(unescape(encodeURIComponent(s)))},format=function(s,c){return s.replace(/{(\w+)}/g,function(m,p){return c[p]})};return{tableToExcel:function(tableId,worksheetName){var table=$(tableId),ctx={worksheet:worksheetName,table:table.html()},href=uri+base64(format(template,ctx));return href}}});app.factory('query2',function($http,$q,$rootScope){var ajax="backend/public/index.php/sysreq/";return{get:function(service,req_params){var deffered=$q.defer();var params={};if(req_params!=undefined){params=req_params} params.token=Base64.encode(token);params.user=$rootScope.login.details.usr_name;params.localip=$rootScope.system.localip;params.browser=navigator.userAgent;$http.get(ajax+service,{params:params}).success(function(data){deffered.resolve(data)});return deffered.promise},post:function(service,req_params){var deffered=$q.defer();var params={};if(req_params!=undefined){params=req_params} params.token=Base64.encode(token);params.user=$rootScope.login.details.usr_name;params.localip=$rootScope.system.localip;params.browser=navigator.userAgent;$http.post(ajax+service,params).success(function(data){deffered.resolve(data)});return deffered.promise}}});app.factory('query',function($http,$q,$rootScope){return{get:function(ajax,req_params){var deffered=$q.defer();var params={};if(req_params!=undefined){params=req_params} params.token=Base64.encode(token);params.user=$rootScope.login.details.usr_name;params.localip=$rootScope.system.localip;params.browser=navigator.userAgent;$http.get(ajax,{params:params}).success(function(data){deffered.resolve(data)});return deffered.promise},post:function(ajax,req_params){var deffered=$q.defer();var params={};if(req_params!=undefined){params=req_params} params.token=Base64.encode(token);params.user=$rootScope.login.details.usr_name;params.localip=$rootScope.system.localip;params.browser=navigator.userAgent;$http.post(ajax,params).success(function(data){deffered.resolve(data)});return deffered.promise}}});app.factory('query3',function($http,$q,$rootScope){var ajax="backend/public/index.php/";return{get:function(service,req_params){var deffered=$q.defer();var params={};if(req_params!=undefined){params=req_params} params.token=Base64.encode(token);params.user=$rootScope.login.details.usr_name;params.localip=$rootScope.system.localip;params.browser=navigator.userAgent;$http.get(ajax+service,{params:params}).success(function(data){deffered.resolve(data)});return deffered.promise},post:function(service,req_params){var deffered=$q.defer();var params={};if(req_params!=undefined){params=req_params} params.token=Base64.encode(token);params.user=$rootScope.login.details.usr_name;params.localip=$rootScope.system.localip;params.browser=navigator.userAgent;$http.post(ajax+service,params).success(function(data){deffered.resolve(data)});return deffered.promise}}});app.factory('browser',function(){os=function(){var OSName="Unknown OS";if(navigator.appVersion.indexOf("Win")!=-1)OSName="Windows";if(navigator.appVersion.indexOf("Mac")!=-1)OSName="MacOS";if(navigator.appVersion.indexOf("X11")!=-1)OSName="UNIX";if(navigator.appVersion.indexOf("Linux")!=-1)OSName="Linux";return OSName} return{os:os}});app.filter('rawHtml',['$sce',function($sce){return function(val){return $sce.trustAsHtml(val)}}]);app.filter('bytes',function(){return function(bytes,precision){if(isNaN(parseFloat(bytes))||!isFinite(bytes))return'-';if(typeof precision==='undefined')precision=1;var units=['bytes','kB','MB','GB','TB','PB'],number=Math.floor(Math.log(bytes)/Math.log(1024));return(bytes/Math.pow(1024,Math.floor(number))).toFixed(precision)+' '+units[number]}}) app.filter('strip',function(){return function(html){var tmp=document.createElement("DIV");tmp.innerHTML=html;return tmp.textContent||tmp.innerText||""}});app.filter('range',function(){return function(input,total){total=parseInt(total);for(var i=0;i0){return input.split(splitChar)[splitIndex]}}}});app.directive("selectNgFiles",function(){return{require:"ngModel",link:function postLink(scope,elem,attrs,ngModel){elem.on("change",function(e){var files=elem[0].files;ngModel.$setViewValue(files)})}}});app.directive('datepicker2',function($filter){return{restrict:'A',require:'ngModel',link:function(scope,element,attrs,ngModel){if(!ngModel)return;ngModel.$render=function(){element.datepicker('setValue',ngModel.$viewValue||'')};element.datepicker().on("changeDate",function(event){scope.$apply(function(){var new_date=$filter('date')(event.date,'MM-dd-yyyy');ngModel.$setViewValue(new_date)})})}}});app.directive('datepicker',function(){return{scope:{date:'='},link:function(scope,element,attr){jQuery(element[0]).datepicker({setDate:today,format:'mm/dd/yyyy',autoclose:!0,todayHighlight:!0,onSelect:function(date){scope.$apply(function(){scope.date=date})}})}}});app.directive('errSrc',function(){return{link:function(scope,element,attrs){scope.$watch(function(){return attrs.ngSrc},function(value){if(!value){element.attr('src',attrs.errSrc)}});element.bind('error',function(){element.attr('src',attrs.errSrc)})}}});app.directive('dropdownToggle',['$document','$location',function($document,$location){var openElement=null,closeMenu=angular.noop;return{restrict:'CA',link:function(scope,element,attrs){scope.$watch('$location.path',function(){closeMenu()});element.parent().bind('click',function(){closeMenu()});element.bind('click',function(event){var elementWasOpen=(element===openElement);event.preventDefault();event.stopPropagation();if(!!openElement){closeMenu()} if(!elementWasOpen&&!element.hasClass('disabled')&&!element.prop('disabled')){element.parent().addClass('open');openElement=element;closeMenu=function(event){if(event){event.preventDefault();event.stopPropagation()} $document.unbind('click',closeMenu);element.parent().removeClass('open');closeMenu=angular.noop;openElement=null};$document.bind('click',closeMenu)}})}}}]);angular.module('app').component('appHeader',{templateUrl:'pages/page.app-header.php',controllerx:'BaseController'});angular.module('app').component('appMenu',{templateUrl:'pages/page.app-menu.php',controller:'DashboardController'});angular.module('app').component('uploadAttachment',{templateUrl:'pages/component.uploader.php',bindings:{callback:'&',refid:'@',role:'@'},controller:function($scope,query2){var $ctrl=this;$ctrl.upload={files:[],max_size:5,refid:'',uploaded:!1,show:()=>{console.log($ctrl.refid);$ctrl.upload.files=[];$ctrl.upload.refid=$ctrl.refid;$ctrl.upload.uploaded=!1;$('#dlgUpload_'+$ctrl.refid).modal({keyboard:!1,backdrop:'static'});$('#btnclose_uploader').click(function(){$('#dlgUpload_'+$ctrl.refid).modal('hide')})},go:()=>{swal({title:"Confirm",text:"Upload files?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var data={refid:$ctrl.upload.refid,files:$ctrl.upload.files} var promise=query2.post('upload/sysreq/files',data);promise.then(function(result){$ctrl.upload.uploaded=!0;var data={files:$ctrl.upload.files,uploaded:$ctrl.upload.uploaded,refid:$ctrl.upload.refid,role:$ctrl.role} $ctrl.upload.files=[];swal("Uploaded","","success");$('#dlgUpload_'+$ctrl.refid).modal('hide');$ctrl.callback({data:data})})})},remove:(item)=>{var index=$ctrl.upload.files.indexOf(item);$ctrl.upload.files.splice(index,1)},prepare:(files)=>{var f=document.getElementById('file_'+$ctrl.refid).files[0],r=new FileReader();r.onloadend=function(e){var size=document.getElementById('file_'+$ctrl.refid).files[0].size/1024/1024;if(Math.floor(size)>$ctrl.upload.max_size){swal("Error","Maximum of "+$ctrl.upload.max_size+" MB per file","error");return} var allowed_ext=["pdf","png","jpg","jpeg"];var ext=document.getElementById('file_'+$ctrl.refid).files[0].name.split('.').pop().toLowerCase();if(!allowed_ext.includes(ext)){swal("Error","File type is not allowed","error");return} $ctrl.upload.files.push({'filename':document.getElementById('file_'+$ctrl.refid).files[0].name,'type':document.getElementById('file_'+$ctrl.refid).files[0].name.split('.').pop().toLowerCase(),'size':size,'data':e.target.result,});$scope.$apply()} r.readAsDataURL(f)}}}});app.controller('sysreqComponent',function($scope,query2,fetch2,$q,util){var $ctrl=this;$ctrl.callback_doc_upload=function(data){console.log(data);$ctrl.files.fetch_uploads(data.refid).then((result)=>{$ctrl.req.upload.files=result})} $ctrl.listing={developers:[]} fetch2.developers().then((result)=>{$ctrl.listing.developers=result});$ctrl.tinymceOptions={selector:"textarea",branding:!1,themes:'mobile',selector:'textarea',autoresize_on_init:!0,plugins:["autoresize advlist autolink lists charmap hr anchor ","searchreplace code insertdatetime nonbreaking","table directionality paste"],menubar:' edit insert format table',toolbar:" undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | forecolor backcolor ",style_formats:[{title:'Bold text',inline:'b'},{title:'Red text',inline:'span',styles:{color:'#ff0000'}},{title:'Red header',block:'h1',styles:{color:'#ff0000'}},{title:'Example 1',inline:'span',classes:'example1'},{title:'Example 2',inline:'span',classes:'example2'},{title:'Table styles'},{title:'Table row 1',selector:'tr',classes:'tablerow1'}]};$ctrl.tinymceOptions_todo={selector:"textarea",branding:!1,themes:'mobile',selector:'textarea',autoresize_on_init:!0,plugins:["hr ","searchreplace code insertdatetime nonbreaking","table directionality paste"],menubar:'',toolbar:" undo redo | bold italic | alignleft aligncenter alignright alignjustify | outdent indent ",style_formats:[]};$ctrl.new_system={fetch:(refid)=>{},update:(data)=>{swal({title:"Confirm",text:"Update?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},()=>{console.log(data);var deffered=$q.defer();var promise=query2.post('update/new_sysreq',data);promise.then((result)=>{console.log(result);swal("Success","success");deffered.resolve(result)})})}} $ctrl.files={fetch_attachments:(refid)=>{var data={refid:refid} var deffered=$q.defer();var promise=query2.post('fetch/sysreq/attachments',data);promise.then((result)=>{deffered.resolve(result)});return deffered.promise},fetch_uploads:(refid)=>{var data={refid:refid} var deffered=$q.defer();var promise=query2.post('fetch/sysreq/uploads',data);promise.then((result)=>{deffered.resolve(result)});return deffered.promise}} $ctrl.timeline={fetch:(refid)=>{var data={refid:refid} var deffered=$q.defer();var promise=query2.post('fetch/sysreq/timeline',data);promise.then((result)=>{deffered.resolve(result)});return deffered.promise},} $ctrl.comment={fetch:(refid)=>{var data={refid:refid} var deffered=$q.defer();var promise=query2.post('fetch/comments',data);promise.then((result)=>{deffered.resolve(result)});return deffered.promise},submit:(data)=>{console.log(data);var deffered=$q.defer();var promise=query2.post('post/comment',data);promise.then((result)=>{deffered.resolve(result)});return deffered.promise}} $ctrl.activity={fetch:(refid)=>{var data={refid:refid} var deffered=$q.defer();var promise=query2.post('fetch/activities',data);promise.then((result)=>{deffered.resolve(result)});return deffered.promise},submit:(data)=>{console.log(data);var deffered=$q.defer();var promise=query2.post('post/activity',data);promise.then((result)=>{deffered.resolve(result)});return deffered.promise}} $ctrl.todo={fetch:(refid)=>{var data={refid:refid} var deffered=$q.defer();var promise=query2.post('fetch/todo',data);promise.then((result)=>{deffered.resolve(result)});return deffered.promise},submit:(data)=>{console.log(data);var deffered=$q.defer();var promise=query2.post('post/todo',data);promise.then((result)=>{deffered.resolve(result)});return deffered.promise}} $ctrl.progress={fetch:(refid)=>{var data={refid:refid} var deffered=$q.defer();var promise=query2.post('fetch/progress',data);promise.then((result)=>{deffered.resolve(result)});return deffered.promise},update:(data)=>{console.log(data);var deffered=$q.defer();var promise=query2.post('update/progress',data);promise.then((result)=>{deffered.resolve(result)});return deffered.promise}} $ctrl.req={details:{},new_system:{data:{},fetch:()=>{if($ctrl.req.details.data.approved_new_sys_title!=null&&$ctrl.req.details.data.approved_new_sys_title.length>0){$ctrl.req.new_system.data.name=$ctrl.req.details.data.approved_new_sys_title}else{$ctrl.req.new_system.data.name=$ctrl.req.details.data.new_sys_title} $ctrl.req.new_system.data.developer=util.set_default_value($ctrl.listing.developers,'emp_id',$ctrl.req.details.data.dev_emp_id)},update:()=>{var data={name:$ctrl.req.new_system.data.name,developer:$ctrl.req.new_system.data.developer,refid:$ctrl.req.details.data.refid} $ctrl.new_system.update(data)}},set_in_progress:()=>{swal({title:"Confirm",text:"Set new status",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},()=>{var deffered=$q.defer();var promise=query2.post('set/sysreq/onprogress',{refid:$ctrl.refid});promise.then((result)=>{console.log(result);swal("Success","success");$ctrl.req.view();deffered.resolve(result)})})},set_waiting:()=>{swal({title:"Confirm",text:"Set new status",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},()=>{var deffered=$q.defer();var promise=query2.post('set/sysreq/waiting',{refid:$ctrl.refid});promise.then((result)=>{console.log(result);swal("Success","success");$ctrl.req.view();deffered.resolve(result)})})},set_paused:()=>{swal({title:"Confirm",text:"Set new status",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},()=>{var deffered=$q.defer();var promise=query2.post('set/sysreq/paused',{refid:$ctrl.refid});promise.then((result)=>{console.log(result);swal("Success","success");$ctrl.req.view();deffered.resolve(result)})})},fetch:()=>{var deffered=$q.defer();var promise=query2.post('fetch/sysreq/details',{refid:$ctrl.refid});promise.then((result)=>{deffered.resolve(result)});return deffered.promise},view:()=>{console.log($ctrl.username);console.log($ctrl.refid);$ctrl.req.fetch($ctrl.refid).then((result)=>{console.log(result);$ctrl.req.details=result;$ctrl.req.comment.fetch();$ctrl.req.activity.fetch();$ctrl.req.progress.fetch();$ctrl.req.attachment.fetch();$ctrl.req.upload.fetch();$ctrl.req.timeline.fetch();$ctrl.req.new_system.fetch();$ctrl.req.todo.fetch();var dlg_id='#dlgSysReqDetails_'+$ctrl.role+'_'+$ctrl.id;$(dlg_id).modal({keyboard:!1,backdrop:'static',dismissible:!1,});$('#btnclose_sysreq_'+$ctrl.role+'_'+$ctrl.id+', '+'#btnclose2_sysreq_'+$ctrl.role+'_'+$ctrl.id).click(function(){$('#dlgSysReqDetails_'+$ctrl.role+'_'+$ctrl.id).modal('hide');$('body').removeClass('modal-open');$('.modal-backdrop').remove();$ctrl.callback({})})})},upload:{files:[],fetch:()=>{var refid=$ctrl.req.details.data.refid;$ctrl.files.fetch_uploads(refid).then((result)=>{$ctrl.req.upload.files=result;console.log(result)})}},progress:{data:0,fetch:()=>{var refid=$ctrl.req.details.data.refid;$ctrl.progress.fetch(refid).then((result)=>{console.log(result);$ctrl.req.progress.data=parseFloat(result.progress);console.log($ctrl.req.progress.data)})},update:()=>{var data={progress:$ctrl.req.progress.data,refid:$ctrl.req.details.data.refid} $ctrl.progress.update(data).then((result)=>{})}},activity:{data:'',listing:[],clear:()=>{$ctrl.req.activity.data={activity:'',date:new Date(),duration:0}},fetch:()=>{var refid=$ctrl.req.details.data.refid;$ctrl.activity.fetch(refid).then((result)=>{$ctrl.req.activity.listing=result})},submit:()=>{var data={activity:$ctrl.req.activity.data.activity,date:moment($ctrl.req.activity.data.date).format('L'),duration:$ctrl.req.activity.data.duration,refid:$ctrl.req.details.data.refid} $ctrl.activity.submit(data).then((result)=>{$ctrl.req.activity.fetch();$ctrl.req.activity.clear()})}},todo:{data:'',listing:[],clear:()=>{$ctrl.todo.activity.data={todo:'',}},fetch:()=>{var refid=$ctrl.req.details.data.refid;$ctrl.todo.fetch(refid).then((result)=>{$ctrl.req.todo.listing=result})},submit:()=>{var data={todo:$ctrl.req.todo.data.todo,refid:$ctrl.req.details.data.refid} $ctrl.todo.submit(data).then((result)=>{$ctrl.req.todo.fetch();$ctrl.req.todo.clear()})}},timeline:{listing:[],fetch:()=>{var refid=$ctrl.req.details.data.refid;$ctrl.timeline.fetch(refid).then((result)=>{$ctrl.req.timeline.listing=result})},},comment:{data:'',listing:[],clear:()=>{$ctrl.req.comment.data=""},fetch:()=>{var refid=$ctrl.req.details.data.refid;$ctrl.comment.fetch(refid).then((result)=>{$ctrl.req.comment.listing=result})},submit:()=>{var data={comment:$ctrl.req.comment.data,refid:$ctrl.req.details.data.refid} $ctrl.comment.submit(data).then((result)=>{$ctrl.req.comment.fetch();$ctrl.req.comment.clear()})}},attachment:{files:[],max_size:5,fetch:()=>{var refid=$ctrl.req.details.data.refid;$ctrl.files.fetch_attachments(refid).then((result)=>{$ctrl.req.attachment.files=result})}}}});angular.module('app').component('sysreqDetails',{templateUrl:'pages/component.sysreq.php',bindings:{callback:'&',refid:'@',role:'@',username:'@',id:'@'},controller:'sysreqComponent'});angular.module('app').component('sysreqDetails2',{template:` `,bindings:{callback:'&',refid:'@',role:'@',username:'@',id:'@'},controller:'sysreqComponent'});angular.module('app').component('profileUpdate',{templateUrl:'pages/component.sysreq.profile.php',bindings:{callback:'&',username:'@'},controller:function($scope,query2,fetch2,util,$q){var $ctrl=this;function makeid(length){var result='';var characters='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';var charactersLength=characters.length;for(var i=0;i{$ctrl.listing.offices=results;$ctrl.profile.fetch().then((result)=>{$ctrl.profile.data=result;$ctrl.profile.data.office=util.set_default_value($ctrl.listing.offices,'office_id',result.office_id)})});$('#dlgProfile_'+$ctrl.id).modal({keyboard:!1,backdrop:'static'});$('#btnclose_profile_'+$ctrl.id).click(function(){$('#dlgProfile_'+$ctrl.id).modal('hide')})},fetch:()=>{var deffered=$q.defer();var promise=query2.post('fetch/user/details',{});promise.then((result)=>{deffered.resolve(result)});return deffered.promise},update:()=>{swal({title:"Confirm",text:"Update",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},()=>{var deffered=$q.defer();var promise=query2.post('update/user/details',$ctrl.profile.data);promise.then((result)=>{console.log(result);swal("Success","success");deffered.resolve(result)})})},}}});var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=Base64._utf8_encode(e);while(f>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a)}return t},decode:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(f>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=Base64._utf8_decode(t);return t},_utf8_encode:function(e){e=e.replace(/\r\n/g,"\n");var t="";for(var n=0;n127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n191&&r<224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&31)<<6|c2&63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63);n+=3}}return t}} app.controller('BaseController',function($scope,$rootScope,$http,query,$location,$routeParams,$q,util,auth,md5){$scope.registrar_backend_url="https://dione.batstate-u.edu.ph/registrar/system/backend/public/index.php/data";$scope.enroll_backend_url="https://dione.batstate-u.edu.ph/enrollment/backend/public/index.php/data3";$scope.backend_url="backend/public/index.php/data";$scope.json_url="backend/public";$scope.backend_auth_url="backend/public/index.php/auth";$scope.api_url="https://dione.batstate-u.edu.ph/api3/public/index.php" $scope.backend_curriculum_url="https://dione.batstate-u.edu.ph/curriculum/backend/public/index.php/data";$scope.local_ip="";$scope.routeParams={auth_type:$routeParams.auth_type} $scope.token=token;$scope.recaptcha2={status_success_login:!0,success_login:function(response){this.response=response;this.status_success_login=!0},response:''} $scope.pass_attr="password";$scope.show_password=function(){$scope.pass_attr=$scope.pass_attr=="password"?"text":"password"} $scope.check_console=function(){var ret=!1;if(window.console){ret=!0;console.log('****************************************');console.log('* (c)Batangas State University *');console.log('****************************************');console.log('Local IP:'+$rootScope.system.localip);console.log('Public IP :'+ipaddress);console.log('Browser Information:');console.log(navigator)}} $scope.gRecaptchaResponse="";$rootScope.login.credentials.username="";$rootScope.login.credentials.password="";$scope.is_processing=!1;$scope.authenticate=function(){$scope.is_processing=!0;var credentials={username:$rootScope.login.credentials.username,password:md5.createHash($rootScope.login.credentials.password),recaptcha2:$scope.recaptcha2.response,user_type:'student'} var promise=auth.authenticate(credentials,"/dashboard");promise.then(function(result){console.log(result);$scope.is_processing=!1;if(!result||!$rootScope.login.status.logged){swal("Error","Authentication Failed","error");$rootScope.login.credentials.username="";$rootScope.login.credentials.password=""}else{}}).catch(function(response){console.error('error',response.status,response.data)}).finally(function(){console.log("finally finished ")})} $scope.printDiv=function(divID){var printContents=document.getElementById(divID).innerHTML;var popupWin=window.open('','_blank');popupWin.document.open();popupWin.document.write(''+' '+' '+' '+' '+' '+' '+' '+printContents+'');popupWin.document.close()} $scope.defaults={};$scope.fetch_data=function(service,params){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/'+service,params);promise.then(function(result){deffered.resolve(result)});return deffered.promise} $q.all([]).then(function(data){})});app.controller('CheckIDCardController',function($scope,$controller,$rootScope,$parse,$http,query,$interval,$location,$routeParams,$q,util,$window,auth,fetch){angular.extend(this,$controller('BaseController',{$scope:$scope}));$scope.Base64=Base64;$scope.cards={filter:{searchkey:''},results:[],fetching:!1,check:function(){$scope.cards.fetching=!0;$scope.cards.results=[];var deffered=$q.defer();var promise=query.post($scope.backend_url+'/check/id/cards',this.filter);promise.then(function(result){console.log(result);$scope.cards.results=result;$scope.cards.fetching=!1;deffered.resolve(result)});return deffered.promise},}});app.controller('CheckIDForPrintController',function($scope,$controller,$rootScope,$parse,$http,query,$interval,$location,$routeParams,$q,util,$window,auth,fetch){angular.extend(this,$controller('BaseController',{$scope:$scope}));$scope.Base64=Base64;$scope.for_print={filter:{searchkey:''},results:[],fetching:!1,check:function(){$scope.for_print.fetching=!0;$scope.for_print.results=[];var deffered=$q.defer();var promise=query.post($scope.backend_url+'/check/id/for-print',this.filter);promise.then(function(result){console.log(result);$scope.for_print.results=result;$scope.for_print.fetching=!1;deffered.resolve(result)});return deffered.promise},}});app.controller('DashboardController',function($scope,$controller,$rootScope,$parse,$http,query,$interval,$location,$routeParams,$q,util,$window,auth,fetch){angular.extend(this,$controller('BaseController',{$scope:$scope}));$scope.Base64=Base64;$('.datepicker').datepicker({setDate:today,format:'yyyy-mm-dd',autoclose:!0,todayHighlight:!0});$("#metismenu").metisMenu();$scope.exportTableToExcel=function(tableID,filename=''){var downloadLink;var dataType='application/vnd.ms-excel';var tableSelect=document.getElementById(tableID);var tableHTML=tableSelect.outerHTML.replace(/ /g,'%20');filename=filename?filename+'.xls':'excel_data.xls';downloadLink=document.createElement("a");document.body.appendChild(downloadLink);if(navigator.msSaveOrOpenBlob){var blob=new Blob(['\ufeff',tableHTML],{type:dataType});navigator.msSaveOrOpenBlob(blob,filename)}else{downloadLink.href='data:'+dataType+', '+tableHTML;downloadLink.download=filename;downloadLink.click()}} $("body").tooltip({selector:'[data-toggle=tooltip]'});$(".dropdown-toggle").dropdown();var availableTags=["No photo and signature attached","No photo attached","No signature attched","Requirements for photo and signature does not meet","Requirements for photo does not meet","Requirements for signature does not meet","Invalid photo and signature","Invalid photo","Invalid signature","Contact information is incomplete"];var today=new Date() $scope.filter={listing:{distinctions:['CUM LAUDE','MAGNA CUM LAUDE','SUMA CUM LAUDE'],grad_type:['VOCATIONAL','TECHNICAL','TECHNICIAN','BACHELOR','JUNIOR HIGH'],faculty:[],campuses:[],colleges:[],programs:[],majors:[],yearlevels:['FIRST','SECOND','THIRD','FOURTH','FIFTH'],status:['ENROLLED','NOT ENROLLED'],semesters:['FIRST','SECOND','SUMMER','SUMMER2'],schoolyears:['2024-2025','2023-2024','2022-2023','2021-2022','2020-2021','2019-2020','2018-2019','2017-2018','2016-2017','2015-2016','2014-2015','2013-2014','2012-2013','2011-2012','2010-2011'],curriculums:[],},options:{schoolyear:$scope.defaults.schoolyear,semester:$scope.defaults.semester,college:'',program:'',major:'',yearlevel:'',status:'ENROLLED',faculty:'',searchkey:'',srcode:'',curriculum:'',grad_status:'',date_from:today,date_to:today},visible:{schoolyear:!0,semester:!0,college:!0,program:!0,major:!0,yearlevel:!0,status:!0,faculty:!1,searchkey:!1,srcode:!1,curriculum:!1,grad_status:!1,date_range:!1},visibility_all:function(b){this.visible.schoolyear=b;this.visible.semester=b;this.visible.college=b;this.visible.program=b;this.visible.major=b;this.visible.yearlevel=b;this.visible.status=b;this.visible.faculty=b;this.visible.searchkey=b;this.visible.srcode=b;this.visible.curriculum=b;this.visible.grad_status=b;this.visible.date_range=b},visibility_default:function(){this.visible.schoolyear=!0;this.visible.semester=!0;this.visible.campus=!0;this.visible.college=!0;this.visible.program=!0;this.visible.major=!0;this.visible.yearlevel=!0;this.visible.status=!1;this.visible.faculty=!1;this.visible.searchkey=!1;this.visible.srcode=!1;this.visible.curriculum=!1;this.visible.grad_status=!1;this.visible.date_range=!1},get:function(){var data={schoolyear:$scope.filter.options.schoolyear,semester:$scope.filter.options.semester,campus:$scope.filter.options.campus!=null?$scope.filter.options.campus.campus:'',college:$scope.filter.options.college!=undefined?$scope.filter.options.college.collegecode:'',program:$scope.filter.options.program!=undefined?$scope.filter.options.program.coursecode:'',major:$scope.filter.options.major.majorcode!=undefined?$scope.filter.options.major.majorcode:'',yearlevel:$scope.filter.options.yearlevel!=null?$scope.filter.options.yearlevel:'',status:$scope.filter.options.status,faculty_id:$scope.filter.options.faculty!=null?$scope.filter.options.faculty.faculty_id:'',searchkey:$scope.filter.options.searchkey,srcode:$scope.filter.options.srcode!=null?$scope.filter.options.srcode:'',curriculum:$scope.filter.options.curriculum!=null?$scope.filter.options.curriculum.id:'',grad_status:$scope.filter.options.grad_status!=null?$scope.filter.options.grad_status:'',date_from:$scope.filter.options.date_from!=null?moment($scope.filter.options.date_from).format('L'):'',date_to:$scope.filter.options.date_to!=null?moment($scope.filter.options.date_to).format('L'):''} if(data.date_from=="Invalid date"){data.date_from=""} if(data.date_to=="Invalid date"){data.date_to=""} return data},clear:function(){this.options.campus={};this.options.college={};this.options.schoolyear=$scope.defaults.schoolyear;this.options.semester=$scope.defaults.semester;this.options.program={};this.options.major={};this.options.yearlevel='';this.options.status='ENROLLED';this.options.searchkey='';this.options.srcode='';this.options.curriculum={};this.options.grad_status={};this.options.date_from='';this.options.date_to=''},show:function(callback){defer_filter=$q.defer();var confirm=!1;$('#dlgFilter').modal({keyboard:!1,backdrop:'static'}) $('#dlgFilter_Done').click(function(){confirm=!0;if(callback)callback(confirm);});$('#dlgFilter_cancel').click(function(){confirm=!1;if(callback)callback(confirm);})}} $scope.defaults={} $scope.listing={pmp_years:[2024,2023,2022,2021],schoolyear:['2024-2025','2023-2024','2022-2023','2021-2022','2020-2021','2019-2020','2018-2019','2017-2018','2016-2017','2015-2016'],semester:['FIRST','SECOND','SUMMER','SUMMER2'],yearlevel:['FIRST','SECOND','THIRD','FOURTH','FIFTH'],rss_news_feed:[],banks:['LBP'],epayment_type:['ON-CALL','EPAYMENT'],campus:['','ALANGILAN','BALAYAN','LEMERY','LIPA','LOBO','MABINI','MAIN','MALVAR','NASUGBU','ROSARIO','SAN JUAN'],colleges:[],offices:[]} var current_year=new Date().getFullYear();$scope.listing.pmp_years=[];for(var i=current_year;i>=2021;i--){$scope.listing.pmp_years.push(i)} $scope.menu={current:"mnu_dashboard",dashboard:function(){this.current="mnu_dashboard"},student_uploaded_id:function(){this.current="mnu_student_uploaded_id";$("#btnMenu").click()},student_id_files:function(){this.current="mnu_student_id_files";$("#btnMenu").click()},faculty_portal:function(){this.current="mnu_faculty_portal";$("#btnMenu").click()},student_portal:function(){this.current="mnu_student_portal";$("#btnMenu").click()},student_portal_reset_requests:function(){this.current="mnu_student_portal_reset_requests";$("#btnMenu").click();$scope.student_portal.fetch_reset_requests()},employee_portal:function(){this.current="mnu_employee_portal";$("#btnMenu").click()},eq_inventory:function(){this.current="mnu_eq_inventory";$("#btnMenu").click()},eq_summary:function(){this.current="mnu_eq_summary";$("#btnMenu").click();$scope.eq.fetch_summary()},downloads:function(){this.current="mnu_downloads";$("#btnMenu").click();$scope.downloads.fetch()},report_id_processing_activity:function(){this.current="mnu_report_id_processing_activity";$("#btnMenu").click()},report_reset_activity:function(){this.current="mnu_report_reset_activity";$("#btnMenu").click()},report_id_summary:function(){$scope.fetch.student_id_summary({schoolyear:'2024-2025',semester:'FIRST'}).then(function(results){$scope.summary.id=results});this.current="mnu_student_id_summary";$("#btnMenu").click()},access_student_portal:function(){this.current="mnu_access_student_portal";$("#btnMenu").click()},gate_allowed_entry_list:function(){this.current="mnu_gate_access_links";$("#btnMenu").click()},pmp:function(){this.current="mnu_pmp";$("#btnMenu").click()},pmp_signatories:function(){this.current="mnu_pmp_signatories";$scope.pmp_sig.fetch();$("#btnMenu").click()},eq_listing:function(){this.current="mnu_eq_listing";$("#btnMenu").click()},user_accounts:function(){this.current="mnu_user_account_manager";$("#btnMenu").click()},student_id_preview:function(){this.current="mnu_student_id_preview";$("#btnMenu").click()},employee_id_preview:function(){this.current="mnu_employee_id_preview";$("#btnMenu").click()},} $scope.employee_id={listing:[],fetching:!1,filter:{searchkey:''},detais:{},ver:1,print:function(){var frm=document.getElementById('print_emp_id').contentWindow;frm.focus();frm.print();return!1},view:function(item,v){$scope.employee_id.details=item;$scope.employee_id.details.v=v;$('#dlgemp_id').modal({keyboard:!1,backdrop:'static'})},search:function(){$scope.employee_id.fetching=!0;$scope.employee_id.listing=[];var deffered=$q.defer();var promise=query.post($scope.backend_url+'/search_employee_id',this.filter);promise.then(function(result){console.log(result);$scope.employee_id.fetching=!1;$scope.employee_id.listing=result;deffered.resolve(result)});return deffered.promise}} $scope.user_account={listing:{system:[{code:'doctrack',name:'Document Tracking'},{code:'acad_portal',name:'Academic Portal'},{code:'student_clearance',name:'Student Clearance'},{code:'ssc',name:'SSC Portal'},{code:'enrollment',name:'Enrollment System'}],result:[]},filter:{system:{},searchkey:''},fetching:!1,fetch:function(){$scope.user_account.fetching=!0;$scope.user_account.listing.result=[];var deffered=$q.defer();var promise=query.post($scope.backend_url+'/search_user_accounts',this.filter);promise.then(function(result){console.log(result);$scope.user_account.fetching=!1;$scope.user_account.listing.result=result.rows;deffered.resolve(result)});return deffered.promise},reset:function(item){var data=angular.copy(item);console.log(data);swal({title:"Confirm",text:"Reset password?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/reset_user_account',data);promise.then(function(result){if(result.error==0){swal("Success","success")}else{swal(result.message,"error")} deffered.resolve(result)})})},} $scope.access_student_portal={listing:[],fetching:!1,reset_requests_listing:[],reset_requests_fetching:!1,filter:{searchkey:''},fetch:function(){$scope.access_student_portal.fetching=!0;$scope.access_student_portal.listing=[];var deffered=$q.defer();var promise=query.post($scope.backend_url+'/fetch_student_portal_account_listing',this.filter);promise.then(function(result){console.log(result);$scope.access_student_portal.listing=result;$scope.access_student_portal.fetching=!1;deffered.resolve(result)});return deffered.promise}} $scope.student_portal={listing:[],fetching:!1,reset_requests_listing:[],reset_requests_fetching:!1,filter:{searchkey:''},show_activate:function(){$('#dlgactivate_student_portal').modal({keyboard:!1,backdrop:'static'})},activate:function(){},update_fullname:function(item){var data=angular.copy(item);console.log(data);swal({title:"Confirm",text:"Update fullname?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/update_student_portal_name',data);promise.then(function(result){swal("Success","success");$scope.student_portal.fetch();deffered.resolve(result)})})},reset:function(item){var data=angular.copy(item);console.log(data);swal({title:"Confirm",text:"Reset portal password?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/reset_student_portal_account',data);promise.then(function(result){if(result.error==0){swal("Success","success")}else{swal(result.message,"error")} deffered.resolve(result)})})},fetch:function(){$scope.student_portal.fetching=!0;$scope.student_portal.listing=[];var deffered=$q.defer();var promise=query.post($scope.backend_url+'/fetch_student_portal_account_listing',this.filter);promise.then(function(result){console.log(result);$scope.student_portal.listing=result;$scope.student_portal.fetching=!1;deffered.resolve(result)});return deffered.promise},fetch_reset_requests:function(){$scope.student_portal.reset_requests_fetching=!0;$scope.student_portal.reset_requests_listing=[];var deffered=$q.defer();var promise=query.get($scope.backend_url+'/fetch_student_portal_reset_requests',this.filter);promise.then(function(result){console.log(result);$scope.student_portal.reset_requests_listing=result;$scope.student_portal.reset_requests_fetching=!1;deffered.resolve(result)});return deffered.promise}} $scope.faculty_portal={listing:[],fetching:!1,filter:{searchkey:''},data:{faculty_id:'',fullname:'',password:'',password2:'',employee_id:'',email:'',telno:''},clear:function(){this.data={faculty_id:'',fullname:'',password:'',password2:'',employee_id:'',email:'',telno:''}},check:function(){var err=0;if(this.data.faculty_id.length==0){err++} if(this.data.fullname.length==0){err++} if(this.data.password.length==0){err++} if(this.data.password2.length==0){err++} if(this.data.employee_id.length==0){err++} if(this.data.email.length==0){err++} if(this.data.telno.length==0){err++} if(this.data.password!==this.data.password2){err++} return err==0?true:!1},show_create:function(){$('#dlgcreate_faculty_portal').modal({keyboard:!1,backdrop:'static'})},emp_details:function(){var emp_id=$scope.faculty_portal.data.faculty_id;$scope.employee.fetch_details(emp_id).then(function(result){$scope.faculty_portal.data.employee_id=emp_id;$scope.faculty_portal.data.password=emp_id;$scope.faculty_portal.data.password2=emp_id;$scope.faculty_portal.data.fullname=result.fullname;$scope.faculty_portal.data.email="NONE";$scope.faculty_portal.data.telno="NONE"})},update_fullname:function(item){var data=angular.copy(item);console.log(data);swal({title:"Confirm",text:"Update fullname?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/update_faculty_portal_name',data);promise.then(function(result){swal("Success","success");$scope.faculty_portal.fetch();deffered.resolve(result)})})},create:function(){var data=angular.copy(this.data);console.log(data);swal({title:"Confirm",text:"Confirm",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/create_faculty_portal_account',data);promise.then(function(result){if(result.error==0){swal("Success","success");$scope.faculty_portal.clear();$('#dlgcreate_faculty_portal').modal('hide')}else{swal(result.message,"error")} deffered.resolve(result)})})},reset:function(item){var data=angular.copy(item);console.log(data);swal({title:"Confirm",text:"Reset portal password to default?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/reset_faculty_portal_account',data);promise.then(function(result){if(result.error==0){swal("Success","success")}else{swal(result.message,"error")} deffered.resolve(result)})})},fetch:function(){$scope.faculty_portal.fetching=!0;$scope.faculty_portal.listing=[];var deffered=$q.defer();var promise=query.post($scope.backend_url+'/fetch_faculty_portal_account_listing',this.filter);promise.then(function(result){console.log(result);$scope.faculty_portal.listing=result;$scope.faculty_portal.fetching=!1;deffered.resolve(result)});return deffered.promise}} $scope.employee={fetch_details:function(emp_id){var data={emp_id:emp_id} var deffered=$q.defer();var promise=query.post($scope.backend_url+'/fetch_emp_details',data);promise.then(function(result){deffered.resolve(result)});return deffered.promise}} $scope.employee_portal={listing:[],fetching:!1,filter:{searchkey:''},set_status:function(item){var data=angular.copy(item);console.log(data);swal({title:"Confirm",text:(item.active?'Enable':'Disable')+' this account?',type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1},function(isConfirm){console.log(isConfirm);if(isConfirm){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/set/portal/employee',data);promise.then(function(result){swal("Success","success");$scope.employee_portal.fetch();deffered.resolve(result)})}else{if(item.active){item.active=!1}else{item.active=!0} $scope.$apply()}})},reset:function(item){var data=angular.copy(item);console.log(data);swal({title:"Confirm",text:"Reset portal password to default?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1},function(){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/reset_employee_portal_account',data);promise.then(function(result){if(result.error==0){swal("Success","success");$scope.employee_portal.fetch()}else{swal(result.message,"error")} deffered.resolve(result)})})},update_fullname:function(item){var data=angular.copy(item);console.log(data);swal({title:"Confirm",text:"Update fullname?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/update_employee_portal_name',data);promise.then(function(result){swal("Success","success");$scope.employee_portal.fetch();deffered.resolve(result)})})},fetch:function(){$scope.employee_portal.fetching=!0;$scope.employee_portal.listing=[];var deffered=$q.defer();var promise=query.post($scope.backend_url+'/fetch_employee_portal_account_listing',this.filter);promise.then(function(result){console.log(result);$scope.employee_portal.listing=result;$scope.employee_portal.fetching=!1;deffered.resolve(result)});return deffered.promise}} $scope.attach_event=function(){var i=0;console.log("Attached");angular.forEach($scope.student_id_files.listing,function(value,key){var id="#tag_remarks_"+i;console.log(id);$(id).on("keydown",function(){console.log("test");var newY=$(this).textareaHelper('caretPos').top+(parseInt($(this).css('font-size'),10)*1.5);var newX=$(this).textareaHelper('caretPos').left;var posString="left+"+newX+"px top+"+newY+"px";$(this).autocomplete("option","position",{my:"left top",at:posString})});$(id).autocomplete({source:availableTags});i++})} $scope.trig=function(id){console.log("test");$(id).autocomplete({source:availableTags});var newY=$(id).textareaHelper('caretPos').top+(parseInt($(id).css('font-size'),10)*1.5);var newX=$(id).textareaHelper('caretPos').left;var posString="left+"+newX+"px top+"+newY+"px";$(id).autocomplete("option","position",{my:"left top",at:posString})};$scope.student_uploaded_id={listing:[],result:{total_pages:1},fetching:!1,filter:{college:{},campus:'',schoolyear:'2023-2024',semester:'FIRST',page:1,searchkey:'',srcode_year:'',not_updated:!1,exclude_yearlevel:!1,not_updated_in_name:!1},next_page:function(){if(this.filter.page2){this.filter.page--}},update_all:function(){swal({title:"Update All ID records",text:"Submit?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var promises=[];var updated=0;angular.forEach($scope.student_uploaded_id.result.listing,function(value,key){if(value.diff>0){var list=[];angular.forEach(value.properties,function(value2,key2){if(value2.diff){list.push(value2)}});if(list.length>0){var data={srcode:value.srcode,items:list};console.log(data);var deferred=$q.defer();var promise=query.post($scope.backend_url+'/update_id_data',data);promise.then(function(result){console.log(result);value.diff=0;updated++;deferred.resolve(result)});promises.push(deferred.promise)}}});$q.all(promises).then(function(){swal("Updated [ "+updated+" ]","success")})})},update:function(item){var data={srcode:item.srcode};var list=[] angular.forEach(item.properties,function(value,key){if(value.diff){list.push(value)}});data.items=list;console.log(data);swal({title:"Update ID records",text:"Submit?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){console.log(item);var deffered=$q.defer();var promise=query.post($scope.backend_url+'/update_id_data',data);promise.then(function(result){console.log(result);swal("Success","success");item.diff=0;deffered.resolve(result)})})},fetch:function(){var filter=angular.copy(this.filter);filter.college=util.get_object_value(this.filter.college,'collegecode','');console.log(filter);$scope.student_uploaded_id.fetching=!0;var deffered=$q.defer();var promise=query.get($scope.backend_url+'/fetch_student_uploaded_id',filter);promise.then(function(result){console.log(result);$scope.student_uploaded_id.result=result;$scope.student_uploaded_id.fetching=!1;deffered.resolve(result)});return deffered.promise}} $scope.student_id_files={listing:[],fetching:!1,filter:{college:{},campus:'',schoolyear:'2022-2023',semester:'FIRST',searchkey:'',not_uploaded:!1,uploaded:!1,checked:!1,updated:!1,with_logs:!1},id_status:{pic_ok:!1,sign_ok:!1,details_ok:!1,remarks:'',srcode:''},fetch:function(){var filter=angular.copy(this.filter);filter.college=util.get_object_value(this.filter.college,'collegecode','');$scope.student_id_files.fetching=!0;console.log(filter);var deffered=$q.defer();var promise=query.get($scope.backend_url+'/fetch_student_id_files',filter);promise.then(function(result){console.log(result);$scope.student_id_files.listing=result;$scope.student_id_files.fetching=!1;deffered.resolve(result)});return deffered.promise},tag:function(item){swal({title:"Confirm",text:"Submit?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){console.log(item.status);var deffered=$q.defer();var promise=query.post($scope.backend_url+'/tag_id_status',item.status);promise.then(function(result){swal("Success","success");deffered.resolve(result)})})},unupload:function(item){swal({title:"Confirm",text:"Unupload ["+item.status.srcode+"]?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/unupload_data',item.status);promise.then(function(result){swal("Success","success");deffered.resolve(result)})})},upload:function(item){swal({title:"Confirm",text:"Upload ["+item.status.srcode+"]?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/tag_id_status',item.status);promise.then(function(result){deffered.resolve(result)});var deffered=$q.defer();var promise=query.post($scope.backend_url+'/upload_data',item.status);promise.then(function(result){swal("Success","success");deffered.resolve(result)})})}} $scope.liabilities={status:{fetching:!1},data:{},filter:{},show_filter:function(){$scope.filter.visibility_all(!1);$scope.filter.visible.srcode=!0;$scope.filter.clear();$scope.filter.show(function(confirm){if(confirm){$scope.liabilities.filter=angular.copy($scope.filter.options);$scope.liabilities.view()}})},view:function(){this.status.fetching=!0;$scope.fetch.data('fetch_liabilities',$scope.filter.get(),'liabilities.data').then(function(){$scope.liabilities.status.fetching=!1})}} $scope.logs={fetching:!1,listing:[],filter:{},show:function(item){this.fetch(item).then(function(result){$('#dlgLogs').modal({keyboard:!1,backdrop:!0})})},fetch:function(filter){this.fetching=!0;var deffered=$q.defer();var promise=query.get($scope.backend_url+'/fetch_id_logs',filter);promise.then(function(result){console.log(result);$scope.logs.listing=result;$scope.logs.fetching=!1;deffered.resolve(result)});return deffered.promise}} $scope.eq2={filter:{status:'',searchkey:'',category:{},subcategory:{},campus:{},office:{},office_units:{}},fetching:!1,results:[],fetch:function(){this.fetching=!0;var filter={status:this.filter.status,searchkey:this.filter.searchkey,category:util.get_object_value(this.filter.category,'category',''),subcategory:util.get_object_value(this.filter.subcategory,'subcategory',''),campus:util.get_object_value(this.filter.campus,'campus',''),office:util.get_object_value(this.filter.office,'office','')} var deffered=$q.defer();var promise=query.get($scope.backend_url+'/eq_listing',filter);promise.then(function(result){console.log(result);$scope.eq2.results=result;$scope.eq2.fetching=!1;deffered.resolve(result)});return deffered.promise},update_eqno:function(item){var data=angular.copy(item);swal({title:"Confirm",text:"Update Equipment No. ?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/update_eqno',data);promise.then(function(result){swal("Success","success");deffered.resolve(result)})})}} $scope.eq={listing:{status:['FUNCTIONAL','DEFECTIVE','CONDEMNED','RETURNED'],campuses:[],offices:[],office_units:[],category:[],subcategory:[]},filter:{status:'',searchkey:'',category:{},subcategory:{},campus:{},office:{},office_units:{}},fetching:!1,results:[],summary:[],fetch_summary:function(){this.summary_fetching=!0;var filter={} var deffered=$q.defer();var promise=query.get($scope.backend_url+'/eq_summary',filter);promise.then(function(result){console.log(result);$scope.eq.summary=result.listing;$scope.eq.summary_fetching=!1;deffered.resolve(result)});return deffered.promise},inventory:function(){this.fetching=!0;var filter={status:this.filter.status,searchkey:this.filter.searchkey,category:util.get_object_value(this.filter.category,'category',''),subcategory:util.get_object_value(this.filter.subcategory,'subcategory',''),campus:util.get_object_value(this.filter.campus,'campus',''),office:util.get_object_value(this.filter.office,'office','')} var deffered=$q.defer();var promise=query.get($scope.backend_url+'/eq_inventory',filter);promise.then(function(result){console.log(result);$scope.eq.results=result;$scope.eq.fetching=!1;deffered.resolve(result)});return deffered.promise},update_status:function(item){var data=angular.copy(item);console.log(data);swal({title:"Confirm",text:"Update equipment status?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/update_eq_status',data);promise.then(function(result){swal("Success","success");deffered.resolve(result)})})},open:function(){$('#dlgAddUpdateEQ').modal({keyboard:!1,backdrop:'static'})}} $scope.summary={acivity:[],id:[],fetching:!1} $scope.fetch={offices:function(filter){var deffered=$q.defer();var promise=query.get($scope.backend_url+'/fetch_offices',filter);promise.then(function(result){console.log(result);deffered.resolve(result)});return deffered.promise},service:function(service){var deffered=$q.defer();var promise=query.get($scope.backend_url+'/fetch_service',{service:service});promise.then(function(result){console.log(result);deffered.resolve(result)});return deffered.promise},service_param:function(service,param){var data=param;data.service=service;var deffered=$q.defer();var promise=query.get($scope.backend_url+'/fetch_service',data);promise.then(function(result){console.log(result);deffered.resolve(result)});return deffered.promise},student_id_summary:function(filter){$scope.summary.activity=[];var deffered=$q.defer();var promise=query.get($scope.backend_url+'/fetch_student_id_summary',filter);promise.then(function(result){console.log(result);$scope.summary.activity=result;deffered.resolve(result)});return deffered.promise},activity_summary:function(){$scope.summary.fetching=!0;$scope.summary.activity=[];var deffered=$q.defer();var promise=query.get($scope.backend_url+'/fetch_activity_summary',{});promise.then(function(result){console.log(result);$scope.summary.activity=result;$scope.summary.fetching=!1;deffered.resolve(result)});return deffered.promise},eq_category:function(out){var deffered=$q.defer();var promise=query.get($scope.backend_url+'/fetch_eq_category',{});promise.then(function(result){var data=$parse(out);data.assign($scope,result);out=result;deffered.resolve(result)});return deffered.promise},eq_subcategory:function(filter,out){var deffered=$q.defer();var promise=query.get($scope.backend_url+'/fetch_eq_subcategory',filter);promise.then(function(result){var data=$parse(out);data.assign($scope,result);out=result;deffered.resolve(result)});return deffered.promise},rss_news_feed:function(out){var deffered=$q.defer();var promise=query.get($scope.backend_url+'/fetch_rss_news_feed',{});promise.then(function(result){var data=$parse(out);data.assign($scope,result);out=result;deffered.resolve(result)});return deffered.promise},data:function(param,filter,out){var deffered=$q.defer();var promise=query.get($scope.backend_url+'/'+param,filter);promise.then(function(result){console.log(result);var data=$parse(out);data.assign($scope,result);out=result;deffered.resolve(result)});return deffered.promise},enroll_data:function(param,filter,out){var deffered=$q.defer();var promise=query.get($scope.enroll_backend_url+'/'+param,filter);promise.then(function(result){var data=$parse(out);data.assign($scope,result);out=result;deffered.resolve(result)});return deffered.promise},reg_data:function(param,filter,out){var deffered=$q.defer();var promise=query.get($scope.registrar_backend_url+'/'+param,filter);promise.then(function(result){console.log(result);var data=$parse(out);data.assign($scope,result);out=result;deffered.resolve(result)});return deffered.promise},reg_curriculum_data:function(param,filter,out){console.log(filter);var deffered=$q.defer();var promise=query.get($scope.backend_curriculum_url+'/'+param,filter);promise.then(function(result){console.log(result);var data=$parse(out);data.assign($scope,result);out=result;deffered.resolve(result)});return deffered.promise},defaults:function(out){var deffered=$q.defer();var promise=query.get($scope.backend_url+'/fetch_defaults',{});promise.then(function(result){console.log(result);var data=$parse(out);data.assign($scope,result);out=result;deffered.resolve(result)});return deffered.promise},} $scope.show_activity_summary=!1;$scope.downloads={fetching:!1,listing:[],fetch:function(){this.listing=[];var deffered=$q.defer();var promise=query.get($scope.backend_url+'/fetch_downloads',{});promise.then(function(result){console.log(result);$scope.downloads.listing=result;deffered.resolve(result)});return deffered.promise},} $scope.gate_access={fetching:!1,listing:[],fetch_links:function(){this.listing=[];var deffered=$q.defer();var promise=query.post($scope.backend_url+'/fetch_gate_access_links',{});promise.then(function(result){console.log(result);$scope.gate_access.listing=result;deffered.resolve(result)});return deffered.promise},} $scope.pmp_sig={data:{year:'',prepared_by_name:'',prepared_by_title:'',verified_by_name:'',verified_by_title:'',approved_by_name:'',approved_by_title:'',},fetch:()=>{var filter={year:$scope.pmp_sig.data.year} var deffered=$q.defer();var promise=query.post($scope.backend_url+'/fetch_pmp_sig',filter);promise.then(function(result){console.log(result);$scope.pmp_sig.data.prepared_by_name=result.prepared_by_name;$scope.pmp_sig.data.prepared_by_title=result.prepared_by_title;$scope.pmp_sig.data.verified_by_name=result.reviewed_by_name;$scope.pmp_sig.data.verified_by_title=result.reviewed_by_title;$scope.pmp_sig.data.approved_by_name=result.approved_by_name;$scope.pmp_sig.data.approved_by_title=result.approved_by_title;deffered.resolve(result)});return deffered.promise},update:()=>{swal({title:"Confirm",text:"Save changes?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){console.log($scope.pmp_sig.data);var data=angular.copy($scope.pmp_sig.data);var deffered=$q.defer();var promise=query.post($scope.backend_url+'/update_pmp_sig',data);promise.then(function(result){console.log(result);swal("Success","success");deffered.resolve(result)})})}} $scope.pmp={filter:{category:{},subcategory:{},campus:{},office:{},year:''},listing:{subcategory:[],eq:[]},fetching:!1,update:function(item){var data=angular.copy(item);data.year=this.filter.year;console.log(item);var deffered=$q.defer();var promise=query.post($scope.backend_url+'/update_pmp',data);promise.then(function(result){console.log(result);deffered.resolve(result)});return deffered.promise},fetch:function(){console.log(this.filter);this.fetching=!0;var filter={status:this.filter.status,year:this.filter.year,category:util.get_object_value(this.filter.category,'category',''),subcategory:util.get_object_value(this.filter.subcategory,'subcategory',''),campus:util.get_object_value(this.filter.campus,'campus',''),office:util.get_object_value(this.filter.office,'office','')} var deffered=$q.defer();var promise=query.post($scope.backend_url+'/fetch_pmp',filter);promise.then(function(result){console.log(result);$scope.pmp.listing.eq=result;$scope.pmp.fetching=!1;deffered.resolve(result)});return deffered.promise},} $q.all([auth.check_session(),fetch.campuses($scope,'eq.listing.campuses'),fetch.offices($scope,'eq.listing.offices'),$scope.fetch.defaults('defaults'),]).then(function(data){$scope.pmp_sig.data.year=new Date().getFullYear();$scope.pmp.filter.year=new Date().getFullYear();$scope.pmp.filter.campus=util.set_default_value($scope.eq.listing.campuses,'campus',$rootScope.login.details.campus);$scope.eq.filter.campus=util.set_default_value($scope.eq.listing.campuses,'campus',$rootScope.login.details.campus);$scope.eq2.filter.campus=util.set_default_value($scope.eq.listing.campuses,'campus',$rootScope.login.details.campus);console.log($scope.pmp_sig.data.year);$scope.fetch.offices({}).then(function(results){$scope.listing.offices=results});$scope.gate_access.fetch_links();$scope.fetch.service('acad/fetch/colleges').then(function(results){$scope.listing.colleges=results});$scope.fetch.eq_category('eq.listing.category');$scope.fetch.activity_summary();if($location.path()=="/dashboard"){} if($rootScope.login.details.access_level>=3){$scope.show_activity_summary=!0}else{$interval(function(){var d=new Date();var h=d.getHours();var m=d.getMinutes();$scope.show_activity_summary=!1;if(h>=16){if(h==16){if(m>=30){$scope.show_activity_summary=!0}}else{$scope.show_activity_summary=!0}} console.log($scope.show_activity_summary)},5000)}});var idleTime=0;$rootScope.idleTime=0;var idleInterval=setInterval(timerIncrement,60000*15);$(this).mousemove(function(e){$rootScope.idleTime=0;console.log("mouse move detected")});$(this).keypress(function(e){$rootScope.idleTime=0;console.log("keypress detected")});var myListener=function(){$rootScope.idleTime=0};document.addEventListener('mousemove',myListener,!1);$("#btnMenu, #btnmenu2 ").click(function(e){console.log("test menu");if($('#btnMenu i').hasClass("fa-chevron-left")){$('#btnMenu i').removeClass("far fa-chevron-left").addClass("far fa-bars");if($scope.show_menu){$('#left_menu').removeClass("col-2")}else{$('#left_menu').removeClass("col-1")} $('#content_menu').removeClass("col-10").addClass("col-12 mr-3")}else{$('#btnMenu i').removeClass("far fa-bars").addClass("far fa-chevron-left");if($scope.show_menu){$('#left_menu').addClass("col-2")}else{$('#left_menu').addClass("col-1")} $('#content_menu').removeClass("col-12 mr-3").addClass("col-10")} $(this).blur()});function timerIncrement(){if($location.path().toLowerCase()!='/auth'){$rootScope.idleTime++;if($rootScope.idleTime==10){console.log("check session..");auth.check_session()}else if($rootScope.idleTime==30){$rootScope.idleTime=0;swal("You have been logged out due to inactivity");console.log("logging out..");auth.logout("/auth")}}}});app.controller('StudentIDCapturingController',function($scope,$controller,$rootScope,$parse,$http,query,$location,$routeParams,$q,util,$window,auth){angular.extend(this,$controller('BaseController',{$scope:$scope}));$scope.Base64=Base64});app.controller('JSONViewerController',function($scope,$controller,$rootScope,$parse,$http,query,$interval,$location,$routeParams,$q,util,$window,auth,fetch){angular.extend(this,$controller('BaseController',{$scope:$scope}));if(document.getElementById('viewer')){document.getElementById('viewer').addEventListener('change',handleFileSelect,!1)} $scope.file_cat='student';$scope.json={};function handleFileSelect(evt){var files=evt.target.files;var reader=new FileReader();reader.onload=function(e){var data=e.target.result;$scope.json=JSON.parse(data);$scope.$apply()} reader.readAsBinaryString(files[0])} $scope.file={update:function(item){var data=angular.copy(item);data.jwt=$scope.files.selected.jwt;console.log(data);swal({title:"Confirm",text:"Update?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var promise=query.post($scope.backend_url+'/update_id_file',data);promise.then(function(result){swal("Ready","","success");$scope.files.result2=result})})}} $scope.files={filter:{access_code:''},fetching:!1,fetching2:!1,fectching3:!1,result:{},result2:[],result3:{},result4:{},result5:{},selected:{},path:'',view:function(item,path){this.selected=item;this.path=path;$('#dlgViewStudents').modal({keyboard:!1,backdrop:'static'});this.fetching2=!0;var deffered=$q.defer();var promise=query.post($scope.backend_url+'/view_id_file',{jwt:item.jwt});promise.then(function(result){$scope.files.result2=result;$scope.files.fetching2=!1;deffered.resolve(result)});return deffered.promise},move:function(item){swal({title:"Confirm",text:"Ready for download?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var data=angular.copy(item);var promise=query.post($scope.backend_url+'/move_id_file',data);promise.then(function(result){swal("Ready","","success");$scope.files.fetch()})})},move_back:function(item){swal({title:"Confirm",text:"Return to prepare?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var data=angular.copy(item);var promise=query.post($scope.backend_url+'/move_id_file',data);promise.then(function(result){swal("Ready","","success");$scope.files.fetch()})})},move_to_download:function(item){swal({title:"Confirm",text:"Return to download?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var data=angular.copy(item);var promise=query.post($scope.backend_url+'/move_id_file',data);promise.then(function(result){swal("Ready","","success");$scope.files.fetch()})})},move_to_done:function(item){swal({title:"Confirm",text:"Done?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var data={jwt:item.jwt2} var promise=query.post($scope.backend_url+'/move_id_file',data);promise.then(function(result){swal("Ready","","success");$scope.files.fetch()})})},fetch:function(){this.fetch_prepare();this.fetch_for_download();this.fetch_done()},fetch_done:function(){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/fetch_done_id_files',this.filter);promise.then(function(result){$scope.files.result5=result;deffered.resolve(result)});return deffered.promise},fetch_prepare:function(){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/fetch_prepare_id_files',this.filter);promise.then(function(result){$scope.files.result4=result;deffered.resolve(result)});return deffered.promise},fetch_for_download:function(){this.fetching=!0;var deffered=$q.defer();var promise=query.post($scope.backend_url+'/fetch_id_files',this.filter);promise.then(function(result){$scope.files.result=result;$scope.files.fetching=!1;deffered.resolve(result)});return deffered.promise},fetch_uploaded:function(){this.fetching3=!0;var deffered=$q.defer();var promise=query.post($scope.backend_url+'/fetch_uploaded_files',this.filter);promise.then(function(result){$scope.files.result3=result;$scope.files.fetching3=!1;deffered.resolve(result)});return deffered.promise},} $scope.upload={files:[],max_size:5,data:{description:''},show:function(){$('#dlgUpload').modal({keyboard:!1,backdrop:'static'})},go:function(){swal({title:"Confirm",text:"Upload files?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var data={application_id:$rootScope.login.details.application_id,files:$scope.upload.files} var promise=query.post($scope.backend_url+'/upload_files',data);promise.then(function(result){swal("Uploaded","","success");$scope.files.fetch_uploaded();$('#dlgUpload').modal('hide');$scope.upload.files=[]})})},remove:function(item){var index=$scope.upload.files.indexOf(item);$scope.upload.files.splice(index,1)},prepare:function(files){var f=document.getElementById('file1').files[0],r=new FileReader();r.onloadend=function(e){var size=document.getElementById('file1').files[0].size/1024/1024;if(Math.floor(size)>$scope.upload.max_size){swal("Error","Maximum of "+$scope.upload.max_size+" MB per file","error");return} var allowed_ext=["doc","docx","xls","xlsx","csv","txt","pdf","png","jpg","jpeg","json"];var ext=document.getElementById('file1').files[0].name.split('.').pop().toLowerCase();if(!allowed_ext.includes(ext)){swal("Error","File type is not allowed","error");return} $scope.upload.files.push({filename:document.getElementById('file1').files[0].name,type:document.getElementById('file1').files[0].name.split('.').pop().toLowerCase(),size:size,data:e.target.result,description:$scope.upload.data.description});$scope.upload.data.description="";$scope.$apply()} r.readAsDataURL(f)}} $q.all([auth.check_session()]).then(function(data){$scope.files.fetch();$scope.files.fetch_uploaded();console.log($rootScope.login.details);if($rootScope.login.details.is_guest){console.log("guest");$('#downloads-tab').tab('show')}})});app.controller('SysReqController',function($scope,$controller,$rootScope,$parse,$http,fetch2,query2,$interval,$location,md5,$routeParams,$q,util,$window,auth2,fetch){$scope.listing={systems:[],developers:[]} var winh=$(window).height();var winw=$(window).width();$scope.ipaddress=ipaddress;$scope.is_mobile=winw<770?true:!1;$(window).resize(function(){var winh=$(window).height();var winw=$(window).width();$scope.is_mobile=winw<770?true:!1;$scope.$apply()});function timerIncrement(){if($location.path().toLowerCase()!='/system-request-auth'){$rootScope.idleTime++;if($rootScope.idleTime==10){console.log("check session..");auth2.check_session()}else if($rootScope.idleTime==30){$rootScope.idleTime=0;swal("You have been logged out due to inactivity");console.log("logging out..");auth2.logout("/system-request-auth")}}} var idleTime=0;$rootScope.idleTime=0;var idleInterval=setInterval(timerIncrement,60000*15);$(this).mousemove(function(e){$rootScope.idleTime=0;console.log("mouse move detected")});$(this).keypress(function(e){$rootScope.idleTime=0;console.log("keypress detected")});var myListener=function(){$rootScope.idleTime=0};document.addEventListener('mousemove',myListener,!1);$scope.init_finished=function(){$('.dropdown-toggle').dropdown();$('.dropdown-menu').click(function(e){e.stopPropagation();e.preventDefault()})} var navListItems=$('div.setup-panel div a'),allWells=$('.setup-content'),allNextBtn=$('.nextBtn'),allPrevBtn=$('.prevBtn');allWells.hide();navListItems.click(function(e){e.preventDefault();var $target=$($(this).attr('href')),$item=$(this);if(!$item.hasClass('disabled')){navListItems.removeClass('btn-success').addClass('btn-light');$item.removeClass('btn-light');$item.removeClass('border-warning');$item.addClass('btn-success');allWells.hide();$target.show();$target.find('input:eq(0)').focus()}});allPrevBtn.click(function(){var curStep=$(this).closest(".setup-content"),curStepBtn=curStep.attr("id"),prevStepWizard=$('div.setup-panel div a[href="#'+curStepBtn+'"]').parent().prev().children("a");prevStepWizard.removeAttr('disabled').trigger('click')});allNextBtn.click(function(){var curStep=$(this).closest(".setup-content"),curStepBtn=curStep.attr("id"),nextStepWizard=$('div.setup-panel div a[href="#'+curStepBtn+'"]').parent().next().children("a"),curInputs=curStep.find("select, input,textarea"),isValid=!0;for(var i=0;i{if(data.role=="client"){$scope.req.upload.files=result}else if(data.role=="dev"){$scope.dev.upload.files=result}})} $scope.files={fetch_attachments:(refid)=>{var data={refid:refid} var deffered=$q.defer();var promise=query2.post('fetch/sysreq/attachments',data);promise.then((result)=>{deffered.resolve(result)});return deffered.promise},fetch_uploads:(refid)=>{var data={refid:refid} var deffered=$q.defer();var promise=query2.post('fetch/sysreq/uploads',data);promise.then((result)=>{deffered.resolve(result)});return deffered.promise}} $scope.comment={fetch:(refid)=>{var data={refid:refid} var deffered=$q.defer();var promise=query2.post('fetch/comments',data);promise.then((result)=>{deffered.resolve(result)});return deffered.promise},submit:(data)=>{console.log(data);var deffered=$q.defer();var promise=query2.post('post/comment',data);promise.then((result)=>{deffered.resolve(result)});return deffered.promise}} $scope.activity={fetch:(refid)=>{var data={refid:refid} var deffered=$q.defer();var promise=query2.post('fetch/activities',data);promise.then((result)=>{deffered.resolve(result)});return deffered.promise},submit:(data)=>{console.log(data);var deffered=$q.defer();var promise=query2.post('post/activity',data);promise.then((result)=>{deffered.resolve(result)});return deffered.promise}} $scope.progress={fetch:(refid)=>{var data={refid:refid} var deffered=$q.defer();var promise=query2.post('fetch/progress',data);promise.then((result)=>{deffered.resolve(result)});return deffered.promise},update:(data)=>{console.log(data);var deffered=$q.defer();var promise=query2.post('update/progress',data);promise.then((result)=>{deffered.resolve(result)});return deffered.promise}} $scope.new_system={fetch:(refid)=>{},update:(data)=>{swal({title:"Confirm",text:"Update?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},()=>{console.log(data);var deffered=$q.defer();var promise=query2.post('update/new_sysreq',data);promise.then((result)=>{console.log(result);swal("Success","success");deffered.resolve(result)})})}} $scope.req={listing:{for_approval:[],waiting:[],in_progress:[],done:[],accepted:[],paused:[],disapproved:[]},details:{data:{refid:'',}},data:{refid:'',system:{},office:{},type:"",urgency:"",desc:''},clear:()=>{$scope.req.data.type="CSI";$scope.req.data.urgency="HINP";$scope.req.data.desc="";$scope.req.data.remarks="";$scope.req.data.requested_by_position="";$scope.req.data.files=[];$scope.req.attachment.files=[];$scope.req.data.office={};$scope.req.data.new_sys_title=""},check:()=>{var isValid=!0;var desc=$scope.req.data.desc;var remarks=$scope.req.data.remarks;$("#req_data_desc").removeClass("is-invalid");if(desc.trim().length==0){isValid=!1;$("#req_data_desc").addClass("is-invalid")} var curStep=$("#sysreq_details"),curInputs=curStep.find("select, input,textarea") for(var i=0;i{$scope.upload.show()},go:()=>{var refid=$scope.req.details.data.refid;$scope.upload.go(refid,(result)=>{console.log(result)})},fetch:()=>{var refid=$scope.req.details.data.refid;$scope.files.fetch_uploads(refid).then((result)=>{$scope.req.upload.files=result;console.log(result)})}},progress:{data:0,fetch:()=>{var refid=$scope.req.details.data.refid;$scope.progress.fetch(refid).then((result)=>{console.log(result);$scope.req.progress.data=parseFloat(result.progress);console.log($scope.req.progress.data)})}},activity:{data:'',listing:[],clear:()=>{$scope.req.activity.data=""},fetch:()=>{var refid=$scope.req.details.data.refid;$scope.activity.fetch(refid).then((result)=>{$scope.req.activity.listing=result})},},comment:{data:'',listing:[],clear:()=>{$scope.req.comment.data=""},fetch:()=>{var refid=$scope.req.details.data.refid;$scope.comment.fetch(refid).then((result)=>{$scope.req.comment.listing=result})},submit:()=>{var data={comment:$scope.req.comment.data,refid:$scope.req.details.data.refid} $scope.comment.submit(data).then((result)=>{$scope.req.comment.fetch();$scope.req.comment.clear()})}},view:(refid)=>{$scope.req.fetch_details(refid).then((result)=>{console.log(result);$scope.req.details=result;$scope.req.comment.fetch();$scope.req.activity.fetch();$scope.req.progress.fetch();$scope.req.attachment.fetch();$scope.req.upload.fetch();$('#dlgSysReqDetails').modal({keyboard:!1,backdrop:!0})})},fetch_details:(refid)=>{var deffered=$q.defer();var promise=query2.post('fetch/sysreq/details',{refid:refid});promise.then((result)=>{deffered.resolve(result)});return deffered.promise},fetch:(status)=>{var deffered=$q.defer();var promise=query2.post('fetch/sysreq/listing',{status:status,role:'client'});promise.then((result)=>{console.log(result);deffered.resolve(result)});return deffered.promise},fetch_for_approval:()=>{$scope.req.fetch('FOR-APPROVAL').then((result)=>{$scope.req.listing.for_approval=result})},fetch_waiting:()=>{$scope.req.fetch('WAITING').then((result)=>{$scope.req.listing.waiting=result})},fetch_in_progress:()=>{$scope.req.fetch('IN-PROGRESS').then((result)=>{$scope.req.listing.in_progress=result})},fetch_done:()=>{$scope.req.fetch('DONE').then((result)=>{$scope.req.listing.done=result})},fetch_accepted:()=>{$scope.req.fetch('ACCEPTED').then((result)=>{$scope.req.listing.accepted=result})},fetch_paused:()=>{$scope.req.fetch('PAUSED').then((result)=>{$scope.req.listing.paused=result})},fetch_disapproved:()=>{$scope.req.fetch('DISAPPROVED').then((result)=>{$scope.req.listing.disapproved=result})},show_new:()=>{fetch2.profile().then((result)=>{$scope.req.data.requested_by_position=result.position;$scope.req.data.office=util.set_default_value($scope.listing.offices,'office_id',result.office_id);$('#dlgNewRequest').modal({keyboard:!1,backdrop:'static'})})},todo:{data:{todo:""},listing:[],add:()=>{var data=angular.copy($scope.req.todo.data) $scope.req.todo.listing.push(data);$scope.req.todo.data.todo=""},remove:(item)=>{var index=$scope.req.todo.listing.indexOf(item);$scope.req.todo.listing.splice(index,1)},},submit:()=>{if(!$scope.req.check()){return} swal({title:"Confirm",text:"Submit Request?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},()=>{console.log($scope.req.data);var data=angular.copy($scope.req.data);data.files=$scope.req.attachment.files;data.todo=$scope.req.todo.listing;var deffered=$q.defer();var promise=query2.post('submit/system_request',data);promise.then((result)=>{console.log(result);swal("Success","success");$scope.req.clear();$scope.req.fetch_for_approval();$('#dlgNewRequest').modal('hide');deffered.resolve(result)})})},attachment:{files:[],max_size:5,fetch:()=>{var refid=$scope.req.details.data.refid;$scope.files.fetch_attachments(refid).then((result)=>{$scope.req.attachment.files=result})},remove:(item)=>{var index=$scope.req.attachment.files.indexOf(item);$scope.req.attachment.files.splice(index,1)},prepare:(files)=>{var f=document.getElementById('attachment').files[0],r=new FileReader();r.onloadend=function(e){var size=document.getElementById('attachment').files[0].size/1024/1024;if(Math.floor(size)>$scope.req.attachment.max_size){swal("Error","Maximum of "+$scope.req.attachment.max_size+" MB per file","error");return} var allowed_ext=["pdf","png","jpg","jpeg"];var ext=document.getElementById('attachment').files[0].name.split('.').pop().toLowerCase();if(!allowed_ext.includes(ext)){swal("Error","File type is not allowed","error");return} $scope.req.attachment.files.push({'filename':document.getElementById('attachment').files[0].name,'type':document.getElementById('attachment').files[0].name.split('.').pop().toLowerCase(),'size':size,'data':e.target.result,});$scope.$apply()} r.readAsDataURL(f)}}} $scope.req.fetch_summary=()=>{var deffered=$q.defer();var promise=query2.post('fetch/sysreq/summary',{});promise.then((result)=>{console.log(result);deffered.resolve(result)});return deffered.promise} $scope.req.accept=(item)=>{swal({title:"Confirm",text:"Accept completion?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},()=>{var data=angular.copy(item);console.log(data);var deffered=$q.defer();var promise=query2.post('set/sysreq/accept',data);promise.then((result)=>{console.log(result);swal("Success","success");$scope.req.fetch_done();$scope.req.fetch_accepted();deffered.resolve(result)})})} $scope.upload={files:[],max_size:5,show:()=>{$('#dlgUpload').modal({keyboard:!1,backdrop:'static'})},go:(refid,callback)=>{swal({title:"Confirm",text:"Upload files?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var data={refid:refid,files:$scope.upload.files} var promise=query2.post('upload/sysreq/files',data);promise.then(function(result){swal("Uploaded","","success");$('#dlgUpload').modal('hide');$scope.upload.files=[];if(callback)callback(result);})})},remove:(item)=>{var index=$scope.upload.files.indexOf(item);$scope.upload.files.splice(index,1)},prepare:(files)=>{var f=document.getElementById('file1').files[0],r=new FileReader();r.onloadend=function(e){var size=document.getElementById('file1').files[0].size/1024/1024;if(Math.floor(size)>$scope.upload.max_size){swal("Error","Maximum of "+$scope.upload.max_size+" MB per file","error");return} var allowed_ext=["pdf","png","jpg","jpeg"];var ext=document.getElementById('file1').files[0].name.split('.').pop().toLowerCase();if(!allowed_ext.includes(ext)){swal("Error","File type is not allowed","error");return} $scope.upload.files.push({'filename':document.getElementById('file1').files[0].name,'type':document.getElementById('file1').files[0].name.split('.').pop().toLowerCase(),'size':size,'data':e.target.result,});$scope.$apply()} r.readAsDataURL(f)}} $scope.fetch={developers:()=>{var deffered=$q.defer();var promise=query2.post('fetch/developers',{});promise.then((result)=>{console.log(result);deffered.resolve(result)});return deffered.promise},systems:()=>{var deffered=$q.defer();var promise=query2.post('fetch/systems',{});promise.then((result)=>{console.log(result);deffered.resolve(result)});return deffered.promise},service:(service)=>{var deffered=$q.defer();var promise=query2.get('fetch/service',{service:service});promise.then((result)=>{console.log(result);deffered.resolve(result)});return deffered.promise},service_param:(service,param)=>{var data=param;data.service=service;var deffered=$q.defer();var promise=query2.get('fetch/service',data);promise.then((result)=>{console.log(result);deffered.resolve(result)});return deffered.promise},} $q.all([auth2.check_session()]).then(function(data){console.log(data[0]);$scope.fetch.service('oeams/offices').then((results)=>{$scope.listing.offices=results});$scope.fetch.systems().then((result)=>{$scope.listing.systems=result});$scope.fetch.developers().then((result)=>{$scope.listing.developers=result});var n_dev=0;var n_manage=0;var n_review=0 var roles=0;angular.forEach(data[0].roles,function(value,key){if(value.role=="DEVELOP"){n_dev++}else if(value.role=="APPROVE"){n_manage++} roles++});if(roles==0){$scope.req.clear();$scope.req.fetch_for_approval();$scope.req.fetch_waiting();$scope.req.fetch_in_progress();$scope.req.fetch_done();$scope.req.fetch_accepted();$scope.req.fetch_paused();$scope.req.fetch_disapproved()}})});app.controller('SysReqDevController',function($scope,$controller,$rootScope,$parse,$http,query2,$interval,$location,md5,$routeParams,$q,util,$window,auth2,fetch,sysreq){angular.extend(this,$controller('SysReqController',{$scope:$scope}));$scope.callback_fetch_waiting=function(data){$scope.dev.fetch_waiting()} $scope.callback_fetch_in_progress=function(data){$scope.dev.fetch_in_progress()} $scope.callback_fetch_all=function(data){$scope.dev.fetch_waiting();$scope.dev.fetch_done();$scope.dev.fetch_in_progress();$scope.dev.fetch_paused()} $scope.dev={listing:{waiting:[],in_progress:[],done:[],accepted:[],paused:[]},details:{},progress:{data:0,fetch:()=>{var refid=$scope.dev.details.data.refid;$scope.progress.fetch(refid).then((result)=>{$scope.dev.progress.data=result.progress})},update:()=>{var data={progress:$scope.dev.progress.data,refid:$scope.dev.details.data.refid} $scope.progress.update(data).then((result)=>{$ctrl.callback({data:result})})}},upload:{files:[],},activity:{data:{activity:'',date:new Date(),duration:0},listing:[],clear:()=>{$scope.dev.activity.data={activity:'',date:new Date(),duration:0} console.log($scope.dev.activity.data)},fetch:()=>{var refid=$scope.dev.details.data.refid;$scope.activity.fetch(refid).then((result)=>{$scope.dev.activity.listing=result})},submit:()=>{var data={activity:$scope.dev.activity.data.activity,date:moment($scope.dev.activity.data.date).format('L'),duration:$scope.dev.activity.data.duration,refid:$scope.dev.details.data.refid} $scope.activity.submit(data).then((result)=>{$scope.dev.activity.fetch();$scope.dev.activity.clear()})}},comment:{data:'',listing:[],clear:()=>{$scope.dev.comment.data=""},fetch:()=>{var refid=$scope.dev.details.data.refid;$scope.comment.fetch(refid).then((result)=>{$scope.dev.comment.listing=result})},submit:()=>{var data={comment:$scope.dev.comment.data,refid:$scope.dev.details.data.refid} $scope.comment.submit(data).then((result)=>{$scope.dev.comment.fetch();$scope.dev.comment.clear()})}},attachment:{files:[],max_size:5,fetch:()=>{var refid=$scope.dev.details.data.refid;$scope.files.fetch_attachments(refid).then((result)=>{$scope.dev.attachment.files=result})},},view:(refid)=>{$scope.dev.fetch_details(refid).then((result)=>{console.log(result);$scope.dev.details=result;$scope.dev.comment.fetch();$scope.dev.activity.fetch();$scope.dev.progress.fetch();$scope.dev.activity.clear();$scope.dev.attachment.fetch();$scope.files.fetch_uploads(refid).then((result)=>{$scope.dev.upload.files=result});$('#dlgSysReqDetails').modal({keyboard:!1,backdrop:!0})})},fetch_details:(refid)=>{var deffered=$q.defer();var promise=query2.post('fetch/sysreq/details',{refid:refid});promise.then((result)=>{deffered.resolve(result)});return deffered.promise},fetch:(status)=>{var deffered=$q.defer();var promise=query2.post('fetch/sysreq/listing',{status:status,role:'dev'});promise.then((result)=>{console.log(result);deffered.resolve(result)});return deffered.promise},fetch_waiting:()=>{$scope.dev.fetch('WAITING').then((result)=>{$scope.dev.listing.waiting=result;console.log("ssssss")})},fetch_in_progress:()=>{$scope.dev.fetch('IN-PROGRESS').then((result)=>{$scope.dev.listing.in_progress=result})},fetch_done:()=>{$scope.dev.fetch('DONE').then((result)=>{$scope.dev.listing.done=result})},fetch_accepted:()=>{$scope.dev.fetch('ACCEPTED').then((result)=>{$scope.dev.listing.accepted=result})},fetch_paused:()=>{$scope.dev.fetch('PAUSED').then((result)=>{$scope.dev.listing.paused=result})},start:(item)=>{swal({title:"Confirm",text:"Start Procesing Request?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},()=>{var data=angular.copy(item);var deffered=$q.defer();var promise=query2.post('start/sysreq',data);promise.then((result)=>{console.log(result);swal("Success","success");$scope.callback_fetch_all();deffered.resolve(result)})})},done:(item)=>{swal({title:"Confirm",text:"Set request as Done?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},()=>{var data=angular.copy(item);console.log(data);var deffered=$q.defer();var promise=query2.post('set/sysreq/done',data);promise.then((result)=>{console.log(result);swal("Success","success");$scope.dev.fetch_in_progress();$scope.dev.fetch_done();deffered.resolve(result)})})}} $q.all([]).then(function(data){$scope.dev.fetch_waiting();$scope.dev.fetch_in_progress();$scope.dev.fetch_done();$scope.dev.fetch_accepted();$scope.dev.fetch_paused()})});app.controller('SysReqManageController',function($scope,$controller,$rootScope,$parse,$http,query2,$interval,$location,md5,$routeParams,$q,util,$window,auth2,fetch,sysreq){angular.extend(this,$controller('SysReqController',{$scope:$scope}));$scope.manage={summary:[],listing:{for_approval:[],waiting:[],in_progress:[],approved:[],complete:[],accepted:[],disapproved:[],paused:[]},details:{},data:{system:{},office:{},type:{},urgency:{},desc:''},progress:{data:0,fetch:()=>{var refid=$scope.manage.details.data.refid;$scope.progress.fetch(refid).then((result)=>{$scope.manage.progress.data=result.progress})}},new_system:{data:{},fetch:()=>{$scope.manage.new_system.data.name=$scope.manage.details.data.approved_new_sys_title;$scope.manage.new_system.data.developer=util.set_default_value($scope.listing.developers,'emp_id',$scope.manage.details.data.dev_emp_id)},update:()=>{var data={name:$scope.manage.new_system.data.name,developer:$scope.manage.new_system.data.developer,refid:$scope.manage.details.data.refid} $scope.new_system.update(data)}},activity:{data:'',listing:[],clear:()=>{$scope.manage.activity.data=""},fetch:()=>{var refid=$scope.manage.details.data.refid;$scope.activity.fetch(refid).then((result)=>{$scope.manage.activity.listing=result})},},comment:{data:'',listing:[],clear:()=>{$scope.manage.comment.data=""},fetch:()=>{var refid=$scope.manage.details.data.refid;$scope.comment.fetch(refid).then((result)=>{$scope.manage.comment.listing=result})},submit:()=>{var data={comment:$scope.manage.comment.data,refid:$scope.manage.details.data.refid} $scope.comment.submit(data).then((result)=>{$scope.manage.comment.fetch();$scope.manage.comment.clear()})}},view:(refid)=>{$scope.manage.fetch_details(refid).then((result)=>{console.log(result);$scope.manage.details=result;$scope.manage.comment.fetch();$scope.manage.activity.fetch();$scope.manage.progress.fetch();$scope.manage.new_system.fetch();$('#dlgSysReqDetails').modal({keyboard:!1,backdrop:!0})})},fetch_details:(refid)=>{var deffered=$q.defer();var promise=query2.post('fetch/sysreq/details',{refid:refid});promise.then((result)=>{deffered.resolve(result)});return deffered.promise},fetch:(status)=>{var deffered=$q.defer();var promise=query2.post('fetch/sysreq/listing',{status:status});promise.then((result)=>{console.log(result);deffered.resolve(result)});return deffered.promise},fetch_for_approval:()=>{$scope.manage.fetch('FOR-APPROVAL').then((result)=>{$scope.manage.listing.for_approval=result})},fetch_disapproved:()=>{$scope.manage.fetch('DISAPPROVED').then((result)=>{$scope.manage.listing.disapproved=result})},fetch_waiting:()=>{$scope.manage.fetch('WAITING').then((result)=>{$scope.manage.listing.waiting=result})},fetch_in_progress:()=>{$scope.manage.fetch('IN-PROGRESS').then((result)=>{$scope.manage.listing.in_progress=result})},fetch_approved:()=>{$scope.manage.fetch('APPROVED').then((result)=>{$scope.manage.listing.approved=result})},fetch_completed:()=>{$scope.manage.fetch('DONE').then((result)=>{$scope.manage.listing.completed=result})},fetch_accepted:()=>{$scope.manage.fetch('ACCEPTED').then((result)=>{$scope.manage.listing.accepted=result})},fetch_paused:()=>{$scope.manage.fetch('PAUSED').then((result)=>{$scope.manage.listing.paused=result})},fetch_summary:()=>{sysreq.summary('manage').then((result)=>{$scope.manage.summary=result})},disapprove:function(item){swal({title:"Disapprove Remarks?",text:`
`,html:!0,inputPlaceholder:'Remarks here...',showCancelButton:!0,closeOnConfirm:!1,confirmButtonColor:"#5cb85c",confirmButtonText:'Yes',closeOnConfirm:!1,},function(inputValue){var remarks=document.getElementById('remarks').value;var data={refid:item.refid,remarks:remarks} swal({title:"Confirm",text:"Confirm Disapprove",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){console.log(remarks);var deffered=$q.defer();var promise=query2.post('disapprove/sysreq',data);promise.then(function(result){deffered.resolve(result);swal("Success","Success","success");$scope.manage.fetch_for_approval();$scope.manage.fetch_disapproved()})})})},approve:(item)=>{swal({title:"Confirm",text:"Approve Request?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},()=>{console.log($scope.manage.data);var data=angular.copy(item);console.log(data);var deffered=$q.defer();var promise=query2.post('approve/sysreq',data);promise.then((result)=>{console.log(result);swal("Success","success");$scope.manage.fetch_for_approval();$scope.manage.fetch_waiting();deffered.resolve(result)})})}} $q.all([]).then(function(data){console.log(data[0]);$scope.manage.fetch_for_approval();$scope.manage.fetch_waiting();$scope.manage.fetch_in_progress();$scope.manage.fetch_completed();$scope.manage.fetch_accepted();$scope.manage.fetch_summary();$scope.manage.fetch_disapproved();$scope.manage.fetch_paused()})});app.controller('TechController',function($scope,$controller,$rootScope,$parse,$http,query,$interval,$location,md5,$routeParams,$q,util,$window,auth3,fetch){$scope.backend_url="backend/public/index.php/data";var path=$location.path();var winh=$(window).height();var winw=$(window).width();$scope.ipaddress=ipaddress;$scope.is_mobile=winw<770?true:!1;$(window).resize(function(){var winh=$(window).height();var winw=$(window).width();$scope.is_mobile=winw<770?true:!1;$scope.$apply()});$scope.pass_attr="password";$scope.show_password=function(){$scope.pass_attr=$scope.pass_attr=="password"?"text":"password"} $scope.check_console=function(){var ret=!1;if(window.console){ret=!0;console.log('****************************************');console.log('* (c)Batangas State University *');console.log('****************************************');console.log('Local IP:'+$rootScope.system.localip);console.log('Public IP :'+ipaddress);console.log('Browser Information:');console.log(navigator)}} $scope.gRecaptchaResponse="";$rootScope.login.credentials.username="";$rootScope.login.credentials.password="";$scope.authenticate=()=>{$scope.is_processing=!0;var credentials={username:$rootScope.login.credentials.username,password:md5.createHash($rootScope.login.credentials.password)} var promise=auth3.authenticate(credentials,"/tech/dashboard");promise.then(function(result){console.log(result);$scope.is_processing=!1;if(!result.success){swal("Error","Authentication Failed","error");$rootScope.login.credentials.username="";$rootScope.login.credentials.password=""}else{}}).catch(function(response){console.error('error',response.status,response.data)}).finally(function(){})} $scope.pending_sr={listing:[],filter:{},show:()=>{$('#dlgpending_sr').modal({keyboard:!1,backdrop:'static'});$scope.pending_sr.fetch()},fetch:()=>{var deffered=$q.defer();var promise=query.post($scope.backend_url+'/fetch/pending_sr',$scope.pending_sr.filter);promise.then(function(result){$scope.pending_sr.listing=result;deffered.resolve(result)});return deffered.promise},serve:(item)=>{var data=angular.copy(item);swal({title:"Confirm",text:"Serve ["+data.ticket+"]",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/serve/pending_sr',data);promise.then(function(result){swal('Done');$scope.pending_sr.fetch()})})}} $scope.serving_sr_all={listing:[],filter:{},show:()=>{$('#dlgserving_sr_all').modal({keyboard:!1,backdrop:'static'});$scope.serving_sr_all.fetch()},fetch:()=>{var deffered=$q.defer();var promise=query.post($scope.backend_url+'/fetch/serving_sr/all',$scope.serving_sr_all.filter);promise.then(function(result){$scope.serving_sr_all.listing=result;deffered.resolve(result)});return deffered.promise},} $scope.serving_sr={listing:[],filter:{},show:()=>{$('#dlgserving_sr').modal({keyboard:!1,backdrop:'static'});$scope.serving_sr.fetch()},fetch:()=>{var deffered=$q.defer();var promise=query.post($scope.backend_url+'/fetch/serving_sr',$scope.serving_sr.filter);promise.then(function(result){$scope.serving_sr.listing=result;deffered.resolve(result)});return deffered.promise},unserve:(item)=>{var data=angular.copy(item);swal({title:"Confirm",text:"Un-Serve ["+data.ticket+"]",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/unserve/serving_sr',data);promise.then(function(result){swal('Done');$scope.pending_sr.fetch();$scope.serving_sr.fetch()})})}} $scope.served_sr={listing:[],filter:{},show:()=>{$('#dlgserved_sr').modal({keyboard:!1,backdrop:'static'});$scope.served_sr.fetch()},fetch:()=>{var deffered=$q.defer();var promise=query.post($scope.backend_url+'/fetch/served_sr',$scope.served_sr.filter);promise.then(function(result){$scope.served_sr.listing=result;deffered.resolve(result)});return deffered.promise},} $scope.served_sr_all={listing:[],filter:{},show:()=>{$('#dlgserved_sr_all').modal({keyboard:!1,backdrop:'static'});$scope.served_sr_all.fetch()},fetch:()=>{var deffered=$q.defer();var promise=query.post($scope.backend_url+'/fetch/served_sr/all',$scope.served_sr_all.filter);promise.then(function(result){$scope.served_sr_all.listing=result;deffered.resolve(result)});return deffered.promise},} $scope.downloads={show:()=>{$('#dlgdownloads').modal({keyboard:!1,backdrop:'static'})}} $scope.tools={show:()=>{$('#dlgtools').modal({keyboard:!1,backdrop:'static'})}} $scope.pmp={listing:{year:[2025,2024,2023],quarter:[1,2,3,4]},data:{office:{},year:'',quarter:''},files:[],filter:{office:{}},uploaded_files:[],show:()=>{$('#dlgpmp').modal({keyboard:!1,backdrop:'static'})},show_upload:()=>{$('#dlgpmp_upload').modal({keyboard:!1,backdrop:'static'})},check:()=>{var err=0;if($scope.pmp.data.office==undefined){err++} if($scope.pmp.data.year.length==0){err++} if($scope.pmp.data.quarter.length==0){err++} return err==0?true:!1},check_upload:()=>{var err=0;if($scope.pmp.files.length==0){err++} return err==0?true:!1},upload:()=>{var data=angular.copy($scope.pmp.files);swal({title:"Confirm",text:"Upload?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/upload/pmp',data);promise.then(function(result){swal('Done');$scope.pmp.files=[];$scope.fetch.uploaded_pmp().then(function(result){$scope.pmp.uploaded_files=result})})})},remove:(item)=>{var data=angular.copy(item);swal({title:"Confirm",text:"Remove?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var deffered=$q.defer();var promise=query.post($scope.backend_url+'/remove/pmp',data);promise.then(function(result){swal('Done');$scope.fetch.uploaded_pmp().then(function(result){$scope.pmp.uploaded_files=result})})})},view_uploaded_files:()=>{let params=angular.copy($scope.pmp.filter);$scope.fetch.uploaded_pmp(params).then(function(result){$scope.pmp.uploaded_files=result})}} if(path=='/tech/dashboard'||path=='/tech/dashboard2'){var uploader_id="upload1";document.getElementById(uploader_id).addEventListener('change',handleFileSelect,!1);function handleFileSelect(evt){var file=document.getElementById(uploader_id).files[0];var reader=new FileReader();reader.onloadend=function(e){var size=document.getElementById(uploader_id).files[0].size/1024/1024;let file_info={filename:document.getElementById(uploader_id).files[0].name,type:document.getElementById(uploader_id).files[0].name.split('.').pop().toLowerCase(),size:size,data:e.target.result} console.log(file_info);$scope.pmp.files.push({office:$scope.pmp.data.office,year:$scope.pmp.data.year,quarter:$scope.pmp.data.quarter,filename:document.getElementById(uploader_id).files[0].name,type:document.getElementById(uploader_id).files[0].name.split('.').pop().toLowerCase(),size:size,file:e.target.result,new_filename:'PM_FY'+$scope.pmp.data.year+'_Q'+$scope.pmp.data.quarter+'_'+$scope.pmp.data.office.office+'.'+document.getElementById(uploader_id).files[0].name.split('.').pop().toLowerCase()});$scope.$apply() console.log($scope.pmp.files)} reader.readAsDataURL(file)}} $scope.fetch={offices:function(filter){var deffered=$q.defer();var promise=query.get($scope.backend_url+'/fetch_offices',filter);promise.then(function(result){console.log(result);deffered.resolve(result)});return deffered.promise},uploaded_pmp:(params)=>{var deffered=$q.defer();var promise=query.post($scope.backend_url+'/fetch/uploaded-pmp',params);promise.then(function(result){console.log(result);deffered.resolve(result)});return deffered.promise}} $scope.sr_status_summary={listing:[],data:{pending:0,serving:0,serving_all:0,served:0,served_all:0},fetching:!1,fetch:()=>{var prev=angular.copy($scope.sr_status_summary.data);$scope.sr_status_summary.fetching=!0;var deffered=$q.defer();var promise=query.post($scope.backend_url+'/fetch/summary/sr_status',{});promise.then(function(result){$scope.sr_status_summary.listing=result;angular.forEach($scope.sr_status_summary.listing,function(value,key){if(value.cat=="PENDING"){$scope.sr_status_summary.data.pending=value.total}else if(value.cat=="SERVING"){$scope.sr_status_summary.data.serving=value.total}else if(value.cat=="SERVING_ALL"){$scope.sr_status_summary.data.serving_all=value.total}else if(value.cat=="SERVED"){$scope.sr_status_summary.data.served=value.total}else if(value.cat=="SERVED_ALL"){$scope.sr_status_summary.data.served_all=value.total}});if($scope.sr_status_summary.data.pending>prev.pending&&$scope.sr_status_summary.data.pending>0){var audio=new Audio('https://dione.batstate-u.edu.ph/downloads/ict/sounds/voice_new_service_req.mp3');audio.play()} $scope.sr_status_summary.fetching=!1;deffered.resolve(result)});return deffered.promise},} console.log("logged");$q.all([auth3.check_session(),]).then(function(data){if($rootScope.login.status.logged){$interval(function(){$scope.sr_status_summary.fetch()},2000)} $scope.fetch.offices().then(function(result){$scope.pmp.listing.office=result});$scope.pmp.view_uploaded_files()})});app.controller('SRController',function($scope,$controller,$rootScope,$parse,$http,query3,$interval,$location,md5,$routeParams,$q,util,$window,auth2,fetch,jwt){var empty_signature="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjgAAADcCAQAAADXNhPAAAACIklEQVR42u3UIQEAAAzDsM+/6UsYG0okFDQHMBIJAMMBDAfAcADDATAcwHAAwwEwHMBwAAwHMBzAcAAMBzAcAMMBDAcwHADDAQwHwHAAwwEMB8BwAMMBMBzAcADDATAcwHAADAcwHADDAQwHMBwAwwEMB8BwAMMBDAfAcADDATAcwHAAwwEwHMBwAAwHMBzAcAAMBzAcAMMBDAcwHADDAQwHwHAAwwEwHMBwAMMBMBzAcAAMBzAcwHAADAcwHADDAQwHMBwAwwEMB8BwAMMBDAfAcADDATAcwHAAwwEwHMBwAAwHMBzAcCQADAcwHADDAQwHwHAAwwEMB8BwAMMBMBzAcADDATAcwHAADAcwHMBwAAwHMBwAwwEMBzAcAMMBDAfAcADDAQwHwHAAwwEwHMBwAAwHMBzAcAAMBzAcAMMBDAcwHADDAQwHwHAAwwEMB8BwAMMBMBzAcADDATAcwHAADAcwHMBwAAwHMBwAwwEMB8BwAMMBDAfAcADDATAcwHAAwwEwHMBwAAwHMBzAcAAMBzAcAMMBDAcwHADDAQwHwHAAwwEMB8BwAMMBMBzAcADDkQAwHMBwAAwHMBwAwwEMBzAcAMMBDAfAcADDAQwHwHAAwwEwHMBwAMMBMBzAcAAMBzAcwHAADAcwHADDAQwHMBwAwwEMB8BwAMMBMBzAcADDATAcwHAADAcwHMBwAAwHMBwAwwEMBzAcAMMBDAegeayZAN3dLgwnAAAAAElFTkSuQmCC";$scope.eval=[{code:'eval_courtesy',desc:'Courtesy and professionalism of the attending ICT staff',rating:''},{code:'eval_time',desc:'Response time to your initial call of service',rating:''},{code:'eval_quality',desc:'Quality of service provided to resolve the problem',rating:''},{code:'eval_overall',desc:'Overall satisfication with the assistance/ service provided',rating:''},],$scope.srf={data:{},fetch:(params)=>{var deffered=$q.defer();var promise=query3.post('data/fetch/srf',params);promise.then(function(result){$scope.srf.data=result;$scope.srf.data.eval=$scope.eval;angular.forEach($scope.srf.data.eval,function(v,k){if(v.code=='eval_courtesy'){v.rating=$scope.srf.data.eval_courtesy} if(v.code=='eval_quality'){v.rating=$scope.srf.data.eval_quality} if(v.code=='eval_time'){v.rating=$scope.srf.data.eval_time} if(v.code=='eval_overall'){v.rating=$scope.srf.data.eval_overall}});console.log(result);deffered.resolve(result)});return deffered.promise},submit:()=>{var signature=$scope.accept();if(signature.dataUrl==undefined||signature.dataUrl==empty_signature||signature.dataUrl.length==0){swal("Error","No signature","error");return} $scope.srf.data.confirmed_signature=signature.dataUrl;angular.forEach($scope.srf.data.eval,function(v,k){if(v.code=='eval_courtesy'){$scope.srf.data.eval_courtesy=v.rating} if(v.code=='eval_quality'){$scope.srf.data.eval_quality=v.rating} if(v.code=='eval_time'){$scope.srf.data.eval_time=v.rating} if(v.code=='eval_overall'){$scope.srf.data.eval_overall=v.rating}});var data=angular.copy($scope.srf.data);swal({title:"Confirm",text:"Agree",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){var deffered=$q.defer();var promise=query3.post('data/confirm/srf',data);promise.then(function(result){console.log(result);swal("Done")})})}} if($routeParams.jwt!=undefined){jwt.decode($routeParams.jwt).then(function(result){console.log(result);$scope.srf.fetch(result)})}})