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( )
|
||||
WHEN 'GET' THEN z2ui5_cl_http_handler=>http_get( )
|
||||
WHEN 'POST' THEN z2ui5_cl_http_handler=>http_post(
|
||||
body = server->request->get_cdata( )
|
||||
path_info = lt_header[ name = `~path_info` ]-value ) ).
|
||||
WHEN 'POST' THEN z2ui5_cl_http_handler=>http_post( server->request->get_cdata( ) ).
|
||||
|
||||
server->response->set_header_field( name = `cache-control` value = `no-cache` ).
|
||||
server->response->set_cdata( lv_resp ).
|
||||
|
@ -70,21 +65,16 @@ ENDMETHOD.
|
|||
```abap
|
||||
METHOD if_http_service_extension~handle_request.
|
||||
|
||||
DATA(lt_header) = request->get_header_fields( ).
|
||||
|
||||
DATA(lv_resp) = SWITCH #( request->get_method( )
|
||||
WHEN 'GET' THEN z2ui5_cl_http_handler=>http_get( )
|
||||
WHEN 'POST' THEN z2ui5_cl_http_handler=>http_post(
|
||||
body = request->get_text( )
|
||||
path_info = lt_header[ name = `~path_info` ]-value ) ).
|
||||
WHEN 'POST' THEN z2ui5_cl_http_handler=>http_post( request->get_text( ) ).
|
||||
|
||||
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.
|
||||
```
|
||||
#### FAQ
|
||||
* 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/)
|
||||
* 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
|
||||
IMPORTING
|
||||
body TYPE string
|
||||
path_info TYPE string OPTIONAL
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
|
@ -27,7 +26,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
|
||||
CLASS z2ui5_cl_http_handler IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD http_get.
|
||||
|
@ -52,6 +51,7 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
|
|||
ENDIF.
|
||||
z2ui5_lcl_fw_db=>cleanup( ).
|
||||
|
||||
|
||||
r_result = `<html>` && |\n| &&
|
||||
`<head>` && |\n| &&
|
||||
lv_sec_policy && |\n| &&
|
||||
|
@ -75,7 +75,7 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
|
|||
`<body class="sapUiBody sapUiSizeCompact" >` && |\n| &&
|
||||
` <div id="content" data-handle-validation="true" ></div>` && |\n| &&
|
||||
`</body>` && |\n| &&
|
||||
`</html>` && |\n|.
|
||||
`</html><abc/>` && |\n|.
|
||||
r_result = r_result && `<script>` && |\n| &&
|
||||
` sap.ui.getCore().attachInit(function () {` && |\n| &&
|
||||
` "use strict";` && |\n| &&
|
||||
|
@ -93,7 +93,8 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
|
|||
` 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| &&
|
||||
` }` && |\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| &&
|
||||
` }` && |\n| &&
|
||||
` if (sap.z2ui5.oResponse.PARAMS.S_CURSOR.ID !== '') {` && |\n| &&
|
||||
|
@ -202,7 +203,7 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
|
|||
` }` && |\n| &&
|
||||
` sap.z2ui5.oView.destroy();` && |\n| &&
|
||||
` },` && |\n| &&
|
||||
` onEventFrontend: oEvent => {` && |\n| &&
|
||||
` onEventFrontend: function( oEvent ) {` && |\n| &&
|
||||
|\n| &&
|
||||
` switch (oEvent.EVENT) {` && |\n| &&
|
||||
` case 'LOCATION_RELOAD':` && |\n| &&
|
||||
|
@ -257,7 +258,7 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
|
|||
` });` && |\n| &&
|
||||
` }` && |\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| &&
|
||||
` try { sap.z2ui5.oBody.OCURSOR = sap.ui.getCore().byId(sap.ui.getCore().getCurrentFocusedControlId()).getFocusInfo(); } catch (e) { }` && |\n| &&
|
||||
|\n| &&
|
||||
|
@ -351,13 +352,14 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
|
|||
` if (!sap.z2ui5) {` && |\n| &&
|
||||
` sap.z2ui5 = {};` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` if (!sap.z2ui5.pathname) {` && |\n| &&
|
||||
` // if (!sap.z2ui5.pathname) {` && |\n| &&
|
||||
` sap.z2ui5.pathname = window.location.pathname;` && |\n| &&
|
||||
` debugger;` && |\n| &&
|
||||
` // sap.z2ui5.pathname = "/sap/bc/http/sap/y2ui5_http_handler/";` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` if (!sap.z2ui5.checkLaunchpadActive) {` && |\n| &&
|
||||
` sap.z2ui5.checkLaunchpadActive = false;` && |\n| &&
|
||||
` }` && |\n| &&
|
||||
` // }` && |\n| &&
|
||||
` // if (!sap.z2ui5.checkLaunchpadActive) {` && |\n| &&
|
||||
` // sap.z2ui5.checkLaunchpadActive = false;` && |\n| &&
|
||||
` // }` && |\n| &&
|
||||
|\n| &&
|
||||
` sap.z2ui5.checkNestAfter = false;` && |\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 oView = sap.ui.xmlview({ viewContent: xml });` && |\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.oController.Roundtrip();` && |\n| &&
|
||||
` });` && |\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.
|
||||
|
||||
|
||||
METHOD http_post.
|
||||
|
||||
z2ui5_lcl_fw_handler=>ss_config = VALUE #(
|
||||
controller_name = `z2ui5_controller`
|
||||
path_info = path_info
|
||||
body = body ).
|
||||
|
||||
DATA(lo_handler) = z2ui5_lcl_fw_handler=>request_begin( ).
|
||||
DATA(lo_handler) = z2ui5_lcl_fw_handler=>request_begin( body ).
|
||||
|
||||
DO.
|
||||
TRY.
|
||||
|
@ -408,7 +406,7 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
|
|||
result = lo_handler->request_end( ).
|
||||
|
||||
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.
|
||||
ENDTRY.
|
||||
|
||||
|
|
|
@ -29,6 +29,10 @@ CLASS z2ui5_lcl_utility DEFINITION INHERITING FROM cx_no_check.
|
|||
|
||||
METHODS get_text REDEFINITION.
|
||||
|
||||
CLASS-METHODS get_classname_by_ref
|
||||
IMPORTING in TYPE REF TO object
|
||||
RETURNING VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS raise
|
||||
IMPORTING
|
||||
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
|
||||
RETURNING VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_timestampl
|
||||
RETURNING VALUE(result) TYPE timestampl.
|
||||
|
||||
CLASS-METHODS trans_any_2_json
|
||||
IMPORTING any TYPE any
|
||||
RETURNING VALUE(result) TYPE string.
|
||||
|
@ -104,11 +105,241 @@ CLASS z2ui5_lcl_utility DEFINITION INHERITING FROM cx_no_check.
|
|||
EXPORTING
|
||||
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.
|
||||
CLASS-DATA mv_counter TYPE i.
|
||||
|
||||
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.
|
||||
|
||||
|
@ -165,6 +396,7 @@ CLASS z2ui5_lcl_utility IMPLEMENTATION.
|
|||
GET TIME STAMP FIELD result.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_user_tech.
|
||||
result = sy-uname.
|
||||
ENDMETHOD.
|
||||
|
@ -333,6 +565,11 @@ CLASS z2ui5_lcl_utility IMPLEMENTATION.
|
|||
|
||||
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.
|
||||
|
||||
FIELD-SYMBOLS <object> TYPE any.
|
||||
|
@ -421,77 +658,42 @@ CLASS z2ui5_lcl_utility IMPLEMENTATION.
|
|||
ENDIF.
|
||||
RAISE EXCEPTION TYPE z2ui5_lcl_utility EXPORTING val = v.
|
||||
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.
|
||||
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.
|
||||
REPLACE `%3D` IN lv_search WITH `=`.
|
||||
SPLIT lv_search AT `&sap-startup-params=` INTO DATA(lv_search1) DATA(lv_search2).
|
||||
IF lv_search2 IS NOT INITIAL.
|
||||
lv_search = lv_search2.
|
||||
ELSE.
|
||||
lv_search = lv_search1.
|
||||
ENDIF.
|
||||
|
||||
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.
|
||||
lv_search = get_trim_upper( lv_search ).
|
||||
SHIFT lv_search LEFT DELETING LEADING `?`.
|
||||
|
||||
CLASS-METHODS factory
|
||||
IMPORTING iv_json TYPE clike OPTIONAL
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
|
||||
SPLIT lv_search AT `&` INTO TABLE DATA(lt_param).
|
||||
|
||||
METHODS constructor.
|
||||
LOOP AT lt_param REFERENCE INTO DATA(lr_param).
|
||||
|
||||
METHODS get_root
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
|
||||
SPLIT lr_param->* AT `=` INTO DATA(lv_name) DATA(lv_value).
|
||||
|
||||
METHODS get_attribute
|
||||
IMPORTING name TYPE string
|
||||
RETURNING VALUE(result) TYPE REF TO z2ui5_lcl_utility_tree_json.
|
||||
INSERT VALUE #( n = lv_name v = lv_value ) INTO TABLE lt_params.
|
||||
ENDLOOP.
|
||||
|
||||
METHODS get_val
|
||||
RETURNING VALUE(result) TYPE string.
|
||||
DATA(lv_val) = get_trim_upper( val ).
|
||||
r_result = VALUE #( lt_params[ n = lv_val ]-v OPTIONAL ).
|
||||
|
||||
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.
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS z2ui5_lcl_utility_tree_json IMPLEMENTATION.
|
||||
|
||||
METHOD add_attribute.
|
||||
|
@ -634,157 +836,6 @@ CLASS z2ui5_lcl_utility_tree_json IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
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.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
@ -927,6 +978,7 @@ CLASS z2ui5_lcl_fw_app IMPLEMENTATION.
|
|||
DATA li_app TYPE REF TO z2ui5_if_app.
|
||||
TRY.
|
||||
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.
|
||||
client->nav_app_call( li_app ).
|
||||
CATCH cx_root.
|
||||
|
@ -956,9 +1008,12 @@ CLASS z2ui5_lcl_fw_app IMPLEMENTATION.
|
|||
DATA(ls_get) = client->get( ).
|
||||
DATA(lv_url_app) = ls_get-s_config-origin && ls_get-s_config-pathname.
|
||||
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 ` `.
|
||||
|
||||
* 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| &&
|
||||
` xmlns="sap.m" ` && |\n| &&
|
||||
` xmlns:z2ui5="z2ui5" ` && |\n| &&
|
||||
|
@ -1007,14 +1062,24 @@ CLASS z2ui5_lcl_fw_app IMPLEMENTATION.
|
|||
TRY.
|
||||
|
||||
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 ``.
|
||||
SPLIT lv_url AT '?' INTO lv_url DATA(lv_params).
|
||||
SHIFT lv_url RIGHT DELETING TRAILING `/`.
|
||||
DATA(lv_link) = lv_url && `/` && to_lower( ms_home-classname ).
|
||||
IF lv_params IS NOT INITIAL.
|
||||
lv_link = lv_link && `?` && lv_params.
|
||||
|
||||
DATA(lv_search) = client->get( )-s_config-search.
|
||||
SPLIT lv_search AT `&` INTO TABLE DATA(lt_param).
|
||||
LOOP AT lt_param INTO DATA(ls_param).
|
||||
TRY.
|
||||
IF ls_param(9) = `app_start`.
|
||||
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.
|
||||
|
||||
DATA(lv_link) = lv_url && `app_start=` && to_lower( ms_home-classname ).
|
||||
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
@ -1233,17 +1298,16 @@ CLASS z2ui5_lcl_fw_db IMPLEMENTATION.
|
|||
|
||||
METHOD cleanup.
|
||||
|
||||
DATA lv_ts_now TYPE timestampl.
|
||||
|
||||
GET TIME STAMP FIELD lv_ts_now.
|
||||
|
||||
DATA(lv_ts_four_hours_ago) = cl_abap_tstmp=>subtractsecs( tstmp = lv_ts_now
|
||||
data(lv_timestampl) = z2ui5_lcl_utility=>get_timestampl( ).
|
||||
DATA(lv_ts_four_hours_ago) = cl_abap_tstmp=>subtractsecs( tstmp = lv_timestampl
|
||||
secs = 60 * 60 * 4 ).
|
||||
|
||||
DELETE FROM z2ui5_t_draft WHERE timestampl < @lv_ts_four_hours_ago.
|
||||
COMMIT WORK.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -1265,7 +1329,10 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
|
|||
|
||||
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.
|
||||
DATA(lv_id_prev) = so_body->get_attribute( `ID` )->get_val( ).
|
||||
|
@ -1274,13 +1341,6 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
|
|||
CATCH cx_root.
|
||||
result = set_app_start( ).
|
||||
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.
|
||||
|
||||
TRY.
|
||||
|
@ -1309,6 +1369,7 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
|
|||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
|
||||
TRY.
|
||||
DATA(lo_location) = so_body->get_attribute( `OLOCATION` ).
|
||||
ss_config-origin = lo_location->get_attribute( `ORIGIN` )->get_val( ).
|
||||
|
@ -1319,6 +1380,16 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
|
|||
CATCH cx_root.
|
||||
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.
|
||||
|
||||
|
@ -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 = `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( ).
|
||||
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.
|
||||
|
||||
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.
|
||||
result = result->set_app_system( ).
|
||||
result = set_app_system( ).
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
TRY.
|
||||
TRY.
|
||||
result = NEW #( ).
|
||||
result->ms_db-id = z2ui5_lcl_utility=>get_uuid( ).
|
||||
|
||||
CREATE OBJECT result->ms_db-o_app TYPE (lv_classname).
|
||||
CATCH cx_root.
|
||||
SPLIT lv_classname AT `/` INTO lv_classname lv_dummy.
|
||||
CREATE OBJECT result->ms_db-o_app TYPE (lv_classname).
|
||||
ENDTRY.
|
||||
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_actual-check_on_navigated = abap_true.
|
||||
RETURN.
|
||||
|
||||
CATCH cx_root.
|
||||
result = result->set_app_system( error_text = `App with name ` && lv_classname && ` not found...` ).
|
||||
RETURN.
|
||||
result = set_app_system( error_text = `App with name ` && lv_classname && ` not found...` ).
|
||||
ENDTRY.
|
||||
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set_app_leave.
|
||||
|
@ -1608,9 +1674,9 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
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.
|
||||
|
||||
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_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_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
|
||||
t_event_arg = mo_handler->ms_actual-t_event_arg
|
||||
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
|
||||
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.
|
||||
|
||||
METHOD z2ui5_if_client~nav_app_call.
|
||||
|
@ -1731,6 +1797,7 @@ CLASS z2ui5_lcl_fw_client IMPLEMENTATION.
|
|||
METHOD z2ui5_if_client~_bind.
|
||||
|
||||
result = mo_handler->_create_binding( value = val type = z2ui5_lcl_fw_handler=>cs_bind_type-one_way ).
|
||||
|
||||
IF path = abap_false.
|
||||
result = `{` && result && `}`.
|
||||
ENDIF.
|
||||
|
@ -1739,8 +1806,8 @@ CLASS z2ui5_lcl_fw_client IMPLEMENTATION.
|
|||
|
||||
METHOD z2ui5_if_client~_bind_edit.
|
||||
|
||||
result = mo_handler->_create_binding( value = val
|
||||
type = z2ui5_lcl_fw_handler=>cs_bind_type-two_way ).
|
||||
result = mo_handler->_create_binding( value = val type = z2ui5_lcl_fw_handler=>cs_bind_type-two_way ).
|
||||
|
||||
IF path = abap_false.
|
||||
result = `{` && result && `}`.
|
||||
ENDIF.
|
||||
|
@ -1839,4 +1906,11 @@ CLASS z2ui5_lcl_fw_client IMPLEMENTATION.
|
|||
|
||||
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.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -26,6 +26,17 @@ CLASS z2ui5_cl_xml_view DEFINITION
|
|||
RETURNING
|
||||
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
|
||||
IMPORTING
|
||||
!xml TYPE string
|
||||
|
@ -579,6 +590,7 @@ CLASS z2ui5_cl_xml_view DEFINITION
|
|||
!title TYPE clike OPTIONAL
|
||||
!navbuttonpress TYPE clike OPTIONAL
|
||||
!shownavbutton TYPE clike OPTIONAL
|
||||
!showHeader TYPE clike OPTIONAL
|
||||
!id TYPE clike OPTIONAL
|
||||
!class TYPE clike OPTIONAL
|
||||
!ns TYPE clike OPTIONAL
|
||||
|
@ -1119,7 +1131,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_XML_VIEW IMPLEMENTATION.
|
||||
CLASS z2ui5_cl_xml_view IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD actions.
|
||||
|
@ -1745,10 +1757,11 @@ CLASS Z2UI5_CL_XML_VIEW IMPLEMENTATION.
|
|||
|
||||
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.
|
||||
|
||||
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`.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -2149,6 +2162,7 @@ CLASS Z2UI5_CL_XML_VIEW IMPLEMENTATION.
|
|||
t_prop = VALUE #( ( n = `title` v = title )
|
||||
( n = `showNavButton` v = lcl_utility=>get_json_boolean( shownavbutton ) )
|
||||
( n = `navButtonPress` v = navbuttonpress )
|
||||
( n = `showHeader` v = lcl_utility=>get_json_boolean( showHeader ) )
|
||||
( n = `class` v = class )
|
||||
( n = `id` v = id ) ) ).
|
||||
ENDMETHOD.
|
||||
|
@ -2745,4 +2759,64 @@ CLASS Z2UI5_CL_XML_VIEW IMPLEMENTATION.
|
|||
result = result2.
|
||||
|
||||
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.
|
||||
|
|
|
@ -20,6 +20,10 @@ CLASS lcl_utility DEFINITION INHERITING FROM cx_no_check.
|
|||
iv_replace TYPE clike DEFAULT ''
|
||||
RETURNING VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_trim_lower
|
||||
IMPORTING val TYPE any
|
||||
RETURNING VALUE(result) TYPE string.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -56,4 +60,12 @@ CLASS lcl_utility IMPLEMENTATION.
|
|||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_trim_lower.
|
||||
|
||||
result = CONV #( val ).
|
||||
result = to_lower( shift_left( shift_right( result ) ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -8,18 +8,6 @@ INTERFACE z2ui5_if_client
|
|||
location_reload TYPE string VALUE `LOCATION_RELOAD`,
|
||||
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:
|
||||
BEGIN OF ty_s_name_value,
|
||||
n TYPE string,
|
||||
|
@ -28,22 +16,41 @@ INTERFACE z2ui5_if_client
|
|||
TYPES ty_t_name_value TYPE STANDARD TABLE OF ty_s_name_value WITH EMPTY KEY.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_get,
|
||||
event TYPE string,
|
||||
t_event_arg TYPE string_table,
|
||||
t_scroll_pos TYPE ty_t_name_value,
|
||||
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,
|
||||
check_launchpad_active TYPE abap_bool,
|
||||
check_on_navigated TYPE abap_bool,
|
||||
BEGIN OF s_cursor,
|
||||
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 s_cursor,
|
||||
END OF ty_s_cursor.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_get,
|
||||
event TYPE string,
|
||||
t_event_arg TYPE string_table,
|
||||
t_scroll_pos TYPE ty_t_name_value,
|
||||
check_launchpad_active TYPE abap_bool,
|
||||
check_on_navigated TYPE abap_bool,
|
||||
s_draft TYPE ty_S_draft,
|
||||
s_cursor TYPE ty_S_cursor,
|
||||
s_config TYPE ty_S_config,
|
||||
END OF ty_s_get.
|
||||
|
||||
|
@ -117,6 +124,10 @@ INTERFACE z2ui5_if_client
|
|||
text TYPE clike
|
||||
type TYPE clike DEFAULT 'information'.
|
||||
|
||||
METHODS url_param_set
|
||||
IMPORTING
|
||||
val type clike.
|
||||
|
||||
METHODS timer_set
|
||||
IMPORTING
|
||||
interval_ms TYPE clike
|
||||
|
|
Loading…
Reference in New Issue
Block a user