align lcl_repo->get_local_files and lcl_zip->expor

new lcl_log class
remove secret export feature, needed for alignment
This commit is contained in:
larshp 2016-05-16 10:16:42 +00:00
parent 8cf34838ec
commit 33eaa981f0

View File

@ -3,7 +3,7 @@ REPORT zabapgit.
* See http://www.abapgit.org * See http://www.abapgit.org
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
gc_abap_version TYPE string VALUE 'v1.7.13'. "#EC NOTEXT gc_abap_version TYPE string VALUE 'v1.7.14'. "#EC NOTEXT
******************************************************************************** ********************************************************************************
* The MIT License (MIT) * The MIT License (MIT)
@ -146,6 +146,59 @@ CLASS lcx_not_found IMPLEMENTATION.
ENDCLASS. "lcx_not_found IMPLEMENTATION ENDCLASS. "lcx_not_found IMPLEMENTATION
CLASS lcl_log DEFINITION.
PUBLIC SECTION.
METHODS:
add
IMPORTING
iv_msgv1 TYPE csequence
iv_msgv2 TYPE csequence
iv_msgv3 TYPE csequence
iv_msgv4 TYPE csequence,
count
RETURNING VALUE(rv_count) TYPE i,
show.
PRIVATE SECTION.
DATA: mt_log TYPE rs_t_msg.
ENDCLASS.
CLASS lcl_log IMPLEMENTATION.
METHOD add.
FIELD-SYMBOLS: <ls_log> LIKE LINE OF mt_log.
APPEND INITIAL LINE TO mt_log ASSIGNING <ls_log>.
<ls_log>-msgty = 'W'.
<ls_log>-msgid = '00'.
<ls_log>-msgno = '001'.
<ls_log>-msgv1 = iv_msgv1.
<ls_log>-msgv2 = iv_msgv2.
<ls_log>-msgv3 = iv_msgv3.
<ls_log>-msgv4 = iv_msgv4.
ENDMETHOD.
METHOD show.
CALL FUNCTION 'RSDC_SHOW_MESSAGES_POPUP'
EXPORTING
i_t_msg = mt_log
i_txt = 'Warning'
i_with_s_on_empty = abap_false
i_one_msg_direct = abap_false
i_one_msg_type_s = abap_false
##no_text.
ENDMETHOD.
METHOD count.
rv_count = lines( mt_log ).
ENDMETHOD.
ENDCLASS.
*----------------------------------------------------------------------* *----------------------------------------------------------------------*
* CLASS lcl_zlib_huffman DEFINITION * CLASS lcl_zlib_huffman DEFINITION
*----------------------------------------------------------------------* *----------------------------------------------------------------------*
@ -12500,7 +12553,9 @@ CLASS lcl_repo DEFINITION ABSTRACT.
RETURNING VALUE(rv_name) TYPE string RETURNING VALUE(rv_name) TYPE string
RAISING lcx_exception, RAISING lcx_exception,
get_files_local get_files_local
RETURNING VALUE(rt_files) TYPE ty_files_tt IMPORTING io_log TYPE REF TO lcl_log OPTIONAL
iv_show_progress TYPE abap_bool DEFAULT abap_false
RETURNING VALUE(rt_files) TYPE ty_files_tt
RAISING lcx_exception, RAISING lcx_exception,
get_files_remote get_files_remote
RETURNING VALUE(rt_files) TYPE ty_files_tt RETURNING VALUE(rt_files) TYPE ty_files_tt
@ -12522,6 +12577,11 @@ CLASS lcl_repo DEFINITION ABSTRACT.
mt_remote TYPE ty_files_tt, mt_remote TYPE ty_files_tt,
ms_data TYPE lcl_persistence_repo=>ty_repo. ms_data TYPE lcl_persistence_repo=>ty_repo.
CLASS-METHODS show_progress
IMPORTING iv_current TYPE i
iv_total TYPE i
iv_obj_name TYPE tadir-obj_name.
ENDCLASS. "lcl_repo DEFINITION ENDCLASS. "lcl_repo DEFINITION
*----------------------------------------------------------------------* *----------------------------------------------------------------------*
@ -15378,6 +15438,23 @@ CLASS lcl_repo IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD show_progress.
DATA: lv_pct TYPE i,
lv_text TYPE string,
lv_f TYPE f.
lv_f = ( iv_current / iv_total ) * 100.
lv_pct = lv_f.
lv_text = |{ iv_obj_name } ({ iv_current }/{ iv_total })|.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = lv_pct
text = lv_text.
ENDMETHOD.
METHOD get_files_local. METHOD get_files_local.
DATA: lt_tadir TYPE lcl_tadir=>ty_tadir_tt, DATA: lt_tadir TYPE lcl_tadir=>ty_tadir_tt,
@ -15395,8 +15472,25 @@ CLASS lcl_repo IMPLEMENTATION.
lt_tadir = lcl_tadir=>read( get_package( ) ). lt_tadir = lcl_tadir=>read( get_package( ) ).
LOOP AT lt_tadir ASSIGNING <ls_tadir>. LOOP AT lt_tadir ASSIGNING <ls_tadir>.
IF iv_show_progress = abap_true.
show_progress( iv_current = sy-tabix
iv_total = lines( lt_tadir )
iv_obj_name = <ls_tadir>-obj_name ).
ENDIF.
ls_item-obj_type = <ls_tadir>-object. ls_item-obj_type = <ls_tadir>-object.
ls_item-obj_name = <ls_tadir>-obj_name. ls_item-obj_name = <ls_tadir>-obj_name.
IF lcl_objects=>is_supported( ls_item ) = abap_false.
IF NOT io_log IS INITIAL.
io_log->add( iv_msgv1 = 'Object type ignored, not supported:'
iv_msgv2 = ls_item-obj_type
iv_msgv3 = '-'
iv_msgv4 = ls_item-obj_name ) ##no_text.
ENDIF.
CONTINUE.
ENDIF.
lt_files = lcl_objects=>serialize( ls_item ). lt_files = lcl_objects=>serialize( ls_item ).
LOOP AT lt_files ASSIGNING <ls_file>. LOOP AT lt_files ASSIGNING <ls_file>.
<ls_file>-path = '/' && <ls_tadir>-path. <ls_file>-path = '/' && <ls_tadir>-path.
@ -16170,16 +16264,7 @@ CLASS lcl_zip DEFINITION FINAL.
iv_zip TYPE abap_bool DEFAULT abap_true iv_zip TYPE abap_bool DEFAULT abap_true
RAISING lcx_exception. RAISING lcx_exception.
CLASS-METHODS export
IMPORTING iv_package TYPE devclass
iv_zip TYPE abap_bool DEFAULT abap_true
RAISING lcx_exception.
PRIVATE SECTION. PRIVATE SECTION.
CLASS-METHODS show_progress
IMPORTING iv_current TYPE i
iv_total TYPE i
iv_obj_name TYPE tadir-obj_name.
CLASS-METHODS file_upload CLASS-METHODS file_upload
RETURNING VALUE(rv_xstr) TYPE xstring RETURNING VALUE(rv_xstr) TYPE xstring
@ -16222,23 +16307,6 @@ ENDCLASS. "lcl_zip DEFINITION
*----------------------------------------------------------------------* *----------------------------------------------------------------------*
CLASS lcl_zip IMPLEMENTATION. CLASS lcl_zip IMPLEMENTATION.
METHOD show_progress.
DATA: lv_pct TYPE i,
lv_text TYPE string,
lv_f TYPE f.
lv_f = ( iv_current / iv_total ) * 100.
lv_pct = lv_f.
lv_text = |{ iv_obj_name } ({ iv_current }/{ iv_total })|.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = lv_pct
text = lv_text.
ENDMETHOD. "show_progress
METHOD get_message. METHOD get_message.
DATA: lv_returncode TYPE c, DATA: lv_returncode TYPE c,
@ -16362,7 +16430,7 @@ CLASS lcl_zip IMPLEMENTATION.
CREATE OBJECT lo_zip. CREATE OBJECT lo_zip.
LOOP AT it_files ASSIGNING <ls_file>. LOOP AT it_files ASSIGNING <ls_file>.
CONCATENATE <ls_file>-path <ls_file>-filename INTO lv_filename. CONCATENATE <ls_file>-path+1 <ls_file>-filename INTO lv_filename.
lo_zip->add( name = lv_filename lo_zip->add( name = lv_filename
content = <ls_file>-data ). content = <ls_file>-data ).
ENDLOOP. ENDLOOP.
@ -16509,13 +16577,28 @@ CLASS lcl_zip IMPLEMENTATION.
METHOD export_key. METHOD export_key.
DATA: lo_repo TYPE REF TO lcl_repo. DATA: lo_repo TYPE REF TO lcl_repo,
lo_log TYPE REF TO lcl_log,
lt_zip TYPE ty_files_tt.
lo_repo = lcl_repo_srv=>get( iv_key ). lo_repo = lcl_repo_srv=>get( iv_key ).
export( iv_package = lo_repo->get_package( ) CREATE OBJECT lo_log.
iv_zip = iv_zip ).
lt_zip = lo_repo->get_files_local( io_log = lo_log
iv_show_progress = abap_true ).
IF lo_log->count( ) > 0.
lo_log->show( ).
ENDIF.
IF iv_zip = abap_true.
file_download( iv_package = lo_repo->get_package( )
iv_xstr = encode_files( lt_zip ) ).
ELSE.
files_commit( lt_zip ).
ENDIF.
ENDMETHOD. "export_key ENDMETHOD. "export_key
@ -16532,72 +16615,6 @@ CLASS lcl_zip IMPLEMENTATION.
ENDMETHOD. "import ENDMETHOD. "import
METHOD export.
* todo, align this method with lcl_repo->get_files_local()
DATA: lt_tadir TYPE lcl_tadir=>ty_tadir_tt,
ls_item TYPE ty_item,
lt_msg TYPE rs_t_msg,
lt_files TYPE ty_files_tt,
lt_zip TYPE ty_files_tt.
FIELD-SYMBOLS: <ls_file> LIKE LINE OF lt_files,
<ls_msg> LIKE LINE OF lt_msg,
<ls_tadir> LIKE LINE OF lt_tadir.
lt_tadir = lcl_tadir=>read( iv_package ).
IF lt_tadir IS INITIAL.
_raise 'Package is empty'.
ENDIF.
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
show_progress( iv_current = sy-tabix
iv_total = lines( lt_tadir )
iv_obj_name = <ls_tadir>-obj_name ).
CLEAR ls_item.
ls_item-obj_type = <ls_tadir>-object.
ls_item-obj_name = <ls_tadir>-obj_name.
IF lcl_objects=>is_supported( ls_item ) = abap_false.
APPEND INITIAL LINE TO lt_msg ASSIGNING <ls_msg>.
<ls_msg>-msgty = 'W'.
<ls_msg>-msgid = '00'.
<ls_msg>-msgno = '001'.
<ls_msg>-msgv1 = 'Object type ignored, not supported:' ##no_text.
<ls_msg>-msgv2 = ls_item-obj_type.
<ls_msg>-msgv3 = '-'.
<ls_msg>-msgv4 = ls_item-obj_name.
ELSE.
lt_files = lcl_objects=>serialize( ls_item ).
LOOP AT lt_files ASSIGNING <ls_file>.
<ls_file>-path = <ls_tadir>-path.
ENDLOOP.
APPEND LINES OF lt_files TO lt_zip.
ENDIF.
ENDLOOP.
IF lines( lt_msg ) > 0.
CALL FUNCTION 'RSDC_SHOW_MESSAGES_POPUP'
EXPORTING
i_t_msg = lt_msg
i_txt = 'Warning'
i_with_s_on_empty = abap_false
i_one_msg_direct = abap_false
i_one_msg_type_s = abap_false
##no_text.
ENDIF.
IF iv_zip = abap_true.
file_download( iv_package = iv_package
iv_xstr = encode_files( lt_zip ) ).
ELSE.
files_commit( lt_zip ).
ENDIF.
ENDMETHOD. "export
METHOD files_commit. METHOD files_commit.
DATA: lv_folder TYPE string, DATA: lv_folder TYPE string,
@ -17626,9 +17643,6 @@ CLASS lcl_gui_page_main DEFINITION FINAL.
es_file TYPE lcl_file_status=>ty_result es_file TYPE lcl_file_status=>ty_result
RAISING lcx_exception. RAISING lcx_exception.
CLASS-METHODS zipexport
RAISING lcx_exception.
CLASS-METHODS abapgit_installation CLASS-METHODS abapgit_installation
RAISING lcx_exception. RAISING lcx_exception.
@ -18489,47 +18503,6 @@ ENDCLASS.
CLASS lcl_gui_page_main IMPLEMENTATION. CLASS lcl_gui_page_main IMPLEMENTATION.
METHOD zipexport.
DATA: lv_returncode TYPE c,
lv_package TYPE devclass,
lt_fields TYPE TABLE OF sval.
FIELD-SYMBOLS: <ls_field> LIKE LINE OF lt_fields.
APPEND INITIAL LINE TO lt_fields ASSIGNING <ls_field>.
<ls_field>-tabname = 'TDEVC'.
<ls_field>-fieldname = 'DEVCLASS'.
<ls_field>-fieldtext = 'Package'. "#EC NOTEXT
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
no_value_check = abap_true
popup_title = 'Export package to ZIP' "#EC NOTEXT
IMPORTING
returncode = lv_returncode
TABLES
fields = lt_fields
EXCEPTIONS
error_in_fields = 1
OTHERS = 2.
IF sy-subrc <> 0.
_raise 'Error from POPUP_GET_VALUES'.
ENDIF.
IF lv_returncode = 'A'.
RETURN.
ENDIF.
READ TABLE lt_fields INDEX 1 ASSIGNING <ls_field>.
ASSERT sy-subrc = 0.
lv_package = <ls_field>-value.
TRANSLATE lv_package TO UPPER CASE.
lcl_zip=>export( lv_package ).
ENDMETHOD. "zipexport
METHOD diff. METHOD diff.
DATA: lt_remote TYPE ty_files_tt, DATA: lt_remote TYPE ty_files_tt,
@ -18979,7 +18952,6 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
ro_html->add( '<td class="logo">' ). ro_html->add( '<td class="logo">' ).
ro_html->add( '<a href="sapevent:abapgithome">' ). ro_html->add( '<a href="sapevent:abapgithome">' ).
ro_html->add( |<img src="{ lcl_gui=>get_logo_src( ) }"></a>| ). ro_html->add( |<img src="{ lcl_gui=>get_logo_src( ) }"></a>| ).
ro_html->add( '<a href="sapevent:zipexport_gui" class="bkg">e</a>' ).
ro_html->add( '<a href="sapevent:db" class="bkg">d</a>' ). ro_html->add( '<a href="sapevent:db" class="bkg">d</a>' ).
ro_html->add( '</td>' ). ro_html->add( '</td>' ).
ro_html->add( '<td class="right menu">' ). ro_html->add( '<td class="right menu">' ).
@ -19417,8 +19389,6 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
lv_key = iv_getdata. lv_key = iv_getdata.
lcl_zip=>export_key( iv_key = lv_key lcl_zip=>export_key( iv_key = lv_key
iv_zip = abap_false ). iv_zip = abap_false ).
WHEN 'zipexport_gui'.
zipexport( ).
WHEN 'abapgit_installation'. WHEN 'abapgit_installation'.
abapgit_installation( ). abapgit_installation( ).
WHEN OTHERS. WHEN OTHERS.