diff --git a/src/zabapgit_gui_router.prog.abap b/src/zabapgit_gui_router.prog.abap
index 72792c242..273e0f47c 100644
--- a/src/zabapgit_gui_router.prog.abap
+++ b/src/zabapgit_gui_router.prog.abap
@@ -127,7 +127,11 @@ CLASS lcl_gui_router IMPLEMENTATION.
" DB actions
WHEN 'db_display' OR 'db_edit'.
ei_page = get_page_db_by_name( iv_name = iv_action iv_getdata = iv_getdata ).
- ev_state = gc_event_state-new_page.
+ IF iv_prev_page = 'PAGE_DB_DISPLAY'.
+ ev_state = gc_event_state-new_page_replacing.
+ ELSE.
+ ev_state = gc_event_state-new_page.
+ ENDIF.
WHEN 'db_delete'.
db_delete( iv_getdata = iv_getdata ).
ev_state = gc_event_state-re_render.
diff --git a/src/zabapgit_page_db.prog.abap b/src/zabapgit_page_db.prog.abap
index 3a6251e50..d88eb7cb7 100644
--- a/src/zabapgit_page_db.prog.abap
+++ b/src/zabapgit_page_db.prog.abap
@@ -86,6 +86,7 @@ CLASS lcl_gui_page_db_display IMPLEMENTATION.
_add ' white-space: pre-wrap;'.
_add ' background-color: #eaeaea;'.
_add ' padding: 0.5em;'.
+ _add ' margin: 0.5em 0em;'.
_add ' width: 50em;'.
_add '}'.
@@ -235,7 +236,7 @@ CLASS lcl_gui_page_db DEFINITION FINAL INHERITING FROM lcl_gui_page_super.
METHODS styles
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
METHODS explain_content
- IMPORTING iv_data TYPE lcl_persistence_db=>ty_content
+ IMPORTING is_data TYPE lcl_persistence_db=>ty_content
RETURNING VALUE(rv_text) TYPE string.
@@ -246,7 +247,6 @@ CLASS lcl_gui_page_db IMPLEMENTATION.
METHOD lif_gui_page~render.
DATA: lt_data TYPE lcl_persistence_db=>tt_content,
- lv_escaped TYPE string,
lv_action TYPE string,
lv_trclass TYPE string,
lo_toolbar TYPE REF TO lcl_html_toolbar.
@@ -262,7 +262,7 @@ CLASS lcl_gui_page_db IMPLEMENTATION.
ro_html->add( title( 'DATABASE PERSISTENCY' ) ).
ro_html->add( '
' ).
- ro_html->add( '
' ). "width="100%"
+ ro_html->add( '' ).
" Header
ro_html->add( '' ).
@@ -280,7 +280,6 @@ CLASS lcl_gui_page_db IMPLEMENTATION.
ENDIF.
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 }| ).
@@ -290,7 +289,7 @@ 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( |{ explain_content( ) } | | ).
ro_html->add( '' ).
ro_html->add( lo_toolbar->render( iv_vertical = abap_false ) ).
ro_html->add( ' | ' ).
@@ -309,39 +308,44 @@ CLASS lcl_gui_page_db IMPLEMENTATION.
lv_match TYPE submatch_result,
lv_cnt TYPE i.
- CASE iv_data-type.
+ CASE is_data-type.
WHEN 'REPO'.
- rv_text = '???'. " Fallback default
-
FIND FIRST OCCURRENCE OF REGEX '(.*)'
- IN iv_data-data_str IGNORING CASE RESULTS lv_result.
+ IN is_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).
+ rv_text = is_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.
+ IN is_data-data_str IGNORING CASE MATCH COUNT lv_cnt.
IF lv_cnt > 0.
- rv_text = |Online: YES, Name: { lcl_url=>name( rv_text ) }|.
+ rv_text = |On-line, Name: { lcl_url=>name( rv_text ) }|.
ELSE.
- rv_text = |Online: NO, Name: { rv_text }|.
+ rv_text = |Off-line, Name: { rv_text }|.
ENDIF.
WHEN 'BACKGROUND'.
FIND FIRST OCCURRENCE OF REGEX '(.*)'
- IN iv_data-data_str IGNORING CASE RESULTS lv_result.
+ IN is_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( ) }|.
+ rv_text = |Method: { is_data-data_str+lv_match-offset(lv_match-length) }, |
+ && |Repository: { lcl_app=>repo_srv( )->get( is_data-value )->get_name( ) }|.
WHEN 'USER'.
rv_text = '-'. " No additional explanation for user
WHEN OTHERS.
- rv_text = '???'.
+ IF strlen( is_data-data_str ) >= 250.
+ rv_text = is_data-data_str(250).
+ ELSE.
+ rv_text = is_data-data_str.
+ ENDIF.
+ rv_text = escape( val = rv_text
+ format = cl_abap_format=>e_html_attr ).
+ rv_text = |{ rv_text }
|.
ENDCASE.
ENDMETHOD. "explain_content
@@ -354,6 +358,14 @@ CLASS lcl_gui_page_db IMPLEMENTATION.
_add ' background-color: #f2f2f2;'.
_add ' padding: 0.5em;'.
_add '}'.
+ _add 'table.db_tab pre {'.
+ _add ' display: inline-block;'.
+ _add ' overflow: hidden;'.
+ _add ' word-wrap:break-word;'.
+ _add ' white-space: pre-wrap;'.
+ _add ' margin: 0px;'.
+ _add ' width: 30em;'.
+ _add '}'.
_add 'table.db_tab tr.firstrow td { padding-top: 0.5em; }'.
_add 'table.db_tab th {'.
_add ' text-align: left;'.