diff --git a/src/git_platform/zcl_abapgit_pr_enumerator.clas.abap b/src/git_platform/zcl_abapgit_pr_enumerator.clas.abap index dadea98c5..201cacb0a 100644 --- a/src/git_platform/zcl_abapgit_pr_enumerator.clas.abap +++ b/src/git_platform/zcl_abapgit_pr_enumerator.clas.abap @@ -62,7 +62,7 @@ CLASS zcl_abapgit_pr_enumerator IMPLEMENTATION. DATA lv_user TYPE string. DATA lv_repo TYPE string. - li_agent = zcl_abapgit_factory=>get_http_agent( ). + li_agent = zcl_abapgit_http_agent=>create( ). FIND ALL OCCURRENCES OF REGEX 'github\.com\/([^\/]+)\/([^\/]+)' IN iv_repo_url diff --git a/src/inspect/zcl_abapgit_code_inspector.clas.abap b/src/inspect/zcl_abapgit_code_inspector.clas.abap index 9044cb34c..15b99876f 100644 --- a/src/inspect/zcl_abapgit_code_inspector.clas.abap +++ b/src/inspect/zcl_abapgit_code_inspector.clas.abap @@ -13,6 +13,19 @@ CLASS zcl_abapgit_code_inspector DEFINITION RAISING zcx_abapgit_exception . + CLASS-METHODS get_code_inspector + IMPORTING + !iv_package TYPE devclass + RETURNING + VALUE(ri_code_inspector) TYPE REF TO zif_abapgit_code_inspector + RAISING + zcx_abapgit_exception. + + CLASS-METHODS set_code_inspector + IMPORTING + !iv_package TYPE devclass + !ii_code_inspector TYPE REF TO zif_abapgit_code_inspector. + PROTECTED SECTION. DATA mv_package TYPE devclass . @@ -35,6 +48,15 @@ CLASS zcl_abapgit_code_inspector DEFINITION VALUE(rv_skip) TYPE abap_bool. PRIVATE SECTION. + TYPES: + BEGIN OF ty_code_inspector_pack, + package TYPE devclass, + instance TYPE REF TO zif_abapgit_code_inspector, + END OF ty_code_inspector_pack, + ty_code_inspector_packs TYPE HASHED TABLE OF ty_code_inspector_pack WITH UNIQUE KEY package. + + CLASS-DATA gt_code_inspector TYPE ty_code_inspector_packs. + DATA mv_success TYPE abap_bool . DATA mv_summary TYPE string. @@ -266,6 +288,28 @@ CLASS zcl_abapgit_code_inspector IMPLEMENTATION. ENDMETHOD. + METHOD get_code_inspector. + + DATA ls_code_inspector LIKE LINE OF gt_code_inspector. + + FIELD-SYMBOLS TYPE ty_code_inspector_pack. + + READ TABLE gt_code_inspector ASSIGNING WITH TABLE KEY package = iv_package. + IF sy-subrc <> 0. + ls_code_inspector-package = iv_package. + + CREATE OBJECT ls_code_inspector-instance TYPE zcl_abapgit_code_inspector + EXPORTING + iv_package = iv_package. + + INSERT ls_code_inspector INTO TABLE gt_code_inspector ASSIGNING . + ENDIF. + + ri_code_inspector = -instance. + + ENDMETHOD. + + METHOD run_inspection. io_inspection->run( @@ -290,6 +334,24 @@ CLASS zcl_abapgit_code_inspector IMPLEMENTATION. ENDMETHOD. + METHOD set_code_inspector. + + DATA ls_code_inspector LIKE LINE OF gt_code_inspector. + + FIELD-SYMBOLS LIKE LINE OF gt_code_inspector. + + READ TABLE gt_code_inspector ASSIGNING WITH TABLE KEY package = iv_package. + IF sy-subrc <> 0. + ls_code_inspector-package = iv_package. + + INSERT ls_code_inspector INTO TABLE gt_code_inspector ASSIGNING . + ENDIF. + + -instance = ii_code_inspector. + + ENDMETHOD. + + METHOD skip_object. DATA ls_program_type TYPE subc. diff --git a/src/objects/aff/zcl_abapgit_object_common_aff.clas.testclasses.abap b/src/objects/aff/zcl_abapgit_object_common_aff.clas.testclasses.abap index 0d46738a8..fb8fefa33 100644 --- a/src/objects/aff/zcl_abapgit_object_common_aff.clas.testclasses.abap +++ b/src/objects/aff/zcl_abapgit_object_common_aff.clas.testclasses.abap @@ -228,39 +228,40 @@ CLASS ltcl_aff_settings_deserialize IMPLEMENTATION. TRY. lo_settings_deserialize = lo_cut->create_aff_setting_deserialize( ). + + CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_ABAP_LANGUAGE_VERSION') + RECEIVING + result = lv_act_setting_abap_lv. + cl_abap_unit_assert=>assert_equals( msg = 'Unexpected ABAP language version in settings' + act = lv_act_setting_abap_lv + exp = iv_exp_setting_abap_lv ). + + CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_VERSION') + RECEIVING + result = lv_act_setting_version. + cl_abap_unit_assert=>assert_equals( msg = 'Unexpected Version in settings' + act = lv_act_setting_version + exp = 'A' ). + + CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_LANGUAGE') + RECEIVING + result = lv_act_setting_language. + cl_abap_unit_assert=>assert_equals( msg = 'Unexpected Language in settings' + act = lv_act_setting_language + exp = 'E' ). + + CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_USER') + RECEIVING + result = lv_act_setting_user. + cl_abap_unit_assert=>assert_equals( msg = 'Unexpected User in settings' + act = lv_act_setting_user + exp = sy-uname ). + CATCH cx_root. " System doesn't support AFF with ABAP language version RETURN. ENDTRY. - CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_ABAP_LANGUAGE_VERSION') - RECEIVING - result = lv_act_setting_abap_lv. - cl_abap_unit_assert=>assert_equals( msg = 'Unexpected ABAP language version in settings' - act = lv_act_setting_abap_lv - exp = iv_exp_setting_abap_lv ). - - CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_VERSION') - RECEIVING - result = lv_act_setting_version. - cl_abap_unit_assert=>assert_equals( msg = 'Unexpected Version in settings' - act = lv_act_setting_version - exp = 'A' ). - - CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_LANGUAGE') - RECEIVING - result = lv_act_setting_language. - cl_abap_unit_assert=>assert_equals( msg = 'Unexpected Language in settings' - act = lv_act_setting_language - exp = 'E' ). - - CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_USER') - RECEIVING - result = lv_act_setting_user. - cl_abap_unit_assert=>assert_equals( msg = 'Unexpected User in settings' - act = lv_act_setting_user - exp = sy-uname ). - ENDMETHOD. METHOD abap_language_version_standard. diff --git a/src/repo/zcl_abapgit_repo_online.clas.abap b/src/repo/zcl_abapgit_repo_online.clas.abap index 735977e77..c187a9396 100644 --- a/src/repo/zcl_abapgit_repo_online.clas.abap +++ b/src/repo/zcl_abapgit_repo_online.clas.abap @@ -273,7 +273,7 @@ CLASS zcl_abapgit_repo_online IMPLEMENTATION. ENDIF. IF ms_data-local_settings-block_commit = abap_true - AND zcl_abapgit_factory=>get_code_inspector( get_package( ) + AND zcl_abapgit_code_inspector=>get_code_inspector( get_package( ) )->is_successful( ) = abap_false. zcx_abapgit_exception=>raise( |A successful code inspection is required| ). ENDIF. diff --git a/src/ui/lib/zcl_abapgit_gui_buttons.clas.abap b/src/ui/lib/zcl_abapgit_gui_buttons.clas.abap index f1a437e63..93d30c86b 100644 --- a/src/ui/lib/zcl_abapgit_gui_buttons.clas.abap +++ b/src/ui/lib/zcl_abapgit_gui_buttons.clas.abap @@ -1,9 +1,10 @@ CLASS zcl_abapgit_gui_buttons DEFINITION PUBLIC FINAL - CREATE PUBLIC . + CREATE PUBLIC. PUBLIC SECTION. + CLASS-METHODS new_online RETURNING VALUE(rv_html_string) TYPE string. @@ -28,6 +29,9 @@ CLASS zcl_abapgit_gui_buttons DEFINITION CLASS-METHODS experimental RETURNING VALUE(rv_html_string) TYPE string. + CLASS-METHODS refresh + RETURNING VALUE(rv_html_string) TYPE string. + PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. @@ -51,6 +55,11 @@ CLASS zcl_abapgit_gui_buttons IMPLEMENTATION. ENDMETHOD. + METHOD flow. + rv_html_string = zcl_abapgit_html=>icon( 'flow' ) && ' Flow'. + ENDMETHOD. + + METHOD help. rv_html_string = zcl_abapgit_html=>icon( iv_name = 'question-circle-solid' @@ -68,8 +77,10 @@ CLASS zcl_abapgit_gui_buttons IMPLEMENTATION. ENDMETHOD. - METHOD flow. - rv_html_string = zcl_abapgit_html=>icon( 'flow' ) && ' Flow'. + METHOD refresh. + rv_html_string = zcl_abapgit_html=>icon( + iv_name = 'redo-alt-solid' + iv_hint = 'Refresh' ). ENDMETHOD. diff --git a/src/ui/pages/codi/zcl_abapgit_gui_page_code_insp.clas.abap b/src/ui/pages/codi/zcl_abapgit_gui_page_code_insp.clas.abap index 1c9182175..dffcc35b9 100644 --- a/src/ui/pages/codi/zcl_abapgit_gui_page_code_insp.clas.abap +++ b/src/ui/pages/codi/zcl_abapgit_gui_page_code_insp.clas.abap @@ -70,7 +70,7 @@ ENDCLASS. -CLASS ZCL_ABAPGIT_GUI_PAGE_CODE_INSP IMPLEMENTATION. +CLASS zcl_abapgit_gui_page_code_insp IMPLEMENTATION. METHOD ask_user_for_check_variant. @@ -151,7 +151,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODE_INSP IMPLEMENTATION. DATA li_code_inspector TYPE REF TO zif_abapgit_code_inspector. - li_code_inspector = zcl_abapgit_factory=>get_code_inspector( mo_repo->get_package( ) ). + li_code_inspector = zcl_abapgit_code_inspector=>get_code_inspector( mo_repo->get_package( ) ). mt_result = li_code_inspector->run( iv_variant = |{ mv_check_variant }| diff --git a/src/ui/pages/codi/zcl_abapgit_gui_page_syntax.clas.abap b/src/ui/pages/codi/zcl_abapgit_gui_page_syntax.clas.abap index 5b84eb3c1..6b8ad4509 100644 --- a/src/ui/pages/codi/zcl_abapgit_gui_page_syntax.clas.abap +++ b/src/ui/pages/codi/zcl_abapgit_gui_page_syntax.clas.abap @@ -41,7 +41,7 @@ ENDCLASS. -CLASS ZCL_ABAPGIT_GUI_PAGE_SYNTAX IMPLEMENTATION. +CLASS zcl_abapgit_gui_page_syntax IMPLEMENTATION. METHOD constructor. @@ -68,7 +68,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SYNTAX IMPLEMENTATION. DATA: li_syntax_check TYPE REF TO zif_abapgit_code_inspector. - li_syntax_check = zcl_abapgit_factory=>get_code_inspector( mo_repo->get_package( ) ). + li_syntax_check = zcl_abapgit_code_inspector=>get_code_inspector( mo_repo->get_package( ) ). TRY. mt_result = li_syntax_check->run( c_variant ). diff --git a/src/ui/pages/sett/zcl_abapgit_gui_page_sett_locl.clas.abap b/src/ui/pages/sett/zcl_abapgit_gui_page_sett_locl.clas.abap index b45fb66d0..7ff290df6 100644 --- a/src/ui/pages/sett/zcl_abapgit_gui_page_sett_locl.clas.abap +++ b/src/ui/pages/sett/zcl_abapgit_gui_page_sett_locl.clas.abap @@ -104,7 +104,7 @@ ENDCLASS. -CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_LOCL IMPLEMENTATION. +CLASS zcl_abapgit_gui_page_sett_locl IMPLEMENTATION. METHOD choose_check_variant. @@ -471,7 +471,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_LOCL IMPLEMENTATION. lv_check_variant = to_upper( io_form_data->get( c_id-code_inspector_check_variant ) ). IF lv_check_variant IS NOT INITIAL. TRY. - zcl_abapgit_factory=>get_code_inspector( mo_repo->get_package( ) + zcl_abapgit_code_inspector=>get_code_inspector( mo_repo->get_package( ) )->validate_check_variant( lv_check_variant ). CATCH zcx_abapgit_exception INTO lx_error. ro_validation_log->set( diff --git a/src/ui/pages/zcl_abapgit_gui_page_repo_over.clas.abap b/src/ui/pages/zcl_abapgit_gui_page_repo_over.clas.abap index 9413cc38b..98a6bdd4b 100644 --- a/src/ui/pages/zcl_abapgit_gui_page_repo_over.clas.abap +++ b/src/ui/pages/zcl_abapgit_gui_page_repo_over.clas.abap @@ -55,6 +55,7 @@ CLASS zcl_abapgit_gui_page_repo_over DEFINITION select TYPE string VALUE 'select', apply_filter TYPE string VALUE 'apply_filter', label_filter TYPE string VALUE 'label_filter', + refresh_list TYPE string VALUE 'refresh_list', END OF c_action, c_label_filter_prefix TYPE string VALUE `label:`, c_raw_field_suffix TYPE string VALUE `_RAW` ##NO_TEXT. @@ -931,6 +932,11 @@ CLASS zcl_abapgit_gui_page_repo_over IMPLEMENTATION. save_settings( ). rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render. + WHEN c_action-refresh_list. + + zcl_abapgit_repo_srv=>get_instance( )->init( ). + rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render. + ENDCASE. ENDMETHOD. @@ -982,6 +988,11 @@ CLASS zcl_abapgit_gui_page_repo_over IMPLEMENTATION. ls_hotkey_action-hotkey = |a|. INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions. + ls_hotkey_action-description = |Refresh|. + ls_hotkey_action-action = c_action-refresh_list. + ls_hotkey_action-hotkey = |r|. + INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions. + " registered/handled in js ls_hotkey_action-description = |Previous Repository|. ls_hotkey_action-action = `#`. @@ -1023,6 +1034,9 @@ CLASS zcl_abapgit_gui_page_repo_over IMPLEMENTATION. )->add( iv_txt = zcl_abapgit_gui_buttons=>settings( ) iv_act = zif_abapgit_definitions=>c_action-go_settings + )->add( + iv_txt = zcl_abapgit_gui_buttons=>refresh( ) + iv_act = c_action-refresh_list )->add( iv_txt = zcl_abapgit_gui_buttons=>advanced( ) io_sub = zcl_abapgit_gui_menus=>advanced( ) diff --git a/src/ui/popups/zcl_abapgit_popup_code_insp.clas.abap b/src/ui/popups/zcl_abapgit_popup_code_insp.clas.abap index 09b14720c..c845fc8f6 100644 --- a/src/ui/popups/zcl_abapgit_popup_code_insp.clas.abap +++ b/src/ui/popups/zcl_abapgit_popup_code_insp.clas.abap @@ -34,7 +34,7 @@ CLASS zcl_abapgit_popup_code_insp IMPLEMENTATION. METHOD fetch_list. - rt_list = zcl_abapgit_factory=>get_code_inspector( '$TMP' )->list_global_variants( ). + rt_list = zcl_abapgit_code_inspector=>get_code_inspector( '$TMP' )->list_global_variants( ). ENDMETHOD. diff --git a/src/zcl_abapgit_factory.clas.abap b/src/zcl_abapgit_factory.clas.abap index 3ce5e27db..2742ffb9c 100644 --- a/src/zcl_abapgit_factory.clas.abap +++ b/src/zcl_abapgit_factory.clas.abap @@ -13,30 +13,18 @@ CLASS zcl_abapgit_factory DEFINITION !iv_package TYPE devclass RETURNING VALUE(ri_sap_package) TYPE REF TO zif_abapgit_sap_package . - CLASS-METHODS get_code_inspector - IMPORTING - !iv_package TYPE devclass - RETURNING - VALUE(ri_code_inspector) TYPE REF TO zif_abapgit_code_inspector - RAISING - zcx_abapgit_exception . CLASS-METHODS get_cts_api RETURNING VALUE(ri_cts_api) TYPE REF TO zif_abapgit_cts_api . CLASS-METHODS get_default_transport RETURNING - VALUE(ri_default_transport) TYPE REF TO zif_abapgit_default_transport - RAISING - zcx_abapgit_exception. + VALUE(ri_default_transport) TYPE REF TO zif_abapgit_default_transport. CLASS-METHODS get_environment RETURNING VALUE(ri_environment) TYPE REF TO zif_abapgit_environment . CLASS-METHODS get_longtexts RETURNING VALUE(ri_longtexts) TYPE REF TO zif_abapgit_longtexts . - CLASS-METHODS get_http_agent - RETURNING - VALUE(ri_http_agent) TYPE REF TO zif_abapgit_http_agent . CLASS-METHODS get_lxe_texts RETURNING VALUE(ri_lxe_texts) TYPE REF TO zif_abapgit_lxe_texts . @@ -60,22 +48,12 @@ CLASS zcl_abapgit_factory DEFINITION TYPES: ty_sap_packages TYPE HASHED TABLE OF ty_sap_package WITH UNIQUE KEY package . - TYPES: - BEGIN OF ty_code_inspector_pack, - package TYPE devclass, - instance TYPE REF TO zif_abapgit_code_inspector, - END OF ty_code_inspector_pack . - TYPES: - ty_code_inspector_packs TYPE HASHED TABLE OF ty_code_inspector_pack - WITH UNIQUE KEY package . CLASS-DATA gi_tadir TYPE REF TO zif_abapgit_tadir . CLASS-DATA gt_sap_package TYPE ty_sap_packages . - CLASS-DATA gt_code_inspector TYPE ty_code_inspector_packs . CLASS-DATA gi_cts_api TYPE REF TO zif_abapgit_cts_api . CLASS-DATA gi_environment TYPE REF TO zif_abapgit_environment . CLASS-DATA gi_longtext TYPE REF TO zif_abapgit_longtexts . - CLASS-DATA gi_http_agent TYPE REF TO zif_abapgit_http_agent . CLASS-DATA gi_lxe_texts TYPE REF TO zif_abapgit_lxe_texts . CLASS-DATA gi_sap_namespace TYPE REF TO zif_abapgit_sap_namespace . CLASS-DATA gi_sap_report TYPE REF TO zif_abapgit_sap_report. @@ -88,31 +66,6 @@ ENDCLASS. CLASS zcl_abapgit_factory IMPLEMENTATION. - METHOD get_code_inspector. - - DATA: ls_code_inspector LIKE LINE OF gt_code_inspector. - FIELD-SYMBOLS: TYPE ty_code_inspector_pack. - - READ TABLE gt_code_inspector ASSIGNING - WITH TABLE KEY package = iv_package. - IF sy-subrc <> 0. - ls_code_inspector-package = iv_package. - - CREATE OBJECT ls_code_inspector-instance TYPE zcl_abapgit_code_inspector - EXPORTING - iv_package = iv_package. - - INSERT ls_code_inspector - INTO TABLE gt_code_inspector - ASSIGNING . - - ENDIF. - - ri_code_inspector = -instance. - - ENDMETHOD. - - METHOD get_cts_api. IF gi_cts_api IS NOT BOUND. CREATE OBJECT gi_cts_api TYPE zcl_abapgit_cts_api. @@ -152,17 +105,6 @@ CLASS zcl_abapgit_factory IMPLEMENTATION. ENDMETHOD. - METHOD get_http_agent. - - IF gi_http_agent IS INITIAL. - gi_http_agent = zcl_abapgit_http_agent=>create( ). - ENDIF. - - ri_http_agent = gi_http_agent. - - ENDMETHOD. - - METHOD get_longtexts. IF gi_longtext IS NOT BOUND. diff --git a/src/zcl_abapgit_injector.clas.abap b/src/zcl_abapgit_injector.clas.abap index ca20461a8..127b7718b 100644 --- a/src/zcl_abapgit_injector.clas.abap +++ b/src/zcl_abapgit_injector.clas.abap @@ -12,10 +12,6 @@ CLASS zcl_abapgit_injector DEFINITION IMPORTING !iv_package TYPE devclass !ii_sap_package TYPE REF TO zif_abapgit_sap_package . - CLASS-METHODS set_code_inspector - IMPORTING - !iv_package TYPE devclass - !ii_code_inspector TYPE REF TO zif_abapgit_code_inspector . CLASS-METHODS set_cts_api IMPORTING !ii_cts_api TYPE REF TO zif_abapgit_cts_api . @@ -25,9 +21,6 @@ CLASS zcl_abapgit_injector DEFINITION CLASS-METHODS set_longtexts IMPORTING !ii_longtexts TYPE REF TO zif_abapgit_longtexts . - CLASS-METHODS set_http_agent - IMPORTING - !ii_http_agent TYPE REF TO zif_abapgit_http_agent . CLASS-METHODS set_lxe_texts IMPORTING !ii_lxe_texts TYPE REF TO zif_abapgit_lxe_texts . @@ -52,29 +45,6 @@ ENDCLASS. CLASS zcl_abapgit_injector IMPLEMENTATION. - METHOD set_code_inspector. - - DATA: ls_code_inspector LIKE LINE OF zcl_abapgit_factory=>gt_code_inspector. - FIELD-SYMBOLS: LIKE LINE OF zcl_abapgit_factory=>gt_code_inspector. - - READ TABLE zcl_abapgit_factory=>gt_code_inspector - ASSIGNING - WITH TABLE KEY package = iv_package. - IF sy-subrc <> 0. - - ls_code_inspector-package = iv_package. - - INSERT ls_code_inspector - INTO TABLE zcl_abapgit_factory=>gt_code_inspector - ASSIGNING . - - ENDIF. - - -instance = ii_code_inspector. - - ENDMETHOD. - - METHOD set_cts_api. zcl_abapgit_factory=>gi_cts_api = ii_cts_api. ENDMETHOD. @@ -95,11 +65,6 @@ CLASS zcl_abapgit_injector IMPLEMENTATION. ENDMETHOD. - METHOD set_http_agent. - zcl_abapgit_factory=>gi_http_agent = ii_http_agent. - ENDMETHOD. - - METHOD set_longtexts. zcl_abapgit_factory=>gi_longtext = ii_longtexts. ENDMETHOD. diff --git a/test/src/zcl_abapgit_gitea.clas.abap b/test/src/zcl_abapgit_gitea.clas.abap index 70725b0a4..52296b6e6 100644 --- a/test/src/zcl_abapgit_gitea.clas.abap +++ b/test/src/zcl_abapgit_gitea.clas.abap @@ -23,7 +23,7 @@ CLASS zcl_abapgit_gitea IMPLEMENTATION. DATA lv_url TYPE string. - li_agent = zcl_abapgit_factory=>get_http_agent( ). + li_agent = zcl_abapgit_http_agent=>create( ). li_agent->global_headers( )->set( iv_key = 'Accept'