Repo View: Activate objects (#5994)

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Marc Bernard 2023-01-16 17:42:40 +01:00 committed by GitHub
parent 0d4e8abfd8
commit 04ca136cdb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 69 additions and 0 deletions

View File

@ -271,6 +271,9 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
CREATE OBJECT ro_advanced_dropdown.
ro_advanced_dropdown->add( iv_txt = 'Activate Objects'
iv_act = |{ zif_abapgit_definitions=>c_action-repo_activate_objects }?key={ mv_key }| ).
IF mo_repo->is_offline( ) = abap_false. " Online ?
ro_advanced_dropdown->add(
iv_txt = 'Transport to Branch'

View File

@ -617,6 +617,9 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
zcl_abapgit_services_repo=>remove( lv_key ).
CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_main EXPORTING iv_only_favorites = abap_true.
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page_replacing.
WHEN zif_abapgit_definitions=>c_action-repo_activate_objects. " Repo activate objects
zcl_abapgit_services_repo=>activate_objects( lv_key ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
WHEN zif_abapgit_definitions=>c_action-repo_newonline. " New offline repo
rs_handled-page = zcl_abapgit_gui_page_addonline=>create( ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.

View File

@ -56,6 +56,13 @@ CLASS zcl_abapgit_services_repo DEFINITION
!io_repo TYPE REF TO zcl_abapgit_repo
RAISING
zcx_abapgit_exception .
CLASS-METHODS activate_objects
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RETURNING
VALUE(ri_log) TYPE REF TO zif_abapgit_log
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
@ -96,6 +103,61 @@ ENDCLASS.
CLASS zcl_abapgit_services_repo IMPLEMENTATION.
METHOD activate_objects.
DATA:
lo_repo TYPE REF TO zcl_abapgit_repo,
lo_browser TYPE REF TO zcl_abapgit_repo_content_list,
lt_repo_items TYPE zif_abapgit_definitions=>ty_repo_item_tt,
lv_count TYPE i,
lv_message TYPE string.
FIELD-SYMBOLS <ls_item> LIKE LINE OF lt_repo_items.
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
CREATE OBJECT lo_browser
EXPORTING
io_repo = lo_repo.
lt_repo_items = lo_browser->list( '/' ).
ri_log = lo_repo->create_new_log( 'Activation Log' ).
" Add all inactive objects to activation queue
zcl_abapgit_objects_activation=>clear( ).
LOOP AT lt_repo_items ASSIGNING <ls_item> WHERE inactive = abap_true.
zcl_abapgit_objects_activation=>add(
iv_type = <ls_item>-obj_type
iv_name = <ls_item>-obj_name ).
lv_count = lv_count + 1.
ENDLOOP.
IF lv_count = 0.
MESSAGE 'No inactive objects found' TYPE 'S'.
RETURN.
ENDIF.
" Activate DDIC + non-DDIC
zcl_abapgit_objects_activation=>activate(
iv_ddic = abap_true
ii_log = ri_log ).
zcl_abapgit_objects_activation=>activate(
iv_ddic = abap_false
ii_log = ri_log ).
IF ri_log->get_status( ) <> zif_abapgit_log=>c_status-error.
lv_message = |Successfully activated { lv_count } objects|.
MESSAGE lv_message TYPE 'S'.
ENDIF.
lo_repo->refresh( iv_drop_log = abap_false ).
ENDMETHOD.
METHOD check_package.
DATA:

View File

@ -446,6 +446,7 @@ INTERFACE zif_abapgit_definitions
repo_background TYPE string VALUE 'repo_background',
repo_infos TYPE string VALUE 'repo_infos',
repo_purge TYPE string VALUE 'repo_purge',
repo_activate_objects TYPE string VALUE 'activate_objects',
repo_newonline TYPE string VALUE 'repo_newonline',
repo_newoffline TYPE string VALUE 'repo_newoffline',
repo_add_all_obj_to_trans_req TYPE string VALUE 'repo_add_all_obj_to_trans_req',