diff --git a/src/ui/zcl_abapgit_gui_repo_over.clas.abap b/src/ui/zcl_abapgit_gui_repo_over.clas.abap index 04feeacf9..80c997b5f 100644 --- a/src/ui/zcl_abapgit_gui_repo_over.clas.abap +++ b/src/ui/zcl_abapgit_gui_repo_over.clas.abap @@ -115,7 +115,7 @@ ENDCLASS. -CLASS ZCL_ABAPGIT_GUI_REPO_OVER IMPLEMENTATION. +CLASS zcl_abapgit_gui_repo_over IMPLEMENTATION. METHOD apply_filter. @@ -306,6 +306,8 @@ CLASS ZCL_ABAPGIT_GUI_REPO_OVER IMPLEMENTATION. lv_package_obj_name TYPE sobj_name, lv_stage_link TYPE string, lv_patch_link TYPE string, + lv_zip_import_link TYPE string, + lv_zip_export_link TYPE string, lv_check_link TYPE string, lv_settings_link TYPE string, lv_branch_html TYPE string. @@ -398,6 +400,18 @@ CLASS ZCL_ABAPGIT_GUI_REPO_OVER IMPLEMENTATION. iv_act = |{ zif_abapgit_definitions=>c_action-go_patch }?{ -key } | ). ii_html->add( lv_patch_link && lc_separator ). + ELSE. " offline repo + lv_zip_import_link = ii_html->a( + iv_txt = |Import| + iv_act = |{ zif_abapgit_definitions=>c_action-zip_import }?{ -key } | ). + + ii_html->add( lv_zip_import_link && lc_separator ). + + lv_zip_export_link = ii_html->a( + iv_txt = |Export| + iv_act = |{ zif_abapgit_definitions=>c_action-zip_export }?{ -key } | ). + + ii_html->add( lv_zip_export_link && lc_separator ). ENDIF. lv_settings_link = ii_html->a( diff --git a/src/ui/zcl_abapgit_gui_router.clas.abap b/src/ui/zcl_abapgit_gui_router.clas.abap index aa72749e3..3fcba5c16 100644 --- a/src/ui/zcl_abapgit_gui_router.clas.abap +++ b/src/ui/zcl_abapgit_gui_router.clas.abap @@ -141,7 +141,7 @@ ENDCLASS. -CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION. +CLASS zcl_abapgit_gui_router IMPLEMENTATION. METHOD abapgit_services_actions. @@ -693,12 +693,19 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION. METHOD zip_services. - DATA: lv_key TYPE zif_abapgit_persistence=>ty_repo-key, - lo_repo TYPE REF TO zcl_abapgit_repo, - lv_package TYPE devclass, - lv_path TYPE string, - lv_xstr TYPE xstring. + DATA: lv_key TYPE zif_abapgit_persistence=>ty_repo-key, + lo_repo TYPE REF TO zcl_abapgit_repo, + lv_package TYPE devclass, + lv_path TYPE string, + lv_xstr TYPE xstring, + lv_current_page_name TYPE string. + " TODO refactor + CONSTANTS: + BEGIN OF lc_page, + main_view TYPE string VALUE 'ZCL_ABAPGIT_GUI_PAGE_MAIN', + repo_view TYPE string VALUE 'ZCL_ABAPGIT_GUI_PAGE_VIEW_REPO', + END OF lc_page. lv_key = is_event_data-getdata. " TODO refactor @@ -713,7 +720,20 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION. lv_xstr = zcl_abapgit_ui_factory=>get_frontend_services( )->file_upload( lv_path ). lo_repo->set_files_remote( zcl_abapgit_zip=>load( lv_xstr ) ). zcl_abapgit_services_repo=>refresh( lv_key ). - ev_state = zcl_abapgit_gui=>c_event_state-re_render. + + " TODO refactor how current page name is determined + lv_current_page_name = zcl_abapgit_ui_factory=>get_gui_services( )->get_current_page_name( ). + CASE lv_current_page_name. + WHEN lc_page-repo_view. + ev_state = zcl_abapgit_gui=>c_event_state-re_render. + WHEN lc_page-main_view. + CREATE OBJECT ei_page TYPE zcl_abapgit_gui_page_view_repo + EXPORTING + iv_key = lo_repo->get_key( ). + ev_state = zcl_abapgit_gui=>c_event_state-new_page. + WHEN OTHERS. + ev_state = zcl_abapgit_gui=>c_event_state-no_more_act. + ENDCASE. WHEN zif_abapgit_definitions=>c_action-zip_export. " Export repo as ZIP lo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). lv_xstr = zcl_abapgit_zip=>export( lo_repo ).