Refactor: Update HTML form exit method (#6541)

This commit is contained in:
Marc Bernard 2023-10-13 16:55:59 -04:00 committed by GitHub
parent f52716b96b
commit 10115a1da3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 38 additions and 46 deletions

View File

@ -15,7 +15,7 @@ CLASS zcl_abapgit_html_form_utils DEFINITION
!io_form_data TYPE REF TO zcl_abapgit_string_map
!io_compare_with TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(rv_dirty) TYPE abap_bool .
VALUE(rv_dirty) TYPE abap_bool .
METHODS constructor
IMPORTING
@ -46,10 +46,10 @@ CLASS zcl_abapgit_html_form_utils DEFINITION
!io_form_data TYPE REF TO zcl_abapgit_string_map .
METHODS exit
IMPORTING
!io_form_data TYPE REF TO zcl_abapgit_string_map
!io_check_changes_versus TYPE REF TO zcl_abapgit_string_map OPTIONAL
!io_form_data TYPE REF TO zcl_abapgit_string_map
!io_compare_with TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(rv_state) TYPE i
VALUE(rv_state) TYPE i
RAISING
zcx_abapgit_exception .
@ -63,7 +63,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_HTML_FORM_UTILS IMPLEMENTATION.
CLASS zcl_abapgit_html_form_utils IMPLEMENTATION.
METHOD constructor.
@ -81,17 +81,10 @@ CLASS ZCL_ABAPGIT_HTML_FORM_UTILS IMPLEMENTATION.
METHOD exit.
DATA lv_answer TYPE c LENGTH 1.
DATA lo_compare_with LIKE io_check_changes_versus.
lo_compare_with = io_check_changes_versus.
IF lo_compare_with IS NOT BOUND.
" TODO: remove this if and make io_check_changes_versus mandatory once all forms are converted
lo_compare_with = mo_form_data.
ENDIF.
IF is_dirty(
io_form_data = io_form_data
io_compare_with = lo_compare_with ) = abap_true.
io_compare_with = io_compare_with ) = abap_true.
lv_answer = zcl_abapgit_ui_factory=>get_popups( )->popup_to_confirm(
iv_display_cancel_button = abap_false
iv_titlebar = 'abapGit - Unsaved Changes'

View File

@ -326,7 +326,7 @@ CLASS ltcl_test_form IMPLEMENTATION.
DATA lo_normalized_exp TYPE REF TO zcl_abapgit_string_map.
lo_form = zcl_abapgit_html_form=>create( ).
lo_form_data = zcl_abapgit_string_map=>create( iv_case_insensitive = abap_true ).
lo_form_data = zcl_abapgit_string_map=>create( abap_true ).
lo_normalized_exp = zcl_abapgit_string_map=>create( ).
lo_form->text(
@ -564,7 +564,9 @@ CLASS ltcl_test_form IMPLEMENTATION.
iv_val = 'val' ).
cl_abap_unit_assert=>assert_equals(
act = lo_cut->exit( lo_form_data )
act = lo_cut->exit(
io_form_data = lo_form_orig
io_compare_with = lo_form_data )
exp = zcl_abapgit_gui=>c_event_state-go_back_to_bookmark ).
cl_abap_unit_assert=>assert_equals(
@ -602,7 +604,9 @@ CLASS ltcl_test_form IMPLEMENTATION.
mo_popups_mock->set_user_decision( ltcl_popups_mock=>c_user_decision-confirm ).
cl_abap_unit_assert=>assert_equals(
act = lo_cut->exit( lo_form_data )
act = lo_cut->exit(
io_form_data = lo_form_orig
io_compare_with = lo_form_data )
exp = zcl_abapgit_gui=>c_event_state-go_back_to_bookmark ).
cl_abap_unit_assert=>assert_equals(
@ -640,7 +644,9 @@ CLASS ltcl_test_form IMPLEMENTATION.
mo_popups_mock->set_user_decision( ltcl_popups_mock=>c_user_decision-cancel ).
cl_abap_unit_assert=>assert_equals(
act = lo_cut->exit( lo_form_data )
act = lo_cut->exit(
io_form_data = lo_form_orig
io_compare_with = lo_form_data )
exp = zcl_abapgit_gui=>c_event_state-no_more_act ).
cl_abap_unit_assert=>assert_equals(

View File

@ -66,7 +66,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_BCKG IMPLEMENTATION.
CLASS zcl_abapgit_gui_page_sett_bckg IMPLEMENTATION.
METHOD constructor.
@ -312,8 +312,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_BCKG IMPLEMENTATION.
CASE ii_event->mv_action.
WHEN zif_abapgit_definitions=>c_action-go_back.
rs_handled-state = zcl_abapgit_html_form_utils=>create( mo_form )->exit(
io_form_data = mo_form_data
io_check_changes_versus = read_settings( ) ).
io_form_data = mo_form_data
io_compare_with = read_settings( ) ).
WHEN c_event-save.
save_settings( ).

View File

@ -344,8 +344,8 @@ CLASS zcl_abapgit_gui_page_sett_glob IMPLEMENTATION.
CASE ii_event->mv_action.
WHEN zif_abapgit_definitions=>c_action-go_back.
rs_handled-state = zcl_abapgit_html_form_utils=>create( mo_form )->exit(
io_form_data = mo_form_data
io_check_changes_versus = read_settings( ) ).
io_form_data = mo_form_data
io_compare_with = read_settings( ) ).
WHEN c_event-save.
" Validate form entries before saving

View File

@ -102,7 +102,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_LOCL IMPLEMENTATION.
CLASS zcl_abapgit_gui_page_sett_locl IMPLEMENTATION.
METHOD choose_check_variant.
@ -304,7 +304,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_LOCL IMPLEMENTATION.
" it was on its own page and user went back from it via F3/ESC and the picklist had no "graceful back" handler
CASE mo_popup_picklist->id( ).
WHEN c_event-choose_check_variant.
choose_check_variant( iv_is_return = abap_true ).
choose_check_variant( abap_true ).
WHEN OTHERS.
zcx_abapgit_exception=>raise( |Unexpected picklist id { mo_popup_picklist->id( ) }| ).
ENDCASE.
@ -474,8 +474,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_LOCL IMPLEMENTATION.
CASE ii_event->mv_action.
WHEN zif_abapgit_definitions=>c_action-go_back.
rs_handled-state = zcl_abapgit_html_form_utils=>create( mo_form )->exit(
io_form_data = mo_form_data
io_check_changes_versus = read_settings( ) ).
io_form_data = mo_form_data
io_compare_with = read_settings( ) ).
WHEN c_event-choose_transport_request.

View File

@ -77,7 +77,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_PERS IMPLEMENTATION.
CLASS zcl_abapgit_gui_page_sett_pers IMPLEMENTATION.
METHOD constructor.
@ -326,7 +326,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_PERS IMPLEMENTATION.
ms_settings-ui_theme = mo_form_data->get( c_id-ui_theme ).
ms_settings-icon_scaling = mo_form_data->get( c_id-icon_scaling ).
ms_settings-max_lines = mo_form_data->get( c_id-max_lines ).
ms_settings-label_colors = zcl_abapgit_repo_labels=>normalize_colors( mo_form_data->get( c_id-label_colors ) ).
ms_settings-label_colors = zcl_abapgit_repo_labels=>normalize_colors( mo_form_data->get( c_id-label_colors ) ).
" Interaction
ms_settings-activate_wo_popup = mo_form_data->get( c_id-activate_wo_popup ).
@ -376,8 +376,8 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_PERS IMPLEMENTATION.
CASE ii_event->mv_action.
WHEN zif_abapgit_definitions=>c_action-go_back.
rs_handled-state = zcl_abapgit_html_form_utils=>create( mo_form )->exit(
io_form_data = mo_form_data
io_check_changes_versus = read_settings( ) ).
io_form_data = mo_form_data
io_compare_with = read_settings( ) ).
WHEN c_event-save.
" Validate form entries before saving

View File

@ -68,10 +68,6 @@ CLASS zcl_abapgit_gui_page_sett_remo DEFINITION
choose_pull_request TYPE string VALUE 'choose_pull_request',
change_head_type TYPE string VALUE 'change_head_type',
END OF c_event .
CONSTANTS:
BEGIN OF c_popup,
pull_request TYPE string VALUE 'popup_pull_request',
END OF c_popup.
DATA mo_repo TYPE REF TO zcl_abapgit_repo .
DATA ms_settings_snapshot TYPE ty_remote_settings.
@ -103,7 +99,7 @@ CLASS zcl_abapgit_gui_page_sett_remo DEFINITION
IMPORTING
io_existing_form_data TYPE REF TO zcl_abapgit_string_map OPTIONAL
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form
RAISING
zcx_abapgit_exception.
@ -272,7 +268,6 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
METHOD choose_pr.
DATA ls_pull TYPE zif_abapgit_pr_enum_provider=>ty_pull_request.
DATA lv_pull_request TYPE ty_remote_settings-pull_request.
DATA lv_url TYPE ty_remote_settings-url.
DATA lv_popup_cancelled TYPE abap_bool.
@ -597,11 +592,11 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
" it was on its own page and user went back from it via F3/ESC and the picklist had no "graceful back" handler
CASE mo_popup_picklist->id( ).
WHEN c_event-choose_pull_request.
choose_pr( iv_is_return = abap_true ).
choose_pr( abap_true ).
WHEN c_event-choose_branch.
choose_branch( iv_is_return = abap_true ).
choose_branch( abap_true ).
WHEN c_event-choose_tag.
choose_tag( iv_is_return = abap_true ).
choose_tag( abap_true ).
WHEN OTHERS.
zcx_abapgit_exception=>raise( |Unexpected picklist id { mo_popup_picklist->id( ) }| ).
ENDCASE.
@ -937,8 +932,6 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
DATA:
lv_url TYPE ty_remote_settings-url,
lv_branch TYPE ty_remote_settings-branch,
lv_tag TYPE ty_remote_settings-tag,
lv_commit TYPE ty_remote_settings-commit.
mo_form_data->merge( zcl_abapgit_html_form_utils=>create( mo_form )->normalize( ii_event->form_data( ) ) ).
@ -951,8 +944,8 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
ENDIF.
rs_handled-state = zcl_abapgit_html_form_utils=>create( mo_form )->exit(
io_form_data = mo_form_data
io_check_changes_versus = initialize_form_data( ) ).
io_form_data = mo_form_data
io_compare_with = initialize_form_data( ) ).
WHEN c_event-choose_url.
lv_url = choose_url( ).
@ -1023,7 +1016,7 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
" If staying on form, initialize it with current settings
IF rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render AND mo_popup_picklist IS NOT BOUND.
" Switching tabs must change the form layout
mo_form = get_form_schema( io_existing_form_data = mo_form_data ).
mo_form = get_form_schema( mo_form_data ).
ENDIF.
ENDMETHOD.

View File

@ -454,8 +454,8 @@ CLASS zcl_abapgit_gui_page_sett_repo IMPLEMENTATION.
CASE ii_event->mv_action.
WHEN zif_abapgit_definitions=>c_action-go_back.
rs_handled-state = zcl_abapgit_html_form_utils=>create( mo_form )->exit(
io_form_data = mo_form_data
io_check_changes_versus = read_settings( ) ).
io_form_data = mo_form_data
io_compare_with = read_settings( ) ).
WHEN c_event-save.
" Validate all form entries