/* global _, angular, i18n, Ladda, Odometer */ 'use strict'; angular.module('PromptSkill.directives', []) /* layouts */ .directive('promptskillBar', [function() { return { restrict: 'C', templateUrl: '/templates/layouts/promptskill-bar.promptskill' }; }]) .directive('privacy', ['$cookies', function($cookies) { return { restrict: 'C', templateUrl: '/templates/layouts/cookie-policy.promptskill', link: function(scope, element, attrs) { // Cookie Policy scope.checkCookie = function(){ var accept = $cookies.get('cookie_policy'); if(accept != 'accept'){ scope.cookie_popup = true; } } scope.acceptCookie = function(){ let expire = new Date(); const domain = '.promptskill.com'; // expire.setDate(expire.getDate() + 360); $cookies.put('cookie_policy', 'accept', { domain: domain, expires: expire, path: '/' }); scope.cookie_popup = false; } // } }; }]) .directive('copyright', [function() { return { restrict: 'C', templateUrl: '/templates/layouts/copyright.promptskill' }; }]) .directive('sitemap', [function() { return { restrict: 'A', templateUrl: '/templates/layouts/sitemap.promptskill', }; }]) /* promptskill element */ .directive('promptskill', [function() { return { restrict: 'A', link: function(scope, element, attrs) { attrs.$observe('promptskill', function(logo) { var $logo = $(''); if(logo) { $logo.attr('src', '//services.promptskill.com/app/public/img/logo/logo-topbar.png'); if(logo=='id') { $logo.attr('src', '//services.promptskill.com/app/public/img/logo/logo-promptskill-id.png'); } else { $logo.addClass('top-bar click') $logo.on('click', function() { scope.promptSkill(); }) }; element.append($logo); } }); } } }]) .directive('headBar', [function() { return { restrict: 'A', template: '
', link: function(scope, element, attrs) { scope.$watch('headbar', function(newValue, oldValue) { //console.log(newValue) if (newValue !=oldValue) { if(newValue) { scope.navigation = 'templates/layouts/header.promptskill'; } else { scope.navigation = ''; } } }); } }; }]) .directive('headbarLogo', [function() { return { restrict: 'A', link: function(scope, element, attrs) { var logo = scope.service.program.logo(); //console.log(logo) if(logo) { var $img = $('
').append($('').attr('height', '100%').attr('src', logo)); element.append($img.addClass('valign-wrapper')); } } } }]) // .directive('page', [function() { // return { // restrict: 'A', // link: function(scope, element, attrs) // { // attrs.$observe('page', function(name) { // scope.service.academy.page(name).then(function(data) { // console.log($('header').outerHeight()) // scope.page = data; // }); // }); // //scope.$parent.fullpage = false; // } // }; // }]) // .directive('page', [function() { // return { // restrict: 'A', // link: function(scope, element, attrs) // { // var paddingTop = 64; // attrs.$observe('page', function(name) { // element.removeAttr('page').attr('id', name); // scope.service.promptskill.page(name).then(function(data) { // //console.log(data) // scope.page = data; // element.addClass(data.headbar) // if($('header').outerHeight() 0) { // var $content = $('
').appendTo(element); // var banner = scope.page.elements.banner; // if(item >1) { // // } else { // $content.html(banner[0].content); // } // } // }); // } // }; // }]) // .directive('elementContent', [function() { // return { // restrict: 'A', // link: function(scope, element, attrs) // { // //console.log(attrs.content) // attrs.$observe('elementContent', function(item) { // if(item !=undefined && item >0) { // var $content = $('
').appendTo(element); // var content = scope.page.elements[attrs.content]; // if(item >1) { // // } else { // $content.html(content[0].content); // if(content[0].attrs !="") { // element.addClass('white-text'); // element.attr('style', content[0].attrs); // } // if(content[0].image) { // element.css('position', 'relative'); // $('').attr('style', content[0].position).css('position','absolute') // .css('height', '34em').attr('src', content[0].image).appendTo(element) // } // } // } // }); // } // }; // }]) .directive('pageBanner', [function() { return { restrict: 'A', link: function(scope, element, attrs) { var designWidth = 1920; attrs.$observe('pageBanner', function(banner) { if(banner) { element.removeAttr('page-banner') if(attrs.fit=='width') { var img = new Image(); img.onload = function() { var height = this.height / designWidth; element.css('height', height *100+'vw'); } img.src = 'https:' + banner; } element.css('background-image', "url('"+banner+"')").addClass(attrs.fit); } }); } } }]) // .directive('headerLogo', [function() { // return { // restrict: 'A', // link: function(scope, element, attrs) // { // attrs.$observe('headerLogo', function(logo) // { // if(logo) { // var $img = $('').attr('src', logo); // /*var img = new Image(); // img.onload = function() { // var ratio = this.width / this.height; // if (ratio <1.25) { // console.log(ratio) // element.css('margin-right', '1em'); // element.parent().css({display:'flex',alignItems:'self-end'}); // } // } // img.src = 'https:' + logo;*/ // element.append($img.addClass('valign-wrapper')); // /*if(element.hasClass('indent')) { // element.parent().css('margin-left', $img.width()) // }*/ // } // }); // } // } // }]) // .directive('pageElement', [function() { // return { // restrict: 'A', // link: function(scope, element, attrs) // { // attrs.$observe('pageElement', function(page) { // scope.$parent.headerBanner = 'banner'; // //console.log(scope.headerBanner) // scope.service.academy.page(page).then(function(data) { // //console.log(data) // scope.$parent.headerBanner = 'banner'; // scope.page = data; // // }); // }); // } // } // }]) // .directive('collapsible', [function() { // return { // restrict: 'C', // priority: 1000, // link: function(scope, element, attrs) // { // angular.element(element).collapsible(); // } // } // }]) // .directive('inputAddress', [function() { // return { // restrict: 'A', // templateUrl: '/templates/blocks/address-input.promptskill' // } // }]) /* content element */ .directive('tiny', [function() { return { restrict: 'A', link: function(scope, element, attrs) { var $child = element.children(); } } }]) // .directive('minHeight', [function() { // return { // restrict: 'A', // link: function(scope, element, attrs) { // attrs.$observe('minHeight', function(height) { // element.css('min-height', height); // }); // } // } // }]) .directive('fitBrief', [function() { return { restrict: 'A', priority: 10, link: function(scope, element, attrs) { scope.$watch(attrs.ngBindHtml, function(newvalue) { var fontSize = parseInt(element.css('font-size')); if(newvalue !=undefined) { var blockBrief = element.parent().find('.row'); var brief = blockBrief.find('.brief'); // //console.log(fontSize) //console.log(brief.height()) //console.log(blockBrief.height()) var marginTop = (blockBrief.height() -brief.height()) /fontSize; //element.css('margin-top', -marginTop +'em'); element.children().children().children(':first-child').css('margin-top', -marginTop+'em'); } }) } } }]) // .directive('bottom', [function() { // return { // restrict: 'C', // link: function(scope, element, attrs) // { // var bottom = element.parent().css('padding-bottom'); // //console.log(bottom) // element.css('bottom', bottom); // } // } // }]) // .directive('height', [function() { // return { // restrict: 'A', // link: function(scope, element, attrs) // { // attrs.$observe('height', function(height) { // if(height=='auto') { // element.css('height', height); // } // }); // } // } // }]) // .directive('padding', [function() { // return { // restrict: 'C', // link: function(scope, element, attrs) // { // attrs.$observe('padding', function(padding) { // element.css('padding', padding); // }); // } // } // }]) // .directive('borderRadius', function() { // return { // restrict: 'A', // link: function(scope, element, attrs) // { // attrs.$observe('borderRadius', function(radius) { // element.css('border-radius', radius); // }); // } // } // }) // .directive('textFit', [function() { // return { // restrict: 'A', // link: function(scope, element, attrs) // { // var width = $(element).width(); // //console.log(attrs.font) // element.addClass(attrs.font) // } // } // }]) // .directive('banner', [function() { // return { // restrict: 'A', // link: function(scope, element, attrs) // { // attrs.$observe('banner', function(image) // { // //var vw = 100; // var $img = $('').attr('src', image); // //var img = new Image(); // //img.onload = function() { // // vw = this.width / 1920 * 100; // if(attrs.width!=undefined) { // $img.css('width', attrs.width) // } else { // $img.css('width', '100%'); // } // //} // //img.src = 'https:' + image; // if(image!='') // element.append($img); // }); // } // } // }]) .directive('image', [function() { return { restrict: 'A', link: function(scope, element, attrs) { attrs.$observe('image', function(image) { var img = new Image(); img.onload = function() { var ratio = this.height / this.width; element.css('padding-top', ratio *100+'%'); element.css('position','relative'); } img.src = 'https:' + image; element.css('background-image', "url('"+image+"')").addClass('cover'); }); } } }]) .directive('background', [function() { return { restrict: 'A', link: function(scope, element, attrs) { attrs.$observe('background', function(image) { var img = new Image(); img.onload = function() { if(attrs.height =='fit') { //element.height(this.height); //element.css('height', this.height + ''); //element.addClass('width'); element.css('background-size', 'auto '+this.height+'px') } else if (attrs.height=='auto') { element.css('background-size', 'auto '+this.height+'px'); element.removeClass('background-image'); } //else element.addClass(attrs.height); } img.src = 'https:' + image; element.removeAttr('background'); element.css("background-image", "url('"+image+"')"); element.addClass('background-image'); }); } } }]) // .directive('qrPay', [function() { // return { // restrict: 'A', // link: function(scope, element, attrs) // { // var uri = scope.payment.info.gateway.qrCodeUrl; // var $img = $(''); // if(attrs.width!=undefined) { // $img.css('width', attrs.width) // } else { // $img.css('width', '100%'); // } // scope.service.course.promptpay(uri, scope.payment.token).then(function(data) { // //console.log(data) // $img.attr('src', data.image); // element.append($img) // }) // } // } // }]) // .directive('promptPay', [function() { // return { // restrict: 'A', // link: function(scope, element, attrs) // { // var uri = scope.payment.info.gateway.qrCodeUrl; // var $img = $(''); // if(attrs.width!=undefined) { // $img.css('width', attrs.width) // } else { // $img.css('width', '100%'); // } // scope.service.course.promptpay(uri, scope.payment.token).then(function(data) { // //console.log(data) // $img.attr('src', data.image); // element.append($img) // }) // } // } // }]) // .directive('payinSlip', [function() { // return { // restrict: 'A', // link: function(scope, element, attrs) // { // var uri = scope.payment.info.gateway.qrCodeUrl; // var $img = $(''); // if(attrs.width!=undefined) { // $img.css('width', attrs.width) // } else { // $img.css('width', '100%'); // } // scope.service.course.promptpay(uri, scope.payment.token).then(function(data) { // //console.log(data) // $img.attr('src', data.image); // element.append($img) // }) // } // } // }]) .directive('toggle', [function() { return { restrict: 'C', link: function(scope, element, attr) { element.on('click', function() { //console.log(element) if (element.hasClass('current')) { element.removeClass('current') } else { $(element).parent().find('.toggle.current').removeClass('current'); element.addClass('current') } }); } } }]) .directive('stylePhoto', [function() { return { restrict: 'A', link: function(scope, element, attrs) { var $container = $('').css({position:'absolute',top:0,width:'100%',height:'100%'}).addClass(attrs.color); element.addClass('photo'); attrs.$observe('stylePhoto', function(image) { element.addClass(attrs.color) //var img = new Image(); //img.onload = function() { element.css('padding-top', attrs.height / attrs.width * 100+'%'); element.css('position','relative'); //} //img.src = 'https:' + image; element.css('background-image', "url('"+image+"')"); if (attrs.color !='') { element.prepend($container); } else { element.html('') } }); } } }]) .directive('backgroundImage', [function() { return { restrict: 'A', link: function(scope, element, attrs) { attrs.$observe('backgroundImage', function(image) { var img = new Image(); img.onload = function() { //console.log(this.width + ' x ' + this.height); var height = (this.height / this.width) * 100; //console.log(padTop); //element.css('min-height', height + 'vw'); if(attrs.height !='auto') element.css('height', height + 'vw'); } img.src = 'https:' + image; element.css("background-image", "url('"+image+"')"); //element.css('padding-top', padTop + '%'); element.addClass('background-image width'); }); } } }]) .directive('headerBanner', [function() { return { restrict: 'A', link: function(scope, element, attrs) { //console.log('header banner') attrs.$observe('headerBanner', function (image) { console.log(image) if(image && image!='banner') { var img = new Image(); img.onload = function() { //console.log(this.width + ' x ' + this.height); var height = (this.height / this.width) * 100; //console.log(padTop); //element.css('min-height', height + 'vw'); element.css('height', '19em'); //element.addClass('white-text'); } img.src = 'https:' + image; element.css("background-image", "url('"+image+"')"); //element.css('padding-top', padTop + '%'); element.addClass('background-image width cover center'); } else { element.removeAttr("style"); } }); //} } } }]) /* PromptSkill Home */ .directive('carouselSlider', [function() { return { restrict: 'A', link: function(scope, element, attrs) { attrs.$observe('carouselSlider', function() { var $carousel = $('
').addClass('carousel news-carousel home-banner'); element.append($carousel); var banners = [ { "background": "//services.promptskill.com/app/promptskill/public/img/background/background-promptskill.jpg", "logo": "//dinsoradvertising.com/public/img/logo/dinsor-24years-logo.png", "configClass": "carousel-item-1", "title_th": "พร้อมเปลี่ยนโลก
การเรียนรู้ไปกับ
พรอมท์ สกิล", "title_en": "Get ready for new learning experience", "brief_th": "แพลตฟอร์มเรียนออนไลน์ที่จะพาสนุกไปกับคอนเทนต์ วิดีโอ ในบทเรียน ด้วยทีมงาน Learning Solution Provider ผลิต courseware ที่มีประสบการณ์มากกว่า 15 ปี", "brief_en": "An online learning platform that brings fun with video content in lessons with a Learning Solution Provider team producing courseware with more than 15 years of experience." }, // { // "background": "//services.promptskill.com/app/promptskill/public/img/background/background-abac.jpg", // "logo": "//services.promptskill.com/app/promptskill/public/img/logo/logo-banner-abac.png", // "configClass": "carousel-item-2", // "title": "PROMPT SKILL
ร่วมกับ IIBD ABAC", // "brief": "ลงนามข้อตกลงทางวิชาการร่วมมือทางด้านวิชาการและนวัตกรรมเพื่อสนับสนุนการพัฒนาด้านการศึกษาในรูปแบบ e-Learning" // }, // { // "background": "//services.promptskill.com/app/promptskill/public/img/background/background-promptskill.jpg", // "logo": "//services.promptskill.com/app/promptskill/public/img/logo/logo-dinsor22.png", // "configClass": "carousel-item-1", // "title": "พร้อมเปลี่ยนโลก
การเรียนรู้ไปกับ
พรอมท์ สกิล", // "brief": "แพลตฟอร์มเรียนออนไลน์ที่จะพาสนุกไปกับคอนเทนต์ วิดีโอ ในบทเรียน ด้วยทีมงาน Learning Solution Provider ผลิต courseware ที่มีประสบการณ์มากกว่า 15 ปี" // }, // { // "background": "//services.promptskill.com/app/promptskill/public/img/background/background-abac.jpg", // "logo": "//services.promptskill.com/app/promptskill/public/img/logo/logo-banner-abac.png", // "configClass": "carousel-item-2", // "title": "PROMPT SKILL
ร่วมกับ IIBD ABAC", // "brief": "ลงนามข้อตกลงทางวิชาการร่วมมือทางด้านวิชาการและนวัตกรรมเพื่อสนับสนุนการพัฒนาด้านการศึกษาในรูปแบบ e-Learning" // } ] var designWidth = 1920; angular.forEach(banners, function(banner, index) { var $item = $('
').addClass('carousel-item home-banner'); $carousel.append($item); // background banner var img = new Image(); img.onload = function() { var height = this.height / designWidth; $item.css('height', height *100+'vw'); } img.src = 'https:' + banner.background; $item.css('background-image', "url('"+banner.background+"')").addClass('cover'); // logo banner if(banner.logo) { var $logo = $('').addClass(banner.configClass).attr('src', banner.logo); $item.append($logo); } // content banner var $container = $('
').addClass('container section-wrapper'); var $row = $('
').addClass('row').css('padding-top', '12em'); var $col = $('
').addClass('col s8 m6'); var $title = $('

').addClass('black-text overline-text topic').html(scope.language=='en-US' ? banner.title_en : banner.title_th); var $brief = $('

').addClass('black-text regular content-desc').html(scope.language=='en-US' ? banner.brief_en : banner.brief_th); $title.attr('data-aos', 'fade-right').attr('data-aos-delay', '1500').attr('data-aos-duration', '700'); $brief.attr('data-aos', 'fade-up').attr('data-aos-delay', '2000').attr('data-aos-duration', '700'); $col.append($title).append($brief); $container.append($row.append($col)); $item.append($container); }); // initialization carrousel news banner $carousel.carousel({ fullWidth: true, indicators: true }); //auto next slide banner setInterval(function () { $carousel.carousel('next'); }, 6000); }); } } }]) .directive('animationService', [function() { return { restrict: 'A', link: function(scope, element, attrs) { attrs.$observe('animationService', function() { // var $wrapper = $('

').addClass('wrapper'); // element.append($wrapper); // // var animations = [ // { // "backgroundDesktop": "//services.promptskill.com/app/promptskill/public/img/background/background-notebook-1.jpg", // "backgroundAnime": "//services.promptskill.com/app/promptskill/public/img/background/background-notebook.png", // "title": "สนุกไปกับทุกการเรียนรู้", // "brief": "ด้วยการออกแบบหลักสูตรให้น่าสนใจ", // "descrption": '“พรอมท์ สกิล” เล็งเห็นถึงความสำคัญของการเรียนรู้ และความสุขในการเรียนรู้ ผ่านหน้าจออุปกรณ์ที่ผู้เรียนรู้ใช้งาน จึงเกิดเป็นการออกแบบส่วนประกอบหน้าเว็บไซต์และบทเรียนให้สวยงามในสไตล์ แม็กกาซีน เพื่อให้ผู้เรียนรู้ได้เพลิดเพลินไปกับบทเรียนที่น่าอ่านและวิดีโอบทเรียนที่น่าติดตาม', // "backgroundComponent": "//services.promptskill.com/app/promptskill/public/img/background/background-mobile-promptskill.png", // "styleBackgroundComponent": "bg-anime-1 anime1" // // }, // ]; // $(document).ready(function() { setTimeout(function() { // scroll trigger ScrollTrigger.defaults({ markers:false }) var points = gsap.utils.toArray('.point'); var indicators = gsap.utils.toArray('.indicator'); var height = 100 * points.length; gsap.set('.indicators', {display: "flex"}); var tl = gsap.timeline({ duration: points.length, scrollTrigger: { trigger: ".animation-service", start: "top center", end: "+="+height+"%", scrub: true, id: "points", onEnter: () => $('#background-desktop').css('display', 'none'), onLeaveBack: () => $('#background-desktop').css('display', 'block') } }) var pinner = gsap.timeline({ scrollTrigger: { trigger: ".animation-service .wrapper", start: "top top", end: "+="+height+"%", scrub: true, pin: ".animation-service .wrapper", pinSpacing: true, id: "pinning", markers: false } }) points.forEach(function(elem, i) { gsap.set(elem, {position: "absolute", top: 0}); tl.from(elem.querySelector('img'), {autoAlpha:0}, i) tl.from(elem.querySelector('article'), {autoAlpha:0, translateY: 100, duration: 0.55}, i) tl.from(elem.querySelector('.anime1'), {autoAlpha:0, translateY: 200}, i) tl.from(elem.querySelector('.anime2'), {autoAlpha:0, translateY: 100, duration: 1}, i) tl.from(elem.querySelector('.anime3'), {autoAlpha:0, translateX: 100}, i) if (i != points.length-1) { tl.to(elem.querySelector('article'), {autoAlpha:0}, i + 0.75) tl.to(elem.querySelector('img'), {autoAlpha:0}, i + 0.75) tl.to(elem.querySelector('.anime1'), {autoAlpha:0, translateY: -500, duration: 0.25}, i + 0.75) tl.to(elem.querySelector('.anime2'), {autoAlpha:0, translateY: 500, duration: 0.25}, i + 0.75) tl.to(elem.querySelector('.anime3'), {autoAlpha:0, translateX: 500, duration: 0.25}, i + 0.75) } }); // }, 1000); }); // }); } } }]) .directive('animationSeminar', [function() { return { restrict: 'A', link: function(scope, element, attrs) { attrs.$observe('animationSeminar', function() { var $container = $('
').addClass('container section-wrapper'); element.append($container); var $row = $('
').addClass('row'); $container.append($row); var col = $('
').addClass('col s12 m12 right-align left-align-sm'); var $topic = $('

').addClass('black-text medium underline-text title').text(scope.language=='en-US' ? "Can be applied in many ways" : "ประยุกต์ใช้ได้หลากหลาย"); $row.append(col.append($topic)); var $title = $('

').addClass('black-text medium topic').css('margin-top', '-0.1em'); $title.html(scope.language=='en-US' ? 'Manage work
Complete seminar' : 'บริหารงานสัมมนาครบ
จบในคลิ๊กเดียว'); $row.append(col.append($title)); var $colContent = $('
').addClass('col s12 m12 l5 offset-l7'); var $desc = $('

').addClass('black-text regular content-desc').css('margin-top', '2em'); $desc.attr('data-aos', 'fade-up'); $desc.attr('data-aos-delay', '300'); $desc.text(scope.language=='en-US' ? 'PROMPT SKILL is more than general E-Learning because we take online learning management knowledge and apply it to a complete online seminar. You can click to register, study, take a test, and do a satisfaction assessment. and issue certificates in one link.' : 'PROMPT SKILL เป็นมากกว่า E-Learning ทั่วไป เพราะเรานำเอาองค์ความรู้การจัดการการเรียนออนไลน์มาปรับใช้กับงานสัมมนาออนไลน์ได้อย่างครบวงจร โดยสามารถคลิกลงทะเบียน เรียน ทำแบบทดสอบ ทำแบบประเมินความพึงพอใจ และออกใบประกาศนียบัตรได้ในลิงก์เดียว'); $row.append($colContent.append($desc)); var $bgSeminar = $('').css({ width: '100%', position: 'absolute', right: '0', bottom: '0' }); $bgSeminar.attr('src', '//services.promptskill.com/app/promptskill/public/img/background/background-seminar.png'); $container.append($bgSeminar); var $bgScroll = $('

').css({ width: '23.177%', position: 'absolute', left: '46.198%', // top: '65.145%', borderRadius: '0.6em', backgroundImage: "url('//services.promptskill.com/app/promptskill/public/img/background/background-newagri-web.png')", backgroundSize: '100%', backgroundRepeat: 'no-repeat' }); $bgScroll.attr('id', 'bg-scroll-position'); $bgScroll.append($('
').css('padding-top', '75%')); $container.append($bgScroll); // $(document).ready(function() { setTimeout(function() { // animate on scroll library AOS.init(); // scroll trigger var position = '+=500'; if (window.matchMedia('(max-width: 768px)').matches) { position = 'top top'; $bgScroll.css('top', '81.5%'); } gsap.utils.toArray('.content-img-seminar').forEach(layer => { ScrollTrigger.create({ trigger: layer, pin: layer, start: position, // end: '' pinSpacing: true, markers: false, scrub: true, onUpdate: self => { $('#bg-scroll-position').css('background-position-y', '-' + self.progress.toFixed(3)*200 + 'px'); } }); }); // }, 1000); }); // }); } } }]) .directive('clientService', [function() { return { restrict: 'A', link: function(scope, element, attrs) { attrs.$observe('clientService', function() { // var clients = [ { "image": "//services.promptskill.com/app/promptskill/public/img/logo/clients/logo-abac.png", "progress": true }, { "image": "//services.promptskill.com/app/promptskill/public/img/logo/clients/logo-nida.png", "progress": false }, { "image": "//services.promptskill.com/app/promptskill/public/img/logo/clients/logo-tu.png", "progress": false }, { "image": "//services.promptskill.com/app/promptskill/public/img/logo/clients/logo-dbd.png", "progress": true }, { "image": "//services.promptskill.com/app/promptskill/public/img/logo/clients/logo-ditp.png", "progress": false }, { "image": "//services.promptskill.com/app/promptskill/public/img/logo/clients/logo-nea.png", "progress": false }, { "image": "//services.promptskill.com/app/promptskill/public/img/logo/clients/logo-domaster.png", "progress": false }, { "image": "//services.promptskill.com/app/promptskill/public/img/logo/clients/logo-newagri.png", "progress": false }, { "image": "//services.promptskill.com/app/promptskill/public/img/logo/clients/logo-smart-exporter.png", "progress": true } ]; // var $container = $('
').addClass('container section-wrapper'); element.append($container); var $row = $('
').addClass('row'); var $col = $('
').addClass('col s12 m12'); var $topic = $('

').addClass('black-text medium underline-text topic').text(scope.$eval("'Customers and courses that use the service' | phrase:locale")); $row.append($col.append($topic)); $container.append($row); // clients list $row = $('
').addClass('row').css('margin-top', '3em'); var count = 1; angular.forEach(clients, function(client) { $col = $('
').addClass('col s4 m4 center'); var $logo = $('').attr('src', client.image); $col.append($logo); if(client.progress) { var $progress = $('

').addClass('grey-text small content-desc').text('*'+scope.$eval("'In progress' | phrase:locale")); $col.append($progress); } $row.append($col); $container.append($row); count++; if(count == 4) { count = 1; $row = $('

').addClass('row').css('margin-top', '5em'); } }); // }); } } }]) .directive('scrollAnimate', [function() { return { restrict: 'A', link: function(scope, element, attrs) { attrs.$observe('scrollAnimate', function() { // animate on scroll library AOS.init(); }); } } }]) /* course */ .directive('programCourse', [function() { return { restrict: 'A', link: function(scope, element, attrs) { attrs.$observe('programCourse', function() { //mockup var nameCourse = scope.$eval("'Examples of our courses' | phrase:locale"); var type = attrs.type; var courses = [ { "background": "//services.promptskill.com/app/promptskill/public/img/courses/course-first-aid.jpg", "name_th": "หลักสูตร การปฐมพยาบาลและดูแลตัวเองเบื้องต้น (FIRST AID)", "name_en": "First Aid and Basic Self-Care Course (FIRST AID)", "lecturer_th": "พว.พิมพ์ใจ ปราชญ์ชลชาญ", "lecturer_en": "P.W. Pimjai Prachonchan" }, { "background": "//services.promptskill.com/app/promptskill/public/img/courses/course-ikigai.jpg", "name_th": "หลักสูตร IKIGAI เคล็ดลับความสุขในการตั้งเป้าหมายชีวิตของคนญี่ปุ่น", "name_en": "IKIGAI Course: The Secret to Happiness in Setting Life Goals for Japanese People", "lecturer_th": "นัททินี วงศ์เฉลิมทานต์", "lecturer_en": "Natthinee Wongchalermthan" }, { "background": "//services.promptskill.com/app/promptskill/public/img/courses/course-teach-thai.jpg", "name_th": "หลักสูตร Teach Thai ภาษาไทยเพื่อชาวต่างชาติ", "name_en": "Teach Thai course, Thai language for foreigners", "lecturer_th": "ศศพร สุนทรพาณิชย์", "lecturer_en": "Sasaporn Sunthornphanit" }, { "background": "//resourcespace.promptskill.com/resources/course/71/baeb2e0e-5c78-4c63-9b20-0825dbec404d/image/Happineering_600x300.jpg", "name_th": "Happineering : Empower Happiness Hormone in building Team Leadership", "name_en": "Happineering : Empower Happiness Hormone in building Team Leadership", "lecturer_th": "กฤษณ์ รุยาพร และสุภาวดี รุยาพร", "lecturer_en": "Krit Ruyaporn and Supawadee Ruyaporn" } ]; // var $container = $('
').addClass('container section-course'); element.append($container); var $rowTopic = $('
').addClass('row'); var $colTopic = $('
').addClass('col s12 m12'); var $nameCourse = $('

').addClass('black-text medium underline-text topic').text(nameCourse); $rowTopic.append($colTopic.append($nameCourse)); $container.append($rowTopic); // program courses var $rowCourse = $('
').addClass('row'); $container.append($rowCourse); angular.forEach(courses, function(course) { var $colCourse = $('
').addClass('col s6 m3'); var $card = $('
').addClass('card-course hoverable'); var $cardImage = $('
').addClass('card-image course-image'); var background = new Image(); background.onload = function() { $cardImage.css('padding-top', this.height / this.width *100+'%'); $cardImage.css('background-image', "url('"+course.background+"')").addClass('cover'); $cardImage.css('background-repeat', 'no-repeat'); $cardImage.css('background-size', 'contain'); } background.src = 'https:'+ course.background; var $cardContent = $('
').addClass('card-content').css('min-height', '160px'); var $courseName = $('

').addClass('course-title truncate-2 dbadman bold').text(scope.language=='en-US' ? course.name_en : course.name_th); var $courseBrief = $('

').addClass('course-instructor truncate-1 grey-text text-darken-1 dbadman bold').text(scope.language=='en-US' ? course.lecturer_en : course.lecturer_th); var $btnCourse = $('').addClass('waves-effect waves-light btn btn-small z-depth-1 btn-theme dbadman bold text-transform-none disabled').text(scope.$eval("'Coming soon' | phrase:locale")); $btnCourse.css('margin-top', '0.5em'); $cardContent.append($courseName).append($courseBrief).append($btnCourse); $card.append($cardImage).append($cardContent); $rowCourse.append($colCourse.append($card)); }); // }); } } }]) /* member service */ .directive('member', ['$window','$location','$timeout', '$filter', function($window, $location, $timeout, $filter) { return { restrict: 'A', link: function(scope, element, attrs) { scope.$parent.promptskill = true; scope.$parent.headbar = false; scope.$parent.fullpage = true; scope.$parent.member = false; let program = $location.search().f; let filter_email = false; let email_domain = null; // attrs.$observe('member', function(action) { scope.service.promptskill.page('member').then(function(data) { // console.log(data) scope.page = data; }); // Filter Email if(!_.isUndefined(program) && (action=='signin' || action=='signup')) { // scope.service.program.info(program).then(function(response) { // console.log(response); if(response) { email_domain = response.email_domain; if(email_domain!=null && email_domain!='') { filter_email = true; $("#authen form").css('height', '34.5em'); $("input[name='username']").attr('placeholder', `@${email_domain}`); } } }); } /* Sign In with Google for Web */ // if(action=='signin' || action=='signup') { // // const $clientLibrary = $('