anchor.diff:          RETURNING
             VALUE(rt_overview) TYPE zcl_abapgit_gui_page_repo_over=>tty_overview
           RAISING
  -          zcx_abapgit_exception.
  +          zcx_abapgit_exception,
  +
  +      render_table_header
  +        IMPORTING
  +          io_html TYPE REF TO zcl_abapgit_html,
  +
  +      render_table
  +        IMPORTING
  +          io_html     TYPE REF TO zcl_abapgit_html
  +          it_overview TYPE zcl_abapgit_gui_page_repo_over=>tty_overview,
  +
  +      render_table_body
  +        IMPORTING
  +          io_html     TYPE REF TO zcl_abapgit_html
  +          it_overview TYPE zcl_abapgit_gui_page_repo_over=>tty_overview,
  +
  +      render_order_by
  +        IMPORTING
  +          io_html TYPE REF TO zcl_abapgit_html,
  +
  +      render_order_by_direction
  +        IMPORTING
  +          io_html TYPE REF TO zcl_abapgit_html,
  +
  +      render_header_bar
  +        IMPORTING
  +          io_html TYPE REF TO zcl_abapgit_html.
   
   ENDCLASS.
   
  
positive.code:   PRIVATE SECTION.
      TYPES:
        BEGIN OF ty_overview,
          favorite TYPE string,
          type     TYPE string,
          key      TYPE string,
          name     TYPE string,
          url      TYPE string,
          package  TYPE string,
          branch   TYPE string,
        END OF ty_overview,
        tty_overview TYPE STANDARD TABLE OF ty_overview
                     WITH NON-UNIQUE DEFAULT KEY.
  
negative.code:         lv_favorite_icon = 'star/grey'.
        ENDIF.
  
        io_html->add( |<tr{ lv_trclass }>| ).
        io_html->add( |<td>| ).
        io_html->add_a( iv_act = |{ zif_abapgit_definitions=>gc_action-repo_toggle_fav }?{ <ls_overview>-key }|
                        iv_txt = zcl_abapgit_html=>icon( iv_name  = lv_favorite_icon
                                                         iv_class = 'pad-sides'
                                                         iv_hint  = 'Click to toggle favorite' ) ).
        io_html->add( |</td>| ).
        io_html->add( |<td>{ zcl_abapgit_html=>icon( lv_type_icon )  }</td>| ).
  
        io_html->add( |<td>{ <ls_overview>-key }</td>| ).
        io_html->add( |<td>{ zcl_abapgit_html=>a( iv_txt = <ls_overview>-name
                                                  iv_act = |{ gc_action-select }?{ <ls_overview>-key }| ) }</td>| ).
        io_html->add( |<td>{ <ls_overview>-url }</td>| ).
        io_html->add( |<td>{ <ls_overview>-package }</td>| ).
        io_html->add( |<td>{ <ls_overview>-branch }</td>| ).
        io_html->add( |<td>{ <ls_overview>-created_by }</td>| ).
        io_html->add( |<td>{ <ls_overview>-created_at }</td>| ).
        io_html->add( |<td>| ).
        io_html->add( |</td>| ).
        io_html->add( |</tr>| ).
  
      ENDLOOP.
  
    ENDMETHOD.
  
  
    METHOD render_order_by.
  
      io_html->add( |Order by: <select name="order_by" onchange="onOrderByChange(this)">| ).
  
      add_order_by_option( iv_option = |TYPE|
                           io_html   = io_html ).
  
      add_order_by_option( iv_option = |KEY|
                           io_html   = io_html ).
  
      add_order_by_option( iv_option = |NAME|
                           io_html   = io_html ).
  
      add_order_by_option( iv_option = |URL|
                           io_html   = io_html ).
  
      add_order_by_option( iv_option = |PACKAGE|
                           io_html   = io_html ).
  
      add_order_by_option( iv_option = |BRANCH|
                           io_html   = io_html ).
  
      add_order_by_option( iv_option = |CREATED_BY|
                           io_html   = io_html ).
  
      add_order_by_option( iv_option = |CREATED_AT|
                           io_html   = io_html ).
  
      io_html->add( |</select>| ).
  
    ENDMETHOD.
  
  
    METHOD render_order_by_direction.
  
      io_html->add( |<select name="direction" onchange="onDirectionChange(this)">| ).
  
      add_direction_option( iv_option   = |ASCENDING|
                            iv_selected = mv_order_descending
                            io_html     = io_html ).
  
      add_direction_option( iv_option   = |DESCENDING|
                            iv_selected = mv_order_descending
                            io_html     = io_html ).
  
      io_html->add( |</select>| ).
  
    ENDMETHOD.
  
  
    METHOD render_header_bar.
  
      io_html->add( |<div class="row">| ).
  
      render_order_by( io_html ).
      render_order_by_direction( io_html ).
  
      io_html->add( render_text_input( iv_name  = |filter|
                                       iv_label = |Filter: |
                                       iv_value = mv_filter ) ).
  
      io_html->add( |<input type="submit" class="hidden-submit">| ).
  
      io_html->add( |</div>| ).
  
      io_html->add( |</form>| ).
      io_html->add( |</div>| ).
  
    ENDMETHOD.
  
  ENDCLASS.
  