diff --git a/procentric/application/app_hoteltv_full.html b/procentric/application/app_hoteltv_full.html index 19ea69f..4650e09 100755 --- a/procentric/application/app_hoteltv_full.html +++ b/procentric/application/app_hoteltv_full.html @@ -295,6 +295,9 @@ +
+
+
@@ -313,9 +316,15 @@
-
- - +
+
+
+
+
+
+
+
+
@@ -334,27 +343,6 @@
- - - @@ -389,34 +377,7 @@ }); var _aa = null; window.addEventListener('load', function() { - // _aa = $('.news .hoteltv-news-ticker').AcmeTicker({ - // type: 'horizontal', - // /*horizontal/horizontal/Marquee/type*/ - // direction: 'right', - // /*up/down/left/right*/ - // speed: true, - // waitms: 2000, - // /*true/false/number*/ - // /*For vertical/horizontal 600*/ - // /*For marquee 0.05*/ - // /*For typewriter 50*/ - // }); - - - // setTimeout(function() { - // //_aa.isPause = true; - // _aa.restart(); - // }, 10000); - - // $('#imageGallery').lightSlider({ - // item: 1, - // slideMargin: 0, - // mode: 'fade', - // adaptiveHeight: true, - // autoWidth: true, - // auto: true, - // loop: true - // }); + console.log("Documents loaded...") }); diff --git a/procentric/application/css/owlcarousel/owl.theme.default.min.css b/procentric/application/css/owlcarousel/owl.theme.default.min.css index c2f4f72..62d4885 100755 --- a/procentric/application/css/owlcarousel/owl.theme.default.min.css +++ b/procentric/application/css/owlcarousel/owl.theme.default.min.css @@ -54,7 +54,7 @@ -webkit-backface-visibility: visible; transition: opacity .2s ease; border: 2px solid rgb(80, 80, 80); - filter: drop-shadow(0 1px 2px rgb(0, 0, 0)); + filter: drop-shadow(0 1px 1px rgb(0, 0, 0)); border-radius: 30px; } diff --git a/procentric/application/hoteltv.app.full.ctzgen.css b/procentric/application/hoteltv.app.full.ctzgen.css index 5d95fbb..7b19a5c 100755 --- a/procentric/application/hoteltv.app.full.ctzgen.css +++ b/procentric/application/hoteltv.app.full.ctzgen.css @@ -26,6 +26,11 @@ align-content: center; } +.main .ctzgen .bg .owl-dots .owl-dot span { + width: 20px; + height: 20px; +} + .main .ctzgen .bg div#lst_ctzgenbg { position: absolute; width: 1920px; @@ -103,25 +108,32 @@ .main .ctzgen .bg .owl-carousel .owl-item .ctz_desc_frame { position: absolute; - top: 150px; - left: 40px; - width: 400px; - height: 800px; + top: 130px; + left: 1280px; + width: 620px; + height: 830px; color: rgb(255, 255, 255); + background-color: rgba(0, 0, 0, 0.5); + padding: 0px 12px 0px 12px; + overflow: hidden; } .main .ctzgen .bg .owl-carousel .owl-item .ctz_desc_frame #ctz_title { position: absolute; - font-size: 60px; - width: 1800px; + font-size: 44px; + line-height: 44px; + height: 100px; + width: 100%; padding: 10px; + white-space: pre-wrap; overflow: hidden; + text-overflow: ellipsis; } .main .ctzgen .bg .owl-carousel .owl-item .ctz_desc_frame #ctz_thumbnail { margin: 120px 10px 40px 10px; height: 220px; - filter: drop-shadow(0 0 10px rgba(0, 0, 0, 1)); + /* filter: drop-shadow(0 0 10px rgba(0, 0, 0, 1)); */ /* border: 4px solid rgb(255, 255, 255); */ } @@ -129,20 +141,21 @@ width: auto; height: 212px; overflow: hidden; - border: 2px solid rgb(40, 40, 40); + /* border: 2px solid rgb(40, 40, 40); */ + border: 2px solid rgb(160, 160, 160); } .main .ctzgen .bg .owl-carousel .owl-item .ctz_desc_frame #ctz_description { position: absolute; font-size: 26px; - width: 700px; + width: 100%; line-height: 26px; margin: 0 10px 0 10px; } .main .ctzgen .bg .owl-carousel .owl-item .ctz_mv_ctrl { position: absolute; - top: 870px; + top: 970px; left: 1700px; height: 54px; line-height: 54px; diff --git a/procentric/application/hoteltv.app.full.mm.css b/procentric/application/hoteltv.app.full.mm.css index 1d94a8b..5fb9be5 100755 --- a/procentric/application/hoteltv.app.full.mm.css +++ b/procentric/application/hoteltv.app.full.mm.css @@ -100,6 +100,17 @@ div#mm_item_icon { align-content: center; } +.main .mm .slider .owl-theme .owl-dots .owl-dot span { + width: 20px; + height: 20px; + background: none; +} + +.main .mm .slider .owl-theme .owl-dots .owl-dot.active span { + /* background: rgb(181, 218, 16); */ + background: rgb(245, 245, 245); +} + /* .main .mm .slider .owl-carousel .owl-item.active.focus div { transform: scale(1.14); diff --git a/procentric/application/hoteltv.app.full.popup.css b/procentric/application/hoteltv.app.full.popup.css index eec5f1a..d617d9a 100755 --- a/procentric/application/hoteltv.app.full.popup.css +++ b/procentric/application/hoteltv.app.full.popup.css @@ -473,7 +473,7 @@ .popup .amenity>.items { /* width: 100%; */ height: 390px; - background-color: rgba(48, 48, 48, 1.0); + /* background-color: rgba(48, 48, 48, 1.0); */ /* overflow-y: auto; */ overflow-y: hidden; overflow-x: hidden; @@ -484,11 +484,13 @@ .popup .amenity>.items table { width: 100%; + border-collapse: collapse; } .popup .amenity>.items .table tr { width: 100%; height: 130px; + border-bottom: 1px solid rgb(52, 52, 52); /* background-color: rgb(0, 0, 128); */ } @@ -586,7 +588,7 @@ } .popup .amenity>.items .table tr.active { - background-color: rgba(67, 67, 67, 1); + background-color: rgba(48, 48, 48, 1.0); box-shadow: 0px 0px 30px rgba(0, 0, 0, 1); } @@ -658,6 +660,7 @@ .popup .amenity>.order-details>.items table { width: 100%; + border-collapse: collapse; } .popup .amenity>.order-details>.items .table tr { @@ -740,7 +743,8 @@ } .popup .amenity>.order-details>.items .table tr.active { - background-color: rgba(67, 67, 67, 1); + /* background-color: rgba(67, 67, 67, 1); */ + background-color: rgba(48, 48, 48, 1.0); box-shadow: 0px 0px 30px rgba(0, 0, 0, 1); } @@ -807,7 +811,6 @@ border-color: rgb(96, 96, 96); vertical-align: top; /* filter: drop-shadow(0 0 10px rgba(255, 255, 255, 1)); */ - background-color: rgba(67, 67, 67, 1); /* box-shadow: 0px 0px 30px rgba(0, 0, 0, 1); */ } @@ -839,7 +842,7 @@ .popup .roomservice .menu>.items { /* width: 100%; */ height: 390px; - background-color: rgba(48, 48, 48, 1.0); + /* background-color: rgba(48, 48, 48, 1.0); */ /* overflow-y: auto; */ overflow-y: hidden; overflow-x: hidden; @@ -850,11 +853,13 @@ .popup .roomservice .menu>.items table { width: 100%; + border-collapse: collapse; } .popup .roomservice .menu>.items .table tr { width: 100%; height: 106px; + border-bottom: 1px solid rgb(52, 52, 52); /* background-color: rgb(0, 0, 128); */ } @@ -882,7 +887,7 @@ height: 70px; margin: 0px 5px 0px 5px; display: block; - vertical-align: top; + /* vertical-align: top; */ font-size: 18px; text-shadow: 2px 2px 4px rgba(0, 0, 0, 1); /* background-color: rgba(124, 124, 0, 1); */ @@ -929,7 +934,8 @@ } .popup .roomservice .menu>.items .table tr.active { - background-color: rgba(67, 67, 67, 1); + /* background-color: rgba(67, 67, 67, 1); */ + background-color: rgba(48, 48, 48, 1.0); box-shadow: 0px 0px 30px rgba(0, 0, 0, 1); } @@ -1267,4 +1273,72 @@ background-position: right center; background-size: contain; filter: drop-shadow(0 0 5px rgba(0, 0, 0, 1)); +} + + +/* Notification Style */ + +.popup>.notification { + display: none; + position: absolute; + top: 10%; + left: 73%; + width: 26%; + height: 10%; +} + +.popup>.notification>.balloon { + position: relative; + display: inline-block; +} + +.popup>.notification>.balloon span { + display: inline-block; + padding: 10px; + color: #fff; + background: #ad1e51; + border-radius: 20px; + font-size: 28px; +} + +.popup>.notification>.balloon:after { + content: ''; + position: absolute; + width: 0; + height: 0; + border-style: solid; +} + +.popup>.notification>.balloon.right:after, +.popup>.notification>.balloon.left:after { + border-width: 10px 15px; + top: 50%; + margin-top: -10px; +} + +.popup>.notification>.balloon.top:after, +.popup>.notification>.balloon.bottom:after { + border-width: 15px 10px; + left: 50%; + margin-left: -10px; +} + +.popup>.notification>.balloon.top:after { + border-color: #ad1e51 transparent transparent transparent; + bottom: -25px; +} + +.popup>.notification>.balloon.bottom:after { + border-color: transparent transparent #ad1e51 transparent; + top: -25px; +} + +.popup>.notification>.balloon.left:after { + border-color: transparent #ad1e51 transparent transparent; + left: -25px; +} + +.popup>.notification>.balloon.right:after { + border-color: transparent transparent transparent #ad1e51; + right: -25px; } \ No newline at end of file diff --git a/procentric/application/hoteltv.app.full.sm.css b/procentric/application/hoteltv.app.full.sm.css index 84b6a93..d7c767a 100755 --- a/procentric/application/hoteltv.app.full.sm.css +++ b/procentric/application/hoteltv.app.full.sm.css @@ -117,22 +117,23 @@ div#sm_item_icon { align-content: center; } +.main .sub .slider .owl-dots .owl-dot span { + width: 20px; + height: 20px; +} + +.main .sub .slider .owl-dots .owl-dot.active span { + background: rgb(255, 192, 0); +} + .main .sub .bg .bg_ctz_thumb_frame { position: absolute; top: 130px; left: 1550px; width: 360px; - height: 700px; + height: 734px; line-height: 50px; - /* background-color: rgba(30, 30, 30, 0.6); - filter: drop-shadow(0 0 12px rgba(0, 0, 0, 0.8)); - border-radius: 8px; - border: solid rgb(181, 218, 16); - */ - background-color: rgba(40, 40, 40, 0.6); - filter: drop-shadow(0 0 12px rgba(0, 0, 0, 0.8)); - border-radius: 4px; - border: solid rgb(10, 10, 10); + background-color: rgba(0, 0, 0, 0.5); overflow: hidden; } @@ -141,13 +142,13 @@ div#sm_item_icon { height: 180px; float: left; margin: 10px 20px 10px 20px; - filter: drop-shadow(0 0 10px rgba(235, 235, 235, 0.9)); - border-radius: 6px; + /* filter: drop-shadow(0 0 10px rgba(235, 235, 235, 0.9)); + border-radius: 6px; */ text-align: center; line-height: 50px; font-size: 20px; color: rgb(235, 235, 235); - border: 1px solid rgb(60, 60, 60); + border: 1px solid rgb(160, 160, 160); display: inline; } @@ -160,7 +161,7 @@ div#sm_item_icon { .main .sub .bg .bg_ctz_thumb_frame #bg_ctz_thumb_morenotice { font-size: 22px; margin: 20px 5px 10px 20px; - line-height: 50px; + line-height: 25px; overflow-wrap: break-word; color: rgb(181, 218, 16); animation: bg_ctz_thumb_morenotice_blinker 2s linear infinite; diff --git a/procentric/application/hoteltv.app.full.widjet.css b/procentric/application/hoteltv.app.full.widjet.css index 84d9043..bc9a5db 100755 --- a/procentric/application/hoteltv.app.full.widjet.css +++ b/procentric/application/hoteltv.app.full.widjet.css @@ -20,8 +20,9 @@ width: 100%; height: 100px; /* background-color: rgba(0, 0, 0, 0.5); */ - filter: drop-shadow(0 0px 5px rgba(0, 0, 0, 1)); + /* filter: drop-shadow(0 0px 5px rgba(0, 0, 0, 1)); */ padding: 0px; + display: none; } @@ -97,6 +98,7 @@ justify-content: center; display: flex; align-items: center; + filter: drop-shadow(0 0px 5px rgba(0, 0, 0, 0.5)); } .widjet .top .weather #temp { @@ -131,6 +133,7 @@ line-height: 52px; padding: 5px 0; text-align: right; + /* -webkit-text-stroke: 1px rgb(64,64,64); */ } .widjet .top .datetime .date { diff --git a/procentric/application/hoteltv.error.css b/procentric/application/hoteltv.error.css index 1e48003..e0b68d8 100755 --- a/procentric/application/hoteltv.error.css +++ b/procentric/application/hoteltv.error.css @@ -7,10 +7,70 @@ width: 1920px; height: 1080px; z-index: 10; + background-size: cover; display: none; } -.error .bg { +.error #details { + position: absolute; width: 100%; height: 100%; +} + +.error #details #title { + position: relative; + left: 9%; + top: 34%; + width: 100%; + height: 50%; + color: rgb(235, 235, 235); + font-size: 64px; + filter: drop-shadow(0 0 5px rgb(0, 0, 0)); + display: block; + /* justify-content: center; */ + /* align-items: center; */ +} + +.error #details #message { + position: relative; + left: 9%; + width: 100%; + height: 50%; + color: rgb(235, 0, 0); + font-size: 38px; + filter: drop-shadow(0 0 5px rgb(0, 0, 0)); + display: flex; + /* vertical-align: middle; */ + /* justify-content: center; */ + /* align-items: center; */ + white-space: pre-line; +} + +.error #details #message.info { + color: rgb(0, 255, 64); +} + +.error #countdown { + position: absolute; + top: 40%; + left: 20%; + width: 60%; + height: 20%; + background-color: rgba(10, 10, 10, 0.7); + border-radius: 8px; + border: solid rgb(64, 64, 64); + display: none; +} + +.error #countdown #message { + position: relative; + width: 100%; + height: 100%; + color: rgb(252, 180, 43); + font-size: 38px; + filter: drop-shadow(0 0 5px rgb(0, 0, 0)); + display: flex; + justify-content: center; + align-items: center; + white-space: pre-line; } \ No newline at end of file diff --git a/procentric/application/index.html b/procentric/application/index.html index 1c8611f..f795f74 100755 --- a/procentric/application/index.html +++ b/procentric/application/index.html @@ -20,9 +20,13 @@
-
-
-
+
+
+
+
+
+
+
diff --git a/procentric/application/lib/hoteltv.api.js b/procentric/application/lib/hoteltv.api.js index 597411b..4b1a94a 100755 --- a/procentric/application/lib/hoteltv.api.js +++ b/procentric/application/lib/hoteltv.api.js @@ -6,7 +6,7 @@ * @summary short description for the file * @author Joel * - * Created at : 2020-11-26 02:21:56 + * Created at : 2020-11-26 02:21:56 * Last modified : 2020-11-26 15:31:40 */ @@ -21,7 +21,8 @@ HotelTV.api = (function() { _token = "aLc*eBgTijklRnopq4s", _registered = false, _exist = false, - _svr_port = 0; + _svr_port = 0, + _1stBoot = false; //// 비공개 프로퍼티 @@ -29,7 +30,7 @@ HotelTV.api = (function() { //// 비공개 매써드 /** - * + * */ function __apifxn_init(param) { _api_ver = param.api_ver; @@ -41,6 +42,7 @@ HotelTV.api = (function() { _token = param.apikey; _registered = param.registered; _exist = param.exist; + _1stBoot = param.firstBoot; } @@ -200,17 +202,17 @@ HotelTV.api = (function() { return new Promise((resolve, reject) => { if (HotelTV.state.token) { let _token = HotelTV.state.token; - __apifxn_init({ 'dev_familly': model, 'serial_num': serial, 'svr_ip': ip, 'svr_port': port, 'api_ver': _token.version, "license": _token.license, "apikey": _token.apikey, "registered": _token.registered, "exist": _token.exist }); + __apifxn_init({ 'dev_familly': model, 'serial_num': serial, 'svr_ip': ip, 'svr_port': port, 'api_ver': _token.version, "license": _token.license, "apikey": _token.apikey, "registered": _token.registered, "exist": _token.exist, "firstBoot": false }); resolve(0); } else { - // licenses api format + // licenses api format // /api/licenses/us761h0n/103INLV4B896 var sz_api_url = "http://" + ip + ":" + port + "/api/licenses" + "/" + model + "/" + serial; console.log("Debug: request token url:" + sz_api_url); __apifxn_CallCmsApi("GET", sz_api_url, "GetToken", null).then(_result => { //console.log(`Success::>${_result.data}`); HotelTV.state.token = JSON.parse(_result.data); - __apifxn_init({ 'dev_familly': model, 'serial_num': serial, 'svr_ip': ip, 'svr_port': port, 'api_ver': HotelTV.state.token.version, "license": HotelTV.state.token.license, "apikey": HotelTV.state.token.apikey, "registered": HotelTV.state.token.registered, "exist": HotelTV.state.token.exist }); + __apifxn_init({ 'dev_familly': model, 'serial_num': serial, 'svr_ip': ip, 'svr_port': port, 'api_ver': HotelTV.state.token.version, "license": HotelTV.state.token.license, "apikey": HotelTV.state.token.apikey, "registered": HotelTV.state.token.registered, "exist": HotelTV.state.token.exist, "firstBoot": HotelTV.state.token.firstBoot }); resolve(0); }).catch(_error => { console.log(`Failure::>${_error.reason}`); @@ -506,7 +508,7 @@ 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 */ PutAmenityOrders: function(_cart_item) { @@ -607,7 +609,7 @@ 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 */ PutRoomserviceOrders: function(_cart_item) { diff --git a/procentric/application/lib/hoteltv.hcap.js b/procentric/application/lib/hoteltv.hcap.js index 4f3b4e6..345b3a1 100755 --- a/procentric/application/lib/hoteltv.hcap.js +++ b/procentric/application/lib/hoteltv.hcap.js @@ -649,7 +649,7 @@ HotelTV.hcap = (function() { hcap.channel.setStartChannel({ "channelType": hcap.channel.ChannelType.UNKNOWN, "onSuccess": function() { - console.log("onSuccess::StartChanell Cetting"); + console.log("onSuccess::StartChanell Setting"); }, "onFailure": function(f) { console.log("onFailure : errorMessage = " + f.errorMessage); @@ -810,6 +810,7 @@ HotelTV.hcap = (function() { // mode : bridge, securityType : psk hcap.network.setSoftAP({ "channel": Number(_wlan_cfg.channel), + "vlanId": 0, "signalStrength": Number(_wlan_cfg.signalStrength), "mode": "bridge", "securityType": (_wlan_cfg.securityType == "open") ? "open" : "psk", @@ -1004,14 +1005,14 @@ HotelTV.hcap = (function() { for (let i = 0; i < _ret.length; i++) { let _set_item = _ret[i]; let no_need_reboot_param = ["wifi_screen_share", "soft_ap", "soft_ap_ui", "osd_layer_id"]; - if (no_need_reboot_param.indexOf(_set_item.key) !== -1) { + if (no_need_reboot_param.indexOf(_set_item.key) == -1) { //Needed reboot the system need_to_reboot = true; } console.log(`Device config[${_set_item.key}] set to ${_set_item.value}`); } + resolve(need_to_reboot); }); - resolve(need_to_reboot); } else { resolve(need_to_reboot); } @@ -1200,7 +1201,30 @@ HotelTV.hcap = (function() { }, PreAppGetInfo: function(_en_show_msg) { - if (g_hcap_info.preapp == null) { + // if (g_hcap_info.preapp == null) { + // hcap.preloadedApplication.getPreloadedApplicationList({ + // "onSuccess": function(s) { + // if (_en_show_msg == true) { + // console.log("onSuccess : list length = " + s.list.length); + // for (var i = 0; i < s.list.length; i++) { + // console.log( + // "list[" + i + "].id = " + s.list[i].id + + // "list[" + i + "].title = " + s.list[i].title + + // "list[" + i + "].iconFilePath = " + s.list[i].iconFilePath + // ); + // } + // } + // if (s.result == true) { + // g_hcap_info.preapp = s.list; + // } + // }, + // "onFailure": function(f) { + // console.log("onFailure : errorMessage = " + f.errorMessage); + // } + // }); + // } + + return new Promise((resolve, reject) => { hcap.preloadedApplication.getPreloadedApplicationList({ "onSuccess": function(s) { if (_en_show_msg == true) { @@ -1215,13 +1239,15 @@ HotelTV.hcap = (function() { } if (s.result == true) { g_hcap_info.preapp = s.list; + resolve({ "error": 0, "applist": g_hcap_info.preapp }); } }, "onFailure": function(f) { console.log("onFailure : errorMessage = " + f.errorMessage); + resolve({ "error": -1, "applist": null }); } }); - } + }); }, LaunchPreApp: function(_name, _param) { @@ -1245,7 +1271,7 @@ HotelTV.hcap = (function() { if (item.title == 'Netflix') { hcap.preloadedApplication.launchPreloadedApplication({ "id": item.id, // NETFLIX - "parameter": "{'params': {'hotel_id':'CENTIRM-Demo','launcher_version':'1.0'}", + "parameter": `{'params': {'hotel_id':${_param.hotel_name},'launcher_version':'1.0'}`, "onSuccess": function() { console.log("onSuccess"); }, diff --git a/procentric/application/lib/hoteltv.js b/procentric/application/lib/hoteltv.js index e609abf..b649a5d 100755 --- a/procentric/application/lib/hoteltv.js +++ b/procentric/application/lib/hoteltv.js @@ -6,7 +6,7 @@ * @summary short description for the file * @author Joel * - * Created at : 2020-11-26 02:21:56 + * Created at : 2020-11-26 02:21:56 * Last modified : 2020-11-26 15:31:40 */ @@ -74,7 +74,7 @@ var HotelTV = HotelTV || { HotelTV.namespace = function(ns_string) { var parts = ns_string.split('.'), parent = HotelTV, - i; // 처음에 중복되는 전역 객체명은 제거한다. + i; // 처음에 중복되는 전역 객체명은 제거한다. if (parts[0] == 'HotelTV') { parts = parts.slice(1); } @@ -157,7 +157,7 @@ function __fxn_Set_DebugOpt() { HotelTV.Init = async function() { console.log("Start Initialization:: "); - //STEP#01::> Shutdown Channel + //STEP#01::> Shutdown Channel HotelTV.hcap.ChannelShutDown(); //SETP#02::> Set Debug Options @@ -169,7 +169,24 @@ HotelTV.Init = async function() { await HotelTV.hcap.GetDevInfo(); //await HotelTV.hcap.ShowDevInfo(); } catch (_error) { - console.log("Fail to get device information"); + let _tmval = 10; + HotelTV.ui_utils.ShowErrMsg(true, + "system.error.get-devinfo", + "SYSTEM ERROR", + "Fail to get System Information.\r\nplease contact your system administrator.", { + "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 reboot in ${_tmval} second...`); + }, + "cb_eoe": function() { + setTimeout(HotelTV.hcap.Reboot(), 500); + } + }); } //STEP#04::> API Module INIT @@ -179,7 +196,24 @@ HotelTV.Init = async function() { let __apiRet = await HotelTV.api.CheckRegistration(); HotelTV.state['registration'] = await HotelTV.api.CheckRegistration(); } catch (_error) { - console.log("Display Error page for check registration"); + let _tmval = 50; + HotelTV.ui_utils.ShowErrMsg(true, + "system.error.check-registration", + "SYSTEM ERROR", + "Un registered device.\r\nplease contact your system administrator.", { + "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(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`); + }, + "cb_eoe": function() { + setTimeout(HotelTV.hcap.Reboot(), 500); + } + }); } if (HotelTV.state['registration'].registered != true) { @@ -195,30 +229,115 @@ HotelTV.Init = async function() { if (need_reboot == true) { console.log("System Need to Reboot"); HotelTV.ui_utils.SetBusy(false); - HotelTV.ui_utils.ShowErrMsg(true, "", ""); - setTimeout(HotelTV.hcap.Reboot(), 3000); + + let _tmval = 20; + HotelTV.ui_utils.ShowErrMsg(true, + "system.info.change-configuration", + "SYSTEM INFO", + `System configuration was changed.\r\n\r\nSystem information summary::\r\nDevice Serial Number: ${HotelTV.devinfo.serial_number}\r\nThe Device Model Name: ${HotelTV.devinfo.model_name}\r\nNetwork Configuration:${HotelTV.devinfo.network_info.ip_address}/${HotelTV.devinfo.network_info.subnet_mask}/${HotelTV.devinfo.network_info.gateway}`, { + "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 reboot in ${_tmval} second...`); + }, + "cb_eoe": function() { + setTimeout(HotelTV.hcap.Reboot(), 500); + } + }); return; } } catch (_error) { - console.log("Display Error page for get stttings"); + let _tmval = 50; + HotelTV.ui_utils.ShowErrMsg(true, + "system.set-devinfo", + "SYSTEM ERROR", + "Fail to configure device.\r\nplease contact your system administrator.", { + "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(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`); + }, + "cb_eoe": function() { + setTimeout(HotelTV.hcap.Reboot(), 500); + } + }); } try { HotelTV.hotelinfo = await HotelTV.api.GetHotelInfo(); } catch (_error) { - console.log("Display Error page for get hotel info"); + let _tmval = 50; + HotelTV.ui_utils.ShowErrMsg(true, + "system.error.get-hotelinfo", + "SYSTEM ERROR", + "Fail to get hotel information.\r\nplease contact your system administrator.", { + "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(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`); + }, + "cb_eoe": function() { + setTimeout(HotelTV.hcap.Reboot(), 500); + } + }); } try { HotelTV.guestinfo = await HotelTV.api.GetGuestInfo(); } catch (_error) { - console.log("Display Error page for get Guest info"); + let _tmval = 50; + HotelTV.ui_utils.ShowErrMsg(true, + "system.error.get-guestinfo", + "SYSTEM ERROR", + "Fail to get guest information.\r\nplease contact your system administrator.", { + "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(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`); + }, + "cb_eoe": function() { + setTimeout(HotelTV.hcap.Reboot(), 500); + } + }); } try { HotelTV.opening = await HotelTV.api.GetOpeningCtz(); } catch (_error) { - console.log("Display Error page for get Opening Contents"); + let _tmval = 50; + HotelTV.ui_utils.ShowErrMsg(true, + "system.error.get-openingctzinfo", + "SYSTEM ERROR", + "Fail to get opening contents information.\r\nplease contact your system administrator.", { + "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(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`); + }, + "cb_eoe": function() { + setTimeout(HotelTV.hcap.Reboot(), 500); + } + }); } try { @@ -236,7 +355,24 @@ HotelTV.Init = async function() { try { HotelTV.tvguide = await HotelTV.api.GetProgramCtz(); } catch (_error) { - console.log("Display Error page for get tvguide info"); + //console.log("Display Error page for get tvguide info"); + HotelTV.ui_utils.ShowErrMsg(true, + "system.error.get-tvguideinfo", + "SYSTEM ERROR", + "Fail to get tv program contents information.\r\nplease contact your system administrator.", { + "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(`The Device ID is ${HotelTV.devinfo.serial_number}.\r\n\r\nSystem will be reboot in ${_tmval} second...`); + }, + "cb_eoe": function() { + setTimeout(HotelTV.hcap.Reboot(), 500); + } + }); } try { @@ -403,30 +539,44 @@ HotelTV.LoadAppFull = async function() { //STEP#03: INIT HCAP for HotelTV FullAPP - try { - let siAppToken = null; - let siAppName = null; - // siApp Token Authentication - let _progam = HotelTV.tvguide.program; - for (let _i = 1; _i <= _progam.length; _i++) { - if (_progam[_i].type == "application" && _progam[_i].service == "netflix") { - siAppToken = await HotelTV.api.DownloadData(_progam[_i].license.file.download); - siAppName = _progam[_i].service; - //siAppToken = _progam[_i].service; - - if (siAppName && siAppToken) { - HotelTV.hcap.siAppAuth(siAppName, siAppToken, false); - } + let tmrAppAuth = setInterval(async function() { + let _foundNetflix = false; + let _hcapAppInfo = await HotelTV.hcap.PreAppGetInfo(false); + HotelTV.state['hcap_app'] = _hcapAppInfo.applist; + for (_i = 0; _i < HotelTV.state['hcap_app'].length; _i++) { + if (HotelTV.state['hcap_app'][_i].title == "Netflix") { + console.log("Found out netflix among of pre hcap app-list.") + clearInterval(tmrAppAuth); } } - } catch (_error) { - console.log("Display Error page for get siApp Auth"); - } + + if (_foundNetflix == false) { + try { + let siAppToken = null; + let siAppName = null; + // siApp Token Authentication + let _progam = HotelTV.tvguide.program; + for (let _i = 1; _i <= _progam.length; _i++) { + if (_progam[_i].type == "application" && _progam[_i].service == "netflix") { + siAppToken = await HotelTV.api.DownloadData(_progam[_i].license.file.download); + siAppName = _progam[_i].service; + //siAppToken = _progam[_i].service; + + if (siAppName && siAppToken) { + HotelTV.hcap.siAppAuth(siAppName, siAppToken, false); + } + } + } + } catch (_error) { + console.log("Display Error page for get siApp Auth"); + } + } + }, 5000); + //STEP#05: Set Display size let _res = HotelTV.devinfo.display_resolution.split("x"); HotelTV.ui_appfull.Init(_res[0], _res[1]); - HotelTV.hcap.PreAppGetInfo(false); //STEP#06; Show UI //await HotelTV.hcap.ShowDevInfo(); @@ -470,28 +620,28 @@ HotelTV.LoadAppFull = async function() { // } // } else if (recvMsg.event == "update_weather") { - // } else if (recvMsg.event == "update_report") { - // // HotelTV.hcap.GetUptime(); - // // HotelTV.hcap.GetDeviceUsage().then(_usage => { - // // //console.log(`USAGE::> CPU[${_usage.cpu}%] RAM[${_usage.mem}%]`); - // // //HotelTV.api.ReportBrief(HotelTV.devinfo, HotelTV.guestinfo, _usage); - // // }); - // } else if (recvMsg.event == "mqtt_events") { - // console.log(`MQTTMSG::> ${recvMsg.data}`); + // } + + // if (recvMsg.event == "update_report") { + // HotelTV.hcap.GetUptime(); + // HotelTV.hcap.GetDeviceUsage().then(_usage => { + // console.log(`USAGE::> CPU[${_usage.cpu}%] RAM[${_usage.mem}%]`); + // //HotelTV.api.ReportBrief(HotelTV.devinfo, HotelTV.guestinfo, _usage); + // }); // } } } else { console.log('Your browser doesn\'t support web workers.') } - //STEP#07 MQTT Service + //STEP#07 MQTT Service if (HotelTV.services) { if (HotelTV.services.mqtt) { let _mqttSvcInfo = HotelTV.services.mqtt; if (_mqttSvcInfo.protocol == "ws") { var client = mqtt.connect( - //'ws://' + HotelTV.svrinfo.ipaddr + ':9001', + //'ws://' + HotelTV.svrinfo.ipaddr + ':9001', 'ws://' + _mqttSvcInfo.host + ':' + _mqttSvcInfo.port, { clean: true, // retain session connectTimeout: 4000, // Timeout period @@ -502,20 +652,6 @@ HotelTV.LoadAppFull = async function() { ); client.on('connect', function() { - // let sz_topic = ['ctlxb0_' + HotelTV.devinfo.serial_number + '/topic', 'ctlxb0_all/topic']; - - // client.subscribe(sz_topic[0], function(err) { - // if (err) { - // console.log(`Fail to subscribe::TOPIC[${sz_topic[0]}]`); - // } - // }); - - // client.subscribe(sz_topic[1], function(err) { - // if (err) { - // console.log(`Fail to subscribe::TOPIC[${sz_topic[1]}]`); - // } - // }) - client.subscribe(_mqttSvcInfo.topic, function(err) { if (err) { console.log(`Fail to subscribe::TOPIC[${_mqttSvcInfo.topic}]`); diff --git a/procentric/application/lib/hoteltv.ui_appfull.js b/procentric/application/lib/hoteltv.ui_appfull.js index f361c00..ac16bcd 100755 --- a/procentric/application/lib/hoteltv.ui_appfull.js +++ b/procentric/application/lib/hoteltv.ui_appfull.js @@ -129,9 +129,9 @@ HotelTV.ui_appfull = (function() { let _typeAppFocusEvt = _evt.eventType; if (_typeAppFocusEvt == "focused") { - HotelTV.hcap.SetSoftAp({ - "enable": false, - }); + // HotelTV.hcap.SetSoftAp({ + // "enable": false, + // }); } } @@ -301,7 +301,7 @@ HotelTV.ui_appfull = (function() { // Free count value _elAmItemTblRecRoot.children('div#details').children(`div#freecnt_val`).text(__fxn_fmvalue(_carts.items, "freeCount", _amItem.id)); // Price value - _elAmItemTblRecRoot.children('div#details').children(`div#price_val`).text(__fxn_fmvalue(_carts.items, "price", _amItem.id)[_state.lang] + _amenity.currency[_state.lang]); + _elAmItemTblRecRoot.children('div#details').children(`div#price_val`).text(__fxn_fmvalue(_carts.items, "price", _amItem.id)[_state.lang].toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + _amenity.currency[_state.lang]); // Order Count _elAmItemTblRecRoot.children(`div#quantity_val`).text(__fxn_fmvalue(_carts.items, "quantity", _amItem.id)); } @@ -778,7 +778,7 @@ HotelTV.ui_appfull = (function() { let _elRsItemTblRecRoot = _elRsMnRoot.children('div.items').children('table').children(`tr#${_rsItem.id}`).children('div.products'); if (_carts.items.length && __fxn_fmexist(_carts.items, _rsItem.id) == true) { // amount value - _elRsItemTblRecRoot.children('div#details').children('#price').text(__fxn_fmvalue(_carts.items, "amount", _rsItem.id)[_state.lang] + _roomservice.currency[_state.lang]); + _elRsItemTblRecRoot.children('div#details').children('#price').text(__fxn_fmvalue(_carts.items, "amount", _rsItem.id)[_state.lang].toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") + _roomservice.currency[_state.lang]); // Order Count _elRsItemTblRecRoot.children('div#details').children('#quantity').children(`#value`).text(__fxn_fmvalue(_carts.items, "quantity", _rsItem.id)); } @@ -1876,7 +1876,7 @@ HotelTV.ui_appfull = (function() { HotelTV.api.SetMessageStatus(_cur_msgdesc._id); _cur_msgdesc.read = true; $('.main>.mypage>.bg>.owl-carousel .owl-item #mp_msg_tblrec tr').filter("[msgidx='" + _cur_msglst_idx.toString() + "']").children('td#num').addClass('read'); - __uifxn_AppFull_Widjet_ShowMsgCnt(); + __uifxn_AppFull_TopWidjet_BuildMsgCnt(); }); } } @@ -2956,7 +2956,7 @@ HotelTV.ui_appfull = (function() { // if (_state.menu.stage == "popup_message_card") { //HIDE NEWS and USER GUIDE TIPS - if (_newsInfo == null || Object.keys(_newsInfo).length == 0) { + if (_newsInfo == null || _newsInfo.length == 0) { if ($('.news').css('display') != "none") { $('.news').hide(); } @@ -2968,7 +2968,7 @@ HotelTV.ui_appfull = (function() { return; } else if (_state.menu.stage == "tvCtgHide") { //HIDE NEWS and USER GUIDE TIPS - if (_newsInfo == null || Object.keys(_newsInfo).length == 0) { + if (_newsInfo == null || newsInfo.length == 0) { if ($('.news').css('display') != "none") { $('.news').hide(); } @@ -3041,7 +3041,7 @@ HotelTV.ui_appfull = (function() { if ($('.guide>.tips').css('display') == "none") { $('.guide>.tips').fadeIn(500, function() { //SHOW NEWS - if (_newsInfo == null || Object.keys(_newsInfo).length == 0) { + if (_newsInfo == null || _newsInfo.length == 0) { if ($('.news').css('display') != "none") { $('.news').hide(); } @@ -3069,20 +3069,26 @@ HotelTV.ui_appfull = (function() { } } else { //HIDE TIPS and then SHOW NEWS - if (_newsInfo == null || Object.keys(_newsInfo).length == 0) { - if ($('.news').css('display') != "none") { - $('.news').hide(); - } - } else { - if ($('.guide>.tips').css('display') == "block") { - $('.guide>.tips').fadeOut(500, function() { + if ($('.guide>.tips').css('display') == "block") { + $('.guide>.tips').fadeOut(500, function() { + if (_newsInfo == null || _newsInfo.length == 0) { + if ($('.news').css('display') != "none") { + $('.news').hide(); + } + } else { if ($('.news').css('display') != "block") { $('.news').fadeIn(500, function() { __uifxn_AppFull_BldNews(); $('.news>.newsctz #hoteltv-news-ticker').webTicker('cont'); }); } - }); + } + }); + } else { + if (_newsInfo == null || _newsInfo.length == 0) { + if ($('.news').css('display') != "none") { + $('.news').hide(); + } } else { if ($('.news').css('display') != "block") { $('.news').fadeIn(500, function() { @@ -3095,7 +3101,7 @@ HotelTV.ui_appfull = (function() { } } else { //HIDE NEWS and USER GUIDE TIPS - if (_newsInfo == null || Object.keys(_newsInfo).length == 0) { + if (_newsInfo == null || _newsInfo.length == 0) { if ($('.news').css('display') != "none") { $('.news').hide(); } @@ -3104,15 +3110,20 @@ HotelTV.ui_appfull = (function() { if ($('.guide>.tips').css('display') != "none") { $('.guide>.tips').fadeOut(500, function() { - if ($('.news').css('display') != "none") { - if ($('.news>.newsctz #hoteltv-news-ticker').children().length > 0) { - $('.news>.newsctz #hoteltv-news-ticker').webTicker('stop'); - $('.news').fadeOut(500); + if (_newsInfo == null || _newsInfo.length == 0) { + if ($('.news').css('display') != "none") { + $('.news').hide(); + } + } else { + if ($('.news').css('display') != "none") { + if ($('.news>.newsctz #hoteltv-news-ticker').children().length > 0) { + $('.news>.newsctz #hoteltv-news-ticker').webTicker('stop'); + $('.news').fadeOut(500); + } } } }); } - } } @@ -3186,7 +3197,7 @@ HotelTV.ui_appfull = (function() { * HotelTV UI Wrapper Function::> Show Top Widjet Weather * @param {boolean} _en show/hide */ - function __uifxn_AppFull_Widjet_ShowWeather(_en) { + function __uifxn_AppFull_TopWidjet_BuildWeather() { let _weather = HotelTV.weather; $('.widjet .top .weather #icon').css({ "background-image": "url(" + _weather.smallicon_image[_weather.item.condition.code] + ")" }); $('.widjet .top .weather #temp').text(_weather.item.condition.temp + "°C"); @@ -3198,7 +3209,7 @@ HotelTV.ui_appfull = (function() { * HotelTV UI Wrapper Function::> Show Top Widjet Message Cnt(Unread) * @param {boolean} _en show/hide */ - function __uifxn_AppFull_Widjet_ShowMsgCnt(_en) { + function __uifxn_AppFull_TopWidjet_BuildMsgCnt(_en) { let _msgCnt = 0; const _state = HotelTV.state; const _guest = HotelTV.guestinfo; @@ -3224,6 +3235,22 @@ HotelTV.ui_appfull = (function() { $('div#lst_mypagebg div #mp_message_title').text(_guest.name + _trTbl.ui.mypage.message.title.title[_state.lang].replace("_XX", _msgCnt.toString())); } + /** + * HotelTV UI Wrapper Function::> Show Top Widjet Weather + * @param {boolean} _show show/hide + */ + function __uifxn_AppFull_TopWidjetShow(_show) { + if (_show == true) { + if ($('.widjet .top').css("display") == "none") { + $('.widjet .top').fadeIn(300); + } + } else { + if ($('.widjet .top').css("display") != "none") { + $('.widjet .top').fadeOut(300); + } + } + } + /** * HotelTV UI Wrapper Function::> Build Main Menu::> Flight @@ -3517,10 +3544,10 @@ HotelTV.ui_appfull = (function() { $('.widjet .top .hotellogo').css({ "background-image": "url(" + HotelTV.hotelinfo.subLogo.download + ")" }); //상단 날씨 아이콘 및 온도 표시 - __uifxn_AppFull_Widjet_ShowWeather(); + __uifxn_AppFull_TopWidjet_BuildWeather(); //상단 메시지(unread)개수 표시 - __uifxn_AppFull_Widjet_ShowMsgCnt(); + __uifxn_AppFull_TopWidjet_BuildMsgCnt(); // //상단 시계 표시 _hndl_widget_topTime = setInterval(() => { @@ -3530,6 +3557,8 @@ HotelTV.ui_appfull = (function() { $('.widjet .top .datetime .date').text(_szCurTm.date); }, 1000); + __uifxn_AppFull_TopWidjetShow(true); + //Weather Contents Buildup __uifxn_AppFull_MM_BldWeather(); @@ -3609,14 +3638,27 @@ HotelTV.ui_appfull = (function() { } else if (_program[Number(_state.menu.main.cur)].type.toLowerCase() == "application") { console.log("Preparing TV APP::>" + _program[Number(_state.menu.main.cur)].service); if (_program[Number(_state.menu.main.cur)].service == "youtube") { - console.log(`Type:${_program[Number(_state.menu.main.cur)].type} preparing WIFI AP...`); - HotelTV.hcap.SetSoftAp({ - "enable": true, - "ssid": "TVWIFI-" + HotelTV.guestinfo.room, - "password": "12345678", - }); + // console.log(`Type:${_program[Number(_state.menu.main.cur)].type} preparing WIFI AP...`); + // HotelTV.hcap.SetSoftAp({ + // "enable": true, + // "ssid": "TVWIFI-" + HotelTV.guestinfo.room, + // "password": "12345678", + // }); + HotelTV.hcap.LaunchPreApp(_program[Number(_state.menu.main.cur)].service, null); + } else if (_program[Number(_state.menu.main.cur)].service == "netflix") { + let _foundNetflix = false; + for (_i = 0; _i < _state['hcap_app'].length; _i++) { + if (_state['hcap_app'][_i].title == 'Netflix') { + _foundNetflix = true; + } + } + + if (_foundNetflix == true) { + HotelTV.hcap.LaunchPreApp(_program[Number(_state.menu.main.cur)].service, { "hotel_name": HotelTV.hotelinfo.name }); + } else { + HotelTV.ui_utils.ShowNotificationMsgBalloon("서비스를 중비 중입니다. 잠시후에 이용해 주세요.", 5); + } } - HotelTV.hcap.LaunchPreApp(_program[Number(_state.menu.main.cur)].service, null); } else { console.log(`Type:${_program[Number(_state.menu.main.cur)].type} doen's have sub menu...`); } @@ -3628,6 +3670,7 @@ HotelTV.ui_appfull = (function() { $('.popup .hotkey_mm_red').fadeIn(1000, function() { _state.menu.stage = "hotkey_mm_red"; __uifxn_AppFull_ShowMMHotKeyBtn(false); + __uifxn_AppFull_TopWidjetShow(false); }); } else if (_state.hotkey.mm.red.type == "amenity") { $('.popup .amenity').show(0, function() { @@ -3654,6 +3697,7 @@ HotelTV.ui_appfull = (function() { $('.popup .hotkey_mm_green').fadeIn(1000, function() { _state.menu.stage = "hotkey_mm_green"; __uifxn_AppFull_ShowMMHotKeyBtn(false); + __uifxn_AppFull_TopWidjetShow(false); }); } else if (_state.hotkey.mm.green.type == "amenity") { $('.popup .amenity').show(0, function() { @@ -3680,6 +3724,7 @@ HotelTV.ui_appfull = (function() { $('.popup .hotkey_mm_yellow').fadeIn(1000, function() { _state.menu.stage = "hotkey_mm_yellow"; __uifxn_AppFull_ShowMMHotKeyBtn(false); + __uifxn_AppFull_TopWidjetShow(false); }); } else if (_state.hotkey.mm.yellow.type == "amenity") { $('.popup .amenity').show(0, function() { @@ -3706,6 +3751,7 @@ HotelTV.ui_appfull = (function() { $('.popup .hotkey_mm_blue').fadeIn(1000, function() { _state.menu.stage = "hotkey_mm_blue"; __uifxn_AppFull_ShowMMHotKeyBtn(false); + __uifxn_AppFull_TopWidjetShow(false); }); } else if (_state.hotkey.mm.blue.type == "amenity") { $('.popup .amenity').show(0, function() { @@ -3777,6 +3823,7 @@ HotelTV.ui_appfull = (function() { $('.popup .hotkey_mm_red').css({ "background-color": "" }); _state.menu.stage = "main"; __uifxn_AppFull_ShowMMHotKeyBtn(true); + __uifxn_AppFull_TopWidjetShow(true); }); }); } @@ -3792,6 +3839,7 @@ HotelTV.ui_appfull = (function() { $('.popup .hotkey_mm_green').css({ "background-color": "" }); _state.menu.stage = "main"; __uifxn_AppFull_ShowMMHotKeyBtn(true); + __uifxn_AppFull_TopWidjetShow(true); }); }); } @@ -3811,6 +3859,7 @@ HotelTV.ui_appfull = (function() { $('.popup .hotkey_mm_yellow').css({ "background-color": "" }); _state.menu.stage = "main"; __uifxn_AppFull_ShowMMHotKeyBtn(true); + __uifxn_AppFull_TopWidjetShow(true); }); }); } @@ -3830,6 +3879,7 @@ HotelTV.ui_appfull = (function() { $('.popup .hotkey_mm_blue').css({ "background-color": "" }); _state.menu.stage = "main"; __uifxn_AppFull_ShowMMHotKeyBtn(true); + __uifxn_AppFull_TopWidjetShow(true); }); }); } @@ -4140,7 +4190,7 @@ HotelTV.ui_appfull = (function() { $('div#lst_mypagebg div #mp_message_title').text(_guest.name + _trTbl.ui.mypage.message.title.title[_state.lang].replace("_XX", _msg_unread_cnt.toString())); //widjet 상단 메시지(unread)개수 표시 - __uifxn_AppFull_Widjet_ShowMsgCnt(); + __uifxn_AppFull_TopWidjet_BuildMsgCnt(); }).catch(_error => { console.log("Fail to get Message info"); }); @@ -4172,6 +4222,7 @@ HotelTV.ui_appfull = (function() { UpdateEpg: function() { let _state = HotelTV.state; + let _trTbl = HotelTV.translation; if (_state.menu.stage != 'tvCtgHide') { return; @@ -4187,7 +4238,7 @@ HotelTV.ui_appfull = (function() { if (_epg_inf != null) { _ch.text(_egp_prog_inf.name); } else { - _ch.text(HotelTV.ui_utils.Get_String('epg_none', _state.lang)); + _ch.text(_trTbl.ui.tv.epg.msg.none_epg_info[_state.lang]); } }); }); diff --git a/procentric/application/lib/hoteltv.ui_utils.js b/procentric/application/lib/hoteltv.ui_utils.js index 50efca3..0f450c3 100755 --- a/procentric/application/lib/hoteltv.ui_utils.js +++ b/procentric/application/lib/hoteltv.ui_utils.js @@ -15,50 +15,12 @@ HotelTV.ui_utils = (function() { //// 의존 관계 선언 //// 비공개 프로퍼티 - let g_uiTbl_imgPath_Brochure_buttons = { - 'ko-KR': "./images/brochure/bt_brochure_ko.png", - 'en-US': "./images/brochure/bt_brochure_en.png", - 'zh-CN': "./images/brochure/bt_brochure_ch01.png", - 'zh-TW': "./images/brochure/bt_brochure_ch02.png", - 'ja-JP': "./images/brochure/bt_brochure_jp.png" - }; - - let g_uiTbl_imgPath_InRoomDining_buttons = { - 'ko-KR': "./images/IRD/bt_inroom_ko.png", - 'en-US': "./images/IRD/bt_inroom_en.png", - 'zh-CN': "./images/IRD/bt_inroom_ch01.png", - 'zh-TW': "./images/IRD/bt_inroom_ch02.png", - 'ja-JP': "./images/IRD/bt_inroom_jp.png" - }; - - let g_uiTbl_String = { - // //Words & Sentance for Menu & Contents - - - - // 'guide_flightschedule': { - // 'kr': '화살표를 사용하여 제주국제공항 출발, 도착하는 항공 스케줄을 확인하세요.', - // 'en': 'Use the arrows to check flight schedules arriving and leaving from Jeju International Airport.', - // 'ch': '请用箭头查看济州国际机场出发、到达航班的时刻表。', - // 'tw': '請用箭頭查看濟州國際機場出發、到達航班的時刻表。', - // 'jp': '矢印を使って済州国際空港出発便、到着便の航空スケジュールをご確認ください。' - // }, - - // //EPG - // 'epg_none': { - // 'kr': "프로그램 정보가 없습니다", - // 'en': "No program information", - // 'ch': "没有节目信息", - // 'tw': "沒有節目信息", - // 'jp': "プログラム情報はありません" - // }, - }; - var g_uiVar_Clock = { time: '', date: '' }; + var g_uiVar_NotifyBallon = null; /// 초기화 루틴 @@ -67,6 +29,58 @@ HotelTV.ui_utils = (function() { //// 비공개 매써드 + /** + * HotelTV UI Wrapper Function::> Countdown timer for Error screen + * @param {boolean} enable enable/disable + */ + const __uiFxn_TmrCDnErrScreen = function(end_of_date, _cbFxn1, _cbFxn2) { + var _vDate = new Date(end_of_date); // 전달 받은 일자 + var timer; + + function ____rn_cb() { + var now = new Date(); + var distDt = _vDate - now; + + if (distDt < 0) { + clearInterval(timer); + if (_cbFxn2) { + _cbFxn2(); + } + return; + } + + if (_cbFxn1) { + _cbFxn1(); + } + } + + timer = setInterval(____rn_cb, 1000); + } + + /** + * HotelTV UI Wrapper Function::> Countdown timer for Error notification ballon + * @param {boolean} enable enable/disable + */ + const __uiFxn_TmrCDnNotiBallon = function(end_of_date, _cbClose) { + var _vDate = new Date(end_of_date); // 전달 받은 일자 + + function ____rn_cb() { + var now = new Date(); + var distDt = _vDate - now; + + if (distDt < 0) { + clearInterval(g_uiVar_NotifyBallon); + if (_cbClose) { + _cbClose(); + } + g_uiVar_NotifyBallon = null; + return; + } + } + + g_uiVar_NotifyBallon = setInterval(____rn_cb, 1000); + } + /** * HotelTV UI Wrapper Function::> Show(Build) Busy(loading) animation * @param {boolean} enable enable/disable @@ -103,10 +117,21 @@ HotelTV.ui_utils = (function() { __uifxn_BusyAnimation(show); }, - ShowErrMsg: function(_show, _title, _msg) { + ShowErrMsg: function(_show, _type, _title, _msg, _cdn_obj) { if (_show) { - $('.error').css("background-color", "rgb(255,0,0)"); + const typ_info = ['system.info.change-configuration']; + if (typ_info.indexOf(_type) >= 0) { + $('.error #details #message').addClass("info"); + } + $('.error').css("background-image", "url('./images/hoteltv_service_error.png')"); + $('.error #details #title').text(_title); + $('.error #details #message').text(_msg); $('.error').fadeIn(500); + if (_cdn_obj) { + var dt = new Date(); + dt.setSeconds(dt.getSeconds() + Number(_cdn_obj.timeout)); + __uiFxn_TmrCDnErrScreen(dt, _cdn_obj.cb_disp, _cdn_obj.cb_eoe); + } } else { $('.error').fadeOut(500, function() { $(this).css("background-image", "None"); @@ -122,18 +147,6 @@ HotelTV.ui_utils = (function() { return g_uiVar_Clock; }, - Get_String: function(_key, _lang) { - return g_uiTbl_String[_key][_lang]; - }, - - Brochure_GetBtn: function(_lang) { - return g_uiTbl_imgPath_Brochure_buttons[_lang]; - }, - - IRD_GetBtn: function(_lang) { - return g_uiTbl_imgPath_InRoomDining_buttons[_lang]; - }, - Get_Airline: function(_obj, _airline, _lang) { if (_obj) { if (_obj[_airline]) { @@ -183,5 +196,21 @@ HotelTV.ui_utils = (function() { } return _cvt_speed.toString() + " " + _szDir; }, + + ShowNotificationMsgBalloon: function(_msg, _tmoutInSec) { + if (g_uiVar_NotifyBallon) { + clearInterval(g_uiVar_NotifyBallon); + } + var dt = new Date(); + dt.setSeconds(dt.getSeconds() + Number(_tmoutInSec)); + + if (_msg) { + $('.popup>.notification .balloon #message').text(_msg); + __uiFxn_TmrCDnNotiBallon(dt, function() { + $('.popup>.notification').fadeOut(300); + }); + $('.popup>.notification').fadeIn(300); + } + }, } })(); \ No newline at end of file diff --git a/procentric/application/wellcome.html b/procentric/application/wellcome.html index 3d0c024..db07efa 100755 --- a/procentric/application/wellcome.html +++ b/procentric/application/wellcome.html @@ -40,6 +40,13 @@
+
+
+
+
+
+
+
diff --git a/procentric/application/xait.xml b/procentric/application/xait.xml index 2b604a8..69b8c74 100755 --- a/procentric/application/xait.xml +++ b/procentric/application/xait.xml @@ -1,5 +1,5 @@ - 2 + 4 Pro:Centric App 0x1204 @@ -16,12 +16,12 @@ AUTOSTART NOT_VISIBLE_USERS 255 - 6 + 7 - http://10.12.200.189:80/procentric/application/index.html + http://10.20.0.2:8880/procentric/application/index.html - \ No newline at end of file +