diff --git a/zabapgit.prog.abap b/zabapgit.prog.abap index 5b08e3359..f2a0fd137 100644 --- a/zabapgit.prog.abap +++ b/zabapgit.prog.abap @@ -3,7 +3,7 @@ REPORT zabapgit. * See http://www.abapgit.org CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT - gc_abap_version TYPE string VALUE 'v1.11.13'. "#EC NOTEXT + gc_abap_version TYPE string VALUE 'v1.11.14'. "#EC NOTEXT ******************************************************************************** * The MIT License (MIT) @@ -106,16 +106,16 @@ CONSTANTS: BEGIN OF gc_event_state, go_back_to_bookmark VALUE 6, END OF gc_event_state. -CONSTANTS: BEGIN OF html_opt, +CONSTANTS: BEGIN OF gc_html_opt, emphas TYPE c VALUE 'E', cancel TYPE c VALUE 'C', - END OF html_opt. + END OF gc_html_opt. -CONSTANTS: BEGIN OF action_type, +CONSTANTS: BEGIN OF gc_action_type, sapevent TYPE c VALUE 'E', url TYPE c VALUE 'U', onclick TYPE c VALUE 'C', - END OF action_type. + END OF gc_action_type. CONSTANTS: gc_newline TYPE abap_char1 VALUE cl_abap_char_utilities=>newline. @@ -123,8 +123,8 @@ CONSTANTS: gc_english TYPE spras VALUE 'E'. CONSTANTS: gc_abapgit_homepage TYPE string VALUE 'http://www.abapgit.org'. -CONSTANTS: c_root_dir TYPE string VALUE '/', - c_dot_abapgit TYPE string VALUE '.abapgit.xml'. +CONSTANTS: gc_root_dir TYPE string VALUE '/', + gc_dot_abapgit TYPE string VALUE '.abapgit.xml'. DEFINE _raise. RAISE EXCEPTION TYPE lcx_exception @@ -320,7 +320,7 @@ CLASS lcl_html_helper DEFINITION FINAL. METHODS add_anchor IMPORTING iv_txt TYPE string iv_act TYPE string iv_opt TYPE char1 OPTIONAL - iv_typ TYPE char1 DEFAULT action_type-sapevent + iv_typ TYPE char1 DEFAULT gc_action_type-sapevent iv_class TYPE string OPTIONAL. PRIVATE SECTION. @@ -419,10 +419,10 @@ CLASS lcl_html_helper IMPLEMENTATION. lv_class = iv_class. - IF iv_opt = html_opt-emphas. + IF iv_opt = gc_html_opt-emphas. lv_class = lv_class && ' emphasis' ##NO_TEXT. ENDIF. - IF iv_opt = html_opt-cancel. + IF iv_opt = gc_html_opt-cancel. lv_class = lv_class && ' attention' ##NO_TEXT. ENDIF. IF lv_class IS NOT INITIAL. @@ -432,11 +432,11 @@ CLASS lcl_html_helper IMPLEMENTATION. IF iv_act IS NOT INITIAL. CASE iv_typ. - WHEN action_type-url. + WHEN gc_action_type-url. lv_href = | href="{ iv_act }"|. - WHEN action_type-sapevent. + WHEN gc_action_type-sapevent. lv_href = | href="sapevent:{ iv_act }"|. - WHEN action_type-onclick. + WHEN gc_action_type-onclick. lv_href = | onclick="{ iv_act }"|. WHEN OTHERS. ENDCASE. @@ -457,7 +457,7 @@ CLASS lcl_html_toolbar DEFINITION FINAL. 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. + iv_typ TYPE c DEFAULT gc_action_type-sapevent. METHODS render IMPORTING iv_as_droplist_with_label TYPE string OPTIONAL iv_no_separator TYPE abap_bool OPTIONAL @@ -539,17 +539,19 @@ CLASS lcl_html_toolbar IMPLEMENTATION. IF -sub IS INITIAL. CLEAR lv_class. IF iv_no_separator = abap_true - OR lv_last = abap_true AND iv_as_droplist_with_label IS INITIAL. + OR lv_last = abap_true + AND iv_as_droplist_with_label IS INITIAL. lv_class = 'menu_end'. ENDIF. - ro_html->add_anchor( iv_txt = -txt - iv_act = -act - iv_opt = -opt - iv_typ = -typ - iv_class = lv_class ). + ro_html->add_anchor( iv_txt = -txt + iv_act = -act + iv_opt = -opt + iv_typ = -typ + iv_class = lv_class ). ELSE. - ro_html->add( -sub->render( iv_as_droplist_with_label = -txt - iv_no_separator = lv_last ) ). + ro_html->add( -sub->render( + iv_as_droplist_with_label = -txt + iv_no_separator = lv_last ) ). ENDIF. ENDLOOP. @@ -2741,7 +2743,7 @@ CLASS lcl_diff IMPLEMENTATION. DEFINE _add_regex. CREATE OBJECT lo_regex EXPORTING pattern = &1 - ignore_case = abap_true. + ignore_case = abap_true ##NO_TEXT. APPEND lo_regex TO lt_regex_set. END-OF-DEFINITION. @@ -13225,59 +13227,59 @@ CLASS lcl_object_shi3 IMPLEMENTATION. METHOD strip_stamps. - FIELD-SYMBOLS LIKE LINE OF ct_nodes. + FIELD-SYMBOLS LIKE LINE OF ct_nodes. CLEAR: cs_head-luser, cs_head-ldate, cs_head-ltime. CLEAR: cs_head-fuser, cs_head-fdate, cs_head-ftime. CLEAR: cs_head-responsibl. - LOOP AT ct_nodes ASSIGNING . - CLEAR: -luser, -ldate, -ltime. - CLEAR: -fuser, -fdate, -ftime. + LOOP AT ct_nodes ASSIGNING . + CLEAR: -luser, -ldate, -ltime. + CLEAR: -fuser, -fdate, -ftime. ENDLOOP. ENDMETHOD. "strip_stamps METHOD regenerate_ids. - DATA: l_uid TYPE sys_uid, + DATA: ls_uid TYPE sys_uid, lt_map TYPE tt_id_map. - FIELD-SYMBOLS: LIKE LINE OF ct_nodes, - LIKE LINE OF ct_refs, - LIKE LINE OF ct_texts, - LIKE LINE OF mt_map. + FIELD-SYMBOLS: LIKE LINE OF ct_nodes, + LIKE LINE OF ct_refs, + LIKE LINE OF ct_texts, + LIKE LINE OF mt_map. "Build map - LOOP AT ct_nodes ASSIGNING . - APPEND INITIAL LINE TO lt_map ASSIGNING . - IF -parent_id IS INITIAL. - -old = -node_id. - -new = -node_id. "Root node + LOOP AT ct_nodes ASSIGNING . + APPEND INITIAL LINE TO lt_map ASSIGNING . + IF -parent_id IS INITIAL. + -old = -node_id. + -new = -node_id. "Root node ELSE. CALL FUNCTION 'STREE_GET_UNIQUE_ID' IMPORTING - unique_id = l_uid. + unique_id = ls_uid. - -old = -node_id. - -new = l_uid-id. + -old = -node_id. + -new = ls_uid-id. ENDIF. - -node_id = -new. "Replace id + -node_id = -new. "Replace id ENDLOOP. mt_map = lt_map. "Sort - LOOP AT ct_nodes ASSIGNING . - -parent_id = replace_id( -parent_id ). - -brother_id = replace_id( -brother_id ). + LOOP AT ct_nodes ASSIGNING . + -parent_id = replace_id( -parent_id ). + -brother_id = replace_id( -brother_id ). ENDLOOP. - LOOP AT ct_refs ASSIGNING . - -node_id = replace_id( -node_id ). + LOOP AT ct_refs ASSIGNING . + -node_id = replace_id( -node_id ). ENDLOOP. - LOOP AT ct_texts ASSIGNING . - -node_id = replace_id( -node_id ). + LOOP AT ct_texts ASSIGNING . + -node_id = replace_id( -node_id ). ENDLOOP. ENDMETHOD. "regenerate_ids @@ -13528,13 +13530,13 @@ CLASS lcl_html_action_utils DEFINITION FINAL. CLASS-METHODS file_encode IMPORTING iv_key TYPE lcl_persistence_repo=>ty_repo-key - is_file TYPE any "ty_repo_file + ig_file TYPE any "ty_repo_file RETURNING VALUE(rv_string) TYPE string. CLASS-METHODS file_decode IMPORTING iv_string TYPE clike EXPORTING ev_key TYPE lcl_persistence_repo=>ty_repo-key - es_file TYPE any "ty_repo_file + eg_file TYPE any "ty_repo_file RAISING lcx_exception. CLASS-METHODS dbkey_encode @@ -13614,22 +13616,22 @@ CLASS lcl_html_action_utils IMPLEMENTATION. DATA: lt_fields TYPE tihttpnvp, ls_field LIKE LINE OF lt_fields. - FIELD-SYMBOLS TYPE string. + FIELD-SYMBOLS TYPE string. ls_field-name = 'KEY'. ls_field-value = iv_key. APPEND ls_field TO lt_fields. ls_field-name = 'PATH'. - ASSIGN COMPONENT ls_field-name OF STRUCTURE is_file TO . - ASSERT IS ASSIGNED. - ls_field-value = . + ASSIGN COMPONENT ls_field-name OF STRUCTURE ig_file TO . + ASSERT IS ASSIGNED. + ls_field-value = . APPEND ls_field TO lt_fields. ls_field-name = 'FILENAME'. - ASSIGN COMPONENT ls_field-name OF STRUCTURE is_file TO . - ASSERT IS ASSIGNED. - ls_field-value = . + ASSIGN COMPONENT ls_field-name OF STRUCTURE ig_file TO . + ASSERT IS ASSIGNED. + ls_field-value = . APPEND ls_field TO lt_fields. rv_string = cl_http_utility=>if_http_utility~fields_to_string( lt_fields ). @@ -13642,9 +13644,9 @@ CLASS lcl_html_action_utils IMPLEMENTATION. lv_string TYPE string. FIELD-SYMBOLS: LIKE LINE OF lt_fields, - TYPE string. + TYPE string. - CLEAR: ev_key, es_file. + CLEAR: ev_key, eg_file. lv_string = iv_string. " type conversion lt_fields = cl_http_utility=>if_http_utility~string_to_fields( lv_string ). @@ -13655,16 +13657,16 @@ CLASS lcl_html_action_utils IMPLEMENTATION. READ TABLE lt_fields ASSIGNING WITH KEY name = 'PATH'. IF sy-subrc = 0. - ASSIGN COMPONENT 'PATH' OF STRUCTURE es_file TO . - ASSERT IS ASSIGNED. - = -value. + ASSIGN COMPONENT 'PATH' OF STRUCTURE eg_file TO . + ASSERT IS ASSIGNED. + = -value. ENDIF. READ TABLE lt_fields ASSIGNING WITH KEY name = 'FILENAME'. IF sy-subrc = 0. - ASSIGN COMPONENT 'FILENAME' OF STRUCTURE es_file TO . - ASSERT IS ASSIGNED. - = -value. + ASSIGN COMPONENT 'FILENAME' OF STRUCTURE eg_file TO . + ASSERT IS ASSIGNED. + = -value. ENDIF. ENDMETHOD. "file_decode @@ -14535,7 +14537,7 @@ CLASS lcl_sap_package IMPLEMENTATION. SELECT devclass INTO TABLE rt_list - FROM tdevc WHERE parentcl = iv_package. + FROM tdevc WHERE parentcl = iv_package. "#EC CI_GENBUFF * note the recursion, since packages are added to the list LOOP AT rt_list INTO lv_devclass. @@ -16834,6 +16836,18 @@ CLASS lcl_gui_router DEFINITION FINAL. IMPORTING iv_key TYPE lcl_persistence_repo=>ty_repo-key RAISING lcx_exception. + METHODS change_branch + IMPORTING iv_key TYPE lcl_persistence_repo=>ty_repo-key + RAISING lcx_exception. + + METHODS reset + IMPORTING iv_key TYPE lcl_persistence_repo=>ty_repo-key + RAISING lcx_exception. + + METHODS create_branch + IMPORTING iv_key TYPE lcl_persistence_repo=>ty_repo-key + RAISING lcx_exception. + METHODS db_delete IMPORTING iv_getdata TYPE clike RAISING lcx_exception. @@ -17308,8 +17322,8 @@ CLASS lcl_repo IMPLEMENTATION. READ TABLE mt_remote ASSIGNING - WITH KEY path = c_root_dir - filename = c_dot_abapgit. + WITH KEY path = gc_root_dir + filename = gc_dot_abapgit. IF sy-subrc = 0. mo_dot_abapgit = lcl_dot_abapgit=>deserialize( -data ). ENDIF. @@ -17413,8 +17427,8 @@ CLASS lcl_repo IMPLEMENTATION. mo_dot_abapgit = lcl_dot_abapgit=>build_default( ms_data-master_language ). ENDIF. APPEND INITIAL LINE TO rt_files ASSIGNING . - -file-path = c_root_dir. - -file-filename = c_dot_abapgit. + -file-path = gc_root_dir. + -file-filename = gc_dot_abapgit. -file-data = mo_dot_abapgit->serialize( ). lt_tadir = lcl_tadir=>read( get_package( ) ). @@ -17787,8 +17801,8 @@ ENDCLASS. CLASS ltcl_login_manager DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL. PRIVATE SECTION. - CONSTANTS: c_username TYPE string VALUE 'Aladdin', - c_password TYPE string VALUE 'OpenSesame'. + CONSTANTS: c_username TYPE string VALUE 'Aladdin' ##NO_TEXT, + c_password TYPE string VALUE 'OpenSesame' ##NO_TEXT. METHODS: setup, @@ -17871,7 +17885,8 @@ CLASS lcl_login_manager IMPLEMENTATION. rv_auth = cl_http_utility=>if_http_utility~encode_base64( lv_concat ). - CONCATENATE 'Basic' rv_auth INTO rv_auth SEPARATED BY space. + CONCATENATE 'Basic' rv_auth INTO rv_auth + SEPARATED BY space ##NO_TEXT. append( iv_uri = iv_uri iv_auth = rv_auth ). @@ -19370,7 +19385,7 @@ CLASS lcl_gui IMPLEMENTATION. METHOD back. DATA: lv_index TYPE i, - ls_stack TYPE ty_page_stack. + ls_stack LIKE LINE OF mt_stack. lv_index = lines( mt_stack ). @@ -20325,21 +20340,22 @@ CLASS lcl_stage IMPLEMENTATION. METHOD update_and_add_dot_abapgit. - FIELD-SYMBOLS LIKE LINE OF mt_workarea. + FIELD-SYMBOLS LIKE LINE OF mt_workarea. - READ TABLE mt_workarea ASSIGNING - WITH KEY file-path = c_root_dir - file-filename = c_dot_abapgit. + READ TABLE mt_workarea ASSIGNING + WITH KEY file-path = gc_root_dir + file-filename = gc_dot_abapgit. IF sy-subrc <> 0. - APPEND INITIAL LINE TO mt_workarea ASSIGNING . - -type = c_wftype-local. - -file-path = c_root_dir. - -file-filename = c_dot_abapgit. + APPEND INITIAL LINE TO mt_workarea ASSIGNING . + -type = c_wftype-local. + -file-path = gc_root_dir. + -file-filename = gc_dot_abapgit. ENDIF. - -file-data = iv_data. + -file-data = iv_data. - add( iv_path = c_root_dir iv_filename = c_dot_abapgit ). + add( iv_path = gc_root_dir + iv_filename = gc_dot_abapgit ). ENDMETHOD. "update_and_add_dot_abapgit @@ -20481,14 +20497,17 @@ CLASS lcl_gui_page_background IMPLEMENTATION. ro_html->add( 'Automatic pull
' ). ro_html->add( '
' ). - ro_html->add( 'Authentication, optional(password will be saved in clear text)
' ). + ro_html->add( 'Authentication, optional
' ). + ro_html->add( '(password will be saved in clear text)
' ). ro_html->add( '' ). ro_html->add( '' ). - ro_html->add( '' ). ro_html->add( '' ). ro_html->add( '' ). - ro_html->add( '' ). ro_html->add( '' ). ro_html->add( '
Username:
Password:
' ). @@ -20658,12 +20677,12 @@ CLASS lcl_gui_page_commit IMPLEMENTATION. lo_toolbar->add( iv_act = 'submitCommit();' iv_txt = 'Commit' - iv_typ = action_type-onclick - iv_opt = html_opt-emphas ). + iv_typ = gc_action_type-onclick + iv_opt = gc_html_opt-emphas ). lo_toolbar->add( iv_act = 'commit_cancel' iv_txt = 'Cancel' - iv_opt = html_opt-cancel ). + iv_opt = gc_html_opt-cancel ). ro_html->add( '
' ). ro_html->add( lo_toolbar->render( ) ). @@ -20843,7 +20862,7 @@ CLASS lcl_gui_page_stage IMPLEMENTATION. lv_method = mo_stage->lookup( iv_path = -file-path iv_filename = -file-filename ). lv_param = lcl_html_action_utils=>file_encode( iv_key = mo_repo->get_key( ) - is_file = -file ). + ig_file = -file ). lo_toolbar->reset( ). " Build line actions IF -type = lcl_stage=>c_wftype-local. @@ -20912,7 +20931,7 @@ CLASS lcl_gui_page_stage IMPLEMENTATION. IF mo_stage->count( ) > 0. lo_toolbar->add( iv_act = |stage_commit?{ lv_action }| iv_txt = 'Commit' - iv_opt = html_opt-emphas ). + iv_opt = gc_html_opt-emphas ). ELSEIF mo_stage->mv_local_cnt > 0. lo_toolbar->add( iv_act = |stage_all?{ lv_action }| iv_txt = 'Add all and commit'). @@ -21119,6 +21138,7 @@ CLASS lcl_gui_page_main IMPLEMENTATION. DATA: lo_toolbar TYPE REF TO lcl_html_toolbar, lv_key TYPE lcl_persistence_db=>ty_value, + lo_sub TYPE REF TO lcl_html_toolbar, lo_repo_online TYPE REF TO lcl_repo_online. @@ -21134,33 +21154,45 @@ CLASS lcl_gui_page_main IMPLEMENTATION. IF io_repo->is_offline( ) = abap_true. lo_toolbar->add( iv_txt = 'Import ZIP' iv_act = |zipimport?{ lv_key }| - iv_opt = html_opt-emphas ). + iv_opt = gc_html_opt-emphas ). lo_toolbar->add( iv_txt = 'Export ZIP' iv_act = |zipexport?{ lv_key }| - iv_opt = html_opt-emphas ). + iv_opt = gc_html_opt-emphas ). lo_toolbar->add( iv_txt = 'Export&Commit' iv_act = |files_commit?{ lv_key }| - iv_opt = html_opt-emphas ). + iv_opt = gc_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 ). + iv_opt = gc_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 ). + iv_opt = gc_html_opt-emphas ). ENDIF. - CATCH lcx_exception. - " authorization error or repository does not exist + CATCH lcx_exception ##NO_HANDLER. +* authorization error or repository does not exist +* ignore error ENDTRY. ENDIF. - lo_toolbar->add( iv_txt = 'Remove' - iv_act = |remove?{ lv_key }| ). - lo_toolbar->add( iv_txt = 'Uninstall' - iv_act = |uninstall?{ lv_key }| ). + + CREATE OBJECT lo_sub. + lo_sub->add( iv_txt = 'Remove' + iv_act = |remove?{ lv_key }| ). + lo_sub->add( iv_txt = 'Uninstall' + iv_act = |uninstall?{ lv_key }| ). + lo_sub->add( iv_txt = 'Change branch' + iv_act = |change_branch?{ lv_key }| ). + lo_sub->add( iv_txt = 'Reset' + iv_act = |reset?{ lv_key }| ). + lo_sub->add( iv_txt = 'Create branch' + iv_act = |create_branch?{ lv_key }| ). + lo_toolbar->add( iv_txt = 'Advanced' + io_sub = lo_sub ). + lo_toolbar->add( iv_txt = 'Refresh' iv_act = |refresh?{ lv_key }| ). lo_toolbar->add( iv_txt = 'Hide' @@ -21372,9 +21404,12 @@ CLASS lcl_gui_page_main IMPLEMENTATION. ELSE. LOOP AT is_item-files INTO ls_file. IF ls_file-is_changed = abap_true. - lv_difflink = lcl_html_action_utils=>file_encode( iv_key = io_repo->get_key( ) - is_file = ls_file ). - ro_html->add_anchor( iv_txt = 'diff' iv_act = |diff?{ lv_difflink }| ). + lv_difflink = lcl_html_action_utils=>file_encode( + iv_key = io_repo->get_key( ) + ig_file = ls_file ). + ro_html->add_anchor( + iv_txt = 'diff' + iv_act = |diff?{ lv_difflink }| ). ELSE. ro_html->add( | | ). ENDIF. @@ -23928,8 +23963,8 @@ CLASS lcl_gui_page_db_edit IMPLEMENTATION. " Menu lo_toolbar->add( iv_act = 'submitDBForm();' iv_txt = 'Save' - iv_typ = action_type-onclick - iv_opt = html_opt-emphas ). + iv_typ = gc_action_type-onclick + iv_opt = gc_html_opt-emphas ). ro_html->add( '
' ). ro_html->add( lo_toolbar->render( ) ). @@ -24191,6 +24226,18 @@ CLASS lcl_gui_router IMPLEMENTATION. lv_key = iv_getdata. ei_page = get_page_stage( lv_key ). ev_state = gc_event_state-new_page_w_bookmark. + WHEN 'change_branch'. + lv_key = iv_getdata. + change_branch( lv_key ). + ev_state = gc_event_state-re_render. + WHEN 'reset'. + lv_key = iv_getdata. + reset( lv_key ). + ev_state = gc_event_state-re_render. + WHEN 'create_branch'. + lv_key = iv_getdata. + create_branch( lv_key ). + ev_state = gc_event_state-re_render. " Stage WHEN 'stage_commit'. @@ -24267,7 +24314,7 @@ CLASS lcl_gui_router IMPLEMENTATION. lcl_html_action_utils=>file_decode( EXPORTING iv_string = iv_getdata IMPORTING ev_key = lv_key - es_file = ls_file ). + eg_file = ls_file ). lo_repo ?= lcl_app=>repo_srv( )->get( lv_key ). lt_remote = lo_repo->get_files_remote( ). @@ -24625,6 +24672,48 @@ CLASS lcl_gui_router IMPLEMENTATION. ENDMETHOD. "repo_package_zip + METHOD change_branch. + + DATA: lo_repo TYPE REF TO lcl_repo_online. + + lo_repo ?= lcl_app=>repo_srv( )->get( iv_key ). + + CALL FUNCTION 'POPUP_TO_INFORM' + EXPORTING + titel = 'todo' + txt1 = 'see https://github.com/larshp/abapGit/issues/265' + txt2 = '' ##NO_TEXT. + + ENDMETHOD. + + METHOD reset. + + DATA: lo_repo TYPE REF TO lcl_repo_online. + + lo_repo ?= lcl_app=>repo_srv( )->get( iv_key ). + + CALL FUNCTION 'POPUP_TO_INFORM' + EXPORTING + titel = 'todo' + txt1 = 'see https://github.com/larshp/abapGit/issues/264' + txt2 = '' ##NO_TEXT. + + ENDMETHOD. + + METHOD create_branch. + + DATA: lo_repo TYPE REF TO lcl_repo_online. + + lo_repo ?= lcl_app=>repo_srv( )->get( iv_key ). + + CALL FUNCTION 'POPUP_TO_INFORM' + EXPORTING + titel = 'todo' + txt1 = 'see https://github.com/larshp/abapGit/issues/266' + txt2 = '' ##NO_TEXT. + + ENDMETHOD. + METHOD repo_pull. DATA: lo_repo TYPE REF TO lcl_repo_online. @@ -24799,7 +24888,7 @@ CLASS lcl_gui_router IMPLEMENTATION. ELSE. lcl_html_action_utils=>file_decode( EXPORTING iv_string = iv_getdata IMPORTING ev_key = lv_key - es_file = ls_file ). + eg_file = ls_file ). ENDIF. lo_stage = lcl_app=>repo_srv( )->get_stage( lv_key ). @@ -24809,7 +24898,7 @@ CLASS lcl_gui_router IMPLEMENTATION. lo_stage->add( iv_path = ls_file-path iv_filename = ls_file-filename ). WHEN 'stage_all'. LOOP AT lo_stage->mt_workarea ASSIGNING - WHERE type = lcl_stage=>c_wftype-local. + WHERE type = lcl_stage=>c_wftype-local. lo_stage->add( iv_path = -file-path iv_filename = -file-filename ). ENDLOOP.