diff --git a/src/apack/zcl_abapgit_apack_helper.clas.abap b/src/apack/zcl_abapgit_apack_helper.clas.abap index 6e7f168f2..5aff830a1 100644 --- a/src/apack/zcl_abapgit_apack_helper.clas.abap +++ b/src/apack/zcl_abapgit_apack_helper.clas.abap @@ -80,7 +80,7 @@ ENDCLASS. -CLASS ZCL_ABAPGIT_APACK_HELPER IMPLEMENTATION. +CLASS zcl_abapgit_apack_helper IMPLEMENTATION. METHOD are_dependencies_met. @@ -109,12 +109,21 @@ CLASS ZCL_ABAPGIT_APACK_HELPER IMPLEMENTATION. METHOD dependencies_popup. - DATA: lt_met_status TYPE ty_dependency_statuses. + DATA: lt_met_status TYPE ty_dependency_statuses, + lv_answer TYPE c LENGTH 1. lt_met_status = get_dependencies_met_status( it_dependencies ). show_dependencies_popup( lt_met_status ). + lv_answer = zcl_abapgit_ui_factory=>get_popups( )->popup_to_confirm( + iv_titlebar = 'Warning' + iv_text_question = 'The project has unmet dependencies. Do you want to continue?' ). + + IF lv_answer <> '1'. + zcx_abapgit_exception=>raise( 'Cancelling because of unmet dependencies.' ). + ENDIF. + ENDMETHOD. diff --git a/src/repo/zcl_abapgit_repo.clas.abap b/src/repo/zcl_abapgit_repo.clas.abap index 60c204de7..c0bcb3bc0 100644 --- a/src/repo/zcl_abapgit_repo.clas.abap +++ b/src/repo/zcl_abapgit_repo.clas.abap @@ -683,8 +683,8 @@ CLASS zcl_abapgit_repo IMPLEMENTATION. zcx_abapgit_exception=>raise( 'Requirements not met and undecided' ). ENDIF. - IF is_checks-dependencies-met = zif_abapgit_definitions=>c_no. - zcx_abapgit_exception=>raise( 'APACK dependencies not met' ). + IF is_checks-dependencies-met = zif_abapgit_definitions=>c_no AND is_checks-dependencies-decision IS INITIAL. + zcx_abapgit_exception=>raise( 'APACK dependencies not met and undecided' ). ENDIF. IF is_checks-transport-required = abap_true AND is_checks-transport-transport IS INITIAL. diff --git a/src/ui/routing/zcl_abapgit_services_repo.clas.abap b/src/ui/routing/zcl_abapgit_services_repo.clas.abap index 4d4d1d2a0..60d1db2d4 100644 --- a/src/ui/routing/zcl_abapgit_services_repo.clas.abap +++ b/src/ui/routing/zcl_abapgit_services_repo.clas.abap @@ -483,6 +483,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION. IF cs_checks-dependencies-met = zif_abapgit_definitions=>c_no. lt_dependencies = io_repo->get_dot_apack( )->get_manifest_descriptor( )-dependencies. zcl_abapgit_apack_helper=>dependencies_popup( lt_dependencies ). + cs_checks-dependencies-decision = zif_abapgit_definitions=>c_yes. ENDIF. popup_objects_overwrite( CHANGING ct_overwrite = lt_decision ). diff --git a/src/zif_abapgit_definitions.intf.abap b/src/zif_abapgit_definitions.intf.abap index 0378e57ec..d2c46e205 100644 --- a/src/zif_abapgit_definitions.intf.abap +++ b/src/zif_abapgit_definitions.intf.abap @@ -11,8 +11,8 @@ INTERFACE zif_abapgit_definitions END OF ty_item_signature . TYPES: BEGIN OF ty_obj_namespace, - namespace TYPE trnspace-namespace, - obj_without_namespace TYPE tadir-obj_name, + namespace TYPE trnspace-namespace, + obj_without_namespace TYPE tadir-obj_name, END OF ty_obj_namespace. TYPES: BEGIN OF ty_item. @@ -60,7 +60,8 @@ INTERFACE zif_abapgit_definitions END OF ty_requirements . TYPES: BEGIN OF ty_dependencies, - met TYPE ty_yes_no, + met TYPE ty_yes_no, + decision TYPE ty_yes_no, END OF ty_dependencies . TYPES: BEGIN OF ty_transport_type,