anchor.diff:  *----------------------------------------------------------------------*
   CLASS lcl_gui_router IMPLEMENTATION.
   
  +  DEFINE _add_dialog_fld.
  +    APPEND INITIAL LINE TO lt_fields ASSIGNING <ls_field>.
  +    <ls_field>-tabname    = &1.                       "#EC NOTEXT
  +    <ls_field>-fieldname  = &2.                       "#EC NOTEXT
  +    <ls_field>-fieldtext  = &3.                       "#EC NOTEXT
  +    <ls_field>-value      = &4.                       "#EC NOTEXT
  +    <ls_field>-field_attr = &5.                       "#EC NOTEXT
  +  END-OF-DEFINITION.
  +
     METHOD on_event.
  -    DATA: lv_url        TYPE string.
  -*          ls_file       TYPE ty_repo_file,
  -*          lo_background TYPE REF TO lcl_gui_page_background,
  -*          lv_key        TYPE lcl_persistence_repo=>ty_repo-key,
  -*          ls_item       TYPE ty_item,
  -*          lo_db         TYPE REF TO lcl_gui_page_db.
  -
  +    DATA: lv_url        TYPE string,
  +          lv_key        TYPE lcl_persistence_repo=>ty_repo-key,
  +          ls_item       TYPE ty_item.
   
       CASE iv_action.
  +      " General routing
         WHEN 'main' OR 'explore' OR 'db' OR 'background'.
           eo_page  = get_page_by_name( iv_action ).
           ev_state = gc_event_state-new_page.
         WHEN 'abapgithome'.
           cl_gui_frontend_services=>execute( document = gc_abapgit_homepage ).
  +        ev_state = gc_event_state-no_more_act.
         WHEN 'abapgit_installation'.
           abapgit_installation( ).
           ev_state = gc_event_state-re_render.
  -
  -
  -      " REPOSITORIES
  +      WHEN 'jump'.
  +        lcl_html_action_utils=>jump_decode( EXPORTING iv_string   = iv_getdata
  +                                            IMPORTING ev_obj_type = ls_item-obj_type
  +                                                      ev_obj_name = ls_item-obj_name ).
  +        lcl_objects=>jump( ls_item ).
  +        ev_state = gc_event_state-no_more_act.
  +      WHEN 'diff'.
  +        eo_page  = get_page_diff( iv_getdata ).
  +        ev_state = gc_event_state-new_page.
  +
  +      " Repository state actions
         WHEN 'install'.
           lv_url   = iv_getdata.
           repo_clone( lv_url ).
           ev_state = gc_event_state-re_render.
  -*      WHEN 'uninstall'.
  -*        lv_key = iv_getdata.
  -*        uninstall( lv_key ).
  -*      WHEN 'remove'.
  -*        lv_key = iv_getdata.
  -*        remove( lv_key ).
  -*        rv_state = gc_event_state-re_render.
  +      WHEN 'uninstall'.
  +        lv_key   = iv_getdata.
  +        repo_purge( lv_key ).
  +        ev_state = gc_event_state-re_render.
  +      WHEN 'remove'.
  +        lv_key   = iv_getdata.
  +        repo_remove( lv_key ).
  +        ev_state = gc_event_state-re_render.
  +      WHEN 'zipimport'.
  +        lv_key   = iv_getdata.
  +        lcl_zip=>import( lv_key ).
  +        ev_state = gc_event_state-re_render.
  +      WHEN 'zipexport'.
  +        lv_key   = iv_getdata.
  +        lcl_zip=>export( lcl_repo_srv=>get( lv_key ) ).
  +        ev_state = gc_event_state-no_more_act.
  +      WHEN 'newoffline'.
  +        repo_new_offline( ).
  +        ev_state = gc_event_state-re_render.
  +      WHEN 'files_commit'. "TODO refactor name ?
  +        lv_key   = iv_getdata.
  +        lcl_zip=>export( io_repo = lcl_repo_srv=>get( lv_key )
  +                         iv_zip  = abap_false ).
  +        ev_state = gc_event_state-no_more_act.
  +      WHEN 'packagezip'. "TODO refactor name ?
  +        repo_package_zip( ).
  +        ev_state = gc_event_state-no_more_act.
  +
  +      " Repository online actions
  +      WHEN 'pull'.
  +        lv_key   = iv_getdata.
  +        repo_pull( lv_key ).
  +        ev_state = gc_event_state-re_render.
  +      WHEN 'stage'.
  +        lv_key   = iv_getdata.
  +        eo_page  = get_page_stage( lv_key ).
  +        ev_state = gc_event_state-new_page.
  +
  +
   *      WHEN 'hide'.
   *        lv_key = iv_getdata.
   *        go_user->hide( lv_key ).
  -*        rv_state = gc_event_state-re_render.
  +*        ev_state = gc_event_state-re_render.
   *      WHEN 'unhide'.
   *        lv_key = iv_getdata.
   *        go_user->unhide( lv_key ).
  -*        rv_state = gc_event_state-re_render.
  -*      WHEN 'stage'.
  -*        lv_key = iv_getdata.
  -*        stage( lv_key ).
  -*      WHEN 'diff'.
  -*        file_decode( EXPORTING iv_string = iv_getdata
  -*                     IMPORTING ev_key    = lv_key
  -*                               es_file   = ls_file ).
  -*        diff( is_file   = ls_file
  -*              iv_key    = lv_key ).
  -*      WHEN 'jump'.
  -*        CLEAR ls_item.
  -*        jump_decode( EXPORTING iv_string = iv_getdata
  -*                     IMPORTING ev_obj_type = ls_item-obj_type
  -*                               ev_obj_name = ls_item-obj_name ).
  -*        lcl_objects=>jump( ls_item ).
  -*      WHEN 'pull'.
  -*        lv_key = iv_getdata.
  -*        pull( lv_key ).
  -*        rv_state = gc_event_state-re_render.
  -*      WHEN 'newoffline'.
  -*        newoffline( ).
  -*        rv_state = gc_event_state-re_render.
  -*      WHEN 'zipimport'.
  -*        lv_key = iv_getdata.
  -*        lcl_zip=>import( lv_key ).
  -*        rv_state = gc_event_state-re_render.
  -*      WHEN 'zipexport'.
  -*        lv_key = iv_getdata.
  -*        lcl_zip=>export( lcl_repo_srv=>get( lv_key ) ).
  -*      WHEN 'files_commit'.
  -*        lv_key = iv_getdata.
  -*        lcl_zip=>export( io_repo = lcl_repo_srv=>get( lv_key )
  -*                         iv_zip  = abap_false ).
  -*      WHEN 'packagezip'.
  -*        package_zip( ).
  +*        ev_state = gc_event_state-re_render.
   
   
         WHEN OTHERS.
  
positive.code:     ENDTRY.
  
    ENDMETHOD.        " get_home_page
  
    METHOD abapgit_installation.
  
  
negative.code:             call_page( li_page ).
            WHEN gc_event_state-go_back.
              back( ).
            WHEN gc_event_state-no_more_act.
              " Do nothing, handling completed
            WHEN OTHERS.
              _raise 'Unknown action'.
          ENDCASE.
  