mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
#332, db page improvements, part1
This commit is contained in:
parent
d18ca4a02c
commit
42474897b3
|
@ -2,17 +2,6 @@
|
||||||
*& Include ZABAPGIT_PAGE_DB
|
*& 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.
|
CLASS lcl_gui_page_db_display DEFINITION FINAL INHERITING FROM lcl_gui_page_super.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
@ -59,7 +48,7 @@ CLASS lcl_gui_page_db_display IMPLEMENTATION.
|
||||||
ro_html->add( '<div class="db_entry">' ).
|
ro_html->add( '<div class="db_entry">' ).
|
||||||
ro_html->add( |<table class="tag"><tr><td class="label">Type:</td>| &&
|
ro_html->add( |<table class="tag"><tr><td class="label">Type:</td>| &&
|
||||||
| <td>{ ms_key-type }</td></tr></table>| ).
|
| <td>{ ms_key-type }</td></tr></table>| ).
|
||||||
ro_html->add( |<table class="tag"><tr><td class="label">Value:</td>| &&
|
ro_html->add( |<table class="tag"><tr><td class="label">Key:</td>| &&
|
||||||
| <td>{ ms_key-value }</td></tr></table>| ).
|
| <td>{ ms_key-value }</td></tr></table>| ).
|
||||||
ro_html->add( |<pre>{ lv_data }</pre>| ).
|
ro_html->add( |<pre>{ lv_data }</pre>| ).
|
||||||
ro_html->add( '</div>' ).
|
ro_html->add( '</div>' ).
|
||||||
|
@ -92,6 +81,7 @@ CLASS lcl_gui_page_db_display IMPLEMENTATION.
|
||||||
_add ' display: inline-block;'.
|
_add ' display: inline-block;'.
|
||||||
_add ' border: 1px #b3c1cc solid;'.
|
_add ' border: 1px #b3c1cc solid;'.
|
||||||
_add ' background-color: #eee;'.
|
_add ' background-color: #eee;'.
|
||||||
|
_add ' border-radius: 3px;'.
|
||||||
_add ' margin-right: 0.5em; '.
|
_add ' margin-right: 0.5em; '.
|
||||||
_add '}'.
|
_add '}'.
|
||||||
_add 'table.tag td { padding: 0.2em 0.5em; }'.
|
_add 'table.tag td { padding: 0.2em 0.5em; }'.
|
||||||
|
@ -159,7 +149,7 @@ CLASS lcl_gui_page_db_edit IMPLEMENTATION.
|
||||||
" Banners
|
" Banners
|
||||||
ro_html->add( |<table class="tag"><tr><td class="label">Type:</td>| &&
|
ro_html->add( |<table class="tag"><tr><td class="label">Type:</td>| &&
|
||||||
| <td>{ ms_key-type }</td></tr></table>| ).
|
| <td>{ ms_key-type }</td></tr></table>| ).
|
||||||
ro_html->add( |<table class="tag"><tr><td class="label">Value:</td>| &&
|
ro_html->add( |<table class="tag"><tr><td class="label">Key:</td>| &&
|
||||||
| <td>{ ms_key-value }</td></tr></table>| ).
|
| <td>{ ms_key-value }</td></tr></table>| ).
|
||||||
|
|
||||||
" Form
|
" Form
|
||||||
|
@ -200,6 +190,7 @@ CLASS lcl_gui_page_db_edit IMPLEMENTATION.
|
||||||
_add ' display: inline-block;'.
|
_add ' display: inline-block;'.
|
||||||
_add ' border: 1px #b3c1cc solid;'.
|
_add ' border: 1px #b3c1cc solid;'.
|
||||||
_add ' background-color: #eee;'.
|
_add ' background-color: #eee;'.
|
||||||
|
_add ' border-radius: 3px;'.
|
||||||
_add ' margin-right: 0.5em; '.
|
_add ' margin-right: 0.5em; '.
|
||||||
_add '}'.
|
_add '}'.
|
||||||
_add 'table.tag td { padding: 0.2em 0.5em; }'.
|
_add 'table.tag td { padding: 0.2em 0.5em; }'.
|
||||||
|
@ -219,6 +210,21 @@ CLASS lcl_gui_page_db_edit IMPLEMENTATION.
|
||||||
|
|
||||||
ENDCLASS.
|
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.
|
CLASS lcl_gui_page_db IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD lif_gui_page~render.
|
METHOD lif_gui_page~render.
|
||||||
|
@ -240,12 +246,12 @@ CLASS lcl_gui_page_db IMPLEMENTATION.
|
||||||
ro_html->add( title( 'DATABASE PERSISTENCY' ) ).
|
ro_html->add( title( 'DATABASE PERSISTENCY' ) ).
|
||||||
|
|
||||||
ro_html->add( '<div class="db_list">' ).
|
ro_html->add( '<div class="db_list">' ).
|
||||||
ro_html->add( '<table width="100%" class="db_tab">' ).
|
ro_html->add( '<table class="db_tab">' ). "width="100%"
|
||||||
|
|
||||||
" Header
|
" Header
|
||||||
ro_html->add( '<tr>' ).
|
ro_html->add( '<tr>' ).
|
||||||
ro_html->add( '<th>Type</th>' ).
|
ro_html->add( '<th>Type</th>' ).
|
||||||
ro_html->add( '<th>Value</th>' ).
|
ro_html->add( '<th>Key</th>' ).
|
||||||
ro_html->add( '<th>Data</th>' ).
|
ro_html->add( '<th>Data</th>' ).
|
||||||
ro_html->add( '<th></th>' ).
|
ro_html->add( '<th></th>' ).
|
||||||
ro_html->add( '</tr>' ).
|
ro_html->add( '</tr>' ).
|
||||||
|
@ -257,15 +263,8 @@ CLASS lcl_gui_page_db IMPLEMENTATION.
|
||||||
lv_trclass = ' class="firstrow"' ##NO_TEXT.
|
lv_trclass = ' class="firstrow"' ##NO_TEXT.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF strlen( <ls_data>-data_str ) >= 250.
|
lv_action = lcl_html_action_utils=>dbkey_encode( <ls_data> ).
|
||||||
lv_escaped = escape( val = <ls_data>-data_str(250)
|
lv_escaped = explain_content( <ls_data> ).
|
||||||
format = cl_abap_format=>e_html_attr ).
|
|
||||||
ELSE.
|
|
||||||
lv_escaped = escape( val = <ls_data>-data_str
|
|
||||||
format = cl_abap_format=>e_html_attr ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
lv_action = lcl_html_action_utils=>dbkey_encode( <ls_data> ).
|
|
||||||
|
|
||||||
CREATE OBJECT lo_toolbar.
|
CREATE OBJECT lo_toolbar.
|
||||||
lo_toolbar->add( iv_txt = 'Display' iv_act = |db_display?{ lv_action }| ).
|
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( |<tr{ lv_trclass }>| ).
|
ro_html->add( |<tr{ lv_trclass }>| ).
|
||||||
ro_html->add( |<td>{ <ls_data>-type }</td>| ).
|
ro_html->add( |<td>{ <ls_data>-type }</td>| ).
|
||||||
ro_html->add( |<td>{ <ls_data>-value }</td>| ).
|
ro_html->add( |<td>{ <ls_data>-value }</td>| ).
|
||||||
ro_html->add( |<td><pre>{ lv_escaped }</pre></td>| ).
|
ro_html->add( |<td class="data">{ lv_escaped }</td>| ).
|
||||||
ro_html->add( '<td>' ).
|
ro_html->add( '<td>' ).
|
||||||
ro_html->add( lo_toolbar->render( iv_vertical = abap_true ) ).
|
ro_html->add( lo_toolbar->render( iv_vertical = abap_false ) ).
|
||||||
ro_html->add( '</td>' ).
|
ro_html->add( '</td>' ).
|
||||||
ro_html->add( '</tr>' ).
|
ro_html->add( '</tr>' ).
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
@ -289,6 +288,47 @@ CLASS lcl_gui_page_db IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. "lif_gui_page~render
|
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 '<url>(.*)</url>'
|
||||||
|
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 '<OFFLINE/>'
|
||||||
|
IN iv_data-data_str IGNORING CASE MATCH COUNT lv_cnt.
|
||||||
|
IF lv_cnt > 0.
|
||||||
|
rv_text = |Online: YES, Name: <b>{ lcl_url=>name( rv_text ) }</b>|.
|
||||||
|
ELSE.
|
||||||
|
rv_text = |Online: NO, Name: <b>{ rv_text }</b>|.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
WHEN 'BACKGROUND'.
|
||||||
|
FIND FIRST OCCURRENCE OF REGEX '<method>(.*)</method>'
|
||||||
|
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.
|
METHOD styles.
|
||||||
|
|
||||||
CREATE OBJECT ro_html.
|
CREATE OBJECT ro_html.
|
||||||
|
@ -298,27 +338,22 @@ CLASS lcl_gui_page_db IMPLEMENTATION.
|
||||||
_add ' background-color: #f2f2f2;'.
|
_add ' background-color: #f2f2f2;'.
|
||||||
_add ' padding: 0.5em;'.
|
_add ' padding: 0.5em;'.
|
||||||
_add '}'.
|
_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 tr.firstrow td { padding-top: 0.5em; }'.
|
||||||
_add 'table.db_tab th {'.
|
_add 'table.db_tab th {'.
|
||||||
_add ' text-align: left;'.
|
_add ' text-align: left;'.
|
||||||
_add ' color: #888;'.
|
_add ' color: #888;'.
|
||||||
_add ' padding: 0.2em;'.
|
_add ' padding: 0.5em;'.
|
||||||
_add ' border-bottom: 1px #ddd solid;'.
|
_add ' border-bottom: 1px #ddd solid;'.
|
||||||
_add '}'.
|
_add '}'.
|
||||||
_add 'table.db_tab td {'.
|
_add 'table.db_tab td {'.
|
||||||
_add ' color: #333;'.
|
_add ' color: #333;'.
|
||||||
_add ' padding: 0.2em;'.
|
_add ' padding: 0.5em;'.
|
||||||
_add ' vertical-align: top;'.
|
_add ' vertical-align: top;'.
|
||||||
_add '}'.
|
_add '}'.
|
||||||
|
_add 'table.db_tab td.data {'.
|
||||||
|
_add ' color: #888;'.
|
||||||
|
_add ' font-style: italic;'.
|
||||||
|
_add '}'.
|
||||||
|
|
||||||
ENDMETHOD. "styles
|
ENDMETHOD. "styles
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user