diff --git a/src/zabapgit_page_db.prog.abap b/src/zabapgit_page_db.prog.abap
index 36b057a0a..b35fb72c4 100644
--- a/src/zabapgit_page_db.prog.abap
+++ b/src/zabapgit_page_db.prog.abap
@@ -2,17 +2,6 @@
*& Include ZABAPGIT_PAGE_DB
*&---------------------------------------------------------------------*
-CLASS lcl_gui_page_db DEFINITION FINAL INHERITING FROM lcl_gui_page_super.
-
- PUBLIC SECTION.
- METHODS lif_gui_page~render REDEFINITION.
-
- PRIVATE SECTION.
- METHODS styles
- RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
-
-ENDCLASS.
-
CLASS lcl_gui_page_db_display DEFINITION FINAL INHERITING FROM lcl_gui_page_super.
PUBLIC SECTION.
@@ -59,7 +48,7 @@ CLASS lcl_gui_page_db_display IMPLEMENTATION.
ro_html->add( '
' ).
ro_html->add( |
Type: | | &&
| { ms_key-type } |
| ).
- ro_html->add( |
Value: | | &&
+ ro_html->add( |Key: | | &&
| { ms_key-value } |
| ).
ro_html->add( |{ lv_data }
| ).
ro_html->add( '' ).
@@ -92,6 +81,7 @@ CLASS lcl_gui_page_db_display IMPLEMENTATION.
_add ' display: inline-block;'.
_add ' border: 1px #b3c1cc solid;'.
_add ' background-color: #eee;'.
+ _add ' border-radius: 3px;'.
_add ' margin-right: 0.5em; '.
_add '}'.
_add 'table.tag td { padding: 0.2em 0.5em; }'.
@@ -159,7 +149,7 @@ CLASS lcl_gui_page_db_edit IMPLEMENTATION.
" Banners
ro_html->add( |Type: | | &&
| { ms_key-type } |
| ).
- ro_html->add( |Value: | | &&
+ ro_html->add( |Key: | | &&
| { ms_key-value } |
| ).
" Form
@@ -200,6 +190,7 @@ CLASS lcl_gui_page_db_edit IMPLEMENTATION.
_add ' display: inline-block;'.
_add ' border: 1px #b3c1cc solid;'.
_add ' background-color: #eee;'.
+ _add ' border-radius: 3px;'.
_add ' margin-right: 0.5em; '.
_add '}'.
_add 'table.tag td { padding: 0.2em 0.5em; }'.
@@ -219,6 +210,21 @@ CLASS lcl_gui_page_db_edit IMPLEMENTATION.
ENDCLASS.
+CLASS lcl_gui_page_db DEFINITION FINAL INHERITING FROM lcl_gui_page_super.
+
+ PUBLIC SECTION.
+ METHODS lif_gui_page~render REDEFINITION.
+
+ PRIVATE SECTION.
+ METHODS styles
+ RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
+ METHODS explain_content
+ IMPORTING iv_data TYPE lcl_persistence_db=>ty_content
+ RETURNING VALUE(rv_text) TYPE string.
+
+
+ENDCLASS.
+
CLASS lcl_gui_page_db IMPLEMENTATION.
METHOD lif_gui_page~render.
@@ -240,12 +246,12 @@ CLASS lcl_gui_page_db IMPLEMENTATION.
ro_html->add( title( 'DATABASE PERSISTENCY' ) ).
ro_html->add( '' ).
- ro_html->add( '
' ).
+ ro_html->add( '' ). "width="100%"
" Header
ro_html->add( '' ).
ro_html->add( 'Type | ' ).
- ro_html->add( 'Value | ' ).
+ ro_html->add( 'Key | ' ).
ro_html->add( 'Data | ' ).
ro_html->add( ' | ' ).
ro_html->add( '
' ).
@@ -257,15 +263,8 @@ CLASS lcl_gui_page_db IMPLEMENTATION.
lv_trclass = ' class="firstrow"' ##NO_TEXT.
ENDIF.
- IF strlen( -data_str ) >= 250.
- lv_escaped = escape( val = -data_str(250)
- format = cl_abap_format=>e_html_attr ).
- ELSE.
- lv_escaped = escape( val = -data_str
- format = cl_abap_format=>e_html_attr ).
- ENDIF.
-
- lv_action = lcl_html_action_utils=>dbkey_encode( ).
+ lv_action = lcl_html_action_utils=>dbkey_encode( ).
+ lv_escaped = explain_content( ).
CREATE OBJECT lo_toolbar.
lo_toolbar->add( iv_txt = 'Display' iv_act = |db_display?{ lv_action }| ).
@@ -275,9 +274,9 @@ CLASS lcl_gui_page_db IMPLEMENTATION.
ro_html->add( || ).
ro_html->add( |{ -type } | | ).
ro_html->add( |{ -value } | | ).
- ro_html->add( |{ lv_escaped } | | ).
+ ro_html->add( |{ lv_escaped } | | ).
ro_html->add( '' ).
- ro_html->add( lo_toolbar->render( iv_vertical = abap_true ) ).
+ ro_html->add( lo_toolbar->render( iv_vertical = abap_false ) ).
ro_html->add( ' | ' ).
ro_html->add( '
' ).
ENDLOOP.
@@ -289,6 +288,47 @@ CLASS lcl_gui_page_db IMPLEMENTATION.
ENDMETHOD. "lif_gui_page~render
+ METHOD explain_content.
+ DATA: lv_result TYPE match_result,
+ lv_match TYPE submatch_result,
+ lv_cnt TYPE i.
+
+ CASE iv_data-type.
+ WHEN 'REPO'.
+ rv_text = '???'. " Fallback default
+
+ FIND FIRST OCCURRENCE OF REGEX '(.*)'
+ IN iv_data-data_str IGNORING CASE RESULTS lv_result.
+ READ TABLE lv_result-submatches INTO lv_match INDEX 1.
+ IF sy-subrc IS INITIAL.
+ rv_text = iv_data-data_str+lv_match-offset(lv_match-length).
+ ENDIF.
+
+ FIND FIRST OCCURRENCE OF REGEX ''
+ IN iv_data-data_str IGNORING CASE MATCH COUNT lv_cnt.
+ IF lv_cnt > 0.
+ rv_text = |Online: YES, Name: { lcl_url=>name( rv_text ) }|.
+ ELSE.
+ rv_text = |Online: NO, Name: { rv_text }|.
+ ENDIF.
+
+ WHEN 'BACKGROUND'.
+ FIND FIRST OCCURRENCE OF REGEX '(.*)'
+ IN iv_data-data_str IGNORING CASE RESULTS lv_result.
+ READ TABLE lv_result-submatches INTO lv_match INDEX 1.
+ IF sy-subrc IS NOT INITIAL.
+ RETURN.
+ ENDIF.
+ rv_text = |Method: { iv_data-data_str+lv_match-offset(lv_match-length) }, |
+ && |Repository: { lcl_app=>repo_srv( )->get( iv_data-value )->get_name( ) }|.
+
+ WHEN 'USER'.
+ rv_text = '-'. " No additional explanation for user
+ WHEN OTHERS.
+ rv_text = '???'.
+ ENDCASE.
+ ENDMETHOD. "explain_content
+
METHOD styles.
CREATE OBJECT ro_html.
@@ -298,27 +338,22 @@ CLASS lcl_gui_page_db IMPLEMENTATION.
_add ' background-color: #f2f2f2;'.
_add ' padding: 0.5em;'.
_add '}'.
- _add 'table.db_tab pre {'.
- _add ' display: block;'.
- _add ' overflow: hidden;'.
- _add ' word-wrap:break-word;'.
- _add ' white-space: pre-wrap;'.
- _add ' background-color: #eaeaea;'.
- _add ' padding: 3px;'.
- _add ' width: 50em;'.
- _add '}'.
_add 'table.db_tab tr.firstrow td { padding-top: 0.5em; }'.
_add 'table.db_tab th {'.
_add ' text-align: left;'.
_add ' color: #888;'.
- _add ' padding: 0.2em;'.
+ _add ' padding: 0.5em;'.
_add ' border-bottom: 1px #ddd solid;'.
_add '}'.
_add 'table.db_tab td {'.
_add ' color: #333;'.
- _add ' padding: 0.2em;'.
+ _add ' padding: 0.5em;'.
_add ' vertical-align: top;'.
_add '}'.
+ _add 'table.db_tab td.data {'.
+ _add ' color: #888;'.
+ _add ' font-style: italic;'.
+ _add '}'.
ENDMETHOD. "styles