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.