var app=angular.module('app',['ngRoute','chart.js','ui.tinymce','angular-md5','signature','fayzaan.gRecaptcha.v3']);app.run(function($rootScope,$location,$routeParams,auth,$window,$q,query,toast,$templateCache){$rootScope.login={details:{},status:{logged:!1},credentials:{username:'',password:''}} window.addEventListener("beforeunload",function(e){e.preventDefault();e.returnValue=''});$templateCache.removeAll();$rootScope.page={title:"BatStateUCAT Applicant's Portal"} angular.element(document).ready(function(){const loader=document.getElementById('page-loader');loader.classList.add('fade-out');setTimeout(()=>{loader.style.display='none'},400)});$rootScope.isOffline=!navigator.onLine;window.addEventListener('offline',function(){$rootScope.$apply(function(){$rootScope.isOffline=!0;$rootScope.offlineMessage="Connection lost. You are now offline.";toast.warning($rootScope.offlineMessage)})});window.addEventListener('online',function(){$rootScope.$apply(function(){$rootScope.isOffline=!1;toast.success("You are now online")})});$rootScope.$on('$locationChangeStart',function(event){var path=$location.path();var s=path.substring(0,path.lastIndexOf('/'));if($location.path()=="/logout"){auth.logout("/auth")}});$rootScope.$on('$routeChangeSuccess',function(){if($location.path()=="/logout"){auth.logout("/auth")}});$q.all([]).then(function(data){});$rootScope.$on('$routeChangeError',function(){})});app.config(function($compileProvider,$routeProvider,$httpProvider,$locationProvider,$sceProvider){$routeProvider.when('/',{templateUrl:'pages/page.dashboard.php',controller:'DashboardController',resolve:{check:function(auth,guard,toast){auth.check_session().then((result)=>{guard.check_if_idle()})},admissionCheck:(admission,$rootScope,$timeout,$location)=>{var defaultsData;return admission.fetch.defaults().then(function(data){defaultsData=data;if(!data.enable_admission_result){} return admission.fetch.result()}).then(function(result){return{defaults:defaultsData,result:result}})},title:function(){document.title="BatStateUCAT Applicant's Portal"}}}).when('/dashboard',{templateUrl:'pages/page.dashboard.php',controller:'DashboardController',resolve:{check:function(auth,guard,toast){auth.check_session().then((result)=>{guard.check_if_idle()})},admissionCheck:(admission,$rootScope,$timeout,$location)=>{var defaultsData;return admission.fetch.defaults().then(function(data){defaultsData=data;if(!data.enable_admission_result){return{}} return admission.fetch.result()}).then(function(result){return{defaults:defaultsData,result:result}})},title:function(){document.title="BatStateUCAT Applicant's Portal - Dashboard"}}}).when('/dashboard/submitted-documents',{templateUrl:'pages/page.submitted-documents.php',controller:'DashboardController',resolve:{check:function(auth,guard,toast){auth.check_session().then((result)=>{guard.check_if_idle()})},admissionCheck:(admission,$rootScope,$timeout,$location)=>{var defaultsData;return admission.fetch.defaults().then(function(data){defaultsData=data;if(!data.enable_admission_result){return{}} return admission.fetch.result()}).then(function(result){return{defaults:defaultsData,result:result}})},title:function(){document.title="BatStateUCAT Applicant's Portal - Dashboard"}}}).when('/dashboard/admission-result',{templateUrl:'pages/page.admission-result.php',controller:'DashboardController',resolve:{check:function(auth,guard,toast){auth.check_session().then((result)=>{guard.check_if_idle()})},admissionCheck:(admission,$rootScope,$timeout,$location)=>{var defaultsData;return admission.fetch.defaults().then(function(data){defaultsData=data;if(!data.enable_admission_result){Swal.fire("Not allowed","","error").then(function(){$timeout(function(){$location.path('/dashboard')})})} return admission.fetch.result()}).then(function(result){if(!result.qualifier){} return{defaults:defaultsData,result:result}})},title:function(){document.title="BatStateUCAT Applicant's Portal - Admission Result"}}}).when('/dashboard/admission-appeal',{templateUrl:(params)=>{var url=window.location.href;return'pages/page.admission-appeal_v1_2.php'},controller:'DashboardController',resolve:{check:function(auth,guard,toast){return auth.check_session().then((result)=>{guard.check_if_idle()})},admissionCheck:(admission,$rootScope,$timeout,$location)=>{var defaultsData;return admission.fetch.defaults().then(function(data){defaultsData=data;if(!data.enable_admission_result){Swal.fire("Not allowed","","error").then(function(){$timeout(function(){$location.path('/dashboard')})});return $q.reject('not_allowed')} return admission.fetch.result().then((data)=>{if(!data.allow_appeal){Swal.fire("Not allowed","","error").then(function(){$timeout(function(){$location.path('/dashboard')})})} return data})}).then(function(result){if(!result.qualifier){} return{defaults:defaultsData,result:result}})},title:function(){document.title="BatStateUCAT Applicant's Portal - Admission Appeal"}}}).when('/dashboard/enrollment-procedure',{templateUrl:'pages/page.enrollment-procedure.php',controller:'DashboardController',resolve:{check:function(auth,guard,toast){auth.check_session().then((result)=>{guard.check_if_idle()})},admissionCheck:(admission,$rootScope,$timeout,$location)=>{var defaultsData;return admission.fetch.defaults().then(function(data){defaultsData=data;if(!data.enable_admission_result){Swal.fire("Not allowed","","error").then(function(){$timeout(function(){$location.path('/dashboard')})});return $q.reject('not_allowed')} return admission.fetch.result()}).then(function(result){if(!result.qualifier){Swal.fire("Only admission qualifier is allowed","","error").then(function(){$timeout(function(){$location.path('/dashboard')})});return $q.reject('not_qualifier')} return{defaults:defaultsData,result:result}})},title:function(){document.title="BatStateUCAT Applicant's Portal - Pre-registration"}}}).when('/dashboard/pre-registration',{templateUrl:'pages/page.pre-registration.php',controller:'DashboardController',resolve:{check:function(auth,guard,toast){return auth.check_session().then((result)=>{guard.check_if_idle()})},admissionCheck:(admission,$rootScope,$timeout,$location)=>{var defaultsData;return admission.fetch.defaults().then(function(data){defaultsData=data;if(!data.enable_admission_result){Swal.fire("Not allowed","","error").then(function(){$timeout(function(){$location.path('/dashboard')})});return $q.reject('not_allowed')} return admission.fetch.result()}).then(function(result){if(!result.qualifier){Swal.fire("Only admission qualifier is allowed","","error").then(function(){$timeout(function(){$location.path('/dashboard')})});return $q.reject('not_qualifier')} return{defaults:defaultsData,result:result}})},title:function(){document.title="BatStateUCAT Applicant's Portal - Pre-registration"}}}).when('/dashboard/student-portal-account-activation',{templateUrl:'pages/page.student-portal-account-activation.php',controller:'AccountController',resolve:{check:function(auth,guard,toast){auth.check_session().then((result)=>{guard.check_if_idle()})},admissionCheck:(admission,$rootScope,$timeout,$location)=>{var defaultsData;return admission.fetch.defaults().then(function(data){defaultsData=data;if(!data.enable_admission_result){Swal.fire("Not allowed","","error").then(function(){$timeout(function(){$location.path('/dashboard')})});return $q.reject('not_allowed')} return admission.fetch.result()}).then(function(result){if(!result.qualifier){Swal.fire("Only admission qualifier is allowed","","error").then(function(){$timeout(function(){$location.path('/dashboard')})});return $q.reject('not_qualifier')} return{defaults:defaultsData,result:result}})},title:function(){document.title="BatStateUCAT Applicant's Portal - Student Portal Account Activation"}}}).when('/dashboard/medical-request-slip',{templateUrl:'pages/page.medical-request-slip.php',controller:'DashboardController',resolve:{check:function(auth,guard,toast){auth.check_session().then((result)=>{guard.check_if_idle()})},admissionCheck:(admission,$rootScope,$timeout,$location)=>{var defaultsData;return admission.fetch.defaults().then(function(data){defaultsData=data;if(!data.enable_admission_result){Swal.fire("Not allowed","","error").then(function(){$timeout(function(){$location.path('/dashboard')})});return $q.reject('not_allowed')} return admission.fetch.result()}).then(function(result){if(!result.qualifier){Swal.fire("Only admission qualifier is allowed","","error").then(function(){$timeout(function(){$location.path('/dashboard')})});return $q.reject('not_qualifier')} return{defaults:defaultsData,result:result}})},title:function(){document.title="BatStateUCAT Applicant's Portal - Pre-registration"}}}).when('/dashboard/appointment',{templateUrl:'pages/page.appointment.php',controller:'DashboardController',resolve:{check:(auth,guard,toast)=>{auth.check_session().then((result)=>{guard.check_if_idle()})},admissionCheck:(admission,$rootScope,$timeout,$location,$q)=>{var defaultsData;return admission.fetch.defaults().then(function(data){defaultsData=data;if(!data.enable_admission_result){Swal.fire("Not allowed","","error").then(function(){$timeout(function(){$location.path('/dashboard')})});return $q.reject('not_allowed')} return admission.fetch.result()}).then(function(result){if(!result.qualifier){Swal.fire("Only admission qualifier is allowed","","error").then(function(){$timeout(function(){$location.path('/dashboard')})});return $q.reject('not_qualifier')} return{defaults:defaultsData,result:result}})},title:function(){document.title="BatStateUCAT Applicant's Portal - Pre-registration"}}}).when('/dashboard/account',{templateUrl:'pages/page.dashboard.account.php',controller:'AccountController',resolve:{check:function(auth,guard,auth,toast){auth.check_session().then((result)=>{guard.check_if_idle()})},admissionCheck:(admission,$rootScope,$timeout,$location)=>{var defaultsData;return admission.fetch.defaults().then(function(data){defaultsData=data;if(!data.enable_admission_result){return{}} return admission.fetch.result()}).then(function(result){if(!result.qualifier){} return{defaults:defaultsData,result:result}})},title:function(){document.title="BatStateUCAT Applicant's Portal - Account"}}}).when('/auth',{templateUrl:'pages/page.auth.php',controller:'BaseController',resolve:{title:function(){document.title="BatStateUCAT Applicant's Portal - Login"}}}).when('/forgot-pin',{templateUrl:'pages/page.forgot-pin.php',controller:'BaseController',resolve:{title:function(){document.title="BatStateUCAT Applicant's Portal - Forgot PIN"}}}).when('/logout',{templateUrl:'pages/page.auth.php',controller:'BaseController'}).when('/dashboard/help',{templateUrl:'pages/page.help.php',controller:'DashboardController',resolve:{check:function(auth,guard){auth.check_session().then((result)=>{guard.check_if_idle()})},admissionCheck:(admission,$rootScope,$timeout,$location)=>{var defaultsData;return admission.fetch.defaults().then(function(data){defaultsData=data;if(!data.enable_admission_result){return{}} return admission.fetch.result()}).then(function(result){return{defaults:defaultsData,result:result}})},title:function(){document.title="BatStateUCAT Applicant's Portal - Help"}}}).when('/db-server-down',{templateUrl:'pages/page.db-down.php'}).otherwise({templateUrl:'pages/page.404.php'});$httpProvider.defaults.headers.common['x-api-key']='eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHAiOiJxdWV1aW5nLWhzIiwidG9rZW4iOiIyOTY3MTczODAxODNkZmRlN2M3MTgwMWM5MmM4NGIxMyJ9.9_kZNAwMA2rPqeGFtT4INQqm5zf7ci_KsjB9zBSxXIg';$httpProvider.defaults.headers.common['x-csrf-token']=csrf_token;$httpProvider.defaults.headers.common['x-requested-from']=window.location.href;$httpProvider.defaults.headers.common['x-app-source']='batstateucat_applicants_portal_v2';$httpProvider.interceptors.push('httpInterceptor');$locationProvider.html5Mode({enabled:!0,requireBase:!0});$locationProvider.hashPrefix('');$compileProvider.debugInfoEnabled(!1);$sceProvider.enabled(!0)});app.factory('student_portal',function($q,$http,query,$rootScope,$timeout,$location,jwt){let endpoint='backend/public/index.php/auth/';return{activate:(params)=>{var deffered=$q.defer();jwt.encode(params).then((result)=>{console.log(result);$http.defaults.headers.common.Authorization="Bearer "+result;$http.post(endpoint+'activate/student-portal-account',{}).then((result)=>{deffered.resolve(result.data)})});return deffered.promise},check:(params)=>{var deffered=$q.defer();jwt.encode(params).then((result)=>{console.log(result);$http.defaults.headers.common.Authorization="Bearer "+result;$http.post(endpoint+'check/student-portal-account-activation',{}).then((result)=>{deffered.resolve(result.data)})});return deffered.promise}}});app.factory('appointment',function($q,query,$rootScope,$timeout,$location){return{fetch:{pre_enrollment:function(params){var deffered=$q.defer();var promise=query.post('data/appointment/list-event/pre-enrollment',params);promise.then(function(result){deffered.resolve(result.data)});return deffered.promise},}}});app.factory('admission',function($q,query,$rootScope,$timeout,$location){return{fetch:{defaults:function(params){var deffered=$q.defer();var promise=query.post('data/fetch/admission-defaults',params);promise.then(function(result){deffered.resolve(result.data)});return deffered.promise},result:function(params){var deffered=$q.defer();var promise=query.post('data/fetch/admission-result',params);promise.then(function(result){deffered.resolve(result.data)});return deffered.promise},admission_policy:function(params){var deffered=$q.defer();var promise=query.post('data/fetch/admission-policy',params);promise.then(function(result){deffered.resolve(result.data)});return deffered.promise},application:function(params){var deffered=$q.defer();var promise=query.post('data/fetch/application',params);promise.then(function(result){deffered.resolve(result.data)});return deffered.promise},deficiencies:function(params){var deffered=$q.defer();var promise=query.post('data/fetch/deficiencies',params);promise.then(function(result){deffered.resolve(result.data)});return deffered.promise},application_files:function(params){var deffered=$q.defer();var promise=query.post('data/fetch/application-files',params);promise.then(function(result){deffered.resolve(result.data)});return deffered.promise},},appeal:{submit:function(params){var deffered=$q.defer();var promise=query.post('data/appeal/submit',params);promise.then(function(result){console.log(result);deffered.resolve(result.data)});return deffered.promise},check:function(params){var deffered=$q.defer();var promise=query.post('data/appeal/check',params);promise.then(function(result){deffered.resolve(result.data)});return deffered.promise},decline:function(params){var deffered=$q.defer();var promise=query.post('data/appeal/decline',params);promise.then(function(result){deffered.resolve(result.data)});return deffered.promise}},interview:{check:function(params){var deffered=$q.defer();var promise=query.post('data/interview/check',params);promise.then(function(result){deffered.resolve(result.data)});return deffered.promise}},qualifier:{fetch_data:(params)=>{var deffered=$q.defer();var promise=query.post('data/qualifier/fetch-data',params);promise.then(function(result){deffered.resolve(result.data)});return deffered.promise},preregistration:{confirm:function(params){var deffered=$q.defer();var promise=query.post('data/prereg/confirm',params);promise.then(function(result){deffered.resolve(result.data)});return deffered.promise},cancel:function(params){var deffered=$q.defer();var promise=query.post('data/prereg/cancel',params);promise.then(function(result){deffered.resolve(result.data)});return deffered.promise},check:function(params){var deffered=$q.defer();var promise=query.post('data/prereg/check',params);promise.then(function(result){deffered.resolve(result.data)});return deffered.promise},}}}});app.factory('guard',function($q,$rootScope,$location,$http,query,util,md5,auth){return{check_if_idle:()=>{timerIncrement=()=>{console.log($location.path());min++;if(min==1){min=0} $rootScope.idleTime++;$rootScope.$apply();if($rootScope.idleTime==1){console.log("check session..");auth.check_session()}else if($rootScope.idleTime==2){$rootScope.idleTime=0;swal.fire("You have been logged out due to inactivity");console.log("logging out..");document.querySelectorAll('.modal.show').forEach(function(modalEl){var modal=bootstrap.Modal.getInstance(modalEl);if(modal){modal.hide()}});auth.logout("/auth")}} $rootScope.idleTime=0;var idleInterval=setInterval(timerIncrement,60000*15);$(window).mousemove(function(e){$rootScope.idleTime=0;console.log("mouse move detected "+$rootScope.idleTime)});$(window).keypress(function(e){$rootScope.idleTime=0;console.log("keypress detected"+$rootScope.idleTime)});var min=0}}});app.factory('jwt',function($q,query){return{encode:function(payload){var deffered=$q.defer();var promise=query.post('data/encode/jwt',{payload:payload});promise.then(function(result){deffered.resolve(result.data)});return deffered.promise},decode:function(jwt){var deffered=$q.defer();var promise=query.post('data/decode/jwt',{jwt:jwt});promise.then(function(result){deffered.resolve(result.data)});return deffered.promise}}});app.factory('fetch',($q,query)=>{return{service:(service)=>{var deffered=$q.defer();var promise=query.post('data/fetch/service',{service:service});promise.then(function(result){deffered.resolve(result.data)});return deffered.promise},service_param:(service,param)=>{var data=param;data.service=service;var deffered=$q.defer();var promise=query.post('data/fetch/service',data);promise.then(function(result){deffered.resolve(result.data)});return deffered.promise},religions:function(){var deffered=$q.defer();this.service('gen/fetch/religions').then(function(result){deffered.resolve(result)});return deffered.promise},citizenships:function(){var deffered=$q.defer();this.service('gen/fetch/citizenships').then(function(result){deffered.resolve(result)});return deffered.promise},regions:function(){var deffered=$q.defer();this.service('gen/fetch/regions').then(function(result){deffered.resolve(result)});return deffered.promise},provinces:function(){var deffered=$q.defer();this.service('gen/fetch/provinces').then(function(result){deffered.resolve(result)});return deffered.promise},citymun:function(params){var deffered=$q.defer();this.service_param('gen/fetch/citymun',params).then(function(result){deffered.resolve(result)});return deffered.promise},barangays:function(params){var deffered=$q.defer();this.service_param('gen/fetch/barangays',params).then(function(result){deffered.resolve(result)});return deffered.promise},campuses:function(){var deffered=$q.defer();this.service('acad/fetch/campuses').then(function(result){deffered.resolve(result)});return deffered.promise},colleges:function(params){var deffered=$q.defer();this.service_param('acad/fetch/colleges',params).then(function(result){deffered.resolve(result)});return deffered.promise},all_programs:function(params){var deffered=$q.defer();this.service('acad/fetch/offering/programs/undergrad').then(function(result){deffered.resolve(result)});return deffered.promise},programs_per_college:function(params){var deffered=$q.defer();this.service_param('acad/fetch/offering/programs/undergrad',params).then(function(result){deffered.resolve(result)});return deffered.promise},programs:function(params){var deffered=$q.defer();this.service_param('acad/fetch/programs',params).then(function(result){deffered.resolve(result)});return deffered.promise},majors:function(params){var deffered=$q.defer();this.service_param('acad/fetch/majors',params).then(function(result){deffered.resolve(result)});return deffered.promise},curriculum:function(params){var deffered=$q.defer();this.service_param('acad/fetch/listing/curriculum',params).then(function(result){deffered.resolve(result)});return deffered.promise},}});app.factory('auth',function($q,$rootScope,$location,$http,query,util,md5,jwt){let endpoint='backend/public/index.php/auth/';return{change_pin:(data,callback)=>{return Swal.fire({title:"Confirm",text:"Change PIN?",allowOutsideClick:!1,allowEscapeKey:!1,allowEnterKey:!1,showCancelButton:!0,confirmButtonColor:"#3085d6",cancelButtonColor:"#d33",cancelButtonText:"No",confirmButtonText:"Yes",reverseButtons:!0,showLoaderOnConfirm:!0,preConfirm:()=>{Swal.disableButtons();var deffered=$q.defer();jwt.encode(data).then((result)=>{$http.defaults.headers.common.Authorization="Bearer "+result;$http.post(endpoint+'change-pin',{}).then((result)=>{deffered.resolve(result)})});return deffered.promise},}).then((result)=>{if(result.isConfirmed){callback(result.value.data)}else{callback(!1)}})},verify:(callback)=>{var ret=!1;return Swal.fire({title:"Verification",text:"To continue, please enter your PIN.",icon:"warning",input:"password",inputLabel:"",inputPlaceholder:"Enter your PIN",inputAttributes:{maxlength:"5",autocapitalize:"off",autocorrect:"off",inputmode:'numeric',pattern:'[0-9]*',},didOpen:()=>{const input=Swal.getInput();input.addEventListener('input',function(){this.value=this.value.replace(/\D/g,'')})},allowOutsideClick:!1,allowEscapeKey:!1,allowEnterKey:!1,showCancelButton:!0,confirmButtonColor:"#3085d6",cancelButtonColor:"#d33",cancelButtonText:"Cancel",confirmButtonText:"Verify",reverseButtons:!0,showLoaderOnConfirm:!0,}).then((result)=>{if(result.isConfirmed){let secret=CryptoJS.SHA256(result.value+csrf_token).toString();let data={success:($rootScope.login.details.secret==secret?true:!1)};callback(data)}else{callback(!1)}})},logout:(route_to)=>{var deffered=$q.defer();var promise=query.post('auth/clear');promise.then(function(result){$location.path(route_to);deffered.resolve(result.data)});return deffered.promise},session:function(){var deffered=$q.defer();var promise=query.post('auth/session');promise.then(function(result){var data=result.data;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(result.application_id.substring(0,4)=='2025'){window.location.href="https://dione.batstate-u.edu.ph/batstateucat/portal/#/dashboard/2025"} if($location.path()=="/"){$location.path('/dashboard')} $rootScope.login.details=result} deffered.resolve(result)});return deffered.promise},authenticate:(params,route_to)=>{var deffered=$q.defer();$rootScope.login.logged=!1;jwt.encode(params).then((result)=>{$http.defaults.headers.common.Authorization="Bearer "+result;$http.post(endpoint+'authenticate',{}).then((result)=>{if(result.data.success){csrf_token=result.data.csrf_token;$http.defaults.headers.common['x-csrf-token']=result.data.csrf_token;$rootScope.login.details=result.data;$rootScope.login.status.logged=!0;$location.path(route_to)} deffered.resolve(result.data)})});return deffered.promise}}});app.factory('query',function($http,$q,$rootScope){var backend_url="backend/public/index.php/";return{get:(ajax,req_params)=>{ajax=backend_url+ajax;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.browser=navigator.userAgent;$http.get(ajax,{params:params}).then(function(response){deffered.resolve(response)});return deffered.promise},post:(ajax,req_params)=>{ajax=backend_url+ajax;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.browser=navigator.userAgent;$http.post(ajax,params).then(function(response){deffered.resolve(response)});return deffered.promise}}});app.factory('chartjs',function(){function shuffle(array){let currentIndex=array.length,randomIndex;while(currentIndex!=0){randomIndex=Math.floor(Math.random()*currentIndex);currentIndex--;[array[currentIndex],array[randomIndex]]=[array[randomIndex],array[currentIndex]]} return array} return{set_default:function(title,show_scale,stacked){var options={maintainAspectRatio:!0,responsive:!0,plugins:{labels:{render:'value',fontSize:12,position:'inside'}},title:{'display':!0,'text':title,fontColor:'black'},legend:{display:!0,position:'top',labels:{fontColor:'black'}},} if(show_scale){options.scales={yAxes:[{ticks:{beginAtZero:!0,fontColor:'black',stepSize:50},stacked:stacked}],xAxes:[{ticks:{beginAtZero:!0,fontColor:'black'},stacked:stacked}]}} return options},to_chart:function(params){var labels=[];var arr=[];if(params.series.length>0){angular.forEach(params.series,function(value,key){arr.push([])})} angular.forEach(params.list,function(value,key){angular.forEach(value,function(value2,key2){if(params.series.length>0){angular.forEach(params.series,function(value3,key3){if(key2==value3){arr[key3].push(value2)}});if(params.labels!=undefined&¶ms.labels.length>0){angular.forEach(params.labels,function(value4,key4){if(key2==value4){labels.push(value[key2])}})}else{if(key2==params.label){labels.push(value[key2])}}}else{if(params.column==key2){arr.push(value[key2])} if(params.labels!=undefined&¶ms.labels.length>0){angular.forEach(params.labels,function(value4,key4){if(key2==value4){labels.push(value[key2])}})}else{if(key2==params.label){labels.push(value[key2])}}}})});var options={maintainAspectRatio:!0,responsive:!0,interaction:{intersect:!1,},elements:{bar:{borderWidth:0,}},plugins:{colors:{forceOverride:!0},labels:{render:'value',fontSizex:12,color:'black',position:'inside',crossAlign:"far"},},title:{'display':!0,'text':params.title,fontColor:'black'},legend:{display:!0,position:'top',labels:{fontColor:'black'}},} if(params.type=='horizontalBar'||params.type=='bar'){params.show_scale=!0} if(params.show_scale){options.scales={yAxes:[{drawBorder:!1,ticks:{drawBorder:!1,beginAtZero:!0,fontColor:'black',stepSize:500,callback:function(label){return label},fontSizex:10},stacked:params.stacked}],xAxes:[{drawBorder:!1,ticks:{drawBorder:!1,beginAtZero:!0,fontColor:'black',stepSize:1},stacked:params.stacked}]}} var default_chart_colors=[];var tempColors=["#003f5c","#2f4b7c","#665191","#a05195","#d45087","#f95d6a","#ff7c43","#ffa600","#b30000","#7c1158","#4421af","#1a53ff","#0d88e6","#00b7c7","#5ad45a","#8be04e","#ebdc78","#e60049","#0bb4ff","#50e991","#e6d800","#9b19f5","#ffa300","#dc0ab4","#b3d4ff","#00bfa0","#ea5545","#f46a9b","#ef9b20","#edbf33","#ede15b","#bdcf32","#87bc45","#27aeef","#b33dc6",'#803690','#00ADF9','#DCDCDC','#46BFBD','#FDB45C','#949FB1','#4D5360'];if(params.type=='horizontalBar'||params.type=='bar'){angular.forEach(tempColors,function(value,key){default_chart_colors.push({borderWidth:0,fill:!0,backgroundColor:value})})}else{angular.forEach(tempColors,function(value,key){default_chart_colors.push(value)})} var colors=shuffle(default_chart_colors);if(params.colors!=undefined&¶ms.colors.length>0){} var datasetOverride=[];angular.forEach(arr,function(value,key){datasetOverride.push({borderWidth:0,})}) var ret={type:params.type,series:params.series,data:arr,labels:labels,colors:colors,options:options,};console.log(ret);return ret}}});app.factory('util',function(){return{dlAsExcel:function(id){const elem=document.createElement("a");var tab_text="
After viewing your "Notice of Admission", Don't forget to click the "Pre-registration" to confirm your slot.
`,showCloseButton:!0,}).then(()=>{window.open($rootScope.admission_result.result_url,'_blank','noopener,noreferrer')})}} if(path=='/dashboard/appointment'){appointment.fetch.pre_enrollment().then((result)=>{console.log(result);$scope.appointment.listing.pre_enrollment=result})} if(path=='/dashboard/pre-registration'){admission.qualifier.fetch_data().then((data)=>{$rootScope.qualifier=data;let params={campus:$rootScope.qualifier.data.campus,college:$rootScope.qualifier.data.college,program:$rootScope.qualifier.data.program_code} $scope.is_prereg_checking=!0;admission.interview.check(params).then((result)=>{$scope.is_prereg_checking=!1;if(result.ok=='YES'){if($rootScope.qualifier.allow_preregistration){$scope.prereg_allowed=!0;let msg="Enrollment is strictly on a first-come, first-served basis. Applicants are encouraged to complete the enrollment process as soon as possible to fully secure the slot of the program offered.";Swal.fire("",msg,"info")}else{}}else{Swal.fire("FOR INTERVIEW","You are qualified for a program that requires an interview. Kindly contact the Testing and Admission Office of your campus for assistance.","error").then((result)=>{$timeout(function(){$location.path('/dashboard')})})}})})} if($rootScope.admission_result.qualifier){if(path=='/dashboard'){$scope.enrollment_procedure.show()} admission.qualifier.fetch_data().then((data)=>{$rootScope.qualifier=data});$scope.preregistration.fetch()}});var popoverTriggerList=[].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]')) var popoverList=popoverTriggerList.map(function(popoverTriggerEl){return new bootstrap.Popover(popoverTriggerEl)}) $scope.filing_centers=['MAIN','LIPA','MALVAR','NASUGBU'];$scope.contactus={email:[{campus:'Pablo Borbon',email:'tao.pb@g.batstate-u.edu.ph',telno:''},{campus:'Alangilan',email:'tao.alangilan@g.batstate-u.edu.ph',telno:''},{campus:'Lipa',email:'tao.lipa@g.batstate-u.edu.ph',telno:''},{campus:'JPLPC-Malvar',email:'tao.malvar@g.batstate-u.edu.ph',telno:''},{campus:'ARASOF-Nasugbu',email:'tao.nasugbu@g.batstate-u.edu.ph',telno:''},{campus:'Balayan',email:'tao.balayan@g.batstate-u.edu.ph',telno:''},{campus:'Rosario',email:'tao.rosario@g.batstate-u.edu.ph',telno:''},{campus:'San Juan',email:'tao.sanjuan@g.batstate-u.edu.ph',telno:''},]} $scope.listing={} $scope.enrollment_procedure={show:()=>{var dlg=new bootstrap.Modal(document.getElementById("dlgEnrollmentProcedure"),{keyboard:!1,backdrop:'static'});dlg.show()}} $scope.appeal_procedure={show:()=>{var dlg=new bootstrap.Modal(document.getElementById("dlgAppealProcedure"),{keyboard:!1,backdrop:'static'});dlg.show()}} $scope.items=['Disadvantaged/ Marginalized','Proximity of residence to the campus during schooling','Error in encoding of grades/track/strand in the application form','Program recommended by the University does not align with the student’s interests or abilities','Other reason'];$scope.onType=function(){var val=($scope.appeal.data.reason||'').toLowerCase();$scope.filtered=$scope.items.filter(function(item){return item.toLowerCase().indexOf(val)!==-1})};$scope.select=function(item){$scope.appeal.data.reason=item;$scope.showList=!1};$scope.appeal={listing:{category:['Did not Meet the Program Quota (Non-Qualifier)','Absent on the Scheduled Examination (Absentee)','Evaluated but not Approved for Examination (with Incomplete Requirements)','No Online Application',],type:[{catIndex:0,desc:'To APPLY to programs with available slots, aligned with the provisions of the College Admission Policy'},{catIndex:1,desc:'To TAKE the examination and to APPLY to programs with available slots, aligned with the provisions of the College Admission Policy'},{catIndex:2,desc:'To SUBMIT the complete requirements, to TAKE the examination, and to APPLY to programs with available slots, aligned with the provisions of the College Admission Policy'},{catIndex:3,desc:'To SUBMIT an online application with complete requirements, to TAKE the examination, and to APPLY to programs with available slots, aligned with the provisions of the College Admission Policy'},],req:[{catIndex:0,attachments:['Letter of Appeal','Supporting Documents based on the “Reason of Request”']},{catIndex:1,attachments:['Letter of Appeal','Complete documentary requirements','Supporting Documents based on the “Reason of Request”']},{catIndex:2,attachments:['Letter of Appeal','Complete documentary requirements','Supporting Documents based on the “Reason of Request”']},{catIndex:3,attachments:['Letter of Appeal','Complete documentary requirements','Supporting Documents based on the “Reason of Request”']},]},data:{category:'',type:{},reason:'',attachment:{}},result:{},show_confirm:()=>{var dlg=new bootstrap.Modal(document.getElementById("dlgAdmissionAppealConfirm"),{keyboard:!1,backdrop:'static'});dlg.show()},show_process:()=>{var dlg=new bootstrap.Modal(document.getElementById("dlgAdmissionAppeal"),{keyboard:!1,backdrop:'static'});dlg.show()},show_status:()=>{if($rootScope.admission_result.qualifier){Swal.fire("For Non Qualifier Only","","error");return} let data={};admission.appeal.check().then(function(result){$scope.appeal.result=result;if(result){var declined=0;if(result.declined==1){declined++} angular.forEach(result,function(v,k){});if(declined>0){Swal.fire("","You have already declined to appeal.","warning")}else{var dlg=new bootstrap.Modal(document.getElementById("dlgAdmissionAppealStatus"),{keyboard:!1,backdrop:'static'});dlg.show()}}})},indexfilter:(category)=>{var catIndex=$scope.appeal.listing.category.indexOf(category);return function(data){return data.catIndex===catIndex}},check:()=>{let err=0;if($scope.appeal.data.category.length==0){err++} if($scope.appeal.data.type.catIndex==undefined){err++} if($scope.appeal.data.type.length==0){err++} if($scope.appeal.data.reason.length==0){err++} if($scope.appeal.data.attachment==undefined){err++} if($scope.appeal.data.attachment.length==0){err++} if($scope.appeal.data.attachment.filename==undefined){err++} return err==0?true:!1},submit:()=>{console.log($scope.appeal.data);let data=angular.copy($scope.appeal.data);Swal.fire({title:"Confirm",text:"Submit Appeal?",allowOutsideClick:!1,allowEscapeKey:!1,allowEnterKey:!1,showCancelButton:!0,confirmButtonColor:"#3085d6",cancelButtonColor:"#d33",cancelButtonText:"No",confirmButtonText:"Yes",reverseButtons:!0,showLoaderOnConfirm:!0,preConfirm:()=>{return admission.appeal.submit(data)},}).then((result)=>{if(result.isConfirmed){Swal.disableButtons() Swal.fire({title:"YOU HAVE SUCCESSFULLY SUBMITTED YOUR ADMISSIONS APPEAL.",icon:"info",html:`Please allow time for the evaluation and validation of your request. Due to the volume of applicants, we kindly ask for your patience as all appeals are being carefully reviewed. Updates will be posted on this portal, so we encourage you to monitor it regularly.
Please note that the approval of your appeal is subject to the final decision of the Appeals Committee.
`,showCloseButton:!0,});$('#dlgAdmissionAppeal').modal('hide');$('#dlgAdmissionAppealConfirm').modal('hide');$timeout(function(){$rootScope.admission_result.with_appeal=!0})}})},decline:()=>{let data=angular.copy($scope.appeal.data);Swal.fire({title:"Confirm",text:"Decline Appeal?",allowOutsideClick:!1,allowEscapeKey:!1,allowEnterKey:!1,showCancelButton:!0,confirmButtonColor:"#3085d6",cancelButtonColor:"#d33",cancelButtonText:"No",confirmButtonText:"Yes",reverseButtons:!0,showLoaderOnConfirm:!0,preConfirm:()=>{return admission.appeal.decline(data)},}).then((result)=>{if(result.isConfirmed){Swal.disableButtons() Swal.fire("Declined","","success");$('#dlgAdmissionAppealConfirm').modal('hide');$timeout(function(){$rootScope.admission_result.with_appeal=!0})}})}} if(document.getElementById("attachment")){document.getElementById('attachment').addEventListener('change',handleFileSelect,!1);function handleFileSelect(evt){var files=evt.target.files;var reader=new FileReader();reader.onloadend=function(e){console.log("trig");var size=document.getElementById('attachment').files[0].size/1024/1024;var ext=document.getElementById('attachment').files[0].name.split('.').pop().toLowerCase();var max_size=10;if(Math.floor(size)>max_size){Swal.fire("Error","Maximum of "+max_size+" MB per file","error");return} var allowed_ext=["pdf"];if(!allowed_ext.includes(ext)){Swal.fire("Error","File type is not allowed","error");return} let file_info={filename:document.getElementById('attachment').files[0].name,type:ext,size:size,data:e.target.result} $scope.appeal.data.attachment=file_info;$scope.$apply();console.log(file_info)} reader.readAsDataURL(files[0])}} $scope.selectedFile=null;$scope.fileSelected=function(input){$scope.$apply(function(){$scope.selectedFile=input.files[0]})};$scope.appellant={new_attachment:{},details:{data:{attachment:{}}},show_resubmit_attachment:()=>{document.getElementById('resubmit_attachment').addEventListener('change',handleFileSelect,!1);function handleFileSelect(evt){var files=evt.target.files;var reader=new FileReader();reader.onloadend=function(e){var size=document.getElementById('resubmit_attachment').files[0].size/1024/1024;var max_size=10;if(Math.floor(size)>max_size){Swal.fire("Error","Maximum of "+max_size+" MB per file","error");$scope.$apply(function(){$scope.selectedFile=null});return} var allowed_ext=["pdf"];let ext=document.getElementById('resubmit_attachment').files[0].name.split('.').pop().toLowerCase();if(!allowed_ext.includes(ext)){Swal.fire("Error","File type is not allowed","error");$scope.$apply(function(){$scope.selectedFile=null});return} let file_info={filename:document.getElementById('resubmit_attachment').files[0].name,type:ext,size:size,data:e.target.result} $scope.appellant.new_attachment=file_info;$scope.$apply();console.log(file_info)} reader.readAsDataURL(files[0])} var dlg=new bootstrap.Modal(document.getElementById("dlgresubmit_attachment"),{keyboard:!1,backdrop:'static'});dlg.show()},resubmit_attachment:()=>{let endpoint='data/appeal/re-submit-attachment';let data=angular.copy($scope.appellant.details);data.attachment=angular.copy($scope.appellant.new_attachment);Swal.fire({title:"Confirm",text:"Update attachment?",allowOutsideClick:!1,allowEscapeKey:!1,allowEnterKey:!1,showCancelButton:!0,confirmButtonColor:"#3085d6",cancelButtonColor:"#d33",cancelButtonText:"No",confirmButtonText:"Yes",reverseButtons:!0,showLoaderOnConfirm:!0,preConfirm:()=>{Swal.disableButtons();return query.post(endpoint,data)},}).then((result)=>{if(result.isConfirmed){Swal.disableButtons() Swal.fire({title:"Done",text:"Updated",icon:"success"});$('#dlgresubmit_attachment').modal('hide');admission.appeal.check().then(function(result){$scope.appeal.result=result})}})},} $scope.preregistration={confirmed:!1,confirm:function(){if(!$rootScope.admission_result.qualifier){Swal.fire("Only admission qualifier is allowed","","error");return} Swal.fire({title:"Confirm",text:"Confirm Pre-registration?",allowOutsideClick:!1,allowEscapeKey:!1,allowEnterKey:!1,showCancelButton:!0,confirmButtonColor:"#3085d6",cancelButtonColor:"#d33",cancelButtonText:"No",confirmButtonText:"Yes",reverseButtons:!0,showLoaderOnConfirm:!0}).then((result)=>{if(result.isConfirmed){Swal.disableButtons() admission.qualifier.preregistration.confirm().then((result)=>{$scope.preregistration.fetch().then((result2)=>{$scope.preregistration.confirmed=!0;Swal.fire("Pre-registration Confirmed. Thank You")})})}})},cancel:function(){Swal.fire({title:"Confirm",text:"Cancel Pre-registration?",type:"warning",showCancelButton:!0,confirmButtonColor:"#5cb85c",confirmButtonText:"Yes",closeOnConfirm:!1,showLoaderOnConfirm:!0,onOpen:function(){swal.disableConfirmButton()}},function(){return admission.qualifier.preregistration.cancel().then((result)=>{$scope.preregistration.fetch().then((result2)=>{Swal.fire("Pre-registration Cancelled. Thank You")})})})},fetch:function(){return admission.qualifier.preregistration.check().then((result)=>{$scope.preregistration.confirmed=result.confirmed;$rootScope.preregistration_confirmed=result.confirmed})},} $scope.defaults={};$q.all([]).then(function(data){})});app.controller('DefaultController',function($scope,$controller,$rootScope,$http,query,$location,$routeParams,$q,util,auth,$interval){angular.extend(this,$controller('BaseController',{$scope:$scope}));if($location.path()=="/"){document.addEventListener("contextmenu",function(e){e.preventDefault();swal("Batangas State University","Online Document Request")},!1)} var navListItems=$('div.setup-panel div a'),allWells=$('.setup-content'),allNextBtn=$('.nextBtn'),allPrevBtn=$('.prevBtn');allWells.hide();var empty_signature="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjgAAADcCAQAAADXNhPAAAACIklEQVR42u3UIQEAAAzDsM+/6UsYG0okFDQHMBIJAMMBDAfAcADDATAcwHAAwwEwHMBwAAwHMBzAcAAMBzAcAMMBDAcwHADDAQwHwHAAwwEMB8BwAMMBMBzAcADDATAcwHAADAcwHADDAQwHMBwAwwEMB8BwAMMBDAfAcADDATAcwHAAwwEwHMBwAAwHMBzAcAAMBzAcAMMBDAcwHADDAQwHwHAAwwEwHMBwAMMBMBzAcAAMBzAcwHAADAcwHADDAQwHMBwAwwEMB8BwAMMBDAfAcADDATAcwHAAwwEwHMBwAAwHMBzAcCQADAcwHADDAQwHwHAAwwEMB8BwAMMBMBzAcADDATAcwHAADAcwHMBwAAwHMBwAwwEMBzAcAMMBDAfAcADDAQwHwHAAwwEwHMBwAAwHMBzAcAAMBzAcAMMBDAcwHADDAQwHwHAAwwEMB8BwAMMBMBzAcADDATAcwHAADAcwHMBwAAwHMBwAwwEMB8BwAMMBDAfAcADDATAcwHAAwwEwHMBwAAwHMBzAcAAMBzAcAMMBDAcwHADDAQwHwHAAwwEMB8BwAMMBMBzAcADDkQAwHMBwAAwHMBwAwwEMBzAcAMMBDAfAcADDAQwHwHAAwwEwHMBwAMMBMBzAcAAMBzAcwHAADAcwHADDAQwHMBwAwwEMB8BwAMMBMBzAcADDATAcwHAADAcwHMBwAAwHMBwAwwEMBzAcAMMBDAegeayZAN3dLgwnAAAAAElFTkSuQmCC";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