CLWSHC2: WSH CULTURE DEVELOPMENT COURSE FOR CLEANERS (LEVEL 2)
Syntax error in template "20097#20123#98301" in line 482, column 92: Unknown built-in: "image". Help (latest version): https://freemarker.apache.org/docs/ref_builtins.html; you're using FreeMarker 2.3.29. The alphabetical list of built-ins: abs, absolute_template_name, ancestors, api, boolean, byte, c, cap_first, capitalize, ceiling, children, chop_linebreak, chunk, contains, counter, date, date_if_unknown, datetime, datetime_if_unknown, default, double, drop_while, ends_with, ensure_ends_with, ensure_starts_with, esc, eval, exists, filter, first, float, floor, groups, has_api, has_content, has_next, html, if_exists, index, index_of, int, interpret, is_boolean, is_collection, is_collection_ex, is_date, is_date_like, is_date_only, is_datetime, is_directive, is_enumerable, is_even_item, is_first, is_hash, is_hash_ex, is_indexable, is_infinite, is_last, is_macro, is_markup_output, is_method, is_nan, is_node, is_number, is_odd_item, is_sequence, is_string, is_time, is_transform, is_unknown_date_like, iso, iso_h, iso_h_nz, iso_local, iso_local_h, iso_local_h_nz, iso_local_m, iso_local_m_nz, iso_local_ms, iso_local_ms_nz, iso_local_nz, iso_m, iso_m_nz, iso_ms, iso_ms_nz, iso_nz, iso_utc, iso_utc_fz, iso_utc_h, iso_utc_h_nz, iso_utc_m, iso_utc_m_nz, iso_utc_ms, iso_utc_ms_nz, iso_utc_nz, item_cycle, item_parity, item_parity_cap, j_string, join, js_string, json_string, keep_after, keep_after_last, keep_before, keep_before_last, keys, last, last_index_of, left_pad, length, long, lower_abc, lower_case, map, markup_string, matches, max, min, namespace, new, next_sibling, no_esc, node_name, node_namespace, node_type, number, number_to_date, number_to_datetime, number_to_time, parent, previous_sibling, remove_beginning, remove_ending, replace, reverse, right_pad, root, round, rtf, seq_contains, seq_index_of, seq_last_index_of, sequence, short, size, sort, sort_by, split, starts_with, string, substring, switch, take_while, then, time, time_if_unknown, trim, truncate, truncate_c, truncate_c_m, truncate_m, truncate_w, truncate_w_m, uncap_first, upper_abc, upper_case, url, url_path, values, web_safe, word_list, xhtml, xml
1<style>
2 .btn-holder.d-flex a:focus,.btn-holder.d-flex a:link,.btn-holder.d-flex a:visited{
3 color:#0097CE !important;
4 }
5
6 .box-icon.mr-1.border.border-secondary.rounded-circle.p-2 {
7 border: 0 !important;
8 font-size: 16px;
9 margin-top: -7px;
10 padding: 0 !important;
11 }
12
13 .btn-holder.d-flex a {
14 text-transform: capitalize;
15 padding: 0;
16 padding-bottom: 1rem;
17 }
18 .btn-holder.d-flex a.btn-2:hover{
19 background:transparent !important;
20 color:#102935 !important;
21 }
22
23 .tb-2 td, .tb-2 th{
24 padding:10px 24px;
25 }
26
27 #schedule-list td .download-schedule,.tb-2 td.type-rs .btn-1{
28 text-transform: inherit;
29 font-size: 16px;
30 }
31
32 div#elementIdku {
33 min-width: 100%;
34 /* margin-left: -16px;
35 margin-right: -16px; */
36 }
37
38 .modal-all-schedules.active .cs-container .box-content{
39 padding: 2rem 32px;
40 }
41
42 .modal-all-schedules.active .container {
43 max-width: 96%;
44 }
45
46 .course-details-wrap .course-inner {
47 overflow-x: auto;
48 }
49
50 .tb-2 {
51 background: transparent;
52 }
53
54 .tb-2 th {
55 width: auto;
56 }
57
58 .tb-2 th:first-child,
59 .tb-2 th:last-child {
60 width: 150px;
61 }
62
63 .tb-2 .btn-1 {
64 border-radius: 50px;
65 padding: 10px;
66 min-height: auto;
67 width: 140px;
68 }
69
70 .cx-box-close{
71 top: 0 !important;
72 right: 0 !important;
73 margin-top: -2vh !important;
74 }
75
76 a.cx-download:hover .no-hover,a.cx-link:hover .no-hover{
77 display: none;
78 }
79
80 a.cx-download:hover .hover,a.cx-link:hover .hover{
81 display: block;
82 }
83
84 a.cx-download .hover,a.cx-link .hover{
85 display: none;
86 }
87
88 @media screen and (max-width:550px) {
89 .tb-2 .btn-1 {
90 min-width: 80%;
91 }
92
93 .modal-all-schedules.active .cs-container .box-content{
94 padding: 2rem 16px;
95 }
96 .modal-all-schedules.active .cs-container .box-content{
97 height: 89vh;
98 margin-top: 4vh;
99 }
100 }
101
102 table#isi {
103 border: 0;
104 border-collapse: collapse;
105 margin: 0;
106 padding: 0;
107 width: 100%;
108 table-layout: fixed;
109 }
110
111 table#isi caption {
112 text-align: left;
113 font-size: 1.3em;
114 margin: 0.5em 0 0.75em;
115 }
116
117 table#isi thead {
118 display: none;
119 }
120
121 table#isi tr {
122 background: #dcedf5;
123 display: block;
124 /* border: 1px solid #000; */
125 padding: 12px 0;
126 margin-bottom: 2rem;
127 position: relative;
128 }
129
130 table#isi tr+tr {
131 margin-top: 0.625em;
132 }
133
134 table#isi tr:nth-of-type(even) {
135 display: none;
136 }
137
138 table#isi td {
139 display: flex;
140 justify-content: flex-start;
141 align-items: flex-start;
142 border-bottom: 1px solid #eee;
143 font-size: 16px;
144 line-height: 1.35em;
145 text-align: left;
146 border: 0px !important;
147 border-bottom: 0px solid #fff !important;
148 color: #333333;
149 }
150
151 table#isi td:last-child {
152 border-bottom: 0px !important;
153 }
154
155 table#isi td:before {
156 content: attr(data-label);
157 /* font-size: 0.9em; */
158 text-align: left;
159 font-weight: bold;
160 text-transform: uppercase;
161 max-width: 50%;
162 min-width: 55%;
163 margin-right: 10px;
164 color: #333333;
165 }
166
167 @media screen and (max-width:576px) {
168 table#isi td:before{
169 max-width: 30%;
170 min-width: 36%;
171 }
172 }
173
174 table#isi td:nth-child(1):before {
175 content: "Batch ID";
176 }
177
178 table#isi td:nth-child(2):before {
179 content: "Course Period";
180 }
181
182 table#isi td:nth-child(3):before {
183 content: "Course Title";
184 }
185
186 table#isi td:nth-child(4):before {
187 content: "Funding Available";
188 }
189
190 table#isi td:nth-child(5):before {
191 content: "Duration (Hours)";
192 }
193
194 table#isi td:nth-child(6):before {
195 content: "Session (Hours)";
196 }
197
198 table#isi td:nth-child(7):before {
199 content: "Venue";
200 }
201
202 table#isi td:nth-child(8):before {
203 content: "Available Seats";
204 }
205
206 table#isi td:nth-child(9):before {
207 content: "Online Payment";
208 }
209
210
211 table#isi td+td {
212 margin-top: 0.8em;
213 }
214
215 table#isi td:last-child {
216 border-bottom: 0;
217 }
218
219 span.payment {
220 display: none;
221 }
222
223 table#isi tr+tr {
224 margin-top: 0;
225 }
226
227 .tb-2 td.type-rs .btn-1 {
228 margin: auto;
229 /* width: auto; */
230 }
231
232 @media screen and (max-width:1181px){
233
234 #schedule-list td .download-schedule {
235 position: absolute;
236 bottom: 24px;
237 left: 0;
238 right: 50%;
239 margin: auto;
240 min-width:44%;
241 padding: 12px;
242 }
243
244 .tb-2 td.type-rs .btn-1 {
245 margin: auto;
246 position: absolute;
247 left: 50%;
248 right: 0;
249 bottom: 24px;
250 min-width:44%;
251 padding: 12px;
252 }
253 }
254
255 /* @media screen and (max-width:768px){
256 #schedule-list td .download-schedule{
257 right:34%;
258 }
259
260 .tb-2 td.type-rs .btn-1{
261 left:34%;
262 }
263 } */
264
265
266 table#isi td:last-child {
267 min-height: 64px;
268 padding:0px 16px;
269 margin-top:32px;
270 }
271
272 @media screen and (max-width:575px){
273 #schedule-list td .download-schedule{
274 bottom:78px;
275 right:0%;
276 min-width:92%;
277 }
278
279 .tb-2 td.type-rs .btn-1{
280 bottom:16px;
281 left:0%;
282 min-width: 92%;
283 }
284 .tb-2 td, .tb-2 th{
285 padding:0 16px;
286 }
287
288 table#isi td:last-child{
289 min-height:120px;
290 padding: 0px 16px;
291 margin-top:24px;
292 }
293 }
294
295
296
297
298 @media screen and (max-width:1024px) {
299 table#isi td {
300 font-size: 16px !important;
301 }
302 }
303
304 @media screen and (min-width:1182px) {
305
306 #schedule-list td .download-schedule,
307 .tb-2 td.type-rs .btn-1 {
308 bottom: 0;
309 border-radius: 10px;
310 position: relative;
311 width: auto;
312 }
313 }
314
315 @media screen and (min-width: 1181px) {
316
317
318 table#isi caption {
319 font-size: 10px;
320 }
321
322 table#isi thead {
323 display: table-header-group;
324 }
325
326 table#isi tr {
327 display: table-row;
328 border: 0;
329 }
330
331 table#isi th,
332 table#isi td {
333 text-align: center;
334 }
335
336 table#isi th {
337 font-size: 12px;
338 text-transform: uppercase;
339 }
340
341 table#isi td {
342 display: table-cell;
343 }
344
345 table#isi td:before {
346 display: none;
347 }
348
349 table#isi td:last-child {
350 border-bottom: 1px solid #eee;
351 }
352 }
353
354 @media screen and (max-width:320px) {
355 div#elementIdku .btn-holder.d-flex {
356 display: block !important;
357 }
358
359 div#elementIdku .btn-holder.d-flex div.ml-3{
360 margin-left:0 !important;
361 }
362
363 div#elementIdku .border {
364 border: 0px !important;
365 }
366
367
368
369 .cx-title-bread {
370 font-size: 12px;
371 position: relative;
372 }
373 i.fa.fa-link,i.fa.fa-download{
374 border: 1px solid;
375 padding: 8px;
376 border-radius: 50%;
377 }
378 }
379
380 @media (horizontal-viewport-segments: 2) {
381
382 #schedule-list td .download-schedule,
383 .tb-2 td.type-rs .btn-1 {
384 left: auto;
385 }
386
387 div#schedule-list {
388 padding: 0;
389 }
390
391 table#isi td {
392 font-size: 10px !important;
393 margin-bottom: -6px;
394 }
395
396 .modal-all-schedules.active .cs-container .box-content {
397 height: 92vh;
398 margin-top: 4vh;
399 }
400 }
401
402 @media (vertical-viewport-segments: 2) {
403
404 #schedule-list td .download-schedule,
405 .tb-2 td.type-rs .btn-1 {
406 left: auto;
407 }
408
409 div#schedule-list {
410 padding: 0;
411 margin-top: -3rem !important;
412 }
413
414 table#isi td {
415 margin-bottom: -10px;
416 }
417
418 .modal-all-schedules.active .cs-container .box-content {
419 height: 96vh;
420 margin-top: 1vh;
421 }
422
423 .modal-all-schedules.active .cs-container .box-close{
424 margin-top:1vh;
425 }
426 }
427
428 a.disabled {
429 pointer-events: none;
430 cursor: default;
431 display: none;
432 }
433
434 .payment {
435 opacity: 0;
436 }
437
438 .loader {
439 position: relative !important;
440 }
441
442 .document ul li:before {
443 opacity: 0;
444 }
445
446 .document ul {
447 list-style: disc;
448 margin-left: 0;
449 padding-left: 0;
450 padding-inline-start: 20px;
451 }
452
453 .document ul ul {
454 list-style: circle;
455 }
456
457 .cource-sub-items {
458 font-size: 16px !important;
459 font-weight: 400 !important;
460 }
461
462 .sensitive-case {
463 text-transform: none; /* Menonaktifkan transformasi teks */
464 }
465
466
467</style>
468 <div style="height:70px; width:20px; background-color:#fff"></div>
469<section class="dt-courses mode-edit-section">
470<div class="container main-wrap">
471 <div class="sp-main-bot sp-main-top">
472 <div class="cx-breadcrumb">
473 <@liferay_ui["breadcrumb"] />
474 <span class="cx-title-bread">${courseTitle.getData()}</span>
475 </div>
476 <div class="course-details-wrap clearfix">
477 <div class="course-inner">
478 <div class="row intro">
479 <div class="col-lg-5 image">
480 <img width="365" height="286"
481 src="${image.getData()}"
482 class="attachment-365x286 size-365x286" alt="${image.getData()?image.getAttribute("alt"):'' }" loading="lazy"
483 srcset="${image.getData()}"
484 sizes="(max-width: 365px) 100vw, 365px">
485 </div>
486 <div class="col-lg-7 sp-991-1">
487 <h1>${courseTitle.getData()}</h1>
488 <#if getterUtil.getBoolean(popular.getData())>
489 <div class="info-group">
490 <div class="bcol box-status">
491 <#if getterUtil.getBoolean(popular.getData())>
492 <span class="popular">POPULAR</span>
493 </#if>
494 <#if getterUtil.getBoolean(funded.getData())>
495 <span class="funded">Funded</span>
496 </#if>
497 </div>
498 <div class="sharethis">
499 </div>
500 </div>
501 <#elseif getterUtil.getBoolean(funded.getData())>
502 <div class="info-group">
503 <div class="bcol box-status">
504 <#if getterUtil.getBoolean(popular.getData())>
505 <span class="popular">POPULAR</span>
506 </#if>
507 <#if getterUtil.getBoolean(funded.getData())>
508 <span class="funded">Funded</span>
509 </#if>
510 </div>
511 <div class="sharethis">
512 </div>
513 </div>
514 </#if>
515 <#if CourseDuration.getData() !="">
516 <div class="fas fa-clock ico-row" style="display: block;">
517 <div class="row sp-row-2">
518 <div class="col-sm-4 bcol"><h2 class="cource-sub-items">Course Duration</h2></div>
519 <div class="col-sm-8 bcol">${CourseDuration.getData()?replace('hr(s)','')} hr(s)</div>
520 </div>
521 </div>
522 </#if>
523 <#if modeofAssesment.getData() !="">
524 <div class="fas fa-calendar-check ico-row" style="display: block;">
525 <div class="row sp-row-2">
526 <div class="col-sm-4 bcol"><h2 class="cource-sub-items">Mode of Assessment</h2></div>
527 <div class="col-sm-8 bcol">
528 <p>${modeofAssesment.getData()}</p>
529 </div>
530 </div>
531 </div>
532 </#if>
533 <#if whoShouldAttend.getData() !="">
534 <div class="fas fa-user-friends ico-row" style="display: block;">
535 <div class="row sp-row-2">
536 <div class="col-sm-4 bcol"><h2 class="cource-sub-items">Who Should Attend</h2></div>
537 <div class="col-sm-8 bcol">${whoShouldAttend.getData()}</div>
538 </div>
539 </div>
540 </#if>
541
542 </div>
543 </div>
544 <#if detailWhatsInItforMe.getData() !="">
545 <div>
546 <h3 style="font-weight: 700;font-size: 30px;">${whatsInItForMe.getData()}</h3>
547 ${detailWhatsInItforMe.getData()}
548 </div>
549 </#if>
550 <div class="document">
551 <div class="loader"></div>
552 <#if courseOverview.DetailCourseOverview.getData() !="">
553 <h2 id="Overview">${courseOverview.getData()}</h2>
554 <p>${courseOverview.DetailCourseOverview.getData()}</p>
555 </#if>
556
557 <!--Start Scedule-->
558 <div class="schedule-wrapper">
559
560 <h2 id="Schedule">${courseSchedule.getData()}</h2>
561 <p class="fas fa-calendar-check ico-type">Next available schedule</p>
562
563 <div id ="scdule-api"></div>
564 <div class="mb-4">
565 <#if batchID.getData() !="">
566 <div id="download-sc"></div>
567 </#if>
568
569
570 </div>
571 <div>
572 <div class="link-1 btn-all-schedules" >See All Schedules</div>
573 </div>
574
575 </div>
576 <!--End Scedule-->
577
578 <#if courseObjectives.detailCourseObjectives.getData() !="">
579 <h2 id="Objectives">${courseObjectives.getData()}</h2>
580 <p>${courseObjectives.detailCourseObjectives.getData()}</p>
581 </#if>
582
583 <#if prerequisites.detailPrerequisites.getData() !="">
584 <h2 id="Requisites">${prerequisites.getData()}</h2>
585 <p>${prerequisites.detailPrerequisites.getData()}</p>
586 </#if>
587
588 <#if courseOutline.detailCourseOutline.getData() !="">
589 <h2 id="Outline">${courseOutline.getData()}</h2>
590 <p>${courseOutline.detailCourseOutline.getData()}</p>
591 </#if>
592
593 <#if certificateObtainedAndConferredBy.detailCertificateObtainedAndConferredBy.getData() !="">
594 <h2 id="Certificate">${certificateObtainedAndConferredBy.getData()}</h2>
595 <p>${certificateObtainedAndConferredBy.detailCertificateObtainedAndConferredBy.getData()}</p>
596 </#if>
597
598 <#if additionalDetails.detailAdditionalDetails.getData() !="">
599 <h2 id="Additional">${additionalDetails.getData()}</h2>
600 <p>${additionalDetails.detailAdditionalDetails.getData()}</p>
601 </#if>
602 </div>
603 </div>
604 <div id="sidebar" class="sidebar" style="">
605 <div class="sidebar-inner" style="">
606 <div class="box">
607 <div class="title-wrap">
608 <!--<div class="status">Funded</div>-->
609
610 <p class="type-1">Course Code</p>
611 <p class="type-2">${courseCode.getData()}</p>
612
613 </div>
614 <ul>
615
616 <#if courseOverview.DetailCourseOverview.getData() !="">
617 <li class="quick-link" data-target="Overview">${courseOverview.getData()}</li>
618 </#if>
619 <#if courseDescription.getData() !="">
620 <li class="quick-link" data-target="Schedule">${courseSchedule.getData()}</li>
621 </#if>
622 <#if courseObjectives.detailCourseObjectives.getData() !="">
623 <li class="quick-link" data-target="Objectives">${courseObjectives.getData()}</li>
624 </#if>
625 <#if prerequisites.detailPrerequisites.getData() !="">
626 <li class="quick-link" data-target="Requisites">${prerequisites.getData()}</li>
627 </#if>
628 <#if courseOutline.detailCourseOutline.getData() !="">
629 <li class="quick-link" data-target="Outline">${courseOutline.getData()}</li>
630 </#if>
631 <#if certificateObtainedAndConferredBy.detailCertificateObtainedAndConferredBy.getData() !="">
632 <li class="quick-link" data-target="Certificate">${certificateObtainedAndConferredBy.getData()}</li>
633 </#if>
634 <#if additionalDetails.detailAdditionalDetails.getData() !="">
635 <li class="quick-link" data-target="Additional">${additionalDetails.getData()}</li>
636 </#if>
637
638 </ul>
639
640 <div class="price price-container">Before Funding <strong>${price.getData()}</strong>
641 <a href="#price-table"><i class="fa fa-info-circle" aria-hidden="true"></i></a>
642 </div>
643
644 <div id="reserve" class="d-none"></div>
645 <a id="starting-soon" href="javascript:void(0)" class="btn-2 btn-block d-none">Starting Soon</a>
646
647 <div id="btn-enquiry" class="mt-3"></div>
648 <!--<a id="btn-enquiry" href="/enquiry-form?course_name=${courseTitle.getData()}&course_code=${courseCode.getData()}&course_type=" class="btn-2 btn-block">ENQUIRE NOW</a>-->
649 <p style="color:#ff0000; margin-top: 5px">Please contact us through our enquiry form if there
650 are no schedules available.</p>
651 </div>
652 </div>
653 </div>
654 </div>
655 </div>
656</div>
657</section>
658<#if courseCode.getData() !="">
659<div class="modal-all-schedules">
660 <div class="container cs-container">
661 <div class="row">
662
663 <div class="box-content container">
664 <div class="position-relative float-right text-right box-close cx-box-close">
665 <i class="fas fa-times" style="font-size: 26px;"></i>
666 </div>
667 <!---Content---->
668 <div id="schedule-list" class="mt-2 table-fixed">
669 <!-- <button class="btn-2" onclick="printDiv()">DOWNLOAD ALL</button>-->
670 <div id="elementIdku" class="print-area">
671
672 <div class="btn-holder d-flex">
673 <div>
674 <a class="no-print btn-2 d-flex border-0 align-items-center cx-download" href="javascript:printDiv('elementIdku');">
675 <div class="box-icon mr-1 border border-secondary rounded-circle p-2" >
676 <!-- <i class="fa fa-download" aria-hidden="true"></i> -->
677 <!-- <i class="bi bi-download"></i> -->
678 <img src="/documents/39367/4629630/icon-download.svg" class="no-hover">
679 <img src="/documents/39367/4629630/icon-download-hover.svg" class="hover">
680 </div>
681 <span class="sensitive-case">Download all</span>
682 </a>
683 </div>
684 <div class="ml-3">
685 <a id ="copy-link" class="no-print btn-2 d-flex border-0 align-items-center cx-link" href="javascript:createLink();" data-toggle="popover" data-content="Link has been copied to clipboard">
686 <div class="box-icon mr-1 border border-secondary rounded-circle p-2" >
687 <!-- <i class="fa fa-link" aria-hidden="true"></i> -->
688 <!-- <i class="bi bi-link-45deg"></i> -->
689 <img src="/documents/39367/4629630/icon-link.svg" class="no-hover">
690 <img src="/documents/39367/4629630/icon-link-hover.svg" class="hover">
691 </div>
692 <span class="sensitive-case">Copy link</span>
693 </a>
694 </div></div>
695
696 <table id="isi" class="tb-2">
697 <thead>
698 <tr>
699 <th style="width: 150px;">Batch ID</th>
700 <th>Course Period</th>
701 <th>Course Title</th>
702 <th>Funding<br> Available</th>
703 <th>Duration<br> (Hours)</th>
704 <th>Session<br> (Hours)</th>
705 <th>Venue</th>
706 <th>Available<br> Seats</th>
707 <th>Online<br> Payment</th>
708 <th class="type-rs"></th>
709 </tr>
710 </thead>
711 <tbody>
712 </tbody>
713 </table>
714 </div>
715 </div>
716 <!----End Content---->
717 </div>
718 </div>
719 </div>
720</div>
721</#if>
722
723<textarea id="printing-css" style="display:none;">html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{
724 margin:0;
725 padding:0;
726 border:0;
727 font-size:100%;
728 font:inherit;
729 vertical-align:baseline
730}
731article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{
732 display:block
733}
734body{
735 line-height:1
736}
737table[border="1"] th,table[border="1"] td,table[border="1"] caption{
738 border:1px solid #000;
739 padding:.5em 1em;
740 text-align:left;
741 vertical-align:top;
742 margin-top:20px;
743 text-align:center;
744}
745th{
746 padding:10px 8px;
747 text-align: center;
748 background-color: #18355f;
749 color: white;
750 vertical-align: middle;
751}
752td{
753 padding:10px 8px;
754 text-align: center;
755 background-color:#dcedf5;
756 vertical-align: middle;
757}
758.btn-1{
759 background: #18355f;
760 border: #fcd205 solid 2px;
761 color: #fcd205 !important;
762 display:block;
763 padding:10px 8px;
764 text-decoration:none;
765 display:none;
766}
767.type-rs{
768 display:none;
769}
770.payment{
771 opacity:1;
772 }
773table[border="1"] caption{
774 border:none;
775 font-style:italic
776}
777.no-print{
778 display:none
779}
780</textarea>
781 <iframe name="print_frame" src="about:blank" style="border:0px; display:none"></iframe>
782 <script>
783 $(document).ready(function () {
784
785 getGlobalCourseType();
786 //console.log("courseTypeGlobal = "+courseTypeGlobal);
787
788 //popover
789 $('[data-toggle="popover"]').popover();
790
791 // mengaktifkan Popover secara otomatis saat tautan di klik
792 $('#copy-link').on('click', function() {
793 var link = $(this);
794
795 // menampilkan Popover setelah penundaan 2 detik
796 setTimeout(function() {
797 link.popover('show');
798
799 // menghilangkan Popover setelah penundaan 2 detik
800 setTimeout(function() {
801 link.popover('hide');
802 }, 2000);
803 }, 2000);
804 });
805
806 });
807 var groupId = '${themeDisplay.getScopeGroupId()}';
808 var portalURL = '${themeDisplay.getPortalURL()}';
809 console.log("Portal URL: "+portalURL);
810
811
812 function createLink() {
813 // Create a dummy input to copy the string array inside it
814 var dummy = document.createElement("input");
815 // Add it to the document
816 document.body.appendChild(dummy);
817 // Set its ID
818 dummy.setAttribute("id", "copy_url_id");
819 // Output the array into it
820 var courseCodeCopy = '${courseCode.getData()}';
821 document.getElementById("copy_url_id").value=portalURL+"/course-schedules-link?courseCode="+courseCodeCopy;
822 // Select it
823 dummy.select();
824 // Copy its contents
825 document.execCommand("copy");
826 // Remove it as its not needed anymore
827 document.body.removeChild(dummy);
828 }
829
830 function getGlobalCourseType () {
831 console.log('${courseCode.getData()}', "course code");
832 console.log(groupId, "group id");
833 Liferay.Service(
834 '/ntuc_course_admin.course/get-course-by-course-code',
835 {
836 groupId : groupId,
837 courseCode: '${courseCode.getData()}',
838 deleted: false
839 },
840 function(result) {
841 let courseType = result.length != 0 ? result[0]['courseType'] : '';
842 loadRealData(courseType);
843 }
844 );
845 }
846
847 function loadRealData(courseTypeGlob) {
848 Liferay.Service(
849 '/ntuc_course_admin.course/get-course-schedule-from-tms',
850 {
851 groupId : groupId,
852 courseCode: '${courseCode.getData()}'
853 },
854 function(data) {
855 if(data.length == undefined) {
856 console.log('failed hit api');
857 loadapiintern(courseTypeGlob);
858 } else if (data.length == 0) {
859 console.log('success hit api but length = 0');
860 $('.loader').fadeOut('slow');
861 $(".schedule-wrapper").addClass("d-none");
862 $("#starting-soon").removeClass("d-none");
863 }else {
864 console.log('not empty');
865 $('.loader').fadeOut('slow');
866
867 data.sort(function(a,b){
868 return convert(a.start_date) - convert(b.start_date)
869 });
870
871
872 $.each(data, function (i) {
873 var idbatch = data[i].batchid;
874 var startdate = convert(data[i].start_date).toISOString().slice(0,10) ;
875 var enddate = convert(data[i].end_date).toISOString().slice(0,10);
876
877 var courseduration = data[i].course_duration;
878 var noseats = data[i].availability;
879 var venue = data[i].venue;
880 var othersdetails = data[i].description;
881 var coursetitle = data[i].course_title;
882 var fundedcourseflag = data[i].funded_course_flag;
883 var allowOnlinePayment = data[i].allow_online_payment;
884 var urlDownloadAll= "https://tmspro.ntuclearninghub.com/portal/addins/cms/prtcourseschedule.do?batchid="+idbatch+"&prtindicator=P&autologin=1" ;
885 var urlReserveAll= "https://tmspro.ntuclearninghub.com/portal/addins/cms/initregister.do?batchid="+idbatch+"&autologin=1" ;
886
887//format date
888 var sdate = new Date(startdate);
889 var year = sdate.getFullYear();
890 var month = sdate.getMonth()+1;
891 var gdt = sdate.getDate();
892 var formatdate = (gdt+'-' + month + '-'+year);
893
894 var edate = new Date(enddate);
895 var eyear = edate.getFullYear();
896 var emonth = edate.getMonth()+1;
897 var egdt = edate.getDate();
898 var formatedate = (egdt+'-' + emonth + '-'+eyear);
899
900 //var coursetype = courseTypeGlobal;
901 //if(allowOnlinePayment == 'Yes') {
902 // <i class="fas fa-check color-info"></i>
903 //}
904
905 $("#isi").append("<tr><td class='text-left'>" + idbatch + "<a href='" + urlDownloadAll + "'class='btn-1 btn-block download-schedule' target='_blank'>Download schedule</a> </td><td>" + formatdate + " to " + formatedate + "</td><td>" + coursetitle + "</td><td><i class='iconcheckfunded '><span class='payment'>"+fundedcourseflag+"</span></i></td><td>" + courseduration + "</td><td>" + othersdetails + "</td><td>" + venue + "</td><td>" + noseats + "</td><td> <i class='iconcheck '><span class='payment'>"+allowOnlinePayment+"</span></i></td><td class='type-rs'><a id='btn-reserve-isi-"+i+"' href='" +urlReserveAll+ "'class='btn-1 btn-block btn-reserve d-none' target='_blank'>Reserve a spot</a></td><tr>");
906
907 if(noseats != '' && noseats != '0' && idbatch != ''){
908 $('#btn-reserve-isi-'+i).removeClass("d-none");
909 }
910
911
912 if (i == 0) {
913 console.log("noseats = "+noseats);
914 console.log("idbatch = "+idbatch);
915 if(noseats != '' && noseats != '0' && idbatch != ''){
916 $("#reserve").removeClass("d-none");
917 } else {
918 $("#starting-soon").removeClass("d-none");
919 }
920
921 $("#scdule-api").append("<div class='schedule-tb'><div class='row'><div class='col-xl-2 col-lg-3 col-6'><h5>Start date</h5><p>" + formatdate + "</p></div><div class='col-xl-2 col-lg-3 col-6'><h5>End date</h5><p>"+formatedate+"</p></div><div class='col-xl-2 col-lg-3 col-6'><h5>Course Duration</h5><p>" + courseduration + " hr(s)</p></div><div class='col-xl-2 col-lg-3 col-6'><h5>No. seats</h5><p>" + noseats + "</p></div></div><div class='row'><div class='col-xl-4 col-6'><h5>Venue</h5><p>" + venue + "</p></div><div class='col-xl-4 col-6'><h5>Other details</h5><p>" + othersdetails + "</p></div></div></div>");
922
923 $("#download-sc").append("<a class='btn-2' href='" + urlDownloadAll + "'>Download schedule</a>");
924 $("#reserve").append("<a href='" +urlReserveAll+ "' class='btn-1 btn-block btn-reserve' target='_blank'>Reserve a spot</a>");
925
926 }
927 if(data[i].allow_web_registration == 'No') {
928 $(".btn-reserve").addClass("disabled");
929 }
930 if(data[i].allow_online_payment == 'Yes') {
931 $(".iconcheck").addClass("fas fa-check color-info");
932 } else if(data[i].allow_online_payment == 'No'){
933 $(".iconcheck").addClass("fas fa-times color-info");
934 }
935
936 if(data[i].funded_course_flag == 'Yes') {
937 $(".iconcheckfunded").addClass("fas fa-check color-info");
938 } else if(data[i].funded_course_flag == 'No'){
939 $(".iconcheckfunded").addClass("fas fa-times color-info");
940 }
941
942 console.log(i);
943 })
944 }
945 $("#btn-enquiry").append("<a href='/enquiry-form?course_name=${htmlUtil.escape(courseTitle.getData())}&course_code=${courseCode.getData()}&course_type="+courseTypeGlob+" 'class='btn-2 btn-block'>ENQUIRE NOW</a>");
946 }
947 );
948 }
949
950 function isEmpty(obj) {
951 for(var prop in obj) {
952 if(obj.hasOwnProperty(prop))
953 return false;
954 }
955
956 return true;
957 }
958
959 function loadapiintern(courseTypeGlob) {
960
961 Liferay.Service(
962 '/ntuc_course_admin.course/get-course-by-course-code',
963 {
964 groupId : groupId,
965 courseCode: '${courseCode.getData()}',
966 deleted: false
967 },
968 function(obj) {
969 if (obj.length == 0) {
970 $('.loader').fadeOut('slow');
971 $(".schedule-wrapper").addClass("d-none");
972 $("#starting-soon").removeClass("d-none");
973 } else {
974 jQuery.each( obj, function( i, val ) {
975 var idbatch = obj[i].batchId;
976 var startdate = new Date(obj[i].startDate).toISOString().slice(0,10);
977 var enddate = new Date(obj[i].endDate).toISOString().slice(0,10);
978 var courseduration = obj[i].courseDuration;
979 var availability = obj[i].availability;
980 var venue = obj[i].venue;
981 var description = obj[i].description;
982 var coursetitle = obj[i].courseTitle;
983 var allowonlinepayment = obj[i].allowOnlinePayment;
984 var fundedcourseflag = obj[i].fundedCourseFlag;
985 //var coursetype = obj[i].courseType;
986 var urlDownloadAll= "https://tmspro.ntuclearninghub.com/portal/addins/cms/prtcourseschedule.do?batchid="+idbatch+"&prtindicator=P&autologin=1" ;
987 var urlReserveAll= "https://tmspro.ntuclearninghub.com/portal/addins/cms/initregister.do?batchid="+idbatch+"&autologin=1" ;
988
989//format date
990 var sdate = new Date(startdate);
991 var year = sdate.getFullYear();
992 var month = sdate.getMonth()+1;
993 var gdt = sdate.getDate();
994 var formatdate = (gdt+'-' + month + '-'+year);
995
996 var edate = new Date(enddate);
997 var eyear = edate.getFullYear();
998 var emonth = edate.getMonth()+1;
999 var egdt = edate.getDate();
1000 var formatedate = (egdt+'-' + emonth + '-'+eyear);
1001
1002
1003 $("#isi").append("<tr><td class='text-left'> "+idbatch+" <a href='" + urlDownloadAll + "'class='btn-1 btn-block download-schedule' target='_blank'>Download schedule</a></td><td>" + startdate + " to " + enddate + "</td><td>" + coursetitle + "</td><td><i class='iconcheckfunded '><span class='payment'>"+fundedcourseflag+"</span></i></td><td>" + courseduration+ "</td><td>" + description + "</td><td>" + venue + "</td><td>" + availability + "</td><td> <i class='iconcheck '><span class='payment'>"+allowonlinepayment+"</span></i></td><td class='type-rs'><a id='btn-reserve-isi' href='" +urlReserveAll+ "'class='btn-1 btn-block' target='_blank'>Reserve a spot</a></td><tr>");
1004
1005 if(noseats != '' && noseats != '0' && idbatch != ''){
1006 $('#btn-reserve-isi').removeClass("d-none");
1007 }
1008
1009 if (i == 0) {
1010
1011 if(availability != "" && availability != "0" && idbatch != ""){
1012 $("#reserve").removeClass("d-none");
1013 } else {
1014 $("#starting-soon").removeClass("d-none");
1015 }
1016 $("#scdule-api").append("<div class='schedule-tb'><div class='row'><div class='col-xl-2 col-lg-3 col-6'><h5>Start date</h5><p>" + startdate + "</p></div><div class='col-xl-2 col-lg-3 col-6'><h5>End date</h5><p>" + enddate + "</p></div><div class='col-xl-2 col-lg-3 col-6'><h5>Course Duration</h5><p>" + courseduration + " hr(s)</p></div><div class='col-xl-2 col-lg-3 col-6'><h5>No. seats</h5><p>" + availability + "</p></div></div><div class='row'><div class='col-xl-4 col-6'><h5>Venue</h5><p>" + venue + "</p></div><div class='col-xl-4 col-6'><h5>Other details</h5><p>" + description + "</p></div></div></div>");
1017
1018 $("#download-sc").append("<a class='btn-2' href='"+ urlDownloadAll +"'>Download schedule</a>");
1019
1020 $("#reserve").append("<a href='"+ urlReserveAll +"' class='btn-1 btn-block' target='_blank'>Reserve a spot</a>");
1021
1022
1023 }
1024 if(obj[i].allowWebRegistration == false) {
1025 $(".btn-reserve").addClass("disabled");
1026 }
1027 if(obj[i].allowOnlinePayment == true) {
1028 $(".iconcheck").addClass("fas fa-check color-info");
1029 } else if(obj[i].allowOnlinePayment == false){
1030 $(".iconcheck").addClass("fas fa-times color-info");
1031 }
1032
1033 if(obj[i].fundedCourseFlag == true) {
1034 $(".iconcheckfunded").addClass("fas fa-check color-info");
1035 } else if(obj[i].fundedCourseFlag == false){
1036 $(".iconcheckfunded").addClass("fas fa-times color-info");
1037 }
1038
1039
1040 });
1041
1042 //var enquiryLink = document.getElementById("btn-enquiry").href;
1043 //enquiryLink += obj[0].courseType;
1044 //document.getElementById("btn-enquiry").href = enquiryLink;
1045
1046 $("#btn-enquiry").append("<a href='/enquiry-form?course_name=${htmlUtil.escape(courseTitle.getData())}&course_code=${courseCode.getData()}&course_type="+courseTypeGlob+" 'class='btn-2 btn-block'>ENQUIRE NOW</a>");
1047 }
1048 $('.loader').fadeOut('slow');
1049 }
1050
1051 );
1052 }
1053
1054 function convert(date) {
1055 var parts = date.split("/");
1056 var dt = new Date(parseInt(parts[2], 10),
1057 parseInt(parts[1], 10) - 1,
1058 parseInt(parts[0], 10) + 1);
1059 return dt;
1060 }
1061
1062 //var enquiryLink = document.getElementById("btn-enquiry").href;
1063 //enquiryLink += this['courseType'];
1064 //document.getElementById("btn-enquiry").href = enquiryLink;
1065 //console.log(enquiryLink)coursetype
1066 //}
1067 //);
1068 //});
1069 </script>
1070 <script>
1071 function printDiv(elementIdku) {
1072 var a = document.getElementById('printing-css').value;
1073 var b = document.getElementById(elementIdku).innerHTML;window.frames["print_frame"].document.body.innerHTML =
1074
1075 window.frames["print_frame"].document.body.innerHTML = '<style>' + a + '</style>' + b;
1076 window.frames["print_frame"].window.focus();
1077 window.frames["print_frame"].window.print();
1078 }
1079 </script>
1080
1081
1082
1083 <!-- Sosial Share -->
1084 <section class="fixed-sosial">
1085<div class="sidebar-sosial">
1086 <div class="social facebook">
1087 <a href="javascript:void(window.open('https://www.facebook.com/sharer.php?u=' + encodeURIComponent(document.location) + '?t=' + encodeURIComponent(document.title),
1088'mywin','left=20,top=20,width=500,height=500,toolbar=1,resizable=0'))" >
1089 <p><i class="fab fa-facebook-f"></i><span>Share</span> </p>
1090 </a>
1091 </div>
1092 <div class="social twitter">
1093 <a href="javascript:void(window.open('https://twitter.com/share?url=' + encodeURIComponent(document.location) + '&text=' + encodeURIComponent(document.title) + '&via=fabienb&hashtags=koandesign','mywin','left=20,top=20,width=500,height=500,toolbar=1,resizable=0'))">
1094 <p><i class="fab fa-twitter"></i><span>Tweet</span></p>
1095 </a>
1096 </div>
1097 <div class="social pinterest">
1098 <a href="javascript:void(window.open('https://www.pinterest.com/sharer.php?u=' + encodeURIComponent(document.location) + '?t=' + encodeURIComponent(document.title),
1099'mywin','left=20,top=20,width=500,height=500,toolbar=1,resizable=0'))" >
1100 <p><i class="fab fa-pinterest"></i><span>Pin</span></p>
1101 </a>
1102 </div>
1103 <div class="social envelope">
1104 <a href="javascript:void(window.open('mailto:?subject=' + encodeURIComponent(document.location) + '?t=' + encodeURIComponent(document.title),
1105'mywin','left=20,top=20,width=500,height=500,toolbar=1,resizable=0'))">
1106 <p><i class="far fa-envelope"></i><span>Email</span></p>
1107 </a>
1108 </div>
1109 <div class="social whatsapp">
1110 <a href="javascript:void(window.open('https://web.whatsapp.com/sharer.php?u=' + encodeURIComponent(document.location) + '?t=' + encodeURIComponent(document.title),
1111'mywin','left=20,top=20,width=500,height=500,toolbar=1,resizable=0'))">
1112 <p><i class="fab fa-whatsapp"></i><span>Share</span></p>
1113 </a>
1114 </div>
1115 <div class="social linkedin">
1116 <a href="javascript:void(window.open('https://www.linkedin.com/shareArticle?url=' + encodeURIComponent(document.location) + '&title=' + encodeURIComponent (document.title),'mywin','left=20,top=20,width=500,height=500,toolbar=1,resizable=0'))">
1117 <p><i class="fab fa-linkedin-in"></i><span>Share</span></p>
1118 </a>
1119 </div>
1120 <div class="social messenger">
1121 <a href="javascript:void(window.open('https://www.facebook.com/dialog/send?link=' + encodeURIComponent(document.location) + '&title=' + encodeURIComponent (document.title),'mywin','left=20,top=20,width=500,height=500,toolbar=1,resizable=0'))" >
1122 <p><i class="fab fa-facebook-messenger"></i><span>Share</span></p>
1123 </a>
1124 </div>
1125
1126
1127</div>
1128 <div class="st-toggle">
1129 <div class="st-left">
1130 <i class="fas fa-angle-double-left"></i>
1131 </div>
1132 <div class="st-right">
1133 <i class="fas fa-angle-double-right"></i>
1134 </div>
1135</div>
1136</section>
1137<!--
1138<script>
1139$(document).ready(function(){
1140 $('a').attr('target', '_blank');
1141});-->
1142</script>
What Others Also Enrolled In
FURNITURE AND FURNISHING MAINTENANCE (PERFORM ADVANCED CLEANING OF CARPETS AND UPHOLSTERY - CLACC)
View detailHORIZONTAL SURFACE MAINTENANCE (PERFORM ADVANCED CLEANING OF HARD FLOOR SURFACES - CLACHF)
View detailWASHROOM MAINTENANCE (PERFORM ADVANCED CLEANING OF WASHROOMS - CLACW)
View detailFURNITURE AND FURNISHING MAINTENANCE (CLEAN FURNITURE AND FURNISHINGS - CLCFF)
View detailPUBLIC HYGIENE MAINTENANCE (PERFORM CLEANING OF PUBLIC RESIDENTIAL ESTATES MANUAL - CLCREM)
View detailVERTICAL SURFACE MAINTENANCE (CLEAN VERTICAL SURFACES GLASS AND CEILING - CLCVS)
View detailEMERGENCY RESPONSE MANAGEMENT COURSE FOR CLEANERS (LEVEL 2)
View detailWORKPLACE SAFETY AND HEALTH SYSTEM MANAGEMENT (MAINTAIN WORKPLACE SAFETY AND HEALTH POLICIES PROCEDURES - CLMWSH)
View detailHORIZONTAL SURFACE MAINTENANCE (PERFORM BASIC CLEANING OF CARPETS - CLPBCC)
View detailHORIZONTAL SURFACE MAINTENANCE (PERFORM BASIC CLEANING OF HARD FLOOR SURFACES - CLPBCHF)
View detailWASHROOM MAINTENANCE (PERFORM BASIC CLEANING OF WASHROOMS - CLPBCW)
View detailLEARNING AND DEVELOPMENT (PROVIDE ON-THE-JOB TRAINING - CLPOJT)
View detailSTAKEHOLDER MANAGEMENT (SCHEDULE AND SUPERVISE CLEANING SERVICES - CLSSCS)
View detailWSH CULTURE DEVELOPMENT COURSE FOR CLEANING SUPERVISORS (LEVEL 3)
View detailEMERGENCY RESPONSE MANAGEMENT COURSE FOR CLEANING SUPERVISORS (LEVEL 3)
View detailWORKPLACE SAFETY AND HEALTH PERFORMANCE MANAGEMENT COURSE FOR CLEANING SUPERVISORS (LEVEL 2)
View detail