From f6a4e1a4480c523c05866e0d94deb7bbf6beecbc Mon Sep 17 00:00:00 2001 From: Christian Guenter Date: Mon, 28 Aug 2017 18:34:32 +0000 Subject: [PATCH] Add counter for deleted objects Add counter for deleted objects and show popup only if there are any --- src/zabapgit_repo.prog.abap | 3 +++ src/zabapgit_repo_impl.prog.abap | 42 +++++++++++++++++------------ src/zabapgit_services_git.prog.abap | 33 ++++++++++++++--------- 3 files changed, 48 insertions(+), 30 deletions(-) diff --git a/src/zabapgit_repo.prog.abap b/src/zabapgit_repo.prog.abap index db609db03..1c0b7b2d8 100644 --- a/src/zabapgit_repo.prog.abap +++ b/src/zabapgit_repo.prog.abap @@ -131,6 +131,9 @@ CLASS lcl_repo_online DEFINITION INHERITING FROM lcl_repo FINAL. IMPORTING is_comment TYPE lif_defs=>ty_comment io_stage TYPE REF TO lcl_stage RAISING lcx_exception, + get_unnecessary_local_objs + RETURNING VALUE(rt_unnecessary_local_objects) TYPE LIF_DEFS=>TY_TADIR_TT + RAISING lcx_exception, delete_unnecessary_local_objs RAISING lcx_exception lcx_cancel. diff --git a/src/zabapgit_repo_impl.prog.abap b/src/zabapgit_repo_impl.prog.abap index 904586bb1..8d5147f8a 100644 --- a/src/zabapgit_repo_impl.prog.abap +++ b/src/zabapgit_repo_impl.prog.abap @@ -323,14 +323,28 @@ CLASS lcl_repo_online IMPLEMENTATION. METHOD delete_unnecessary_local_objs. - DATA: lt_tadir TYPE lif_defs=>ty_tadir_tt, - lt_tadir_to_delete LIKE lt_tadir, - lt_tadir_to_delete_unique TYPE HASHED TABLE OF lif_defs=>ty_tadir - WITH UNIQUE KEY pgmid object obj_name, - lt_local TYPE lif_defs=>ty_files_item_tt, - lt_remote TYPE lif_defs=>ty_files_tt, - lt_status TYPE lif_defs=>ty_results_tt, - lt_package TYPE lcl_persistence_repo=>ty_repo-package. + DATA: lt_tadir TYPE lif_defs=>ty_tadir_tt. + + lt_tadir = get_unnecessary_local_objs( ). + + IF lines( lt_tadir ) > 0. + + lcl_objects=>delete( lt_tadir ). + + ENDIF. + + ENDMETHOD. " delete_unneccessary_local_objs. + + + METHOD get_unnecessary_local_objs. + + DATA: lt_tadir TYPE lif_defs=>ty_tadir_tt, + lt_tadir_unique TYPE HASHED TABLE OF lif_defs=>ty_tadir + WITH UNIQUE KEY pgmid object obj_name, + lt_local TYPE lif_defs=>ty_files_item_tt, + lt_remote TYPE lif_defs=>ty_files_tt, + lt_status TYPE lif_defs=>ty_results_tt, + lt_package TYPE lcl_persistence_repo=>ty_repo-package. FIELD-SYMBOLS: TYPE lif_defs=>ty_result, TYPE lif_defs=>ty_tadir. @@ -354,19 +368,13 @@ CLASS lcl_repo_online IMPLEMENTATION. BINARY SEARCH. ASSERT sy-subrc = 0. - INSERT INTO TABLE lt_tadir_to_delete_unique. + INSERT INTO TABLE lt_tadir_unique. ENDLOOP. - IF lines( lt_tadir_to_delete_unique ) > 0. - - lt_tadir_to_delete = lt_tadir_to_delete_unique. - lcl_objects=>delete( lt_tadir_to_delete ). - - ENDIF. - - ENDMETHOD. " delete_unneccessary_local_objs. + rt_unnecessary_local_objects = lt_tadir_unique. + ENDMETHOD. ENDCLASS. "lcl_repo_online IMPLEMENTATION diff --git a/src/zabapgit_services_git.prog.abap b/src/zabapgit_services_git.prog.abap index 5e55f0d43..66b307f0c 100644 --- a/src/zabapgit_services_git.prog.abap +++ b/src/zabapgit_services_git.prog.abap @@ -47,8 +47,9 @@ CLASS lcl_services_git IMPLEMENTATION. METHOD reset. - DATA: lo_repo TYPE REF TO lcl_repo_online, - lv_answer TYPE c LENGTH 1. + DATA: lo_repo TYPE REF TO lcl_repo_online, + lv_answer TYPE c LENGTH 1, + lt_unnecessary_local_objs TYPE lif_defs=>ty_tadir_tt. lo_repo ?= lcl_app=>repo_srv( )->get( iv_key ). @@ -70,18 +71,24 @@ CLASS lcl_services_git IMPLEMENTATION. RAISE EXCEPTION TYPE lcx_cancel. ENDIF. - lv_answer = lcl_popups=>popup_to_confirm( - titlebar = 'Warning' - text_question = 'Delete unnecessary local objects?' - text_button_1 = 'Ok' - icon_button_1 = 'ICON_OKAY' - text_button_2 = 'No' - icon_button_2 = 'ICON_CANCEL' - default_button = '2' - display_cancel_button = abap_false ). "#EC NOTEXT + lt_unnecessary_local_objs = lo_repo->get_unnecessary_local_objs( ). + + IF lines( lt_unnecessary_local_objs ) > 0. + + lv_answer = lcl_popups=>popup_to_confirm( + titlebar = 'Warning' + text_question = |Delete ({ lines( lt_unnecessary_local_objs ) }) unnecessary local objects?| + text_button_1 = 'Yes' + icon_button_1 = 'ICON_OKAY' + text_button_2 = 'No' + icon_button_2 = 'ICON_CANCEL' + default_button = '2' + display_cancel_button = abap_false ). "#EC NOTEXT + + IF lv_answer = '1'. + lo_repo->delete_unnecessary_local_objs( ). + ENDIF. - IF lv_answer = '1'. - lo_repo->delete_unnecessary_local_objs( ). ENDIF. lo_repo->deserialize( ).