issue #10 서브,컨텐트 빠르게 이동시 검은색 화면 출력 화면 개선. 상단 날씨 위젯 전용 API적용.
This commit is contained in:
@@ -87,6 +87,7 @@ HotelTV.api = (function() {
|
||||
"get_site_info": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/info",
|
||||
"get_guest_info": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/guest",
|
||||
"get_opening_ctz": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/opening",
|
||||
"get_widget_ctz": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/widget",
|
||||
"get_program_ctz": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/program",
|
||||
"get_epg_info": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/epg",
|
||||
"get_weather": __apifxn_get_base_url() + "/api/" + _api_ver + "/assets/" + _dev_familly + "/" + _serial_num + "/weather",
|
||||
@@ -354,6 +355,19 @@ HotelTV.api = (function() {
|
||||
});
|
||||
},
|
||||
|
||||
GetWidgetCtz: function() {
|
||||
return new Promise((resolve, reject) => {
|
||||
let sz_api_url = __apifxn_get_api_url("get_widget_ctz");
|
||||
__apifxn_CallCmsApi("GET", sz_api_url, "GetWidgetCtz", null).then(_result => {
|
||||
//console.log(`Success::>${_result.data}`);
|
||||
resolve(JSON.parse(_result.data));
|
||||
}).catch(_error => {
|
||||
console.error(`Failure::>${_error.reason}`);
|
||||
reject(_error.reason);
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
GetProgramCtz: function() {
|
||||
return new Promise((resolve, reject) => {
|
||||
let sz_api_url = __apifxn_get_api_url("get_program_ctz");
|
||||
|
||||
@@ -23,6 +23,7 @@ var HotelTV = HotelTV || {
|
||||
'weather': {},
|
||||
'epg': {},
|
||||
'news': {},
|
||||
'widget': {},
|
||||
'tvguide': {},
|
||||
'message': {},
|
||||
'translation': {},
|
||||
@@ -56,7 +57,8 @@ var HotelTV = HotelTV || {
|
||||
},
|
||||
'schedule': {
|
||||
'flight_reflash': false,
|
||||
'weather_reflash': false
|
||||
'weather_reflash': false,
|
||||
'widget_reflash': false
|
||||
},
|
||||
'token': null
|
||||
},
|
||||
@@ -369,6 +371,29 @@ HotelTV.Init = async function() {
|
||||
console.error("Display Error page for get flight info");
|
||||
}
|
||||
|
||||
try {
|
||||
HotelTV.widget = await HotelTV.api.GetWidgetCtz();
|
||||
} catch (_error) {
|
||||
//console.log("Display Error page for get widget info");
|
||||
HotelTV.ui_utils.ShowErrMsg(true,
|
||||
"system.error.get-widget",
|
||||
"SYSTEM ERROR",
|
||||
"Fail to get tv widget 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 {
|
||||
HotelTV.tvguide = await HotelTV.api.GetProgramCtz();
|
||||
} catch (_error) {
|
||||
@@ -421,6 +446,7 @@ HotelTV.Init = async function() {
|
||||
sessionStorage.setItem("opening", JSON.stringify(HotelTV.opening));
|
||||
sessionStorage.setItem("flight", JSON.stringify(HotelTV.flight));
|
||||
sessionStorage.setItem("weather", JSON.stringify(HotelTV.weather));
|
||||
sessionStorage.setItem("widget", JSON.stringify(HotelTV.widget));
|
||||
sessionStorage.setItem("tvguide", JSON.stringify(HotelTV.tvguide));
|
||||
sessionStorage.setItem("news", JSON.stringify(HotelTV.news));
|
||||
sessionStorage.setItem("message", JSON.stringify(HotelTV.message));
|
||||
@@ -457,6 +483,7 @@ HotelTV.LoadWelCome = async function() {
|
||||
HotelTV.guestinfo = await JSON.parse(sessionStorage.getItem("guestinfo"));
|
||||
HotelTV.hotelinfo = await JSON.parse(sessionStorage.getItem("hotelinfo"));
|
||||
HotelTV.opening = await JSON.parse(sessionStorage.getItem("opening"));
|
||||
HotelTV.widget = await JSON.parse(sessionStorage.getItem("widget"));
|
||||
HotelTV.tvguide = await JSON.parse(sessionStorage.getItem("tvguide"));
|
||||
try {
|
||||
HotelTV.services = await HotelTV.api.GetServiceInfo();
|
||||
@@ -592,6 +619,7 @@ HotelTV.LoadAppFull = async function() {
|
||||
HotelTV.hotelinfo = await JSON.parse(sessionStorage.getItem("hotelinfo"));
|
||||
HotelTV.weather = await JSON.parse(sessionStorage.getItem("weather"));
|
||||
HotelTV.opening = await JSON.parse(sessionStorage.getItem("opening"));
|
||||
HotelTV.widget = await JSON.parse(sessionStorage.getItem("widget"));
|
||||
HotelTV.tvguide = await JSON.parse(sessionStorage.getItem("tvguide"));
|
||||
HotelTV.flight = await JSON.parse(sessionStorage.getItem("flight"));
|
||||
HotelTV.news = await JSON.parse(sessionStorage.getItem("news"));
|
||||
@@ -712,7 +740,11 @@ HotelTV.LoadAppFull = async function() {
|
||||
}
|
||||
} else if (recvMsg.event == "update_weather") {
|
||||
if (recvMsg.ret === "OK") {
|
||||
HotelTV.weather =recvMsg.data;
|
||||
HotelTV.weather = recvMsg.data;
|
||||
}
|
||||
} else if (recvMsg.event == "update_wiget") {
|
||||
if (recvMsg.ret === "OK") {
|
||||
HotelTV.widget = recvMsg.data;
|
||||
}
|
||||
} else if (recvMsg.event == "update_report") {
|
||||
HotelTV.hcap.GetUptime();
|
||||
|
||||
@@ -19,6 +19,7 @@ var g_tm_prev = {
|
||||
"news": null,
|
||||
"epg": null,
|
||||
"weather": null,
|
||||
"widget": null,
|
||||
"flight": null,
|
||||
"report": null,
|
||||
};
|
||||
@@ -42,6 +43,7 @@ function __svcfxn_get_api_url(api_type) {
|
||||
"get_news": __svcfxn_get_base_url() + "/api/" + g_config.token.version + "/assets/" + g_config.dev_family + "/" + g_config.dev_snum + "/news",
|
||||
"get_epg": __svcfxn_get_base_url() + "/api/" + g_config.token.version + "/assets/" + g_config.dev_family + "/" + g_config.dev_snum + "/epg",
|
||||
"get_weather": __svcfxn_get_base_url() + "/api/" + g_config.token.version + "/assets/" + g_config.dev_family + "/" + g_config.dev_snum + "/weather",
|
||||
"get_widget": __svcfxn_get_base_url() + "/api/" + g_config.token.version + "/assets/" + g_config.dev_family + "/" + g_config.dev_snum + "/widget",
|
||||
"get_flight": __svcfxn_get_base_url() + "/api/" + g_config.token.version + "/assets/" + g_config.dev_family + "/" + g_config.dev_snum + "/flight",
|
||||
}
|
||||
|
||||
@@ -126,6 +128,7 @@ async function sworker_service(args) {
|
||||
"news": false,
|
||||
"flight": false,
|
||||
"weather": false,
|
||||
"widget": false,
|
||||
"report": false,
|
||||
};
|
||||
let _tm_cur = new Date();
|
||||
@@ -206,13 +209,25 @@ async function sworker_service(args) {
|
||||
let _tm_diff_s = Math.floor(_tm_diff_ms / 1000);
|
||||
|
||||
//WEATHER정보는 매 2시간 마다 한번씩 업데이트
|
||||
if (_tm_diff_s > 7200) {
|
||||
//if (_tm_diff_s > 7200) {
|
||||
if (_tm_diff_s > 60) {
|
||||
g_tm_prev.weather = _tm_cur;
|
||||
_bNeed_Update.weather = true;
|
||||
}
|
||||
}
|
||||
|
||||
// CHECK WIDGET INFORMATION UPDATE
|
||||
if (g_tm_prev.widget != null) {
|
||||
let _tm_diff_ms = _tm_cur.getTime() - g_tm_prev.weather.getTime();
|
||||
let _tm_diff_s = Math.floor(_tm_diff_ms / 1000);
|
||||
|
||||
//WEATHER정보는 매 1시간 마다 한번씩 업데이트
|
||||
//if (_tm_diff_s > 3600) {
|
||||
if (_tm_diff_s > 60) {
|
||||
g_tm_prev.widget = _tm_cur;
|
||||
_bNeed_Update.widget = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -245,14 +260,23 @@ async function sworker_service(args) {
|
||||
}
|
||||
|
||||
if (_bNeed_Update.weather == true) {
|
||||
let sz_api_url = __svcfxn_get_api_url("get_flight");
|
||||
__svcfxn_CallCmsApi(sz_api_url, "GetFlight", null).then(_result => {
|
||||
let sz_api_url = __svcfxn_get_api_url("get_weather");
|
||||
__svcfxn_CallCmsApi(sz_api_url, "GetWeather", null).then(_result => {
|
||||
g_port.postMessage({ "event": "update_weather", "ret": "OK", "data": JSON.parse(_result.data) });
|
||||
}).catch(_error => {
|
||||
g_port.postMessage({ "event": "update_weather", "ret": "ERROR", "data": null });
|
||||
});
|
||||
}
|
||||
|
||||
if (_bNeed_Update.widget == true) {
|
||||
let sz_api_url = __svcfxn_get_api_url("get_widget");
|
||||
__svcfxn_CallCmsApi(sz_api_url, "GetWidget", null).then(_result => {
|
||||
g_port.postMessage({ "event": "update_widget", "ret": "OK", "data": JSON.parse(_result.data) });
|
||||
}).catch(_error => {
|
||||
g_port.postMessage({ "event": "update_widget", "ret": "ERROR", "data": null });
|
||||
});
|
||||
}
|
||||
|
||||
if (_bNeed_Update.report == true) {
|
||||
g_port.postMessage({ "event": "update_report", "ret": "OK", "data": _bNeed_Update.report });
|
||||
}
|
||||
|
||||
@@ -2585,7 +2585,7 @@ HotelTV.ui_appfull = (function() {
|
||||
break;
|
||||
case 'accmodation_bed_type':
|
||||
__info_item.innerHTML = `<span id="header">${_trTbl.ui.mypage.accmodation.title.bed_type[_state.lang]}</span>`;
|
||||
__info_item.innerHTML += `<span id="value">${_guest.roomtype}</span>`;
|
||||
__info_item.innerHTML += `<span id="value">${_guest.roomtype[_state.lang]}</span>`;
|
||||
break;
|
||||
case 'accmodation_room_num':
|
||||
__info_item.innerHTML = `<span id="header">${_trTbl.ui.mypage.accmodation.title.room_num[_state.lang]}</span>`;
|
||||
@@ -2597,7 +2597,7 @@ HotelTV.ui_appfull = (function() {
|
||||
break;
|
||||
case 'accmodation_checkout':
|
||||
__info_item.innerHTML = `<span id="header">${_trTbl.ui.mypage.accmodation.title.checkout[_state.lang]}</span>`;
|
||||
__info_item.innerHTML += `<span id="value">${_guest.checkOu}</span>`;
|
||||
__info_item.innerHTML += `<span id="value">${_guest.checkOut}</span>`;
|
||||
break;
|
||||
}
|
||||
_accomo_info.appendChild(__info_item);
|
||||
@@ -3233,7 +3233,6 @@ HotelTV.ui_appfull = (function() {
|
||||
$('.main .sub').fadeOut(600);
|
||||
//$('#lst_ctzgenbg').trigger('translate.owl.carousel', [0]);
|
||||
$('#lst_ctzgenbg').trigger('translate.owl.carousel', [0, 500, true]);
|
||||
_state.menu.stage.cur = "ctzgen";
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -3298,6 +3297,12 @@ HotelTV.ui_appfull = (function() {
|
||||
|
||||
console.log("CTZ(GEN) IDX::>" + _state.menu.main[_mmIdx][_smIdx].cur);
|
||||
HotelTV.api.ReportEvent([{'power': true, 'location':{'conId':_ctzinfo[_state.menu.main[_mmIdx][_smIdx].cur].id}}])
|
||||
|
||||
if ( _state.menu.stage.cur=="preparing_ctz_general" ){
|
||||
setTimeout(function() {
|
||||
_state.menu.stage.cur = "ctzgen";
|
||||
}, 2000);
|
||||
}
|
||||
});
|
||||
|
||||
$('#lst_ctzgenbg').on('translate.owl.carousel', function(event) {
|
||||
@@ -3358,7 +3363,10 @@ HotelTV.ui_appfull = (function() {
|
||||
// Append Sub elements::title
|
||||
let _sm_item_title = document.createElement('div');
|
||||
_sm_item_title.setAttribute("id", "sm_item_title");
|
||||
_sm_item_title.textContent = _sminfo[_idx].title[_state.lang];
|
||||
|
||||
if (_sminfo[_idx].showTitle && _sminfo[_idx].showTitle == true) {
|
||||
_sm_item_title.textContent = _sminfo[_idx].title[_state.lang];
|
||||
}
|
||||
|
||||
// Append Sub elements::icon
|
||||
let _sm_item_icon = document.createElement('div');
|
||||
@@ -3493,6 +3501,7 @@ HotelTV.ui_appfull = (function() {
|
||||
} else if (_program[_mmIdx].style.toLowerCase() == "content") {
|
||||
console.log("Invalid options");
|
||||
} else if (_program[_mmIdx].style.toLowerCase() == "submenu") {
|
||||
console.log('DDDBUG::> Go to CTZ>');
|
||||
__uifxn_AppFull_BldPage_CtzGeneral();
|
||||
}
|
||||
}
|
||||
@@ -3542,23 +3551,27 @@ HotelTV.ui_appfull = (function() {
|
||||
} else if (event.keyCode == gRmtKey.right) {
|
||||
$('#lst_ctzgenbg').trigger('next.owl', 700);
|
||||
} else if (event.keyCode == gRmtKey.back) {
|
||||
$('.main .sub').show();
|
||||
$('.main').animate({ top: -1080, left: 0 }, 1000, () => {
|
||||
$('.main .ctzgen').hide();
|
||||
_state.media.playing = false;
|
||||
HotelTV.hcap.MediaStop(null, null);
|
||||
_state.menu.stage.cur = "preparing_sub";
|
||||
$('.main .sub').show(0, function(){
|
||||
$('.main').animate({ top: -1080, left: 0 }, 1000, () => {
|
||||
$('.main .ctzgen').hide();
|
||||
_state.media.playing = false;
|
||||
HotelTV.hcap.MediaStop(null, null);
|
||||
|
||||
$('#lst_ctzgenbg').off('refresh.owl.carousel');
|
||||
$('#lst_ctzgenbg').off('change.owl.carousel');
|
||||
$('#lst_ctzgenbg').off('changed.owl.carousel');
|
||||
$('#lst_ctzgenbg').off('translate.owl.carousel');
|
||||
$('#lst_ctzgenbg').owlCarousel('destroy');
|
||||
$('.main .ctzgen .bg #lst_ctzgenbg div').remove();
|
||||
_hndl_ctzGenBg = null;
|
||||
_state.menu.stage.cur = "sub";
|
||||
$('#lst_smsel').trigger('translate.owl.carousel', [0]);
|
||||
$('#lst_ctzgenbg').off('refresh.owl.carousel');
|
||||
$('#lst_ctzgenbg').off('change.owl.carousel');
|
||||
$('#lst_ctzgenbg').off('changed.owl.carousel');
|
||||
$('#lst_ctzgenbg').off('translate.owl.carousel');
|
||||
$('#lst_ctzgenbg').owlCarousel('destroy');
|
||||
$('.main .ctzgen .bg #lst_ctzgenbg div').remove();
|
||||
_hndl_ctzGenBg = null;
|
||||
$('#lst_smsel').trigger('translate.owl.carousel', [0]);
|
||||
_state.menu.stage.cur = "sub";
|
||||
console.log('DDDBUG::> Return to SUB>');
|
||||
});
|
||||
});
|
||||
} else if (event.keyCode == gRmtKey.start) {
|
||||
|
||||
} else if (event.keyCode == gRmtKey.play) {
|
||||
if ($('.main .ctzgen .bg .owl-carousel .owl-item.active .ctz_mv_ctrl').length == 1) {
|
||||
let uri_video = $($('.main .ctzgen .bg .owl-carousel .owl-item.active .ctz_mv_ctrl')[0]).attr('video_url');
|
||||
if (uri_video != null) {
|
||||
@@ -4187,6 +4200,16 @@ HotelTV.ui_appfull = (function() {
|
||||
|
||||
//Shows Up Flight Contents
|
||||
if (_program[(_evt.page.index + 1)].type == "flight") {
|
||||
$('.main .mm .flight').each(function (index, docObjFlight) {
|
||||
//console.log(index);
|
||||
if ( $(docObjFlight).css("display")!="none" ){
|
||||
if ( $(docObjFlight).find('#record').length>0 ){
|
||||
$(docObjFlight).find('#record').scrollTop(0);
|
||||
}
|
||||
$(docObjFlight).fadeOut(300);
|
||||
}
|
||||
});
|
||||
|
||||
if ($(`.main .mm #flight_${_program[(_evt.page.index + 1)].location}`).css("display") == "none") {
|
||||
$(`.main .mm #flight_${_program[(_evt.page.index + 1)].location}`).fadeIn(1000, () => {
|
||||
$(document.activeElement).keydown(function(_evt) {
|
||||
@@ -4234,10 +4257,10 @@ HotelTV.ui_appfull = (function() {
|
||||
*/
|
||||
function __uifxn_AppFull_TopWidjet_BuildWeather() {
|
||||
const _state = HotelTV.state;
|
||||
let _weather = HotelTV.weather[_state.weather.default_location];
|
||||
let _widget_weather = HotelTV.widget.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");
|
||||
$('.widjet .top .weather #icon').css({ "background-image": "url(" + _widget_weather.smallicon_image[_widget_weather.item.condition.code] + ")" });
|
||||
$('.widjet .top .weather #temp').text(_widget_weather.item.condition.temp + "°C");
|
||||
$('.widjet .top .weather').show();
|
||||
}
|
||||
|
||||
@@ -4599,10 +4622,10 @@ HotelTV.ui_appfull = (function() {
|
||||
// Append Sub elements::title
|
||||
let _mm_item_title = document.createElement('div');
|
||||
_mm_item_title.setAttribute("id", "mm_item_title");
|
||||
if (_program[_mm_idx].title_show && _program[_mm_idx].title_show == true) {
|
||||
if (_program[_mm_idx].showTitle && _program[_mm_idx].showTitle == true) {
|
||||
_mm_item_title.textContent = _program[_mm_idx].title[_state.lang];
|
||||
} else {
|
||||
_mm_item_title.textContent = _program[_mm_idx].title[_state.lang];
|
||||
_mm_item_title.textContent = "";
|
||||
}
|
||||
|
||||
// Append Sub elements::icon
|
||||
@@ -4692,10 +4715,12 @@ HotelTV.ui_appfull = (function() {
|
||||
|
||||
//Weather Contents Buildup
|
||||
if ( Object.keys(_state.weather.default_location).length != 0 ){
|
||||
//상단 날씨 아이콘 및 온도 표시
|
||||
__uifxn_AppFull_TopWidjet_BuildWeather();
|
||||
__uifxn_AppFull_MM_BldWeather();
|
||||
}
|
||||
|
||||
//Buildup Widget: Weather
|
||||
__uifxn_AppFull_TopWidjet_BuildWeather();
|
||||
|
||||
//Build Flight
|
||||
__uifxn_AppFull_MM_BldFlight();
|
||||
|
||||
@@ -5171,6 +5196,8 @@ HotelTV.ui_appfull = (function() {
|
||||
_state.schedule.flight_reflash = true;
|
||||
}else if ( _evt == "update_weather" ){
|
||||
_state.schedule.weather_reflash = true;
|
||||
}else if ( _evt == "update_widget" ){
|
||||
_state.schedule.widget_reflash = true;
|
||||
}
|
||||
|
||||
// Update flight schedule table if user doesn't watch flight schedule screen
|
||||
@@ -5193,12 +5220,23 @@ HotelTV.ui_appfull = (function() {
|
||||
|
||||
//Weather Contents Buildup
|
||||
if ( Object.keys(_state.weather.default_location).length != 0 ){
|
||||
//상단 날씨 아이콘 및 온도 표시
|
||||
__uifxn_AppFull_TopWidjet_BuildWeather();
|
||||
//날씨 콘텐트 업데이트
|
||||
__uifxn_AppFull_MM_BldWeather();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Update weather schedule table if user doesn't watch weather screen
|
||||
if ( _state.schedule.widget_reflash == true) {
|
||||
_state.schedule.widget_reflash = false;
|
||||
console.log("Updated Widget UI");
|
||||
|
||||
//Widget:Weather Contents Buildup
|
||||
if ( Object.keys(_state.weather.default_location).length != 0 ){
|
||||
//상단 날씨 아이콘 및 온도 표시
|
||||
__uifxn_AppFull_TopWidjet_BuildWeather();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
MqttEvent: function(_evt) {
|
||||
|
||||
Reference in New Issue
Block a user