25 Commits

Author SHA1 Message Date
Paul Kim
0dee6a9a92 issue #10 #11 Add exception routine for power off by remote with hdmi input mode. Fix news doesn't show correctly after hdmi input disconnected. 2024-05-01 16:16:22 +09:00
Paul Kim
1880fae37a issue #10 #11 instand power mode scheme modified and add some time delay for fading out busy window on play welcome movie. 2024-04-29 19:46:22 +09:00
Paul Kim
f679231d2d issue #10 #11 fixed didn't power off when issued stop mqtt event. 2024-04-18 18:10:21 +09:00
Paul Kim
ed75e5f8fb issue #10 #11 Change operation method for using debug option. 2024-04-11 17:05:06 +09:00
Paul Kim
fe71eb5561 issue #11 Remove carts when loading app full. 2024-03-29 18:01:10 +09:00
Paul Kim
d7a6748ff8 issue #11 Fix text overflow issue on amenity item selection order lists. 2024-03-29 17:53:39 +09:00
Paul Kim
9da17b7835 issue #11 Fix brochure navigation dot not show issue. 2024-03-29 16:48:16 +09:00
Paul Kim
6979da71d4 issue #11 Fix wrong action when hdmi unplaged. 2024-03-29 14:06:21 +09:00
Paul Kim
8b847aaea2 issue #11 #10 Fix MQTT routine bug on app full. Adjust amenity item selection title. 2024-03-27 20:20:03 +09:00
Paul Kim
5c5f58defc issue #1 Fix amenity&room service item list scroll issue. change user guide text color. 2024-03-26 18:52:12 +09:00
Paul Kim
0589fe80ab issue #11 Fix amenity&roomservice item selection bug. 2024-03-23 18:22:31 +09:00
Paul Kim
f79dc7e06b issue #11 Adjust ui font size. 2024-03-21 12:19:23 +09:00
Paul Kim
93dae53e28 issue #11 Fix amenity&room seervice order popup shows up when those are disabled. 2024-03-19 12:32:04 +09:00
Paul Kim
81ba70644e issue #11 Fix cannot exit on order menu(amenity and roomservice). 2024-03-19 10:49:30 +09:00
Paul Kim
91e52f331c issue #11 Done Amenity&Room service renewal 2024-03-18 17:46:56 +09:00
Paul Kim
67983df543 issue #11 Room service renewal integration from amenity stuff. 2024-03-18 11:38:06 +09:00
Paul Kim
02ad6a7055 issue #11 Done amenity feature renewal at 1st step. 2024-03-18 09:50:07 +09:00
Paul Kim
d9f0ee0e34 issue #11 Fix multiple play bug in welcome video playback. Preparing amenity order history feature. 2024-03-17 17:37:21 +09:00
Paul Kim
4ef3896e2c issue #11 Done amenity category feature including add to cart, order feature. 2024-03-17 16:46:10 +09:00
Paul Kim
f98e3d6520 issue #11 Fix startup logo background image missing. 2024-03-17 16:45:27 +09:00
Paul Kim
ea812e34a1 issue #11 Done amenity cart scrolling function on category item selection popup. 2024-03-16 21:53:02 +09:00
Paul Kim
2b36279807 issue #11 Done shooping cart on amenity category item selection. 2024-03-15 22:37:30 +09:00
Paul Kim
d805f4bb44 issue #11 Done amenity quantity control pop ui. 2024-03-15 17:43:02 +09:00
Paul Kim
08ad96e59b issue #11 going on developing new amenity&room service ui: 1st done(amenity menu selection) 2024-03-13 20:02:16 +09:00
Paul Kim
97afa01319 issue #11 Going on amenity renewering. 2024-03-12 22:32:23 +09:00
25 changed files with 8168 additions and 9977 deletions

View File

@@ -8,7 +8,6 @@
<link rel="stylesheet" href="/procentric/application/css/owlcarousel/owl.carousel.min.css"> <link rel="stylesheet" href="/procentric/application/css/owlcarousel/owl.carousel.min.css">
<link rel="stylesheet" href="/procentric/application/css/owlcarousel/owl.theme.default.min.css"> <link rel="stylesheet" href="/procentric/application/css/owlcarousel/owl.theme.default.min.css">
<link rel="stylesheet" href="/procentric/application/css/acmeticker/style.css"> <link rel="stylesheet" href="/procentric/application/css/acmeticker/style.css">
<link rel="stylesheet" href="/procentric/application/css/lightslider.css">
<title>CENTIRM LG-PROCENTRIC HOTEL SERVICE</title> <title>CENTIRM LG-PROCENTRIC HOTEL SERVICE</title>
</head> </head>
@@ -182,176 +181,100 @@
<div class="owl-carousel owl-theme" id="lst_hotkey_mm_blue"></div> <div class="owl-carousel owl-theme" id="lst_hotkey_mm_blue"></div>
</div> </div>
<div class="amenity"> <div class="amenity">
<div class="menu"> <div class="bg">
<div id="title"></div> <div class="owl-carousel owl-theme" id="lst_ctgbg"></div>
<div id="usage"></div>
<div id="items">
<table class="tbl_header">
<tbody id="hdr">
<tr>
<th id="type"></th>
<th id="quantity"></th>
</tr>
</tbody>
</table>
<table class="tbl_record">
<tbody id="record"></tbody>
</table>
</div>
<div id="summary">
<div id="title"></div>
<div id="value"></div>
<div id="quantity"></div>
</div>
<div id="buttons">
<div id="order"></div>
<div id="details"></div>
<div id="cancel"></div>
</div>
</div> </div>
<div class="description"> <div class="slider">
<div id="title"></div> <div class="owl-carousel owl-theme" id="lst_ctgsel"></div>
<div id="comment"></div>
<div id="thumb"></div>
</div> </div>
<div class="cart-list"> <div class="cart">
<div id="title"></div> <div>
<div id="usage"></div> <div class="menu">
<div id="items"> <div>
<table class="tbl_header"> <div id="title"></div>
<tbody id="hdr"> <div id="control">
<tr> <div id="thumb"></div>
<th id="type"></th> <div>
<th id="quantity"></th> <div id="quantity"></div>
<th id="amount"></th> <div>
</tr> <div id="icon_up"></div>
</tbody> <div id="number"></div>
</table> <div id="icon_down"></div>
<table class="tbl_record"> </div>
<tbody id="record"></tbody> </div>
</table> <div>
</div> <div id="amount"></div>
<div id="summary"> <div id="total"></div>
<div id="title"></div> </div>
<div id="quantity"></div> </div>
<div id="amount"></div> <div id="description">
</div> <div id="name"></div>
<div id="notice"></div> <div id="details"></div>
<div id="buttons"> </div>
<div> </div>
<div id="confirm"></div>
</div> </div>
<div> <div class="items">
<div id="cancel"></div> <div id="title"></div>
<div id="table"></div>
<div id="amount">
<div id="total"></div>
<div id="value"></div>
</div>
</div> </div>
</div> </div>
</div> </div>
<div class="order-details"> <div class="order">
<div id="title"></div> <div class="winleft"></div>
<div id="usage"></div>
<div id="orders">
<table class="order_list">
<tbody id="record"></tbody>
</table>
</div>
<div id="summary">
<div id="title"></div>
<div id="quantity"></div>
<div id="amount"></div>
</div>
</div>
<div class="alert">
<div id="order-complete">
<div id="title"></div>
<div id="message"></div>
</div>
</div> </div>
<div class="use_guide"></div>
</div> </div>
<div class="roomservice"> <div class="roomservice">
<div class="menu"> <div class="bg">
<div id="title"></div> <div class="owl-carousel owl-theme" id="lst_ctgbg"></div>
<div id="usage"></div>
<div id="items">
<table class="tbl_header">
<tbody id="hdr">
<tr>
<th id="type"></th>
<th id="quantity"></th>
</tr>
</tbody>
</table>
<table class="tbl_record">
<tbody id="record"></tbody>
</table>
</div>
<div id="summary">
<div id="title"></div>
<div id="value"></div>
<div id="quantity"></div>
</div>
<div id="buttons">
<div id="order"></div>
<div id="details"></div>
<div id="cancel"></div>
</div>
</div> </div>
<div class="description"> <div class="slider">
<div id="title"></div> <div class="owl-carousel owl-theme" id="lst_ctgsel"></div>
<div id="comment"></div>
<div id="thumb"></div>
</div> </div>
<div class="cart-list"> <div class="cart">
<div id="title"></div> <div>
<div id="usage"></div> <div class="menu">
<div id="items"> <div>
<table class="tbl_header"> <div id="title"></div>
<tbody id="hdr"> <div id="control">
<tr> <div id="thumb"></div>
<th id="type"></th> <div>
<th id="quantity"></th> <div id="quantity"></div>
<th id="amount"></th> <div>
</tr> <div id="icon_up"></div>
</tbody> <div id="number"></div>
</table> <div id="icon_down"></div>
<table class="tbl_record"> </div>
<tbody id="record"></tbody> </div>
</table> <div>
</div> <div id="amount"></div>
<div id="summary"> <div id="total"></div>
<div id="title"></div> </div>
<div id="quantity"></div> </div>
<div id="amount"></div> <div id="description">
</div> <div id="name"></div>
<div id="notice"></div> <div id="details"></div>
<div id="buttons"> </div>
<div> </div>
<div id="confirm"></div>
</div> </div>
<div> <div class="items">
<div id="cancel"></div> <div id="title"></div>
<div id="table"></div>
<div id="amount">
<div id="total"></div>
<div id="value"></div>
</div>
</div> </div>
</div> </div>
</div> </div>
<div class="order-details"> <div class="order">
<div id="title"></div> <div class="winleft"></div>
<div id="usage"></div>
<div id="orders">
<table class="order_list">
<tbody id="record"></tbody>
</table>
</div>
<div id="summary">
<div id="title"></div>
<div id="quantity"></div>
<div id="amount"></div>
</div>
</div>
<div class="alert">
<div id="order-complete">
<div id="title"></div>
<div id="message"></div>
</div>
</div> </div>
<div class="use_guide"></div>
</div> </div>
<div class="mypage"> <div class="mypage">
<div class="message"> <div class="message">
@@ -417,8 +340,7 @@
<script src="/procentric/application/lib/jquery.color-2.1.2.min.js"></script> <script src="/procentric/application/lib/jquery.color-2.1.2.min.js"></script>
<script src="/procentric/application/lib/jquery.webticker.min.js"></script> <script src="/procentric/application/lib/jquery.webticker.min.js"></script>
<script src="/procentric/application/lib/xml2json.js"></script> <script src="/procentric/application/lib/xml2json.js"></script>
<script src="/procentric/application/lib/owl.carousel.js"></script> <script src="/procentric/application/lib/owl.carousel.min.js"></script>
<script src="/procentric/application/lib/lightslider.js"></script>
<!-- LG HCAP Library --> <!-- LG HCAP Library -->
<script src="/procentric/application/lib/hcap.js"></script> <script src="/procentric/application/lib/hcap.js"></script>
@@ -483,7 +405,9 @@
switch (e.keyCode) { switch (e.keyCode) {
case 602: // Portail case 602: // Portail
window.location.replace('./index.html'); if ( HotelTV.dbginfo['en'] == true ) {
window.location.replace('./index.html');
}
break; break;
case 409: case 409:
HotelTV.hcap.PwrOff(); HotelTV.hcap.PwrOff();

View File

@@ -1,392 +0,0 @@
/*! lightslider - v1.1.3 - 2015-04-14
* https://github.com/sachinchoolur/lightslider
* Copyright (c) 2015 Sachin N; Licensed MIT */
/** /!!! core css Should not edit !!!/**/
.lSSlideOuter {
overflow: hidden;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none
}
.lightSlider:before, .lightSlider:after {
content: " ";
display: table;
}
.lightSlider {
overflow: hidden;
margin: 0;
}
.lSSlideWrapper {
max-width: 100%;
overflow: hidden;
position: relative;
}
.lSSlideWrapper > .lightSlider:after {
clear: both;
}
.lSSlideWrapper .lSSlide {
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
-webkit-transition: all 1s;
-webkit-transition-property: -webkit-transform,height;
-moz-transition-property: -moz-transform,height;
transition-property: transform,height;
-webkit-transition-duration: inherit !important;
transition-duration: inherit !important;
-webkit-transition-timing-function: inherit !important;
transition-timing-function: inherit !important;
}
.lSSlideWrapper .lSFade {
position: relative;
}
.lSSlideWrapper .lSFade > * {
position: absolute !important;
top: 0;
left: 0;
z-index: 9;
margin-right: 0;
width: 100%;
}
.lSSlideWrapper.usingCss .lSFade > * {
opacity: 0;
-webkit-transition-delay: 0s;
transition-delay: 0s;
-webkit-transition-duration: inherit !important;
transition-duration: inherit !important;
-webkit-transition-property: opacity;
transition-property: opacity;
-webkit-transition-timing-function: inherit !important;
transition-timing-function: inherit !important;
}
.lSSlideWrapper .lSFade > *.active {
z-index: 10;
}
.lSSlideWrapper.usingCss .lSFade > *.active {
opacity: 1;
}
/** /!!! End of core css Should not edit !!!/**/
/* Pager */
.lSSlideOuter .lSPager.lSpg {
margin: 10px 0 0;
padding: 0;
text-align: center;
}
.lSSlideOuter .lSPager.lSpg > li {
cursor: pointer;
display: inline-block;
padding: 0 5px;
}
.lSSlideOuter .lSPager.lSpg > li a {
background-color: #222222;
border-radius: 30px;
display: inline-block;
height: 8px;
overflow: hidden;
text-indent: -999em;
width: 8px;
position: relative;
z-index: 99;
-webkit-transition: all 0.5s linear 0s;
transition: all 0.5s linear 0s;
}
.lSSlideOuter .lSPager.lSpg > li:hover a, .lSSlideOuter .lSPager.lSpg > li.active a {
background-color: #428bca;
}
.lSSlideOuter .media {
opacity: 0.8;
}
.lSSlideOuter .media.active {
opacity: 1;
}
/* End of pager */
/** Gallery */
.lSSlideOuter .lSPager.lSGallery {
list-style: none outside none;
padding-left: 0;
margin: 0;
overflow: hidden;
transform: translate3d(0px, 0px, 0px);
-moz-transform: translate3d(0px, 0px, 0px);
-ms-transform: translate3d(0px, 0px, 0px);
-webkit-transform: translate3d(0px, 0px, 0px);
-o-transform: translate3d(0px, 0px, 0px);
-webkit-transition-property: -webkit-transform;
-moz-transition-property: -moz-transform;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.lSSlideOuter .lSPager.lSGallery li {
overflow: hidden;
-webkit-transition: border-radius 0.12s linear 0s 0.35s linear 0s;
transition: border-radius 0.12s linear 0s 0.35s linear 0s;
}
.lSSlideOuter .lSPager.lSGallery li.active, .lSSlideOuter .lSPager.lSGallery li:hover {
border-radius: 5px;
}
.lSSlideOuter .lSPager.lSGallery img {
display: block;
height: auto;
max-width: 100%;
}
.lSSlideOuter .lSPager.lSGallery:before, .lSSlideOuter .lSPager.lSGallery:after {
content: " ";
display: table;
}
.lSSlideOuter .lSPager.lSGallery:after {
clear: both;
}
/* End of Gallery*/
/* slider actions */
.lSAction > a {
width: 32px;
display: block;
top: 50%;
height: 32px;
background-image: url('../img/controls.png');
cursor: pointer;
position: absolute;
z-index: 99;
margin-top: -16px;
opacity: 0.5;
-webkit-transition: opacity 0.35s linear 0s;
transition: opacity 0.35s linear 0s;
}
.lSAction > a:hover {
opacity: 1;
}
.lSAction > .lSPrev {
background-position: 0 0;
left: 10px;
}
.lSAction > .lSNext {
background-position: -32px 0;
right: 10px;
}
.lSAction > a.disabled {
pointer-events: none;
}
.cS-hidden {
height: 1px;
opacity: 0;
filter: alpha(opacity=0);
overflow: hidden;
}
/* vertical */
.lSSlideOuter.vertical {
position: relative;
}
.lSSlideOuter.vertical.noPager {
padding-right: 0px !important;
}
.lSSlideOuter.vertical .lSGallery {
position: absolute !important;
right: 0;
top: 0;
}
.lSSlideOuter.vertical .lightSlider > * {
width: 100% !important;
max-width: none !important;
}
/* vertical controlls */
.lSSlideOuter.vertical .lSAction > a {
left: 50%;
margin-left: -14px;
margin-top: 0;
}
.lSSlideOuter.vertical .lSAction > .lSNext {
background-position: 31px -31px;
bottom: 10px;
top: auto;
}
.lSSlideOuter.vertical .lSAction > .lSPrev {
background-position: 0 -31px;
bottom: auto;
top: 10px;
}
/* vertical */
/* Rtl */
.lSSlideOuter.lSrtl {
direction: rtl;
}
.lSSlideOuter .lightSlider, .lSSlideOuter .lSPager {
padding-left: 0;
list-style: none outside none;
}
.lSSlideOuter.lSrtl .lightSlider, .lSSlideOuter.lSrtl .lSPager {
padding-right: 0;
}
.lSSlideOuter .lightSlider > *, .lSSlideOuter .lSGallery li {
float: left;
}
.lSSlideOuter.lSrtl .lightSlider > *, .lSSlideOuter.lSrtl .lSGallery li {
float: right !important;
}
/* Rtl */
@-webkit-keyframes rightEnd {
0% {
left: 0;
}
50% {
left: -15px;
}
100% {
left: 0;
}
}
@keyframes rightEnd {
0% {
left: 0;
}
50% {
left: -15px;
}
100% {
left: 0;
}
}
@-webkit-keyframes topEnd {
0% {
top: 0;
}
50% {
top: -15px;
}
100% {
top: 0;
}
}
@keyframes topEnd {
0% {
top: 0;
}
50% {
top: -15px;
}
100% {
top: 0;
}
}
@-webkit-keyframes leftEnd {
0% {
left: 0;
}
50% {
left: 15px;
}
100% {
left: 0;
}
}
@keyframes leftEnd {
0% {
left: 0;
}
50% {
left: 15px;
}
100% {
left: 0;
}
}
@-webkit-keyframes bottomEnd {
0% {
bottom: 0;
}
50% {
bottom: -15px;
}
100% {
bottom: 0;
}
}
@keyframes bottomEnd {
0% {
bottom: 0;
}
50% {
bottom: -15px;
}
100% {
bottom: 0;
}
}
.lSSlideOuter .rightEnd {
-webkit-animation: rightEnd 0.3s;
animation: rightEnd 0.3s;
position: relative;
}
.lSSlideOuter .leftEnd {
-webkit-animation: leftEnd 0.3s;
animation: leftEnd 0.3s;
position: relative;
}
.lSSlideOuter.vertical .rightEnd {
-webkit-animation: topEnd 0.3s;
animation: topEnd 0.3s;
position: relative;
}
.lSSlideOuter.vertical .leftEnd {
-webkit-animation: bottomEnd 0.3s;
animation: bottomEnd 0.3s;
position: relative;
}
.lSSlideOuter.lSrtl .rightEnd {
-webkit-animation: leftEnd 0.3s;
animation: leftEnd 0.3s;
position: relative;
}
.lSSlideOuter.lSrtl .leftEnd {
-webkit-animation: rightEnd 0.3s;
animation: rightEnd 0.3s;
position: relative;
}
/*/ GRab cursor */
.lightSlider.lsGrab > * {
cursor: -webkit-grab;
cursor: -moz-grab;
cursor: -o-grab;
cursor: -ms-grab;
cursor: grab;
}
.lightSlider.lsGrabbing > * {
cursor: move;
cursor: -webkit-grabbing;
cursor: -moz-grabbing;
cursor: -o-grabbing;
cursor: -ms-grabbing;
cursor: grabbing;
}

View File

@@ -1,192 +0,0 @@
body {
overflow: hidden;
}
.welcome {
position: absolute;
top: 0px;
left: 0px;
width: 1920px;
height: 1080px;
padding: 0px;
display: none;
z-index: 1;
}
.startup {
top: 0px;
left: 0px;
position: absolute;
width: 100%;
height: 100%;
padding: 0px;
/* background-image: url(./images/hoteltv_service_preparing.png); */
background-image: url(./images/hoteltv_service_preparing_joson.jpg);
background-size: cover;
background-repeat: no-repeat;
}
.welcome .frame {
position: absolute;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
padding: 0px;
background-color: rgba(0, 0, 0, 1);
background-image: none;
background-size: cover;
background-repeat: no-repeat;
display: none;
}
.welcome .frame .msgwin {
position: absolute;
top: 98px;
left: 519px;
width: 884px;
height: 648px;
padding: 0px;
/* background-image: url(./images/bg_language_welcome_box.png);
background-size: cover; */
background-repeat: no-repeat;
background: linear-gradient(rgba(45,45,45,0.6),rgba(16,16,16,0.7));
border-radius: 11px;
filter: drop-shadow(0 0 20px rgba(0, 0, 0, 0.5));
}
.welcome .frame .msgwin #hotellogo {
position: absolute;
top: 108px;
left: 135px;
width: 634px;
height: 270px;
padding: 0px;
background-image: none;
background-size: contain;
background-repeat: no-repeat;
/* background-position: center; */
background-position: top;
}
.welcome .frame .msgwin #guestname {
position: absolute;
top: 424px;
left: 0px;
width: 804px;
height: 65px;
padding: 0px 0px 5px 0px;
margin: 0px 40px 0px 40px;
background-image: none;
background-size: contain;
background-repeat: no-repeat;
background-position: center;
border-bottom: solid rgb(192,192,192) 3px;
font-size: 65px;
justify-content: center;
text-align: center;
color: rgb(235, 235, 235);
line-height: 65px;
max-width: 864px;
display: none;
}
.welcome .frame .msgwin #welcomemsg {
position: absolute;
top: 516px;
left: 0px;
width: 804px;
height: 44px;
/* padding: 0px; */
margin: 0px 40px 0px 40px;
background-image: none;
background-size: contain;
background-repeat: no-repeat;
background-position: center;
font-size: 33px;
justify-content: center;
text-align: center;
color: rgb(235, 235, 235);
line-height: 33px;
max-width: 864px;
display: none;
}
.welcome .frame .guide#langsel {
position: absolute;
top: 1037px;
left: 0px;
width: 1920px;
height: 54px;
background-color: rgba(0, 0, 0, 0.8);
display: inline-block;
color: rgba(200, 200, 200, 1);
font-size: 32px;
line-height: 43px;
text-align: center;
border-top: solid rgb(128, 128, 128);
}
.welcome #lst_langsel {
position: absolute;
top: 962px;
left: 0;
height: 76px;
line-height: 76px;
margin: 0;
padding: 0;
overflow: hidden;
display: none;
}
.welcome #lst_langsel .item {
color: rgba(200, 200, 200, 1);
font-size: 44px;
text-align: center;
background-repeat: no-repeat;
background-size: cover;
}
.welcome #lst_langsel .owl-item.active.center div {
background-image: var(--btn_focus);
}
.welcome #lst_langsel .owl-item.active div {
background-image: var(--btn_unfocus);
}
.control .skip_video {
z-index: 10000;
position: absolute;
z-index: 10000;
top: 927px;
left: 1579px;
width: 246px;
height: 68px;
padding: 0px;
background-color: rgba(0, 0, 0, 0.0);
background-image: none;
background-size: contain;
background-repeat: no-repeat;
display: none;
}
#debugwin {
z-index: 10000;
position: absolute;
top: 11px;
bottom: 22px;
right: 11px;
font-size: 12px;
background-color: rgba(18, 18, 18, 0.3);
text-align: left;
color: rgb(235, 235, 235);
line-height: 24px;
padding-left: 5px;
padding-top: 5px;
display: inline-flex;
max-width: 500px;
overflow-wrap: break-word;
word-wrap: break-word;
display: none;
}

View File

@@ -14,9 +14,7 @@
<body> <body>
<!-- Preparing Service Screen Layout --> <!-- Preparing Service Screen Layout -->
<div class="startup"> <div class="startup"></div>
</div>
<div class="error"> <div class="error">
<div id="details"> <div id="details">

View File

@@ -82,6 +82,7 @@ HotelTV.api = (function() {
*/ */
function __apifxn_get_api_url(api_type) { function __apifxn_get_api_url(api_type) {
var dic_api_url = { var dic_api_url = {
/* Setting & Contents */
"get_translation": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/translation", "get_translation": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/translation",
"get_device_settings": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/setting", "get_device_settings": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/setting",
"get_site_info": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/info", "get_site_info": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/info",
@@ -95,13 +96,18 @@ HotelTV.api = (function() {
"get_services": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/services", "get_services": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/services",
"get_news": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/news", "get_news": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/news",
"get_message": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/messages", "get_message": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/messages",
/* Requests */ /* Amenity&Room Service: get/request/sotck */
"get_ctz_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amentity",
"get_stock_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/stock",
"get_carts_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/carts", "get_carts_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/carts",
"put_carts_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/carts", "put_carts_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/carts",
"update_carts_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/carts", "update_carts_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/carts",
"delete_carts_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/carts", "delete_carts_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/carts",
"get_order_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/orders", "get_order_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/orders",
"put_order_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/orders", "put_order_amenity": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/amenity/orders",
"get_ctz_roomservice": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/roomService",
"get_stock_roomservice": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/roomService/stock",
"get_carts_roomservice": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/roomService/carts", "get_carts_roomservice": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/roomService/carts",
"put_carts_roomservice": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/roomService/carts", "put_carts_roomservice": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/roomService/carts",
"update_carts_roomservice": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/roomService/carts", "update_carts_roomservice": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/requests/roomService/carts",
@@ -115,7 +121,6 @@ HotelTV.api = (function() {
/* /*
"get_emergency": __apifxn_get_base_url() + "/api/" + _api_ver + "/settops/" + _serial_num + "/emergency", "get_emergency": __apifxn_get_base_url() + "/api/" + _api_ver + "/settops/" + _serial_num + "/emergency",
"set_message_status": __apifxn_get_base_url() + "/api/" + _api_ver + "/settops/" + _serial_num + "/messages", "set_message_status": __apifxn_get_base_url() + "/api/" + _api_ver + "/settops/" + _serial_num + "/messages",
"set_device_opmode": __apifxn_get_base_url() + "/api/" + _api_ver + "/settops/" + _serial_num + "/bbdoors/opmode", "set_device_opmode": __apifxn_get_base_url() + "/api/" + _api_ver + "/settops/" + _serial_num + "/bbdoors/opmode",
*/ */
} }
@@ -143,7 +148,7 @@ HotelTV.api = (function() {
} }
xhr.onload = function() { xhr.onload = function() {
if (xhr.status === 200 || xhr.status === 201) { if (xhr.status === 200 || xhr.status === 201 || xhr.status === 204) {
_ret.error = false; _ret.error = false;
_ret.data = xhr.response; _ret.data = xhr.response;
resolve(_ret); resolve(_ret);
@@ -330,6 +335,32 @@ HotelTV.api = (function() {
}); });
}, },
GetAmenityCtz: function() {
return new Promise((resolve, reject) => {
let sz_api_url = __apifxn_get_api_url("get_ctz_amenity");
__apifxn_CallCmsApi("GET", sz_api_url, "GetAmenityCtz", null).then(_result => {
//console.log(`Success::>${_result.data}`);
resolve(JSON.parse(_result.data));
}).catch(_error => {
console.error(`Failure::>${_error.reason}`);
reject(_error.reason);
});
});
},
GetRoomServiceCtz: function() {
return new Promise((resolve, reject) => {
let sz_api_url = __apifxn_get_api_url("get_ctz_roomservice");
__apifxn_CallCmsApi("GET", sz_api_url, "GetRoomServiceCtz", null).then(_result => {
//console.log(`Success::>${_result.data}`);
resolve(JSON.parse(_result.data));
}).catch(_error => {
console.error(`Failure::>${_error.reason}`);
reject(_error.reason);
});
});
},
GetWeather: function() { GetWeather: function() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let sz_api_url = __apifxn_get_api_url("get_weather"); let sz_api_url = __apifxn_get_api_url("get_weather");
@@ -438,9 +469,33 @@ HotelTV.api = (function() {
}); });
}, },
/**
* HotelTV API ::> get amenity stock info
* @param {string} _item_id
* @param {number} _quantity
* @returns
* null: if _item_id isn't null it will return specified info with _item_id
* {dictionary}
*/
GetAmenityStocks: function(_item_id, _quantity) {
return new Promise((resolve, reject) => {
let sz_api_url = __apifxn_get_api_url("get_stock_amenity")+ "/" + _item_id + "?quantity=" + _quantity;
__apifxn_CallCmsApi("GET", sz_api_url, "GetAmenityStocks", null).then(_result => {
//console.log(`Success::>${_result.data}`);
resolve(JSON.parse(_result.data));
}).catch(_error => {
console.error(`Failure::>${_error.reason}`);
reject(_error.reason);
});
});
},
/** /**
* HotelTV API ::> get amenity carts info * HotelTV API ::> get amenity carts info
* @param {dictionary} _item_id if _item_id isn't null it will return specified info with _item_id * @param {string} _item_id
* @returns
* null: if _item_id isn't null it will return specified info with _item_id
* {dictionary}
*/ */
GetAmenityCarts: function(_item_id) { GetAmenityCarts: function(_item_id) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@@ -457,7 +512,11 @@ HotelTV.api = (function() {
/** /**
* HotelTV API ::> put amenity carts info * HotelTV API ::> put amenity carts info
* @param {dictionary} _item_id if _item_id isn't null it will return specified info with _item_id * @param {string} _item_id
* @param {number} _quantity
* @returns
* null: if _item_id isn't null it will return specified info with _item_id
* {dictionary}
*/ */
PutAmenityCarts: function(_item_id, _quantity) { PutAmenityCarts: function(_item_id, _quantity) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@@ -474,7 +533,11 @@ HotelTV.api = (function() {
/** /**
* HotelTV API ::> update amenity carts info * HotelTV API ::> update amenity carts info
* @param {dictionary} _cart_id if _item_id isn't null it will return specified info with _item_id * @param {string} _cart_id
* @param {number} _quantity
* @returns
* null: if _item_id isn't null it will return specified info with _item_id
* {dictionary}
*/ */
UpdateAmenityCarts: function(_cart_id, _quantity) { UpdateAmenityCarts: function(_cart_id, _quantity) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@@ -491,14 +554,17 @@ HotelTV.api = (function() {
/** /**
* HotelTV API ::> delete amenity carts info * HotelTV API ::> delete amenity carts info
* @param {dictionary} _cart_id if _item_id isn't null it will return specified info with _item_id * @param {string} _cart_id
* @returns
* null: 성공하면 리턴값 없음.
* {dictionary}
*/ */
DeleteAmenityCarts: function(_cart_id) { DeleteAmenityCarts: function(_cart_id) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let sz_api_url = __apifxn_get_api_url("delete_carts_amenity"); let sz_api_url = __apifxn_get_api_url("delete_carts_amenity");
__apifxn_CallCmsApi("DELETE", `${sz_api_url}/${_cart_id}`, "DeleteAmenityCarts", null).then(_result => { __apifxn_CallCmsApi("DELETE",_cart_id==null ? `${sz_api_url}` : `${sz_api_url}/${_cart_id}`, "DeleteAmenityCarts", null).then(_result => {
//console.log(`Success::>${_result.data}`); //console.log(`Success::>${_result.data}`);
resolve(JSON.parse(_result.data)); resolve();
}).catch(_error => { }).catch(_error => {
console.error(`Failure::>${_error.reason}`); console.error(`Failure::>${_error.reason}`);
reject(_error.reason); reject(_error.reason);
@@ -508,7 +574,10 @@ HotelTV.api = (function() {
/** /**
* HotelTV API ::> get amenity order info * HotelTV API ::> get amenity order info
* @param {dictionary} _item_id if _item_id isn't null it will return specified info with _item_id * @param {string} _cart_id
* @returns
* null: if _item_id isn't null it will return specified info with _item_id
* {dictionary}
*/ */
GetAmenityOrders: function(_item_id) { GetAmenityOrders: function(_item_id) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@@ -524,12 +593,36 @@ HotelTV.api = (function() {
/** /**
* HotelTV API ::> order amenity * HotelTV API ::> order amenity
* @param {dictionary} _cart_id if _item_id isn't null it will return specified info with _item_id * @param {string} _cart_id
* @returns
* null: if _cart_id isn't null it will return specified info with _cart_id
* {dictionary}
*/ */
PutAmenityOrders: function(_cart_item) { PutAmenityOrders: function(_cart_id) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let sz_api_url = __apifxn_get_api_url("put_order_amenity"); let sz_api_url = __apifxn_get_api_url("put_order_amenity");
__apifxn_CallCmsApi("POST", `${sz_api_url}`, "PutAmenityOrders", _cart_item).then(_result => { __apifxn_CallCmsApi("POST", `${sz_api_url}`, "PutAmenityOrders", _cart_id).then(_result => {
//console.log(`Success::>${_result.data}`);
resolve(JSON.parse(_result.data));
}).catch(_error => {
console.error(`Failure::>${_error.reason}`);
reject(_error.reason);
});
});
},
/**
* HotelTV API ::> get roomservice stock info
* @param {string} _item_id
* @param {number} _quantity
* @returns
* null: if _item_id isn't null it will return specified info with _item_id
* {dictionary}
*/
GetRoomserviceStocks: function(_item_id, _quantity) {
return new Promise((resolve, reject) => {
let sz_api_url = __apifxn_get_api_url("get_stock_roomservice")+ "/" + _item_id + "?quantity=" + _quantity;
__apifxn_CallCmsApi("GET", sz_api_url, "GetRoomserviceStocks", null).then(_result => {
//console.log(`Success::>${_result.data}`); //console.log(`Success::>${_result.data}`);
resolve(JSON.parse(_result.data)); resolve(JSON.parse(_result.data));
}).catch(_error => { }).catch(_error => {
@@ -541,7 +634,10 @@ HotelTV.api = (function() {
/** /**
* HotelTV API ::> get room service carts info * HotelTV API ::> get room service carts info
* @param {dictionary} _item_id if _item_id isn't null it will return specified info with _item_id * @param {string} _item_id
* @returns
* null: if _item_id isn't null it will return specified info with _item_id
* {dictionary}
*/ */
GetRoomserviceCarts: function(_item_id) { GetRoomserviceCarts: function(_item_id) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@@ -558,7 +654,11 @@ HotelTV.api = (function() {
/** /**
* HotelTV API ::> put room service carts info * HotelTV API ::> put room service carts info
* @param {dictionary} _item_id if _item_id isn't null it will return specified info with _item_id * @param {string} _item_id
* @param {number} _quantity
* @returns
* null: if _item_id isn't null it will return specified info with _item_id
* {dictionary}
*/ */
PutRoomserviceCarts: function(_item_id, _quantity) { PutRoomserviceCarts: function(_item_id, _quantity) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@@ -575,7 +675,11 @@ HotelTV.api = (function() {
/** /**
* HotelTV API ::> update room service carts info * HotelTV API ::> update room service carts info
* @param {dictionary} _cart_id if _item_id isn't null it will return specified info with _item_id * @param {string} _item_id
* @param {number} _quantity
* @returns
* null: if _item_id isn't null it will return specified info with _item_id
* {dictionary}
*/ */
UpdateRoomserviceCarts: function(_cart_id, _quantity) { UpdateRoomserviceCarts: function(_cart_id, _quantity) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@@ -592,14 +696,17 @@ HotelTV.api = (function() {
/** /**
* HotelTV API ::> delete room service carts info * HotelTV API ::> delete room service carts info
* @param {dictionary} _cart_id if _item_id isn't null it will return specified info with _item_id * @param {string} _cart_id
* @returns
* null: if _cart_id isn't null it will return specified info with _cart_id
* {dictionary}
*/ */
DeleteRoomserviceCarts: function(_cart_id) { DeleteRoomserviceCarts: function(_cart_id) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let sz_api_url = __apifxn_get_api_url("delete_carts_roomservice"); let sz_api_url = __apifxn_get_api_url("delete_carts_roomservice");
__apifxn_CallCmsApi("DELETE", `${sz_api_url}/${_cart_id}`, "DeleteRoomserviceCarts", null).then(_result => { __apifxn_CallCmsApi("DELETE", _cart_id==null ? `${sz_api_url}` : `${sz_api_url}/${_cart_id}`, "DeleteRoomserviceCarts", null).then(_result => {
//console.log(`Success::>${_result.data}`); //console.log(`Success::>${_result.data}`);
resolve(JSON.parse(_result.data)); resolve();
}).catch(_error => { }).catch(_error => {
console.error(`Failure::>${_error.reason}`); console.error(`Failure::>${_error.reason}`);
reject(_error.reason); reject(_error.reason);
@@ -609,7 +716,10 @@ HotelTV.api = (function() {
/** /**
* HotelTV API ::> get room service order info * HotelTV API ::> get room service order info
* @param {dictionary} _item_id if _item_id isn't null it will return specified info with _item_id * @param {string} _item_id
* @returns
* null: if _item_id isn't null it will return specified info with _item_id
* {dictionary}
*/ */
GetRoomserviceOrders: function(_item_id) { GetRoomserviceOrders: function(_item_id) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@@ -625,12 +735,15 @@ HotelTV.api = (function() {
/** /**
* HotelTV API ::> order room service * HotelTV API ::> order room service
* @param {dictionary} _cart_id if _item_id isn't null it will return specified info with _item_id * @param {string} _cart_id
* @returns
* null: if _cart_id isn't null it will return specified info with _cart_id
* {dictionary}
*/ */
PutRoomserviceOrders: function(_cart_item) { PutRoomserviceOrders: function(_cart_id) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let sz_api_url = __apifxn_get_api_url("put_order_roomservice"); let sz_api_url = __apifxn_get_api_url("put_order_roomservice");
__apifxn_CallCmsApi("POST", `${sz_api_url}`, "PutRoomserviceOrders", _cart_item).then(_result => { __apifxn_CallCmsApi("POST", `${sz_api_url}`, "PutRoomserviceOrders", _cart_id).then(_result => {
//console.log(`Success::>${_result.data}`); //console.log(`Success::>${_result.data}`);
resolve(JSON.parse(_result.data)); resolve(JSON.parse(_result.data));
}).catch(_error => { }).catch(_error => {
@@ -640,7 +753,12 @@ HotelTV.api = (function() {
}); });
}, },
ReportEvent: function(_arrary_event) { /**
* 통계데이터 발송 API
* @param {array} _arrary_event
* @param {string} _type : 어메니티&룸서비스의 경우, "indirect" 그외는 null
*/
ReportEvent: function(_arrary_event, _type=null) {
let _json_event = { let _json_event = {
"events": [], "events": [],
}; };
@@ -649,6 +767,7 @@ HotelTV.api = (function() {
_json_event.events.push({ _json_event.events.push({
"power": _arrary_event[_evtidx].power, "power": _arrary_event[_evtidx].power,
"location": _arrary_event[_evtidx].location, "location": _arrary_event[_evtidx].location,
'type': _type,
"timestamp": Date.now() "timestamp": Date.now()
}) })
} }
@@ -683,7 +802,7 @@ HotelTV.api = (function() {
"mac_wifi": "", "mac_wifi": "",
"mac_bt": "", "mac_bt": "",
"speed": 0, "speed": 0,
"manufacture": "LG", "manufacture": _dev_inf['manufacture'],
"model": "", "model": "",
"hw_ver": "1.00", "hw_ver": "1.00",
"sw_ver": "1.1.5", "sw_ver": "1.1.5",
@@ -693,7 +812,7 @@ HotelTV.api = (function() {
"second": 344632, "second": 344632,
"string": "03d23h43m52s" "string": "03d23h43m52s"
}, },
"api_ver": "v1" "api_ver": "v3"
}; };
const _fxn_cvtDateFmt1 = function(_date) { const _fxn_cvtDateFmt1 = function(_date) {

View File

@@ -36,6 +36,7 @@ HotelTV.hcap = (function() {
'clock_display', 'teletext', 'secure_mmr_pairing', 'dial', 'alljoyn', 'clock_source', 'xait_version', 'clock_display', 'teletext', 'secure_mmr_pairing', 'dial', 'alljoyn', 'clock_source', 'xait_version',
'asl_mode', 'screensaver_control', 'rms_trusted_ip', 'lg_service_xml_version', 'cec_device_control', 'asl_mode', 'screensaver_control', 'rms_trusted_ip', 'lg_service_xml_version', 'cec_device_control',
'input_splash_image', 'block_usb', 'tv_channel_attribute_floating_ui', 'input_splash_image', 'block_usb', 'tv_channel_attribute_floating_ui',
'room_number',
'instant_power', 'hardware_version', 'instant_power', 'hardware_version',
'network_info', 'network_info',
'tv_channel_ui', "mute_on_tv_input", 'tv_channel_ui', "mute_on_tv_input",
@@ -298,6 +299,50 @@ HotelTV.hcap = (function() {
hcap.property.getHotelMode(param); hcap.property.getHotelMode(param);
}; };
/**
* HCAP Wrapper Function::> Set Device Power Mode(Realted HCAP API:hcap.power.setPowerMode)
* @param {string} sz_key property key name.
* @param {object} value is object to setting property
*/
function __hcapfxn_set_powermode(sz_key, value) {
return new Promise((resolve, reject) => {
let _pwrMode = null;
try {
hcap.power.getPowerMode({
"onSuccess" : function(s) {
console.log("onSuccess power mode " + s.mode);
if ( s.mode!=value )
{
hcap.power.setPowerMode({
"mode" : value,
"onSuccess" : function() {
console.log("onSuccess set power mode to " + value);
_pwrMode = s.mode;
resolve({ "key": sz_key, "value": value });
},
"onFailure" : function(f) {
console.log("onFailure : errorMessage = " + f.errorMessage);
resolve({ "key": sz_key, "value": "unknown" });
}
});
}
else
{
_pwrMode = s.mode;
resolve({ "key": sz_key, "value": value });
}
},
"onFailure": function(f) {
console.log("onFailure : errorMessage = " + f.errorMessage);
resolve({ "key": sz_key, "value": "unknown" });
}
});
} catch {
resolve({ "key": sz_key, "value": "unknown" });
}
});
};
/** /**
* HCAP Wrapper Function::> Get Cpu TIme * HCAP Wrapper Function::> Get Cpu TIme
* @param {callback} callback is callback object * @param {callback} callback is callback object
@@ -856,33 +901,50 @@ HotelTV.hcap = (function() {
}); });
}) })
// STEP#004::> Power Mode // SETP#004::> Room Number(Device Name)
let _str_newDevName = _devinfo['manufacture'] + "[" + _devconfig.roomNumber.toString() + "]";
if ( _devinfo['room_number']!=_str_newDevName ){
console.log("Set device name and room number as " + _str_newDevName );
_pmFxnArProperty.push(__hcapfxn_set_property('room_number', _str_newDevName));
}
// STEP#005::> Power Mode
if (_devinfo["instant_power"] !== undefined) { if (_devinfo["instant_power"] !== undefined) {
if (_devinfo["instant_power"] != 0) { let _instant_pwr_target_mode = 2;
if (_devinfo["instant_power"] != _instant_pwr_target_mode) {
console.log("INSTANT POWER MODE::> off"); console.log("INSTANT POWER MODE::> off");
__hcapfxn_set_property('instant_power', 0).then(_result => { __hcapfxn_set_property('instant_power', _instant_pwr_target_mode).then(_result => {
hcap.power.getPowerMode({ _devinfo["instant_power"] = _instant_pwr_target_mode;
"onSuccess": function(s) { console.log("instant_power mode set as " + _devinfo["instant_power"]);
console.log("onSuccess power mode " + s.mode);
if (s.mode != hcap.power.PowerMode.WARM) {
hcap.power.setPowerMode({
"mode": hcap.power.PowerMode.WARM,
"onSuccess": null,
"onFailure": function(f) {
console.log("onFailure : errorMessage = " + f.errorMessage);
}
});
}
},
"onFailure": function(f) {
console.log("onFailure : errorMessage = " + f.errorMessage);
}
});
}); });
} }
if ( _instant_pwr_target_mode==2 ){
__hcapfxn_set_powermode('power_mode', hcap.power.PowerMode.NORMAL).then(_result => {
_devinfo["power_mode"] = hcap.power.PowerMode.NORMAL;
console.log("power_mode mode set as " + _devinfo["power_mode"]);
});
// hcap.power.getPowerMode({
// "onSuccess": function(s) {
// console.log("onSuccess power mode " + s.mode);
// if (s.mode != hcap.power.PowerMode.NORMAL) {
// hcap.power.setPowerMode({
// "mode": hcap.power.PowerMode.NORMAL,
// "onSuccess": null,
// "onFailure": function(f) {
// console.log("onFailure : errorMessage = " + f.errorMessage);
// }
// });
// }
// },
// "onFailure": function(f) {
// console.log("onFailure : errorMessage = " + f.errorMessage);
// }
// });
}
} }
// STEP#00X::> SERVICE RELATED PARAMETERS // STEP#006::> SERVICE RELATED PARAMETERS
for (let _cfg in _devconfig) { for (let _cfg in _devconfig) {
if (_cfg == 'video') { if (_cfg == 'video') {
for (let _item in _devconfig.video) { for (let _item in _devconfig.video) {
@@ -1033,42 +1095,42 @@ HotelTV.hcap = (function() {
} }
} }
//Specifial parameters // STEP#007::> Specifial parameters
if (_devinfo["boot_sequence_option"] !== undefined) { if (_devinfo["boot_sequence_option"] !== undefined) {
if (_devinfo["boot_sequence_option"] != 1) { if (_devinfo["boot_sequence_option"] != 1) {
_pmFxnArProperty.push(__hcapfxn_set_property('boot_sequence_option', 1)); _pmFxnArProperty.push(__hcapfxn_set_property('boot_sequence_option', 1));
} }
} }
// Clock Display // STEP#008::> Clock Display
if (_devinfo["clock_display"] !== undefined) { if (_devinfo["clock_display"] !== undefined) {
if (_devinfo["clock_display"] != 0) { if (_devinfo["clock_display"] != 0) {
_pmFxnArProperty.push(__hcapfxn_set_property('clock_display', 0)); _pmFxnArProperty.push(__hcapfxn_set_property('clock_display', 0));
} }
} }
// Input splash Image // STEP#009::> Input splash Image
if (_devinfo["input_splash_image"] !== undefined) { if (_devinfo["input_splash_image"] !== undefined) {
if (_devinfo["input_splash_image"] != 0) { if (_devinfo["input_splash_image"] != 0) {
_pmFxnArProperty.push(__hcapfxn_set_property('input_splash_image', 0)); _pmFxnArProperty.push(__hcapfxn_set_property('input_splash_image', 0));
} }
} }
// USB Device Blocking // STEP#010::> USB Device Blocking
if (_devinfo["block_usb"] !== undefined) { if (_devinfo["block_usb"] !== undefined) {
if (_devinfo["block_usb"] != 1) { if (_devinfo["block_usb"] != 1) {
_pmFxnArProperty.push(__hcapfxn_set_property('block_usb', 1)); _pmFxnArProperty.push(__hcapfxn_set_property('block_usb', 1));
} }
} }
// WOL // STEP#011::> WOL
if (_devinfo["wol_m"] !== undefined) { if (_devinfo["wol_m"] !== undefined) {
if (_devinfo["wol_m"] != "normal") { if (_devinfo["wol_m"] != "normal") {
_pmFxnArProperty.push(__hcapfxn_set_property('wol_m', "normal")); _pmFxnArProperty.push(__hcapfxn_set_property('wol_m', "normal"));
} }
} }
// WIFI SCREEN SHARE // STEP#012::> WIFI SCREEN SHARE
if (_devinfo["wifi_screen_share"] !== undefined) { if (_devinfo["wifi_screen_share"] !== undefined) {
// if (_devinfo["wifi_screen_share"] != 1) { // if (_devinfo["wifi_screen_share"] != 1) {
// _pmFxnArProperty.push(__hcapfxn_set_property('wifi_screen_share', 1)); // _pmFxnArProperty.push(__hcapfxn_set_property('wifi_screen_share', 1));
@@ -1080,77 +1142,77 @@ HotelTV.hcap = (function() {
} }
} }
// SMART SHARE // STEP#013::> SMART SHARE
if (_devinfo["smart_share"] !== undefined) { if (_devinfo["smart_share"] !== undefined) {
if (_devinfo["smart_share"] != 0) { if (_devinfo["smart_share"] != 0) {
_pmFxnArProperty.push(__hcapfxn_set_property('smart_share', 0)); _pmFxnArProperty.push(__hcapfxn_set_property('smart_share', 0));
} }
} }
// SMART PARING // STEP#014::> SMART PARING
if (_devinfo["smart_pairing"] !== undefined) { if (_devinfo["smart_pairing"] !== undefined) {
if (_devinfo["smart_pairing"] != 0) { if (_devinfo["smart_pairing"] != 0) {
_pmFxnArProperty.push(__hcapfxn_set_property('smart_pairing', 0)); _pmFxnArProperty.push(__hcapfxn_set_property('smart_pairing', 0));
} }
} }
// DIAL // STEP#015::> DIAL
if (_devinfo["dial"] !== undefined) { if (_devinfo["dial"] !== undefined) {
if (_devinfo["dial"] != 1) { if (_devinfo["dial"] != 1) {
_pmFxnArProperty.push(__hcapfxn_set_property('dial', 1)); _pmFxnArProperty.push(__hcapfxn_set_property('dial', 1));
} }
} }
// DMR // STEP#016::> DMR
if (_devinfo["dmr"] !== undefined) { if (_devinfo["dmr"] !== undefined) {
if (_devinfo["dmr"] != 0) { if (_devinfo["dmr"] != 0) {
_pmFxnArProperty.push(__hcapfxn_set_property('dmr', 0)); _pmFxnArProperty.push(__hcapfxn_set_property('dmr', 0));
} }
} }
// SOFTAP UI // STEP#017::> SOFTAP UI
if (_devinfo["soft_ap_ui"] !== undefined) { if (_devinfo["soft_ap_ui"] !== undefined) {
if (_devinfo["soft_ap_ui"] != 0) { if (_devinfo["soft_ap_ui"] != 0) {
_pmFxnArProperty.push(__hcapfxn_set_property('soft_ap_ui', 0)); _pmFxnArProperty.push(__hcapfxn_set_property('soft_ap_ui', 0));
} }
} }
// SOFTAP // STEP#018::> SOFTAP
if (_devinfo["soft_ap"] !== undefined) { if (_devinfo["soft_ap"] !== undefined) {
if (_devinfo["soft_ap"] != 0) { if (_devinfo["soft_ap"] != 0) {
_pmFxnArProperty.push(__hcapfxn_set_property('soft_ap', 0)); _pmFxnArProperty.push(__hcapfxn_set_property('soft_ap', 0));
} }
} }
// APPLICATION CHANNEL CONTROL // STEP#019::> APPLICATION CHANNEL CONTROL
if (_devinfo["application_channel_control"] !== undefined) { if (_devinfo["application_channel_control"] !== undefined) {
if (_devinfo["application_channel_control"] != 1) { if (_devinfo["application_channel_control"] != 1) {
_pmFxnArProperty.push(__hcapfxn_set_property('application_channel_control', 1)); _pmFxnArProperty.push(__hcapfxn_set_property('application_channel_control', 1));
} }
} }
// TV CHANNEL UI // STEP#020::> TV CHANNEL UI
if (_devinfo["tv_channel_ui"] !== undefined) { if (_devinfo["tv_channel_ui"] !== undefined) {
if (_devinfo["tv_channel_ui"] != 0) { if (_devinfo["tv_channel_ui"] != 0) {
_pmFxnArProperty.push(__hcapfxn_set_property('tv_channel_ui', 0)); _pmFxnArProperty.push(__hcapfxn_set_property('tv_channel_ui', 0));
} }
} }
// MUTE ON TV INPUT: Prevent TV channel auto play when exit OTT // STEP#021::> MUTE ON TV INPUT: Prevent TV channel auto play when exit OTT
if (_devinfo["mute_on_tv_input"] !== undefined) { if (_devinfo["mute_on_tv_input"] !== undefined) {
if (_devinfo["mute_on_tv_input"] != 1) { if (_devinfo["mute_on_tv_input"] != 1) {
_pmFxnArProperty.push(__hcapfxn_set_property('mute_on_tv_input', 1)); _pmFxnArProperty.push(__hcapfxn_set_property('mute_on_tv_input', 1));
} }
} }
// SECURITY LEVEL // STEP#022::> SECURITY LEVEL
if (_devinfo["security_level"] !== undefined) { if (_devinfo["security_level"] !== undefined) {
if (_devinfo["security_level"] != 1) { if (_devinfo["security_level"] != 1) {
_pmFxnArProperty.push(__hcapfxn_set_property('security_level', 1)); _pmFxnArProperty.push(__hcapfxn_set_property('security_level', 1));
} }
} }
// // OSD LAYER ID // STEP#0XX::> OSD LAYER ID
// if (_devinfo["osd_layer_id"] !== undefined) { // if (_devinfo["osd_layer_id"] !== undefined) {
// if (_devinfo["osd_layer_id"] != 0) { // if (_devinfo["osd_layer_id"] != 0) {
// _pmFxnArProperty.push(__hcapfxn_set_property('osd_layer_id', 0)); // _pmFxnArProperty.push(__hcapfxn_set_property('osd_layer_id', 0));
@@ -1657,19 +1719,33 @@ HotelTV.hcap = (function() {
}, },
// _type은 hcap.externalinput.ExternalInputType형이고, 현재는 HDMI로 고정 /**
// _index는 HDMI포트 번호 * _type은 hcap.externalinput.ExternalInputType형이고, 현재는 HDMI로 고정
* _index는 HDMI포트 번호
* @param {string} _type
* @param {Number} _index
* @returns
* true: Success
* false: Failure
*/
SetExternalInput: function(_type, _index) { SetExternalInput: function(_type, _index) {
hcap.externalinput.setCurrentExternalInput({ try {
"type" : hcap.externalinput.ExternalInputType.HDMI, hcap.externalinput.setCurrentExternalInput({
"index" : _index, "type" : hcap.externalinput.ExternalInputType.HDMI,
"onSuccess" : function() { "index" : _index,
console.log("onSuccess"); "onSuccess" : function() {
}, console.log("onSuccess");
"onFailure" : function(f) { return true;
console.error("onFailure : errorMessage = " + f.errorMessage); },
} "onFailure" : function(f) {
}); console.error("onFailure : errorMessage = " + f.errorMessage);
return false;
}
});
} catch(_err) {
console.log(`fail to perform getCurrentExternalInput() ${_err}`);
return false;
}
}, },
Test: function() { Test: function() {

View File

@@ -57,6 +57,13 @@ var HotelTV = HotelTV || {
'scroll_offset': null, 'scroll_offset': null,
}, },
}, },
'external_input':{
'connected': false,
'last_input': {
'type': 0,
'index': 0
}
},
'hotkey': { 'hotkey': {
"mm": {} "mm": {}
}, },
@@ -86,9 +93,10 @@ var HotelTV = HotelTV || {
}, },
'dbginfo': { 'dbginfo': {
'en': false, 'en': false,
'emulator': false, //PC 브라우저를 이용할때, true로 설정, 타겟 셋트에서는 false로 설정할것 'emulator': false, //PC에서 emulation할때, true로 설정, 타겟 셋트에서는 false로 설정할것
'hcap_ipc': false, 'hcap_ipc': false, //WEBOS HCAP 라이브러리 내부 메시치 출력 enable/disable
'output': 'osd' 'output': 'osd',
'webdebugger': true //WEBOS 웹 디버거 enable/disable
}, },
'media_hndl': null, 'media_hndl': null,
}; };
@@ -120,9 +128,9 @@ HotelTV.namespace = function(ns_string) {
* @param {string} sz_key property key name. * @param {string} sz_key property key name.
* @param {callback} callback is callback object * @param {callback} callback is callback object
*/ */
function __fxn_Set_DebugOpt() { function __fxn_Set_DebugOpt(_enable, _out_option, _init) {
HotelTV.dbginfo['en'] = true; HotelTV.dbginfo['en'] = _enable;
HotelTV.dbginfo['output'] = 'native'; HotelTV.dbginfo['output'] = _out_option;
HotelTV.hcap.Init(); HotelTV.hcap.Init();
@@ -130,15 +138,27 @@ function __fxn_Set_DebugOpt() {
console.log("OPT" + navigator.appVersion); console.log("OPT" + navigator.appVersion);
if (navigator.appVersion.includes("Web0S") == true) { if (navigator.appVersion.includes("Web0S") == true) {
HotelTV.dbginfo['emulator'] = false; HotelTV.dbginfo['emulator'] = false;
HotelTV.devinfo['manufacture'] = "LG";
HotelTV.devinfo['tvOS'] = "Web0S";
/** Set HCAP Debug Options */
if (HotelTV.dbginfo['emulator'] == false) {
//Enable/Disable browser debug mode
HotelTV.hcap.SetBrowserDebug(HotelTV.dbginfo['hcap_ipc'], HotelTV.dbginfo['webdebugger']);
}
} else if (navigator.appVersion.includes("Tizen") == true) {
HotelTV.dbginfo['emulator'] = false;
HotelTV.devinfo['manufacture'] = "SAMSUNG";
HotelTV.devinfo['tvOS'] = "Tizen";
} else { } else {
HotelTV.dbginfo['emulator'] = true; HotelTV.dbginfo['emulator'] = true;
} }
if (HotelTV.dbginfo['output'] == 'osd') { if (HotelTV.dbginfo['output'] == 'osd') {
if (HotelTV.dbginfo['en'] == true) { if (HotelTV.dbginfo['en'] == true) {
(function() { var logger = document.getElementById('debugwin');
var old = console.log; if ( logger!=null )
var logger = document.getElementById('debugwin'); {
var dateNow = new Date(); var dateNow = new Date();
var hours = dateNow.getHours(); var hours = dateNow.getHours();
var minutes = dateNow.getMinutes(); var minutes = dateNow.getMinutes();
@@ -152,6 +172,11 @@ function __fxn_Set_DebugOpt() {
if (seconds < 10) { if (seconds < 10) {
seconds = "0" + seconds; seconds = "0" + seconds;
} }
if(logger.style.display!='block'){
logger.style.display = 'block';
}
console.log = function(logmsg) { console.log = function(logmsg) {
var _dispMsg = hours + ":" + minutes + ":" + seconds + "-> "; var _dispMsg = hours + ":" + minutes + ":" + seconds + "-> ";
if (typeof logmsg == 'object') { if (typeof logmsg == 'object') {
@@ -160,18 +185,14 @@ function __fxn_Set_DebugOpt() {
_dispMsg += logmsg + '<br />'; _dispMsg += logmsg + '<br />';
} }
_dispMsg += logger.innerHTML; _dispMsg += logger.innerHTML;
logger.innerHTML = _dispMsg; logger.innerHTML = _dispMsg;
} }
})(); }
} }
} else { } else {
/** Set HCAP Debug Options */ if (HotelTV.dbginfo['en'] != true) {
if (HotelTV.dbginfo['emulator'] == false) { console.log = function(logmsg) {
//Enable/Disable browser debug mode }
HotelTV.hcap.SetBrowserDebug(HotelTV.dbginfo['hcap_ipc'], HotelTV.dbginfo['en']);
} else {
//Below for Non WebOS
} }
} }
}; };
@@ -186,7 +207,8 @@ HotelTV.Init = async function() {
HotelTV.hcap.ChannelShutDown(); HotelTV.hcap.ChannelShutDown();
//SETP#02::> Set Debug Options //SETP#02::> Set Debug Options
__fxn_Set_DebugOpt(); __fxn_Set_DebugOpt(false, 'osd', false);
//__fxn_Set_DebugOpt(true, 'native', true);
//STEP#03::> Get Device Info //STEP#03::> Get Device Info
HotelTV.ui_utils.SetBusy(true); HotelTV.ui_utils.SetBusy(true);
@@ -194,7 +216,7 @@ HotelTV.Init = async function() {
await HotelTV.hcap.GetDevInfo(); await HotelTV.hcap.GetDevInfo();
//await HotelTV.hcap.ShowDevInfo(); //await HotelTV.hcap.ShowDevInfo();
} catch (_error) { } catch (_error) {
let _tmval = 10; let _tmval = 50;
HotelTV.ui_utils.ShowErrMsg(true, HotelTV.ui_utils.ShowErrMsg(true,
"system.error.get-devinfo", "system.error.get-devinfo",
"SYSTEM ERROR", "SYSTEM ERROR",
@@ -209,7 +231,7 @@ HotelTV.Init = async function() {
$('.error #countdown #message').text(`System will be reboot in ${_tmval} second...`); $('.error #countdown #message').text(`System will be reboot in ${_tmval} second...`);
}, },
"cb_eoe": function() { "cb_eoe": function() {
setTimeout(HotelTV.hcap.Reboot(), 500); setTimeout(HotelTV.hcap.Reboot, 500);
} }
}); });
} }
@@ -236,7 +258,7 @@ HotelTV.Init = async function() {
$('.error #countdown #message').text(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`); $('.error #countdown #message').text(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`);
}, },
"cb_eoe": function() { "cb_eoe": function() {
setTimeout(HotelTV.hcap.Reboot(), 500); setTimeout(HotelTV.hcap.Reboot, 500);
} }
}); });
} }
@@ -270,7 +292,7 @@ HotelTV.Init = async function() {
$('.error #countdown #message').text(`System will be reboot in ${_tmval} second...`); $('.error #countdown #message').text(`System will be reboot in ${_tmval} second...`);
}, },
"cb_eoe": function() { "cb_eoe": function() {
setTimeout(HotelTV.hcap.Reboot(), 500); setTimeout(HotelTV.hcap.Reboot, 500);
} }
}); });
return; return;
@@ -291,7 +313,7 @@ HotelTV.Init = async function() {
$('.error #countdown #message').text(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`); $('.error #countdown #message').text(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`);
}, },
"cb_eoe": function() { "cb_eoe": function() {
setTimeout(HotelTV.hcap.Reboot(), 500); setTimeout(HotelTV.hcap.Reboot, 500);
} }
}); });
} }
@@ -314,7 +336,7 @@ HotelTV.Init = async function() {
$('.error #countdown #message').text(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`); $('.error #countdown #message').text(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`);
}, },
"cb_eoe": function() { "cb_eoe": function() {
setTimeout(HotelTV.hcap.Reboot(), 500); setTimeout(HotelTV.hcap.Reboot, 500);
} }
}); });
} }
@@ -343,7 +365,7 @@ HotelTV.Init = async function() {
$('.error #countdown #message').text(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`); $('.error #countdown #message').text(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`);
}, },
"cb_eoe": function() { "cb_eoe": function() {
setTimeout(HotelTV.hcap.Reboot(), 500); setTimeout(HotelTV.hcap.Reboot, 500);
} }
}); });
} }
@@ -366,7 +388,7 @@ HotelTV.Init = async function() {
$('.error #countdown #message').text(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`); $('.error #countdown #message').text(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`);
}, },
"cb_eoe": function() { "cb_eoe": function() {
setTimeout(HotelTV.hcap.Reboot(), 500); setTimeout(HotelTV.hcap.Reboot, 500);
} }
}); });
} }
@@ -386,6 +408,7 @@ HotelTV.Init = async function() {
try { try {
HotelTV.widget = await HotelTV.api.GetWidgetCtz(); HotelTV.widget = await HotelTV.api.GetWidgetCtz();
} catch (_error) { } catch (_error) {
let _tmval = 50;
//console.log("Display Error page for get widget info"); //console.log("Display Error page for get widget info");
HotelTV.ui_utils.ShowErrMsg(true, HotelTV.ui_utils.ShowErrMsg(true,
"system.error.get-widget", "system.error.get-widget",
@@ -401,7 +424,7 @@ HotelTV.Init = async function() {
$('.error #countdown #message').text(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`); $('.error #countdown #message').text(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`);
}, },
"cb_eoe": function() { "cb_eoe": function() {
setTimeout(HotelTV.hcap.Reboot(), 500); setTimeout(HotelTV.hcap.Reboot, 500);
} }
}); });
} }
@@ -409,6 +432,7 @@ HotelTV.Init = async function() {
try { try {
HotelTV.tvguide = await HotelTV.api.GetProgramCtz(); HotelTV.tvguide = await HotelTV.api.GetProgramCtz();
} catch (_error) { } catch (_error) {
let _tmval = 50;
//console.log("Display Error page for get tvguide info"); //console.log("Display Error page for get tvguide info");
HotelTV.ui_utils.ShowErrMsg(true, HotelTV.ui_utils.ShowErrMsg(true,
"system.error.get-tvguideinfo", "system.error.get-tvguideinfo",
@@ -424,7 +448,7 @@ HotelTV.Init = async function() {
$('.error #countdown #message').text(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`); $('.error #countdown #message').text(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`);
}, },
"cb_eoe": function() { "cb_eoe": function() {
setTimeout(HotelTV.hcap.Reboot(), 500); setTimeout(HotelTV.hcap.Reboot, 500);
} }
}); });
} }
@@ -449,6 +473,7 @@ HotelTV.Init = async function() {
//Save to Session //Save to Session
sessionStorage.setItem("dbginfo", JSON.stringify(HotelTV.dbginfo));
sessionStorage.setItem("devinfo", JSON.stringify(HotelTV.devinfo)); sessionStorage.setItem("devinfo", JSON.stringify(HotelTV.devinfo));
sessionStorage.setItem("svrinfo", JSON.stringify(HotelTV.svrinfo)); sessionStorage.setItem("svrinfo", JSON.stringify(HotelTV.svrinfo));
sessionStorage.setItem("settings", JSON.stringify(HotelTV.settings)); sessionStorage.setItem("settings", JSON.stringify(HotelTV.settings));
@@ -477,7 +502,25 @@ HotelTV.Init = async function() {
} }
} }
} else { } else {
console.error("Display Error page for invalid license type."); let _tmval = 30;
HotelTV.ui_utils.ShowErrMsg(true,
"system.error.unregistered-device",
"SYSTEM ERROR",
"This device is not a registered device or is an invalid licensed device.\r\nplease contact your system administrator.",
{
"timeout": _tmval,
"cb_disp": function() {
_tmval -= 1;
$('.error #countdown #message').text(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem need to be reboot`);
if ($('.error #countdown').css("display") == "none") {
$('.error #countdown').fadeIn(1000);
}
},
"cb_eoe": function() {
$('.error #countdown #message').text(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nPlease reboot the device by manualy(using remote contoller)`);
}
}
);
} }
console.log("Initialization:: Done"); console.log("Initialization:: Done");
HotelTV.ui_utils.SetBusy(false); HotelTV.ui_utils.SetBusy(false);
@@ -489,9 +532,13 @@ HotelTV.LoadWelCome = async function() {
//Turn Off HCAP api log //Turn Off HCAP api log
extDisableHcapConsoleLog = true; extDisableHcapConsoleLog = true;
HotelTV.dbginfo = await JSON.parse(sessionStorage.getItem("dbginfo"));
//SETP#02::> Set Debug Options
__fxn_Set_DebugOpt(false, 'native', true);
//__fxn_Set_DebugOpt(true, 'native', true);
HotelTV.devinfo = await JSON.parse(sessionStorage.getItem("devinfo")); HotelTV.devinfo = await JSON.parse(sessionStorage.getItem("devinfo"));
HotelTV.svrinfo = await JSON.parse(sessionStorage.getItem("svrinfo")); HotelTV.svrinfo = await JSON.parse(sessionStorage.getItem("svrinfo"));
//HotelTV.state = await JSON.parse(sessionStorage.getItem("state"));
//STEP#03:API Module INIT //STEP#03:API Module INIT
await HotelTV.api.Init(HotelTV.svrinfo.ipaddr, HotelTV.svrinfo.port, HotelTV.devinfo.model_name.substring(2, HotelTV.devinfo.model_name.length - 1), HotelTV.devinfo.serial_number); await HotelTV.api.Init(HotelTV.svrinfo.ipaddr, HotelTV.svrinfo.port, HotelTV.devinfo.model_name.substring(2, HotelTV.devinfo.model_name.length - 1), HotelTV.devinfo.serial_number);
HotelTV.settings = await JSON.parse(sessionStorage.getItem("settings")); HotelTV.settings = await JSON.parse(sessionStorage.getItem("settings"));
@@ -622,10 +669,13 @@ HotelTV.LoadAppFull = async function() {
HotelTV.ui_utils.SetBusy(true); HotelTV.ui_utils.SetBusy(true);
//STEP#01: Load session info //STEP#01: Load session info
HotelTV.dbginfo = await JSON.parse(sessionStorage.getItem("dbginfo"));
//SETP#02::> Set Debug Options
__fxn_Set_DebugOpt(false, 'native', true);
HotelTV.devinfo = await JSON.parse(sessionStorage.getItem("devinfo")); HotelTV.devinfo = await JSON.parse(sessionStorage.getItem("devinfo"));
HotelTV.svrinfo = await JSON.parse(sessionStorage.getItem("svrinfo")); HotelTV.svrinfo = await JSON.parse(sessionStorage.getItem("svrinfo"));
HotelTV.services = await JSON.parse(sessionStorage.getItem("services")); HotelTV.services = await JSON.parse(sessionStorage.getItem("services"));
//HotelTV.state = await JSON.parse(sessionStorage.getItem("state"));
//STEP#02: Init HotelTV API //STEP#02: Init HotelTV API
await HotelTV.api.Init(HotelTV.svrinfo.ipaddr, HotelTV.svrinfo.port, HotelTV.devinfo.model_name.substring(2, HotelTV.devinfo.model_name.length - 1), HotelTV.devinfo.serial_number); await HotelTV.api.Init(HotelTV.svrinfo.ipaddr, HotelTV.svrinfo.port, HotelTV.devinfo.model_name.substring(2, HotelTV.devinfo.model_name.length - 1), HotelTV.devinfo.serial_number);
@@ -647,13 +697,15 @@ HotelTV.LoadAppFull = async function() {
} }
try { try {
let _result = await HotelTV.api.DeleteAmenityCarts(null);
HotelTV.carts.amenity = await HotelTV.api.GetAmenityCarts(null); HotelTV.carts.amenity = await HotelTV.api.GetAmenityCarts(null);
} catch (_error) { } catch (_error) {
console.error("Display Error page for get amenity carts info"); console.error("Display Error page for get amenity carts info");
} }
HotelTV.carts.roomservice = await HotelTV.api.GetRoomserviceCarts();
try { try {
let _result = await HotelTV.api.DeleteRoomserviceCarts(null);
HotelTV.carts.roomservice = await HotelTV.api.GetRoomserviceCarts();
} catch (_error) { } catch (_error) {
console.error("Display Error page for get roomservicec carts info"); console.error("Display Error page for get roomservicec carts info");
} }

File diff suppressed because it is too large Load Diff

View File

@@ -9,6 +9,42 @@
* Created at : 2020-11-26 02:21:56 * Created at : 2020-11-26 02:21:56
* Last modified : 2020-11-26 15:31:40 * Last modified : 2020-11-26 15:31:40
*/ */
const gRmtKey = {
left: 37,
right: 39,
up: 38,
down: 40,
enter: 13,
back: 461,
red: 403,
green: 404,
yellow: 405,
blue: 406,
stop: 413,
play: 415,
num0: 48,
num1: 49,
num2: 50,
num3: 51,
num4: 52,
num5: 53,
num6: 54,
num7: 55,
num8: 56,
num9: 57,
chup: 427,
chdown: 428,
chprev: 711,
/** ENNPLE SPECIAL KEY */
amenity: -2072433963,
roomservice: -2072437788,
flight: -2072437533,
weather: -2072438298,
tv: -2072443143,
}
HotelTV.namespace('HotelTV.ui_welcome'); HotelTV.namespace('HotelTV.ui_welcome');
HotelTV.ui_welcome = (function() { HotelTV.ui_welcome = (function() {
@@ -111,8 +147,8 @@ HotelTV.ui_welcome = (function() {
*/ */
function __uifxn_WC_OnNetEvt(_evt) { function __uifxn_WC_OnNetEvt(_evt) {
let _state = HotelTV.state; let _state = HotelTV.state;
console.log("network_event_received = " + _evt.eventType); console.log("network_event_received = " + _evt['eventType']);
let _typeNetEvt = _evt.eventType; let _typeNetEvt = _evt['eventType'];
switch (_typeNetEvt) { switch (_typeNetEvt) {
case hcap.network.NetworkEventType.ABLE_REACH_DNS: case hcap.network.NetworkEventType.ABLE_REACH_DNS:
@@ -287,11 +323,13 @@ HotelTV.ui_welcome = (function() {
$(document).on('keydown', function(_evt) { //attach event listener $(document).on('keydown', function(_evt) { //attach event listener
console.log("LANGSEL KEY EVENT::> " + _evt.keyCode); console.log("LANGSEL KEY EVENT::> " + _evt.keyCode);
if (_state.menu.stage.cur == "langSel") { if (_state.menu.stage.cur == "langSel") {
if (_evt.keyCode == 37) { if (_evt.keyCode == gRmtKey.left) {
$('#lst_langsel').trigger('prev.owl') $('#lst_langsel').trigger('prev.owl')
} else if (_evt.keyCode == 39) { } else if (_evt.keyCode == gRmtKey.right) {
$('#lst_langsel').trigger('next.owl') $('#lst_langsel').trigger('next.owl')
} else if (_evt.keyCode == 13) { } else if (_evt.keyCode == gRmtKey.enter) {
_state.menu.stage.cur = "preparingWelcomeCtz";
let found_dev_locale = false; let found_dev_locale = false;
// SET PLATFORM LANGUAGE // SET PLATFORM LANGUAGE
// HotelTV.hcap.SetPlatformLanguage(_state.lang); // HotelTV.hcap.SetPlatformLanguage(_state.lang);
@@ -318,7 +356,7 @@ HotelTV.ui_welcome = (function() {
/** Play slide shows */ /** Play slide shows */
} else if (_ctzWc.intro == 'video') { } else if (_ctzWc.intro == 'video') {
HotelTV.ui_utils.SetBusy(true);
/** Play movie clip */ /** Play movie clip */
HotelTV.hcap.MediaPlay( HotelTV.hcap.MediaPlay(
_ctzWc.videos[_state.lang].download, _ctzWc.videos[_state.lang].download,
@@ -326,6 +364,7 @@ HotelTV.ui_welcome = (function() {
"video/mp4", "video/mp4",
1, 1,
() => { () => {
setTimeout(HotelTV.ui_utils.SetBusy, 2000, false);
console.log("STARTUP Done CB."); console.log("STARTUP Done CB.");
//Shows up skip button //Shows up skip button
let _elmnt_btn_skip = $(".control .skip_video"); let _elmnt_btn_skip = $(".control .skip_video");
@@ -336,6 +375,7 @@ HotelTV.ui_welcome = (function() {
}, },
() => { () => {
console.log("STARTUP Fail CB."); console.log("STARTUP Fail CB.");
HotelTV.ui_utils.SetBusy(false);
HotelTV.UnloadWelCome(); HotelTV.UnloadWelCome();
} }
); );
@@ -345,13 +385,13 @@ HotelTV.ui_welcome = (function() {
} }
} }
} else if (_state.menu.stage.cur == "playWelcomeMovie") { } else if (_state.menu.stage.cur == "playWelcomeMovie") {
if (_evt.keyCode == 413) { if (_evt.keyCode == gRmtKey.stop) {
// STOP KEY Event // STOP KEY Event
if (_media_status == 'playing') { if (_media_status == 'playing') {
_media_status = 'preparing_stop_playing'; _media_status = 'preparing_stop_playing';
var _evt = new Event('media_event_received'); var _evt = new Event('media_event_received');
_evt.eventType = "play_end_need_destory"; _evt['command_id'] = "media_ctrl_event";
_evt.command_id = "event"; _evt['eventType'] = "play_end_need_destory";
document.dispatchEvent(_evt); document.dispatchEvent(_evt);
} }
} else { } else {
@@ -364,7 +404,7 @@ HotelTV.ui_welcome = (function() {
}, 3000); }, 3000);
} else { } else {
const _evt = new Event('media_event_received'); const _evt = new Event('media_event_received');
_evt['command_id'] = "media_event_received"; _evt['command_id'] = "media_ctrl_event";
_evt['eventType'] = "play_stop_requtested"; _evt['eventType'] = "play_stop_requtested";
document.dispatchEvent(_evt); document.dispatchEvent(_evt);
} }
@@ -439,13 +479,34 @@ HotelTV.ui_welcome = (function() {
$('.error #countdown #message').text(`System will be shutdown in ${_tmval} second...`); $('.error #countdown #message').text(`System will be shutdown in ${_tmval} second...`);
}, },
"cb_eoe": function() { "cb_eoe": function() {
setTimeout(HotelTV.hcap.PwrOff(), 500); setTimeout(HotelTV.hcap.Reboot, 500);
HotelTV.api.ReportEvent([{'power': false, 'location':null}]) HotelTV.api.ReportEvent([{'power': false, 'location':null}])
} }
}); });
} else if (_evt == "COMMAND-GUEST-CHECKIN") { } else if (_evt == "COMMAND-GUEST-CHECKIN") {
let _tmval = 10;
let _state = HotelTV.state;
let _trTbl = HotelTV.translation;
} else if (_evt == "COMMAND-GUEST-CHECKOUT") { HotelTV.ui_utils.ShowSysNoticeMsg(true,
"notice",
"SYSTEM NOTICE",
_trTbl.system.notice.event.mqtt.system_reboot[_state.lang], {
"timeout": _tmval,
"cb_disp": function() {
_tmval -= 1;
console.log("time..." + _tmval);
if ($('.error #countdown').css("display") == "none") {
$('.error #countdown').fadeIn(1000);
}
$('.error #countdown #message').text(`System will be restart in ${_tmval} second...`);
},
"cb_eoe": function() {
setTimeout(HotelTV.hcap.Reboot, 500);
HotelTV.api.ReportEvent([{'power': false, 'location':null}])
}
});
} else if (_evt == "COMMAND-GUEST-CHECKOUT" || _evt == "COMMAND-SYSTEM-STOP") {
let _tmval = 30; let _tmval = 30;
let _state = HotelTV.state; let _state = HotelTV.state;
let _trTbl = HotelTV.translation; let _trTbl = HotelTV.translation;
@@ -464,7 +525,7 @@ HotelTV.ui_welcome = (function() {
$('.error #countdown #message').text(`System will be shutdown in ${_tmval} second...`); $('.error #countdown #message').text(`System will be shutdown in ${_tmval} second...`);
}, },
"cb_eoe": function() { "cb_eoe": function() {
setTimeout(HotelTV.hcap.PwrOff(), 500); setTimeout(HotelTV.hcap.PwrOff, 500);
HotelTV.api.ReportEvent([{'power': false, 'location':null}]) HotelTV.api.ReportEvent([{'power': false, 'location':null}])
} }
}); });
@@ -486,10 +547,10 @@ HotelTV.ui_welcome = (function() {
if ($('.error #countdown').css("display") == "none") { if ($('.error #countdown').css("display") == "none") {
$('.error #countdown').fadeIn(1000); $('.error #countdown').fadeIn(1000);
} }
$('.error #countdown #message').text(`System will be shutdown in ${_tmval} second...`); $('.error #countdown #message').text(`System will be restart in ${_tmval} second...`);
}, },
"cb_eoe": function() { "cb_eoe": function() {
setTimeout(HotelTV.hcap.PwrOff(), 500); setTimeout(HotelTV.hcap.Reboot, 500);
HotelTV.api.ReportEvent([{'power': false, 'location':null}]) HotelTV.api.ReportEvent([{'power': false, 'location':null}])
} }
}); });

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +0,0 @@
Array.prototype.forEach||(Array.prototype.forEach=function(e,t){for(var n=this.length>>>0,r=0;r<n;r++)r in this&&e.call(t,this[r],r,this)}),Array.prototype.map||(Array.prototype.map=function(e){var t=this.length>>>0;if("function"!=typeof e)throw new TypeError;for(var n=new Array(t),r=arguments[1],o=0;o<t;o++)o in this&&(n[o]=e.call(r,this[o],o,this));return n}),Array.prototype.indexOf||(Array.prototype.indexOf=function(e){var t=this.length;if(!t)return-1;var n=arguments[1]||0;if(t<=n)return-1;for(n<0&&(n+=t);n<t;n++)if(Object.prototype.hasOwnProperty.call(this,n)&&e===this[n])return n;return-1}),function(){if(!Element.prototype.addEventListener){var p=[],e=function(e,t){var n=this,r=function(e){e.target=e.srcElement,e.currentTarget=n,void 0!==t.handleEvent?t.handleEvent(e):t.call(n,e)};if("DOMContentLoaded"==e){var o=function(e){"complete"==document.readyState&&r(e)};if(document.attachEvent("onreadystatechange",o),p.push({object:this,type:e,listener:t,wrapper:o}),"complete"==document.readyState){var i=new Event;i.srcElement=window,o(i)}}else this.attachEvent("on"+e,r),p.push({object:this,type:e,listener:t,wrapper:r})},t=function(e,t){for(var n=0;n<p.length;){var r=p[n];if(r.object==this&&r.type==e&&r.listener==t){"DOMContentLoaded"==e?this.detachEvent("onreadystatechange",r.wrapper):this.detachEvent("on"+e,r.wrapper),p.splice(n,1);break}++n}};Element.prototype.addEventListener=e,Element.prototype.removeEventListener=t,HTMLDocument&&(HTMLDocument.prototype.addEventListener=e,HTMLDocument.prototype.removeEventListener=t),Window&&(Window.prototype.addEventListener=e,Window.prototype.removeEventListener=t)}}(),"firstElementChild"in document.documentElement||Object.defineProperty(Element.prototype,"firstElementChild",{get:function(){for(var e,t=this.children,n=0,r=t.length;n<r;++n)if(1===(e=t[n]).nodeType)return e;return null}}),"previousElementSibling"in document.documentElement||Object.defineProperty(Element.prototype,"previousElementSibling",{get:function(){for(var e=this.previousSibling;e&&1!==e.nodeType;)e=e.previousSibling;return e}}),"nextElementSibling"in document.documentElement||Object.defineProperty(Element.prototype,"nextElementSibling",{get:function(){for(var e=this.nextSibling;e&&1!==e.nodeType;)e=e.nextSibling;return e}}),window.getComputedStyle||(window.getComputedStyle=function(e){if(!e)return null;var t=e.currentStyle,n=e.getBoundingClientRect(),r=document.createElement("div").style;for(var o in t)r[o]=t[o];return r.cssFloat=r.styleFloat,"auto"===r.width&&(r.width=n.right-n.left+"px"),"auto"===r.height&&(r.height=n.bottom-n.top+"px"),r});
//# sourceMappingURL=../sourcemaps/tiny-slider.helper.ie8.js.map

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -171,7 +171,7 @@ div#lst_mypagebg div #mp_hotel_infowin {
} }
div#lst_mypagebg div #mp_hotel_infowin .hotelinfo_item { div#lst_mypagebg div #mp_hotel_infowin .hotelinfo_item {
width: 506px; width: 32%;
height: 100%; height: 100%;
display: inline-block; display: inline-block;
padding: 5px; padding: 5px;

View File

@@ -35,8 +35,8 @@
background-image: none; background-image: none;
background-size: contain; background-size: contain;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: left center; background-position: center center;
margin: 10px 0 4px 20px; margin: 10px 0 4px 10px;
display: block; display: block;
} }

View File

@@ -13,19 +13,6 @@ body {
z-index: 1; z-index: 1;
} }
.startup {
top: 0px;
left: 0px;
position: absolute;
width: 100%;
height: 100%;
padding: 0px;
/* background-image: url(./images/hoteltv_service_preparing.png); */
background-image: url(./images/hoteltv_service_preparing_joson.jpg);
background-size: cover;
background-repeat: no-repeat;
}
.welcome .frame { .welcome .frame {
position: absolute; position: absolute;
top: 0px; top: 0px;
@@ -170,23 +157,3 @@ body {
background-repeat: no-repeat; background-repeat: no-repeat;
display: none; display: none;
} }
#debugwin {
z-index: 10000;
position: absolute;
top: 11px;
bottom: 22px;
right: 11px;
font-size: 12px;
background-color: rgba(18, 18, 18, 0.3);
text-align: left;
color: rgb(235, 235, 235);
line-height: 24px;
padding-left: 5px;
padding-top: 5px;
display: inline-flex;
max-width: 500px;
overflow-wrap: break-word;
word-wrap: break-word;
display: none;
}

View File

@@ -13,19 +13,6 @@ body {
z-index: 1; z-index: 1;
} }
.startup {
top: 0px;
left: 0px;
position: absolute;
width: 100%;
height: 100%;
padding: 0px;
/* background-image: url(./images/hoteltv_service_preparing.png); */
background-image: url(./images/hoteltv_service_preparing_joson.jpg);
background-size: cover;
background-repeat: no-repeat;
}
.welcome .frame { .welcome .frame {
position: absolute; position: absolute;
top: 0px; top: 0px;
@@ -170,23 +157,3 @@ body {
background-repeat: no-repeat; background-repeat: no-repeat;
display: none; display: none;
} }
#debugwin {
z-index: 10000;
position: absolute;
top: 11px;
bottom: 22px;
right: 11px;
font-size: 12px;
background-color: rgba(18, 18, 18, 0.3);
text-align: left;
color: rgb(235, 235, 235);
line-height: 24px;
padding-left: 5px;
padding-top: 5px;
display: inline-flex;
max-width: 500px;
overflow-wrap: break-word;
word-wrap: break-word;
display: none;
}

View File

@@ -171,7 +171,7 @@ div#lst_mypagebg div #mp_hotel_infowin {
} }
div#lst_mypagebg div #mp_hotel_infowin .hotelinfo_item { div#lst_mypagebg div #mp_hotel_infowin .hotelinfo_item {
width: 506px; width: 32%;
height: 100%; height: 100%;
display: inline-block; display: inline-block;
padding: 5px; padding: 5px;

View File

@@ -13,19 +13,6 @@ body {
z-index: 1; z-index: 1;
} }
.startup {
top: 0px;
left: 0px;
position: absolute;
width: 100%;
height: 100%;
padding: 0px;
/* background-image: url(./images/hoteltv_service_preparing.png); */
background-image: url(./images/hoteltv_service_preparing_joson.jpg);
background-size: cover;
background-repeat: no-repeat;
}
.welcome .frame { .welcome .frame {
position: absolute; position: absolute;
top: 0px; top: 0px;
@@ -170,23 +157,3 @@ body {
background-repeat: no-repeat; background-repeat: no-repeat;
display: none; display: none;
} }
#debugwin {
z-index: 10000;
position: absolute;
top: 11px;
bottom: 22px;
right: 11px;
font-size: 12px;
background-color: rgba(18, 18, 18, 0.3);
text-align: left;
color: rgb(235, 235, 235);
line-height: 24px;
padding-left: 5px;
padding-top: 5px;
display: inline-flex;
max-width: 500px;
overflow-wrap: break-word;
word-wrap: break-word;
display: none;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -1,3 +1,16 @@
.startup {
top: 0px;
left: 0px;
position: absolute;
width: 100%;
height: 100%;
padding: 0px;
/* background-image: url(./images/hoteltv_service_preparing.png); */
background-image: url(/procentric/application/images/hoteltv_service_preparing_joson.jpg);
background-size: cover;
background-repeat: no-repeat;
}
.busy-frame { .busy-frame {
position: absolute; position: absolute;
z-index: 10001; z-index: 10001;
@@ -105,4 +118,26 @@
100% { 100% {
opacity: 0; opacity: 0;
} }
}
#debugwin {
z-index: 10000;
position: absolute;
top: 11px;
bottom: 22px;
right: 11px;
font-size: 12px;
background-color: rgba(18, 18, 18, 0.3);
text-align: left;
color: rgb(235, 235, 235);
line-height: 24px;
padding-left: 5px;
padding-top: 5px;
display: inline-flex;
max-width: 500px;
overflow-wrap: break-word;
word-wrap: break-word;
display: none;
} }

View File

@@ -7,7 +7,6 @@
<link rel="stylesheet" href="/procentric/application/css/owlcarousel/owl.theme.default.min.css"> <link rel="stylesheet" href="/procentric/application/css/owlcarousel/owl.theme.default.min.css">
<link rel="stylesheet" href="/procentric/application/theme/hoteltv.ui_utils.css"> <link rel="stylesheet" href="/procentric/application/theme/hoteltv.ui_utils.css">
<link rel="stylesheet" href="/procentric/application/theme/hoteltv.error.css"> <link rel="stylesheet" href="/procentric/application/theme/hoteltv.error.css">
<!-- <link rel="stylesheet" href="hoteltv.welcome.css"> -->
<title>CENTIRM LG-PROCENTRIC HOTEL SERVICE</title> <title>CENTIRM LG-PROCENTRIC HOTEL SERVICE</title>
</head> </head>
@@ -61,6 +60,9 @@
<div></div> <div></div>
</div> </div>
</div> </div>
<!-- Debug frame Layout -->
<div id="debugwin"></div>
</body> </body>
@@ -106,7 +108,9 @@
function(e) { function(e) {
switch (e.keyCode) { switch (e.keyCode) {
case 602: // Portail case 602: // Portail
window.location.replace('./index.html'); if ( HotelTV.dbginfo['en'] == true ) {
window.location.replace('./index.html');
}
break; break;
default: default:
console.log("Key Code:" + e.keyCode) console.log("Key Code:" + e.keyCode)