From be43292f04976f302e4e4eb0f9f16fbef05a299d Mon Sep 17 00:00:00 2001 From: oblomov <102328295+oblomov-dev@users.noreply.github.com> Date: Mon, 15 May 2023 10:49:01 +0200 Subject: [PATCH] demos and csp (#226) * demos * demos and csp * demos --- src/00/z2ui5_cl_app_demo_05.clas.abap | 6 +- src/00/z2ui5_cl_app_demo_49.clas.abap | 94 ++++++++++++++++++++------- src/00/z2ui5_cl_xml_view.clas.abap | 4 +- src/z2ui5_cl_http_handler.clas.abap | 2 +- 4 files changed, 77 insertions(+), 29 deletions(-) diff --git a/src/00/z2ui5_cl_app_demo_05.clas.abap b/src/00/z2ui5_cl_app_demo_05.clas.abap index 79c86abd..292b100b 100644 --- a/src/00/z2ui5_cl_app_demo_05.clas.abap +++ b/src/00/z2ui5_cl_app_demo_05.clas.abap @@ -138,7 +138,7 @@ CLASS Z2UI5_CL_APP_DEMO_05 IMPLEMENTATION. DATA(grid) = page->grid( 'L12 M12 S12' )->content( 'layout' ). - grid->simple_form( 'More Controls' )->content( 'form' + grid->simple_form( title = 'More Controls' editable = abap_true )->content( 'form' )->label( 'ProgressIndicator' )->progress_indicator( percentvalue = screen-progress_value @@ -169,7 +169,7 @@ CLASS Z2UI5_CL_APP_DEMO_05 IMPLEMENTATION. class = 'sapUiTinyMargin' )->label( 'MultiInput' )->multi_input( - tokens = client->_bind( mt_token ) + tokens = client->_bind( mt_token ) showclearicon = abap_true showvaluehelp = abap_true suggestionitems = client->_bind( mt_token_sugg ) @@ -184,7 +184,7 @@ CLASS Z2UI5_CL_APP_DEMO_05 IMPLEMENTATION. visible = `{VISIBLE}` ). - grid->simple_form( 'Text Area' )->content( 'form' + grid->simple_form( title = 'Text Area' editable = abap_true )->content( 'form' )->label( 'text area' )->text_area( value = `Lorem ipsum dolor st amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magn` && diff --git a/src/00/z2ui5_cl_app_demo_49.clas.abap b/src/00/z2ui5_cl_app_demo_49.clas.abap index e3a1397a..7a334837 100644 --- a/src/00/z2ui5_cl_app_demo_49.clas.abap +++ b/src/00/z2ui5_cl_app_demo_49.clas.abap @@ -45,10 +45,18 @@ CLASS z2ui5_cl_app_demo_49 DEFINITION PUBLIC. END OF ty_S_cols. TYPES: - BEGIN OF ty_S_filter, + BEGIN OF ty_S_filter_show, selkz TYPE abap_bool, name TYPE string, value TYPE string, + " t_value TYPE STANDARD TABLE OF ty_S_token WITH EMPTY KEY, + END OF ty_S_filter_show. + + TYPES: + BEGIN OF ty_S_filter, + uuid TYPE string, + uuid_prev TYPE string, + "STANDARD TABLE OF ty_s_token WITH EMPTY KEY, END OF ty_S_filter. TYPES: @@ -66,7 +74,8 @@ CLASS z2ui5_cl_app_demo_49 DEFINITION PUBLIC. title TYPE string, sticky_header TYPE string, selmode TYPE string, - t_filter TYPE STANDARD TABLE OF ty_S_filter, + t_filter_show TYPE STANDARD TABLE OF ty_S_filter_show, + s_filter TYPE ty_s_filter, t_cols TYPE STANDARD TABLE OF ty_S_cols, t_sort TYPE STANDARD TABLE OF ty_S_sort, END OF ms_layout. @@ -125,6 +134,10 @@ CLASS z2ui5_cl_app_demo_49 DEFINITION PUBLIC. METHODS z2ui5_set_search. METHODS z2ui5_set_detail. METHODS z2ui5_set_sort. + METHODS z2ui5_set_filter + IMPORTING + io_box TYPE REF TO z2ui5_cl_xml_view. + METHODS z2ui5_set_data. ENDCLASS. @@ -176,12 +189,7 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION. client->popup_message_box( `custom action called` ). WHEN 'BUTTON_START'. - - SELECT FROM z2ui5_t_draft - FIELDS uuid, uuid_prev, timestampl, uname - INTO CORRESPONDING FIELDS OF TABLE @mt_table - UP TO 50 ROWS. - ms_view-t_tab = CORRESPONDING #( mt_table ). + z2ui5_set_data( ). WHEN 'BUTTON_DOWNLOAD'. mv_check_download_csv = abap_true. @@ -295,7 +303,7 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION. INSERT VALUE #( name = lr_col->* - ) INTO TABLE ms_layout-t_filter. + ) INTO TABLE ms_layout-t_filter_show. INSERT VALUE #( visible = abap_true @@ -355,24 +363,13 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION. header_title->actions( ns = 'f' )->overflow_toolbar( )->button( text = `Layout` type = `Emphasized` press = client->_event( `POPUP_LAYOUT` ) - )->button( text = `Start` press = client->_event( `BUTTON_START` ) type = `Emphasized` + ). DATA(lo_box) = page->header( )->dynamic_page_header( pinnable = abap_true - )->flex_box( alignItems = `Start` justifyContent = `SpaceBetween` ). - - - DATA(lt_filter) = ms_layout-t_filter. - DELETE lt_filter WHERE selkz = abap_false. - - LOOP AT lt_filter REFERENCE INTO DATA(lr_filter) - WHERE selkz = abap_true. - lo_box->input( description = lr_filter->name ). - ENDLOOP. - - - lo_box->button( text = `Change Filter (` && shift_right( CONV string( lines( lt_filter ) ) ) && `)` press = client->_event( `POPUP_FILTER` ) ). + )->flex_box( alignitems = `Start` justifycontent = `SpaceBetween` )->flex_box( alignItems = `Start` ). + z2ui5_set_filter( lo_box ). DATA(cont) = page->content( ns = 'f' ). @@ -655,7 +652,7 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION. lo_popup->dialog( 'abap2UI5 - Popup to select entry' )->table( mode = 'MultiSelect' - items = client->_bind( ms_layout-t_filter ) + items = client->_bind( ms_layout-t_filter_show ) )->columns( )->column( )->text( 'Title' )->get_parent( )->column( )->text( 'Color' )->get_parent( @@ -841,4 +838,53 @@ CLASS z2ui5_cl_app_demo_49 IMPLEMENTATION. ENDMETHOD. + + METHOD z2ui5_set_filter. + + IF line_exists( ms_layout-t_filter_show[ name = `UUID` selkz = abap_true ] ). + io_box->input( value = client->_bind( ms_layout-s_filter-uuid ) description = `UUID` ). + ENDIF. + + IF line_exists( ms_layout-t_filter_show[ name = `UUID_PREV` selkz = abap_true ] ). + io_box->input( value = client->_bind( ms_layout-s_filter-uuid_prev ) description = `UUID_PREV` ). + ENDIF. + + "todo other columns... + + DATA(rt_filter) = ms_layout-t_filter_show. + DELETE rt_filter WHERE selkz = abap_false. + + io_box->get_parent( )->hbox( justifycontent = `End` + )->button( text = `Change Filter (` && shift_right( CONV string( lines( rt_filter ) ) ) && `)` press = client->_event( `POPUP_FILTER` ) + )->button( text = `Start` press = client->_event( `BUTTON_START` ) type = `Emphasized` ). + + ENDMETHOD. + + + METHOD z2ui5_set_data. + + "dirty solution + "todo: map filters to rangetab and make a nice select + + IF ms_layout-s_filter-uuid IS INITIAL. + + SELECT FROM z2ui5_t_draft + FIELDS uuid, uuid_prev, timestampl, uname + INTO CORRESPONDING FIELDS OF TABLE @mt_table + UP TO 50 ROWS. + + ELSE. + + SELECT FROM z2ui5_t_draft + FIELDS uuid, uuid_prev, timestampl, uname + WHERE uuid = @ms_layout-s_filter-uuid + INTO CORRESPONDING FIELDS OF TABLE @mt_table + UP TO 50 ROWS. + + ENDIF. + + ms_view-t_tab = CORRESPONDING #( mt_table ). + + ENDMETHOD. + ENDCLASS. diff --git a/src/00/z2ui5_cl_xml_view.clas.abap b/src/00/z2ui5_cl_xml_view.clas.abap index 4035388b..e051fd80 100644 --- a/src/00/z2ui5_cl_xml_view.clas.abap +++ b/src/00/z2ui5_cl_xml_view.clas.abap @@ -607,7 +607,8 @@ CLASS z2ui5_cl_xml_view DEFINITION METHODS hbox IMPORTING - class TYPE clike OPTIONAL + class TYPE clike OPTIONAL + justifycontent TYPE clike OPTIONAL RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. @@ -1396,6 +1397,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION. name = `HBox` t_prop = VALUE #( ( n = `class` v = class ) + ( n = `justifyContent` v = justifycontent ) ) ). ENDMETHOD. diff --git a/src/z2ui5_cl_http_handler.clas.abap b/src/z2ui5_cl_http_handler.clas.abap index 711533e5..65e52a0a 100644 --- a/src/z2ui5_cl_http_handler.clas.abap +++ b/src/z2ui5_cl_http_handler.clas.abap @@ -89,7 +89,7 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION. ENDIF. IF content_security_policy IS NOT SUPPLIED. - DATA(lv_sec_policy) = ``. + DATA(lv_sec_policy) = ``. ELSE. lv_sec_policy = content_security_policy. ENDIF.