diff --git a/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap b/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap index 74cc768e4..330591d0c 100644 --- a/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap +++ b/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap @@ -204,9 +204,6 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION. )->add( iv_txt = 'Object to Files' iv_act = zif_abapgit_definitions=>c_action-zip_object - )->add( - iv_txt = 'Test Changed by' - iv_act = zif_abapgit_definitions=>c_action-changed_by )->add( iv_txt = 'Debug Info' iv_act = zif_abapgit_definitions=>c_action-go_debuginfo ). diff --git a/src/ui/zcl_abapgit_gui_page_ex_object.clas.abap b/src/ui/zcl_abapgit_gui_page_ex_object.clas.abap new file mode 100644 index 000000000..f4c1a1ce0 --- /dev/null +++ b/src/ui/zcl_abapgit_gui_page_ex_object.clas.abap @@ -0,0 +1,144 @@ +CLASS zcl_abapgit_gui_page_ex_object DEFINITION + PUBLIC + INHERITING FROM zcl_abapgit_gui_component + FINAL + CREATE PRIVATE. + + PUBLIC SECTION. + INTERFACES zif_abapgit_gui_event_handler. + INTERFACES zif_abapgit_gui_renderable. + + CLASS-METHODS create + RETURNING + VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable + RAISING + zcx_abapgit_exception. + METHODS constructor + RAISING + zcx_abapgit_exception. + + PROTECTED SECTION. + PRIVATE SECTION. + CONSTANTS: + BEGIN OF c_id, + object_type TYPE string VALUE 'object_type', + object_name TYPE string VALUE 'object_name', + END OF c_id. + + CONSTANTS: + BEGIN OF c_event, + go_back TYPE string VALUE 'go-back', + export TYPE string VALUE 'export', + choose_object_type TYPE string VALUE 'choose-object-type', + END OF c_event. + + + DATA mo_form TYPE REF TO zcl_abapgit_html_form. + DATA mo_form_data TYPE REF TO zcl_abapgit_string_map. + DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map. + DATA mo_form_util TYPE REF TO zcl_abapgit_html_form_utils. + + METHODS get_form_schema + RETURNING + VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form. + + METHODS export_object + RAISING + zcx_abapgit_exception. +ENDCLASS. + + + +CLASS zcl_abapgit_gui_page_ex_object IMPLEMENTATION. + METHOD constructor. + super->constructor( ). + CREATE OBJECT mo_validation_log. + CREATE OBJECT mo_form_data. + mo_form = get_form_schema( ). + mo_form_util = zcl_abapgit_html_form_utils=>create( mo_form ). + ENDMETHOD. + + METHOD create. + DATA lo_component TYPE REF TO zcl_abapgit_gui_page_ex_object. + CREATE OBJECT lo_component. + + ri_page = zcl_abapgit_gui_page_hoc=>create( + iv_page_title = 'Export Object to Files' + ii_child_component = lo_component ). + ENDMETHOD. + + METHOD get_form_schema. + ro_form = zcl_abapgit_html_form=>create( iv_form_id = 'export-object-to-files' ). + + ro_form->text( + iv_label = 'Object Type' + iv_name = c_id-object_type + iv_required = abap_true + iv_upper_case = abap_true + iv_side_action = c_event-choose_object_type + )->text( + iv_label = 'Object Name' + iv_name = c_id-object_name + iv_required = abap_true + iv_upper_case = abap_true + )->command( + iv_label = 'Export' + iv_cmd_type = zif_abapgit_html_form=>c_cmd_type-input_main + iv_action = c_event-export + )->command( + iv_label = 'Back' + iv_action = c_event-go_back ). + ENDMETHOD. + + METHOD zif_abapgit_gui_event_handler~on_event. + mo_form_data = mo_form_util->normalize( ii_event->form_data( ) ). + + CASE ii_event->mv_action. + WHEN c_event-go_back. + + rs_handled-state = zcl_abapgit_gui=>c_event_state-go_back. + + WHEN c_event-export. + + export_object( ). + MESSAGE 'Object successfully exported' TYPE 'S'. + rs_handled-state = zcl_abapgit_gui=>c_event_state-go_back. + + WHEN c_event-choose_object_type. + + mo_form_data->set( + iv_key = 'object_type' + iv_val = zcl_abapgit_ui_factory=>get_popups( )->popup_search_help( 'TADIR-OBJECT' ) ). + + IF mo_form_data->get( 'object_type' ) IS NOT INITIAL. + rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render. + ELSE. + rs_handled-state = zcl_abapgit_gui=>c_event_state-no_more_act. + ENDIF. + ENDCASE. + ENDMETHOD. + + + METHOD export_object. + DATA lv_object_type TYPE trobjtype. + DATA lv_object_name TYPE sobj_name. + + lv_object_type = mo_form_data->get( c_id-object_type ). + lv_object_name = mo_form_data->get( c_id-object_name ). + + zcl_abapgit_zip=>export_object( + iv_object_type = lv_object_type + iv_object_name = lv_object_name ). + ENDMETHOD. + + METHOD zif_abapgit_gui_renderable~render. + gui_services( )->register_event_handler( me ). + + CREATE OBJECT ri_html TYPE zcl_abapgit_html. + + ri_html->add( mo_form->render( + io_values = mo_form_data + io_validation_log = mo_validation_log ) ). + ENDMETHOD. + +ENDCLASS. diff --git a/src/ui/zcl_abapgit_gui_page_ex_object.clas.xml b/src/ui/zcl_abapgit_gui_page_ex_object.clas.xml new file mode 100644 index 000000000..b14fc31a1 --- /dev/null +++ b/src/ui/zcl_abapgit_gui_page_ex_object.clas.xml @@ -0,0 +1,16 @@ + + + + + + ZCL_ABAPGIT_GUI_PAGE_EX_OBJECT + E + Export Object + 1 + X + X + X + + + + diff --git a/src/ui/zcl_abapgit_gui_router.clas.abap b/src/ui/zcl_abapgit_gui_router.clas.abap index 3d0889ee1..9da1673ec 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. @@ -560,9 +560,6 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION. METHOD other_utilities. CASE ii_event->mv_action. - WHEN zif_abapgit_definitions=>c_action-changed_by. - zcl_abapgit_services_basis=>test_changed_by( ). - rs_handled-state = zcl_abapgit_gui=>c_event_state-no_more_act. WHEN zif_abapgit_definitions=>c_action-performance_test. zcl_abapgit_services_basis=>run_performance_test( ). rs_handled-state = zcl_abapgit_gui=>c_event_state-no_more_act. @@ -802,8 +799,8 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION. zcl_abapgit_transport_mass=>run( ). rs_handled-state = zcl_abapgit_gui=>c_event_state-no_more_act. WHEN zif_abapgit_definitions=>c_action-zip_object. " Export object as ZIP - zcl_abapgit_zip=>export_object( ). - rs_handled-state = zcl_abapgit_gui=>c_event_state-no_more_act. + rs_handled-page = zcl_abapgit_gui_page_ex_object=>create( ). + rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page. ENDCASE. ENDMETHOD. diff --git a/src/ui/zcl_abapgit_html_form_utils.clas.testclasses.abap b/src/ui/zcl_abapgit_html_form_utils.clas.testclasses.abap index b9622cec8..174ddbc3a 100644 --- a/src/ui/zcl_abapgit_html_form_utils.clas.testclasses.abap +++ b/src/ui/zcl_abapgit_html_form_utils.clas.testclasses.abap @@ -50,9 +50,6 @@ CLASS ltcl_popups_mock IMPLEMENTATION. METHOD zif_abapgit_popups~popup_folder_logic. ENDMETHOD. - METHOD zif_abapgit_popups~popup_object. - ENDMETHOD. - METHOD zif_abapgit_popups~popup_package_export. ENDMETHOD. diff --git a/src/ui/zcl_abapgit_popups.clas.abap b/src/ui/zcl_abapgit_popups.clas.abap index dcb7609d9..89ce687bf 100644 --- a/src/ui/zcl_abapgit_popups.clas.abap +++ b/src/ui/zcl_abapgit_popups.clas.abap @@ -721,38 +721,6 @@ CLASS zcl_abapgit_popups IMPLEMENTATION. ENDMETHOD. - - METHOD zif_abapgit_popups~popup_object. - - DATA: lt_fields TYPE TABLE OF sval. - DATA: lv_object_type TYPE spo_value. - DATA: lv_object_name TYPE spo_value. - - CLEAR: rs_tadir-object, rs_tadir-obj_name. - - add_field( EXPORTING iv_tabname = 'TADIR' - iv_fieldname = 'OBJECT' - iv_fieldtext = 'Type' - CHANGING ct_fields = lt_fields ). - - add_field( EXPORTING iv_tabname = 'TADIR' - iv_fieldname = 'OBJ_NAME' - iv_fieldtext = 'Name' - CHANGING ct_fields = lt_fields ). - - _popup_3_get_values( EXPORTING iv_popup_title = 'Object' - iv_no_value_check = abap_true - IMPORTING ev_value_1 = lv_object_type - ev_value_2 = lv_object_name - CHANGING ct_fields = lt_fields ). - - rs_tadir = zcl_abapgit_factory=>get_tadir( )->read_single( - iv_object = to_upper( lv_object_type ) - iv_obj_name = to_upper( lv_object_name ) ). - - ENDMETHOD. - - METHOD zif_abapgit_popups~popup_package_export. DATA: lt_fields TYPE TABLE OF sval. diff --git a/src/ui/zcl_abapgit_services_basis.clas.abap b/src/ui/zcl_abapgit_services_basis.clas.abap index 8d0d4538f..5227fda07 100644 --- a/src/ui/zcl_abapgit_services_basis.clas.abap +++ b/src/ui/zcl_abapgit_services_basis.clas.abap @@ -11,9 +11,6 @@ CLASS zcl_abapgit_services_basis DEFINITION VALUE(rv_package) TYPE devclass RAISING zcx_abapgit_exception. - CLASS-METHODS test_changed_by - RAISING - zcx_abapgit_exception. CLASS-METHODS run_performance_test RAISING zcx_abapgit_exception. @@ -196,25 +193,4 @@ CLASS zcl_abapgit_services_basis IMPLEMENTATION. ix_previous = lx_salv_error ). ENDTRY. ENDMETHOD. - - - METHOD test_changed_by. - - DATA ls_tadir TYPE zif_abapgit_definitions=>ty_tadir. - DATA ls_item TYPE zif_abapgit_definitions=>ty_item. - DATA lv_user TYPE xubname. - - ls_tadir = zcl_abapgit_ui_factory=>get_popups( )->popup_object( ). - IF ls_tadir IS INITIAL. - RETURN. - ENDIF. - - ls_item-obj_type = ls_tadir-object. - ls_item-obj_name = ls_tadir-obj_name. - - lv_user = zcl_abapgit_objects=>changed_by( ls_item ). - - MESSAGE lv_user TYPE 'S'. - - ENDMETHOD. ENDCLASS. diff --git a/src/ui/zcl_abapgit_services_basis.clas.testclasses.abap b/src/ui/zcl_abapgit_services_basis.clas.testclasses.abap index d710ed48c..bf560bbff 100644 --- a/src/ui/zcl_abapgit_services_basis.clas.testclasses.abap +++ b/src/ui/zcl_abapgit_services_basis.clas.testclasses.abap @@ -350,10 +350,6 @@ CLASS ltcl_popups_mock IMPLEMENTATION. ENDMETHOD. - METHOD zif_abapgit_popups~popup_object. - - ENDMETHOD. - METHOD zif_abapgit_popups~popup_package_export. ENDMETHOD. diff --git a/src/ui/zcl_abapgit_ui_injector.clas.testclasses.abap b/src/ui/zcl_abapgit_ui_injector.clas.testclasses.abap index 73a7be3f5..712a31400 100644 --- a/src/ui/zcl_abapgit_ui_injector.clas.testclasses.abap +++ b/src/ui/zcl_abapgit_ui_injector.clas.testclasses.abap @@ -44,10 +44,6 @@ CLASS ltcl_abapgit_popups_mock IMPLEMENTATION. ENDMETHOD. - METHOD zif_abapgit_popups~popup_object. - - ENDMETHOD. - METHOD zif_abapgit_popups~popup_package_export. ENDMETHOD. diff --git a/src/ui/zif_abapgit_popups.intf.abap b/src/ui/zif_abapgit_popups.intf.abap index 940ca1321..41d8d5eae 100644 --- a/src/ui/zif_abapgit_popups.intf.abap +++ b/src/ui/zif_abapgit_popups.intf.abap @@ -37,11 +37,6 @@ INTERFACE zif_abapgit_popups VALUE(rv_folder_logic) TYPE string RAISING zcx_abapgit_exception . - METHODS popup_object - RETURNING - VALUE(rs_tadir) TYPE zif_abapgit_definitions=>ty_tadir - RAISING - zcx_abapgit_exception . METHODS create_branch_popup IMPORTING !iv_source_branch_name TYPE string diff --git a/src/zcl_abapgit_zip.clas.abap b/src/zcl_abapgit_zip.clas.abap index 933044639..6d9da67f4 100644 --- a/src/zcl_abapgit_zip.clas.abap +++ b/src/zcl_abapgit_zip.clas.abap @@ -23,8 +23,11 @@ CLASS zcl_abapgit_zip DEFINITION RAISING zcx_abapgit_exception . CLASS-METHODS export_object + IMPORTING + iv_object_type TYPE trobjtype + iv_object_name TYPE sobj_name RAISING - zcx_abapgit_exception . + zcx_abapgit_exception. CLASS-METHODS export_package EXPORTING !ev_xstr TYPE xstring @@ -73,7 +76,7 @@ ENDCLASS. -CLASS ZCL_ABAPGIT_ZIP IMPLEMENTATION. +CLASS zcl_abapgit_zip IMPLEMENTATION. METHOD encode_files. @@ -146,24 +149,22 @@ CLASS ZCL_ABAPGIT_ZIP IMPLEMENTATION. FIELD-SYMBOLS: LIKE LINE OF ls_files_item-files. - WHILE ls_tadir IS INITIAL. + ls_tadir = zcl_abapgit_factory=>get_tadir( )->read_single( + iv_object = iv_object_type + iv_obj_name = iv_object_name ). - ls_tadir = zcl_abapgit_ui_factory=>get_popups( )->popup_object( ). - IF ls_tadir IS INITIAL. - MESSAGE 'Object couldn''t be found' TYPE 'S' DISPLAY LIKE 'E'. - ENDIF. - - ENDWHILE. + IF ls_tadir IS INITIAL. + zcx_abapgit_exception=>raise( 'Object could not be found' ). + ENDIF. ls_files_item-item-obj_type = ls_tadir-object. ls_files_item-item-obj_name = ls_tadir-obj_name. - ls_files_item = zcl_abapgit_objects=>serialize( is_item = ls_files_item-item + ls_files_item = zcl_abapgit_objects=>serialize( is_item = ls_files_item-item iv_language = sy-langu ). IF lines( ls_files_item-files ) = 0. - MESSAGE 'Empty' TYPE 'S'. - RETURN. + zcx_abapgit_exception=>raise( 'Empty' ). ENDIF. cl_gui_frontend_services=>directory_browse( @@ -172,17 +173,15 @@ CLASS ZCL_ABAPGIT_ZIP IMPLEMENTATION. CHANGING selected_folder = lv_folder ). IF lv_folder IS INITIAL. - RETURN. + RAISE EXCEPTION TYPE zcx_abapgit_cancel. ENDIF. gv_prev = lv_folder. - cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_sep ). LOOP AT ls_files_item-files ASSIGNING . - CONCATENATE lv_folder lv_sep -filename INTO lv_fullpath. - - save_binstring_to_localfile( iv_filename = lv_fullpath + lv_fullpath = |{ lv_folder }{ lv_sep }{ -filename }|. + save_binstring_to_localfile( iv_filename = lv_fullpath iv_binstring = -data ). ENDLOOP. diff --git a/src/zif_abapgit_definitions.intf.abap b/src/zif_abapgit_definitions.intf.abap index eebc5e96d..090cb5011 100644 --- a/src/zif_abapgit_definitions.intf.abap +++ b/src/zif_abapgit_definitions.intf.abap @@ -482,7 +482,6 @@ INTERFACE zif_abapgit_definitions change_order_by TYPE string VALUE 'change_order_by', goto_message TYPE string VALUE 'goto_message', direction TYPE string VALUE 'direction', - changed_by TYPE string VALUE 'changed_by', documentation TYPE string VALUE 'documentation', changelog TYPE string VALUE 'changelog', END OF c_action.