Add some stats for DB view (#6675)

This commit is contained in:
Marc Bernard 2023-11-29 08:24:34 -05:00 committed by GitHub
parent 64a9b36725
commit 204dbcdbae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -29,7 +29,6 @@ CLASS zcl_abapgit_gui_page_db DEFINITION
delete TYPE string VALUE 'delete', delete TYPE string VALUE 'delete',
backup TYPE string VALUE 'backup', backup TYPE string VALUE 'backup',
restore TYPE string VALUE 'restore', restore TYPE string VALUE 'restore',
back TYPE string VALUE 'back',
END OF c_action. END OF c_action.
CONSTANTS c_css_url TYPE string VALUE 'css/page_db.css'. CONSTANTS c_css_url TYPE string VALUE 'css/page_db.css'.
@ -47,6 +46,14 @@ CLASS zcl_abapgit_gui_page_db DEFINITION
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception.
METHODS render_stats
IMPORTING
it_db_entries TYPE zif_abapgit_persistence=>ty_contents
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception.
METHODS render_table METHODS render_table
IMPORTING IMPORTING
it_db_entries TYPE zif_abapgit_persistence=>ty_contents it_db_entries TYPE zif_abapgit_persistence=>ty_contents
@ -514,6 +521,38 @@ CLASS zcl_abapgit_gui_page_db IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD render_stats.
DATA:
lv_cnt TYPE i,
lv_online TYPE i,
lv_offline TYPE i,
lv_users TYPE i.
FIELD-SYMBOLS <ls_db_entry> LIKE LINE OF it_db_entries.
LOOP AT it_db_entries ASSIGNING <ls_db_entry>.
IF <ls_db_entry>-type = zcl_abapgit_persistence_db=>c_type_repo.
FIND FIRST OCCURRENCE OF REGEX '<OFFLINE/>'
IN <ls_db_entry>-data_str IGNORING CASE MATCH COUNT lv_cnt.
IF lv_cnt > 0.
lv_online = lv_online + 1.
ELSE.
lv_offline = lv_offline + 1.
ENDIF.
ELSEIF <ls_db_entry>-type = zcl_abapgit_persistence_db=>c_type_user.
lv_users = lv_users + 1.
ENDIF.
ENDLOOP.
ri_html = zcl_abapgit_html=>create( ).
ri_html->add( |Repositories: { lv_online + lv_offline } ({ lv_online } online, { lv_offline } offline),| ).
ri_html->add( |Users: { lv_users }| ).
ENDMETHOD.
METHOD render_table. METHOD render_table.
ri_html = zcl_abapgit_html_table=>create( me ri_html = zcl_abapgit_html_table=>create( me
@ -566,7 +605,7 @@ CLASS zcl_abapgit_gui_page_db IMPLEMENTATION.
iv_act = c_action-restore ). iv_act = c_action-restore ).
ro_toolbar->add( ro_toolbar->add(
iv_txt = 'Back' iv_txt = 'Back'
iv_act = c_action-back ). iv_act = zif_abapgit_definitions=>c_action-go_back ).
ENDMETHOD. ENDMETHOD.
@ -579,7 +618,11 @@ CLASS zcl_abapgit_gui_page_db IMPLEMENTATION.
lt_db_entries = zcl_abapgit_persistence_db=>get_instance( )->list( ). lt_db_entries = zcl_abapgit_persistence_db=>get_instance( )->list( ).
CREATE OBJECT ri_html TYPE zcl_abapgit_html. ri_html = zcl_abapgit_html=>create( ).
ri_html->add( '<div class="db-list">' ).
ri_html->add( render_stats( lt_db_entries ) ).
ri_html->add( '</div>' ).
ri_html->add( '<div class="db-list">' ). ri_html->add( '<div class="db-list">' ).
ri_html->add( render_table( lt_db_entries ) ). ri_html->add( render_table( lt_db_entries ) ).