From 27743dbf34a14976103691d667c6dae10d9540bd Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Sun, 12 Nov 2023 08:36:31 +0100 Subject: [PATCH] flow page, bugfixes (#6627) --- package.json | 6 +- .../pages/zcl_abapgit_gui_page_flow.clas.abap | 63 ++++++++++++++++--- 2 files changed, 56 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index cad747b57..151da34e7 100644 --- a/package.json +++ b/package.json @@ -23,10 +23,10 @@ ] }, "devDependencies": { - "@abaplint/cli": "^2.102.70", + "@abaplint/cli": "^2.103.6", "@abaplint/database-sqlite": "^2.7.119", - "@abaplint/runtime": "^2.7.130", - "@abaplint/transpiler-cli": "^2.7.130", + "@abaplint/runtime": "^2.7.135", + "@abaplint/transpiler-cli": "^2.7.135", "abapmerge": "^0.16.0", "c8": "^8.0.1", "eslint": "^8.53.0" diff --git a/src/ui/pages/zcl_abapgit_gui_page_flow.clas.abap b/src/ui/pages/zcl_abapgit_gui_page_flow.clas.abap index a7333af53..621052fc2 100644 --- a/src/ui/pages/zcl_abapgit_gui_page_flow.clas.abap +++ b/src/ui/pages/zcl_abapgit_gui_page_flow.clas.abap @@ -31,6 +31,15 @@ CLASS zcl_abapgit_gui_page_flow DEFINITION END OF c_action . DATA mt_features TYPE ty_features . + METHODS refresh + RAISING + zcx_abapgit_exception . + METHODS set_branch + IMPORTING + !iv_branch TYPE string + !iv_key TYPE zif_abapgit_persistence=>ty_value + RAISING + zcx_abapgit_exception . METHODS render_table IMPORTING !iv_index TYPE i @@ -64,6 +73,22 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_FLOW IMPLEMENTATION. ENDMETHOD. + METHOD refresh. + + DATA ls_feature LIKE LINE OF mt_features. + DATA lo_online TYPE REF TO zcl_abapgit_repo_online. + + + LOOP AT mt_features INTO ls_feature. + lo_online ?= zcl_abapgit_repo_srv=>get_instance( )->get( ls_feature-repo-key ). + lo_online->refresh( ). + ENDLOOP. + + CLEAR mt_features. + + ENDMETHOD. + + METHOD render_table. DATA ls_path_name LIKE LINE OF is_feature-changed_files. @@ -109,20 +134,36 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_FLOW IMPLEMENTATION. iv_act = |{ c_action-pull }?index={ iv_index }&key={ is_feature-repo-key }| ) ). ri_html->add( ri_html->a( iv_txt = 'Stage' - iv_act = |{ c_action-stage }?index={ iv_index }&key={ is_feature-repo-key }| ) ). + iv_act = |{ c_action-stage }?index={ iv_index }&key={ is_feature-repo-key }&branch={ lv_branch }| ) ). ri_html->add( |
| ). ENDMETHOD. + METHOD set_branch. + + DATA lv_branch TYPE string. + DATA lo_online TYPE REF TO zcl_abapgit_repo_online. + + IF iv_branch IS NOT INITIAL. + lv_branch = 'refs/heads/' && iv_branch. + lo_online ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). + IF lo_online->get_selected_branch( ) <> lv_branch. + lo_online->select_branch( lv_branch ). + ENDIF. + ENDIF. + + ENDMETHOD. + + METHOD zif_abapgit_gui_event_handler~on_event. DATA lv_key TYPE zif_abapgit_persistence=>ty_value. DATA lv_branch TYPE string. - DATA lo_online TYPE REF TO zcl_abapgit_repo_online. DATA lo_filter TYPE REF TO lcl_filter. DATA lt_filter TYPE zif_abapgit_definitions=>ty_tadir_tt. DATA lv_index TYPE i. + DATA lo_online TYPE REF TO zcl_abapgit_repo_online. DATA ls_feature LIKE LINE OF mt_features. FIELD-SYMBOLS LIKE LINE OF ls_feature-changed_objects. @@ -131,21 +172,19 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_FLOW IMPLEMENTATION. CASE ii_event->mv_action. WHEN c_action-refresh. - CLEAR mt_features. + refresh( ). rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render. WHEN zif_abapgit_definitions=>c_action-go_file_diff. lv_key = ii_event->query( )->get( 'KEY' ). lv_branch = ii_event->query( )->get( 'EXTRA' ). - IF lv_branch IS NOT INITIAL. - lv_branch = 'refs/heads/' && lv_branch. - lo_online ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). - IF lo_online->get_selected_branch( ) <> lv_branch. - lo_online->select_branch( lv_branch ). - ENDIF. - ENDIF. + set_branch( + iv_branch = lv_branch + iv_key = lv_key ). +* calling the page is done by the global router WHEN c_action-stage. lv_key = ii_event->query( )->get( 'KEY' ). lv_index = ii_event->query( )->get( 'INDEX' ). + lv_branch = ii_event->query( )->get( 'BRANCH' ). lo_online ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). READ TABLE mt_features INTO ls_feature INDEX lv_index. @@ -158,6 +197,10 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_FLOW IMPLEMENTATION. ENDLOOP. CREATE OBJECT lo_filter EXPORTING it_filter = lt_filter. + set_branch( + iv_branch = lv_branch + iv_key = lv_key ). + rs_handled-page = zcl_abapgit_gui_page_stage=>create( io_repo = lo_online ii_obj_filter = lo_filter ).