Add "Last changed by" to repo page (#4920)

* Add "Last changed by" to repo page

Proposition for #3267

* Add "Last changed by" to repo page

For #3267
- add "Changed by" also for local items

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Jacek W 2021-08-30 07:26:02 +02:00 committed by GitHub
parent de8b3e4fb2
commit 5f6b5a73c8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 71 additions and 34 deletions

View File

@ -53,7 +53,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_REPO_CONTENT_LIST IMPLEMENTATION. CLASS zcl_abapgit_repo_content_list IMPLEMENTATION.
METHOD build_folders. METHOD build_folders.
@ -132,6 +132,12 @@ CLASS ZCL_ABAPGIT_REPO_CONTENT_LIST IMPLEMENTATION.
ELSE. ELSE.
<ls_repo_item>-sortkey = c_sortkey-default. " Default sort key <ls_repo_item>-sortkey = c_sortkey-default. " Default sort key
ENDIF. ENDIF.
IF <ls_repo_item>-obj_type IS NOT INITIAL.
MOVE-CORRESPONDING <ls_repo_item> TO ls_item.
<ls_repo_item>-changed_by = zcl_abapgit_objects=>changed_by( ls_item ).
CLEAR ls_item.
ENDIF.
ENDLOOP. ENDLOOP.
ENDMETHOD. ENDMETHOD.
@ -141,7 +147,8 @@ CLASS ZCL_ABAPGIT_REPO_CONTENT_LIST IMPLEMENTATION.
DATA: DATA:
ls_file TYPE zif_abapgit_definitions=>ty_repo_file, ls_file TYPE zif_abapgit_definitions=>ty_repo_file,
lt_status TYPE zif_abapgit_definitions=>ty_results_tt. lt_status TYPE zif_abapgit_definitions=>ty_results_tt,
ls_item TYPE zif_abapgit_definitions=>ty_item.
FIELD-SYMBOLS: <ls_status> LIKE LINE OF lt_status, FIELD-SYMBOLS: <ls_status> LIKE LINE OF lt_status,
<ls_repo_item> LIKE LINE OF rt_repo_items. <ls_repo_item> LIKE LINE OF rt_repo_items.
@ -184,6 +191,12 @@ CLASS ZCL_ABAPGIT_REPO_CONTENT_LIST IMPLEMENTATION.
ENDIF. ENDIF.
ENDIF. ENDIF.
IF <ls_repo_item>-changes > 0 AND <ls_repo_item>-obj_type IS NOT INITIAL.
MOVE-CORRESPONDING <ls_repo_item> TO ls_item.
<ls_repo_item>-changed_by = zcl_abapgit_objects=>changed_by( ls_item ).
CLEAR ls_item.
ENDIF.
AT END OF obj_name. "obj_type + obj_name AT END OF obj_name. "obj_type + obj_name
IF <ls_repo_item>-obj_type IS INITIAL. IF <ls_repo_item>-obj_type IS INITIAL.
<ls_repo_item>-sortkey = c_sortkey-orphan. "Virtual objects <ls_repo_item>-sortkey = c_sortkey-orphan. "Virtual objects

View File

@ -5,7 +5,6 @@ CLASS zcl_abapgit_gui_page_repo_view DEFINITION
CREATE PUBLIC . CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
INTERFACES zif_abapgit_gui_hotkeys . INTERFACES zif_abapgit_gui_hotkeys .
CONSTANTS: CONSTANTS:
@ -177,11 +176,19 @@ CLASS zcl_abapgit_gui_page_repo_view DEFINITION
METHODS get_abapgit_tcode METHODS get_abapgit_tcode
RETURNING RETURNING
VALUE(rv_tcode) TYPE tcode . VALUE(rv_tcode) TYPE tcode .
METHODS render_item_changed_by
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_repo_item
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception.
ENDCLASS. ENDCLASS.
CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_VIEW IMPLEMENTATION. CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
METHOD apply_order_by. METHOD apply_order_by.
@ -553,8 +560,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_VIEW IMPLEMENTATION.
iv_chk = mv_diff_first iv_chk = mv_diff_first
iv_act = c_actions-toggle_diff_first ). iv_act = c_actions-toggle_diff_first ).
IF mo_repo->has_remote_source( ) = abap_true.
ro_toolbar->add( ro_toolbar->add(
iv_txt = 'Changes Only' iv_txt = 'Changes Only'
iv_chk = mv_changes_only iv_chk = mv_changes_only
@ -565,8 +570,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_VIEW IMPLEMENTATION.
iv_chk = boolc( NOT mv_hide_files = abap_true ) iv_chk = boolc( NOT mv_hide_files = abap_true )
iv_act = c_actions-toggle_hide_files ). iv_act = c_actions-toggle_hide_files ).
ENDIF.
ro_toolbar->add( ro_toolbar->add(
iv_txt = 'Folders' iv_txt = 'Folders'
iv_chk = mv_show_folders iv_chk = mv_show_folders
@ -953,6 +956,10 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_VIEW IMPLEMENTATION.
ri_html->add( render_item_files( is_item ) ). ri_html->add( render_item_files( is_item ) ).
ri_html->add( '</td>' ). ri_html->add( '</td>' ).
ri_html->add( '<td class="user">' ).
ri_html->add( render_item_changed_by( is_item ) ).
ri_html->add( '</td>' ).
" Command " Command
ri_html->add( '<td class="cmd">' ). ri_html->add( '<td class="cmd">' ).
IF mo_repo->has_remote_source( ) = abap_true. IF mo_repo->has_remote_source( ) = abap_true.
@ -1095,6 +1102,11 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_VIEW IMPLEMENTATION.
ls_col_spec-allow_order_by = abap_true. ls_col_spec-allow_order_by = abap_true.
APPEND ls_col_spec TO lt_col_spec. APPEND ls_col_spec TO lt_col_spec.
ls_col_spec-tech_name = 'CHANGED_BY'.
ls_col_spec-display_name = 'Changed by'.
ls_col_spec-allow_order_by = abap_true.
APPEND ls_col_spec TO lt_col_spec.
ls_col_spec-tech_name = 'LSTATE'. ls_col_spec-tech_name = 'LSTATE'.
ls_col_spec-display_name = 'Status'. ls_col_spec-display_name = 'Status'.
ls_col_spec-allow_order_by = abap_true. ls_col_spec-allow_order_by = abap_true.
@ -1273,4 +1285,15 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_VIEW IMPLEMENTATION.
INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions. INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions.
ENDMETHOD. ENDMETHOD.
METHOD render_item_changed_by.
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
IF is_item-changes = 0 OR is_item-changed_by IS INITIAL.
ri_html->add( '&nbsp;' ).
ELSE.
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_user_name( is_item-changed_by ) ).
ENDIF.
ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -314,6 +314,7 @@ INTERFACE zif_abapgit_definitions
lstate TYPE c LENGTH 1, lstate TYPE c LENGTH 1,
rstate TYPE c LENGTH 1, rstate TYPE c LENGTH 1,
files TYPE ty_repo_file_tt, files TYPE ty_repo_file_tt,
changed_by TYPE xubname,
END OF ty_repo_item . END OF ty_repo_item .
TYPES: TYPES:
ty_repo_item_tt TYPE STANDARD TABLE OF ty_repo_item WITH DEFAULT KEY . ty_repo_item_tt TYPE STANDARD TABLE OF ty_repo_item WITH DEFAULT KEY .