diff --git a/procentric/application/app_hoteltv_full.html b/procentric/application/app_hoteltv_full.html
index 4650e09..004c209 100755
--- a/procentric/application/app_hoteltv_full.html
+++ b/procentric/application/app_hoteltv_full.html
@@ -266,8 +266,8 @@
diff --git a/procentric/application/lib/hoteltv.ui_appfull.js b/procentric/application/lib/hoteltv.ui_appfull.js
index ac16bcd..64d4af1 100755
--- a/procentric/application/lib/hoteltv.ui_appfull.js
+++ b/procentric/application/lib/hoteltv.ui_appfull.js
@@ -530,8 +530,8 @@ HotelTV.ui_appfull = (function() {
__uifxn_AppFull_DrawAmenityItem();
_elAmBtnRoot.children('.order').text(_trTbl.ui.amenity.title.order[_state.lang]);
- _elAmBtnRoot.children('.cancel').text(_trTbl.ui.amenity.title.cancel[_state.lang]);
_elAmBtnRoot.children('.details').text(_trTbl.ui.amenity.title.carts[_state.lang]);
+ _elAmBtnRoot.children('.cancel').text(_trTbl.ui.amenity.title.cancel[_state.lang]);
// HOTKEY정보를 state에 기록
if (!(_amenity.button in _state.hotkey.mm)) {
@@ -1002,8 +1002,8 @@ HotelTV.ui_appfull = (function() {
__uifxn_AppFull_DrawRoomserviceItem();
_elRsMnBtn.children('.order').text(_trTbl.ui.roomservice.title.order[_state.lang]);
- _elRsMnBtn.children('.cancel').text(_trTbl.ui.roomservice.title.cancel[_state.lang]);
_elRsMnBtn.children('.details').text(_trTbl.ui.roomservice.title.carts[_state.lang]);
+ _elRsMnBtn.children('.cancel').text(_trTbl.ui.roomservice.title.cancel[_state.lang]);
// HOTKEY정보를 state에 기록
if (!(_roomservice.button in _state.hotkey.mm)) {
@@ -1011,8 +1011,10 @@ HotelTV.ui_appfull = (function() {
'type': "roomservice",
"status": {
"focus": "table",
+ "last_CartTbl_ScrOfset": 0,
"last_CartTbl_idx": 0,
"last_CartBtn_idx": null,
+ "last_OrderTbl_ScrOfset": 0,
"last_OrderTbl_idx": 0,
}
};
@@ -1081,6 +1083,7 @@ HotelTV.ui_appfull = (function() {
_state.hotkey.mm[_roomservice.button].status.last_CartTbl_idx = activeTableRow.prop('rowIndex');
_scrollTopVal = activeTableRow.prop('scrollHeight') * _state.hotkey.mm[_roomservice.button].status.last_CartTbl_idx;
+ _state.hotkey.mm[_roomservice.button].status.last_CartTbl_ScrOfset = _scrollTopVal;
_elRsMnItems.animate({ scrollTop: _scrollTopVal }, 200);
//Activated된 테이블 레코드의 ID속성값 읽어오기
@@ -1100,15 +1103,15 @@ HotelTV.ui_appfull = (function() {
}
} else if (_state.hotkey.mm[_roomservice.button].status.focus == "button") {
_elRsMnBtn.children('div').removeClass("active");
- if (_state.hotkey.mm[_roomservice.button].status.last_CartBtn_idx == "details") {
- _state.hotkey.mm[_roomservice.button].status.last_CartBtn_idx = "cancel";
- _elRsMnBtn.children('div.cancel').addClass("active");
+ if (_state.hotkey.mm[_roomservice.button].status.last_CartBtn_idx == "cancel") {
+ _state.hotkey.mm[_roomservice.button].status.last_CartBtn_idx = "details";
+ _elRsMnBtn.children('div.details').addClass("active");
if (_elRsMnRoot.css('box-shadow') != 'none') {
_elRsMnRoot.css('box-shadow', 'none');
_elRsRoot.animate({ backgroundColor: 'rgba(46,46,46,0.0)' }, 200, function() { _elRsMnDesc.hide() });
}
- } else if (_state.hotkey.mm[_roomservice.button].status.last_CartBtn_idx == "cancel") {
+ } else if (_state.hotkey.mm[_roomservice.button].status.last_CartBtn_idx == "details") {
if (_checkEmptyOrder(_carts.items) == false) {
_state.hotkey.mm[_roomservice.button].status.last_CartBtn_idx = "order";
_elRsMnBtn.children('div.order').addClass("active");
@@ -1160,6 +1163,7 @@ HotelTV.ui_appfull = (function() {
activeTableRow.addClass('active');
_state.hotkey.mm[_roomservice.button].status.last_OrderTbl_idx = activeTableRow.prop('rowIndex');
_scrollTopVal = activeTableRow.prop('scrollHeight') * _state.hotkey.mm[_roomservice.button].status.last_OrderTbl_idx;
+ _state.hotkey.mm[_roomservice.button].status.last_OrderTbl_ScrOfset = _scrollTopVal;
_elRsODRoot.children('.items').animate({ scrollTop: _scrollTopVal }, 200);
}
@@ -1177,6 +1181,7 @@ HotelTV.ui_appfull = (function() {
activeTableRow.addClass('active');
_state.hotkey.mm[_roomservice.button].status.last_CartTbl_idx = activeTableRow.prop('rowIndex');
_scrollTopVal = activeTableRow.prop('scrollHeight') * _state.hotkey.mm[_roomservice.button].status.last_CartTbl_idx;
+ _state.hotkey.mm[_roomservice.button].status.last_CartTbl_ScrOfset = _scrollTopVal;
_elRsMnItems.animate({ scrollTop: _scrollTopVal }, 200);
//Activated된 테이블 레코드의 ID속성값 읽어오기
@@ -1199,8 +1204,8 @@ HotelTV.ui_appfull = (function() {
_state.hotkey.mm[_roomservice.button].status.last_CartBtn_idx = "order";
_elRsMnBtn.children('div.order').addClass("active");
} else {
- _state.hotkey.mm[_roomservice.button].status.last_CartBtn_idx = "cancel";
- _elRsMnBtn.children('div.cancel').addClass("active");
+ _state.hotkey.mm[_roomservice.button].status.last_CartBtn_idx = "details";
+ _elRsMnBtn.children('div.details').addClass("active");
}
}
@@ -1211,13 +1216,13 @@ HotelTV.ui_appfull = (function() {
}
} else if (_state.hotkey.mm[_roomservice.button].status.focus == "button") {
if (_state.hotkey.mm[_roomservice.button].status.last_CartBtn_idx == "order") {
- _elRsMnBtn.children('div').removeClass("active");
- _state.hotkey.mm[_roomservice.button].status.last_CartBtn_idx = "cancel";
- _elRsMnBtn.children('div.cancel').addClass("active");
- } else if (_state.hotkey.mm[_roomservice.button].status.last_CartBtn_idx == "cancel") {
_elRsMnBtn.children('div').removeClass("active");
_state.hotkey.mm[_roomservice.button].status.last_CartBtn_idx = "details";
_elRsMnBtn.children('div.details').addClass("active");
+ } else if (_state.hotkey.mm[_roomservice.button].status.last_CartBtn_idx == "details") {
+ _elRsMnBtn.children('div').removeClass("active");
+ _state.hotkey.mm[_roomservice.button].status.last_CartBtn_idx = "cancel";
+ _elRsMnBtn.children('div.cancel').addClass("active");
}
if (_elRsMnRoot.css('box-shadow') != 'none') {
@@ -1231,6 +1236,7 @@ HotelTV.ui_appfull = (function() {
activeTableRow.addClass('active');
_state.hotkey.mm[_roomservice.button].status.last_OrderTbl_idx = activeTableRow.prop('rowIndex');
_scrollTopVal = activeTableRow.prop('scrollHeight') * _state.hotkey.mm[_roomservice.button].status.last_OrderTbl_idx;
+ _state.hotkey.mm[_roomservice.button].status.last_OrderTbl_ScrOfset = _scrollTopVal;
_elRsODRoot.children('.items').animate({ scrollTop: _scrollTopVal }, 200);
}
@@ -1242,11 +1248,65 @@ HotelTV.ui_appfull = (function() {
console.log(`STATUS::> ${JSON.stringify(_state.hotkey.mm[_roomservice.button].status)}`);
} else if (_evt == "enter") {
_state.hotkey.mm[_roomservice.button].status.focus = "order_details";
+ } else if (_evt == "back") {
+ _state.hotkey.mm[_roomservice.button].status.focus = "button";
+ _elRsMnBtn.children('div').removeClass("active");
+ _state.hotkey.mm[_roomservice.button].status.last_CartBtn_idx = "details";
+ _elRsMnBtn.children('div.details').addClass("active");
+ _elRsODRoot.children('.items').children('table').children('tr').removeClass("active");
+ _elRsODRoot.children('.items').children('table').children('tr').first().addClass('active');
+
+ //_scrollTopVal = activeTableRow.prop('scrollHeight') * _state.hotkey.mm[_roomservice.button].status.last_OrderTbl_idx;
+ _elRsODRoot.children('.items').animate({ scrollTop: 0 }, 200);
+
+ // Flush CART
+ if (_isFlushCart == true && HotelTV.carts.roomservice.items) {
+ let _cartsItems = HotelTV.carts.roomservice.items;
+ for (_k = 1; _k <= _cartsItems.length; _k++) {
+ if (_cartsItems[_k].id) {
+ try {
+ let _result = await HotelTV.api.DeleteRoomserviceCarts(_cartsItems[_k].id);
+ if (_result) {
+ console.log(`Success to flush CARTID::> ${_cartsItems[_k].id}`);
+ } else {
+ console.log(`Fail to flush CARTID::> ${_cartsItems[_k].id}`);
+ }
+ } catch (_error) {
+ console.log(`Fail to call API::> ${_error}`);
+ }
+ }
+ }
+ __uifxn_AppFull_DrawRoomserviceItem();
+
+ _elRsMnBtn.children('div').removeClass("active");
+
+ _state.hotkey.mm[_roomservice.button].status.last_CartBtn_idx = null;
+ _state.hotkey.mm[_roomservice.button].status.focus = "table";
+ _elRsMnItems.children('table').children('tr').eq(_state.hotkey.mm[_roomservice.button].status.last_CartTbl_idx).addClass('active');
+
+ //Activated된 테이블 레코드의 ID속성값 읽어오기
+ let _ActiveItemID = _elRsMnItems.children('table').children('tr.active').prop('id');
+ //Description
+ _elRsMnDesc.children('.rstitle').text(__fxn_fmvalue(_roomservice.children, "title", _ActiveItemID)[_state.lang]);
+ _elRsMnDesc.children('.rscomment').text(__fxn_fmvalue(_roomservice.children, "description", _ActiveItemID)[_state.lang]);
+ _elRsMnDesc.children('.image').css('background-image', 'url(' + __fxn_fmvalue(_roomservice.children, "thumbnails", _ActiveItemID).files[_state.lang][1].download + ')');
+
+ if (_elRsMnRoot.css('box-shadow') == 'none') {
+ _elRsMnRoot.css('box-shadow', '0px 0px 30px rgba(0, 0, 0, 1)');
+ _elRsRoot.animate({ backgroundColor: 'rgba(46,46,46,1.0)' }, 200, function() { _elRsMnDesc.show() });
+ }
+
+ // _elRsMnItems.animate({ scrollTop: 0 }, 200);
+ // _state.hotkey.mm[_roomservice.button].status.focus = "table";
+ // _elRsMnBtn.children('div').removeClass("active");
+ }
} else if (_evt == "reset") {
_state.hotkey.mm[_roomservice.button].status = {
"focus": "table",
+ "last_CartTbl_ScrOfset": 0,
"last_CartTbl_idx": 0,
"last_CartBtn_idx": null,
+ "last_OrderTbl_ScrOfset": 0,
"last_OrderTbl_idx": 0,
};
_elRsMnBtn.children('div').removeClass("active");
@@ -3990,17 +4050,8 @@ HotelTV.ui_appfull = (function() {
console.log("ENTER");
if (_state.hotkey.mm[_opening.roomService.button].status.last_CartBtn_idx == "cancel") {
let _elRsMnRoot = $(`.popup .roomservice`);
- _elRsMnRoot.children('.menu').animate({ scrollTop: 0 }, 0);
- _elRsMnRoot.animate({ top: 96, left: -560 }, 500, () => {
- _elRsMnRoot.children('.menu').children('.items').animate({ scrollTop: 0 }, 0, () => {
- _state.menu.stage = "main";
- _elRsMnRoot.hide(0, 'linear', () => {
- // HOTKEY STATUS 리셋
- __uifxn_AppFull_HandleRoomservice("reset", true, false);
- __uifxn_AppFull_ShowMMHotKeyBtn(true);
- });
- });
- });
+ // Move to top of item list
+ __uifxn_AppFull_HandleRoomservice("back", true, false);
} else if (_state.hotkey.mm[_opening.roomService.button].status.last_CartBtn_idx == "order") {
let _elRsMnRoot = $(`.popup .roomservice`);
_elRsMnRoot.children('.menu').animate({ scrollTop: 0 }, 0);
@@ -4050,17 +4101,11 @@ HotelTV.ui_appfull = (function() {
console.log("DOWN");
__uifxn_AppFull_HandleRoomservice("down", false, false);
} else if (_evt.keyCode == 461) {
- $('.popup .roomservice').animate({ top: 96, left: -560 }, 500, () => {
- $('.popup .roomservice .menu').animate({ scrollTop: 0 }, 0, () => {
- // Move to top of item list
- $('.popup .roomservice .menu>.items').animate({ scrollTop: 0 }, 0, () => {
- _state.menu.stage = "main";
- $('.popup .roomservice').hide(0, 'linear', () => {
- // HOTKEY STATUS 리셋
- __uifxn_AppFull_HandleRoomservice("reset", true, false);
- __uifxn_AppFull_ShowMMHotKeyBtn(true);
- });
- });
+ $('.popup .roomservice .menu').animate({ scrollTop: 0 }, 500, () => {
+ // Move to top of item list
+ $('.popup .roomservice .menu>.items').animate({ scrollTop: _state.hotkey.mm[_opening.roomService.button].status.last_CartTbl_ScrOfset }, 500, () => {
+ _state.menu.stage = "hotkey_mm_roomservice";
+ __uifxn_AppFull_HandleRoomservice("back", false, false);
});
});
}