SAP GUI for HTML: Fix dialog buttons (#6566)

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Marc Bernard 2023-11-05 04:30:40 -05:00 committed by GitHub
parent 20ec92d224
commit f8b4ec0026
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 97 additions and 15 deletions

View File

@ -137,6 +137,7 @@ CLASS zcl_abapgit_html_form DEFINITION
autofocus TYPE string,
END OF ty_attr .
DATA mv_webgui TYPE abap_bool.
DATA mt_fields TYPE zif_abapgit_html_form=>ty_fields .
DATA:
mt_commands TYPE STANDARD TABLE OF zif_abapgit_html_form=>ty_command .
@ -180,6 +181,10 @@ CLASS zcl_abapgit_html_form DEFINITION
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!is_cmd TYPE zif_abapgit_html_form=>ty_command .
METHODS render_command_link
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!is_cmd TYPE zif_abapgit_html_form=>ty_command .
METHODS render_field_hidden
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
@ -189,7 +194,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_HTML_FORM IMPLEMENTATION.
CLASS zcl_abapgit_html_form IMPLEMENTATION.
METHOD checkbox.
@ -262,6 +267,8 @@ CLASS ZCL_ABAPGIT_HTML_FORM IMPLEMENTATION.
ro_form->mv_form_id = |form_{ lv_ts }|.
ENDIF.
ro_form->mv_webgui = zcl_abapgit_ui_factory=>get_frontend_services( )->is_webgui( ).
ENDMETHOD.
@ -451,13 +458,20 @@ CLASS ZCL_ABAPGIT_HTML_FORM IMPLEMENTATION.
METHOD render_command.
" HTML GUI supports only links for submitting forms
IF mv_webgui = abap_true.
render_command_link(
is_cmd = is_cmd
ii_html = ii_html ).
RETURN.
ENDIF.
CASE is_cmd-cmd_type.
WHEN zif_abapgit_html_form=>c_cmd_type-link.
ii_html->add_a(
iv_txt = is_cmd-label
iv_act = is_cmd-action
iv_class = 'dialog-commands' ).
render_command_link(
is_cmd = is_cmd
ii_html = ii_html ).
WHEN zif_abapgit_html_form=>c_cmd_type-button.
@ -480,6 +494,22 @@ CLASS ZCL_ABAPGIT_HTML_FORM IMPLEMENTATION.
ENDMETHOD.
METHOD render_command_link.
DATA lv_class TYPE string VALUE 'dialog-commands'.
IF is_cmd-cmd_type = zif_abapgit_html_form=>c_cmd_type-input_main.
lv_class = lv_class && ' main'.
ENDIF.
ii_html->add_a(
iv_txt = is_cmd-label
iv_act = is_cmd-action
iv_class = lv_class ).
ENDMETHOD.
METHOD render_field.
DATA:

View File

@ -105,6 +105,57 @@ CLASS ltcl_popups_mock IMPLEMENTATION.
ENDCLASS.
CLASS ltcl_sapgui_mock DEFINITION FINAL FOR TESTING
DURATION SHORT
RISK LEVEL HARMLESS.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_frontend_services.
ENDCLASS.
CLASS ltcl_sapgui_mock IMPLEMENTATION.
METHOD zif_abapgit_frontend_services~clipboard_export.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~directory_browse.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~directory_create.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~directory_exist.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~execute.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~file_download.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~file_upload.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~get_file_separator.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~get_gui_version.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~get_system_directory.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~gui_is_available.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~is_sapgui_for_java.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~is_sapgui_for_windows.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~is_webgui.
rv_is_webgui = abap_false.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~open_ie_devtools.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~show_file_open_dialog.
ENDMETHOD.
METHOD zif_abapgit_frontend_services~show_file_save_dialog.
ENDMETHOD.
ENDCLASS.
CLASS ltcl_test_form DEFINITION
FOR TESTING
RISK LEVEL HARMLESS
@ -113,7 +164,8 @@ CLASS ltcl_test_form DEFINITION
PRIVATE SECTION.
DATA:
mo_popups_mock TYPE REF TO ltcl_popups_mock.
mo_popups_mock TYPE REF TO ltcl_popups_mock,
mo_sapgui_mock TYPE REF TO ltcl_sapgui_mock.
METHODS setup.
METHODS validate1 FOR TESTING RAISING zcx_abapgit_exception.
@ -134,6 +186,9 @@ CLASS ltcl_test_form IMPLEMENTATION.
CREATE OBJECT mo_popups_mock TYPE ltcl_popups_mock.
zcl_abapgit_ui_injector=>set_popups( mo_popups_mock ).
CREATE OBJECT mo_sapgui_mock TYPE ltcl_sapgui_mock.
zcl_abapgit_ui_injector=>set_frontend_services( mo_sapgui_mock ).
ENDMETHOD.
METHOD validate1.

View File

@ -1323,7 +1323,6 @@ table.unit_tests {
text-decoration: none;
padding: 6px 12px;
border-radius: 3px;
font-size: smaller;
}
.dialog li.dialog-commands input[type="button"],
.dialog li.dialog-commands input[type="submit"] {
@ -1332,6 +1331,7 @@ table.unit_tests {
border-radius: 3px;
cursor: pointer;
}
.dialog li.dialog-commands a.main,
.dialog li.dialog-commands input[type="submit"].main {
border: 1px solid transparent;
}

View File

@ -209,15 +209,13 @@ div.log { color: var(--theme-greyscale-dark); }
color: var(--theme-primary-font-color-reduced);
background-color: var(--theme-container-background-color);
}
.dialog li.dialog-commands a {
border-color: #ccc;
background-color: var(--theme-greyscale-dark);
}
.dialog li.dialog-commands a,
.dialog li.dialog-commands input[type="submit"] {
border-color: #ccc;
background-color: var(--theme-greyscale-dark);
color: #fff;
}
.dialog li.dialog-commands a.main,
.dialog li.dialog-commands input[type="submit"].main {
background-color: #64a8ff;
color: #fff;

View File

@ -459,14 +459,13 @@ table.settings_tab input:focus {
border-color: #ccc;
background-color: #f0f0f0;
}
.dialog li.dialog-commands a {
border-color: #ccc;
background-color: #ddd;
}
.dialog li.dialog-commands a,
.dialog li.dialog-commands input[type="submit"] {
border-color: #ccc;
background-color: #ddd;
color: #000;
}
.dialog li.dialog-commands a.main,
.dialog li.dialog-commands input[type="submit"].main {
background-color: #64a8ff;
color: #fff;