From e74076c0bbaa21dde388c641199ac26f9d20de65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Mon, 10 Jan 2022 21:16:32 +0100 Subject: [PATCH] Repo View: 'Order by path' considers object name (#5261) + sort files Co-authored-by: Lars Hvam Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com> --- .../zcl_abapgit_gui_page_repo_view.clas.abap | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/ui/zcl_abapgit_gui_page_repo_view.clas.abap b/src/ui/zcl_abapgit_gui_page_repo_view.clas.abap index d56f12b63..33d5ecc9c 100644 --- a/src/ui/zcl_abapgit_gui_page_repo_view.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_repo_view.clas.abap @@ -174,6 +174,9 @@ CLASS zcl_abapgit_gui_page_repo_view DEFINITION VALUE(ri_html) TYPE REF TO zif_abapgit_html RAISING zcx_abapgit_exception. + METHODS order_files + CHANGING + ct_files TYPE zif_abapgit_definitions=>ty_repo_file_tt. ENDCLASS. @@ -233,6 +236,11 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION. INSERT ls_sort INTO TABLE lt_sort. ENDIF. + IF mv_order_by = 'PATH'. + ls_sort-name = 'OBJ_NAME'. + INSERT ls_sort INTO TABLE lt_sort. + ENDIF. + SORT lt_code_items STABLE BY (lt_sort). SORT lt_diff_items STABLE BY (lt_sort). @@ -240,6 +248,12 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION. INSERT LINES OF lt_diff_items INTO TABLE ct_repo_items. INSERT LINES OF lt_code_items INTO TABLE ct_repo_items. + IF mv_order_by = 'PATH'. + LOOP AT ct_repo_items ASSIGNING . + order_files( CHANGING ct_files = -files ). + ENDLOOP. + ENDIF. + ENDMETHOD. @@ -1319,4 +1333,29 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION. INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions. ENDMETHOD. + + METHOD order_files. + + DATA: + lt_sort TYPE abap_sortorder_tab, + ls_sort LIKE LINE OF lt_sort. + + IF lines( ct_files ) = 0. + RETURN. + ENDIF. + + ls_sort-descending = mv_order_descending. + ls_sort-astext = abap_true. + ls_sort-name = 'PATH'. + INSERT ls_sort INTO TABLE lt_sort. + + ls_sort-descending = mv_order_descending. + ls_sort-astext = abap_true. + ls_sort-name = 'FILENAME'. + INSERT ls_sort INTO TABLE lt_sort. + + SORT ct_files STABLE BY (lt_sort). + + ENDMETHOD. + ENDCLASS.