mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 04:36:49 +08:00
Add "ignore sub-packages" option for offline repos (#5948)
This commit is contained in:
parent
d73452d0f2
commit
b69ce81f1b
|
@ -122,8 +122,10 @@ CLASS zcl_abapgit_repo_content_list IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
lt_tadir = zcl_abapgit_factory=>get_tadir( )->read(
|
lt_tadir = zcl_abapgit_factory=>get_tadir( )->read(
|
||||||
iv_package = mo_repo->get_package( )
|
iv_package = mo_repo->get_package( )
|
||||||
io_dot = mo_repo->get_dot_abapgit( ) ).
|
iv_ignore_subpackages = mo_repo->get_local_settings( )-ignore_subpackages
|
||||||
|
iv_only_local_objects = mo_repo->get_local_settings( )-only_local_objects
|
||||||
|
io_dot = mo_repo->get_dot_abapgit( ) ).
|
||||||
|
|
||||||
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
||||||
APPEND INITIAL LINE TO rt_repo_items ASSIGNING <ls_repo_item>.
|
APPEND INITIAL LINE TO rt_repo_items ASSIGNING <ls_repo_item>.
|
||||||
|
|
|
@ -331,6 +331,38 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_repo_srv~get_label_list.
|
||||||
|
|
||||||
|
DATA:
|
||||||
|
lt_repo TYPE zif_abapgit_repo_srv=>ty_repo_list,
|
||||||
|
ls_local_settings TYPE zif_abapgit_persistence=>ty_repo-local_settings,
|
||||||
|
lt_labels TYPE string_table,
|
||||||
|
ls_label LIKE LINE OF rt_labels.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS:
|
||||||
|
<ls_repo> TYPE REF TO zif_abapgit_repo,
|
||||||
|
<lv_label> TYPE LINE OF string_table.
|
||||||
|
|
||||||
|
lt_repo = zif_abapgit_repo_srv~list( ).
|
||||||
|
|
||||||
|
LOOP AT lt_repo ASSIGNING <ls_repo>.
|
||||||
|
|
||||||
|
ls_local_settings = <ls_repo>->get_local_settings( ).
|
||||||
|
lt_labels = zcl_abapgit_repo_labels=>split( ls_local_settings-labels ).
|
||||||
|
|
||||||
|
LOOP AT lt_labels ASSIGNING <lv_label>.
|
||||||
|
ls_label-label = <lv_label>.
|
||||||
|
INSERT ls_label INTO TABLE rt_labels.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
SORT rt_labels.
|
||||||
|
DELETE ADJACENT DUPLICATES FROM rt_labels.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_repo_srv~get_repo_from_package.
|
METHOD zif_abapgit_repo_srv~get_repo_from_package.
|
||||||
|
|
||||||
DATA:
|
DATA:
|
||||||
|
@ -488,7 +520,9 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
|
||||||
zcx_abapgit_exception=>raise( 'Not authorized' ).
|
zcx_abapgit_exception=>raise( 'Not authorized' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
zif_abapgit_repo_srv~validate_package( iv_package ).
|
zif_abapgit_repo_srv~validate_package(
|
||||||
|
iv_package = iv_package
|
||||||
|
iv_ign_subpkg = iv_ign_subpkg ).
|
||||||
|
|
||||||
IF iv_url IS INITIAL.
|
IF iv_url IS INITIAL.
|
||||||
zcx_abapgit_exception=>raise( 'Missing display name for repo' ).
|
zcx_abapgit_exception=>raise( 'Missing display name for repo' ).
|
||||||
|
@ -512,8 +546,12 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
|
||||||
|
|
||||||
lo_repo ?= instantiate_and_add( ls_repo ).
|
lo_repo ?= instantiate_and_add( ls_repo ).
|
||||||
|
|
||||||
|
IF ls_repo-local_settings-ignore_subpackages <> iv_ign_subpkg.
|
||||||
|
ls_repo-local_settings-ignore_subpackages = iv_ign_subpkg.
|
||||||
|
ENDIF.
|
||||||
ls_repo-local_settings-main_language_only = iv_main_lang_only.
|
ls_repo-local_settings-main_language_only = iv_main_lang_only.
|
||||||
ls_repo-local_settings-labels = iv_labels.
|
ls_repo-local_settings-labels = iv_labels.
|
||||||
|
|
||||||
lo_repo->set_local_settings( ls_repo-local_settings ).
|
lo_repo->set_local_settings( ls_repo-local_settings ).
|
||||||
lo_repo->check_and_create_package( iv_package ).
|
lo_repo->check_and_create_package( iv_package ).
|
||||||
|
|
||||||
|
@ -541,8 +579,9 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
|
||||||
zcx_abapgit_exception=>raise( 'Not authorized' ).
|
zcx_abapgit_exception=>raise( 'Not authorized' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
zif_abapgit_repo_srv~validate_package( iv_package = iv_package
|
zif_abapgit_repo_srv~validate_package(
|
||||||
iv_ign_subpkg = iv_ign_subpkg ).
|
iv_package = iv_package
|
||||||
|
iv_ign_subpkg = iv_ign_subpkg ).
|
||||||
|
|
||||||
zif_abapgit_repo_srv~validate_url( lv_url ).
|
zif_abapgit_repo_srv~validate_url( lv_url ).
|
||||||
|
|
||||||
|
@ -560,6 +599,7 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
|
||||||
iv_package = iv_package
|
iv_package = iv_package
|
||||||
iv_offline = abap_false
|
iv_offline = abap_false
|
||||||
is_dot_abapgit = ls_dot_abapgit ).
|
is_dot_abapgit = ls_dot_abapgit ).
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
ls_repo = zcl_abapgit_persist_factory=>get_repo( )->read( lv_key ).
|
ls_repo = zcl_abapgit_persist_factory=>get_repo( )->read( lv_key ).
|
||||||
CATCH zcx_abapgit_not_found.
|
CATCH zcx_abapgit_not_found.
|
||||||
|
@ -573,8 +613,8 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ls_repo-local_settings-main_language_only = iv_main_lang_only.
|
ls_repo-local_settings-main_language_only = iv_main_lang_only.
|
||||||
ls_repo-local_settings-labels = iv_labels.
|
ls_repo-local_settings-labels = iv_labels.
|
||||||
lo_repo->set_local_settings( ls_repo-local_settings ).
|
|
||||||
|
|
||||||
|
lo_repo->set_local_settings( ls_repo-local_settings ).
|
||||||
lo_repo->refresh( ).
|
lo_repo->refresh( ).
|
||||||
lo_repo->find_remote_dot_abapgit( ).
|
lo_repo->find_remote_dot_abapgit( ).
|
||||||
lo_repo->check_and_create_package( iv_package ).
|
lo_repo->check_and_create_package( iv_package ).
|
||||||
|
@ -676,37 +716,4 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_repo_srv~get_label_list.
|
|
||||||
|
|
||||||
DATA:
|
|
||||||
lt_repo TYPE zif_abapgit_repo_srv=>ty_repo_list,
|
|
||||||
ls_local_settings TYPE zif_abapgit_persistence=>ty_repo-local_settings,
|
|
||||||
lt_labels TYPE string_table,
|
|
||||||
ls_label LIKE LINE OF rt_labels.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS:
|
|
||||||
<ls_repo> TYPE REF TO zif_abapgit_repo,
|
|
||||||
<lv_label> TYPE LINE OF string_table.
|
|
||||||
|
|
||||||
lt_repo = zif_abapgit_repo_srv~list( ).
|
|
||||||
|
|
||||||
LOOP AT lt_repo ASSIGNING <ls_repo>.
|
|
||||||
|
|
||||||
ls_local_settings = <ls_repo>->get_local_settings( ).
|
|
||||||
lt_labels = zcl_abapgit_repo_labels=>split( ls_local_settings-labels ).
|
|
||||||
|
|
||||||
LOOP AT lt_labels ASSIGNING <lv_label>.
|
|
||||||
ls_label-label = <lv_label>.
|
|
||||||
INSERT ls_label INTO TABLE rt_labels.
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
SORT rt_labels.
|
|
||||||
DELETE ADJACENT DUPLICATES FROM rt_labels.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -48,6 +48,7 @@ INTERFACE zif_abapgit_repo_srv
|
||||||
!iv_package TYPE devclass
|
!iv_package TYPE devclass
|
||||||
!iv_folder_logic TYPE string DEFAULT zif_abapgit_dot_abapgit=>c_folder_logic-full
|
!iv_folder_logic TYPE string DEFAULT zif_abapgit_dot_abapgit=>c_folder_logic-full
|
||||||
!iv_labels TYPE string OPTIONAL
|
!iv_labels TYPE string OPTIONAL
|
||||||
|
!iv_ign_subpkg TYPE abap_bool DEFAULT abap_false
|
||||||
!iv_main_lang_only TYPE abap_bool DEFAULT abap_false
|
!iv_main_lang_only TYPE abap_bool DEFAULT abap_false
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ri_repo) TYPE REF TO zif_abapgit_repo
|
VALUE(ri_repo) TYPE REF TO zif_abapgit_repo
|
||||||
|
|
|
@ -24,11 +24,12 @@ CLASS zcl_abapgit_gui_page_addofflin DEFINITION
|
||||||
|
|
||||||
CONSTANTS:
|
CONSTANTS:
|
||||||
BEGIN OF c_id,
|
BEGIN OF c_id,
|
||||||
url TYPE string VALUE 'url',
|
url TYPE string VALUE 'url',
|
||||||
package TYPE string VALUE 'package',
|
package TYPE string VALUE 'package',
|
||||||
folder_logic TYPE string VALUE 'folder_logic',
|
folder_logic TYPE string VALUE 'folder_logic',
|
||||||
labels TYPE string VALUE 'labels',
|
labels TYPE string VALUE 'labels',
|
||||||
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:
|
||||||
|
@ -68,6 +69,23 @@ ENDCLASS.
|
||||||
CLASS zcl_abapgit_gui_page_addofflin IMPLEMENTATION.
|
CLASS zcl_abapgit_gui_page_addofflin IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD choose_labels.
|
||||||
|
|
||||||
|
DATA:
|
||||||
|
lv_old_labels TYPE string,
|
||||||
|
lv_new_labels TYPE string.
|
||||||
|
|
||||||
|
lv_old_labels = mo_form_data->get( c_id-labels ).
|
||||||
|
|
||||||
|
lv_new_labels = zcl_abapgit_ui_factory=>get_popups( )->popup_to_select_labels( lv_old_labels ).
|
||||||
|
|
||||||
|
mo_form_data->set(
|
||||||
|
iv_key = c_id-labels
|
||||||
|
iv_val = lv_new_labels ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
super->constructor( ).
|
super->constructor( ).
|
||||||
CREATE OBJECT mo_validation_log.
|
CREATE OBJECT mo_validation_log.
|
||||||
|
@ -128,6 +146,10 @@ CLASS zcl_abapgit_gui_page_addofflin IMPLEMENTATION.
|
||||||
iv_side_action = c_event-choose_labels
|
iv_side_action = c_event-choose_labels
|
||||||
iv_label = |Labels (comma-separated, allowed chars: "{ zcl_abapgit_repo_labels=>c_allowed_chars }")|
|
iv_label = |Labels (comma-separated, allowed chars: "{ zcl_abapgit_repo_labels=>c_allowed_chars }")|
|
||||||
iv_hint = 'Comma-separated labels for grouping and repo organization (optional)'
|
iv_hint = 'Comma-separated labels for grouping and repo organization (optional)'
|
||||||
|
)->checkbox(
|
||||||
|
iv_name = c_id-ignore_subpackages
|
||||||
|
iv_label = 'Ignore Subpackages'
|
||||||
|
iv_hint = 'Synchronize root 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'
|
||||||
|
@ -154,7 +176,9 @@ CLASS zcl_abapgit_gui_page_addofflin IMPLEMENTATION.
|
||||||
|
|
||||||
IF io_form_data->get( c_id-package ) IS NOT INITIAL.
|
IF io_form_data->get( c_id-package ) IS NOT INITIAL.
|
||||||
TRY.
|
TRY.
|
||||||
zcl_abapgit_repo_srv=>get_instance( )->validate_package( |{ io_form_data->get( c_id-package ) }| ).
|
zcl_abapgit_repo_srv=>get_instance( )->validate_package(
|
||||||
|
iv_package = |{ io_form_data->get( c_id-package ) }|
|
||||||
|
iv_ign_subpkg = |{ io_form_data->get( c_id-ignore_subpackages ) }| ).
|
||||||
CATCH zcx_abapgit_exception INTO lx_err.
|
CATCH zcx_abapgit_exception INTO lx_err.
|
||||||
ro_validation_log->set(
|
ro_validation_log->set(
|
||||||
iv_key = c_id-package
|
iv_key = c_id-package
|
||||||
|
@ -255,22 +279,4 @@ CLASS zcl_abapgit_gui_page_addofflin IMPLEMENTATION.
|
||||||
ri_html->add( '</div>' ).
|
ri_html->add( '</div>' ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD choose_labels.
|
|
||||||
|
|
||||||
DATA:
|
|
||||||
lv_old_labels TYPE string,
|
|
||||||
lv_new_labels TYPE string.
|
|
||||||
|
|
||||||
lv_old_labels = mo_form_data->get( c_id-labels ).
|
|
||||||
|
|
||||||
lv_new_labels = zcl_abapgit_ui_factory=>get_popups( )->popup_to_select_labels( lv_old_labels ).
|
|
||||||
|
|
||||||
mo_form_data->set(
|
|
||||||
iv_key = c_id-labels
|
|
||||||
iv_val = lv_new_labels ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user