anchor.diff:  *----------------------------------------------------------------------*
   CLASS lcl_html_helper DEFINITION FINAL.
     PUBLIC SECTION.
  -    CONSTANTS c_indent_size TYPE i VALUE 2.
  +    CONSTANTS: c_indent_size TYPE i VALUE 2.
   
       DATA mv_html   TYPE string READ-ONLY.
       DATA mv_indent TYPE i READ-ONLY.
   
       METHODS add IMPORTING iv_chunk TYPE any.
       METHODS reset.
  +
  +    METHODS add_anchor IMPORTING iv_txt      TYPE string
  +                                 iv_act      TYPE string
  +                                 iv_opt      TYPE c OPTIONAL
  +                                 iv_sapevent TYPE abap_bool DEFAULT abap_true
  +                                 iv_class    TYPE string OPTIONAL.
   
     PRIVATE SECTION.
       METHODS _add_str IMPORTING iv_str  TYPE csequence.
  
positive.code:       lv_action = lcl_html_action_utils=>dbkey_encode( <ls_data> ).
  
        CREATE OBJECT lo_toolbar.
        lo_toolbar->add( iv_txt = 'Display' iv_cmd = |sapevent:db_display?{ lv_action }| ).
        lo_toolbar->add( iv_txt = 'Edit'    iv_cmd = |sapevent:db_edit?{ lv_action }| ).
        lo_toolbar->add( iv_txt = 'Delete'  iv_cmd = |sapevent:db_delete?{ lv_action }| ).
  
        ro_html->add( |<tr{ lv_trclass }>| ).
        ro_html->add( |<td>{ <ls_data>-type }</td>| ).
  
negative.code: 
      IF lcl_app=>user( )->is_hidden( lv_key ) = abap_true.
        lo_toolbar->add( iv_txt = 'Show'
                         iv_act = |unhide?{ lv_key }| ).
      ELSE.
        IF io_repo->is_offline( ) = abap_true.
          lo_toolbar->add( iv_txt = 'Import ZIP'
                           iv_act = |zipimport?{ lv_key }|
                           iv_opt = html_opt-emphas ).
          lo_toolbar->add( iv_txt = 'Export ZIP'
                           iv_act = |zipexport?{ lv_key }|
                           iv_opt = html_opt-emphas ).
          lo_toolbar->add( iv_txt = 'Export&amp;Commit'
                           iv_act = |files_commit?{ lv_key }|
                           iv_opt = html_opt-emphas ).
        ELSE.
          lo_repo_online ?= io_repo.
          TRY.
              IF lo_repo_online->get_sha1_remote( ) <> lo_repo_online->get_sha1_local( ).
                lo_toolbar->add( iv_txt = 'Pull'
                                 iv_act = |pull?{ lv_key }|
                                 iv_opt = html_opt-emphas ).
              ELSEIF lcl_stage_logic=>count( lo_repo_online ) > 0.
                lo_toolbar->add( iv_txt = 'Stage'
                                 iv_act = |stage?{ lv_key }|
                                 iv_opt = html_opt-emphas ).
              ENDIF.
            CATCH lcx_exception.
              " authorization error or repository does not exist
          ENDTRY.
        ENDIF.
        lo_toolbar->add( iv_txt = 'Remove'
                         iv_act = |remove?{ lv_key }| ).
        lo_toolbar->add( iv_txt = 'Uninstall'
                         iv_act = |uninstall?{ lv_key }| ).
        lo_toolbar->add( iv_txt = 'Refresh'
                         iv_act = |refresh?{ lv_key }| ).
        lo_toolbar->add( iv_txt = 'Hide'
                         iv_act = |hide?{ lv_key }| ).
      ENDIF.
  
      ro_html->add( '<div class="paddings right">' ).
  