Patch: Remember patched lines when cancel Commit (#3212)

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Christian Günter 2020-02-19 13:55:19 +01:00 committed by GitHub
parent 5067e403b7
commit 109c8c3be4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 44 additions and 9 deletions

View File

@ -63,6 +63,7 @@ CLASS zcl_abapgit_html DEFINITION
METHODS checkbox
IMPORTING
iv_id TYPE string
iv_checked TYPE abap_bool OPTIONAL
RETURNING
VALUE(rv_html) TYPE string.
@ -84,7 +85,13 @@ CLASS ZCL_ABAPGIT_HTML IMPLEMENTATION.
METHOD checkbox.
rv_html = |<input type="checkbox" id="{ iv_id }">|.
DATA: lv_checked TYPE string.
IF iv_checked = abap_true.
lv_checked = |checked|.
ENDIF.
rv_html = |<input type="checkbox" id="{ iv_id }" { lv_checked }>|.
ENDMETHOD.
@ -308,7 +315,8 @@ CLASS ZCL_ABAPGIT_HTML IMPLEMENTATION.
METHOD zif_abapgit_html~add_checkbox.
add( checkbox( iv_id ) ).
add( checkbox( iv_id = iv_id
iv_checked = iv_checked ) ).
ENDMETHOD.

View File

@ -38,7 +38,8 @@ INTERFACE zif_abapgit_html PUBLIC.
!iv_title TYPE string OPTIONAL.
METHODS add_checkbox
IMPORTING
iv_id TYPE string.
iv_id TYPE string
iv_checked TYPE abap_bool OPTIONAL.
CLASS-METHODS a
IMPORTING
!iv_txt TYPE string

View File

@ -113,7 +113,9 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION
iv_patch_line_possible TYPE abap_bool
iv_filename TYPE string
is_diff_line TYPE zif_abapgit_definitions=>ty_diff
iv_index TYPE sy-tabix.
iv_index TYPE sy-tabix
RAISING
zcx_abapgit_exception.
METHODS start_staging
IMPORTING
it_postdata TYPE cnht_post_data_tab
@ -981,17 +983,19 @@ CLASS zcl_abapgit_gui_page_diff IMPLEMENTATION.
patch TYPE string VALUE `patch` ##NO_TEXT,
END OF c_css_class.
DATA: lv_id TYPE string,
lv_object TYPE string.
DATA: lv_id TYPE string,
lv_patched TYPE abap_bool.
lv_object = iv_filename.
lv_patched = get_diff_object( iv_filename )->is_line_patched( iv_index ).
IF iv_patch_line_possible = abap_true.
lv_id = |{ lv_object }_{ mv_section_count }_{ iv_index }|.
lv_id = |{ iv_filename }_{ mv_section_count }_{ iv_index }|.
io_html->add( |<td class="{ c_css_class-patch }">| ).
io_html->add_checkbox( iv_id = |patch_line_{ lv_id }| ).
io_html->add_checkbox(
iv_id = |patch_line_{ lv_id }|
iv_checked = lv_patched ).
io_html->add( |</td>| ).
ELSE.

View File

@ -32,6 +32,13 @@ CLASS zcl_abapgit_diff DEFINITION
METHODS get_beacons
RETURNING
VALUE(rt_beacons) TYPE zif_abapgit_definitions=>ty_string_tt .
METHODS is_line_patched
IMPORTING
iv_index TYPE i
RETURNING
VALUE(rv_patched) TYPE abap_bool
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
@ -412,4 +419,19 @@ CLASS zcl_abapgit_diff IMPLEMENTATION.
ENDMETHOD.
METHOD is_line_patched.
FIELD-SYMBOLS: <ls_diff> TYPE zif_abapgit_definitions=>ty_diff.
READ TABLE mt_diff INDEX iv_index
ASSIGNING <ls_diff>.
IF sy-subrc = 0.
rv_patched = <ls_diff>-patch_flag.
ELSE.
zcx_abapgit_exception=>raise( |Diff line not found { iv_index }| ).
ENDIF.
ENDMETHOD.
ENDCLASS.