diff --git a/src/z2ui5_cl_http_handler.clas.abap b/src/z2ui5_cl_http_handler.clas.abap index c80aeeae..75c4be28 100644 --- a/src/z2ui5_cl_http_handler.clas.abap +++ b/src/z2ui5_cl_http_handler.clas.abap @@ -110,7 +110,7 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION. ` }` && |\n| && ` },` && |\n| && |\n| && - ` onEvent: function (oEvent, isHoldView, vData , vData2 , vData3 ) {` && |\n| && + ` onEvent: function (oEvent) {` && |\n| && |\n| && ` if (!window.navigator.onLine) {` && |\n| && ` sap.m.MessageBox.alert('No internet connection! Please reconnect to the server and try again.');` && |\n| && @@ -144,10 +144,7 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION. ` });` && |\n| && ` }` && |\n| && ` this.oBody.ID = sap.z2ui5.oResponse.ID;` && |\n| && - ` this.oBody.oEvent = oEvent;` && |\n| && - ` this.oBody.oEvent.vData = vData;` && |\n| && - ` this.oBody.oEvent.vData2 = vData2;` && |\n| && - ` this.oBody.oEvent.vData3 = vData3;` && |\n| && + ` this.oBody.ARGUMENTS = arguments;` && |\n| && |\n| && ` if (sap.z2ui5.checkLogActive) {` && |\n| && ` console.log('Request Object:');` && |\n| && @@ -156,7 +153,7 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION. ` sap.z2ui5.oResponseOld = sap.z2ui5.oResponse;` && |\n| && ` sap.z2ui5.oResponse = {};` && |\n| && ` sap.z2ui5.oBody = this.oBody;` && |\n| && - ` sap.z2ui5.Roundtrip(isHoldView);` && |\n| && + ` sap.z2ui5.Roundtrip(oEvent.isHoldView);` && |\n| && ` },` && |\n| && ` Roundtrip: function (isHoldView) {` && |\n| && ` sap.z2ui5.checkTimerActive = false;` && |\n| && @@ -164,8 +161,6 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION. ` sap.z2ui5.oView.destroy();` && |\n| && ` } }` && |\n| && ` var xhr = new XMLHttpRequest();` && |\n| && - ` // var url = "/sap/bc/http/sap/y2ui5_http_handler/";` && |\n| && - ` // xhr.open("POST", url, true);` && |\n| && ` xhr.open("POST", sap.z2ui5.pathname , true);` && |\n| && ` xhr.onload = function (that) {` && |\n| && |\n| && @@ -226,7 +221,6 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION. ` var oView = sap.ui.xmlview({ viewContent: xml });` && |\n| && ` sap.z2ui5.Roundtrip = oView.getController().Roundtrip;` && |\n| && ` sap.z2ui5.oController = oView.getController();` && |\n| && - ` // sap.z2ui5.pathname = window.location.pathname;` && |\n| && ` sap.z2ui5.Roundtrip(false);` && |\n| && ` sap.z2ui5.onAfter = () => {` && |\n| && ` if (sap.z2ui5.oResponse.PARAMS.TITLE != "") {` && |\n| && @@ -332,4 +326,4 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION. ENDDO. ENDMETHOD. -ENDCLASS. +ENDCLASS. \ No newline at end of file diff --git a/src/z2ui5_cl_http_handler.clas.locals_imp.abap b/src/z2ui5_cl_http_handler.clas.locals_imp.abap index aa39973e..7d7998ba 100644 --- a/src/z2ui5_cl_http_handler.clas.locals_imp.abap +++ b/src/z2ui5_cl_http_handler.clas.locals_imp.abap @@ -1168,36 +1168,30 @@ CLASS z2ui5_lcl_fw_db IMPLEMENTATION. METHOD read. IF check_load_app = abap_true. - SELECT SINGLE * FROM z2ui5_t_draft WHERE uuid = @id INTO @result. - z2ui5_lcl_utility=>raise( when = xsdbool( sy-subrc <> 0 ) ). - ELSE. - SELECT SINGLE uuid, uuid_prev, uuid_prev_app, uuid_prev_app_stack FROM z2ui5_t_draft WHERE uuid = @id INTO CORRESPONDING FIELDS OF @result. - z2ui5_lcl_utility=>raise( when = xsdbool( sy-subrc <> 0 ) ). - ENDIF. + z2ui5_lcl_utility=>raise( when = xsdbool( sy-subrc <> 0 ) ). ENDMETHOD. METHOD cleanup. - DATA lv_timestampl TYPE timestampl. + DATA lv_ts_now TYPE timestampl. + GET TIME STAMP FIELD lv_ts_now. - DATA(lv_time) = sy-uzeit. - lv_time = lv_time - ( 60 * 60 * 4 ). + DATA(lv_ts_four_hours_ago) = cl_abap_tstmp=>subtractsecs( + tstmp = lv_ts_now + secs = 60 * 60 * 4 ). - CONVERT DATE sy-datum TIME lv_time - INTO TIME STAMP lv_timestampl TIME ZONE sy-zonlo. - - DELETE FROM z2ui5_t_draft WHERE timestampl < @lv_timestampl. + DELETE FROM z2ui5_t_draft WHERE timestampl < @lv_ts_four_hours_ago. COMMIT WORK. ENDMETHOD. @@ -1318,13 +1312,6 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION. json = `"` && && `"` CHANGING data = ). - " WHEN 'C'. - " CASE lr_attri->type. - " WHEN `ABAP_BOOL` OR `ABAP_BOOLEAN` OR `XSDBOOLEAN`. - " = xsdbool( = `true` ). - " WHEN OTHERS. - " = . - "° ENDCASE. WHEN OTHERS. = . ENDCASE. @@ -1334,11 +1321,18 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION. CATCH cx_root. ENDTRY. + + DATA(lo_arg) = mo_body->get_attribute( `ARGUMENTS` ). TRY. - result->ms_actual-event = mo_body->get_attribute( `OEVENT` )->get_attribute( `EVENT` )->get_val( ). - result->ms_actual-event_data = mo_body->get_attribute( `OEVENT` )->get_attribute( `vData` )->get_val( ). - result->ms_actual-event_data2 = mo_body->get_attribute( `OEVENT` )->get_attribute( `vData2` )->get_val( ). - result->ms_actual-event_data3 = mo_body->get_attribute( `OEVENT` )->get_attribute( `vData3` )->get_val( ). + result->ms_actual-event = lo_arg->get_attribute( `0` )->get_attribute( `EVENT` )->get_val( ). + CATCH cx_root. + ENDTRY. + + TRY. + DO. + DATA(lv_val) = lo_arg->get_attribute( CONV string( sy-index ) )->get_val( ). + INSERT lv_val INTO TABLE result->ms_actual-t_event_arg. + ENDDO. CATCH cx_root. ENDTRY. @@ -1408,7 +1402,6 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION. result->ms_db-id_prev_app = ms_db-id. result->ms_db-id_prev = ms_db-id. - " result->ms_next-s_set-path = `test`. "ms_next-s_set-path. CLEAR ms_next. ENDMETHOD. @@ -1449,7 +1442,8 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION. RETURN. ENDIF. - DATA(lr_in) = REF #( value ). + DATA lr_in TYPE REF TO data. + GET REFERENCE OF value INTO lr_in. LOOP AT ms_db-t_attri REFERENCE INTO DATA(lr_attri) WHERE bind_type <> cs_bind_type-one_time. @@ -1652,9 +1646,7 @@ CLASS z2ui5_lcl_fw_client IMPLEMENTATION. result = VALUE #( BASE CORRESPONDING #( mo_handler->ms_db ) event = mo_handler->ms_actual-event - event_data = mo_handler->ms_actual-event_data - event_data2 = mo_handler->ms_actual-event_data2 - event_data3 = mo_handler->ms_actual-event_data3 + t_event_arg = mo_handler->ms_actual-t_event_arg t_scroll_pos = mo_handler->ms_actual-t_scroll_pos t_req_header = z2ui5_cl_http_handler=>client-t_header t_req_param = z2ui5_cl_http_handler=>client-t_param @@ -1698,26 +1690,13 @@ CLASS z2ui5_lcl_fw_client IMPLEMENTATION. METHOD z2ui5_if_client~_event. - IF data IS INITIAL. - DATA(lv_data) = `''`. - ELSE. - lv_data = data. - ENDIF. + result = `onEvent( { 'EVENT' : '` && val && `', 'METHOD' : 'UPDATE' , 'isHoldView' : ` && z2ui5_lcl_utility=>get_json_boolean( hold_view ) && ` }`. - IF data2 IS INITIAL. - DATA(lv_data2) = `''`. - ELSE. - lv_data2 = data2. - ENDIF. + LOOP AT t_arg REFERENCE INTO DATA(lr_arg). + result = result && `,` && lr_arg->*. + ENDLOOP. - IF data3 IS INITIAL. - DATA(lv_data3) = `''`. - ELSE. - lv_data3 = data3. - ENDIF. - - result = `onEvent( { 'EVENT' : '` && val && `', 'METHOD' : 'UPDATE' } , ` && z2ui5_lcl_utility=>get_json_boolean( hold_view ) - && ` , ` && lv_data && ` , ` && lv_data2 && ` , ` && lv_data3 && ` )`. + result = result && `)`. ENDMETHOD. @@ -1740,4 +1719,4 @@ CLASS z2ui5_lcl_fw_client IMPLEMENTATION. ENDMETHOD. -ENDCLASS. +ENDCLASS. \ No newline at end of file diff --git a/src/z2ui5_cl_http_handler.clas.testclasses.abap b/src/z2ui5_cl_http_handler.clas.testclasses.abap index 11da8471..2ded1841 100644 --- a/src/z2ui5_cl_http_handler.clas.testclasses.abap +++ b/src/z2ui5_cl_http_handler.clas.testclasses.abap @@ -895,7 +895,7 @@ CLASS ltcl_unit_03_app_ajax IMPLEMENTATION. ENDIF. DATA(lv_id) = CONV string( ). - DATA(lv_request) = `{"oUpdate":{"QUANTITY":"600"},"ID": "` && lv_id && `" ,"oEvent":{"EVENT":"BUTTON_POST","METHOD":"UPDATE"}}`. + DATA(lv_request) = `{"oUpdate":{"QUANTITY":"600"},"ID": "` && lv_id && `" ,"ARGUMENTS":{"EVENT":"BUTTON_POST","METHOD":"UPDATE"}}`. z2ui5_cl_http_handler=>client = VALUE #( body = lv_request ). lv_response = z2ui5_cl_http_handler=>http_post( ). @@ -940,7 +940,7 @@ CLASS ltcl_unit_03_app_ajax IMPLEMENTATION. ENDIF. DATA(lv_id) = CONV string( ). - DATA(lv_request) = `{"oUpdate":{"QUANTITY":"700"},"ID": "` && lv_id && `" ,"oEvent":{"EVENT":"BUTTON_POST","METHOD":"UPDATE"}}`. + DATA(lv_request) = `{"oUpdate":{"QUANTITY":"700"},"ID": "` && lv_id && `" ,"ARGUMENTS": { "0" : {"EVENT":"BUTTON_POST","METHOD":"UPDATE"} } }`. z2ui5_cl_http_handler=>client = VALUE #( body = lv_request ). lv_response = z2ui5_cl_http_handler=>http_post( ). @@ -1167,4 +1167,4 @@ CLASS ltcl_unit_04_deep_data IMPLEMENTATION. ENDMETHOD. -ENDCLASS. +ENDCLASS. \ No newline at end of file diff --git a/src/z2ui5_cl_xml_view.clas.abap b/src/z2ui5_cl_xml_view.clas.abap index 4913d47a..84da53d6 100644 --- a/src/z2ui5_cl_xml_view.clas.abap +++ b/src/z2ui5_cl_xml_view.clas.abap @@ -312,6 +312,7 @@ CLASS z2ui5_cl_xml_view DEFINITION submit TYPE clike OPTIONAL valueHelpRequest TYPE clike OPTIONAL enabled TYPE clike OPTIONAL + class TYPE clike OPTIONAL RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -1020,7 +1021,7 @@ ENDCLASS. -CLASS z2ui5_cl_xml_view IMPLEMENTATION. +CLASS Z2UI5_CL_XML_VIEW IMPLEMENTATION. METHOD actions. @@ -2121,6 +2122,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION. ( n = `value` v = value ) ( n = `id` v = id ) ( n = `valueHelpRequest` v = valueHelpRequest ) + ( n = `class` v = class ) ) ). ENDMETHOD. @@ -2743,6 +2745,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION. ENDMETHOD. + METHOD panel. result = _generic( @@ -2755,6 +2758,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION. ENDMETHOD. + METHOD vbox. result = _generic( @@ -2837,4 +2841,4 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION. result = result2. ENDMETHOD. -ENDCLASS. +ENDCLASS. \ No newline at end of file diff --git a/src/z2ui5_cl_xml_view.clas.locals_imp.abap b/src/z2ui5_cl_xml_view.clas.locals_imp.abap index 68e3b410..fca8efa2 100644 --- a/src/z2ui5_cl_xml_view.clas.locals_imp.abap +++ b/src/z2ui5_cl_xml_view.clas.locals_imp.abap @@ -77,4 +77,4 @@ CLASS lcl_utility IMPLEMENTATION. ENDMETHOD. -ENDCLASS. +ENDCLASS. \ No newline at end of file diff --git a/src/z2ui5_if_client.intf.abap b/src/z2ui5_if_client.intf.abap index da26e85c..e93c5e1f 100644 --- a/src/z2ui5_if_client.intf.abap +++ b/src/z2ui5_if_client.intf.abap @@ -11,9 +11,7 @@ INTERFACE z2ui5_if_client TYPES: BEGIN OF ty_s_get, event TYPE string, - event_data TYPE string, - event_data2 TYPE string, - event_data3 TYPE string, + t_event_arg TYPE string_table, id TYPE string, id_prev TYPE string, id_prev_app TYPE string, @@ -93,11 +91,9 @@ INTERFACE z2ui5_if_client METHODS _event IMPORTING - val TYPE clike - data TYPE clike OPTIONAL - data2 TYPE clike OPTIONAL - data3 TYPE clike OPTIONAL - hold_view TYPE abap_bool DEFAULT abap_false + val TYPE clike + hold_view TYPE abap_bool DEFAULT abap_false + t_arg TYPE string_table OPTIONAL RETURNING VALUE(result) TYPE string. @@ -105,4 +101,4 @@ INTERFACE z2ui5_if_client RETURNING VALUE(result) TYPE string. -ENDINTERFACE. +ENDINTERFACE. \ No newline at end of file