mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-30 07:39:24 +08:00
Popup json download (#828)
* popup json download * lint fixes * update * update startup app * lint fixes
This commit is contained in:
parent
63ff4eed6d
commit
4443999ff1
File diff suppressed because it is too large
Load Diff
|
@ -192,7 +192,7 @@ CLASS z2ui5_cl_fw_binding IMPLEMENTATION.
|
|||
DATA(lv_id) = z2ui5_cl_util_func=>uuid_get_c22( ).
|
||||
|
||||
INSERT VALUE #( name = lv_id
|
||||
data_stringify = z2ui5_cl_util_func=>trans_json_by_any( any = mr_data compress = me->mv_compress )
|
||||
data_stringify = z2ui5_cl_util_func=>trans_json_by_any( any = mr_data compress_mode = me->mv_compress )
|
||||
bind_type = cs_bind_type-one_time )
|
||||
INTO TABLE mt_attri.
|
||||
result = |/{ lv_id }|.
|
||||
|
|
|
@ -314,7 +314,7 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
|||
|
||||
IF struc IS NOT INITIAL.
|
||||
|
||||
DATA(lv_name_struc) = z2ui5_if_client~_bind_edit( val = struc path = abap_true pretty_name = pretty_name ).
|
||||
DATA(lv_name_struc) = z2ui5_if_client~_bind_edit( val = struc path = abap_true pretty_mode = pretty_mode ).
|
||||
result = bind_struc_comp(
|
||||
iv_name = lv_name_struc
|
||||
i_struc = struc
|
||||
|
@ -330,8 +330,8 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
|||
check_attri = mo_handler->ms_db-check_attri
|
||||
type = z2ui5_cl_fw_binding=>cs_bind_type-one_way
|
||||
data = val
|
||||
pretty_name = pretty_name
|
||||
compress = compress
|
||||
pretty_name = pretty_mode
|
||||
compress = compress_mode
|
||||
).
|
||||
|
||||
result = lo_binder->main( ).
|
||||
|
@ -370,7 +370,7 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
|||
|
||||
IF tab IS NOT INITIAL.
|
||||
|
||||
DATA(lv_name) = z2ui5_if_client~_bind_edit( val = tab path = abap_true pretty_name = pretty_name ).
|
||||
DATA(lv_name) = z2ui5_if_client~_bind_edit( val = tab path = abap_true pretty_mode = pretty_mode ).
|
||||
result = bind_tab_cell(
|
||||
iv_name = lv_name
|
||||
i_tab_index = tab_index
|
||||
|
@ -383,7 +383,7 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
|||
|
||||
IF struc IS NOT INITIAL.
|
||||
|
||||
DATA(lv_name_struc) = z2ui5_if_client~_bind_edit( val = struc path = abap_true pretty_name = pretty_name ).
|
||||
DATA(lv_name_struc) = z2ui5_if_client~_bind_edit( val = struc path = abap_true pretty_mode = pretty_mode ).
|
||||
result = bind_struc_comp(
|
||||
iv_name = lv_name_struc
|
||||
i_struc = struc
|
||||
|
@ -400,8 +400,8 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
|||
type = z2ui5_cl_fw_binding=>cs_bind_type-two_way
|
||||
data = val
|
||||
view = view
|
||||
pretty_name = pretty_name
|
||||
compress = compress
|
||||
pretty_name = pretty_mode
|
||||
compress = compress_mode
|
||||
).
|
||||
|
||||
result = lo_binder->main( ).
|
||||
|
@ -423,8 +423,8 @@ CLASS z2ui5_cl_fw_client IMPLEMENTATION.
|
|||
check_attri = mo_handler->ms_db-check_attri
|
||||
type = z2ui5_cl_fw_binding=>cs_bind_type-one_time
|
||||
data = val
|
||||
pretty_name = pretty_name
|
||||
compress = compress
|
||||
pretty_name = pretty_mode
|
||||
compress = compress_mode
|
||||
).
|
||||
|
||||
result = lo_binder->main( ).
|
||||
|
|
|
@ -189,7 +189,9 @@ CLASS z2ui5_cl_fw_db IMPLEMENTATION.
|
|||
IF sy-subrc <> 0.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
lr_attri->data_rtti = z2ui5_cl_util_func=>trans_srtti_xml_by_data( <deref_attri> ).
|
||||
* IF <deref_attri> IS NOT INITIAL.
|
||||
lr_attri->data_rtti = z2ui5_cl_util_func=>trans_srtti_xml_by_data( <deref_attri> ).
|
||||
* ENDIF.
|
||||
CLEAR <deref_attri>.
|
||||
CLEAR <attri>.
|
||||
ENDLOOP.
|
||||
|
@ -203,7 +205,7 @@ CLASS z2ui5_cl_fw_db IMPLEMENTATION.
|
|||
|
||||
RAISE EXCEPTION TYPE z2ui5_cx_util_error
|
||||
EXPORTING
|
||||
* val = x->get_text( ) && `<p>` && x->previous->get_text( ) && `<p>` && x2->get_text( ) && `<p> Please check if all generic data references are public attribtues of your class`.
|
||||
* val = x->get_text( ) && `<p>` && x->previous->get_text( ) && `<p>` && x2->get_text( ) && `<p> Please check if all generic data references are public attribtues of your class`.
|
||||
val = `<p>` && x->previous->get_text( ) && `<p>` && x2->get_text( ) && `<p> Please check if all generic data references are public attributes of your class`.
|
||||
|
||||
ENDTRY.
|
||||
|
|
|
@ -143,7 +143,7 @@ CLASS z2ui5_cl_fw_model IMPLEMENTATION.
|
|||
|
||||
WHEN `h`.
|
||||
lo_actual->add_attribute( n = lr_attri->name_front
|
||||
v = z2ui5_cl_util_func=>trans_json_by_any( any = <attribute> pretty_name = lr_attri->pretty_name compress = lr_attri->compress )
|
||||
v = z2ui5_cl_util_func=>trans_json_by_any( any = <attribute> pretty_mode = lr_attri->pretty_name compress_mode = lr_attri->compress )
|
||||
apos_active = abap_false ).
|
||||
|
||||
WHEN OTHERS.
|
||||
|
@ -157,7 +157,7 @@ CLASS z2ui5_cl_fw_model IMPLEMENTATION.
|
|||
ELSE.
|
||||
|
||||
lo_actual->add_attribute( n = lr_attri->name_front
|
||||
v = z2ui5_cl_util_func=>trans_json_by_any( any = <attribute> pretty_name = lr_attri->pretty_name compress = lr_attri->compress )
|
||||
v = z2ui5_cl_util_func=>trans_json_by_any( any = <attribute> pretty_mode = lr_attri->pretty_name compress_mode = lr_attri->compress )
|
||||
apos_active = abap_false ).
|
||||
|
||||
ENDIF.
|
||||
|
|
|
@ -45,55 +45,77 @@ CLASS z2ui5_cl_fw_app_startup IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD on_event_check.
|
||||
|
||||
TRY.
|
||||
DATA li_app_test TYPE REF TO z2ui5_if_app.
|
||||
ms_home-classname = z2ui5_cl_util_func=>c_trim_upper( ms_home-classname ).
|
||||
CREATE OBJECT li_app_test TYPE (ms_home-classname).
|
||||
|
||||
client->message_toast_display( `App is ready to start!` ).
|
||||
ms_home-btn_text = `edit`.
|
||||
ms_home-btn_event_id = `BUTTON_CHANGE`.
|
||||
ms_home-btn_icon = `sap-icon://edit`.
|
||||
ms_home-class_value_state = `Success`.
|
||||
ms_home-class_editable = abap_false.
|
||||
|
||||
CATCH cx_root INTO DATA(lx) ##CATCH_ALL.
|
||||
ms_home-class_value_state_text = lx->get_text( ).
|
||||
ms_home-class_value_state = `Warning`.
|
||||
client->message_box_display( text = ms_home-class_value_state_text
|
||||
type = `error` ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD view_display_start.
|
||||
|
||||
DATA(lv_url) = z2ui5_cl_util_func=>app_get_url(
|
||||
client = client
|
||||
classname = ms_home-classname ).
|
||||
|
||||
DATA(page) = z2ui5_cl_ui5=>_factory( )->_ns_m( )->shell(
|
||||
)->page( shownavbutton = abap_false ).
|
||||
DATA(page2) = z2ui5_cl_xml_view=>factory( )->shell( )->page(
|
||||
shownavbutton = abap_false ).
|
||||
|
||||
page->headercontent(
|
||||
)->title( `abap2UI5 - Developing UI5 Apps Purely in ABAP`
|
||||
)->toolbarspacer(
|
||||
)->text( `v.` && z2ui5_cl_fw_http_handler=>c_abap_version
|
||||
)->link( text = `SCN`
|
||||
target = `_blank`
|
||||
href = `https://blogs.sap.com/tag/abap2ui5/`
|
||||
)->link( text = `Twitter`
|
||||
target = `_blank`
|
||||
href = `https://twitter.com/abap2UI5`
|
||||
)->link( text = `GitHub`
|
||||
target = `_blank`
|
||||
href = `https://github.com/abap2ui5/abap2ui5` ).
|
||||
page2->header_content( )->title( `abap2UI5 - Developing UI5 Apps Purely in ABAP` )->toolbar_spacer( ).
|
||||
|
||||
DATA(grid) = page->_ns_ui( )->grid( `XL7 L7 M12 S12`
|
||||
)->content( `sap.ui.layout` ).
|
||||
DATA(content) = grid->simpleform( title = `Quickstart`
|
||||
layout = `ResponsiveGridLayout`
|
||||
editable = `true`
|
||||
)->content( )->_ns_m( ).
|
||||
DATA(simple_form2) = page2->simple_form(
|
||||
editable = abap_true
|
||||
layout = `ResponsiveGridLayout`
|
||||
labelspanxl = `4`
|
||||
labelspanl = `3`
|
||||
labelspanm = `4`
|
||||
labelspans = `12`
|
||||
adjustlabelspan = abap_false
|
||||
emptyspanxl = `0`
|
||||
emptyspanl = `4`
|
||||
emptyspanm = `0`
|
||||
emptyspans = `0`
|
||||
columnsxl = `2`
|
||||
columnsl = `2`
|
||||
columnsm = `1`
|
||||
singlecontainerfullsize = abap_false
|
||||
)->content( `form` ).
|
||||
|
||||
DATA(lv_url_search) = z2ui5_cl_util_func=>app_get_url(
|
||||
client = client
|
||||
classname = 'z2ui5_cl_app_search_apps' ).
|
||||
|
||||
content->label( `Step 1`
|
||||
)->text( `Create a new class in your abap system`
|
||||
)->label( `Step 2`
|
||||
)->text( `Add the interface: Z2UI5_IF_APP`
|
||||
)->label( `Step 3`
|
||||
)->text( `Define view, implement behaviour`
|
||||
)->link( text = `(Example)`
|
||||
target = `_blank`
|
||||
href = `https://github.com/abap2UI5/abap2UI5/blob/main/src/03/02/z2ui5_cl_app_hello_world.clas.abap`
|
||||
)->label( `Step 4` ).
|
||||
|
||||
simple_form2->toolbar( )->title( `Quickstart` ).
|
||||
simple_form2->label( `Step 1`
|
||||
)->text( `Create a new class in your ABAP system`
|
||||
)->label( `Step 2`
|
||||
)->text( `Add the interface: Z2UI5_IF_APP`
|
||||
)->label( `Step 3`
|
||||
)->text( `Define the view, implement behaviour`
|
||||
)->label(
|
||||
)->link( text = `(Example)`
|
||||
target = `_blank`
|
||||
href = `https://github.com/abap2UI5/abap2UI5/blob/main/src/02/02/z2ui5_cl_app_hello_world.clas.abap`
|
||||
)->label( `Step 4` ).
|
||||
|
||||
IF ms_home-class_editable = abap_true.
|
||||
|
||||
content->input( placeholder = `fill in the class name and press 'check'`
|
||||
simple_form2->input( placeholder = `fill in the class name and press 'check'`
|
||||
editable = z2ui5_cl_util_func=>boolean_abap_2_json( ms_home-class_editable )
|
||||
value = client->_bind_edit( ms_home-classname )
|
||||
submit = client->_event( ms_home-btn_event_id )
|
||||
|
@ -102,62 +124,69 @@ CLASS z2ui5_cl_fw_app_startup IMPLEMENTATION.
|
|||
).
|
||||
|
||||
ELSE.
|
||||
content->text( ms_home-classname ).
|
||||
simple_form2->text( ms_home-classname ).
|
||||
ENDIF.
|
||||
|
||||
content->button( press = client->_event( ms_home-btn_event_id )
|
||||
simple_form2->label( ).
|
||||
simple_form2->button( press = client->_event( ms_home-btn_event_id )
|
||||
text = ms_home-btn_text
|
||||
icon = ms_home-btn_icon
|
||||
)->label( `Step 5`
|
||||
)->link( text = `Link to the Application`
|
||||
target = `_blank`
|
||||
href = lv_url
|
||||
enabled = z2ui5_cl_util_func=>boolean_abap_2_json( xsdbool( ms_home-class_editable = abap_false ) ) ).
|
||||
).
|
||||
simple_form2->label( `Step 5`
|
||||
)->link( text = `Link to the Application`
|
||||
target = `_blank`
|
||||
href = lv_url
|
||||
enabled = z2ui5_cl_util_func=>boolean_abap_2_json( xsdbool( ms_home-class_editable = abap_false ) ) ).
|
||||
|
||||
|
||||
DATA(form) = grid->simpleform( title = `Apps`
|
||||
editable = abap_true
|
||||
layout = `ResponsiveGridLayout` ).
|
||||
simple_form2->toolbar( )->title( `System Information` ).
|
||||
simple_form2->label( `abap2UI5 Version` ).
|
||||
simple_form2->text( z2ui5_cl_fw_http_handler=>c_abap_version ).
|
||||
|
||||
IF mv_check_demo = abap_false.
|
||||
form->_ns_m( )->messagestrip( text = `Oops! You need to install abap2UI5 demos before continuing...`
|
||||
type = `Warning`
|
||||
)->_go_new( )->_add( n = `link` ns = `sap.m` )->_ns_m( )->link( text = `(HERE)`
|
||||
target = `_blank`
|
||||
href = `https://github.com/abap2UI5/abap2UI5-samples` ).
|
||||
ENDIF.
|
||||
* DATA(lv_url_search2) = z2ui5_cl_util_func=>app_get_url(
|
||||
* client = client
|
||||
* classname = 'z2ui5_cl_app_search_apps' ).
|
||||
|
||||
data(lv_url_samples) = z2ui5_cl_util_func=>app_get_url(
|
||||
client = client
|
||||
classname = 'z2ui5_cl_demo_app_000' ).
|
||||
DATA(lv_url_samples2) = z2ui5_cl_util_func=>app_get_url(
|
||||
client = client
|
||||
classname = 'z2ui5_cl_demo_app_000' ).
|
||||
|
||||
DATA(cont) = form->content( )->_ns_m( ).
|
||||
cont->label( `Samples`).
|
||||
* cont->button(
|
||||
* text = `Continue...`
|
||||
* press = client->_event( val = `DEMOS` check_view_destroy = abap_true )
|
||||
* enabled = xsdbool( mv_check_demo = abap_true ) )->_go_new( ).
|
||||
cont->link(
|
||||
text = `Continue...`
|
||||
target = `_blank`
|
||||
* press = client->_event( val = `DEMOS` check_view_destroy = abap_true )
|
||||
href = lv_url_samples
|
||||
enabled = xsdbool( mv_check_demo = abap_true )
|
||||
)->_go_new( ).
|
||||
cont->button( visible = abap_false ).
|
||||
simple_form2->toolbar( )->title( `What's next?` ).
|
||||
* simple_form2->label( `Install & Run Apps` ).
|
||||
* simple_form2->button( text = `Apps on your system` press = client->_event_client( val = client->cs_event-open_new_tab
|
||||
* t_arg = VALUE #( ( `$` && client->_bind_local( lv_url_search2 ) ) ) )
|
||||
* ).
|
||||
|
||||
cont->label( `Local`
|
||||
)->link( text = `Search apps on your system...`
|
||||
target = `_blank`
|
||||
href = lv_url_search
|
||||
simple_form2->label( `Development` ).
|
||||
simple_form2->button(
|
||||
text = `Check out the samples` press = client->_event_client( val = client->cs_event-open_new_tab
|
||||
t_arg = VALUE #( ( `$` && client->_bind_local( lv_url_samples2 ) ) ) )
|
||||
).
|
||||
|
||||
cont->label( `Online` )->link( text = `More on GitHub...`
|
||||
target = `_blank`
|
||||
href = `https://github.com/abap2UI5/abap2UI5-documentation/blob/main/docs/links.md` ).
|
||||
simple_form2->toolbar( )->title( `` ).
|
||||
simple_form2->label( `` ).
|
||||
simple_form2->label( `` ).
|
||||
|
||||
simple_form2->toolbar( )->title( `Contribution` ).
|
||||
simple_form2->label( `Open an issue` ).
|
||||
simple_form2->link( text = `You have comments, wishes or bugs?`
|
||||
target = `_blank`
|
||||
href = `https://github.com/abap2UI5/abap2UI5/issues` ).
|
||||
|
||||
client->view_display( form->_stringify( ) ).
|
||||
simple_form2->label( `Open a Pull Request` ).
|
||||
simple_form2->link( text = `You added a new feature?`
|
||||
target = `_blank`
|
||||
href = `https://github.com/abap2UI5/abap2UI5/pulls` ).
|
||||
|
||||
simple_form2->toolbar( )->title( `Links & More` ).
|
||||
simple_form2->label( ).
|
||||
simple_form2->link( text = `Repository on GitHub` target = `_blank` href = `https://github.com/abap2UI5/abap2UI5` ).
|
||||
simple_form2->label( ).
|
||||
simple_form2->link( text = `News on Twitter` target = `_blank` href = `https://twitter.com/abap2UI5` ).
|
||||
simple_form2->label( ).
|
||||
simple_form2->link( text = `Blog Series on SAP Community` target = `_blank` href = `https://community.sap.com/t5/technology-blogs-by-members/abap2ui5-1-introduction-developing-ui5-apps-purely-in-abap/ba-p/13567635` ).
|
||||
|
||||
client->view_display( page2->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -238,28 +267,4 @@ data(lv_url_samples) = z2ui5_cl_util_func=>app_get_url(
|
|||
mv_check_demo = abap_true.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD on_event_check.
|
||||
|
||||
TRY.
|
||||
DATA li_app_test TYPE REF TO z2ui5_if_app.
|
||||
ms_home-classname = z2ui5_cl_util_func=>c_trim_upper( ms_home-classname ).
|
||||
CREATE OBJECT li_app_test TYPE (ms_home-classname).
|
||||
|
||||
client->message_toast_display( `App is ready to start!` ).
|
||||
ms_home-btn_text = `edit`.
|
||||
ms_home-btn_event_id = `BUTTON_CHANGE`.
|
||||
ms_home-btn_icon = `sap-icon://edit`.
|
||||
ms_home-class_value_state = `Success`.
|
||||
ms_home-class_editable = abap_false.
|
||||
|
||||
CATCH cx_root INTO DATA(lx) ##CATCH_ALL.
|
||||
ms_home-class_value_state_text = lx->get_text( ).
|
||||
ms_home-class_value_state = `Warning`.
|
||||
client->message_box_display( text = ms_home-class_value_state_text
|
||||
type = `error` ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -10,17 +10,35 @@ CLASS z2ui5_cl_app_search_apps DEFINITION
|
|||
BEGIN OF ty_app,
|
||||
name TYPE string,
|
||||
visible TYPE abap_bool,
|
||||
* check_fav TYPE abap_bool,
|
||||
END OF ty_app.
|
||||
DATA mt_apps TYPE STANDARD TABLE OF ty_app WITH EMPTY KEY.
|
||||
DATA mt_favs TYPE STANDARD TABLE OF ty_app WITH EMPTY KEY.
|
||||
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
DATA mv_search_value TYPE string.
|
||||
DATA mv_selected_key TYPE string.
|
||||
|
||||
data:
|
||||
begin of ms_favrites,
|
||||
check_cloud_ready type abap_bool,
|
||||
check_premise_ready type abap_bool,
|
||||
search_field type string,
|
||||
end of ms_favrites.
|
||||
|
||||
PROTECTED SECTION.
|
||||
METHODS search.
|
||||
METHODS view_display
|
||||
IMPORTING
|
||||
client TYPE REF TO z2ui5_if_client.
|
||||
METHODS view_nest_display
|
||||
IMPORTING
|
||||
client TYPE REF TO z2ui5_if_client.
|
||||
METHODS view_action_sheet
|
||||
IMPORTING
|
||||
val TYPE clike.
|
||||
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -31,9 +49,19 @@ CLASS z2ui5_cl_app_search_apps IMPLEMENTATION.
|
|||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
||||
IF check_initialized = abap_false.
|
||||
check_initialized = abap_true.
|
||||
|
||||
z2ui5_cl_util_func=>db_load_by_handle(
|
||||
EXPORTING
|
||||
uname = sy-uname
|
||||
handle = 'z2ui5_cl_app_search_apps'
|
||||
IMPORTING
|
||||
result = mt_favs
|
||||
).
|
||||
|
||||
mt_apps = VALUE #( FOR row IN z2ui5_cl_util_func=>rtti_get_classes_impl_intf( `Z2UI5_IF_APP` )
|
||||
( name = row ) ).
|
||||
search( ).
|
||||
|
@ -48,14 +76,25 @@ CLASS z2ui5_cl_app_search_apps IMPLEMENTATION.
|
|||
CASE client->get( )-event.
|
||||
|
||||
WHEN `ON_PRESS`.
|
||||
|
||||
DATA(lt_arg) = client->get( )-t_event_arg.
|
||||
DATA(lv_app) = lt_arg[ 1 ].
|
||||
|
||||
DATA li_app TYPE REF TO z2ui5_if_app.
|
||||
CREATE OBJECT li_app TYPE (lv_app).
|
||||
client->nav_app_call( li_app ).
|
||||
* LOOP AT mt_apps REFERENCE INTO DATA(lr_apps) WHERE name = lv_app.
|
||||
* lr_apps->check_fav = abap_true.
|
||||
* ENDLOOP.
|
||||
|
||||
* client->message_toast_display( lv_app ).
|
||||
INSERT VALUE #( name = lv_app ) INTO TABLE mt_favs.
|
||||
* view_display( client ).
|
||||
|
||||
z2ui5_cl_util_func=>db_save(
|
||||
uname = sy-uname
|
||||
handle = 'z2ui5_cl_app_search_apps'
|
||||
data = mt_favs ).
|
||||
|
||||
view_action_sheet( lv_app ).
|
||||
|
||||
view_nest_display( client ).
|
||||
|
||||
WHEN 'BACK'.
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
@ -74,7 +113,7 @@ CLASS z2ui5_cl_app_search_apps IMPLEMENTATION.
|
|||
|
||||
LOOP AT mt_apps REFERENCE INTO lr_app.
|
||||
lr_app->visible = abap_false.
|
||||
IF lr_app->name CS 'DEMO'.
|
||||
IF lr_app->name CS 'DEMO' OR lr_app->name CS `Z2UI5_CL_POPUP`.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
IF lr_app->name CS mv_search_value.
|
||||
|
@ -88,33 +127,228 @@ CLASS z2ui5_cl_app_search_apps IMPLEMENTATION.
|
|||
METHOD view_display.
|
||||
|
||||
|
||||
|
||||
DATA(page) = z2ui5_cl_xml_view=>factory(
|
||||
)->shell(
|
||||
)->page(
|
||||
title = 'abap2UI5 - Search Apps'
|
||||
navbuttonpress = client->_event( 'BACK' )
|
||||
shownavbutton = xsdbool( client->get( )-s_draft-id_prev_app_stack is not initial )
|
||||
)->header_content(
|
||||
)->search_field(
|
||||
value = client->_bind_edit( mv_search_value )
|
||||
search = client->_event( 'ON_SEARCH' )
|
||||
change = client->_event( 'ON_SEARCH' )
|
||||
width = `17.5rem`
|
||||
id = `SEARCH`
|
||||
)->get_parent( ).
|
||||
* )->page(
|
||||
* title = 'abap2UI5 - Search Apps'
|
||||
* navbuttonpress = client->_event( 'BACK' )
|
||||
* shownavbutton = xsdbool( client->get( )-s_draft-id_prev_app_stack is not initial )
|
||||
* )->header_content(
|
||||
* )->search_field(
|
||||
* value = client->_bind_edit( mv_search_value )
|
||||
* search = client->_event( 'ON_SEARCH' )
|
||||
* change = client->_event( 'ON_SEARCH' )
|
||||
* width = `17.5rem`
|
||||
* id = `SEARCH`
|
||||
* )->get_parent( ).
|
||||
)->tool_page(
|
||||
)->header( `tnt`
|
||||
)->tool_header(
|
||||
)->title( `abap2UI5 - App Overview`
|
||||
)->text( width = `10%`
|
||||
)->link( text = `Visit the abap2UI5 Project`
|
||||
* )->button( text = `Bak` press = client->_event( 'BACK' )
|
||||
)->get_parent(
|
||||
)->get_parent( )->sub_header( ns = `tnt`
|
||||
)->tool_header( ).
|
||||
|
||||
DATA(pages) = page->icon_tab_header( selectedkey = client->_bind_edit( mv_selected_key )
|
||||
* select = client->_event( `OnSelectIconTabBar` )
|
||||
* select = client->_event_client( action = 'NAV_TO' t_arg = value #( ( `NavCon` ) ( `${$parameters}` ) ) )
|
||||
select = client->_event_client( val = client->cs_event-nav_container_to t_arg = VALUE #( ( `NavCon` ) ( `${$parameters>/selectedKey}` ) ) )
|
||||
mode = `Inline`
|
||||
)->items(
|
||||
)->icon_tab_filter( key = `page_favs` text = `Favorites` )->get_parent(
|
||||
)->icon_tab_filter( key = `page_all` text = `Search...` )->get_parent(
|
||||
)->icon_tab_filter( key = `page_online` text = `More on GitHub...`
|
||||
* )->items(
|
||||
* )->icon_tab_filter( key = `page11` text = `User 1` )->get_parent(
|
||||
* )->icon_tab_filter( key = `page32` text = `User 2` )->get_parent(
|
||||
* )->icon_tab_filter( key = `page33` text = `User 3`
|
||||
)->get_parent( )->get_parent( )->get_parent( )->get_parent( )->get_parent(
|
||||
)->main_contents(
|
||||
* )->button( text = `page1` press = client->_event_client( action = 'NAV_TO' t_arg = VALUE #( ( `NavCon` ) ( `page1` ) ) )
|
||||
* )->button( text = `page2` press = client->_event_client( action = 'NAV_TO' t_arg = VALUE #( ( `NavCon` ) ( `page2` ) ) )
|
||||
* )->button( text = `page3` press = client->_event_client( action = 'NAV_TO' t_arg = VALUE #( ( `NavCon` ) ( `page3` ) ) )
|
||||
)->nav_container( id = `NavCon` initialpage = `page_favs` defaulttransitionname = `flip`
|
||||
)->pages( ).
|
||||
|
||||
pages->page(
|
||||
title = `12 Apps`
|
||||
id = `page_favs`
|
||||
)->header_content(
|
||||
)->button( text = `Edit`
|
||||
)->search_field(
|
||||
value = client->_bind_edit( mv_search_value )
|
||||
search = client->_event( 'ON_SEARCH' )
|
||||
change = client->_event( 'ON_SEARCH' )
|
||||
width = `17.5rem`
|
||||
*id = `SEARCH`
|
||||
)->get_parent( ).
|
||||
|
||||
DATA(page_all) = pages->page(
|
||||
title = `12 Apps on the System`
|
||||
id = `page_all`
|
||||
)->header_content(
|
||||
)->search_field(
|
||||
value = client->_bind_edit( mv_search_value )
|
||||
search = client->_event( 'ON_SEARCH' )
|
||||
change = client->_event( 'ON_SEARCH' )
|
||||
width = `17.5rem`
|
||||
id = `SEARCH`
|
||||
)->get_parent( ).
|
||||
|
||||
|
||||
LOOP AT mt_apps REFERENCE INTO DATA(lr_app).
|
||||
DATA(lv_tabix) = sy-tabix.
|
||||
page->generic_tile(
|
||||
page_all->generic_tile(
|
||||
id = lr_app->name
|
||||
class = 'sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout'
|
||||
press = client->_event( val = `ON_PRESS` t_arg = VALUE #( ( `${$source>/header}` ) ) )
|
||||
press = client->_event( val = `ON_PRESS` t_arg = VALUE #( ( `${$source>/header}` ) ( `${$source>/id}` ) ) )
|
||||
header = client->_bind( val = lr_app->name tab = mt_apps tab_index = lv_tabix )
|
||||
visible = client->_bind( val = lr_app->visible tab = mt_apps tab_index = lv_tabix ) ).
|
||||
ENDLOOP.
|
||||
|
||||
|
||||
view_nest_display( client ).
|
||||
|
||||
|
||||
|
||||
|
||||
DATA(page_online) = pages->page(
|
||||
* title = `Your app is not listed here? Fell free to send a PR and extend this page`
|
||||
id = `page_online`
|
||||
)->header_content(
|
||||
)->toolbar_spacer(
|
||||
)->checkbox( text = `Cloud` selected = client->_bind_edit( ms_favrites-check_cloud_ready )
|
||||
)->checkbox( text = `On-Premise` selected = client->_bind_edit( ms_favrites-check_premise_ready )
|
||||
)->button( text = `sort`
|
||||
)->search_field(
|
||||
value = client->_bind_edit( mv_search_value )
|
||||
search = client->_event( 'ON_SEARCH' )
|
||||
change = client->_event( 'ON_SEARCH' )
|
||||
width = `17.5rem`
|
||||
)->get_parent(
|
||||
* )->sub_header(
|
||||
* )->overflow_toolbar(
|
||||
* )->text( `Your open-source app is not listed here? Feel free to send a PR and extend this page`
|
||||
* )->link( target = `_blank` text = `HERE` href = `{AUTHOR_LINK}`
|
||||
* )->get_parent( )->get_parent(
|
||||
)->content( ).
|
||||
|
||||
page_online->message_strip( type = `Warning` text = `Your open-source app is not listed here? Feel free to send a PR and extend this page` ).
|
||||
|
||||
DATA(lt_repos) = NEW lcl_github( )->get_repositories( ).
|
||||
|
||||
|
||||
|
||||
|
||||
DATA(item) = page_online->list(
|
||||
" headertext = `Product`
|
||||
nodata = `no conditions defined`
|
||||
items = client->_bind_local( lt_repos )
|
||||
selectionchange = client->_event( 'SELCHANGE' )
|
||||
)->custom_list_item( ).
|
||||
|
||||
* DATA(grid) = item->grid( ).
|
||||
|
||||
item = item->vbox( ).
|
||||
|
||||
* grid->combobox(
|
||||
* selectedkey = `{OPTION}`
|
||||
* items = client->_bind_local( value string_table( ( `OFFLINE` ) ( `ONLINE` ) ) )
|
||||
* )->item(
|
||||
* key = '{}'
|
||||
* text = '{}'
|
||||
* )->get_parent(
|
||||
item->text( ).
|
||||
data(row) = item->grid( ).
|
||||
row->title( text = `{NAME}` ).
|
||||
row->text( text = `{DESCR}` ).
|
||||
row->text( ).
|
||||
row->checkbox( text = `Cloud Ready` selected = client->_bind_edit( ms_favrites-check_cloud_ready ) ).
|
||||
|
||||
row = item->grid( ).
|
||||
* row = item->hbox( ).
|
||||
* item->text( text = `{DESCR}`
|
||||
row->link( target = `_blank` text = `{AUTHOR_NAME}` href = `{AUTHOR_LINK}` ).
|
||||
|
||||
row->link( target = `_blank` text = `{LINK}` href = `{LINK}` ).
|
||||
* row->text( ).
|
||||
row->checkbox( text = `Installed` selected = client->_bind_edit( ms_favrites-check_cloud_ready ) ).
|
||||
row->checkbox( text = `On-Premise since: 7.50` selected = client->_bind_edit( ms_favrites-check_cloud_ready ) ).
|
||||
* page_online->footer( )->toolbar(
|
||||
* )->text( `Your app is not listed here? Fell free to send a PR and extend this page`
|
||||
* ).
|
||||
* DATA(tab) = page_online->table(
|
||||
* items = client->_bind_local( lt_repos ) ).
|
||||
*
|
||||
* DATA(lt_comp) = z2ui5_cl_util_func=>rtti_get_t_comp_by_data( lt_repos ).
|
||||
*
|
||||
* DATA(list) = tab->column_list_item( valign = `Top` ).
|
||||
* DATA(cells) = list->cells( ).
|
||||
*
|
||||
* DATA(columns) = tab->columns( ).
|
||||
* LOOP AT lt_comp INTO DATA(ls_comp2).
|
||||
* DATA(col) = columns->column( width = '8rem' )->header( ns = `` ).
|
||||
* col->text( text = ls_comp2-name ).
|
||||
* ENDLOOP.
|
||||
*
|
||||
* LOOP AT lt_comp INTO DATA(ls_comp).
|
||||
** IF ls_comp-name = 'NAME'.
|
||||
* cells->text( `{` && ls_comp-name && `}` ).
|
||||
** ELSE.
|
||||
** cells->checkbox( `{` && ls_comp-name && `}` ).
|
||||
** ENDIF.
|
||||
* ENDLOOP.
|
||||
|
||||
* page_online
|
||||
|
||||
|
||||
client->view_display( page->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD view_action_sheet.
|
||||
|
||||
DATA(action_sheet_view) = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
|
||||
action_sheet_view->_generic_property( VALUE #( n = `core:require` v = `{ MessageToast: 'sap/m/MessageToast' }` ) ).
|
||||
|
||||
action_sheet_view->action_sheet( placement = `Botton` showcancelbutton = abap_true title = `Choose Your Action`
|
||||
)->button( text = `Accept` icon = `sap-icon://accept` press = `MessageToast.show('selected action is ' + ${$source>/text})`
|
||||
)->button( text = `Reject` icon = `sap-icon://decline` press = `MessageToast.show('selected action is ' + ${$source>/text})`
|
||||
)->button( text = `Email` icon = `sap-icon://email` press = `MessageToast.show('selected action is ' + ${$source>/text})`
|
||||
)->button( text = `Forward` icon = `sap-icon://forward` press = `MessageToast.show('selected action is ' + ${$source>/text})`
|
||||
)->button( text = `Delete` icon = `sap-icon://delete` press = `MessageToast.show('selected action is ' + ${$source>/text})`
|
||||
)->button( text = `Other` press = `MessageToast.show('selected action is ' + ${$source>/text})`
|
||||
).
|
||||
|
||||
client->popover_display( xml = action_sheet_view->stringify( ) by_id = val ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD view_nest_display.
|
||||
|
||||
DATA lr_app TYPE REF TO ty_app.
|
||||
DATA lv_tabix TYPE syst-tabix.
|
||||
|
||||
DATA(lo_view_nested) = z2ui5_cl_xml_view=>factory( ).
|
||||
|
||||
LOOP AT mt_favs REFERENCE INTO lr_app.
|
||||
" WHERE check_fav = abap_true.
|
||||
lv_tabix = sy-tabix.
|
||||
lo_view_nested->generic_tile(
|
||||
* page_favs->generic_tile(
|
||||
class = 'sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout'
|
||||
press = client->_event( val = `ON_PRESS` t_arg = VALUE #( ( `${$source>/header}` ) ) )
|
||||
header = client->_bind( val = lr_app->name tab = mt_favs tab_index = lv_tabix )
|
||||
* visible = client->_bind( val = lr_app->check_fav tab = mt_apps tab_index = lv_tabix )
|
||||
).
|
||||
ENDLOOP.
|
||||
|
||||
client->nest_view_display( val = lo_view_nested->stringify( ) id = `page_favs` method_insert = 'addContent' ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
116
src/02/02/z2ui5_cl_app_search_apps.clas.locals_imp.abap
Normal file
116
src/02/02/z2ui5_cl_app_search_apps.clas.locals_imp.abap
Normal file
|
@ -0,0 +1,116 @@
|
|||
|
||||
CLASS lcl_github DEFINITION.
|
||||
|
||||
PUBLIC SECTION.
|
||||
TYPES:
|
||||
BEGIN OF ty_s_app,
|
||||
name TYPE string,
|
||||
descr TYPE string,
|
||||
classname TYPE string,
|
||||
check_hide TYPE abap_bool,
|
||||
END OF ty_s_app.
|
||||
TYPES ty_t_app TYPE STANDARD TABLE OF ty_s_app WITH EMPTY KEY.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_repo,
|
||||
name TYPE string,
|
||||
descr TYPE string,
|
||||
author_link TYPE string,
|
||||
author_name TYPE string,
|
||||
check_cloud_ready TYPE abap_bool,
|
||||
min_release TYPE string,
|
||||
link TYPE string,
|
||||
t_app TYPE ty_t_app,
|
||||
check_installed TYPE abap_bool,
|
||||
number_of_app TYPE i,
|
||||
END OF ty_s_repo.
|
||||
TYPES ty_t_repo TYPE STANDARD TABLE OF ty_s_repo WITH EMPTY KEY.
|
||||
|
||||
METHODS get_repositories
|
||||
RETURNING
|
||||
VALUE(result) TYPE ty_t_repo.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS lcl_github IMPLEMENTATION.
|
||||
|
||||
METHOD get_repositories.
|
||||
|
||||
result = VALUE #(
|
||||
(
|
||||
name = `Table Loader`
|
||||
descr = `Upload, Edit & Download Table Content (CSV, JSON)`
|
||||
author_link = `https://github.com/oblomov-dev`
|
||||
check_cloud_ready = abap_true
|
||||
min_release = `750`
|
||||
link = `https://github.com/oblomov-dev/a2UI5-db_table_loader`
|
||||
t_app = VALUE #(
|
||||
(
|
||||
name = `Upload JSON`
|
||||
descr = `Modify DB Table with JSON Data`
|
||||
classname = `z2ui5_dbl_cl_app_01`
|
||||
)
|
||||
(
|
||||
name = `Download (CSV, JSON)`
|
||||
descr = `Download DB Table as JSON and CSV`
|
||||
classname = `z2ui5_dbl_cl_app_01`
|
||||
)
|
||||
) )
|
||||
(
|
||||
name = `Axage`
|
||||
descr = `Play the Game Axage`
|
||||
author_link = `https://github.com/oblomov-dev`
|
||||
check_cloud_ready = abap_true
|
||||
min_release = `750`
|
||||
link = `https://github.com/oblomov-dev/a2UI5-db_table_loader`
|
||||
t_app = VALUE #(
|
||||
(
|
||||
name = `Upload JSON`
|
||||
descr = `Modify DB Table with JSON Data`
|
||||
classname = `z2ui5_dbl_cl_app_01`
|
||||
)
|
||||
(
|
||||
name = `Download (CSV, JSON)`
|
||||
descr = `Download DB Table as JSON and CSV`
|
||||
classname = `z2ui5_dbl_cl_app_01`
|
||||
)
|
||||
) )
|
||||
(
|
||||
name = `Advent of Code`
|
||||
descr = `Solve the Advent of Code `
|
||||
author_link = `https://github.com/oblomov-dev`
|
||||
check_cloud_ready = abap_true
|
||||
min_release = `750`
|
||||
link = `https://github.com/oblomov-dev/a2UI5-db_table_loader`
|
||||
t_app = VALUE #(
|
||||
(
|
||||
name = `Upload JSON`
|
||||
descr = `Modify DB Table with JSON Data`
|
||||
classname = `z2ui5_dbl_cl_app_01`
|
||||
)
|
||||
(
|
||||
name = `Download (CSV, JSON)`
|
||||
descr = `Download DB Table as JSON and CSV`
|
||||
classname = `z2ui5_dbl_cl_app_01`
|
||||
)
|
||||
) )
|
||||
).
|
||||
|
||||
|
||||
LOOP AT result REFERENCE INTO DATA(lr_repo).
|
||||
|
||||
LOOP AT lr_repo->t_app REFERENCE INTO DATA(lr_app).
|
||||
|
||||
IF z2ui5_cl_util_func=>rtti_check_class_exists( lr_app->classname ).
|
||||
lr_repo->check_installed = abap_true.
|
||||
ENDIF.
|
||||
EXIT.
|
||||
ENDLOOP.
|
||||
|
||||
lr_repo->number_of_app = lines( lr_repo->t_app ).
|
||||
lr_repo->author_name = shift_left( val = lr_repo->author_link sub = `https://github.com/` ).
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
138
src/02/03/z2ui5_cl_popup_file_download.clas.abap
Normal file
138
src/02/03/z2ui5_cl_popup_file_download.clas.abap
Normal file
|
@ -0,0 +1,138 @@
|
|||
CLASS z2ui5_cl_popup_file_download DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
i_text TYPE string DEFAULT `Choose the file to upload:`
|
||||
i_title TYPE string DEFAULT `File Download`
|
||||
i_button_text_confirm TYPE string DEFAULT `OK`
|
||||
i_button_text_cancel TYPE string DEFAULT `Cancel`
|
||||
i_file TYPE string
|
||||
RETURNING
|
||||
VALUE(r_result) TYPE REF TO z2ui5_cl_popup_file_download.
|
||||
|
||||
DATA mv_name TYPE string.
|
||||
DATA mv_type TYPE string VALUE `data:text/csv;base64,`.
|
||||
DATA mv_size TYPE string.
|
||||
|
||||
* DATA mv_path TYPE string.
|
||||
DATA mv_value TYPE string.
|
||||
* DATA check_confirm_enabled TYPE abap_bool.
|
||||
DATA mv_check_download TYPE abap_bool.
|
||||
|
||||
METHODS result
|
||||
RETURNING
|
||||
VALUE(result) TYPE abap_bool.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA check_confirmed TYPE abap_bool.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
DATA question_text TYPE string.
|
||||
DATA button_text_confirm TYPE string.
|
||||
DATA button_text_cancel TYPE string.
|
||||
DATA check_initialized TYPE abap_bool.
|
||||
METHODS view_display.
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_POPUP_FILE_DOWNLOAD IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
r_result->title = i_title.
|
||||
* r_result->icon = i_icon.
|
||||
r_result->question_text = i_text.
|
||||
r_result->button_text_confirm = i_button_text_confirm.
|
||||
r_result->button_text_cancel = i_button_text_cancel.
|
||||
r_result->mv_value = i_file.
|
||||
r_result->mv_size = CONV i( strlen( i_file ) / 1000 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD result.
|
||||
|
||||
result = check_confirmed.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD view_display.
|
||||
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( )->dialog(
|
||||
title = title
|
||||
icon = icon
|
||||
afterclose = client->_event( 'BUTTON_CANCEL' )
|
||||
)->content( ).
|
||||
|
||||
IF mv_check_download = abap_true.
|
||||
DATA(lv_base64) = z2ui5_cl_util_func=>conv_decode_x_base64( mv_value ).
|
||||
popup->_generic( ns = `html` name = `iframe` t_prop = VALUE #( ( n = `src` v = mv_type && lv_base64 ) ( n = `hidden` v = `hidden` ) ) ).
|
||||
|
||||
popup->_z2ui5( )->timer( finished = client->_event( `CALLBACK_DOWNLOAD` ) ).
|
||||
|
||||
ENDIF.
|
||||
|
||||
popup->vbox( 'sapUiMediumMargin'
|
||||
)->label( `Name`
|
||||
)->input( value = mv_name enabled = abap_false
|
||||
)->label( `Type`
|
||||
)->input( value = mv_type enabled = abap_false
|
||||
)->label( `Size`
|
||||
)->input( value = mv_size enabled = abap_false
|
||||
)->get_parent( )->get_parent(
|
||||
)->footer( )->overflow_toolbar(
|
||||
)->toolbar_spacer(
|
||||
)->button(
|
||||
text = button_text_cancel
|
||||
press = client->_event( 'BUTTON_CANCEL' )
|
||||
)->button(
|
||||
text = `Download`
|
||||
press = client->_event( 'BUTTON_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
||||
IF check_initialized = abap_false.
|
||||
check_initialized = abap_true.
|
||||
view_display( ).
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
CASE client->get( )-event.
|
||||
|
||||
WHEN `CALLBACK_DOWNLOAD`.
|
||||
check_confirmed = abap_true.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
WHEN `BUTTON_CONFIRM`.
|
||||
mv_check_download = abap_true.
|
||||
view_display( ).
|
||||
|
||||
WHEN `BUTTON_CANCEL`.
|
||||
client->popup_destroy( ).
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
ENDCASE.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
512
src/02/03/z2ui5_cl_popup_file_download.clas.locals_imp.abap
Normal file
512
src/02/03/z2ui5_cl_popup_file_download.clas.locals_imp.abap
Normal file
|
@ -0,0 +1,512 @@
|
|||
CLASS lcl_utility DEFINITION
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
client TYPE REF TO z2ui5_if_client optional
|
||||
RETURNING
|
||||
VALUE(r_result) TYPE REF TO lcl_utility.
|
||||
|
||||
METHODS app_get_url_source_code
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
METHODS app_get_url
|
||||
IMPORTING
|
||||
classname TYPE string OPTIONAL
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
METHODS url_param_get
|
||||
IMPORTING
|
||||
!val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS trans_xml_2_object
|
||||
IMPORTING
|
||||
xml TYPE clike
|
||||
EXPORTING
|
||||
data TYPE data.
|
||||
|
||||
CLASS-METHODS trans_data_2_xml
|
||||
IMPORTING
|
||||
data TYPE data
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_table_by_json
|
||||
IMPORTING
|
||||
val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO data.
|
||||
|
||||
CLASS-METHODS get_table_by_xml
|
||||
IMPORTING
|
||||
val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO data.
|
||||
|
||||
CLASS-METHODS get_table_by_csv
|
||||
IMPORTING
|
||||
val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO data.
|
||||
|
||||
CLASS-METHODS get_csv_by_table
|
||||
IMPORTING
|
||||
val TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_xml_by_table
|
||||
IMPORTING
|
||||
val TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_json_by_table
|
||||
IMPORTING
|
||||
val TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_fieldlist_by_table
|
||||
IMPORTING
|
||||
it_table TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE string_table.
|
||||
|
||||
CLASS-METHODS decode_x_base64
|
||||
IMPORTING
|
||||
val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE xstring.
|
||||
|
||||
CLASS-METHODS encode_x_base64
|
||||
IMPORTING
|
||||
val TYPE xstring
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_string_by_xstring
|
||||
IMPORTING
|
||||
val TYPE xstring
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS get_xstring_by_string
|
||||
IMPORTING
|
||||
val TYPE string
|
||||
RETURNING
|
||||
VALUE(result) TYPE xstring.
|
||||
|
||||
CLASS-METHODS get_uuid
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS trim_upper
|
||||
IMPORTING
|
||||
val TYPE clike
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
CLASS-METHODS boolean_check
|
||||
IMPORTING
|
||||
val TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE abap_bool.
|
||||
|
||||
CLASS-METHODS rtti_get_type_name
|
||||
IMPORTING
|
||||
val TYPE any
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
PROTECTED SECTION.
|
||||
|
||||
DATA mi_client TYPE REF TO z2ui5_if_client.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS lcl_utility IMPLEMENTATION.
|
||||
|
||||
METHOD rtti_get_type_name.
|
||||
|
||||
DATA(lo_descr) = cl_abap_elemdescr=>describe_by_data( val ).
|
||||
DATA(lo_ele) = CAST cl_abap_elemdescr( lo_descr ).
|
||||
result = lo_ele->get_relative_name( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD boolean_check.
|
||||
|
||||
TRY.
|
||||
DATA(lv_type_name) = rtti_get_type_name( val ).
|
||||
CASE lv_type_name.
|
||||
WHEN `ABAP_BOOL` OR `XSDBOOLEAN`.
|
||||
result = abap_true.
|
||||
ENDCASE.
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD factory.
|
||||
|
||||
r_result = new #( ).
|
||||
r_result->mi_client = client.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD app_get_url.
|
||||
|
||||
result = z2ui5_cl_util_func=>app_get_url( classname = classname client = mi_client ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD app_get_url_source_code.
|
||||
|
||||
result = z2ui5_cl_util_func=>app_get_url_source_code( mi_client ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD url_param_get.
|
||||
|
||||
result = z2ui5_cl_util_func=>url_param_get(
|
||||
val = val
|
||||
url = mi_client->get( )-s_config-search ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_uuid.
|
||||
TRY.
|
||||
|
||||
DATA uuid TYPE c LENGTH 32.
|
||||
|
||||
TRY.
|
||||
CALL METHOD (`CL_SYSTEM_UUID`)=>if_system_uuid_static~create_uuid_c32
|
||||
RECEIVING
|
||||
uuid = uuid.
|
||||
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(lv_fm) = `GUID_CREATE`.
|
||||
CALL FUNCTION lv_fm
|
||||
IMPORTING
|
||||
ev_guid_32 = uuid.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
result = uuid.
|
||||
|
||||
CATCH cx_root.
|
||||
ASSERT 1 = 0.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_table_by_json.
|
||||
|
||||
* DATA lt_tab TYPE ty_t_table.
|
||||
*
|
||||
|
||||
DATA lt_tab TYPE REF TO data.
|
||||
|
||||
/ui2/cl_json=>deserialize(
|
||||
EXPORTING
|
||||
json = val
|
||||
* jsonx =
|
||||
* pretty_name =
|
||||
* assoc_arrays =
|
||||
* assoc_arrays_opt =
|
||||
* name_mappings =
|
||||
* conversion_exits =
|
||||
* hex_as_base64 =
|
||||
CHANGING
|
||||
data = lt_tab
|
||||
).
|
||||
|
||||
result = lt_tab.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD trans_data_2_xml.
|
||||
|
||||
" FIELD-SYMBOLS <object> TYPE any.
|
||||
" ASSIGN object->* TO <object>.
|
||||
" raise( when = xsdbool( sy-subrc <> 0 ) ).
|
||||
|
||||
CALL TRANSFORMATION id
|
||||
SOURCE data = data
|
||||
RESULT XML result
|
||||
OPTIONS data_refs = `heap-or-create`.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD trans_xml_2_object.
|
||||
|
||||
CALL TRANSFORMATION id
|
||||
SOURCE XML xml
|
||||
RESULT data = data.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_table_by_xml.
|
||||
|
||||
* DATA lt_tab TYPE ty_t_table.
|
||||
*
|
||||
CALL TRANSFORMATION id SOURCE xml = val RESULT data = result.
|
||||
*
|
||||
* result = lt_tab.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_table_by_csv.
|
||||
|
||||
SPLIT val AT cl_abap_char_utilities=>newline INTO TABLE DATA(lt_rows).
|
||||
SPLIT lt_rows[ 1 ] AT ';' INTO TABLE DATA(lt_cols).
|
||||
|
||||
DATA lt_comp TYPE cl_abap_structdescr=>component_table.
|
||||
LOOP AT lt_cols REFERENCE INTO DATA(lr_col).
|
||||
|
||||
DATA(lv_name) = trim_upper( lr_col->* ).
|
||||
REPLACE ` ` IN lv_name WITH `_`.
|
||||
|
||||
INSERT VALUE #( name = lv_name type = cl_abap_elemdescr=>get_c( 40 ) ) INTO TABLE lt_comp.
|
||||
ENDLOOP.
|
||||
|
||||
DATA(struc) = cl_abap_structdescr=>get( lt_comp ).
|
||||
DATA(o_table_desc) = cl_abap_tabledescr=>create(
|
||||
p_line_type = CAST #( struc )
|
||||
p_table_kind = cl_abap_tabledescr=>tablekind_std
|
||||
p_unique = abap_false ).
|
||||
|
||||
CREATE DATA result TYPE HANDLE o_table_desc.
|
||||
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
||||
ASSIGN result->* TO <tab>.
|
||||
|
||||
DELETE lt_rows WHERE table_line IS INITIAL.
|
||||
|
||||
LOOP AT lt_rows REFERENCE INTO DATA(lr_rows) FROM 2.
|
||||
|
||||
SPLIT lr_rows->* AT ';' INTO TABLE lt_cols.
|
||||
DATA lr_row TYPE REF TO data.
|
||||
CREATE DATA lr_row TYPE HANDLE struc.
|
||||
|
||||
LOOP AT lt_cols REFERENCE INTO lr_col.
|
||||
ASSIGN lr_row->* TO FIELD-SYMBOL(<row>).
|
||||
ASSIGN COMPONENT sy-tabix OF STRUCTURE <row> TO FIELD-SYMBOL(<field>).
|
||||
<field> = lr_col->*.
|
||||
ENDLOOP.
|
||||
|
||||
INSERT <row> INTO TABLE <tab>.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD decode_x_base64.
|
||||
|
||||
TRY.
|
||||
|
||||
CALL METHOD ('CL_WEB_HTTP_UTILITY')=>('DECODE_X_BASE64')
|
||||
EXPORTING
|
||||
encoded = val
|
||||
RECEIVING
|
||||
decoded = result.
|
||||
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(classname) = 'CL_HTTP_UTILITY'.
|
||||
CALL METHOD (classname)=>('DECODE_X_BASE64')
|
||||
EXPORTING
|
||||
encoded = val
|
||||
RECEIVING
|
||||
decoded = result.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD encode_x_base64.
|
||||
|
||||
TRY.
|
||||
|
||||
CALL METHOD ('CL_WEB_HTTP_UTILITY')=>('ENCODE_X_BASE64')
|
||||
EXPORTING
|
||||
unencoded = val
|
||||
RECEIVING
|
||||
encoded = result.
|
||||
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(classname) = 'CL_HTTP_UTILITY'.
|
||||
CALL METHOD (classname)=>('ENCODE_X_BASE64')
|
||||
EXPORTING
|
||||
unencoded = val
|
||||
RECEIVING
|
||||
encoded = result.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_csv_by_table.
|
||||
|
||||
FIELD-SYMBOLS <tab> TYPE table.
|
||||
ASSIGN val TO <tab>.
|
||||
|
||||
DATA lr_row TYPE REF TO data.
|
||||
|
||||
DATA(tab) = CAST cl_abap_tabledescr( cl_abap_typedescr=>describe_by_data( <tab> ) ).
|
||||
|
||||
DATA(struc) = CAST cl_abap_structdescr( tab->get_table_line_type( ) ).
|
||||
|
||||
LOOP AT struc->get_components( ) REFERENCE INTO DATA(lr_comp).
|
||||
result = result && lr_comp->name && ';'.
|
||||
ENDLOOP.
|
||||
|
||||
result = result && cl_abap_char_utilities=>cr_lf.
|
||||
|
||||
LOOP AT <tab> REFERENCE INTO lr_row.
|
||||
|
||||
DATA(lv_index) = 1.
|
||||
DO.
|
||||
ASSIGN lr_row->* TO FIELD-SYMBOL(<row>).
|
||||
ASSIGN COMPONENT lv_index OF STRUCTURE <row> TO FIELD-SYMBOL(<field>).
|
||||
IF sy-subrc <> 0.
|
||||
EXIT.
|
||||
ENDIF.
|
||||
lv_index = lv_index + 1.
|
||||
result = result && <field> && ';'.
|
||||
ENDDO.
|
||||
result = result && cl_abap_char_utilities=>cr_lf.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_json_by_table.
|
||||
|
||||
result = /ui2/cl_json=>serialize(
|
||||
val
|
||||
* compress =
|
||||
* name =
|
||||
* pretty_name =
|
||||
* type_descr =
|
||||
* assoc_arrays =
|
||||
* ts_as_iso8601 =
|
||||
* expand_includes =
|
||||
* assoc_arrays_opt =
|
||||
* numc_as_string =
|
||||
* name_mappings =
|
||||
* conversion_exits =
|
||||
" format_output = abap_true
|
||||
* hex_as_base64 =
|
||||
).
|
||||
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_xml_by_table.
|
||||
|
||||
CALL TRANSFORMATION id SOURCE values = val RESULT XML result.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_fieldlist_by_table.
|
||||
|
||||
DATA(lo_tab) = CAST cl_abap_tabledescr( cl_abap_datadescr=>describe_by_data( it_table ) ).
|
||||
DATA(lo_struc) = CAST cl_abap_structdescr( lo_tab->get_table_line_type( ) ).
|
||||
|
||||
DATA(lt_comp) = lo_struc->get_components( ).
|
||||
|
||||
LOOP AT lt_comp INTO DATA(ls_comp).
|
||||
INSERT ls_comp-name INTO TABLE result.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_string_by_xstring.
|
||||
|
||||
DATA conv TYPE REF TO object.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ABAP_CONV_CODEPAGE')=>create_in
|
||||
RECEIVING
|
||||
instance = conv.
|
||||
|
||||
CALL METHOD conv->('IF_ABAP_CONV_IN~CONVERT')
|
||||
EXPORTING
|
||||
source = val
|
||||
RECEIVING
|
||||
result = result.
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(conv_in_class) = 'CL_ABAP_CONV_IN_CE'.
|
||||
CALL METHOD (conv_in_class)=>create
|
||||
EXPORTING
|
||||
encoding = 'UTF-8'
|
||||
RECEIVING
|
||||
conv = conv.
|
||||
|
||||
CALL METHOD conv->('CONVERT')
|
||||
EXPORTING
|
||||
input = val
|
||||
IMPORTING
|
||||
data = result.
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_xstring_by_string.
|
||||
|
||||
DATA conv TYPE REF TO object.
|
||||
|
||||
TRY.
|
||||
CALL METHOD ('CL_ABAP_CONV_CODEPAGE')=>create_out
|
||||
RECEIVING
|
||||
instance = conv.
|
||||
|
||||
CALL METHOD conv->('IF_ABAP_CONV_OUT~CONVERT')
|
||||
EXPORTING
|
||||
source = val
|
||||
RECEIVING
|
||||
result = result.
|
||||
CATCH cx_sy_dyn_call_illegal_class.
|
||||
|
||||
DATA(conv_out_class) = 'CL_ABAP_CONV_OUT_CE'.
|
||||
CALL METHOD (conv_out_class)=>create
|
||||
EXPORTING
|
||||
encoding = 'UTF-8'
|
||||
RECEIVING
|
||||
conv = conv.
|
||||
|
||||
CALL METHOD conv->('CONVERT')
|
||||
EXPORTING
|
||||
data = val
|
||||
IMPORTING
|
||||
buffer = result.
|
||||
ENDTRY.
|
||||
|
||||
|
||||
|
||||
* result = cl_abap_conv_codepage=>create_out( )->convert( val ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD trim_upper.
|
||||
result = to_upper( shift_left( shift_right( val ) ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
16
src/02/03/z2ui5_cl_popup_file_download.clas.xml
Normal file
16
src/02/03/z2ui5_cl_popup_file_download.clas.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>Z2UI5_CL_POPUP_FILE_DOWNLOAD</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>ui - popup file download</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
98
src/02/03/z2ui5_cl_popup_itab_json_dl.clas.abap
Normal file
98
src/02/03/z2ui5_cl_popup_itab_json_dl.clas.abap
Normal file
|
@ -0,0 +1,98 @@
|
|||
CLASS z2ui5_cl_popup_itab_json_dl DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
CLASS-METHODS factory
|
||||
IMPORTING
|
||||
itab TYPE data
|
||||
i_title TYPE string DEFAULT `Popup To Confirm`
|
||||
i_icon TYPE string DEFAULT 'sap-icon://question-mark'
|
||||
i_button_text_confirm TYPE string DEFAULT `OK`
|
||||
i_button_text_cancel TYPE string DEFAULT `Cancel`
|
||||
RETURNING
|
||||
VALUE(r_result) TYPE REF TO z2ui5_cl_popup_itab_json_dl.
|
||||
|
||||
METHODS result
|
||||
RETURNING
|
||||
VALUE(result) TYPE abap_bool.
|
||||
|
||||
DATA mr_itab TYPE REF TO data.
|
||||
|
||||
PROTECTED SECTION.
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
|
||||
DATA title TYPE string.
|
||||
DATA icon TYPE string.
|
||||
* DATA question_text TYPE string.
|
||||
DATA button_text_confirm TYPE string.
|
||||
DATA button_text_cancel TYPE string.
|
||||
* DATA check_initialized TYPE abap_bool.
|
||||
DATA check_result_confirmed TYPE abap_bool.
|
||||
|
||||
PRIVATE SECTION.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS Z2UI5_CL_POPUP_ITAB_JSON_DL IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD factory.
|
||||
|
||||
r_result = NEW #( ).
|
||||
r_result->mr_itab = z2ui5_cl_util_func=>conv_copy_ref_data( itab ).
|
||||
* r_result->z2ui5_if_app~id = z2ui5_cl_util_func=>func_get_uuid_22( ).
|
||||
r_result->title = i_title.
|
||||
r_result->icon = i_icon.
|
||||
* r_result->question_text = i_question_text.
|
||||
r_result->button_text_confirm = i_button_text_confirm.
|
||||
r_result->button_text_cancel = i_button_text_cancel.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD result.
|
||||
|
||||
result = check_result_confirmed.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
|
||||
me->client = client.
|
||||
|
||||
TRY.
|
||||
|
||||
IF z2ui5_cl_util_func=>rtti_check_class_exists( `z2ui5_dbt_cl_app_03` ) = abap_false.
|
||||
|
||||
DATA(lv_link) = `https://github.com/oblomov-dev/a2UI5-db_table_loader`.
|
||||
DATA(lv_text) = `<p>Please install the open-source project a2UI5-db_table_loader and try again: <a href="` &&
|
||||
lv_link && `" style="color:blue; font-weight:600;" target="_blank">(link)</a></p>`.
|
||||
|
||||
DATA(lx) = NEW z2ui5_cx_util_error( val = lv_text ).
|
||||
client->nav_app_leave( z2ui5_cl_popup_error=>factory( lx ) ).
|
||||
|
||||
ELSE.
|
||||
|
||||
DATA app TYPE REF TO object.
|
||||
CALL METHOD ('Z2UI5_DBT_CL_APP_03')=>('FACTORY_POPUP_BY_ITAB')
|
||||
EXPORTING
|
||||
itab = mr_itab
|
||||
RECEIVING
|
||||
result = app.
|
||||
|
||||
client->nav_app_leave( CAST #( app ) ).
|
||||
|
||||
ENDIF.
|
||||
|
||||
CATCH cx_root INTO DATA(x).
|
||||
client->nav_app_leave( z2ui5_cl_popup_to_inform=>factory( x->get_text( ) ) ).
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
16
src/02/03/z2ui5_cl_popup_itab_json_dl.clas.xml
Normal file
16
src/02/03/z2ui5_cl_popup_itab_json_dl.clas.xml
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>Z2UI5_CL_POPUP_ITAB_JSON_DL</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>ui - popup josn download</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -24,10 +24,18 @@ INTERFACE z2ui5_if_client
|
|||
main TYPE string VALUE `MAIN`,
|
||||
nested TYPE string VALUE `NEST`,
|
||||
nested2 TYPE string VALUE `NEST2`,
|
||||
* popover TYPE string VALUE `POPOVER`,
|
||||
* popup TYPE string VALUE `POPUP`,
|
||||
END OF cs_view.
|
||||
|
||||
CONSTANTS:
|
||||
BEGIN OF cs_pretty_mode,
|
||||
none TYPE char1 VALUE ``,
|
||||
low_case TYPE char1 VALUE `L`,
|
||||
camel_case TYPE char1 VALUE `X`,
|
||||
extended TYPE char1 VALUE `Y`,
|
||||
user TYPE char1 VALUE `U`,
|
||||
user_low_case TYPE char1 VALUE `C`,
|
||||
END OF cs_pretty_mode .
|
||||
|
||||
CONSTANTS:
|
||||
BEGIN OF cs_compress_mode,
|
||||
standard TYPE string VALUE `STANDARD`,
|
||||
|
@ -170,8 +178,8 @@ INTERFACE z2ui5_if_client
|
|||
IMPORTING
|
||||
val TYPE data
|
||||
path TYPE abap_bool DEFAULT abap_false
|
||||
pretty_name TYPE clike DEFAULT /ui2/cl_json=>pretty_mode-none
|
||||
compress TYPE clike DEFAULT cs_compress_mode-standard
|
||||
pretty_mode TYPE clike DEFAULT cs_pretty_mode-none
|
||||
compress_mode TYPE clike DEFAULT cs_compress_mode-standard
|
||||
tab TYPE STANDARD TABLE OPTIONAL
|
||||
tab_index TYPE i OPTIONAL
|
||||
struc TYPE data OPTIONAL
|
||||
|
@ -183,8 +191,8 @@ INTERFACE z2ui5_if_client
|
|||
val TYPE data
|
||||
path TYPE abap_bool DEFAULT abap_false
|
||||
view TYPE string DEFAULT cs_view-main
|
||||
pretty_name TYPE clike DEFAULT /ui2/cl_json=>pretty_mode-none
|
||||
compress TYPE clike DEFAULT cs_compress_mode-standard
|
||||
pretty_mode TYPE clike DEFAULT cs_pretty_mode-none
|
||||
compress_mode TYPE clike DEFAULT cs_compress_mode-standard
|
||||
tab TYPE STANDARD TABLE OPTIONAL
|
||||
tab_index TYPE i OPTIONAL
|
||||
struc TYPE data OPTIONAL
|
||||
|
@ -195,8 +203,8 @@ INTERFACE z2ui5_if_client
|
|||
IMPORTING
|
||||
val TYPE data
|
||||
path TYPE abap_bool DEFAULT abap_false
|
||||
pretty_name TYPE clike DEFAULT /ui2/cl_json=>pretty_mode-none
|
||||
compress TYPE clike DEFAULT cs_compress_mode-standard
|
||||
pretty_mode TYPE clike DEFAULT cs_pretty_mode-none
|
||||
compress_mode TYPE clike DEFAULT cs_compress_mode-standard
|
||||
RETURNING
|
||||
VALUE(result) TYPE string.
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user