mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
refactor popup, before #265
This commit is contained in:
parent
5725ca4b81
commit
69e8410dbb
|
@ -3,7 +3,7 @@ REPORT zabapgit.
|
|||
* See http://www.abapgit.org
|
||||
|
||||
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
|
||||
gc_abap_version TYPE string VALUE 'v1.11.15'. "#EC NOTEXT
|
||||
gc_abap_version TYPE string VALUE 'v1.11.16'. "#EC NOTEXT
|
||||
|
||||
********************************************************************************
|
||||
* The MIT License (MIT)
|
||||
|
@ -16783,11 +16783,25 @@ CLASS lcl_gui_router DEFINITION FINAL.
|
|||
|
||||
PRIVATE SECTION.
|
||||
|
||||
TYPES: BEGIN OF ty_popup,
|
||||
url TYPE string,
|
||||
package TYPE devclass,
|
||||
branch_name TYPE string,
|
||||
cancel TYPE abap_bool,
|
||||
END OF ty_popup.
|
||||
|
||||
METHODS get_page_by_name
|
||||
IMPORTING iv_name TYPE clike
|
||||
RETURNING VALUE(ri_page) TYPE REF TO lif_gui_page
|
||||
RAISING lcx_exception.
|
||||
|
||||
METHODS repo_popup
|
||||
IMPORTING iv_url TYPE string
|
||||
iv_package TYPE devclass OPTIONAL
|
||||
iv_branch TYPE string DEFAULT 'refs/heads/master'
|
||||
RETURNING VALUE(rs_popup) TYPE ty_popup
|
||||
RAISING lcx_exception.
|
||||
|
||||
METHODS get_page_diff
|
||||
IMPORTING iv_getdata TYPE clike
|
||||
RETURNING VALUE(ri_page) TYPE REF TO lif_gui_page
|
||||
|
@ -16834,7 +16848,7 @@ CLASS lcl_gui_router DEFINITION FINAL.
|
|||
IMPORTING iv_key TYPE lcl_persistence_repo=>ty_repo-key
|
||||
RAISING lcx_exception.
|
||||
|
||||
METHODS change_branch
|
||||
METHODS switch_branch
|
||||
IMPORTING iv_key TYPE lcl_persistence_repo=>ty_repo-key
|
||||
RAISING lcx_exception.
|
||||
|
||||
|
@ -21183,8 +21197,8 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
|
|||
iv_act = |remove?{ lv_key }| ).
|
||||
lo_sub->add( iv_txt = 'Uninstall'
|
||||
iv_act = |uninstall?{ lv_key }| ).
|
||||
lo_sub->add( iv_txt = 'Change branch'
|
||||
iv_act = |change_branch?{ lv_key }| ).
|
||||
lo_sub->add( iv_txt = 'Switch branch'
|
||||
iv_act = |switch_branch?{ lv_key }| ).
|
||||
lo_sub->add( iv_txt = 'Reset'
|
||||
iv_act = |reset?{ lv_key }| ).
|
||||
lo_sub->add( iv_txt = 'Create branch'
|
||||
|
@ -24227,9 +24241,9 @@ CLASS lcl_gui_router IMPLEMENTATION.
|
|||
lv_key = iv_getdata.
|
||||
ei_page = get_page_stage( lv_key ).
|
||||
ev_state = gc_event_state-new_page_w_bookmark.
|
||||
WHEN 'change_branch'.
|
||||
WHEN 'switch_branch'.
|
||||
lv_key = iv_getdata.
|
||||
change_branch( lv_key ).
|
||||
switch_branch( lv_key ).
|
||||
ev_state = gc_event_state-re_render.
|
||||
WHEN 'reset'.
|
||||
lv_key = iv_getdata.
|
||||
|
@ -24402,40 +24416,45 @@ CLASS lcl_gui_router IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "abapgit_installation
|
||||
|
||||
METHOD repo_clone.
|
||||
METHOD repo_popup.
|
||||
|
||||
DATA: lv_returncode TYPE c,
|
||||
lv_url TYPE string,
|
||||
lv_package TYPE devclass,
|
||||
lv_branch_name TYPE string,
|
||||
lv_icon_ok TYPE icon-name,
|
||||
lv_icon_br TYPE icon-name,
|
||||
lv_icon_msg TYPE icon-name,
|
||||
lo_repo TYPE REF TO lcl_repo_online,
|
||||
lt_fields TYPE TABLE OF sval.
|
||||
DATA: lv_returncode TYPE c,
|
||||
lv_icon_ok TYPE icon-name,
|
||||
lv_icon_br TYPE icon-name,
|
||||
lt_fields TYPE TABLE OF sval,
|
||||
lv_pattr TYPE spo_fattr,
|
||||
lv_button2 TYPE svalbutton-buttontext,
|
||||
lv_icon2 TYPE icon-name.
|
||||
|
||||
FIELD-SYMBOLS: <ls_field> LIKE LINE OF lt_fields.
|
||||
|
||||
" TAB FLD LABEL DEF ATTR
|
||||
_add_dialog_fld 'ABAPTXT255' 'LINE' 'Git Clone Url' iv_url ''.
|
||||
_add_dialog_fld 'TDEVC' 'DEVCLASS' 'Target Package' '' ''.
|
||||
_add_dialog_fld 'TEXTL' 'LINE' 'Branch' 'refs/heads/master' '05'.
|
||||
|
||||
IF NOT iv_package IS INITIAL.
|
||||
lv_pattr = '05'.
|
||||
ELSE.
|
||||
lv_button2 = 'Create package'.
|
||||
lv_icon2 = icon_msg.
|
||||
ENDIF.
|
||||
|
||||
* TAB FLD LABEL DEF ATTR
|
||||
_add_dialog_fld 'ABAPTXT255' 'LINE' 'Git Clone Url' iv_url ''.
|
||||
_add_dialog_fld 'TDEVC' 'DEVCLASS' 'Target Package' iv_package lv_pattr.
|
||||
_add_dialog_fld 'TEXTL' 'LINE' 'Branch' iv_branch '05'.
|
||||
|
||||
lv_icon_ok = icon_okay.
|
||||
lv_icon_br = icon_workflow_fork.
|
||||
lv_icon_msg = icon_msg.
|
||||
|
||||
CALL FUNCTION 'POPUP_GET_VALUES_USER_BUTTONS'
|
||||
EXPORTING
|
||||
popup_title = 'Clone'
|
||||
popup_title = 'Repository'
|
||||
programname = sy-repid
|
||||
formname = 'BRANCH_POPUP'
|
||||
ok_pushbuttontext = 'OK'
|
||||
icon_ok_push = lv_icon_ok
|
||||
first_pushbutton = 'Select branch'
|
||||
icon_button_1 = lv_icon_br
|
||||
second_pushbutton = 'Create package'
|
||||
icon_button_2 = lv_icon_msg
|
||||
second_pushbutton = lv_button2
|
||||
icon_button_2 = lv_icon2
|
||||
IMPORTING
|
||||
returncode = lv_returncode
|
||||
TABLES
|
||||
|
@ -24447,27 +24466,41 @@ CLASS lcl_gui_router IMPLEMENTATION.
|
|||
_raise 'Error from POPUP_GET_VALUES'.
|
||||
ENDIF.
|
||||
IF lv_returncode = 'A'.
|
||||
rs_popup-cancel = abap_true.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
READ TABLE lt_fields INDEX 1 ASSIGNING <ls_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
lv_url = <ls_field>-value.
|
||||
lcl_url=>name( lv_url ). " validate
|
||||
rs_popup-url = <ls_field>-value.
|
||||
lcl_url=>name( rs_popup-url ). " validate
|
||||
|
||||
READ TABLE lt_fields INDEX 2 ASSIGNING <ls_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
lv_package = <ls_field>-value.
|
||||
TRANSLATE lv_package TO UPPER CASE.
|
||||
rs_popup-package = <ls_field>-value.
|
||||
TRANSLATE rs_popup-package TO UPPER CASE.
|
||||
|
||||
READ TABLE lt_fields INDEX 3 ASSIGNING <ls_field>.
|
||||
ASSERT sy-subrc = 0.
|
||||
lv_branch_name = <ls_field>-value.
|
||||
rs_popup-branch_name = <ls_field>-value.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD repo_clone.
|
||||
|
||||
DATA: ls_popup TYPE ty_popup,
|
||||
lo_repo TYPE REF TO lcl_repo_online.
|
||||
|
||||
|
||||
ls_popup = repo_popup( iv_url ).
|
||||
IF ls_popup-cancel = abap_true.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
lo_repo = lcl_app=>repo_srv( )->new_online(
|
||||
iv_url = lv_url
|
||||
iv_branch_name = lv_branch_name
|
||||
iv_package = lv_package ).
|
||||
iv_url = ls_popup-url
|
||||
iv_branch_name = ls_popup-branch_name
|
||||
iv_package = ls_popup-package ).
|
||||
lo_repo->status( ). " check for errors
|
||||
lo_repo->deserialize( ).
|
||||
|
||||
|
@ -24673,11 +24706,22 @@ CLASS lcl_gui_router IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "repo_package_zip
|
||||
|
||||
METHOD change_branch.
|
||||
METHOD switch_branch.
|
||||
|
||||
DATA: lo_repo TYPE REF TO lcl_repo_online,
|
||||
ls_popup TYPE ty_popup.
|
||||
|
||||
|
||||
lo_repo ?= lcl_app=>repo_srv( )->get( iv_key ).
|
||||
|
||||
ls_popup = repo_popup(
|
||||
iv_url = lo_repo->get_url( )
|
||||
iv_package = lo_repo->get_package( )
|
||||
iv_branch = lo_repo->get_branch_name( ) ).
|
||||
IF ls_popup-cancel = abap_true.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
* DATA: lo_repo TYPE REF TO lcl_repo_online.
|
||||
*
|
||||
* lo_repo ?= lcl_app=>repo_srv( )->get( iv_key ).
|
||||
|
||||
CALL FUNCTION 'POPUP_TO_INFORM'
|
||||
EXPORTING
|
||||
|
@ -24685,6 +24729,10 @@ CLASS lcl_gui_router IMPLEMENTATION.
|
|||
txt1 = 'see https://github.com/larshp/abapGit/issues/265'
|
||||
txt2 = '' ##NO_TEXT.
|
||||
|
||||
*1. updating the mv_branch field to the sha1 of the new branch.
|
||||
*2. Update the persisted branch name
|
||||
*3. call lcl_repo_online->deserialize.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD reset.
|
||||
|
|
Loading…
Reference in New Issue
Block a user