From c488d146589fc1eedd1aebb806608fb52b63e592 Mon Sep 17 00:00:00 2001 From: atsy Date: Sun, 5 Jun 2016 11:46:49 +0300 Subject: [PATCH] #238, integrate new event flow and re_renders (yet tofix: unknown action) --- zabapgit.prog.abap | 372 +++++++++++++++++++++------------------------ 1 file changed, 177 insertions(+), 195 deletions(-) diff --git a/zabapgit.prog.abap b/zabapgit.prog.abap index ee21ceced..ede7d7e55 100644 --- a/zabapgit.prog.abap +++ b/zabapgit.prog.abap @@ -88,6 +88,13 @@ CONSTANTS: BEGIN OF gc_chmod, dir TYPE ty_chmod VALUE '40000 ', END OF gc_chmod. +CONSTANTS: BEGIN OF gc_event_state, + not_handled VALUE 0, + re_render VALUE 1, + new_page VALUE 2, + go_back VALUE 3, + END OF gc_event_state. + CONSTANTS: gc_newline TYPE abap_char1 VALUE cl_abap_char_utilities=>newline. CONSTANTS: gc_english TYPE spras VALUE 'E'. @@ -15971,19 +15978,21 @@ ENDCLASS. "lcl_porcelain DEFINITION *----------------------------------------------------------------------* INTERFACE lif_gui_page. - METHODS: - on_event - IMPORTING iv_action TYPE clike - iv_frame TYPE clike - iv_getdata TYPE clike - it_postdata TYPE cnht_post_data_tab - it_query_table TYPE cnht_query_table - RAISING lcx_exception, - render - RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper - RAISING lcx_exception, - get_assets - EXPORTING et_assets TYPE tt_web_assets. + METHODS on_event + IMPORTING iv_action TYPE clike + iv_frame TYPE clike + iv_getdata TYPE clike + it_postdata TYPE cnht_post_data_tab + it_query_table TYPE cnht_query_table + RETURNING VALUE(rv_state) TYPE i + RAISING lcx_exception. + + METHODS render + RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper + RAISING lcx_exception. + + METHODS get_assets + EXPORTING et_assets TYPE tt_web_assets. ENDINTERFACE. @@ -15992,9 +16001,6 @@ ENDINTERFACE. *----------------------------------------------------------------------* CLASS lcl_gui_router DEFINITION FINAL. PUBLIC SECTION. - CONSTANTS: c_not_handled VALUE 0, - c_re_render VALUE 1, - c_new_page VALUE 2. METHODS on_event IMPORTING iv_action TYPE clike @@ -16004,7 +16010,7 @@ CLASS lcl_gui_router DEFINITION FINAL. it_query_table TYPE cnht_query_table OPTIONAL EXPORTING eo_page TYPE REF TO lif_gui_page - ev_result TYPE i + ev_state TYPE i RAISING lcx_exception. PRIVATE SECTION. @@ -17697,8 +17703,6 @@ CLASS lcl_zip IMPLEMENTATION. lo_repo->set_files_remote( unzip_file( file_upload( ) ) ). lo_repo->deserialize( ). - lcl_gui=>get( )->render( ). - ENDMETHOD. "import METHOD files_commit. @@ -18212,16 +18216,44 @@ CLASS lcl_gui IMPLEMENTATION. METHOD on_event. - DATA: lx_exception TYPE REF TO lcx_exception. - + DATA: lx_exception TYPE REF TO lcx_exception, + li_page TYPE REF TO lif_gui_page, + lv_state TYPE i. TRY. - mi_cur_page->on_event( - iv_action = action - iv_frame = frame - iv_getdata = getdata - it_postdata = postdata - it_query_table = query_table ). + IF mi_cur_page IS BOUND. + lv_state = mi_cur_page->on_event( + iv_action = action + iv_frame = frame + iv_getdata = getdata + it_postdata = postdata + it_query_table = query_table ). + ENDIF. + + IF lv_state IS INITIAL. + mo_router->on_event( + EXPORTING + iv_action = action + iv_frame = frame + iv_getdata = getdata + it_postdata = postdata + it_query_table = query_table + IMPORTING + eo_page = li_page + ev_state = lv_state ). + ENDIF. + + CASE lv_state. + WHEN gc_event_state-re_render. + render( ). + WHEN gc_event_state-new_page. + call_page( li_page ). + WHEN gc_event_state-go_back. + back( ). + WHEN OTHERS. + _raise 'Unknown action'. + ENDCASE. + CATCH lcx_exception INTO lx_exception. ROLLBACK WORK. MESSAGE lx_exception->mv_text TYPE 'S' DISPLAY LIKE 'E'. @@ -18291,18 +18323,11 @@ CLASS lcl_gui IMPLEMENTATION. ENDMETHOD. METHOD go_home. - " REDO ALL - DATA li_page TYPE REF TO lif_gui_page. - - mo_router->on_event( EXPORTING iv_action = 'home' - IMPORTING eo_page = li_page ). - - call_page( li_page ). + on_event( action = 'home' ). ENDMETHOD. - METHOD startup. DATA: lt_events TYPE cntl_simple_events, @@ -18461,7 +18486,7 @@ ENDCLASS. CLASS lcl_gui_page_super DEFINITION ABSTRACT. PUBLIC SECTION. - INTERFACES lif_gui_page ABSTRACT METHODS on_event render. + INTERFACES lif_gui_page ABSTRACT METHODS render. PROTECTED SECTION. METHODS header @@ -18711,28 +18736,109 @@ CLASS lcl_gui_page_super IMPLEMENTATION. ENDMETHOD. "common styles - METHOD lif_gui_page~get_assets. + METHOD lif_gui_page~get_assets. " Common images here + + DATA ls_image TYPE ty_web_asset. + CLEAR et_assets. - " Common images here - ENDMETHOD. + + ls_image-url = 'img/logo'. + ls_image-content = + 'iVBORw0KGgoAAAANSUhEUgAAAKMAAAAoCAYAAACSG0qbAAAABHNCSVQICAgIfAhkiAAA' + && 'AAlwSFlzAAAEJQAABCUBprHeCQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9y' + && 'Z5vuPBoAAA8VSURBVHic7Zx7cJzVeYef31nJAtvYko1JjM3FYHlXimwZkLWyLEMcwIGQ' + && 'cEkDJWmTltLStGkoDCkzwBAuCemUlksDNCkhJTTTljJpZhIuBQxxAWPvyuYiW7UkG8Il' + && 'UByIsS1sLEu75+0fu5JXu9/etAJz0TOzM/rOec85765+37m+3yczY8w0NU3qrwv9npfa' + && 'Hfx02pPPd469sgk+7misYnyjpWXy5IOG7kd8ZjjNjEtr13TdOm7eTfCxwo2lUJAQASRu' + && '2dnRfMn4uDbBx42yxZhPiMNMCHKCsVK2GGuqqqoQUwrZTAhygrFQshjfaGmZ/M7yxQtm' + && 'xGL9/qDqzwLxQvYTgpygXEoS4/DQ7LE1O05atLBu1YZdE4KcYLwpupoOmCO+5Z2dXPfE' + && 'xk07Tm2ZroGhBwX1wAygKqiOiVX2Rw9Jam/gyH0wuGGzvTEudRYSY4HFyogghxN2n7Sw' + && 'IendvcCioLoOtCCXNeqohOf0oDwPq9f3Wt/77dOHlWhYzUj/BRybTnrGEnZO5wv2m0rq' + && 'DezJoOiqeZbzegzpk6TVPPWJTT39y5svMogF1ZcesjlQgkwYp4F+EJQXwv4E+MiLUZJa' + && 'F7AIcRq4hWZ2mMRhQD/oZcErXv7FScaja3rt/wpU9E/sFyLACQq57wB/XIl/gWIstn2T' + && 'xpHVre7ZW71p8sFDeQscSEHKu3pTBadNH2Lq61VT57iwNazLgaNSqYaUaWXLDZCJIbBo' + && 'g3tK2A2xHns0oMrm3CRrqdTPnAVMiUIEmLlz2XGLMxNmH7YrifFcoUIHalHj8f8p6UfA' + && 'O+932weStno1zghps6Q7GBFiUYRxopkeaZ2vIwLyfxtQ4vV8lbWHNScacf+T/vwqn90o' + && 'MZYhRADJ+bv725vmj6Q8tHWffPKUD6IgO/tsfawneRHYd97Pdg8kSyJaZiGtBY4pYPYO' + && 'kH84C0Cyv8tKSiK7OZ99EpYAJ2V8AhkRY5lCHGaxhaq+BLCzY/EXd5y0aOG0td1vf1AF' + && 'CWCw7/1u80DQEtahQvcB03MyjQfM7Hwnmxfv9dPivX5SssqOwuzPSqk71mN3ymw5ZtdK' + && 'dmVIdly8xx7JZ29yy0qptwrGLMRRCA6T1w93nLTo5Lq13Zv625tOMRd6DLF4v0lWmQO8' + && 'qPko45y7TWaHZyUnwa6M99mN2fYbuu1V4K5oxF1B4Z4UgFifrQHWFLNbvkh1QheV5DNN' + && 'TZMqFWIGs5zX48M95PTqGa3TZ4erzbvj8/WUErf0L2++uNyGJLn2Js1oDeuYlkbNbmlR' + && 'deXup2hq0qS2es2VlHMDFaOlRdXL5uuwlnodG23QTEljCkbJV3d7WHOK+dXWqHqZnZeb' + && 'Y1fGe3OFOArRU5GTGbSHNWdwUL8Epo1qIQ9V/bXu3HES4jCznNfjb7e1zZ8Ri/UD1MLz' + && 'u05s/huMx4IKGNy4+8Tj/2Pqk8++Vaji86TQqxEuNNM5rWGtSCaokSDkgd0QjbidoPvN' + && '+5s7t9jz5TgdbdBMvLsG2cop6FgLUdUaZk804jYKuyrWa6vzlT2+XrOqQnxd6KwQOj5R' + && 'hULpL9Yaxkcj7g3QT6zK397ZbdtGtbtAZ+B0U3adkt0c67E7OyI6fFDuSpktC6HGpJjU' + && 'GmZ3NOI2mdnVnX32eHZZ7903hGXfBG8mp3J7sd/B0DPCTgUmBf9O7lmMybk56or3Jn8f' + && 'oLVB7Q5dZ9Iy4OBsw2jYbUUk96fwQrzHf955iBZzsDA+aL9k1owZ20fNzaY/tfFXwK48' + && 'ldQkSZ5YqJXmZk15JaJfmOmfgdOAmgCzWrCvyum5aIO+Uor3AIbOx7QV2TeBMPu3vKYA' + && 'Sw091hbWt4PKRhu0oDqkmND1wAnk3vkOmAN2lRLa2hrWMVm5Tek2R3286YzWiK4eQltk' + && '9g1gMfsFMhVYKunR1obQddk+SXZqwLe8acMGe7fYb9HZk7wm3utrBmpsqiXsyClHMHK6' + && '0hLWoRjHBfmLbP9K3bPYjFPIFWLaQeZnlZ8H4JyFflrMwcK4wG63v3/ycZnXOzqalxE0' + && 'mU7x9rvvVv93oVZqBtzNGGeU7Jbp9pZGzS7ReiVQVyDfmXRda4PaA9p5mBLmWGmmSron' + && 'M0FytUGGgjPTAi8UIeVk9u1og5YOJ0QbNBOjIac+Y22JPgLQ1WV7Ol+w36xebYnhtGpj' + && 'FjBYTj3l4KY9/dx6My4d74pN/Ki/Y9HpSG5HR/Nyh/1DHtO9OM6dvWFDwbtWslOykt6U' + && 's5VWZbOFnQtsyMqvc56Ty3T7NeBhLGAfDZDpe5nX6V5uXpbZ43K2NGQ2V9glwLas/I62' + && 'hfrE8EWsJ3mFsGYs+OQqze+A1cBLgbmma4f/9AmOJGBe5vKVLYN1W6wnOWSHmdkVhexM' + && 'PG6yC0x2AbmjoQ3njdh4uwrSw1Htmq5bd3Y0I3FLpQ5n0GTSQ7s6Fva70RPYTPbi+Pz0' + && 'J7ryboRC+m5PnRfsJjVEAfp5bLNflTb52dKIBj36RWY5ZyX2WCLukvbX67ZYHFLHZtGw' + && '+1fD/jDL8qQljWpav9m6Uw3wKYzXgUNJTxsk+0Fssw0L6x+j4dCx6eF/BEtwDBkbx7Fe' + && '29gWCa0yrC2rvXXO26WZfrWG3V2kji8zWbm0QUev67GX5ZgZ8A0H121hXIIZNrxou9oW' + && '6m4b4m/z2aTP+fsAohF3PaNHROvssZ8ElRs5DnyPBAkovxDFF4oJESDeY9tJD4Ur5umg' + && 'PSFm1Uy23Zk2SaM7e43p5Y4uxUMzu2f4H56+tuZmff2gfTqHrGEy5DkW6Abo7LH7gfsB' + && '2uo1LQGzBmoYFSwg57vNcjqqo4F1JXh2S7Zfx83TZZNqdD6MXkQkU369jONgcmfxe83M' + && 'B7XQEdEhg1B0HzDk2ZHpy3vBqLPpMQhyi/f2AIA3WyPZG6KkeVpKiE925awEi7H6JRsA' + && 'cqJDfIi9oayfW8ZB5dY/TFeX7YlGQg+RmgJkcnSQfWyr9QP92enmGcgeNCvx67mXbGdb' + && 'xD1hjI5AklJ+ydgTUGz6iiZNXd09+gYGGIRlQgXn6wDesZYSRFsJOYES5QjSw7fqnu7q' + && 'Bqh7uqu7f3nzdw3uKFJszEIcpqVRs12SRuAYiTrJ1YXMzSGgS6iQnHmWyQWe70pySz/F' + && 'MZagMWnMlaiTuTqTTih7s7IIHm1T1ncVI37l3BAAA4McAYF7iAvG17uxExi1U6Igd9XN' + && 'Dj+UmZA8qPrf3MDQbeSPIN8Ldub0JzeWLcT2I3Swn8JFhr4VQnMze5uKnv0ugOHfUXa3' + && 'ZhySedkR0eGDuMtbw/rTZCI1pA9PF0yWf4e3MnJ7YKXm0pOr6H03QRIIZeYnUj1njhid' + && '8aaRscKX/VGWSRLsCjnK2rcdC3njGUsQ5PSdv92yqJaMk5WBoRMpJsSnNgZufBdCkmsN' + && '60FgRbllK8PNzOlttT/qpz2sOUnpeWGHvq9ewcyc28/7XQCru213NOL+l6wgZ0kXAjnD' + && 'cazP7gXuTdu41rCyxbgr3mt/P16+F6LgUVXtmq5bC237yNsNu5YtPBZgx4kLFznZ1XlM' + && 'BzB/1liECBAN801yhfiq0HflbKXz1ojZ4qCylSBsbm6q/93wX0n0Q1Ir6UzWYXaZyZaF' + && 'qqxeZn813n4ZlhPWJWXMo00P5OTDF5c0qmm8fRlPip6bFhHk6Ti3ddfy5i3OXBemJQE2' + && 'A5g/c/qaTasC8krC0KdzE+3qWG/y6thmW7Vui/UkQ7w51vqDaGnRZFInPdlshNQ2C8oJ' + && 'h0oqaefF++zmzh5bu7bbXrBxjp88bp5qgZzNdyfWD/9t+B+TO4GW8/p+R0SHcGBxLWEF' + && 'jiQlHeIXEaRIPZAVRMVCTDcQCUh8LfOyaqjgCcr+YpY7NRFa2VY/egsqtNtdw8ie5gjJ' + && 'oUTqicjofOYA2f/YgcR03s5MMBF4wlIa7rMr5mnUyru6xl0LZAeFvDG3l83DF5199muk' + && 'oJO1FUMoviSi8Nh9Kg+Ru7qvUvCqPO+cMZsxbPsM4HXW9KcrEyKApTa7s9BVSyLaF3Ik' + && 'SbLSQros18RyInkkV2u5q+6zLaS+aCT0oJl/QVI78IWcsvDos1vtLYCE551QKNuCKW63' + && '+157g36cMOYI9yWhC3K+j4KDEHKxC9+t0altDaFHwL/kvVZIBJw761/uM5/MTJlU7S/Z' + && 'N6hTBNlhZA0OPReNuGdM6nL4jR4G5ZnRusAtKmVHwg1Slcxe11nODZJKh1fJ6kwM3dQa' + && 'VgOw3omjkGuL9/o/L/vFTzs7mi8pQZBpIT4f9PxE2bRFQncY9pdjKDoExDH7ebzPbgFo' + && 'bQjdng48KBfvzZau77ORN61FI66PsW2N7ARiZnZTZ589BtAWCV1v5J1zF+JNVdui2CbL' + && 'OcJsq1ejD2lVgCDL4e14r58J0N6k+cmEu0HYIssdrbxgnaGeeG9yJEg32hC6GbOix81y' + && 'trTsWLtiixpgQNLZ4yVEgCT++xSP0H7C0N1ZadVAh6SR3kRm2WfJO0H/XqTuQcn+IlOI' + && 'AFjRVaZhus3g2az0WuA0wcIi5QP3DDNIIPtakBABYltts7AO4OEi9eTFYGCksSRzwM4L' + && 'ECKAM1gG9tVR5UP+RkqZN5s7a0yBnwUEOSDp7GlPPp83BH0srO+1PmQrDIIen9wOdnln' + && 'n31G5n9ZtDLL6ck2x3uTf6DUee8rASX6vNnyWI/dmZ0R77O7LNXLBkWy9CE7Pd6XvNih' + && 'QkEQeZHZl9PBFtsDstebtyWFwv0B4r32UrzXn+6xDtBdwIslNL0N+JnMvravxiraFO/s' + && 'tm0y+xzQlcfkddCNCe/vGfP7GQH6lzdfbHAjqSCBHZK+PN5CzESSlixgnhMLzXAeXp+3' + && 'hWfuM0sWL10abQv1CdtHixzvmtiYPhcvSFOTJk1NEPEQkWdPUry4oc96y2o3YJiWs5Wx' + && 'zbYq83THHHu9Y1N2kG45tDRqdsgzxxuznKPOGbsTsN2M7d6zfXhePJ5Ici1h6mUcAcw0' + && '8Zo5fp35NoqKxAjwTrRhZmLSpPY9ySmPzV27dm+lTn9cKSTGA+XT+03Jq+l8HBLv2Q7c' + && 'X9K+ygQTFGDcHhaaoGJyouDNV7JH+eGj4mF6gspoC+tzJt1ObsT4MDsF2zxs886+Ml5v' + && '/PogUvEwPUGFiE+SX4gAtQa1gkhV7onQR4oJMR5oxC6stDeghd7Dh6E+CPw/HL4vVO2f' + && 'cpUAAAAASUVORK5CYII='. + APPEND ls_image TO et_assets. + + ENDMETHOD. "lif_gui_page~get_assets + + METHOD lif_gui_page~on_event. + rv_state = gc_event_state-not_handled. + ENDMETHOD. "lif_gui_page~on_event ENDCLASS. CLASS lcl_gui_page_explore DEFINITION FINAL INHERITING FROM lcl_gui_page_super. PUBLIC SECTION. - METHODS lif_gui_page~on_event REDEFINITION. METHODS lif_gui_page~render REDEFINITION. ENDCLASS. "lcl_gui_page_explore DEFINITION CLASS lcl_gui_page_explore IMPLEMENTATION. - METHOD lif_gui_page~on_event. - - CASE iv_action. - WHEN OTHERS. - _raise 'Unknown action'. "#EC NOTEXT - ENDCASE. - - ENDMETHOD. METHOD lif_gui_page~render. @@ -18895,7 +19001,6 @@ CLASS lcl_gui_page_diff DEFINITION FINAL INHERITING FROM lcl_gui_page_super. is_local TYPE ty_file is_remote TYPE ty_file. - METHODS lif_gui_page~on_event REDEFINITION. METHODS lif_gui_page~render REDEFINITION. PRIVATE SECTION. @@ -19112,15 +19217,6 @@ CLASS lcl_gui_page_diff IMPLEMENTATION. ENDMETHOD. - METHOD lif_gui_page~on_event. - - CASE iv_action. - WHEN OTHERS. - _raise 'Unknown action'. "#EC NOTEXT - ENDCASE. - - ENDMETHOD. - METHOD lif_gui_page~render. CREATE OBJECT ro_html. @@ -19269,9 +19365,7 @@ CLASS lcl_gui_page_background IMPLEMENTATION. CASE iv_action. WHEN 'save'. save( iv_getdata ). - lcl_gui=>get( )->render( ). - WHEN OTHERS. - _raise 'Unknown action, background'. + rv_state = gc_event_state-re_render. ENDCASE. ENDMETHOD. @@ -19478,8 +19572,6 @@ CLASS lcl_gui_page_commit IMPLEMENTATION. COMMIT WORK. - lcl_gui=>get( )->back( ). - ENDMETHOD. METHOD parse. @@ -19549,10 +19641,9 @@ CLASS lcl_gui_page_commit IMPLEMENTATION. CASE iv_action. WHEN 'post'. push( it_postdata ). + rv_state = gc_event_state-go_back. WHEN 'cancel'. - lcl_gui=>get( )->back( ). - WHEN OTHERS. - _raise 'Unknown action, commit'. + rv_state = gc_event_state-go_back. ENDCASE. ENDMETHOD. @@ -19776,25 +19867,23 @@ CLASS lcl_gui_page_stage IMPLEMENTATION. WHEN 'add'. ls_file = file_decode( iv_getdata ). mo_stage->add( ls_file ). - lcl_gui=>get( )->render( ). + rv_state = gc_event_state-re_render. WHEN 'all'. all( ). WHEN 'reset'. ls_file = file_decode( iv_getdata ). mo_stage->reset( ls_file ). - lcl_gui=>get( )->render( ). + rv_state = gc_event_state-re_render. WHEN 'ignore'. ls_file = file_decode( iv_getdata ). mo_stage->ignore( ls_file ). - lcl_gui=>get( )->render( ). + rv_state = gc_event_state-re_render. WHEN 'rm'. ls_file = file_decode( iv_getdata ). mo_stage->rm( ls_file ). - lcl_gui=>get( )->render( ). + rv_state = gc_event_state-re_render. WHEN 'commit'. call_commit( ). - WHEN OTHERS. - _raise 'Unknown action, stage'. ENDCASE. ENDMETHOD. @@ -19980,8 +20069,6 @@ CLASS lcl_gui_page_main IMPLEMENTATION. COMMIT WORK. - lcl_gui=>get( )->render( ). - ENDMETHOD. "pull METHOD stage. @@ -20165,8 +20252,6 @@ CLASS lcl_gui_page_main IMPLEMENTATION. COMMIT WORK. - lcl_gui=>get( )->render( ). - ENDMETHOD. "uninstall METHOD remove. @@ -20212,8 +20297,6 @@ CLASS lcl_gui_page_main IMPLEMENTATION. COMMIT WORK. - lcl_gui=>get( )->render( ). - ENDMETHOD. "remove METHOD newoffline. @@ -20269,8 +20352,6 @@ CLASS lcl_gui_page_main IMPLEMENTATION. COMMIT WORK. - lcl_gui=>get( )->render( ). - ENDMETHOD. "newoffline METHOD install. @@ -20358,8 +20439,6 @@ CLASS lcl_gui_page_main IMPLEMENTATION. COMMIT WORK. - lcl_gui=>get( )->render( ). - ENDMETHOD. "install METHOD build_main_menu. @@ -20838,8 +20917,6 @@ CLASS lcl_gui_page_main IMPLEMENTATION. COMMIT WORK. - lcl_gui=>get( )->render( ). - ENDMETHOD. "abapgit_installation METHOD is_repo_installed. @@ -20911,6 +20988,7 @@ CLASS lcl_gui_page_main IMPLEMENTATION. WHEN 'install'. lv_url = iv_getdata. install( lv_url ). + rv_state = gc_event_state-re_render. WHEN 'explore'. CREATE OBJECT lo_page_explore. lcl_gui=>get( )->call_page( lo_page_explore ). @@ -20922,6 +21000,7 @@ CLASS lcl_gui_page_main IMPLEMENTATION. WHEN 'remove'. lv_key = iv_getdata. remove( lv_key ). + rv_state = gc_event_state-re_render. WHEN 'refresh'. lv_key = iv_getdata. IF lv_key IS INITIAL. " Refresh all or single @@ -20929,15 +21008,15 @@ CLASS lcl_gui_page_main IMPLEMENTATION. ELSE. lcl_repo_srv=>get( lv_key )->refresh( ). ENDIF. - lcl_gui=>get( )->render( ). + rv_state = gc_event_state-re_render. WHEN 'hide'. lv_key = iv_getdata. go_user->hide( lv_key ). - lcl_gui=>get( )->render( ). + rv_state = gc_event_state-re_render. WHEN 'unhide'. lv_key = iv_getdata. go_user->unhide( lv_key ). - lcl_gui=>get( )->render( ). + rv_state = gc_event_state-re_render. WHEN 'stage'. lv_key = iv_getdata. stage( lv_key ). @@ -20956,8 +21035,10 @@ CLASS lcl_gui_page_main IMPLEMENTATION. 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 'db'. CREATE OBJECT lo_db. lcl_gui=>get( )->call_page( lo_db ). @@ -20967,6 +21048,7 @@ CLASS lcl_gui_page_main IMPLEMENTATION. 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 ) ). @@ -20976,10 +21058,9 @@ CLASS lcl_gui_page_main IMPLEMENTATION. iv_zip = abap_false ). WHEN 'abapgit_installation'. abapgit_installation( ). + rv_state = gc_event_state-re_render. WHEN 'packagezip'. package_zip( ). - WHEN OTHERS. - _raise 'Unknown action'. ENDCASE. ENDMETHOD. @@ -21045,7 +21126,7 @@ CLASS lcl_gui_page_main IMPLEMENTATION. CREATE OBJECT go_user. ro_html->add( header( io_include_style = styles( ) ) ). - ro_html->add( title( iv_page_title = 'MAIN' io_menu = build_main_menu( ) ) ). + ro_html->add( title( iv_page_title = 'HOME' io_menu = build_main_menu( ) ) ). TRY. lt_repos = lcl_repo_srv=>list( ). @@ -21075,90 +21156,7 @@ CLASS lcl_gui_page_main IMPLEMENTATION. DATA ls_image TYPE ty_web_asset. - super->lif_gui_page~get_assets( ). - - ls_image-url = 'img/logo'. - ls_image-content = - 'iVBORw0KGgoAAAANSUhEUgAAAKMAAAAoCAYAAACSG0qbAAAABHNCSVQICAgIfAhkiAAA' - && 'AAlwSFlzAAAEJQAABCUBprHeCQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9y' - && 'Z5vuPBoAAA8VSURBVHic7Zx7cJzVeYef31nJAtvYko1JjM3FYHlXimwZkLWyLEMcwIGQ' - && 'cEkDJWmTltLStGkoDCkzwBAuCemUlksDNCkhJTTTljJpZhIuBQxxAWPvyuYiW7UkG8Il' - && 'UByIsS1sLEu75+0fu5JXu9/etAJz0TOzM/rOec85765+37m+3yczY8w0NU3qrwv9npfa' - && 'Hfx02pPPd469sgk+7misYnyjpWXy5IOG7kd8ZjjNjEtr13TdOm7eTfCxwo2lUJAQASRu' - && '2dnRfMn4uDbBx42yxZhPiMNMCHKCsVK2GGuqqqoQUwrZTAhygrFQshjfaGmZ/M7yxQtm' - && 'xGL9/qDqzwLxQvYTgpygXEoS4/DQ7LE1O05atLBu1YZdE4KcYLwpupoOmCO+5Z2dXPfE' - && 'xk07Tm2ZroGhBwX1wAygKqiOiVX2Rw9Jam/gyH0wuGGzvTEudRYSY4HFyogghxN2n7Sw' - && 'IendvcCioLoOtCCXNeqohOf0oDwPq9f3Wt/77dOHlWhYzUj/BRybTnrGEnZO5wv2m0rq' - && 'DezJoOiqeZbzegzpk6TVPPWJTT39y5svMogF1ZcesjlQgkwYp4F+EJQXwv4E+MiLUZJa' - && 'F7AIcRq4hWZ2mMRhQD/oZcErXv7FScaja3rt/wpU9E/sFyLACQq57wB/XIl/gWIstn2T' - && 'xpHVre7ZW71p8sFDeQscSEHKu3pTBadNH2Lq61VT57iwNazLgaNSqYaUaWXLDZCJIbBo' - && 'g3tK2A2xHns0oMrm3CRrqdTPnAVMiUIEmLlz2XGLMxNmH7YrifFcoUIHalHj8f8p6UfA' - && 'O+932weStno1zghps6Q7GBFiUYRxopkeaZ2vIwLyfxtQ4vV8lbWHNScacf+T/vwqn90o' - && 'MZYhRADJ+bv725vmj6Q8tHWffPKUD6IgO/tsfawneRHYd97Pdg8kSyJaZiGtBY4pYPYO' - && 'kH84C0Cyv8tKSiK7OZ99EpYAJ2V8AhkRY5lCHGaxhaq+BLCzY/EXd5y0aOG0td1vf1AF' - && 'CWCw7/1u80DQEtahQvcB03MyjQfM7Hwnmxfv9dPivX5SssqOwuzPSqk71mN3ymw5ZtdK' - && 'dmVIdly8xx7JZ29yy0qptwrGLMRRCA6T1w93nLTo5Lq13Zv625tOMRd6DLF4v0lWmQO8' - && 'qPko45y7TWaHZyUnwa6M99mN2fYbuu1V4K5oxF1B4Z4UgFifrQHWFLNbvkh1QheV5DNN' - && 'TZMqFWIGs5zX48M95PTqGa3TZ4erzbvj8/WUErf0L2++uNyGJLn2Js1oDeuYlkbNbmlR' - && 'deXup2hq0qS2es2VlHMDFaOlRdXL5uuwlnodG23QTEljCkbJV3d7WHOK+dXWqHqZnZeb' - && 'Y1fGe3OFOArRU5GTGbSHNWdwUL8Epo1qIQ9V/bXu3HES4jCznNfjb7e1zZ8Ri/UD1MLz' - && 'u05s/huMx4IKGNy4+8Tj/2Pqk8++Vaji86TQqxEuNNM5rWGtSCaokSDkgd0QjbidoPvN' - && '+5s7t9jz5TgdbdBMvLsG2cop6FgLUdUaZk804jYKuyrWa6vzlT2+XrOqQnxd6KwQOj5R' - && 'hULpL9Yaxkcj7g3QT6zK397ZbdtGtbtAZ+B0U3adkt0c67E7OyI6fFDuSpktC6HGpJjU' - && 'GmZ3NOI2mdnVnX32eHZZ7903hGXfBG8mp3J7sd/B0DPCTgUmBf9O7lmMybk56or3Jn8f' - && 'oLVB7Q5dZ9Iy4OBsw2jYbUUk96fwQrzHf955iBZzsDA+aL9k1owZ20fNzaY/tfFXwK48' - && 'ldQkSZ5YqJXmZk15JaJfmOmfgdOAmgCzWrCvyum5aIO+Uor3AIbOx7QV2TeBMPu3vKYA' - && 'Sw091hbWt4PKRhu0oDqkmND1wAnk3vkOmAN2lRLa2hrWMVm5Tek2R3286YzWiK4eQltk' - && '9g1gMfsFMhVYKunR1obQddk+SXZqwLe8acMGe7fYb9HZk7wm3utrBmpsqiXsyClHMHK6' - && '0hLWoRjHBfmLbP9K3bPYjFPIFWLaQeZnlZ8H4JyFflrMwcK4wG63v3/ycZnXOzqalxE0' - && 'mU7x9rvvVv93oVZqBtzNGGeU7Jbp9pZGzS7ReiVQVyDfmXRda4PaA9p5mBLmWGmmSron' - && 'M0FytUGGgjPTAi8UIeVk9u1og5YOJ0QbNBOjIac+Y22JPgLQ1WV7Ol+w36xebYnhtGpj' - && 'FjBYTj3l4KY9/dx6My4d74pN/Ki/Y9HpSG5HR/Nyh/1DHtO9OM6dvWFDwbtWslOykt6U' - && 's5VWZbOFnQtsyMqvc56Ty3T7NeBhLGAfDZDpe5nX6V5uXpbZ43K2NGQ2V9glwLas/I62' - && 'hfrE8EWsJ3mFsGYs+OQqze+A1cBLgbmma4f/9AmOJGBe5vKVLYN1W6wnOWSHmdkVhexM' - && 'PG6yC0x2AbmjoQ3njdh4uwrSw1Htmq5bd3Y0I3FLpQ5n0GTSQ7s6Fva70RPYTPbi+Pz0' - && 'J7ryboRC+m5PnRfsJjVEAfp5bLNflTb52dKIBj36RWY5ZyX2WCLukvbX67ZYHFLHZtGw' - && '+1fD/jDL8qQljWpav9m6Uw3wKYzXgUNJTxsk+0Fssw0L6x+j4dCx6eF/BEtwDBkbx7Fe' - && '29gWCa0yrC2rvXXO26WZfrWG3V2kji8zWbm0QUev67GX5ZgZ8A0H121hXIIZNrxou9oW' - && '6m4b4m/z2aTP+fsAohF3PaNHROvssZ8ElRs5DnyPBAkovxDFF4oJESDeY9tJD4Ur5umg' - && 'PSFm1Uy23Zk2SaM7e43p5Y4uxUMzu2f4H56+tuZmff2gfTqHrGEy5DkW6Abo7LH7gfsB' - && '2uo1LQGzBmoYFSwg57vNcjqqo4F1JXh2S7Zfx83TZZNqdD6MXkQkU369jONgcmfxe83M' - && 'B7XQEdEhg1B0HzDk2ZHpy3vBqLPpMQhyi/f2AIA3WyPZG6KkeVpKiE925awEi7H6JRsA' - && 'cqJDfIi9oayfW8ZB5dY/TFeX7YlGQg+RmgJkcnSQfWyr9QP92enmGcgeNCvx67mXbGdb' - && 'xD1hjI5AklJ+ydgTUGz6iiZNXd09+gYGGIRlQgXn6wDesZYSRFsJOYES5QjSw7fqnu7q' - && 'Bqh7uqu7f3nzdw3uKFJszEIcpqVRs12SRuAYiTrJ1YXMzSGgS6iQnHmWyQWe70pySz/F' - && 'MZagMWnMlaiTuTqTTih7s7IIHm1T1ncVI37l3BAAA4McAYF7iAvG17uxExi1U6Igd9XN' - && 'Dj+UmZA8qPrf3MDQbeSPIN8Ldub0JzeWLcT2I3Swn8JFhr4VQnMze5uKnv0ugOHfUXa3' - && 'ZhySedkR0eGDuMtbw/rTZCI1pA9PF0yWf4e3MnJ7YKXm0pOr6H03QRIIZeYnUj1njhid' - && '8aaRscKX/VGWSRLsCjnK2rcdC3njGUsQ5PSdv92yqJaMk5WBoRMpJsSnNgZufBdCkmsN' - && '60FgRbllK8PNzOlttT/qpz2sOUnpeWGHvq9ewcyc28/7XQCru213NOL+l6wgZ0kXAjnD' - && 'cazP7gXuTdu41rCyxbgr3mt/P16+F6LgUVXtmq5bC237yNsNu5YtPBZgx4kLFznZ1XlM' - && 'BzB/1liECBAN801yhfiq0HflbKXz1ojZ4qCylSBsbm6q/93wX0n0Q1Ir6UzWYXaZyZaF' - && 'qqxeZn813n4ZlhPWJWXMo00P5OTDF5c0qmm8fRlPip6bFhHk6Ti3ddfy5i3OXBemJQE2' - && 'A5g/c/qaTasC8krC0KdzE+3qWG/y6thmW7Vui/UkQ7w51vqDaGnRZFInPdlshNQ2C8oJ' - && 'h0oqaefF++zmzh5bu7bbXrBxjp88bp5qgZzNdyfWD/9t+B+TO4GW8/p+R0SHcGBxLWEF' - && 'jiQlHeIXEaRIPZAVRMVCTDcQCUh8LfOyaqjgCcr+YpY7NRFa2VY/egsqtNtdw8ie5gjJ' - && 'oUTqicjofOYA2f/YgcR03s5MMBF4wlIa7rMr5mnUyru6xl0LZAeFvDG3l83DF5199muk' - && 'oJO1FUMoviSi8Nh9Kg+Ru7qvUvCqPO+cMZsxbPsM4HXW9KcrEyKApTa7s9BVSyLaF3Ik' - && 'SbLSQros18RyInkkV2u5q+6zLaS+aCT0oJl/QVI78IWcsvDos1vtLYCE551QKNuCKW63' - && '+157g36cMOYI9yWhC3K+j4KDEHKxC9+t0altDaFHwL/kvVZIBJw761/uM5/MTJlU7S/Z' - && 'N6hTBNlhZA0OPReNuGdM6nL4jR4G5ZnRusAtKmVHwg1Slcxe11nODZJKh1fJ6kwM3dQa' - && 'VgOw3omjkGuL9/o/L/vFTzs7mi8pQZBpIT4f9PxE2bRFQncY9pdjKDoExDH7ebzPbgFo' - && 'bQjdng48KBfvzZau77ORN61FI66PsW2N7ARiZnZTZ589BtAWCV1v5J1zF+JNVdui2CbL' - && 'OcJsq1ejD2lVgCDL4e14r58J0N6k+cmEu0HYIssdrbxgnaGeeG9yJEg32hC6GbOix81y' - && 'trTsWLtiixpgQNLZ4yVEgCT++xSP0H7C0N1ZadVAh6SR3kRm2WfJO0H/XqTuQcn+IlOI' - && 'AFjRVaZhus3g2az0WuA0wcIi5QP3DDNIIPtakBABYltts7AO4OEi9eTFYGCksSRzwM4L' - && 'ECKAM1gG9tVR5UP+RkqZN5s7a0yBnwUEOSDp7GlPPp83BH0srO+1PmQrDIIen9wOdnln' - && 'n31G5n9ZtDLL6ck2x3uTf6DUee8rASX6vNnyWI/dmZ0R77O7LNXLBkWy9CE7Pd6XvNih' - && 'QkEQeZHZl9PBFtsDstebtyWFwv0B4r32UrzXn+6xDtBdwIslNL0N+JnMvravxiraFO/s' - && 'tm0y+xzQlcfkddCNCe/vGfP7GQH6lzdfbHAjqSCBHZK+PN5CzESSlixgnhMLzXAeXp+3' - && 'hWfuM0sWL10abQv1CdtHixzvmtiYPhcvSFOTJk1NEPEQkWdPUry4oc96y2o3YJiWs5Wx' - && 'zbYq83THHHu9Y1N2kG45tDRqdsgzxxuznKPOGbsTsN2M7d6zfXhePJ5Ici1h6mUcAcw0' - && '8Zo5fp35NoqKxAjwTrRhZmLSpPY9ySmPzV27dm+lTn9cKSTGA+XT+03Jq+l8HBLv2Q7c' - && 'X9K+ygQTFGDcHhaaoGJyouDNV7JH+eGj4mF6gspoC+tzJt1ObsT4MDsF2zxs886+Ml5v' - && '/PogUvEwPUGFiE+SX4gAtQa1gkhV7onQR4oJMR5oxC6stDeghd7Dh6E+CPw/HL4vVO2f' - && 'cpUAAAAASUVORK5CYII='. - APPEND ls_image TO et_assets. + super->lif_gui_page~get_assets( IMPORTING et_assets = et_assets ). ls_image-url = 'img/toc'. ls_image-content = @@ -23375,7 +23373,6 @@ ENDCLASS. CLASS lcl_gui_page_db_display DEFINITION FINAL INHERITING FROM lcl_gui_page_super. PUBLIC SECTION. - METHODS lif_gui_page~on_event REDEFINITION. METHODS lif_gui_page~render REDEFINITION. METHODS: constructor @@ -23393,15 +23390,6 @@ CLASS lcl_gui_page_db_display IMPLEMENTATION. ms_key = is_key. ENDMETHOD. - METHOD lif_gui_page~on_event. - - CASE iv_action. - WHEN OTHERS. - _raise 'Unknown action'. - ENDCASE. - - ENDMETHOD. - METHOD lif_gui_page~render. DATA: lv_data TYPE lcl_persistence_db=>ty_content-data_str, @@ -23501,8 +23489,6 @@ CLASS lcl_gui_page_db_edit IMPLEMENTATION. COMMIT WORK. - lcl_gui=>get( )->back( ). - ENDMETHOD. METHOD lif_gui_page~on_event. @@ -23510,8 +23496,7 @@ CLASS lcl_gui_page_db_edit IMPLEMENTATION. CASE iv_action. WHEN 'post'. save( it_postdata ). - WHEN OTHERS. - _raise 'Unknown action'. + rv_state = gc_event_state-go_back. ENDCASE. ENDMETHOD. @@ -23587,8 +23572,6 @@ CLASS lcl_gui_page_db IMPLEMENTATION. COMMIT WORK. - lcl_gui=>get( )->render( ). - ENDMETHOD. METHOD delete_popup. @@ -23686,8 +23669,7 @@ CLASS lcl_gui_page_db IMPLEMENTATION. lcl_gui=>get( )->call_page( lo_edit ). WHEN 'delete'. delete( ls_key ). - WHEN OTHERS. - _raise 'Unknown action'. + rv_state = gc_event_state-re_render. ENDCASE. ENDMETHOD. @@ -23753,10 +23735,10 @@ CLASS lcl_gui_router IMPLEMENTATION. METHOD on_event. CASE iv_action. WHEN 'home'. - eo_page = get_home_page( ). - ev_result = c_new_page. + eo_page = get_home_page( ). + ev_state = gc_event_state-new_page. WHEN OTHERS. - ev_result = c_not_handled. + ev_state = gc_event_state-not_handled. ENDCASE. ENDMETHOD. " on_event