various changes, close #317

pretty print zabapgit_password_dialog
bump version to v1.17.7
minor changes in get_display_name()
close #317, thanks @StevusPrimus
This commit is contained in:
larshp 2016-09-05 11:27:17 +00:00
parent f04d774e09
commit bfd4c7f3c6
4 changed files with 40 additions and 39 deletions

View File

@ -3,7 +3,7 @@ REPORT zabapgit LINE-SIZE 100.
* 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.17.6'. "#EC NOTEXT gc_abap_version TYPE string VALUE 'v1.17.7'. "#EC NOTEXT
******************************************************************************** ********************************************************************************
* The MIT License (MIT) * The MIT License (MIT)

View File

@ -107,14 +107,14 @@ CLASS lcl_git_branch_list DEFINITION FINAL.
TYPES: ty_git_branch_list_tt TYPE STANDARD TABLE OF ty_git_branch WITH DEFAULT KEY. TYPES: ty_git_branch_list_tt TYPE STANDARD TABLE OF ty_git_branch WITH DEFAULT KEY.
CONSTANTS: BEGIN OF c_type, CONSTANTS: BEGIN OF c_type,
branch TYPE ty_git_branch_type VALUE 'HD', branch TYPE ty_git_branch_type VALUE 'HD',
tag TYPE ty_git_branch_type VALUE 'TG', tag TYPE ty_git_branch_type VALUE 'TG',
other TYPE ty_git_branch_type VALUE 'ZZ', other TYPE ty_git_branch_type VALUE 'ZZ',
END OF c_type. END OF c_type.
CONSTANTS HEAD_NAME TYPE string VALUE 'HEAD'. CONSTANTS head_name TYPE string VALUE 'HEAD'.
METHODS constructor METHODS constructor
IMPORTING iv_data TYPE string IMPORTING iv_data TYPE string
RAISING lcx_exception. RAISING lcx_exception.
METHODS find_by_name METHODS find_by_name
@ -139,16 +139,16 @@ CLASS lcl_git_branch_list DEFINITION FINAL.
RETURNING VALUE(rv_ignore) TYPE abap_bool. RETURNING VALUE(rv_ignore) TYPE abap_bool.
CLASS-METHODS get_display_name CLASS-METHODS get_display_name
IMPORTING iv_branch_name TYPE clike IMPORTING iv_branch_name TYPE clike
RETURNING VALUE(rv_display_name) TYPE string. RETURNING VALUE(rv_display_name) TYPE string.
CLASS-METHODS get_type CLASS-METHODS get_type
IMPORTING iv_branch_name TYPE clike IMPORTING iv_branch_name TYPE clike
RETURNING VALUE(rv_type) TYPE ty_git_branch_type. RETURNING VALUE(rv_type) TYPE ty_git_branch_type.
CLASS-METHODS complete_heads_branch_name CLASS-METHODS complete_heads_branch_name
IMPORTING iv_branch_name TYPE clike IMPORTING iv_branch_name TYPE clike
RETURNING VALUE(rv_name) TYPE string. RETURNING VALUE(rv_name) TYPE string.
PRIVATE SECTION. PRIVATE SECTION.
DATA mt_branches TYPE ty_git_branch_list_tt. DATA mt_branches TYPE ty_git_branch_list_tt.
@ -197,7 +197,7 @@ CLASS lcl_git_branch_list IMPLEMENTATION.
IF mv_head_symref IS NOT INITIAL. IF mv_head_symref IS NOT INITIAL.
rs_branch = find_by_name( mv_head_symref ). rs_branch = find_by_name( mv_head_symref ).
ELSE. ELSE.
rs_branch = find_by_name( HEAD_NAME ). rs_branch = find_by_name( head_name ).
ENDIF. ENDIF.
ENDMETHOD. "get_head ENDMETHOD. "get_head
@ -246,7 +246,7 @@ CLASS lcl_git_branch_list IMPLEMENTATION.
<ls_branch>-name = lv_name. <ls_branch>-name = lv_name.
<ls_branch>-display_name = get_display_name( lv_name ). <ls_branch>-display_name = get_display_name( lv_name ).
<ls_branch>-type = get_type( lv_name ). <ls_branch>-type = get_type( lv_name ).
IF <ls_branch>-name = HEAD_NAME OR <ls_branch>-name = ev_head_symref. IF <ls_branch>-name = head_name OR <ls_branch>-name = ev_head_symref.
<ls_branch>-is_head = abap_true. <ls_branch>-is_head = abap_true.
ENDIF. ENDIF.
ENDLOOP. ENDLOOP.
@ -255,7 +255,7 @@ CLASS lcl_git_branch_list IMPLEMENTATION.
METHOD parse_head_params. METHOD parse_head_params.
DATA: ls_match TYPE match_result, DATA: ls_match TYPE match_result,
ls_submatch TYPE submatch_result. ls_submatch TYPE submatch_result.
FIND FIRST OCCURRENCE OF REGEX '\ssymref=HEAD:([^\s]+)' IN iv_data RESULTS ls_match. FIND FIRST OCCURRENCE OF REGEX '\ssymref=HEAD:([^\s]+)' IN iv_data RESULTS ls_match.
@ -286,12 +286,8 @@ CLASS lcl_git_branch_list IMPLEMENTATION.
IF rv_display_name CP 'refs/heads/*'. IF rv_display_name CP 'refs/heads/*'.
REPLACE FIRST OCCURRENCE OF 'refs/heads/' IN rv_display_name WITH ''. REPLACE FIRST OCCURRENCE OF 'refs/heads/' IN rv_display_name WITH ''.
RETURN. ELSEIF rv_display_name CP 'refs/tags/*'.
ENDIF.
IF rv_display_name CP 'refs/tags/*'.
REPLACE FIRST OCCURRENCE OF 'refs/' IN rv_display_name WITH ''. REPLACE FIRST OCCURRENCE OF 'refs/' IN rv_display_name WITH ''.
RETURN.
ENDIF. ENDIF.
ENDMETHOD. "get_display_name ENDMETHOD. "get_display_name
@ -299,7 +295,7 @@ CLASS lcl_git_branch_list IMPLEMENTATION.
METHOD get_type. METHOD get_type.
rv_type = c_type-other. rv_type = c_type-other.
IF iv_branch_name CP 'refs/heads/*' OR iv_branch_name = HEAD_NAME. IF iv_branch_name CP 'refs/heads/*' OR iv_branch_name = head_name.
rv_type = c_type-branch. rv_type = c_type-branch.
RETURN. RETURN.
ENDIF. ENDIF.

View File

@ -6,15 +6,15 @@ TABLES sscrfields.
SELECTION-SCREEN BEGIN OF SCREEN 1002 TITLE s_title. SELECTION-SCREEN BEGIN OF SCREEN 1002 TITLE s_title.
SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(10) s_url FOR FIELD p_url. SELECTION-SCREEN COMMENT 1(10) s_url FOR FIELD p_url.
PARAMETER: p_url TYPE string LOWER CASE VISIBLE LENGTH 40. PARAMETERS: p_url TYPE string LOWER CASE VISIBLE LENGTH 40.
SELECTION-SCREEN END OF LINE. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(10) s_user FOR FIELD p_user. SELECTION-SCREEN COMMENT 1(10) s_user FOR FIELD p_user.
PARAMETER: p_user TYPE string LOWER CASE VISIBLE LENGTH 40. PARAMETERS: p_user TYPE string LOWER CASE VISIBLE LENGTH 40.
SELECTION-SCREEN END OF LINE. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(10) s_pass FOR FIELD p_pass. SELECTION-SCREEN COMMENT 1(10) s_pass FOR FIELD p_pass.
PARAMETER: p_pass TYPE string LOWER CASE VISIBLE LENGTH 40. PARAMETERS: p_pass TYPE string LOWER CASE VISIBLE LENGTH 40.
SELECTION-SCREEN END OF LINE. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF SCREEN 1002. SELECTION-SCREEN END OF SCREEN 1002.
@ -24,7 +24,7 @@ SELECTION-SCREEN END OF SCREEN 1002.
CLASS lcl_password_dialog DEFINITION. CLASS lcl_password_dialog DEFINITION.
PUBLIC SECTION. PUBLIC SECTION.
CONSTANTS DYNNR TYPE char4 VALUE '1002'. CONSTANTS dynnr TYPE char4 VALUE '1002'.
CLASS-METHODS popup CLASS-METHODS popup
IMPORTING IMPORTING
@ -37,7 +37,7 @@ CLASS lcl_password_dialog DEFINITION.
CLASS-METHODS on_screen_output. CLASS-METHODS on_screen_output.
CLASS-METHODS on_screen_event CLASS-METHODS on_screen_event
IMPORTING IMPORTING
iv_ucomm TYPE syucomm. iv_ucomm TYPE syucomm.
PRIVATE SECTION. PRIVATE SECTION.
CLASS-DATA mv_confirm TYPE abap_bool. CLASS-DATA mv_confirm TYPE abap_bool.
@ -48,12 +48,12 @@ CLASS lcl_password_dialog IMPLEMENTATION.
METHOD popup. METHOD popup.
clear p_pass. CLEAR p_pass.
p_url = iv_repo_url. p_url = iv_repo_url.
p_user = cv_user. p_user = cv_user.
mv_confirm = abap_false. mv_confirm = abap_false.
CALL SELECTION-SCREEN DYNNR STARTING AT 5 5 ENDING AT 60 8. CALL SELECTION-SCREEN dynnr STARTING AT 5 5 ENDING AT 60 8.
IF mv_confirm = abap_true. IF mv_confirm = abap_true.
cv_user = p_user. cv_user = p_user.
@ -76,7 +76,7 @@ CLASS lcl_password_dialog IMPLEMENTATION.
METHOD on_screen_output. METHOD on_screen_output.
DATA lt_ucomm TYPE TABLE OF sy-ucomm. DATA lt_ucomm TYPE TABLE OF sy-ucomm.
ASSERT sy-dynnr = DYNNR. ASSERT sy-dynnr = dynnr.
LOOP AT SCREEN. LOOP AT SCREEN.
IF screen-name = 'P_URL'. IF screen-name = 'P_URL'.
@ -97,8 +97,10 @@ CLASS lcl_password_dialog IMPLEMENTATION.
APPEND 'SPOS' TO lt_ucomm. "Save as Variant APPEND 'SPOS' TO lt_ucomm. "Save as Variant
CALL FUNCTION 'RS_SET_SELSCREEN_STATUS' CALL FUNCTION 'RS_SET_SELSCREEN_STATUS'
EXPORTING p_status = sy-pfkey EXPORTING
TABLES p_exclude = lt_ucomm. p_status = sy-pfkey
TABLES
p_exclude = lt_ucomm.
IF p_user IS NOT INITIAL. IF p_user IS NOT INITIAL.
SET CURSOR FIELD 'P_PASS'. SET CURSOR FIELD 'P_PASS'.
@ -107,7 +109,7 @@ CLASS lcl_password_dialog IMPLEMENTATION.
ENDMETHOD. "on_screen_output ENDMETHOD. "on_screen_output
METHOD on_screen_event. METHOD on_screen_event.
ASSERT sy-dynnr = DYNNR. ASSERT sy-dynnr = dynnr.
" CRET - F8 " CRET - F8
" OTHERS - simulate Enter press " OTHERS - simulate Enter press
@ -115,11 +117,11 @@ CLASS lcl_password_dialog IMPLEMENTATION.
WHEN 'CRET'. WHEN 'CRET'.
mv_confirm = abap_true. mv_confirm = abap_true.
WHEN OTHERS. "TODO REFACTOR !!! A CLUTCH ! WHEN OTHERS. "TODO REFACTOR !!! A CLUTCH !
" This will work unless any new specific logic appear " This will work unless any new specific logic appear
" for other commands. The problem is that the password dialog " for other commands. The problem is that the password dialog
" does not have Enter event (or I don't know how to activate it ;) " does not have Enter event (or I don't know how to activate it ;)
" so Enter issues previous command from previous screen " so Enter issues previous command from previous screen
" But for now this works :) Fortunately Esc produces another flow " But for now this works :) Fortunately Esc produces another flow
mv_confirm = abap_true. mv_confirm = abap_true.
LEAVE TO SCREEN 0. LEAVE TO SCREEN 0.
ENDCASE. ENDCASE.

View File

@ -108,10 +108,13 @@ CLASS lcl_zip IMPLEMENTATION.
lv_filename TYPE string, lv_filename TYPE string,
lv_default TYPE string, lv_default TYPE string,
lv_path TYPE string, lv_path TYPE string,
lv_fullpath TYPE string. lv_fullpath TYPE string,
lv_package TYPE devclass.
CONCATENATE iv_package '_' sy-datlo '_' sy-timlo INTO lv_default. lv_package = iv_package.
TRANSLATE lv_package USING '/#'.
CONCATENATE lv_package '_' sy-datlo '_' sy-timlo INTO lv_default.
cl_gui_frontend_services=>file_save_dialog( cl_gui_frontend_services=>file_save_dialog(
EXPORTING EXPORTING