From 1f235cee78a4c7438b941f235eddbff01238f662 Mon Sep 17 00:00:00 2001 From: sbcgua Date: Sat, 10 Sep 2016 10:04:16 +0300 Subject: [PATCH] #332 DB page improvements, final --- src/zabapgit_gui_router.prog.abap | 6 +++- src/zabapgit_page_db.prog.abap | 46 +++++++++++++++++++------------ 2 files changed, 34 insertions(+), 18 deletions(-) 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( || ). ro_html->add( || ). - ro_html->add( || ). + ro_html->add( || ). 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;'.
{ -type }{ -value }{ lv_escaped }{ explain_content( ) }' ). ro_html->add( lo_toolbar->render( iv_vertical = abap_false ) ). ro_html->add( '