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 METHODS checkbox
IMPORTING IMPORTING
iv_id TYPE string iv_id TYPE string
iv_checked TYPE abap_bool OPTIONAL
RETURNING RETURNING
VALUE(rv_html) TYPE string. VALUE(rv_html) TYPE string.
@ -84,7 +85,13 @@ CLASS ZCL_ABAPGIT_HTML IMPLEMENTATION.
METHOD checkbox. 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. ENDMETHOD.
@ -308,7 +315,8 @@ CLASS ZCL_ABAPGIT_HTML IMPLEMENTATION.
METHOD zif_abapgit_html~add_checkbox. METHOD zif_abapgit_html~add_checkbox.
add( checkbox( iv_id ) ). add( checkbox( iv_id = iv_id
iv_checked = iv_checked ) ).
ENDMETHOD. ENDMETHOD.

View File

@ -38,7 +38,8 @@ INTERFACE zif_abapgit_html PUBLIC.
!iv_title TYPE string OPTIONAL. !iv_title TYPE string OPTIONAL.
METHODS add_checkbox METHODS add_checkbox
IMPORTING IMPORTING
iv_id TYPE string. iv_id TYPE string
iv_checked TYPE abap_bool OPTIONAL.
CLASS-METHODS a CLASS-METHODS a
IMPORTING IMPORTING
!iv_txt TYPE string !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_patch_line_possible TYPE abap_bool
iv_filename TYPE string iv_filename TYPE string
is_diff_line TYPE zif_abapgit_definitions=>ty_diff 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 METHODS start_staging
IMPORTING IMPORTING
it_postdata TYPE cnht_post_data_tab it_postdata TYPE cnht_post_data_tab
@ -982,16 +984,18 @@ CLASS zcl_abapgit_gui_page_diff IMPLEMENTATION.
END OF c_css_class. END OF c_css_class.
DATA: lv_id TYPE string, DATA: lv_id TYPE string,
lv_object 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. 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( |<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>| ). io_html->add( |</td>| ).
ELSE. ELSE.

View File

@ -32,6 +32,13 @@ CLASS zcl_abapgit_diff DEFINITION
METHODS get_beacons METHODS get_beacons
RETURNING RETURNING
VALUE(rt_beacons) TYPE zif_abapgit_definitions=>ty_string_tt . 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. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
@ -412,4 +419,19 @@ CLASS zcl_abapgit_diff IMPLEMENTATION.
ENDMETHOD. 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. ENDCLASS.