' ).
+
ro_html->add( |Type: | | &&
| { ms_key-type } | | ).
- ro_html->add( |Value: | | &&
+ ro_html->add( |Key: | | &&
| { ms_key-value } | | ).
+
+ ro_html->add( '' ).
+ ro_html->add_anchor( iv_txt = 'Edit' iv_act = |{ gc_action-db_edit }?{ lv_action }| ).
+ ro_html->add( ' | ' ).
+
ro_html->add( |{ lv_data } | ).
ro_html->add( '' ).
@@ -68,37 +66,6 @@ CLASS lcl_gui_page_db_display IMPLEMENTATION.
ENDMETHOD.
- METHOD styles.
-
- CREATE OBJECT ro_html.
-
- _add '/* DB ENTRY DISPLAY */'.
- _add 'div.db_entry {'.
- _add ' background-color: #f2f2f2;'.
- _add ' padding: 0.5em;'.
- _add '}'.
-
- _add 'div.db_entry pre {'.
- _add ' display: block;'.
- _add ' overflow: hidden;'.
- _add ' word-wrap:break-word;'.
- _add ' white-space: pre-wrap;'.
- _add ' background-color: #eaeaea;'.
- _add ' padding: 0.5em;'.
- _add ' width: 50em;'.
- _add '}'.
-
- _add 'table.tag {'.
- _add ' display: inline-block;'.
- _add ' border: 1px #b3c1cc solid;'.
- _add ' background-color: #eee;'.
- _add ' margin-right: 0.5em; '.
- _add '}'.
- _add 'table.tag td { padding: 0.2em 0.5em; }'.
- _add 'table.tag td.label { background-color: #b3c1cc; }'.
-
- ENDMETHOD. "styles
-
ENDCLASS.
CLASS lcl_gui_page_db_edit DEFINITION FINAL INHERITING FROM lcl_gui_page_super.
@@ -112,12 +79,6 @@ CLASS lcl_gui_page_db_edit DEFINITION FINAL INHERITING FROM lcl_gui_page_super.
PRIVATE SECTION.
DATA: ms_key TYPE lcl_persistence_db=>ty_content.
- METHODS styles
- RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
-
- METHODS scripts
- RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
-
ENDCLASS.
CLASS lcl_gui_page_db_edit IMPLEMENTATION.
@@ -151,7 +112,7 @@ CLASS lcl_gui_page_db_edit IMPLEMENTATION.
CREATE OBJECT ro_html.
CREATE OBJECT lo_toolbar.
- ro_html->add( header( io_include_style = styles( ) ) ).
+ ro_html->add( header( ) ).
ro_html->add( title( 'CONFIG EDIT' ) ).
ro_html->add( '' ).
@@ -159,11 +120,11 @@ 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
- ro_html->add( '' ).
" Menu
- lo_toolbar->add( iv_act = 'submitDBForm();'
+ lo_toolbar->add( iv_act = 'submitFormById(''db_form'');'
iv_txt = 'Save'
iv_typ = gc_action_type-onclick
iv_opt = gc_html_opt-emphas ) ##NO_TEXT.
@@ -182,40 +143,23 @@ CLASS lcl_gui_page_db_edit IMPLEMENTATION.
ro_html->add( '' ). "db_entry
- ro_html->add( footer( io_include_script = scripts( ) ) ).
+ ro_html->add( footer( ) ).
ENDMETHOD.
- METHOD styles.
+ENDCLASS.
- CREATE OBJECT ro_html.
+CLASS lcl_gui_page_db DEFINITION FINAL INHERITING FROM lcl_gui_page_super.
- _add '/* DB ENTRY DISPLAY */'.
- _add 'div.db_entry {'.
- _add ' background-color: #f2f2f2;'.
- _add ' padding: 0.5em;'.
- _add '}'.
- _add 'div.db_entry textarea { margin: 0.5em 0em; }'.
- _add 'table.tag {'.
- _add ' display: inline-block;'.
- _add ' border: 1px #b3c1cc solid;'.
- _add ' background-color: #eee;'.
- _add ' margin-right: 0.5em; '.
- _add '}'.
- _add 'table.tag td { padding: 0.2em 0.5em; }'.
- _add 'table.tag td.label { background-color: #b3c1cc; }'.
+ PUBLIC SECTION.
+ METHODS lif_gui_page~render REDEFINITION.
- ENDMETHOD. "styles
+ PRIVATE SECTION.
+ METHODS explain_content
+ IMPORTING is_data TYPE lcl_persistence_db=>ty_content
+ RETURNING VALUE(rv_text) TYPE string
+ RAISING lcx_exception.
- METHOD scripts.
-
- CREATE OBJECT ro_html.
-
- _add 'function submitDBForm() {'.
- _add ' document.getElementById("db_form").submit();'.
- _add '}'.
-
- ENDMETHOD. "scripts
ENDCLASS.
@@ -224,7 +168,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.
@@ -236,16 +179,16 @@ CLASS lcl_gui_page_db IMPLEMENTATION.
CREATE OBJECT ro_html.
- ro_html->add( header( io_include_style = styles( ) ) ).
+ ro_html->add( header( ) ).
ro_html->add( title( 'DATABASE PERSISTENCY' ) ).
ro_html->add( '' ).
- ro_html->add( ' ' ).
+ ro_html->add( '' ).
" 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,27 +200,19 @@ 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( ).
CREATE OBJECT lo_toolbar.
- lo_toolbar->add( iv_txt = 'Display' iv_act = |db_display?{ lv_action }| ).
- lo_toolbar->add( iv_txt = 'Edit' iv_act = |db_edit?{ lv_action }| ).
- lo_toolbar->add( iv_txt = 'Delete' iv_act = |db_delete?{ lv_action }| ).
+ lo_toolbar->add( iv_txt = 'Display' iv_act = |{ gc_action-db_display }?{ lv_action }| ).
+ lo_toolbar->add( iv_txt = 'Edit' iv_act = |{ gc_action-db_edit }?{ lv_action }| ).
+ lo_toolbar->add( iv_txt = 'Delete' iv_act = |{ gc_action-db_delete }?{ lv_action }| ).
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_true ) ).
+ ro_html->add( lo_toolbar->render( iv_vertical = abap_false ) ).
ro_html->add( ' | ' ).
ro_html->add( ' ' ).
ENDLOOP.
@@ -289,37 +224,50 @@ CLASS lcl_gui_page_db IMPLEMENTATION.
ENDMETHOD. "lif_gui_page~render
- METHOD styles.
+ METHOD explain_content.
+ DATA: lv_result TYPE match_result,
+ lv_match TYPE submatch_result,
+ lv_cnt TYPE i.
- CREATE OBJECT ro_html.
+ CASE is_data-type.
+ WHEN 'REPO'.
+ FIND FIRST OCCURRENCE OF REGEX '(.*)'
+ 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 = is_data-data_str+lv_match-offset(lv_match-length).
+ ENDIF.
- _add '/* DB ENTRIES */'.
- _add 'div.db_list {'.
- _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 ' border-bottom: 1px #ddd solid;'.
- _add '}'.
- _add 'table.db_tab td {'.
- _add ' color: #333;'.
- _add ' padding: 0.2em;'.
- _add ' vertical-align: top;'.
- _add '}'.
+ FIND FIRST OCCURRENCE OF REGEX ''
+ IN is_data-data_str IGNORING CASE MATCH COUNT lv_cnt.
+ IF lv_cnt > 0.
+ rv_text = |On-line, Name: { lcl_url=>name( rv_text ) }|.
+ ELSE.
+ rv_text = |Off-line, Name: { rv_text }|.
+ ENDIF.
- ENDMETHOD. "styles
+ WHEN 'BACKGROUND'.
+ FIND FIRST OCCURRENCE OF REGEX '(.*)'
+ 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: { 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.
+ 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
ENDCLASS.
\ No newline at end of file
diff --git a/src/zabapgit_page_debug.prog.abap b/src/zabapgit_page_debug.prog.abap
new file mode 100644
index 000000000..e7bd0446a
--- /dev/null
+++ b/src/zabapgit_page_debug.prog.abap
@@ -0,0 +1,97 @@
+*&---------------------------------------------------------------------*
+*& Include ZABAPGIT_PAGE_DEBUG
+*&---------------------------------------------------------------------*
+
+CLASS lcl_gui_page_debuginfo DEFINITION FINAL INHERITING FROM lcl_gui_page_super.
+ PUBLIC SECTION.
+ METHODS lif_gui_page~render REDEFINITION.
+
+ PRIVATE SECTION.
+ METHODS scripts
+ RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
+ METHODS render_debug_info
+ RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
+ METHODS render_supported_object_types
+ RETURNING VALUE(rv_html) TYPE string.
+
+ENDCLASS. "lcl_gui_page_debuginfo
+
+CLASS lcl_gui_page_debuginfo IMPLEMENTATION.
+
+ METHOD lif_gui_page~render.
+
+ CREATE OBJECT ro_html.
+
+ ro_html->add( header( ) ).
+ ro_html->add( title( 'DEBUG INFO' ) ).
+
+ ro_html->add( '' ).
+ ro_html->add( render_debug_info( ) ).
+ ro_html->add( render_supported_object_types( ) ).
+ ro_html->add( ' ' ).
+
+ ro_html->add( footer( io_include_script = scripts( ) ) ).
+
+ ENDMETHOD.
+
+ METHOD render_debug_info.
+
+ DATA: lt_ver_tab TYPE filetable,
+ lv_rc TYPE i,
+ lv_gui_version TYPE string,
+ ls_version LIKE LINE OF lt_ver_tab.
+
+ cl_gui_frontend_services=>get_gui_version(
+ CHANGING version_table = lt_ver_tab rc = lv_rc
+ EXCEPTIONS OTHERS = 1 ).
+ READ TABLE lt_ver_tab INTO ls_version INDEX 1.
+ lv_gui_version = ls_version-filename.
+ READ TABLE lt_ver_tab INTO ls_version INDEX 2.
+ lv_gui_version = |{ lv_gui_version }.{ ls_version-filename }|.
+
+ CREATE OBJECT ro_html.
+
+ ro_html->add( |abapGit version: { gc_abap_version } | ).
+ ro_html->add( |XML version: { gc_xml_version } | ).
+ ro_html->add( |GUI version: { lv_gui_version } | ).
+
+ ENDMETHOD. "render_debug_info
+
+ METHOD render_supported_object_types.
+
+ DATA: lt_objects TYPE STANDARD TABLE OF ko100,
+ lv_list TYPE string,
+ ls_item TYPE ty_item.
+
+ FIELD-SYMBOLS
|