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',
backup TYPE string VALUE 'backup',
restore TYPE string VALUE 'restore',
back TYPE string VALUE 'back',
END OF c_action.
CONSTANTS c_css_url TYPE string VALUE 'css/page_db.css'.
@ -47,6 +46,14 @@ CLASS zcl_abapgit_gui_page_db DEFINITION
RAISING
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
IMPORTING
it_db_entries TYPE zif_abapgit_persistence=>ty_contents
@ -514,6 +521,38 @@ CLASS zcl_abapgit_gui_page_db IMPLEMENTATION.
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.
ri_html = zcl_abapgit_html_table=>create( me
@ -566,7 +605,7 @@ CLASS zcl_abapgit_gui_page_db IMPLEMENTATION.
iv_act = c_action-restore ).
ro_toolbar->add(
iv_txt = 'Back'
iv_act = c_action-back ).
iv_act = zif_abapgit_definitions=>c_action-go_back ).
ENDMETHOD.
@ -579,7 +618,11 @@ CLASS zcl_abapgit_gui_page_db IMPLEMENTATION.
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( render_table( lt_db_entries ) ).