Add "ignore sub-packages" option to package export (#6815)

This commit is contained in:
Marc Bernard 2024-02-16 09:18:45 +01:00 committed by GitHub
parent 30415249ac
commit d4f6879a18
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 26 additions and 15 deletions

View File

@ -34,6 +34,7 @@ CLASS zcl_abapgit_zip DEFINITION
!iv_package TYPE devclass !iv_package TYPE devclass
!iv_folder_logic TYPE string !iv_folder_logic TYPE string
!iv_main_lang_only TYPE abap_bool !iv_main_lang_only TYPE abap_bool
!iv_ign_subpkg TYPE abap_bool OPTIONAL
RAISING RAISING
zcx_abapgit_exception . zcx_abapgit_exception .
CLASS-METHODS load CLASS-METHODS load
@ -196,6 +197,7 @@ CLASS zcl_abapgit_zip IMPLEMENTATION.
lv_zip_xstring TYPE xstring. lv_zip_xstring TYPE xstring.
ls_local_settings-main_language_only = iv_main_lang_only. ls_local_settings-main_language_only = iv_main_lang_only.
ls_local_settings-ignore_subpackages = iv_ign_subpkg.
lo_dot_abapgit = zcl_abapgit_dot_abapgit=>build_default( ). lo_dot_abapgit = zcl_abapgit_dot_abapgit=>build_default( ).
lo_dot_abapgit->set_folder_logic( iv_folder_logic ). lo_dot_abapgit->set_folder_logic( iv_folder_logic ).
@ -207,18 +209,19 @@ CLASS zcl_abapgit_zip IMPLEMENTATION.
lv_default = |{ lv_package_escaped }_{ sy-datlo }_{ sy-timlo }.zip|. lv_default = |{ lv_package_escaped }_{ sy-datlo }_{ sy-timlo }.zip|.
lv_zip_xstring = export( lv_zip_xstring = export(
is_local_settings = ls_local_settings is_local_settings = ls_local_settings
iv_package = iv_package iv_package = iv_package
io_dot_abapgit = lo_dot_abapgit ). io_dot_abapgit = lo_dot_abapgit ).
lv_path = lo_frontend_serv->show_file_save_dialog( lv_path = lo_frontend_serv->show_file_save_dialog(
iv_title = 'Package Export' iv_title = 'Package Export'
iv_extension = 'zip' iv_extension = 'zip'
iv_default_filename = lv_default ). iv_default_filename = lv_default ).
lo_frontend_serv->file_download( lo_frontend_serv->file_download(
iv_path = lv_path iv_path = lv_path
iv_xstr = lv_zip_xstring ). iv_xstr = lv_zip_xstring ).
ENDMETHOD. ENDMETHOD.

View File

@ -21,9 +21,10 @@ CLASS zcl_abapgit_gui_page_ex_pckage DEFINITION
PRIVATE SECTION. PRIVATE SECTION.
CONSTANTS: CONSTANTS:
BEGIN OF c_id, BEGIN OF c_id,
package TYPE string VALUE 'package', package TYPE string VALUE 'package',
folder_logic TYPE string VALUE 'folder_logic', folder_logic TYPE string VALUE 'folder_logic',
main_lang_only TYPE string VALUE 'main_lang_only', ignore_subpackages TYPE string VALUE 'ignore_subpackages',
main_lang_only TYPE string VALUE 'main_lang_only',
END OF c_id. END OF c_id.
CONSTANTS: CONSTANTS:
@ -74,16 +75,19 @@ CLASS zcl_abapgit_gui_page_ex_pckage IMPLEMENTATION.
METHOD export_package. METHOD export_package.
DATA lv_package TYPE devclass. DATA lv_package TYPE devclass.
DATA lv_folder_logic TYPE string. DATA lv_folder_logic TYPE string.
DATA lv_ign_subpkg TYPE abap_bool.
DATA lv_main_lang_only TYPE abap_bool. DATA lv_main_lang_only TYPE abap_bool.
lv_package = mo_form_data->get( c_id-package ). lv_package = mo_form_data->get( c_id-package ).
lv_folder_logic = mo_form_data->get( c_id-folder_logic ). lv_folder_logic = mo_form_data->get( c_id-folder_logic ).
lv_ign_subpkg = mo_form_data->get( c_id-ignore_subpackages ).
lv_main_lang_only = mo_form_data->get( c_id-main_lang_only ). lv_main_lang_only = mo_form_data->get( c_id-main_lang_only ).
zcl_abapgit_zip=>export_package( zcl_abapgit_zip=>export_package(
iv_package = lv_package iv_package = lv_package
iv_folder_logic = lv_folder_logic iv_folder_logic = lv_folder_logic
iv_main_lang_only = lv_main_lang_only ). iv_ign_subpkg = lv_ign_subpkg
iv_main_lang_only = lv_main_lang_only ).
ENDMETHOD. ENDMETHOD.
@ -110,10 +114,14 @@ CLASS zcl_abapgit_gui_page_ex_pckage IMPLEMENTATION.
)->option( )->option(
iv_label = 'Mixed' iv_label = 'Mixed'
iv_value = zif_abapgit_dot_abapgit=>c_folder_logic-mixed iv_value = zif_abapgit_dot_abapgit=>c_folder_logic-mixed
)->checkbox(
iv_name = c_id-ignore_subpackages
iv_label = 'Ignore Subpackages'
iv_hint = 'Export selected package only'
)->checkbox( )->checkbox(
iv_name = c_id-main_lang_only iv_name = c_id-main_lang_only
iv_label = 'Serialize Main Language Only' iv_label = 'Serialize Main Language Only'
iv_hint = 'Ignore translations, serialize just main language' iv_hint = 'Ignore translations, export just main language'
)->command( )->command(
iv_label = 'Export Package to ZIP' iv_label = 'Export Package to ZIP'
iv_action = c_event-export_package iv_action = c_event-export_package