* update launchpad active

* open new tab

* update

* update

* Update faq.md
This commit is contained in:
oblomov 2023-07-20 16:16:54 +02:00 committed by GitHub
parent 6c3b36dd93
commit 408ebac46a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 48 additions and 32 deletions

View File

@ -16,6 +16,15 @@ Take a look to the following example: <br>
https://github.com/abap2UI5/demo-demos/blob/main/src/z2ui5_cl_app_demo_67.clas.abap
<img width="500" alt="image" src="https://github.com/abap2UI5/abap2UI5/assets/102328295/fef6e08c-5a34-4aee-9d34-ebb1c5d45275">
#### **4. How to call an url in a new tab?**
Use the following snippet:
```abap
client->timer_set(
interval_ms = 0
event_finished = client->_event_client( action = client->cs_event-open_new_tab t_arg = value #( ( `https://www.github.com/abap2UI5` ) )
) ).
```
## Productive Usage
#### **1. Can abap2UI5 used in a productive system?**
Yes, the project is technically just an implementation of an HTTP handler and can be used like any other HTTP Service in a productive scenario.

View File

@ -160,7 +160,9 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
` sap.z2ui5.checkTimerActive = true;` && |\n| &&
` setTimeout(() => {` && |\n| &&
` if (sap.z2ui5.checkTimerActive) {` && |\n| &&
` sap.z2ui5.oController.onEvent(oEvent);` && |\n| &&
` let method = sap.z2ui5.oResponse.PARAMS.S_TIMER.EVENT_FINISHED.split( '(' )[ 0 ];` && |\n| &&
` let oEvent = JSON.parse( sap.z2ui5.oResponse.PARAMS.S_TIMER.EVENT_FINISHED.split( '(' )[ 1 ].split( ')' )[ 0 ].replaceAll( "'" , '"' ) );` && |\n| &&
` if (method == 'onEvent'){ sap.z2ui5.oController.onEvent(oEvent); }else{ sap.z2ui5.oController.onEventFrontend(oEvent); }` && |\n| &&
` }` && |\n| &&
` }, parseInt(sap.z2ui5.oResponse.PARAMS.S_TIMER.INTERVAL_MS), oEvent);` && |\n| &&
` }` && |\n| &&
@ -200,7 +202,10 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
|\n| &&
` switch (oEvent.EVENT) {` && |\n| &&
` case 'LOCATION_RELOAD':` && |\n| &&
` window.location = arguments[1];` && |\n| &&
` window.location = oEvent.T_ARG[0];` && |\n| &&
` break;` && |\n| &&
` case 'OPEN_NEW_TAB':` && |\n| &&
` window.open( oEvent.T_ARG[0] , '_blank' );` && |\n| &&
` break;` && |\n| &&
` case 'POPUP_CLOSE':` && |\n| &&
` sap.z2ui5.oController.PopupDestroy();` && |\n| &&
@ -253,7 +258,6 @@ 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.ARGUMENTS = arguments;` && |\n| &&
` try { sap.z2ui5.oBody.OCURSOR = sap.ui.getCore().byId(sap.ui.getCore().getCurrentFocusedControlId()).getFocusInfo(); } catch (e) { }` && |\n| &&
|\n| &&
@ -370,7 +374,6 @@ CLASS Z2UI5_CL_HTTP_HANDLER IMPLEMENTATION.
` if (!sap.z2ui5) {` && |\n| &&
` sap.z2ui5 = {};` && |\n| &&
` }` && |\n| &&
` sap.z2ui5.CHECKLAUNCHPADACTIVE = false;` && |\n| &&
` if (!sap.z2ui5.pathname) {` && |\n| &&
` sap.z2ui5.pathname = window.location.pathname;` && |\n| &&
` }` && |\n| &&

View File

@ -238,8 +238,9 @@ CLASS z2ui5_lcl_fw_handler DEFINITION.
selectionend TYPE string,
END OF s_cursor,
BEGIN OF s_timer,
interval_ms TYPE string,
event_finished TYPE string,
interval_ms TYPE i,
event_finished TYPE string,
action_finished TYPE string,
END OF s_timer,
BEGIN OF s_msg_box,
type TYPE string,
@ -1007,16 +1008,16 @@ CLASS z2ui5_lcl_fw_app IMPLEMENTATION.
ms_error-x_error->get_source_position( IMPORTING program_name = DATA(lv_prog) ).
DATA(lv_txt) = ms_error-x_error->get_text( ).
DATA(lv_txt) = ms_error-x_error->get_text( ).
DATA(lv_classname) = segment( val = lv_prog index = 1 sep = `=` ).
DATA(lv_link2) = client->get( )-s_config-origin && `/sap/bc/adt/oo/classes/` && lv_classname && `/source/main`.
DATA(lv_source) = `<p><a href="` && lv_link2 && `" style="color:blue; font-weight:600;">Source Code</a></p>`.
DATA(lv_descr) = escape( val = lv_txt && lv_source format = cl_abap_format=>e_xml_attr ).
DATA(lv_link2) = client->get( )-s_config-origin && `/sap/bc/adt/oo/classes/` && lv_classname && `/source/main`.
DATA(lv_source) = `<p><a href="` && lv_link2 && `" style="color:blue; font-weight:600;">Source Code</a></p>`.
DATA(lv_descr) = escape( val = lv_txt && lv_source format = cl_abap_format=>e_xml_attr ).
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.
DATA(ls_get) = client->get( ).
DATA(lv_url) = ls_get-s_config-origin && ls_get-s_config-pathname.
SHIFT lv_url LEFT DELETING LEADING ` `.
DATA(lv_url_app) = lv_url && `?app_start=` && lv_classname.
DATA(lv_xml) = `<mvc:View ` && |\n| &&
` xmlns="sap.m" ` && |\n| &&
@ -1555,13 +1556,6 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
lv_classname = z2ui5_lcl_utility=>get_param( `app_start` ).
ENDIF.
IF lv_classname IS INITIAL.
TRY.
lv_classname = to_upper( so_body->get_attribute( 'APP_START' )->get_val( ) ).
CATCH cx_root.
ENDTRY.
ENDIF.
IF lv_classname IS INITIAL.
result = set_app_system( ).
RETURN.
@ -1828,13 +1822,22 @@ CLASS z2ui5_lcl_fw_client IMPLEMENTATION.
METHOD z2ui5_if_client~_event_client.
result = `onEventFrontend( { 'EVENT' : '` && action && `' }`.
result = `onEventFrontend( { 'EVENT' : '` && action && `'`.
LOOP AT t_arg REFERENCE INTO DATA(lr_arg).
result = result && `, '` && lr_arg->* && `'`.
ENDLOOP.
IF t_arg IS NOT INITIAL.
result = result && `, 'T_ARG' : [`.
result = result && ` )`.
LOOP AT t_arg REFERENCE INTO DATA(lr_arg).
IF sy-tabix <> 1.
result = result && `,`.
ENDIF.
result = result && `'` && lr_arg->* && `'`.
ENDLOOP.
result = result && `]`.
ENDIF.
result = result && `})`.
ENDMETHOD.
@ -1843,10 +1846,10 @@ CLASS z2ui5_lcl_fw_client IMPLEMENTATION.
result = `onEvent( { 'EVENT' : '` && val && `', 'METHOD' : 'UPDATE' , 'CHECK_VIEW_DESTROY' : ` && z2ui5_lcl_utility=>get_json_boolean( check_view_destroy ) && ` }`.
LOOP AT t_arg REFERENCE INTO DATA(lr_arg).
result = result && `,` && lr_arg->*.
result = result && `, '` && lr_arg->* && `'`.
ENDLOOP.
result = result && `)`.
result = result && ` )`.
ENDMETHOD.
@ -1895,8 +1898,8 @@ CLASS z2ui5_lcl_fw_client IMPLEMENTATION.
METHOD z2ui5_if_client~timer_set.
mo_handler->ms_next-s_set-s_timer-interval_ms = interval_ms.
mo_handler->ms_next-s_set-s_timer-event_finished = event_finished.
mo_handler->ms_next-s_set-s_timer-interval_ms = interval_ms.
mo_handler->ms_next-s_set-s_timer-event_finished = event_finished.
ENDMETHOD.

View File

@ -4,6 +4,7 @@ INTERFACE z2ui5_if_client
CONSTANTS:
BEGIN OF cs_event,
popup_close TYPE string VALUE `POPUP_CLOSE`,
open_new_tab TYPE string VALUE `OPEN_NEW_TAB`,
popover_close TYPE string VALUE `POPOVER_CLOSE`,
location_reload TYPE string VALUE `LOCATION_RELOAD`,
END OF cs_event.
@ -126,12 +127,12 @@ INTERFACE z2ui5_if_client
METHODS url_param_set
IMPORTING
val type clike.
val TYPE clike.
METHODS timer_set
IMPORTING
interval_ms TYPE clike
event_finished TYPE clike.
interval_ms TYPE i
event_finished TYPE clike.
METHODS message_toast_display
IMPORTING