/* global _, angular, i18n */
'use strict';
var controllers = angular.module('Client.controllers', []);
controllers.controller('app', ['$scope','$location','$q','$window','$timeout','$cookies','user','client','program','course','member','learner',
function($scope, $location, $q, $window, $timeout, $cookies, user, client, program, course, member, learner) {
//
//$scope.apikey = '[#apikey]';
//$scope.mobile = false;
$scope.year = new Date().getFullYear();
// initial
$scope.service = {client, program, course, user, member, learner}
$scope.course = {};
$scope.lrs = {};
$scope.institute = {},
$scope.user = {},
$scope.learner = {},
$scope.retry = false;
$scope.mobile = screen.width <= 600;
//
$scope.currentUrl = $location.host();
//$scope.bgAcademy = {'background-color':'#f5f5f5'};
$scope.route = '';
/* layout */
$scope.headbar = true;
$scope.fullpage = false;
//
$scope.loading = true;
//
$scope.member = true;
$scope.authorize = false;
$scope.barCookies = false;
//
$scope.consentModal = true,
//
$scope.init = function() {
// prelaunch banner
var prelaunch = sessionStorage.getItem("prelaunch");
// if(prelaunch==null) {
// $window.location.href = '/prelaunch';
// sessionStorage.setItem("prelaunch", true);
// }
// $timeout(function() {
// $scope.mobile = window.matchMedia("(max-width: 600px)").matches;
// console.log($scope.mobile);
// }, 900);
var interval = setInterval(function() {
//console.log(document.readyState)
if(document.readyState == 'complete') {
//console.log(document.readyState)
$window.scrollTo(0, 0);
clearInterval(interval);
}
}, 4000);
return;
};
$scope.scrollToTop = function () {
// Scroll to Top of Page.
var deferred = $q.defer();
deferred.resolve(angular.element("html, body").animate({ "scrollTop": 0 }));
return deferred.promise;
}
$scope.back = function () {
//console.log('back');
$window.history.back();
};
$scope.timeout = function(delay, callback) {
$timeout(function() {
if(callback!=undefined) {
callback;
} else true;
}, delay);
}
$scope.gotoUrl = function(uri) {
$window.location = uri;
}
$scope.openUrl = function(uri, target) {
$window.open(uri, target);
}
$scope.active = function(path) {
//console.log(path)
return $location.path().match(new RegExp(path + '.*', 'i')) != null;
};
$scope.logout = function() {
$scope.service.user.clear();
$window.location.href = '/';
};
//
$scope.$on('$viewContentLoaded', function(event, viewConfig) {
//Here your view content is fully loaded !!
$timeout(function() {
$scope.loading = false;
$scope.checkCookies();
$scope.modalSlider();
}, 900);
//
/* $(window).focus(function() {
console.log('window active')
});
$(window).blur(function() {
console.log('window inactive')
}); */
});
$scope.$on( "$routeChangeStart", function(event, route, current) {
$scope.member = true;
$scope.loading = true;
$scope.fullpage = false;
//console.log(route);
$scope.service.client.logged();
//
});
// privacy policy cookie
$scope.checkCookies = function() {
var accept = $cookies.get('privacy');
if(accept != 'accept'){
$scope.policy = true;
}
}
$scope.setCookies = function() {
var expireDate = new Date();
expireDate.setDate(expireDate.getDate() + 365);
document.cookie = "privacy=accept; expires=" + expireDate + "; path=/";
$scope.policy = false;
}
/* Modal */
$scope.modalSlider = function() {
const $modal = $('
').addClass('modal modal-slider').attr('id', 'modal_slider');
const $content = $('').addClass('modal-content');
// const $link = $('').attr('href','https://eservice.tfac.or.th/cpd_list/CPD_list.php').attr('target', '_blank').css('width', '100%');
const $image = $('
').attr('src', '/public/resources/webcontent/banner/banner_dbd-popup-close_20251219.webp').attr('width', '100%').css('display', 'block');
// $link.append($image);
// $content.append($link);
$content.append($image);
$modal.append($content);
//
const query_mode = $location.search().mode;
// console.log(mode);
if (query_mode == 'dev') {
sessionStorage.setItem('mode', 'dev')
}
const mode = sessionStorage.getItem("mode");
const currentDate = new Date();
const targetDate = new Date('2025-12-19T23:59:00');
if (currentDate >= targetDate && mode!='dev') {
$('body').append($modal);
$modal.modal({
dismissible: false
}).modal('open');
}
}
$scope.confirmCourseApply = function(code) {
if (code) {
console.log('ยืนยันการสมัครคอร์ส:', code);
$scope.service.course.campaign().then(function(data){
// console.log(data)
if(data.success){
$scope.service.course.state(code).then(function(state) {
// console.log(state)
$scope.service.course.apply(code, state);
});
}else{
Swal.fire({
title: "มีบางอย่างผิดพลาด",
html: `กรุณาตรวจสอบโปรไฟล์ของท่าน และลองใหม่อีกครั้ง`,
icon: "error"
}).then((result) => {
scope.gotoUrl('/profile')
});
}
});
}
};
// $scope.closeCourseApply = function() {
// var modal = $('.modal-consent');
// modal.modal({
// dismissible: false
// }).modal('close');
// //
// // var courseState = $('.course-state');
// // courseState.attr('course-state',code);
// //
// // var btn = $('.course-state a');
// // btn.removeClass('disabled').text('ลงทะเบียนเรียน').bind("click");
// // location.reload();
// };
}]);
//controllers.controller('navigation', ['$scope', function($scope) {
//
//}]);
controllers.controller('home', ['$scope', '$location', function($scope, $location) {
// $scope.service.client.video().then(function(dbdvideo) {
// console.log(dbdvideo)
// })
// var video_id = 'c63b21f1-95bd-4359-beec-de05f42e4dfb';
// $scope.service.client.video(video_id).then(function(video) {
// console.log(video)
// })
// $scope.service.client.highlight().then(function(highlight) {
// console.log(highlight)
// })
}]);
controllers.controller('course', ['$scope', '$location', '$routeParams', 'ngMeta', function($scope, $location, $routeParams, ngMeta) {
// temporary
//$('.btn-course').click(function() {
// $scope.scrollToTop();
//});
//$scope.$parent.headbar = true;
var course = $routeParams;
// console.log(course)
if( !_.isUndefined(course) ) {
//$scope.course = course;
//$scope.service.program.info(course).then(function(program) {
//console.log(program)
//course['course_id'] = program.program_id;
$scope.service.course.content(course).then(function(content) {
// console.log(content)
$scope.course = content;
// set meta tags dynamic
if($scope.course.name) ngMeta.setTitle('หลักสูตร' + $scope.course.name);
});
}
}]);
controllers.controller('member',['$scope','$window', function($scope, $window) {
//
//console.log('member');
// $scope.service.client.faq().then(function(tips) {
// console.log(tips)
// })
// $scope.service.client.learn().then(function(learns) {
// console.log(learns)
// })
// var news_id = '95e74381-84ee-41a3-b7b6-391c501ed184';
// $scope.service.client.news(news_id).then(function(news) {
// console.log(news)
// })
}]);
controllers.controller('user', ['$scope','$location','$routeParams', '$window', function($scope, $location, $routeParams, $window) {
//
// console.log('user');
$scope.service.member.authorized().then(function(authorized) {
// console.log(authorized);
if(!authorized) {
$location.path('/signin');
Swal.fire({
title: 'มีบางอย่างผิดพลาด',
html: 'เซสชันของคุณหมดอายุหรือไม่พบข้อมูลผู้ใช้
กรุณาเข้าสู่ระบบใหม่',
icon: 'warning',
confirmButtonText: 'ตกลง',
confirmButtonColor: "#9E9E9E",
heightAuto: false
});
}
});
var course = $routeParams;
//console.log(course)
if( !_.isUndefined(course) ) {
$scope.course = course;
}
// $scope.service.user.podclass().then(function(courses) {
// console.log(courses)
// })
}]);