New Advanced Link Transport refactor

This commit is contained in:
eduardocopat 2017-03-13 17:53:14 +01:00
parent 552a9d9b84
commit 7b018144a6
4 changed files with 125 additions and 92 deletions

View File

@ -30,7 +30,7 @@ TYPES: ty_string_tt TYPE STANDARD TABLE OF string WITH DEFAULT KEY.
TYPES: TYPES:
BEGIN OF ty_git_user, BEGIN OF ty_git_user,
name TYPE string, name TYPE string,
email TYPE string, email TYPE string,
END OF ty_git_user. END OF ty_git_user.
@ -183,60 +183,61 @@ CONSTANTS: gc_newline TYPE abap_char1 VALUE cl_abap_char_utilities=>newline.
CONSTANTS: gc_english TYPE spras VALUE 'E'. CONSTANTS: gc_english TYPE spras VALUE 'E'.
CONSTANTS: gc_root_dir TYPE string VALUE '/', CONSTANTS: gc_root_dir TYPE string VALUE '/',
gc_dot_abapgit TYPE string VALUE '.abapgit.xml' ##NO_TEXT, gc_dot_abapgit TYPE string VALUE '.abapgit.xml' ##NO_TEXT,
gc_author_regex TYPE string VALUE '^([\w\s\.@\-_1-9]+) <(.*)> (\d{10}) .\d{4}$' ##NO_TEXT. gc_author_regex TYPE string VALUE '^([\w\s\.@\-_1-9]+) <(.*)> (\d{10}).\d{4}$' ##NO_TEXT.
CONSTANTS: BEGIN OF gc_action, CONSTANTS: BEGIN OF gc_action,
repo_clone TYPE string VALUE 'repo_clone', repo_clone TYPE string VALUE 'repo_clone',
repo_refresh TYPE string VALUE 'repo_refresh', repo_refresh TYPE string VALUE 'repo_refresh',
repo_remove TYPE string VALUE 'repo_remove', repo_remove TYPE string VALUE 'repo_remove',
repo_purge TYPE string VALUE 'repo_purge', repo_purge TYPE string VALUE 'repo_purge',
repo_newoffline TYPE string VALUE 'repo_newoffline', repo_newoffline TYPE string VALUE 'repo_newoffline',
repo_remote_attach TYPE string VALUE 'repo_remote_attach', repo_remote_attach TYPE string VALUE 'repo_remote_attach',
repo_remote_detach TYPE string VALUE 'repo_remote_detach', repo_remote_detach TYPE string VALUE 'repo_remote_detach',
repo_remote_change TYPE string VALUE 'repo_remote_change', repo_remote_change TYPE string VALUE 'repo_remote_change',
repo_refresh_checksums TYPE string VALUE 'repo_refresh_checksums', repo_refresh_checksums TYPE string VALUE 'repo_refresh_checksums',
repo_toggle_fav TYPE string VALUE 'repo_toggle_fav', repo_toggle_fav TYPE string VALUE 'repo_toggle_fav',
repo_transport_to_pull_reqst TYPE string VALUE 'go_transport_to_pull_request',
abapgit_home TYPE string VALUE 'abapgit_home', abapgit_home TYPE string VALUE 'abapgit_home',
abapgit_wiki TYPE string VALUE 'abapgit_wiki', abapgit_wiki TYPE string VALUE 'abapgit_wiki',
abapgit_install TYPE string VALUE 'abapgit_install', abapgit_install TYPE string VALUE 'abapgit_install',
abapgit_install_pi TYPE string VALUE 'abapgit_install_pi', abapgit_install_pi TYPE string VALUE 'abapgit_install_pi',
zip_import TYPE string VALUE 'zip_import', zip_import TYPE string VALUE 'zip_import',
zip_export TYPE string VALUE 'zip_export', zip_export TYPE string VALUE 'zip_export',
zip_package TYPE string VALUE 'zip_package', zip_package TYPE string VALUE 'zip_package',
zip_transport TYPE string VALUE 'zip_transport', zip_transport TYPE string VALUE 'zip_transport',
zip_object TYPE string VALUE 'zip_object', zip_object TYPE string VALUE 'zip_object',
git_pull TYPE string VALUE 'git_pull', git_pull TYPE string VALUE 'git_pull',
git_reset TYPE string VALUE 'git_reset', git_reset TYPE string VALUE 'git_reset',
git_branch_create TYPE string VALUE 'git_branch_create', git_branch_create TYPE string VALUE 'git_branch_create',
git_branch_switch TYPE string VALUE 'git_branch_switch', git_branch_switch TYPE string VALUE 'git_branch_switch',
git_branch_delete TYPE string VALUE 'git_branch_delete', git_branch_delete TYPE string VALUE 'git_branch_delete',
git_commit TYPE string VALUE 'git_commit', git_commit TYPE string VALUE 'git_commit',
db_delete TYPE string VALUE 'db_delete', db_delete TYPE string VALUE 'db_delete',
db_update TYPE string VALUE 'db_update', db_update TYPE string VALUE 'db_update',
db_display TYPE string VALUE 'db_display', db_display TYPE string VALUE 'db_display',
db_edit TYPE string VALUE 'db_edit', db_edit TYPE string VALUE 'db_edit',
bg_update TYPE string VALUE 'bg_update', bg_update TYPE string VALUE 'bg_update',
go_main TYPE string VALUE 'go_main', go_main TYPE string VALUE 'go_main',
go_explore TYPE string VALUE 'go_explore', go_explore TYPE string VALUE 'go_explore',
go_db TYPE string VALUE 'go_db', go_db TYPE string VALUE 'go_db',
go_background TYPE string VALUE 'go_background', go_background TYPE string VALUE 'go_background',
go_background_run TYPE string VALUE 'go_background_run', go_background_run TYPE string VALUE 'go_background_run',
go_diff TYPE string VALUE 'go_diff', go_diff TYPE string VALUE 'go_diff',
go_stage TYPE string VALUE 'go_stage', go_stage TYPE string VALUE 'go_stage',
go_commit TYPE string VALUE 'go_commit', go_commit TYPE string VALUE 'go_commit',
go_branch_overview TYPE string VALUE 'go_branch_overview', go_branch_overview TYPE string VALUE 'go_branch_overview',
go_playground TYPE string VALUE 'go_playground', go_playground TYPE string VALUE 'go_playground',
go_debuginfo TYPE string VALUE 'go_debuginfo', go_debuginfo TYPE string VALUE 'go_debuginfo',
go_settings TYPE string VALUE 'go_settings', go_settings TYPE string VALUE 'go_settings',
go_tutorial TYPE string VALUE 'go_tutorial', go_tutorial TYPE string VALUE 'go_tutorial',
jump TYPE string VALUE 'jump', jump TYPE string VALUE 'jump',
jump_pkg TYPE string VALUE 'jump_pkg', jump_pkg TYPE string VALUE 'jump_pkg',
END OF gc_action. END OF gc_action.

View File

@ -64,10 +64,12 @@ CLASS lcl_gui_router IMPLEMENTATION.
METHOD on_event. METHOD on_event.
DATA: lv_url TYPE string, DATA: lv_url TYPE string,
lv_key TYPE lcl_persistence_repo=>ty_repo-key, lv_key TYPE lcl_persistence_repo=>ty_repo-key,
ls_db TYPE lcl_persistence_db=>ty_content, ls_db TYPE lcl_persistence_db=>ty_content,
ls_item TYPE ty_item. ls_item TYPE ty_item,
lt_transport_headers TYPE trwbo_request_headers,
lt_tadir TYPE scts_tadir.
lv_key = iv_getdata. " TODO refactor lv_key = iv_getdata. " TODO refactor
lv_url = iv_getdata. " TODO refactor lv_url = iv_getdata. " TODO refactor
@ -171,6 +173,11 @@ CLASS lcl_gui_router IMPLEMENTATION.
WHEN gc_action-repo_toggle_fav. " Toggle repo as favorite WHEN gc_action-repo_toggle_fav. " Toggle repo as favorite
lcl_services_repo=>toggle_favorite( lv_key ). lcl_services_repo=>toggle_favorite( lv_key ).
ev_state = gc_event_state-re_render. ev_state = gc_event_state-re_render.
WHEN gc_action-repo_transport_to_pull_reqst.
lt_transport_headers = lcl_transport_popup=>show( ).
lt_tadir = lcl_transport=>to_tadir( lt_transport_headers ).
"lcl_services_repo=>transport_to_pull_request( lv_key ).
ev_state = gc_event_state-re_render.
" ZIP services actions " ZIP services actions
WHEN gc_action-zip_import. " Import repo from ZIP WHEN gc_action-zip_import. " Import repo from ZIP

View File

@ -1,17 +1,24 @@
*&---------------------------------------------------------------------* *&---------------------------------------------------------------------*
*& Include ZABAPGIT_TRANSPORT *& Include ZABAPGIT_TRANSPORT
*&---------------------------------------------------------------------* *&---------------------------------------------------------------------*
CLASS lcl_transport_popup DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
show
RETURNING VALUE(rt_trkorr) TYPE trwbo_request_headers.
ENDCLASS.
CLASS lcl_transport DEFINITION FINAL. CLASS lcl_transport DEFINITION FINAL.
PUBLIC SECTION. PUBLIC SECTION.
CLASS-METHODS: CLASS-METHODS:
zip RAISING lcx_exception. zip RAISING lcx_exception,
to_tadir IMPORTING it_transport_headers TYPE trwbo_request_headers
RETURNING VALUE(rt_tadir) TYPE scts_tadir
RAISING lcx_exception.
PRIVATE SECTION. PRIVATE SECTION.
CLASS-METHODS: CLASS-METHODS:
popup
RETURNING VALUE(rt_trkorr) TYPE trwbo_request_headers,
read_requests read_requests
IMPORTING it_trkorr TYPE trwbo_request_headers IMPORTING it_trkorr TYPE trwbo_request_headers
RETURNING VALUE(rt_requests) TYPE trwbo_requests RETURNING VALUE(rt_requests) TYPE trwbo_requests
@ -38,7 +45,7 @@ CLASS lcl_transport IMPLEMENTATION.
lt_trkorr TYPE trwbo_request_headers. lt_trkorr TYPE trwbo_request_headers.
lt_trkorr = popup( ). lt_trkorr = lcl_transport_popup=>show( ).
IF lines( lt_trkorr ) = 0. IF lines( lt_trkorr ) = 0.
RETURN. RETURN.
ENDIF. ENDIF.
@ -67,6 +74,22 @@ CLASS lcl_transport IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD to_tadir.
DATA: lt_requests TYPE trwbo_requests,
lt_tadir TYPE scts_tadir,
lv_package TYPE devclass,
lt_trkorr TYPE trwbo_request_headers.
lt_trkorr = lcl_transport_popup=>show( ).
IF lines( lt_trkorr ) = 0.
RETURN.
ENDIF.
lt_requests = read_requests( lt_trkorr ).
lt_tadir = resolve( lt_requests ).
ENDMETHOD.
METHOD find_top_package. METHOD find_top_package.
* assumption: all objects in transport share a common super package * assumption: all objects in transport share a common super package
@ -100,41 +123,6 @@ CLASS lcl_transport IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD popup.
DATA: lrs_trfunction TYPE trsel_trs_function,
lv_types TYPE string,
ls_ranges TYPE trsel_ts_ranges.
" Fill all request types
lv_types = 'KWTCOEMPDRSXQFG'.
lrs_trfunction-sign = 'I'.
lrs_trfunction-option = 'EQ'.
WHILE lv_types NE space.
lrs_trfunction-low = lv_types(1).
APPEND lrs_trfunction TO ls_ranges-request_funcs.
SHIFT lv_types.
ENDWHILE.
CALL FUNCTION 'TRINT_SELECT_REQUESTS'
EXPORTING
iv_username_pattern = sy-uname
iv_via_selscreen = 'X'
iv_complete_projects = ''
* is_popup =
iv_title = 'abapGit: Transport Request Selection'
IMPORTING
et_requests = rt_trkorr
CHANGING
cs_ranges = ls_ranges
EXCEPTIONS
action_aborted_by_user = 1
OTHERS = 2.
IF sy-subrc <> 0.
RETURN.
ENDIF.
ENDMETHOD.
METHOD read_requests. METHOD read_requests.
DATA lt_requests LIKE rt_requests. DATA lt_requests LIKE rt_requests.
@ -205,3 +193,38 @@ CLASS lcl_transport IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.
CLASS lcl_transport_popup IMPLEMENTATION.
METHOD show.
DATA: lrs_trfunction TYPE trsel_trs_function,
lv_types TYPE string,
ls_ranges TYPE trsel_ts_ranges.
" Fill all request types
lv_types = 'KWTCOEMPDRSXQFG'.
lrs_trfunction-sign = 'I'.
lrs_trfunction-option = 'EQ'.
WHILE lv_types NE space.
lrs_trfunction-low = lv_types(1).
APPEND lrs_trfunction TO ls_ranges-request_funcs.
SHIFT lv_types.
ENDWHILE.
CALL FUNCTION 'TRINT_SELECT_REQUESTS'
EXPORTING
iv_username_pattern = sy-uname
iv_via_selscreen = 'X'
iv_complete_projects = ''
* is_popup =
iv_title = 'abapGit: Transport Request Selection'
IMPORTING
et_requests = rt_trkorr
CHANGING
cs_ranges = ls_ranges
EXCEPTIONS
action_aborted_by_user = 1
OTHERS = 2.
IF sy-subrc <> 0.
RETURN.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@ -309,6 +309,8 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
iv_act = |{ gc_action-repo_remote_detach }?{ lv_key }| ). iv_act = |{ gc_action-repo_remote_detach }?{ lv_key }| ).
lo_tb_advanced->add( iv_txt = 'Force stage' lo_tb_advanced->add( iv_txt = 'Force stage'
iv_act = |{ gc_action-go_stage }?{ lv_key }| ). iv_act = |{ gc_action-go_stage }?{ lv_key }| ).
lo_tb_advanced->add( iv_txt = 'Transport to Pull Request'
iv_act = |{ gc_action-repo_transport_to_pull_reqst }?{ lv_key }| ).
ELSE. ELSE.
lo_tb_advanced->add( iv_txt = 'Make on-line' lo_tb_advanced->add( iv_txt = 'Make on-line'
iv_act = |{ gc_action-repo_remote_attach }?{ lv_key }| ). iv_act = |{ gc_action-repo_remote_attach }?{ lv_key }| ).