diff --git a/src/ui/lib/zcl_abapgit_html_form.clas.abap b/src/ui/lib/zcl_abapgit_html_form.clas.abap
index 06dc26cd5..82a7ef7f5 100644
--- a/src/ui/lib/zcl_abapgit_html_form.clas.abap
+++ b/src/ui/lib/zcl_abapgit_html_form.clas.abap
@@ -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:
diff --git a/src/ui/lib/zcl_abapgit_html_form_utils.clas.testclasses.abap b/src/ui/lib/zcl_abapgit_html_form_utils.clas.testclasses.abap
index f56401690..1f322ad42 100644
--- a/src/ui/lib/zcl_abapgit_html_form_utils.clas.testclasses.abap
+++ b/src/ui/lib/zcl_abapgit_html_form_utils.clas.testclasses.abap
@@ -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.
diff --git a/src/ui/zabapgit_css_common.w3mi.data.css b/src/ui/zabapgit_css_common.w3mi.data.css
index 189156ed1..de06df247 100644
--- a/src/ui/zabapgit_css_common.w3mi.data.css
+++ b/src/ui/zabapgit_css_common.w3mi.data.css
@@ -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;
}
diff --git a/src/ui/zabapgit_css_theme_dark.w3mi.data.css b/src/ui/zabapgit_css_theme_dark.w3mi.data.css
index 97a82c4ee..e6e867b36 100644
--- a/src/ui/zabapgit_css_theme_dark.w3mi.data.css
+++ b/src/ui/zabapgit_css_theme_dark.w3mi.data.css
@@ -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;
diff --git a/src/ui/zabapgit_css_theme_default.w3mi.data.css b/src/ui/zabapgit_css_theme_default.w3mi.data.css
index 29018216f..3e90bf48c 100644
--- a/src/ui/zabapgit_css_theme_default.w3mi.data.css
+++ b/src/ui/zabapgit_css_theme_default.w3mi.data.css
@@ -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;