Add GUI and HTML control info to page footer (#6261)

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Marc Bernard 2023-05-11 16:38:13 +02:00 committed by GitHub
parent ea1964ef47
commit 170b03cf5d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 73 additions and 30 deletions

View File

@ -68,7 +68,9 @@ CLASS zcl_abapgit_gui_page DEFINITION PUBLIC ABSTRACT
IMPORTING
!iv_time TYPE string
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_link_hints
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
@ -99,6 +101,9 @@ CLASS zcl_abapgit_gui_page DEFINITION PUBLIC ABSTRACT
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS get_version_details
RETURNING
VALUE(rv_version) TYPE string.
ENDCLASS.
@ -117,15 +122,8 @@ CLASS zcl_abapgit_gui_page IMPLEMENTATION.
METHOD footer.
DATA lv_version_detail TYPE string.
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
IF zcl_abapgit_factory=>get_environment( )->is_merged( ) = abap_true.
lv_version_detail = ` - Standalone Version`.
ELSE.
lv_version_detail = ` - Developer Version`.
ENDIF.
ri_html->add( '<div id="footer">' ).
ri_html->add( '<table class="w100"><tr>' ).
@ -145,7 +143,7 @@ CLASS zcl_abapgit_gui_page IMPLEMENTATION.
iv_txt = ri_html->icon( iv_name = 'abapgit'
iv_hint = iv_time ) ).
ri_html->add( '</div>' ).
ri_html->add( |<div class="version">{ zif_abapgit_version=>c_abap_version }{ lv_version_detail }</div>| ).
ri_html->add( |<div id="footer-version" class="version">{ get_version_details( ) }</div>| ).
ri_html->add( '</td>' ).
ri_html->add( '<td id="debug-output" class="w40"></td>' ).
@ -156,6 +154,37 @@ CLASS zcl_abapgit_gui_page IMPLEMENTATION.
ENDMETHOD.
METHOD get_version_details.
DATA lo_frontend_serv TYPE REF TO zif_abapgit_frontend_services.
rv_version = zif_abapgit_version=>c_abap_version.
IF zcl_abapgit_factory=>get_environment( )->is_merged( ) = abap_true.
rv_version = rv_version && ` - Standalone Version`.
ELSE.
rv_version = rv_version && ` - Developer Version`.
ENDIF.
lo_frontend_serv = zcl_abapgit_ui_factory=>get_frontend_services( ).
CASE abap_true.
WHEN lo_frontend_serv->is_webgui( ).
rv_version = rv_version && ` - Web`.
WHEN lo_frontend_serv->is_sapgui_for_windows( ).
rv_version = rv_version && ` - Win`.
WHEN lo_frontend_serv->is_sapgui_for_java( ).
rv_version = rv_version && ` - Java`.
WHEN OTHERS.
ASSERT 1 = 2.
ENDCASE.
" Will be filled by JS method displayBrowserControlFooter
rv_version = rv_version && '<span id="browser-control-footer"></span>'.
ENDMETHOD.
METHOD header_script_links.
ii_html->add( '<script src="js/common.js"></script>' ).
@ -215,6 +244,27 @@ CLASS zcl_abapgit_gui_page IMPLEMENTATION.
ENDMETHOD.
METHOD render_browser_control_warning.
DATA li_documentation_link TYPE REF TO zif_abapgit_html.
CREATE OBJECT li_documentation_link TYPE zcl_abapgit_html.
li_documentation_link->add_a(
iv_txt = 'Documentation'
iv_typ = zif_abapgit_html=>c_action_type-url
iv_act = 'https://docs.abapgit.org/guide-sapgui.html#sap-gui-for-windows' ).
ii_html->add( '<div id="browser-control-warning" class="browser-control-warning">' ).
ii_html->add( zcl_abapgit_gui_chunk_lib=>render_warning_banner(
|Attention: You use Edge browser control. |
&& |There are several known malfunctions. See |
&& li_documentation_link->render( ) ) ).
ii_html->add( '</div>' ).
ENDMETHOD.
METHOD render_command_palettes.
ii_html->add( 'var gCommandPalette = new CommandPalette(enumerateUiActions, {' ).
@ -294,27 +344,6 @@ CLASS zcl_abapgit_gui_page IMPLEMENTATION.
ENDMETHOD.
METHOD render_browser_control_warning.
DATA li_documentation_link TYPE REF TO zif_abapgit_html.
CREATE OBJECT li_documentation_link TYPE zcl_abapgit_html.
li_documentation_link->add_a(
iv_txt = 'Documentation'
iv_typ = zif_abapgit_html=>c_action_type-url
iv_act = 'https://docs.abapgit.org/guide-sapgui.html#sap-gui-for-windows' ).
ii_html->add( '<div id="browser-control-warning" class="browser-control-warning">' ).
ii_html->add( zcl_abapgit_gui_chunk_lib=>render_warning_banner(
|Attention: You use Edge browser control. |
&& |There are several known malfunctions. See |
&& li_documentation_link->render( ) ) ).
ii_html->add( '</div>' ).
ENDMETHOD.
METHOD scripts.
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
@ -326,6 +355,7 @@ CLASS zcl_abapgit_gui_page IMPLEMENTATION.
render_link_hints( ri_html ).
render_command_palettes( ri_html ).
ri_html->add( |toggleBrowserControlWarning();| ).
ri_html->add( |displayBrowserControlFooter();| ).
ENDMETHOD.

View File

@ -29,6 +29,7 @@
/* exported onDiffCollapse */
/* exported restoreScrollPosition */
/* exported toggleBrowserControlWarning */
/* exported displayBrowserControlFooter */
/**********************************************************
* Polyfills
@ -2485,8 +2486,20 @@ function toggleSticky() {
}
}
/**********************************************************
* Browser Control
**********************************************************/
// Toggle display of warning message when using Edge (based on Chromium) browser control
// Todo: Remove once https://github.com/abapGit/abapGit/issues/4841 is fixed
function toggleBrowserControlWarning(){
if (!navigator.userAgent.includes("Edg")){
document.getElementById("browser-control-warning").style.display = "none";
}
}
// Output type of HTML control in the abapGit footer
function displayBrowserControlFooter() {
var out = document.getElementById("browser-control-footer");
out.innerHTML = " - " + ( navigator.userAgent.includes("Edg") ? "Edge" : "IE" );
}