anchor.diff:  
     ENDMETHOD.
   
  -  METHOD render_files.
  +  METHOD render_stage.
   
       DATA: lt_stage TYPE lcl_stage=>ty_stage_tt.
   
       FIELD-SYMBOLS: <ls_stage> LIKE LINE OF lt_stage.
   
  -
       CREATE OBJECT ro_html.
   
       lt_stage = mo_stage->get_all( ).
   
  -    ro_html->add( '<table>' ).
  +    ro_html->add( '<table class="stage_tab">' ).
  +    ro_html->add( '<tr class="title firstrow">').
  +    ro_html->add( '<td colspan="2">Staged files</td>').
  +    ro_html->add( '</tr>' ).
  +
       LOOP AT lt_stage ASSIGNING <ls_stage>.
         ro_html->add( '<tr>' ).
  +      ro_html->add( '<td class="method">' ).
  +      ro_html->add( lcl_stage=>method_description( <ls_stage>-method ) ).
  +      ro_html->add( '</td>' ).
         ro_html->add( '<td>' ).
         ro_html->add( <ls_stage>-file-path && <ls_stage>-file-filename ).
         ro_html->add( '</td>' ).
  -      ro_html->add( '<td>' ).
  -      ro_html->add( lcl_stage=>method_description( <ls_stage>-method ) ).
  -      ro_html->add( '</td>' ).
         ro_html->add( '</tr>' ).
       ENDLOOP.
  +
       ro_html->add( '</table>' ).
  -    ro_html->add( '<br>' ).
  -
  -  ENDMETHOD.
  -
  -  METHOD lif_gui_page~on_event.
  -
  -    CASE iv_action.
  -      WHEN 'post'.
  -        push( it_postdata ).
  -        "lcl_app=>repo_srv( )->free_stage( ??? ).
  -        rv_state = gc_event_state-go_back_to_bookmark.
  -      WHEN 'cancel'.
  -        rv_state = gc_event_state-go_back.
  -    ENDCASE.
  -
  -  ENDMETHOD.
  -
  -  METHOD lif_gui_page~render.
  -
  +
  +  ENDMETHOD.    "render_stage
  +
  +  METHOD render_form.
       DATA: lo_user  TYPE REF TO lcl_persistence_user,
             lv_user  TYPE string,
             lv_email TYPE string.
   
  -
  -    CREATE OBJECT ro_html.
  -
  -    lo_user = lcl_app=>user( ).
  -    lv_user = lo_user->get_username( ).
  -    lv_email = lo_user->get_email( ).
  -
   * see https://git-scm.com/book/ch5-2.html
   * commit messages should be max 50 characters
   * body should wrap at 72 characters
   
  +    lo_user  = lcl_app=>user( ).
  +    lv_user  = lo_user->get_username( ).
  +    lv_email = lo_user->get_email( ).
  +
  +    CREATE OBJECT ro_html.
  +
  +    ro_html->add( '<div class="form_div">' ).
  +
  +    ro_html->add( '<form id="commit_form" method="post" action="sapevent:commit_post">' ).
  +    ro_html->add( '<table>' ).
  +
  +    ro_html->add( '<tr>' ).
  +    ro_html->add( '<td class="field_name">username</td>' ).
  +    ro_html->add( '<td>' ).
  +    ro_html->add( |<input name="username" type="text" size="50" value="{ lv_user }">| ).
  +    ro_html->add( '</td>' ).
  +    ro_html->add( '</tr>' ).
  +
  +    ro_html->add( '<tr>' ).
  +    ro_html->add( '<td class="field_name">email</td>' ).
  +    ro_html->add( '<td>' ).
  +    ro_html->add( |<input name="email" type="text" size="50" value="{ lv_email }">| ).
  +    ro_html->add( '</td>' ).
  +    ro_html->add( '</tr>' ).
  +
  +    ro_html->add( '<tr>' ).
  +    ro_html->add( '<td class="field_name">comment</td>' ).
  +    ro_html->add( '<td>' ).
  +    ro_html->add( '<input name="comment" type="text"' &&
  +                  ' id="commit_msg" maxlength="50" size="50">' ).
  +    ro_html->add( '</td>' ).
  +    ro_html->add( '</tr>' ).
  +
  +    ro_html->add( '<tr>' ).
  +    ro_html->add( '<td class="field_name">body</td>' ).
  +    ro_html->add( '<td>' ).
  +    ro_html->add( '<textarea name="body" rows="10" cols="50"></textarea>' ).
  +    ro_html->add( '</td>' ).
  +    ro_html->add( '</tr>' ).
  +
  +    ro_html->add( '</table>' ).
  +    ro_html->add( '</form>' ).
  +
  +    ro_html->add( '</div>' ).
  +
  +  ENDMETHOD.    "render_form
  +
  +  METHOD render_menu.
  +
  +    DATA lo_toolbar TYPE REF TO lcl_html_toolbar.
  +
  +    CREATE OBJECT ro_html.
  +    CREATE OBJECT lo_toolbar.
  +
  +    lo_toolbar->add( iv_act = 'submitCommit();'
  +                     iv_txt = 'Commit'
  +                     iv_typ = action_type-onclick
  +                     iv_opt = html_opt-emphas ).
  +
  +    lo_toolbar->add( iv_act = 'commit_cancel'
  +                     iv_txt = 'Cancel'
  +                     iv_opt = html_opt-cancel ).
  +
  +    ro_html->add( '<div class="paddings">' ).
  +    ro_html->add( lo_toolbar->render( ) ).
  +    ro_html->add( '</div>' ).
  +
  +  ENDMETHOD.      "render_menu
  +
  +  METHOD lif_gui_page~render.
  +
  +    CREATE OBJECT ro_html.
  +
       ro_html->add( header( io_include_style = styles( ) ) ).
       ro_html->add( title( iv_page_title = 'COMMIT' ) ).
   
  -
       ro_html->add( '<div class="repo">' ).
  -
       ro_html->add( lcl_gui_page_main=>render_repo_top( mo_repo ) ).
  -
  -    " UNDER CONSTRUCTION
  -    ro_html->add( render_files( ) ).
  -
  -*    ro_html->add( '<a href="sapevent:cancel">Cancel</a>' ).
  -
  -    ro_html->add( '<form method="post" action="sapevent:post">' ).
  -    ro_html->add( '<table>' ).
  -    ro_html->add( '<tr>' ).
  -    ro_html->add( '<td>username</td>' ).
  -    ro_html->add( '<td>' ).
  -    ro_html->add( '<input name="username" type="text" value="' && lv_user && '">' ).
  -    ro_html->add( '</td>' ).
  -    ro_html->add( '</tr>' ).
  -    ro_html->add( '<tr>' ).
  -    ro_html->add( '<td>email</td>' ).
  -    ro_html->add( '<td>' ).
  -    ro_html->add( '<input name="email" type="text" value="' && lv_email && '">' ).
  -    ro_html->add( '</td>' ).
  -    ro_html->add( '</tr>' ).
  -    ro_html->add( '<tr>' ).
  -    ro_html->add( '<td>comment</td>' ).
  -    ro_html->add( '<td>' ).
  -    ro_html->add( '<input name="comment" type="text" id="cmt" maxlength="50" size="50">' ).
  -    ro_html->add( '</td>' ).
  -    ro_html->add( '</tr>' ).
  -    ro_html->add( '<tr>' ).
  -    ro_html->add( '<td colspan="2">' ).
  -    ro_html->add( 'body <br>' ) ##NO_TEXT.
  -    ro_html->add( '<textarea name="body" rows="10" cols="72"></textarea>' ).
  -    ro_html->add( '</td>' ).
  -    ro_html->add( '</tr>' ).
  -    ro_html->add( '<tr>' ).
  -    ro_html->add( '<td colspan="2" align="right">' ).
  -    ro_html->add( '<input type="submit" value="Push">' ).
  -    ro_html->add( '</td>' ).
  -    ro_html->add( '</tr>' ).
  -    ro_html->add( '</table>' ).
  -    ro_html->add( '</form>' ).
  -    ro_html->add( '<script>' ).
  -    ro_html->add( 'document.getElementById("cmt").focus();' ).
  -    ro_html->add( '</script>' ).
  +    ro_html->add( render_menu( ) ).
  +    ro_html->add( render_form( ) ).
  +    ro_html->add( render_stage( ) ).
       ro_html->add( '</div>' ).
   
  -    ro_html->add( footer( ) ).
  -
  -  ENDMETHOD.
  +    ro_html->add( footer( io_include_script = scripts( ) ) ).
  +
  +  ENDMETHOD.  "lif_gui_page~render
   
     METHOD styles.
       CREATE OBJECT ro_html.
  
positive.code:     ro_html->add('    right: 0;').
      ro_html->add('    top: 1.1em; /*IE7 woraround*/').
      ro_html->add('    background-color: #f9f9f9;').
      ro_html->add('    min-width: 10em;').
      ro_html->add('    border-bottom: 1px solid lightgrey;').
      ro_html->add('}').
      ro_html->add('.dropdown_content a {').
  
negative.code: *----------------------------------------------------------------------*
  CLASS lcl_html_toolbar DEFINITION FINAL.
    PUBLIC SECTION.
      METHODS add    IMPORTING iv_txt TYPE string
                               io_sub TYPE REF TO lcl_html_toolbar OPTIONAL
                               iv_act TYPE string    OPTIONAL
                               iv_opt TYPE c         OPTIONAL
                               iv_typ TYPE c         DEFAULT action_type-sapevent.
  
      METHODS render IMPORTING iv_as_droplist_with_label TYPE string OPTIONAL
                               iv_no_separator           TYPE abap_bool OPTIONAL
  