From 204dbcdbaedc61d141c9e457b33ec72f74e26c5a Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Wed, 29 Nov 2023 08:24:34 -0500 Subject: [PATCH] Add some stats for DB view (#6675) --- .../pages/zcl_abapgit_gui_page_db.clas.abap | 49 +++++++++++++++++-- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/src/ui/pages/zcl_abapgit_gui_page_db.clas.abap b/src/ui/pages/zcl_abapgit_gui_page_db.clas.abap index 509842ce3..bad793bea 100644 --- a/src/ui/pages/zcl_abapgit_gui_page_db.clas.abap +++ b/src/ui/pages/zcl_abapgit_gui_page_db.clas.abap @@ -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 LIKE LINE OF it_db_entries. + + LOOP AT it_db_entries ASSIGNING . + IF -type = zcl_abapgit_persistence_db=>c_type_repo. + FIND FIRST OCCURRENCE OF REGEX '' + IN -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 -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( '
' ). + ri_html->add( render_stats( lt_db_entries ) ). + ri_html->add( '
' ). ri_html->add( '
' ). ri_html->add( render_table( lt_db_entries ) ).