*&---------------------------------------------------------------------* *& Include ZABAPGIT_HTML_CHUNKS *&---------------------------------------------------------------------* CLASS lcl_gui_chunk_lib DEFINITION FINAL. PUBLIC SECTION. CLASS-METHODS render_error IMPORTING ix_error TYPE REF TO lcx_exception OPTIONAL iv_error TYPE string OPTIONAL RETURNING VALUE(ro_html) TYPE REF TO lcl_html. CLASS-METHODS render_repo_top IMPORTING io_repo TYPE REF TO lcl_repo iv_show_package TYPE abap_bool DEFAULT abap_true iv_show_branch TYPE abap_bool DEFAULT abap_true iv_interactive_branch TYPE abap_bool DEFAULT abap_false iv_branch TYPE string OPTIONAL RETURNING VALUE(ro_html) TYPE REF TO lcl_html RAISING lcx_exception. CLASS-METHODS render_item_state IMPORTING iv1 TYPE char1 iv2 TYPE char1 RETURNING VALUE(rv_html) TYPE string. CLASS-METHODS render_branch_span IMPORTING iv_branch TYPE string io_repo TYPE REF TO lcl_repo_online iv_interactive TYPE abap_bool RETURNING VALUE(ro_html) TYPE REF TO lcl_html RAISING lcx_exception. CLASS-METHODS render_js_error_banner RETURNING VALUE(ro_html) TYPE REF TO lcl_html RAISING lcx_exception. ENDCLASS. "lcl_gui_chunk_lib CLASS lcl_gui_chunk_lib IMPLEMENTATION. METHOD render_repo_top. DATA: lo_repo_online TYPE REF TO lcl_repo_online, lo_pback TYPE REF TO lcl_persistence_background, lv_hint TYPE string, lv_icon TYPE string. CREATE OBJECT ro_html. CREATE OBJECT lo_pback. IF io_repo->is_offline( ) = abap_true. lv_icon = 'plug/darkgrey' ##NO_TEXT. lv_hint = 'Offline repository' ##NO_TEXT. ELSE. lv_icon = 'cloud-upload/blue' ##NO_TEXT. lv_hint = 'On-line repository' ##NO_TEXT. ENDIF. ro_html->add( '
' ). ro_html->add_icon( iv_name = lv_icon iv_hint = lv_hint ). ro_html->add( |{ io_repo->get_name( ) }| ). IF io_repo->is_offline( ) = abap_false. lo_repo_online ?= io_repo. ro_html->add( |{ lo_repo_online->get_url( ) }| ). ENDIF. ro_html->add( ' | ' ). ro_html->add( '' ). IF abap_true = lcl_app=>user( )->is_favorite_repo( io_repo->get_key( ) ). lv_icon = 'star/blue' ##NO_TEXT. ELSE. lv_icon = 'star/grey' ##NO_TEXT. ENDIF. ro_html->add_a( iv_act = |{ gc_action-repo_toggle_fav }?{ io_repo->get_key( ) }| iv_txt = lcl_html=>icon( iv_name = lv_icon iv_class = 'pad-sides' iv_hint = 'Click to toggle favorite' ) ). IF lo_pback->exists( io_repo->get_key( ) ) = abap_true. ro_html->add( 'BG' ). ENDIF. IF io_repo->is_write_protected( ) = abap_true. ro_html->add_icon( iv_name = 'lock/darkgrey' iv_hint = 'Locked from pulls' ). ENDIF. IF io_repo->is_offline( ) = abap_false. lo_repo_online ?= io_repo. IF iv_show_branch = abap_true. IF iv_branch IS INITIAL. ro_html->add( render_branch_span( iv_branch = lo_repo_online->get_branch_name( ) io_repo = lo_repo_online iv_interactive = iv_interactive_branch ) ). ELSE. ro_html->add( render_branch_span( iv_branch = iv_branch io_repo = lo_repo_online iv_interactive = iv_interactive_branch ) ). ENDIF. ENDIF. ENDIF. IF iv_show_package = abap_true. ro_html->add_icon( iv_name = 'package/darkgrey' iv_hint = 'SAP package' ). ro_html->add( '' ). ro_html->add_a( iv_txt = io_repo->get_package( ) iv_act = |{ gc_action-jump_pkg }?{ io_repo->get_package( ) }| ). ro_html->add( '' ). ENDIF. ro_html->add( ' | ' ). ro_html->add( '