mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 02:58:20 +08:00
update url params and http call (#356)
* Update README.md * Update README.md * Update README.md * Update README.md * url params update * update * update * update * update url params * update params * update url parameter * new param logic * upadte * downport readiness
This commit is contained in:
parent
d63badf035
commit
3ad1ef4a0e
18
README.md
18
README.md
|
@ -51,14 +51,9 @@ Install with [abapGit](https://abapgit.org) .
|
|
||||||
|
|
||||||
DATA(lv_resp) = SWITCH #( server->request->get_method( )
|
DATA(lv_resp) = SWITCH #( server->request->get_method( )
|
||||||
WHEN 'GET' THEN z2ui5_cl_http_handler=>http_get( )
|
WHEN 'GET' THEN z2ui5_cl_http_handler=>http_get( )
|
||||||
WHEN 'POST' THEN z2ui5_cl_http_handler=>http_post(
|
WHEN 'POST' THEN z2ui5_cl_http_handler=>http_post( server->request->get_cdata( ) ).
|
||||||
body = server->request->get_cdata( )
|
|
||||||
path_info = lt_header[ name = `~path_info` ]-value ) ).
|
|
||||||
|
|
||||||
server->response->set_header_field( name = `cache-control` value = `no-cache` ).
|
server->response->set_header_field( name = `cache-control` value = `no-cache` ).
|
||||||
server->response->set_cdata( lv_resp ).
|
server->response->set_cdata( lv_resp ).
|
||||||
|
@ -70,21 +65,16 @@ ENDMETHOD.
|
||||||
```abap
|
```abap
|
||||||
METHOD if_http_service_extension~handle_request.
|
METHOD if_http_service_extension~handle_request.
|
||||||
|
|
||||||
DATA(lt_header) = request->get_header_fields( ).
|
|
||||||
|
|
||||||
DATA(lv_resp) = SWITCH #( request->get_method( )
|
DATA(lv_resp) = SWITCH #( request->get_method( )
|
||||||
WHEN 'GET' THEN z2ui5_cl_http_handler=>http_get( )
|
WHEN 'GET' THEN z2ui5_cl_http_handler=>http_get( )
|
||||||
WHEN 'POST' THEN z2ui5_cl_http_handler=>http_post(
|
WHEN 'POST' THEN z2ui5_cl_http_handler=>http_post( request->get_text( ) ).
|
||||||
body = request->get_text( )
|
|
||||||
path_info = lt_header[ name = `~path_info` ]-value ) ).
|
|
||||||
|
|
||||||
response->set_header_field( i_name = `cache-control` i_value = `no-cache` ).
|
response->set_status( 200 )->set_text( lv_resp
|
||||||
response->set_status( 200 )->set_text( lv_resp ).
|
)->set_header_field( i_name = `cache-control` i_value = `no-cache` ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
```
|
```
|
||||||
#### FAQ
|
#### FAQ
|
||||||
* check out this [documentation](https://blogs.sap.com/2023/04/14/abap2ui5-6-7-installation-configuration-debugging/) for detailed installation guidelines<br>
|
* check out this [documentation](https://blogs.sap.com/2023/04/14/abap2ui5-6-7-installation-configuration-debugging/) for detailed installation guidelines<br>
|
||||||
* read these [instructions](https://blogs.sap.com/2023/02/22/abap2ui5-development-of-ui5-apps-in-pure-abap-1-3/) when you develop your first app<br>
|
|
||||||
* want to configure the theme, bootstrapping, language and title? see [configuration & debugging](https://blogs.sap.com/2023/04/14/abap2ui5-6-7-installation-configuration-debugging/)
|
* want to configure the theme, bootstrapping, language and title? see [configuration & debugging](https://blogs.sap.com/2023/04/14/abap2ui5-6-7-installation-configuration-debugging/)
|
||||||
* as always - your comments, questions, wishes and bugs are welcome, please create an [issue](https://github.com/abap2UI5/abap2UI5/issues)
|
* as always - your comments, questions, wishes and bugs are welcome, please create an [issue](https://github.com/abap2UI5/abap2UI5/issues)
|
||||||
|
|
|
@ -16,7 +16,6 @@ CLASS z2ui5_cl_http_handler DEFINITION
|
||||||
CLASS-METHODS http_post
|
CLASS-METHODS http_post
|
||||||
IMPORTING
|
IMPORTING
|
||||||
body TYPE string
|
body TYPE string
|
||||||
path_info TYPE string OPTIONAL
|
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(result) TYPE string.
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
@ -27,7 +26,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
|
CLASS z2ui5_cl_http_handler IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD http_get.
|
METHOD http_get.
|
||||||
|
@ -52,6 +51,7 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
z2ui5_lcl_fw_db=>cleanup( ).
|
z2ui5_lcl_fw_db=>cleanup( ).
|
||||||
|
|
||||||
|
|
||||||
r_result = `<html>` && |\n| &&
|
r_result = `<html>` && |\n| &&
|
||||||
`<head>` && |\n| &&
|
`<head>` && |\n| &&
|
||||||
lv_sec_policy && |\n| &&
|
lv_sec_policy && |\n| &&
|
||||||
|
@ -75,7 +75,7 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
|
||||||
`<body class="sapUiBody sapUiSizeCompact" >` && |\n| &&
|
`<body class="sapUiBody sapUiSizeCompact" >` && |\n| &&
|
||||||
` <div id="content" data-handle-validation="true" ></div>` && |\n| &&
|
` <div id="content" data-handle-validation="true" ></div>` && |\n| &&
|
||||||
`</body>` && |\n| &&
|
`</body>` && |\n| &&
|
||||||
`</html>` && |\n|.
|
`</html><abc/>` && |\n|.
|
||||||
r_result = r_result && `<script>` && |\n| &&
|
r_result = r_result && `<script>` && |\n| &&
|
||||||
` sap.ui.getCore().attachInit(function () {` && |\n| &&
|
` sap.ui.getCore().attachInit(function () {` && |\n| &&
|
||||||
` "use strict";` && |\n| &&
|
` "use strict";` && |\n| &&
|
||||||
|
@ -93,7 +93,8 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
|
||||||
` if (sap.z2ui5.oResponse.PARAMS.S_MSG_BOX.TEXT !== '') {` && |\n| &&
|
` if (sap.z2ui5.oResponse.PARAMS.S_MSG_BOX.TEXT !== '') {` && |\n| &&
|
||||||
` sap.m.MessageBox[sap.z2ui5.oResponse.PARAMS.S_MSG_BOX.TYPE](sap.z2ui5.oResponse.PARAMS.S_MSG_BOX.TEXT);` && |\n| &&
|
` sap.m.MessageBox[sap.z2ui5.oResponse.PARAMS.S_MSG_BOX.TYPE](sap.z2ui5.oResponse.PARAMS.S_MSG_BOX.TEXT);` && |\n| &&
|
||||||
` }` && |\n| &&
|
` }` && |\n| &&
|
||||||
` if (sap.z2ui5.oResponse.PARAMS.PATH != "") {` && |\n| &&
|
` if (sap.z2ui5.oResponse.SEARCH != "") {` && |\n| &&
|
||||||
|
` history.replaceState(null, null, sap.z2ui5.oResponse.SEARCH );` && |\n| &&
|
||||||
` // window.history.replaceState("", "", window.location.origin + sap.z2ui5.oResponse.PARAMS.PATH + window.location.search);` && |\n| &&
|
` // window.history.replaceState("", "", window.location.origin + sap.z2ui5.oResponse.PARAMS.PATH + window.location.search);` && |\n| &&
|
||||||
` }` && |\n| &&
|
` }` && |\n| &&
|
||||||
` if (sap.z2ui5.oResponse.PARAMS.S_CURSOR.ID !== '') {` && |\n| &&
|
` if (sap.z2ui5.oResponse.PARAMS.S_CURSOR.ID !== '') {` && |\n| &&
|
||||||
|
@ -202,7 +203,7 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
|
||||||
` }` && |\n| &&
|
` }` && |\n| &&
|
||||||
` sap.z2ui5.oView.destroy();` && |\n| &&
|
` sap.z2ui5.oView.destroy();` && |\n| &&
|
||||||
` },` && |\n| &&
|
` },` && |\n| &&
|
||||||
` onEventFrontend: oEvent => {` && |\n| &&
|
` onEventFrontend: function( oEvent ) {` && |\n| &&
|
||||||
|\n| &&
|
|\n| &&
|
||||||
` switch (oEvent.EVENT) {` && |\n| &&
|
` switch (oEvent.EVENT) {` && |\n| &&
|
||||||
` case 'LOCATION_RELOAD':` && |\n| &&
|
` case 'LOCATION_RELOAD':` && |\n| &&
|
||||||
|
@ -257,7 +258,7 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
|
||||||
` });` && |\n| &&
|
` });` && |\n| &&
|
||||||
` }` && |\n| &&
|
` }` && |\n| &&
|
||||||
` sap.z2ui5.oBody.ID = sap.z2ui5.oResponse.ID;` && |\n| &&
|
` sap.z2ui5.oBody.ID = sap.z2ui5.oResponse.ID;` && |\n| &&
|
||||||
` sap.z2ui5.oBody.CHECKLAUNCHPADACTIVE = sap.z2ui5.checkLaunchpadActive;` && |\n| &&
|
` // sap.z2ui5.oBody.CHECKLAUNCHPADACTIVE = sap.z2ui5.checkLaunchpadActive;` && |\n| &&
|
||||||
` sap.z2ui5.oBody.ARGUMENTS = arguments;` && |\n| &&
|
` sap.z2ui5.oBody.ARGUMENTS = arguments;` && |\n| &&
|
||||||
` try { sap.z2ui5.oBody.OCURSOR = sap.ui.getCore().byId(sap.ui.getCore().getCurrentFocusedControlId()).getFocusInfo(); } catch (e) { }` && |\n| &&
|
` try { sap.z2ui5.oBody.OCURSOR = sap.ui.getCore().byId(sap.ui.getCore().getCurrentFocusedControlId()).getFocusInfo(); } catch (e) { }` && |\n| &&
|
||||||
|\n| &&
|
|\n| &&
|
||||||
|
@ -351,13 +352,14 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
|
||||||
` if (!sap.z2ui5) {` && |\n| &&
|
` if (!sap.z2ui5) {` && |\n| &&
|
||||||
` sap.z2ui5 = {};` && |\n| &&
|
` sap.z2ui5 = {};` && |\n| &&
|
||||||
` }` && |\n| &&
|
` }` && |\n| &&
|
||||||
` if (!sap.z2ui5.pathname) {` && |\n| &&
|
` // if (!sap.z2ui5.pathname) {` && |\n| &&
|
||||||
` sap.z2ui5.pathname = window.location.pathname;` && |\n| &&
|
` sap.z2ui5.pathname = window.location.pathname;` && |\n| &&
|
||||||
` // sap.z2ui5.pathname = "/sap/bc/http/sap/y2ui5_http_handler/";` && |\n| &&
|
` debugger;` && |\n| &&
|
||||||
` }` && |\n| &&
|
` // sap.z2ui5.pathname = "/sap/bc/http/sap/y2ui5_http_handler/";` && |\n| &&
|
||||||
` if (!sap.z2ui5.checkLaunchpadActive) {` && |\n| &&
|
` // }` && |\n| &&
|
||||||
` sap.z2ui5.checkLaunchpadActive = false;` && |\n| &&
|
` // if (!sap.z2ui5.checkLaunchpadActive) {` && |\n| &&
|
||||||
` }` && |\n| &&
|
` // sap.z2ui5.checkLaunchpadActive = false;` && |\n| &&
|
||||||
|
` // }` && |\n| &&
|
||||||
|\n| &&
|
|\n| &&
|
||||||
` sap.z2ui5.checkNestAfter = false;` && |\n| &&
|
` sap.z2ui5.checkNestAfter = false;` && |\n| &&
|
||||||
|\n| &&
|
|\n| &&
|
||||||
|
@ -369,25 +371,21 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
|
||||||
` var xml = atob('PA==') + 'mvc:View controllerName="z2ui5_controller" xmlns:mvc="sap.ui.core.mvc" /' + atob('Pg==');` && |\n| &&
|
` var xml = atob('PA==') + 'mvc:View controllerName="z2ui5_controller" xmlns:mvc="sap.ui.core.mvc" /' + atob('Pg==');` && |\n| &&
|
||||||
` var oView = sap.ui.xmlview({ viewContent: xml });` && |\n| &&
|
` var oView = sap.ui.xmlview({ viewContent: xml });` && |\n| &&
|
||||||
` sap.z2ui5.oController = oView.getController();` && |\n| &&
|
` sap.z2ui5.oController = oView.getController();` && |\n| &&
|
||||||
` sap.z2ui5.checkLogActive = ` && z2ui5_lcl_utility=>get_json_boolean( check_logging ) && `;` && |\n| &&
|
| sap.z2ui5.checkLogActive = { z2ui5_lcl_utility=>get_json_boolean( check_logging ) };| && |\n| &&
|
||||||
` sap.z2ui5.oBody = {};` && |\n| &&
|
` sap.z2ui5.oBody = {};` && |\n| &&
|
||||||
` sap.z2ui5.oController.Roundtrip();` && |\n| &&
|
` sap.z2ui5.oController.Roundtrip();` && |\n| &&
|
||||||
` });` && |\n| &&
|
` });` && |\n| &&
|
||||||
`</script>` && |\n| &&
|
`</script>` && |\n| &&
|
||||||
`</html>`.
|
`<abc/></html>`.
|
||||||
|
|
||||||
|
* sap.z2ui5.checkLogActive = { z2ui5_lcl_utility=>get_json_boolean( check_logging ) };`| && |\n| &&
|
||||||
|
|
||||||
* ` sap.z2ui5.checkLogActive = ` && z2ui5_lcl_utility=>get_json_boolean( check_logging ) && `;` && |\n| &&
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD http_post.
|
METHOD http_post.
|
||||||
|
|
||||||
z2ui5_lcl_fw_handler=>ss_config = VALUE #(
|
DATA(lo_handler) = z2ui5_lcl_fw_handler=>request_begin( body ).
|
||||||
controller_name = `z2ui5_controller`
|
|
||||||
path_info = path_info
|
|
||||||
body = body ).
|
|
||||||
|
|
||||||
DATA(lo_handler) = z2ui5_lcl_fw_handler=>request_begin( ).
|
|
||||||
|
|
||||||
DO.
|
DO.
|
||||||
TRY.
|
TRY.
|
||||||
|
@ -408,7 +406,7 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
|
||||||
result = lo_handler->request_end( ).
|
result = lo_handler->request_end( ).
|
||||||
|
|
||||||
CATCH cx_root INTO DATA(x).
|
CATCH cx_root INTO DATA(x).
|
||||||
lo_handler = lo_handler->set_app_system( x ).
|
lo_handler = z2ui5_lcl_fw_handler=>set_app_system( x ).
|
||||||
CONTINUE.
|
CONTINUE.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,10 @@ CLASS z2ui5_lcl_utility DEFINITION INHERITING FROM cx_no_check.
|
||||||
|
|
||||||
METHODS get_text REDEFINITION.
|
METHODS get_text REDEFINITION.
|
||||||
|
|
||||||
|
CLASS-METHODS get_classname_by_ref
|
||||||
|
IMPORTING in TYPE REF TO object
|
||||||
|
RETURNING VALUE(result) TYPE string.
|
||||||
|
|
||||||
CLASS-METHODS raise
|
CLASS-METHODS raise
|
||||||
IMPORTING
|
IMPORTING
|
||||||
v TYPE clike DEFAULT `CX_SY_SUBRC`
|
v TYPE clike DEFAULT `CX_SY_SUBRC`
|
||||||
|
@ -45,9 +49,6 @@ CLASS z2ui5_lcl_utility DEFINITION INHERITING FROM cx_no_check.
|
||||||
CLASS-METHODS get_user_tech
|
CLASS-METHODS get_user_tech
|
||||||
RETURNING VALUE(result) TYPE string.
|
RETURNING VALUE(result) TYPE string.
|
||||||
|
|
||||||
CLASS-METHODS get_timestampl
|
|
||||||
RETURNING VALUE(result) TYPE timestampl.
|
|
||||||
|
|
||||||
CLASS-METHODS trans_any_2_json
|
CLASS-METHODS trans_any_2_json
|
||||||
IMPORTING any TYPE any
|
IMPORTING any TYPE any
|
||||||
RETURNING VALUE(result) TYPE string.
|
RETURNING VALUE(result) TYPE string.
|
||||||
|
@ -104,11 +105,241 @@ CLASS z2ui5_lcl_utility DEFINITION INHERITING FROM cx_no_check.
|
||||||
EXPORTING
|
EXPORTING
|
||||||
e_data TYPE REF TO data.
|
e_data TYPE REF TO data.
|
||||||
|
|
||||||
|
CLASS-METHODS get_timestampl
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE timestampl.
|
||||||
|
|
||||||
|
CLASS-METHODS get_param
|
||||||
|
IMPORTING
|
||||||
|
val TYPE string
|
||||||
|
RETURNING
|
||||||
|
VALUE(r_result) TYPE string.
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
CLASS-DATA mv_counter TYPE i.
|
CLASS-DATA mv_counter TYPE i.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS z2ui5_lcl_utility_tree_json DEFINITION.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
DATA mo_root TYPE REF TO z2ui5_lcl_utility_tree_json.
|
||||||
|
DATA mo_parent TYPE REF TO z2ui5_lcl_utility_tree_json.
|
||||||
|
DATA mv_name TYPE string.
|
||||||
|
DATA mv_value TYPE string.
|
||||||
|
DATA mt_values TYPE STANDARD TABLE OF REF TO z2ui5_lcl_utility_tree_json WITH EMPTY KEY.
|
||||||
|
DATA mv_check_list TYPE abap_bool.
|
||||||
|
DATA mr_actual TYPE REF TO data.
|
||||||
|
DATA mv_apost_active TYPE abap_bool.
|
||||||
|
|
||||||
|
CLASS-METHODS new
|
||||||
|
IMPORTING io_root TYPE REF TO z2ui5_lcl_utility_tree_json
|
||||||
|
iv_name TYPE simple
|
||||||
|
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
|
||||||
|
|
||||||
|
CLASS-METHODS factory
|
||||||
|
IMPORTING iv_json TYPE clike OPTIONAL
|
||||||
|
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
|
||||||
|
|
||||||
|
METHODS constructor.
|
||||||
|
|
||||||
|
METHODS get_root
|
||||||
|
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
|
||||||
|
|
||||||
|
METHODS get_attribute
|
||||||
|
IMPORTING name TYPE string
|
||||||
|
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
|
||||||
|
|
||||||
|
METHODS get_val
|
||||||
|
RETURNING VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
METHODS add_attribute
|
||||||
|
IMPORTING n TYPE clike
|
||||||
|
v TYPE clike
|
||||||
|
apos_active TYPE abap_bool DEFAULT abap_true
|
||||||
|
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
|
||||||
|
|
||||||
|
METHODS add_attribute_object
|
||||||
|
IMPORTING name TYPE clike
|
||||||
|
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
|
||||||
|
|
||||||
|
METHODS add_attribute_struc
|
||||||
|
IMPORTING val TYPE data
|
||||||
|
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
|
||||||
|
|
||||||
|
METHODS add_attribute_instance
|
||||||
|
IMPORTING val TYPE REF TO z2ui5_lcl_utility_tree_json
|
||||||
|
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
|
||||||
|
|
||||||
|
METHODS stringify
|
||||||
|
RETURNING VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
PROTECTED SECTION.
|
||||||
|
METHODS wrap_json
|
||||||
|
IMPORTING iv_text TYPE string
|
||||||
|
RETURNING VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
METHODS quote_json
|
||||||
|
IMPORTING iv_text TYPE string
|
||||||
|
iv_cond TYPE abap_bool
|
||||||
|
RETURNING VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CLASS z2ui5_lcl_fw_handler DEFINITION.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
CONSTANTS:
|
||||||
|
BEGIN OF cs_bind_type,
|
||||||
|
one_way TYPE string VALUE 'ONE_WAY',
|
||||||
|
two_way TYPE string VALUE 'TWO_WAY',
|
||||||
|
one_time TYPE string VALUE 'ONE_TIME',
|
||||||
|
END OF cs_bind_type.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_S_next2,
|
||||||
|
t_scroll TYPE z2ui5_if_client=>ty_t_name_value,
|
||||||
|
title TYPE string,
|
||||||
|
* path TYPE string,
|
||||||
|
search TYPE string,
|
||||||
|
BEGIN OF s_view,
|
||||||
|
xml TYPE string,
|
||||||
|
check_destroy TYPE abap_bool,
|
||||||
|
check_update_model TYPE abap_bool,
|
||||||
|
END OF s_view,
|
||||||
|
BEGIN OF s_view_nest,
|
||||||
|
xml TYPE string,
|
||||||
|
id TYPE string,
|
||||||
|
method_insert TYPE string,
|
||||||
|
method_destroy TYPE string,
|
||||||
|
check_destroy TYPE abap_bool,
|
||||||
|
check_update_model TYPE abap_bool,
|
||||||
|
END OF s_view_nest,
|
||||||
|
BEGIN OF s_popup,
|
||||||
|
xml TYPE string,
|
||||||
|
id TYPE string,
|
||||||
|
check_destroy TYPE abap_bool,
|
||||||
|
check_update_model TYPE abap_bool,
|
||||||
|
END OF s_popup,
|
||||||
|
BEGIN OF s_popover,
|
||||||
|
xml TYPE string,
|
||||||
|
id TYPE string,
|
||||||
|
open_by_id TYPE string,
|
||||||
|
check_destroy TYPE abap_bool,
|
||||||
|
check_update_model TYPE abap_bool,
|
||||||
|
END OF s_popover,
|
||||||
|
BEGIN OF s_cursor,
|
||||||
|
id TYPE string,
|
||||||
|
cursorpos TYPE string,
|
||||||
|
selectionstart TYPE string,
|
||||||
|
selectionend TYPE string,
|
||||||
|
END OF s_cursor,
|
||||||
|
BEGIN OF s_timer,
|
||||||
|
interval_ms TYPE string,
|
||||||
|
event_finished TYPE string,
|
||||||
|
END OF s_timer,
|
||||||
|
BEGIN OF s_msg_box,
|
||||||
|
type TYPE string,
|
||||||
|
text TYPE string,
|
||||||
|
END OF s_msg_box,
|
||||||
|
BEGIN OF s_msg_toast,
|
||||||
|
text TYPE string,
|
||||||
|
END OF s_msg_toast,
|
||||||
|
_viewmodel TYPE string,
|
||||||
|
END OF ty_s_next2.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_s_db,
|
||||||
|
id TYPE string,
|
||||||
|
id_prev TYPE string,
|
||||||
|
id_prev_app TYPE string,
|
||||||
|
id_prev_app_stack TYPE string,
|
||||||
|
t_attri TYPE z2ui5_lcl_utility=>ty_t_attri,
|
||||||
|
o_app TYPE REF TO z2ui5_if_app,
|
||||||
|
END OF ty_s_db.
|
||||||
|
|
||||||
|
CLASS-DATA ss_config TYPE z2ui5_if_client=>ty_s_config.
|
||||||
|
|
||||||
|
DATA ms_db TYPE ty_s_db.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_s_next,
|
||||||
|
o_app_call TYPE REF TO z2ui5_if_app,
|
||||||
|
o_app_leave TYPE REF TO z2ui5_if_app,
|
||||||
|
s_set TYPE ty_S_next2,
|
||||||
|
END OF ty_s_next.
|
||||||
|
|
||||||
|
DATA ms_actual TYPE z2ui5_if_client=>ty_s_get.
|
||||||
|
DATA ms_next TYPE ty_s_next.
|
||||||
|
|
||||||
|
CLASS-DATA so_body TYPE REF TO z2ui5_lcl_utility_tree_json.
|
||||||
|
|
||||||
|
CLASS-METHODS request_begin
|
||||||
|
IMPORTING
|
||||||
|
body TYPE string
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO z2ui5_lcl_fw_handler.
|
||||||
|
|
||||||
|
METHODS request_end
|
||||||
|
RETURNING VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
METHODS _create_binding
|
||||||
|
IMPORTING value TYPE data
|
||||||
|
type TYPE string DEFAULT cs_bind_type-two_way
|
||||||
|
RETURNING VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
CLASS-METHODS set_app_start
|
||||||
|
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_fw_handler.
|
||||||
|
|
||||||
|
CLASS-METHODS set_app_client
|
||||||
|
IMPORTING
|
||||||
|
id_prev TYPE clike
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO z2ui5_lcl_fw_handler.
|
||||||
|
|
||||||
|
METHODS set_app_leave
|
||||||
|
IMPORTING
|
||||||
|
check_no_db_save TYPE abap_bool DEFAULT abap_false
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO z2ui5_lcl_fw_handler.
|
||||||
|
|
||||||
|
METHODS set_app_call
|
||||||
|
IMPORTING
|
||||||
|
check_no_db_save TYPE abap_bool DEFAULT abap_false
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO z2ui5_lcl_fw_handler.
|
||||||
|
|
||||||
|
CLASS-METHODS set_app_system
|
||||||
|
IMPORTING VALUE(ix) TYPE REF TO cx_root OPTIONAL
|
||||||
|
error_text TYPE string OPTIONAL
|
||||||
|
PREFERRED PARAMETER ix
|
||||||
|
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_fw_handler.
|
||||||
|
|
||||||
|
CLASS-METHODS model_set_backend
|
||||||
|
IMPORTING
|
||||||
|
model TYPE REF TO data
|
||||||
|
app TYPE REF TO object
|
||||||
|
t_attri TYPE z2ui5_lcl_utility=>ty_t_attri.
|
||||||
|
|
||||||
|
CLASS-METHODS model_set_frontend
|
||||||
|
IMPORTING
|
||||||
|
app TYPE REF TO object
|
||||||
|
t_attri TYPE z2ui5_lcl_utility=>ty_t_attri
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
METHODS app_set_next
|
||||||
|
IMPORTING
|
||||||
|
app TYPE REF TO z2ui5_if_app
|
||||||
|
RETURNING
|
||||||
|
VALUE(r_result) TYPE REF TO z2ui5_lcl_fw_handler.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
CLASS z2ui5_lcl_utility IMPLEMENTATION.
|
CLASS z2ui5_lcl_utility IMPLEMENTATION.
|
||||||
|
|
||||||
|
@ -165,6 +396,7 @@ CLASS z2ui5_lcl_utility IMPLEMENTATION.
|
||||||
GET TIME STAMP FIELD result.
|
GET TIME STAMP FIELD result.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_user_tech.
|
METHOD get_user_tech.
|
||||||
result = sy-uname.
|
result = sy-uname.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -333,6 +565,11 @@ CLASS z2ui5_lcl_utility IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD get_classname_by_ref.
|
||||||
|
DATA(lv_classname) = cl_abap_classdescr=>get_class_name( in ).
|
||||||
|
result = substring_after( val = lv_classname sub = `\CLASS=` ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD trans_object_2_xml.
|
METHOD trans_object_2_xml.
|
||||||
|
|
||||||
FIELD-SYMBOLS <object> TYPE any.
|
FIELD-SYMBOLS <object> TYPE any.
|
||||||
|
@ -421,77 +658,42 @@ CLASS z2ui5_lcl_utility IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
RAISE EXCEPTION TYPE z2ui5_lcl_utility EXPORTING val = v.
|
RAISE EXCEPTION TYPE z2ui5_lcl_utility EXPORTING val = v.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
|
METHOD get_param.
|
||||||
|
|
||||||
CLASS z2ui5_lcl_utility_tree_json DEFINITION.
|
DATA(lt_params) = VALUE z2ui5_if_client=>ty_t_name_value( ).
|
||||||
|
|
||||||
PUBLIC SECTION.
|
DATA(lv_search) = z2ui5_lcl_fw_handler=>so_body->get_attribute( `OLOCATION` )->get_attribute( `SEARCH` )->get_val( ).
|
||||||
|
|
||||||
DATA mo_root TYPE REF TO z2ui5_lcl_utility_tree_json.
|
REPLACE `%3D` IN lv_search WITH `=`.
|
||||||
DATA mo_parent TYPE REF TO z2ui5_lcl_utility_tree_json.
|
SPLIT lv_search AT `&sap-startup-params=` INTO DATA(lv_search1) DATA(lv_search2).
|
||||||
DATA mv_name TYPE string.
|
IF lv_search2 IS NOT INITIAL.
|
||||||
DATA mv_value TYPE string.
|
lv_search = lv_search2.
|
||||||
DATA mt_values TYPE STANDARD TABLE OF REF TO z2ui5_lcl_utility_tree_json WITH EMPTY KEY.
|
ELSE.
|
||||||
DATA mv_check_list TYPE abap_bool.
|
lv_search = lv_search1.
|
||||||
DATA mr_actual TYPE REF TO data.
|
ENDIF.
|
||||||
DATA mv_apost_active TYPE abap_bool.
|
|
||||||
|
|
||||||
CLASS-METHODS new
|
lv_search = get_trim_upper( lv_search ).
|
||||||
IMPORTING io_root TYPE REF TO z2ui5_lcl_utility_tree_json
|
SHIFT lv_search LEFT DELETING LEADING `?`.
|
||||||
iv_name TYPE simple
|
|
||||||
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
|
|
||||||
|
|
||||||
CLASS-METHODS factory
|
SPLIT lv_search AT `&` INTO TABLE DATA(lt_param).
|
||||||
IMPORTING iv_json TYPE clike OPTIONAL
|
|
||||||
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
|
|
||||||
|
|
||||||
METHODS constructor.
|
LOOP AT lt_param REFERENCE INTO DATA(lr_param).
|
||||||
|
|
||||||
METHODS get_root
|
SPLIT lr_param->* AT `=` INTO DATA(lv_name) DATA(lv_value).
|
||||||
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
|
|
||||||
|
|
||||||
METHODS get_attribute
|
INSERT VALUE #( n = lv_name v = lv_value ) INTO TABLE lt_params.
|
||||||
IMPORTING name TYPE string
|
ENDLOOP.
|
||||||
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
|
|
||||||
|
|
||||||
METHODS get_val
|
DATA(lv_val) = get_trim_upper( val ).
|
||||||
RETURNING VALUE(result) TYPE string.
|
r_result = VALUE #( lt_params[ n = lv_val ]-v OPTIONAL ).
|
||||||
|
|
||||||
METHODS add_attribute
|
ENDMETHOD.
|
||||||
IMPORTING n TYPE clike
|
|
||||||
v TYPE clike
|
|
||||||
apos_active TYPE abap_bool DEFAULT abap_true
|
|
||||||
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
|
|
||||||
|
|
||||||
METHODS add_attribute_object
|
|
||||||
IMPORTING name TYPE clike
|
|
||||||
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
|
|
||||||
|
|
||||||
METHODS add_attribute_struc
|
|
||||||
IMPORTING val TYPE data
|
|
||||||
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
|
|
||||||
|
|
||||||
METHODS add_attribute_instance
|
|
||||||
IMPORTING val TYPE REF TO z2ui5_lcl_utility_tree_json
|
|
||||||
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
|
|
||||||
|
|
||||||
METHODS stringify
|
|
||||||
RETURNING VALUE(result) TYPE string.
|
|
||||||
|
|
||||||
PROTECTED SECTION.
|
|
||||||
METHODS wrap_json
|
|
||||||
IMPORTING iv_text TYPE string
|
|
||||||
RETURNING VALUE(result) TYPE string.
|
|
||||||
|
|
||||||
METHODS quote_json
|
|
||||||
IMPORTING iv_text TYPE string
|
|
||||||
iv_cond TYPE abap_bool
|
|
||||||
RETURNING VALUE(result) TYPE string.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS z2ui5_lcl_utility_tree_json IMPLEMENTATION.
|
CLASS z2ui5_lcl_utility_tree_json IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD add_attribute.
|
METHOD add_attribute.
|
||||||
|
@ -634,157 +836,6 @@ CLASS z2ui5_lcl_utility_tree_json IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
CLASS z2ui5_lcl_fw_handler DEFINITION DEFERRED.
|
|
||||||
|
|
||||||
CLASS z2ui5_lcl_fw_handler DEFINITION.
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
|
|
||||||
CONSTANTS:
|
|
||||||
BEGIN OF cs_bind_type,
|
|
||||||
one_way TYPE string VALUE 'ONE_WAY',
|
|
||||||
two_way TYPE string VALUE 'TWO_WAY',
|
|
||||||
one_time TYPE string VALUE 'ONE_TIME',
|
|
||||||
END OF cs_bind_type.
|
|
||||||
|
|
||||||
TYPES:
|
|
||||||
BEGIN OF ty_S_next2,
|
|
||||||
t_scroll TYPE z2ui5_if_client=>ty_t_name_value,
|
|
||||||
title TYPE string,
|
|
||||||
path TYPE string,
|
|
||||||
url TYPE string,
|
|
||||||
BEGIN OF s_view,
|
|
||||||
xml TYPE string,
|
|
||||||
check_destroy TYPE abap_bool,
|
|
||||||
check_update_model TYPE abap_bool,
|
|
||||||
END OF s_view,
|
|
||||||
BEGIN OF s_view_nest,
|
|
||||||
xml TYPE string,
|
|
||||||
id TYPE string,
|
|
||||||
method_insert TYPE string,
|
|
||||||
method_destroy TYPE string,
|
|
||||||
check_destroy TYPE abap_bool,
|
|
||||||
check_update_model TYPE abap_bool,
|
|
||||||
END OF s_view_nest,
|
|
||||||
BEGIN OF s_popup,
|
|
||||||
xml TYPE string,
|
|
||||||
id TYPE string,
|
|
||||||
check_destroy TYPE abap_bool,
|
|
||||||
check_update_model TYPE abap_bool,
|
|
||||||
END OF s_popup,
|
|
||||||
BEGIN OF s_popover,
|
|
||||||
xml TYPE string,
|
|
||||||
id TYPE string,
|
|
||||||
open_by_id TYPE string,
|
|
||||||
check_destroy TYPE abap_bool,
|
|
||||||
check_update_model TYPE abap_bool,
|
|
||||||
END OF s_popover,
|
|
||||||
BEGIN OF s_cursor,
|
|
||||||
id TYPE string,
|
|
||||||
cursorpos TYPE string,
|
|
||||||
selectionstart TYPE string,
|
|
||||||
selectionend TYPE string,
|
|
||||||
END OF s_cursor,
|
|
||||||
BEGIN OF s_timer,
|
|
||||||
interval_ms TYPE string,
|
|
||||||
event_finished TYPE string,
|
|
||||||
END OF s_timer,
|
|
||||||
BEGIN OF s_msg_box,
|
|
||||||
type TYPE string,
|
|
||||||
text TYPE string,
|
|
||||||
END OF s_msg_box,
|
|
||||||
BEGIN OF s_msg_toast,
|
|
||||||
text TYPE string,
|
|
||||||
END OF s_msg_toast,
|
|
||||||
_viewmodel TYPE string,
|
|
||||||
END OF ty_s_next2.
|
|
||||||
|
|
||||||
TYPES:
|
|
||||||
BEGIN OF ty_s_db,
|
|
||||||
id TYPE string,
|
|
||||||
id_prev TYPE string,
|
|
||||||
id_prev_app TYPE string,
|
|
||||||
id_prev_app_stack TYPE string,
|
|
||||||
t_attri TYPE z2ui5_lcl_utility=>ty_t_attri,
|
|
||||||
o_app TYPE REF TO z2ui5_if_app,
|
|
||||||
END OF ty_s_db.
|
|
||||||
|
|
||||||
CLASS-DATA ss_config TYPE z2ui5_if_client=>ty_s_config.
|
|
||||||
|
|
||||||
DATA ms_db TYPE ty_s_db.
|
|
||||||
|
|
||||||
TYPES:
|
|
||||||
BEGIN OF ty_s_next,
|
|
||||||
o_app_call TYPE REF TO z2ui5_if_app,
|
|
||||||
o_app_leave TYPE REF TO z2ui5_if_app,
|
|
||||||
s_set TYPE ty_S_next2,
|
|
||||||
END OF ty_s_next.
|
|
||||||
|
|
||||||
DATA ms_actual TYPE z2ui5_if_client=>ty_s_get.
|
|
||||||
DATA ms_next TYPE ty_s_next.
|
|
||||||
|
|
||||||
CLASS-DATA so_body TYPE REF TO z2ui5_lcl_utility_tree_json.
|
|
||||||
|
|
||||||
CLASS-METHODS request_begin
|
|
||||||
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_fw_handler.
|
|
||||||
|
|
||||||
METHODS request_end
|
|
||||||
RETURNING VALUE(result) TYPE string.
|
|
||||||
|
|
||||||
METHODS _create_binding
|
|
||||||
IMPORTING value TYPE data
|
|
||||||
type TYPE string DEFAULT cs_bind_type-two_way
|
|
||||||
RETURNING VALUE(result) TYPE string.
|
|
||||||
|
|
||||||
CLASS-METHODS set_app_start
|
|
||||||
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_fw_handler.
|
|
||||||
|
|
||||||
CLASS-METHODS set_app_client
|
|
||||||
IMPORTING
|
|
||||||
id_prev TYPE clike
|
|
||||||
RETURNING
|
|
||||||
VALUE(result) TYPE REF TO z2ui5_lcl_fw_handler.
|
|
||||||
|
|
||||||
METHODS set_app_leave
|
|
||||||
IMPORTING
|
|
||||||
check_no_db_save TYPE abap_bool DEFAULT abap_false
|
|
||||||
RETURNING
|
|
||||||
VALUE(result) TYPE REF TO z2ui5_lcl_fw_handler.
|
|
||||||
|
|
||||||
METHODS set_app_call
|
|
||||||
IMPORTING
|
|
||||||
check_no_db_save TYPE abap_bool DEFAULT abap_false
|
|
||||||
RETURNING
|
|
||||||
VALUE(result) TYPE REF TO z2ui5_lcl_fw_handler.
|
|
||||||
|
|
||||||
METHODS set_app_system
|
|
||||||
IMPORTING VALUE(ix) TYPE REF TO cx_root OPTIONAL
|
|
||||||
error_text TYPE string OPTIONAL
|
|
||||||
PREFERRED PARAMETER ix
|
|
||||||
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_fw_handler.
|
|
||||||
|
|
||||||
CLASS-METHODS model_set_backend
|
|
||||||
IMPORTING
|
|
||||||
model TYPE REF TO data
|
|
||||||
app TYPE REF TO object
|
|
||||||
t_attri TYPE z2ui5_lcl_utility=>ty_t_attri.
|
|
||||||
|
|
||||||
CLASS-METHODS model_set_frontend
|
|
||||||
IMPORTING
|
|
||||||
app TYPE REF TO object
|
|
||||||
t_attri TYPE z2ui5_lcl_utility=>ty_t_attri
|
|
||||||
RETURNING
|
|
||||||
VALUE(result) TYPE string.
|
|
||||||
|
|
||||||
METHODS app_set_next
|
|
||||||
IMPORTING
|
|
||||||
app TYPE REF TO z2ui5_if_app
|
|
||||||
RETURNING
|
|
||||||
VALUE(r_result) TYPE REF TO z2ui5_lcl_fw_handler.
|
|
||||||
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
|
|
||||||
CLASS z2ui5_lcl_fw_db DEFINITION.
|
CLASS z2ui5_lcl_fw_db DEFINITION.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
@ -927,6 +978,7 @@ CLASS z2ui5_lcl_fw_app IMPLEMENTATION.
|
||||||
DATA li_app TYPE REF TO z2ui5_if_app.
|
DATA li_app TYPE REF TO z2ui5_if_app.
|
||||||
TRY.
|
TRY.
|
||||||
CREATE OBJECT li_app TYPE (`Z2UI5_CL_APP_DEMO_00`).
|
CREATE OBJECT li_app TYPE (`Z2UI5_CL_APP_DEMO_00`).
|
||||||
|
* CREATE OBJECT li_app TYPE (`Z2UI5_CL_APP_DEMO_00`).
|
||||||
lv_check_demo = abap_true.
|
lv_check_demo = abap_true.
|
||||||
client->nav_app_call( li_app ).
|
client->nav_app_call( li_app ).
|
||||||
CATCH cx_root.
|
CATCH cx_root.
|
||||||
|
@ -956,9 +1008,12 @@ CLASS z2ui5_lcl_fw_app IMPLEMENTATION.
|
||||||
DATA(ls_get) = client->get( ).
|
DATA(ls_get) = client->get( ).
|
||||||
DATA(lv_url_app) = ls_get-s_config-origin && ls_get-s_config-pathname.
|
DATA(lv_url_app) = ls_get-s_config-origin && ls_get-s_config-pathname.
|
||||||
DATA(lv_url) = lv_url_app.
|
DATA(lv_url) = lv_url_app.
|
||||||
SHIFT lv_url RIGHT DELETING TRAILING ls_get-s_config-path_info.
|
* SHIFT lv_url RIGHT DELETING TRAILING ls_get-s_config-path_info.
|
||||||
SHIFT lv_url LEFT DELETING LEADING ` `.
|
SHIFT lv_url LEFT DELETING LEADING ` `.
|
||||||
|
|
||||||
|
* client->get( )-s_config-ms_db-
|
||||||
|
* DATA(lv_url_app_act) = ls_get-s_config-origin && ls_get-s_config-pathname.
|
||||||
|
|
||||||
DATA(lv_xml) = `<mvc:View ` && |\n| &&
|
DATA(lv_xml) = `<mvc:View ` && |\n| &&
|
||||||
` xmlns="sap.m" ` && |\n| &&
|
` xmlns="sap.m" ` && |\n| &&
|
||||||
` xmlns:z2ui5="z2ui5" ` && |\n| &&
|
` xmlns:z2ui5="z2ui5" ` && |\n| &&
|
||||||
|
@ -1007,15 +1062,25 @@ CLASS z2ui5_lcl_fw_app IMPLEMENTATION.
|
||||||
TRY.
|
TRY.
|
||||||
|
|
||||||
DATA(lv_url) = to_lower( z2ui5_lcl_fw_handler=>ss_config-origin && z2ui5_lcl_fw_handler=>ss_config-pathname ).
|
DATA(lv_url) = to_lower( z2ui5_lcl_fw_handler=>ss_config-origin && z2ui5_lcl_fw_handler=>ss_config-pathname ).
|
||||||
DATA(lv_path_info) = to_lower( z2ui5_lcl_fw_handler=>ss_config-path_info ).
|
|
||||||
REPLACE lv_path_info IN lv_url WITH ``.
|
DATA(lv_search) = client->get( )-s_config-search.
|
||||||
SPLIT lv_url AT '?' INTO lv_url DATA(lv_params).
|
SPLIT lv_search AT `&` INTO TABLE DATA(lt_param).
|
||||||
SHIFT lv_url RIGHT DELETING TRAILING `/`.
|
LOOP AT lt_param INTO DATA(ls_param).
|
||||||
DATA(lv_link) = lv_url && `/` && to_lower( ms_home-classname ).
|
TRY.
|
||||||
IF lv_params IS NOT INITIAL.
|
IF ls_param(9) = `app_start`.
|
||||||
lv_link = lv_link && `?` && lv_params.
|
DELETE lt_param.
|
||||||
|
ENDIF.
|
||||||
|
CATCH cx_root.
|
||||||
|
ENDTRY.
|
||||||
|
ENDLOOP.
|
||||||
|
IF lv_search IS INITIAL.
|
||||||
|
lv_url = lv_url && `?`.
|
||||||
|
ELSE.
|
||||||
|
lv_url = lv_url && lv_search && `&`.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
DATA(lv_link) = lv_url && `app_start=` && to_lower( ms_home-classname ).
|
||||||
|
|
||||||
CATCH cx_root.
|
CATCH cx_root.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
|
@ -1233,17 +1298,16 @@ CLASS z2ui5_lcl_fw_db IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD cleanup.
|
METHOD cleanup.
|
||||||
|
|
||||||
DATA lv_ts_now TYPE timestampl.
|
data(lv_timestampl) = z2ui5_lcl_utility=>get_timestampl( ).
|
||||||
|
DATA(lv_ts_four_hours_ago) = cl_abap_tstmp=>subtractsecs( tstmp = lv_timestampl
|
||||||
GET TIME STAMP FIELD lv_ts_now.
|
|
||||||
|
|
||||||
DATA(lv_ts_four_hours_ago) = cl_abap_tstmp=>subtractsecs( tstmp = lv_ts_now
|
|
||||||
secs = 60 * 60 * 4 ).
|
secs = 60 * 60 * 4 ).
|
||||||
|
|
||||||
DELETE FROM z2ui5_t_draft WHERE timestampl < @lv_ts_four_hours_ago.
|
DELETE FROM z2ui5_t_draft WHERE timestampl < @lv_ts_four_hours_ago.
|
||||||
COMMIT WORK.
|
COMMIT WORK.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -1265,7 +1329,10 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD request_begin.
|
METHOD request_begin.
|
||||||
|
|
||||||
so_body = z2ui5_lcl_utility_tree_json=>factory( ss_config-body ).
|
ss_config = VALUE #(
|
||||||
|
controller_name = `z2ui5_controller`
|
||||||
|
body = body ).
|
||||||
|
so_body = z2ui5_lcl_utility_tree_json=>factory( body ).
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
DATA(lv_id_prev) = so_body->get_attribute( `ID` )->get_val( ).
|
DATA(lv_id_prev) = so_body->get_attribute( `ID` )->get_val( ).
|
||||||
|
@ -1274,13 +1341,6 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
|
||||||
CATCH cx_root.
|
CATCH cx_root.
|
||||||
result = set_app_start( ).
|
result = set_app_start( ).
|
||||||
result->ms_actual-check_on_navigated = abap_true.
|
result->ms_actual-check_on_navigated = abap_true.
|
||||||
* RETURN.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
result->ms_actual-check_launchpad_active = so_body->get_attribute( `CHECKLAUNCHPADACTIVE` )->get_val( ).
|
|
||||||
CATCH cx_root.
|
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
|
@ -1309,6 +1369,7 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
|
||||||
CATCH cx_root.
|
CATCH cx_root.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
DATA(lo_location) = so_body->get_attribute( `OLOCATION` ).
|
DATA(lo_location) = so_body->get_attribute( `OLOCATION` ).
|
||||||
ss_config-origin = lo_location->get_attribute( `ORIGIN` )->get_val( ).
|
ss_config-origin = lo_location->get_attribute( `ORIGIN` )->get_val( ).
|
||||||
|
@ -1319,6 +1380,16 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
|
||||||
CATCH cx_root.
|
CATCH cx_root.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
|
* TRY.
|
||||||
|
* result->ms_actual-check_launchpad_active = so_body->get_attribute( `CHECKLAUNCHPADACTIVE` )->get_val( ).
|
||||||
|
* CATCH cx_root.
|
||||||
|
* ENDTRY.
|
||||||
|
|
||||||
|
* IF result->ms_actual-check_launchpad_active = abap_false.
|
||||||
|
IF ss_config-search CS `scenario=LAUNCHPAD`.
|
||||||
|
result->ms_actual-check_launchpad_active = abap_true.
|
||||||
|
ENDIF.
|
||||||
|
* ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -1334,7 +1405,15 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
|
||||||
lo_resp->add_attribute( n = `PARAMS` v = z2ui5_lcl_utility=>trans_any_2_json( ms_next-s_set ) apos_active = abap_false ).
|
lo_resp->add_attribute( n = `PARAMS` v = z2ui5_lcl_utility=>trans_any_2_json( ms_next-s_set ) apos_active = abap_false ).
|
||||||
lo_resp->add_attribute( n = `ID` v = ms_db-id ).
|
lo_resp->add_attribute( n = `ID` v = ms_db-id ).
|
||||||
|
|
||||||
ms_next-s_set-path = ss_config-path_info.
|
* DATA(lv_app_start) = to_lower( z2ui5_lcl_utility=>get_param( `app_start` ) ).
|
||||||
|
* DATA(lv_q) = z2ui5_lcl_utility=>get_param( `q` ).
|
||||||
|
* DATA(lv_app) = to_lower( z2ui5_lcl_utility=>get_classname_by_ref( ms_db-o_app ) ).
|
||||||
|
|
||||||
|
IF ms_next-S_set-search IS INITIAL.
|
||||||
|
lo_resp->add_attribute( n = `SEARCH` v = ms_actual-s_config-search ).
|
||||||
|
ELSE.
|
||||||
|
lo_resp->add_attribute( n = `SEARCH` v = ms_next-S_set-search ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
result = lo_resp->get_root( )->stringify( ).
|
result = lo_resp->get_root( )->stringify( ).
|
||||||
z2ui5_lcl_fw_db=>create( id = ms_db-id db = ms_db ).
|
z2ui5_lcl_fw_db=>create( id = ms_db-id db = ms_db ).
|
||||||
|
@ -1469,38 +1548,25 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD set_app_start.
|
METHOD set_app_start.
|
||||||
|
|
||||||
result = NEW #( ).
|
|
||||||
result->ms_db-id = z2ui5_lcl_utility=>get_uuid( ).
|
|
||||||
|
|
||||||
|
|
||||||
" TODO: variable is assigned but never used (ABAP cleaner)
|
|
||||||
SPLIT ss_config-path_info AT `?` INTO DATA(lv_path_info) DATA(lv_dummy).
|
|
||||||
DATA(lv_classname) = z2ui5_lcl_utility=>get_trim_upper( lv_path_info ).
|
|
||||||
SHIFT lv_classname LEFT DELETING LEADING `/`.
|
|
||||||
|
|
||||||
|
DATA(lv_classname) = z2ui5_lcl_utility=>get_param( `app_start` ).
|
||||||
IF lv_classname IS INITIAL.
|
IF lv_classname IS INITIAL.
|
||||||
result = result->set_app_system( ).
|
result = set_app_system( ).
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
TRY.
|
result = NEW #( ).
|
||||||
CREATE OBJECT result->ms_db-o_app TYPE (lv_classname).
|
result->ms_db-id = z2ui5_lcl_utility=>get_uuid( ).
|
||||||
CATCH cx_root.
|
|
||||||
SPLIT lv_classname AT `/` INTO lv_classname lv_dummy.
|
CREATE OBJECT result->ms_db-o_app TYPE (lv_classname).
|
||||||
CREATE OBJECT result->ms_db-o_app TYPE (lv_classname).
|
|
||||||
ENDTRY.
|
|
||||||
result->ms_db-o_app->id = result->ms_db-id.
|
result->ms_db-o_app->id = result->ms_db-id.
|
||||||
result->ms_db-t_attri = z2ui5_lcl_utility=>get_t_attri_by_ref( result->ms_db-o_app ).
|
result->ms_db-t_attri = z2ui5_lcl_utility=>get_t_attri_by_ref( result->ms_db-o_app ).
|
||||||
* result->ms_actual-check_on_navigated = abap_true.
|
|
||||||
RETURN.
|
|
||||||
|
|
||||||
CATCH cx_root.
|
CATCH cx_root.
|
||||||
result = result->set_app_system( error_text = `App with name ` && lv_classname && ` not found...` ).
|
result = set_app_system( error_text = `App with name ` && lv_classname && ` not found...` ).
|
||||||
RETURN.
|
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD set_app_leave.
|
METHOD set_app_leave.
|
||||||
|
@ -1608,9 +1674,9 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF ix IS BOUND.
|
IF ix IS BOUND.
|
||||||
ms_next-o_app_call = z2ui5_lcl_fw_app=>factory_error( error = ix ).
|
result->ms_next-o_app_call = z2ui5_lcl_fw_app=>factory_error( error = ix ).
|
||||||
|
|
||||||
result = set_app_call( check_no_db_save = abap_true ).
|
result = result->set_app_call( check_no_db_save = abap_true ).
|
||||||
RETURN.
|
RETURN.
|
||||||
|
|
||||||
ELSE.
|
ELSE.
|
||||||
|
@ -1638,7 +1704,6 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
|
||||||
r_result->ms_db-t_attri = z2ui5_lcl_utility=>get_t_attri_by_ref( app ).
|
r_result->ms_db-t_attri = z2ui5_lcl_utility=>get_t_attri_by_ref( app ).
|
||||||
|
|
||||||
r_result->ms_actual-check_launchpad_active = ms_actual-check_launchpad_active.
|
r_result->ms_actual-check_launchpad_active = ms_actual-check_launchpad_active.
|
||||||
r_result->ms_actual-s_config = ms_actual-s_config.
|
|
||||||
r_result->ms_actual-check_on_navigated = abap_true.
|
r_result->ms_actual-check_on_navigated = abap_true.
|
||||||
|
|
||||||
r_result->ms_next-s_Set = ms_next-s_set.
|
r_result->ms_next-s_Set = ms_next-s_set.
|
||||||
|
@ -1675,9 +1740,10 @@ CLASS z2ui5_lcl_fw_client IMPLEMENTATION.
|
||||||
check_launchpad_active = mo_handler->ms_actual-check_launchpad_active
|
check_launchpad_active = mo_handler->ms_actual-check_launchpad_active
|
||||||
t_event_arg = mo_handler->ms_actual-t_event_arg
|
t_event_arg = mo_handler->ms_actual-t_event_arg
|
||||||
t_scroll_pos = mo_handler->ms_actual-t_scroll_pos
|
t_scroll_pos = mo_handler->ms_actual-t_scroll_pos
|
||||||
|
s_DRAFT = CORRESPONDING #( mo_handler->ms_db )
|
||||||
check_on_navigated = mo_handler->ms_actual-check_on_navigated
|
check_on_navigated = mo_handler->ms_actual-check_on_navigated
|
||||||
s_config = z2ui5_lcl_fw_handler=>ss_config ).
|
s_config = z2ui5_lcl_fw_handler=>ss_config ).
|
||||||
result-s_config-app = mo_handler->ms_db-o_app.
|
result-s_draft-app = mo_handler->ms_db-o_app.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD z2ui5_if_client~nav_app_call.
|
METHOD z2ui5_if_client~nav_app_call.
|
||||||
|
@ -1731,6 +1797,7 @@ CLASS z2ui5_lcl_fw_client IMPLEMENTATION.
|
||||||
METHOD z2ui5_if_client~_bind.
|
METHOD z2ui5_if_client~_bind.
|
||||||
|
|
||||||
result = mo_handler->_create_binding( value = val type = z2ui5_lcl_fw_handler=>cs_bind_type-one_way ).
|
result = mo_handler->_create_binding( value = val type = z2ui5_lcl_fw_handler=>cs_bind_type-one_way ).
|
||||||
|
|
||||||
IF path = abap_false.
|
IF path = abap_false.
|
||||||
result = `{` && result && `}`.
|
result = `{` && result && `}`.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
@ -1739,8 +1806,8 @@ CLASS z2ui5_lcl_fw_client IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD z2ui5_if_client~_bind_edit.
|
METHOD z2ui5_if_client~_bind_edit.
|
||||||
|
|
||||||
result = mo_handler->_create_binding( value = val
|
result = mo_handler->_create_binding( value = val type = z2ui5_lcl_fw_handler=>cs_bind_type-two_way ).
|
||||||
type = z2ui5_lcl_fw_handler=>cs_bind_type-two_way ).
|
|
||||||
IF path = abap_false.
|
IF path = abap_false.
|
||||||
result = `{` && result && `}`.
|
result = `{` && result && `}`.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
@ -1835,7 +1902,14 @@ CLASS z2ui5_lcl_fw_client IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD z2ui5_if_client~popup_model_update.
|
METHOD z2ui5_if_client~popup_model_update.
|
||||||
|
|
||||||
mo_handler->ms_next-s_set-s_popup-check_update_model = abap_true.
|
mo_handler->ms_next-s_set-s_popup-check_update_model = abap_true.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD z2ui5_if_client~url_param_set.
|
||||||
|
|
||||||
|
mo_handler->ms_next-s_set-search = val.
|
||||||
|
mo_handler->ms_actual-s_config-search = val.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -26,6 +26,17 @@ CLASS z2ui5_cl_xml_view DEFINITION
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(result) TYPE string.
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
METHODS hlp_get_url_param
|
||||||
|
IMPORTING
|
||||||
|
!val TYPE string
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
METHODS hlp_set_url_param
|
||||||
|
IMPORTING
|
||||||
|
!n TYPE clike
|
||||||
|
!v TYPE clike.
|
||||||
|
|
||||||
METHODS hlp_replace_controller_name
|
METHODS hlp_replace_controller_name
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!xml TYPE string
|
!xml TYPE string
|
||||||
|
@ -579,6 +590,7 @@ CLASS z2ui5_cl_xml_view DEFINITION
|
||||||
!title TYPE clike OPTIONAL
|
!title TYPE clike OPTIONAL
|
||||||
!navbuttonpress TYPE clike OPTIONAL
|
!navbuttonpress TYPE clike OPTIONAL
|
||||||
!shownavbutton TYPE clike OPTIONAL
|
!shownavbutton TYPE clike OPTIONAL
|
||||||
|
!showHeader TYPE clike OPTIONAL
|
||||||
!id TYPE clike OPTIONAL
|
!id TYPE clike OPTIONAL
|
||||||
!class TYPE clike OPTIONAL
|
!class TYPE clike OPTIONAL
|
||||||
!ns TYPE clike OPTIONAL
|
!ns TYPE clike OPTIONAL
|
||||||
|
@ -1068,39 +1080,39 @@ CLASS z2ui5_cl_xml_view DEFINITION
|
||||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view .
|
VALUE(result) TYPE REF TO z2ui5_cl_xml_view .
|
||||||
METHODS ui_row_action_item
|
METHODS ui_row_action_item
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!icon TYPE clike OPTIONAL
|
!icon TYPE clike OPTIONAL
|
||||||
!text TYPE clike OPTIONAL
|
!text TYPE clike OPTIONAL
|
||||||
!type TYPE clike OPTIONAL
|
!type TYPE clike OPTIONAL
|
||||||
!press TYPE clike OPTIONAL
|
!press TYPE clike OPTIONAL
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view .
|
VALUE(result) TYPE REF TO z2ui5_cl_xml_view .
|
||||||
METHODS radio_button
|
METHODS radio_button
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!activeHandling TYPE clike OPTIONAL
|
!activeHandling TYPE clike OPTIONAL
|
||||||
!editable TYPE clike OPTIONAL
|
!editable TYPE clike OPTIONAL
|
||||||
!enabled TYPE clike OPTIONAL
|
!enabled TYPE clike OPTIONAL
|
||||||
!groupName TYPE clike OPTIONAL
|
!groupName TYPE clike OPTIONAL
|
||||||
!selected TYPE clike OPTIONAL
|
!selected TYPE clike OPTIONAL
|
||||||
!text TYPE clike OPTIONAL
|
!text TYPE clike OPTIONAL
|
||||||
!textAlign TYPE clike OPTIONAL
|
!textAlign TYPE clike OPTIONAL
|
||||||
!textDirection TYPE clike OPTIONAL
|
!textDirection TYPE clike OPTIONAL
|
||||||
!useEntireWidth TYPE clike OPTIONAL
|
!useEntireWidth TYPE clike OPTIONAL
|
||||||
!valueState TYPE clike OPTIONAL
|
!valueState TYPE clike OPTIONAL
|
||||||
!width TYPE clike OPTIONAL
|
!width TYPE clike OPTIONAL
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view .
|
VALUE(result) TYPE REF TO z2ui5_cl_xml_view .
|
||||||
METHODS radio_button_group
|
METHODS radio_button_group
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!id TYPE clike OPTIONAL
|
!id TYPE clike OPTIONAL
|
||||||
!columns TYPE clike OPTIONAL
|
!columns TYPE clike OPTIONAL
|
||||||
!editable TYPE clike OPTIONAL
|
!editable TYPE clike OPTIONAL
|
||||||
!enabled TYPE clike OPTIONAL
|
!enabled TYPE clike OPTIONAL
|
||||||
!selectedIndex TYPE clike OPTIONAL
|
!selectedIndex TYPE clike OPTIONAL
|
||||||
!textDirection TYPE clike OPTIONAL
|
!textDirection TYPE clike OPTIONAL
|
||||||
!valueState TYPE clike OPTIONAL
|
!valueState TYPE clike OPTIONAL
|
||||||
!width TYPE clike OPTIONAL
|
!width TYPE clike OPTIONAL
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(result) TYPE REF TO z2ui5_cl_xml_view .
|
VALUE(result) TYPE REF TO z2ui5_cl_xml_view .
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
|
|
||||||
DATA mv_name TYPE string.
|
DATA mv_name TYPE string.
|
||||||
|
@ -1119,7 +1131,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS Z2UI5_CL_XML_VIEW IMPLEMENTATION.
|
CLASS z2ui5_cl_xml_view IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD actions.
|
METHOD actions.
|
||||||
|
@ -1745,10 +1757,11 @@ CLASS Z2UI5_CL_XML_VIEW IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD hlp_get_source_code_url.
|
METHOD hlp_get_source_code_url.
|
||||||
|
|
||||||
|
DATA(ls_draft) = mo_root->mi_client->get( )-s_draft.
|
||||||
DATA(ls_config) = mo_root->mi_client->get( )-s_config.
|
DATA(ls_config) = mo_root->mi_client->get( )-s_config.
|
||||||
|
|
||||||
result = ls_config-origin &&
|
result = ls_config-origin &&
|
||||||
`/sap/bc/adt/oo/classes/` && lcl_utility=>get_classname_by_ref( ls_config-app ) &&
|
`/sap/bc/adt/oo/classes/` && lcl_utility=>get_classname_by_ref( ls_draft-app ) &&
|
||||||
`/source/main`.
|
`/source/main`.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -2149,6 +2162,7 @@ CLASS Z2UI5_CL_XML_VIEW IMPLEMENTATION.
|
||||||
t_prop = VALUE #( ( n = `title` v = title )
|
t_prop = VALUE #( ( n = `title` v = title )
|
||||||
( n = `showNavButton` v = lcl_utility=>get_json_boolean( shownavbutton ) )
|
( n = `showNavButton` v = lcl_utility=>get_json_boolean( shownavbutton ) )
|
||||||
( n = `navButtonPress` v = navbuttonpress )
|
( n = `navButtonPress` v = navbuttonpress )
|
||||||
|
( n = `showHeader` v = lcl_utility=>get_json_boolean( showHeader ) )
|
||||||
( n = `class` v = class )
|
( n = `class` v = class )
|
||||||
( n = `id` v = id ) ) ).
|
( n = `id` v = id ) ) ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -2201,33 +2215,33 @@ CLASS Z2UI5_CL_XML_VIEW IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD radio_button.
|
METHOD radio_button.
|
||||||
result = _generic( name = `RadioButton`
|
result = _generic( name = `RadioButton`
|
||||||
t_prop = VALUE #( ( n = `activeHandling` v = lcl_utility=>get_json_boolean( activeHandling ) )
|
t_prop = VALUE #( ( n = `activeHandling` v = lcl_utility=>get_json_boolean( activeHandling ) )
|
||||||
( n = `editable` v = lcl_utility=>get_json_boolean( editable ) )
|
( n = `editable` v = lcl_utility=>get_json_boolean( editable ) )
|
||||||
( n = `enabled` v = lcl_utility=>get_json_boolean( enabled ) )
|
( n = `enabled` v = lcl_utility=>get_json_boolean( enabled ) )
|
||||||
( n = `selected` v = lcl_utility=>get_json_boolean( selected ) )
|
( n = `selected` v = lcl_utility=>get_json_boolean( selected ) )
|
||||||
( n = `useEntireWidth` v = lcl_utility=>get_json_boolean( useEntireWidth ) )
|
( n = `useEntireWidth` v = lcl_utility=>get_json_boolean( useEntireWidth ) )
|
||||||
( n = `text` v = text )
|
( n = `text` v = text )
|
||||||
( n = `textDirection` v = textDirection )
|
( n = `textDirection` v = textDirection )
|
||||||
( n = `textAlign` v = textAlign )
|
( n = `textAlign` v = textAlign )
|
||||||
( n = `groupName` v = groupName )
|
( n = `groupName` v = groupName )
|
||||||
( n = `valueState` v = valueState )
|
( n = `valueState` v = valueState )
|
||||||
( n = `width` v = width )
|
( n = `width` v = width )
|
||||||
) ).
|
) ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD radio_button_group.
|
METHOD radio_button_group.
|
||||||
result = _generic( name = `RadioButtonGroup`
|
result = _generic( name = `RadioButtonGroup`
|
||||||
t_prop = VALUE #( ( n = `id` v = id )
|
t_prop = VALUE #( ( n = `id` v = id )
|
||||||
( n = `columns` v = columns )
|
( n = `columns` v = columns )
|
||||||
( n = `editable` v = lcl_utility=>get_json_boolean( editable ) )
|
( n = `editable` v = lcl_utility=>get_json_boolean( editable ) )
|
||||||
( n = `enabled` v = lcl_utility=>get_json_boolean( enabled ) )
|
( n = `enabled` v = lcl_utility=>get_json_boolean( enabled ) )
|
||||||
( n = `selectedIndex` v = selectedIndex )
|
( n = `selectedIndex` v = selectedIndex )
|
||||||
( n = `textDirection` v = textDirection )
|
( n = `textDirection` v = textDirection )
|
||||||
( n = `valueState` v = valueState )
|
( n = `valueState` v = valueState )
|
||||||
( n = `width` v = width )
|
( n = `width` v = width )
|
||||||
) ).
|
) ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
@ -2745,4 +2759,64 @@ CLASS Z2UI5_CL_XML_VIEW IMPLEMENTATION.
|
||||||
result = result2.
|
result = result2.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD hlp_get_url_param.
|
||||||
|
|
||||||
|
DATA(lt_params) = VALUE z2ui5_if_client=>ty_t_name_value( ).
|
||||||
|
DATA(lv_search) = mi_client->get( )-s_config-search.
|
||||||
|
|
||||||
|
lv_search = lcl_utility=>get_trim_lower( lv_search ).
|
||||||
|
SHIFT lv_search LEFT DELETING LEADING `?`.
|
||||||
|
|
||||||
|
SPLIT lv_search AT `&` INTO TABLE DATA(lt_param).
|
||||||
|
|
||||||
|
LOOP AT lt_param REFERENCE INTO DATA(lr_param).
|
||||||
|
|
||||||
|
SPLIT lr_param->* AT `=` INTO DATA(lv_name) DATA(lv_value).
|
||||||
|
|
||||||
|
INSERT VALUE #( n = lv_name v = lv_value ) INTO TABLE lt_params.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
DATA(lv_val) = lcl_utility=>get_trim_lower( val ).
|
||||||
|
result = VALUE #( lt_params[ n = lv_val ]-v OPTIONAL ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD hlp_set_url_param.
|
||||||
|
|
||||||
|
DATA(lt_params) = VALUE z2ui5_if_client=>ty_t_name_value( ).
|
||||||
|
DATA(lv_search) = mi_client->get( )-s_config-search.
|
||||||
|
|
||||||
|
lv_search = lcl_utility=>get_trim_lower( lv_search ).
|
||||||
|
SHIFT lv_search LEFT DELETING LEADING `?`.
|
||||||
|
|
||||||
|
SPLIT lv_search AT `&` INTO TABLE DATA(lt_param).
|
||||||
|
|
||||||
|
LOOP AT lt_param REFERENCE INTO DATA(lr_param).
|
||||||
|
|
||||||
|
SPLIT lr_param->* AT `=` INTO DATA(lv_name) DATA(lv_value).
|
||||||
|
|
||||||
|
INSERT VALUE #( n = lv_name v = lv_value ) INTO TABLE lt_params.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
DATA(lv_n) = lcl_utility=>get_trim_lower( n ).
|
||||||
|
|
||||||
|
LOOP AT lt_params REFERENCE INTO DATA(lr_params)
|
||||||
|
WHERE n = lv_n.
|
||||||
|
lr_params->v = lcl_utility=>get_trim_lower( v ).
|
||||||
|
ENDLOOP.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
INSERT VALUE #( n = lv_n v = lcl_utility=>get_trim_lower( v ) ) INTO TABLE lt_params.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
DATA(lv_result) = `?` && lt_params[ 1 ]-n && `=` && lt_params[ 1 ]-v.
|
||||||
|
|
||||||
|
LOOP AT lt_params REFERENCE INTO lr_params FROM 2.
|
||||||
|
lv_result = lv_result && `&` && lr_params->n && `=` && lr_params->v.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
mi_client->url_param_set( lv_result ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -20,6 +20,10 @@ CLASS lcl_utility DEFINITION INHERITING FROM cx_no_check.
|
||||||
iv_replace TYPE clike DEFAULT ''
|
iv_replace TYPE clike DEFAULT ''
|
||||||
RETURNING VALUE(result) TYPE string.
|
RETURNING VALUE(result) TYPE string.
|
||||||
|
|
||||||
|
CLASS-METHODS get_trim_lower
|
||||||
|
IMPORTING val TYPE any
|
||||||
|
RETURNING VALUE(result) TYPE string.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -56,4 +60,12 @@ CLASS lcl_utility IMPLEMENTATION.
|
||||||
CATCH cx_root.
|
CATCH cx_root.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD get_trim_lower.
|
||||||
|
|
||||||
|
result = CONV #( val ).
|
||||||
|
result = to_lower( shift_left( shift_right( result ) ) ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -8,18 +8,6 @@ INTERFACE z2ui5_if_client
|
||||||
location_reload TYPE string VALUE `LOCATION_RELOAD`,
|
location_reload TYPE string VALUE `LOCATION_RELOAD`,
|
||||||
END OF cs_event.
|
END OF cs_event.
|
||||||
|
|
||||||
TYPES:
|
|
||||||
BEGIN OF ty_s_config,
|
|
||||||
controller_name TYPE string,
|
|
||||||
version TYPE string,
|
|
||||||
pathname TYPE string,
|
|
||||||
origin TYPE string,
|
|
||||||
search TYPE string,
|
|
||||||
path_info TYPE string,
|
|
||||||
body TYPE string,
|
|
||||||
app TYPE REF TO z2ui5_if_app,
|
|
||||||
END OF ty_S_config.
|
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_s_name_value,
|
BEGIN OF ty_s_name_value,
|
||||||
n TYPE string,
|
n TYPE string,
|
||||||
|
@ -27,23 +15,42 @@ INTERFACE z2ui5_if_client
|
||||||
END OF ty_s_name_value.
|
END OF ty_s_name_value.
|
||||||
TYPES ty_t_name_value TYPE STANDARD TABLE OF ty_s_name_value WITH EMPTY KEY.
|
TYPES ty_t_name_value TYPE STANDARD TABLE OF ty_s_name_value WITH EMPTY KEY.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_s_config,
|
||||||
|
controller_name TYPE string,
|
||||||
|
version TYPE string,
|
||||||
|
origin TYPE string,
|
||||||
|
pathname TYPE string,
|
||||||
|
search TYPE string,
|
||||||
|
body TYPE string,
|
||||||
|
END OF ty_S_config.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_s_draft,
|
||||||
|
id TYPE string,
|
||||||
|
id_prev TYPE string,
|
||||||
|
id_prev_app TYPE string,
|
||||||
|
id_prev_app_stack TYPE string,
|
||||||
|
app TYPE REF TO z2ui5_if_app,
|
||||||
|
END OF ty_S_draft.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_s_cursor,
|
||||||
|
id TYPE string,
|
||||||
|
cursorpos TYPE string,
|
||||||
|
selectionstart TYPE string,
|
||||||
|
selectionend TYPE string,
|
||||||
|
END OF ty_s_cursor.
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_s_get,
|
BEGIN OF ty_s_get,
|
||||||
event TYPE string,
|
event TYPE string,
|
||||||
t_event_arg TYPE string_table,
|
t_event_arg TYPE string_table,
|
||||||
t_scroll_pos TYPE ty_t_name_value,
|
t_scroll_pos TYPE ty_t_name_value,
|
||||||
id TYPE string,
|
|
||||||
id_prev TYPE string,
|
|
||||||
id_prev_app TYPE string,
|
|
||||||
id_prev_app_stack TYPE string,
|
|
||||||
check_launchpad_active TYPE abap_bool,
|
check_launchpad_active TYPE abap_bool,
|
||||||
check_on_navigated TYPE abap_bool,
|
check_on_navigated TYPE abap_bool,
|
||||||
BEGIN OF s_cursor,
|
s_draft TYPE ty_S_draft,
|
||||||
id TYPE string,
|
s_cursor TYPE ty_S_cursor,
|
||||||
cursorpos TYPE string,
|
|
||||||
selectionstart TYPE string,
|
|
||||||
selectionend TYPE string,
|
|
||||||
END OF s_cursor,
|
|
||||||
s_config TYPE ty_S_config,
|
s_config TYPE ty_S_config,
|
||||||
END OF ty_s_get.
|
END OF ty_s_get.
|
||||||
|
|
||||||
|
@ -117,6 +124,10 @@ INTERFACE z2ui5_if_client
|
||||||
text TYPE clike
|
text TYPE clike
|
||||||
type TYPE clike DEFAULT 'information'.
|
type TYPE clike DEFAULT 'information'.
|
||||||
|
|
||||||
|
METHODS url_param_set
|
||||||
|
IMPORTING
|
||||||
|
val type clike.
|
||||||
|
|
||||||
METHODS timer_set
|
METHODS timer_set
|
||||||
IMPORTING
|
IMPORTING
|
||||||
interval_ms TYPE clike
|
interval_ms TYPE clike
|
||||||
|
|
Loading…
Reference in New Issue
Block a user