mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 23:06:30 +08:00
Dev (#399)
* update launchpad active * open new tab * update * update * Update faq.md
This commit is contained in:
parent
6c3b36dd93
commit
408ebac46a
|
@ -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.
|
||||
|
|
|
@ -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| &&
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue
Block a user