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,19 +5,18 @@ 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:
BEGIN OF c_actions, BEGIN OF c_actions,
repo_list TYPE string VALUE 'abapgit_home' ##NO_TEXT, repo_list TYPE string VALUE 'abapgit_home' ##NO_TEXT,
change_dir TYPE string VALUE 'change_dir' ##NO_TEXT, change_dir TYPE string VALUE 'change_dir' ##NO_TEXT,
toggle_hide_files TYPE string VALUE 'toggle_hide_files' ##NO_TEXT, toggle_hide_files TYPE string VALUE 'toggle_hide_files' ##NO_TEXT,
toggle_folders TYPE string VALUE 'toggle_folders' ##NO_TEXT, toggle_folders TYPE string VALUE 'toggle_folders' ##NO_TEXT,
toggle_changes TYPE string VALUE 'toggle_changes' ##NO_TEXT, toggle_changes TYPE string VALUE 'toggle_changes' ##NO_TEXT,
toggle_diff_first TYPE string VALUE 'toggle_diff_first ' ##NO_TEXT, toggle_diff_first TYPE string VALUE 'toggle_diff_first ' ##NO_TEXT,
display_more TYPE string VALUE 'display_more' ##NO_TEXT, display_more TYPE string VALUE 'display_more' ##NO_TEXT,
go_data TYPE string VALUE 'go_data', go_data TYPE string VALUE 'go_data',
END OF c_actions . END OF c_actions .
METHODS constructor METHODS constructor
@ -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,19 +560,15 @@ 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(
iv_txt = 'Changes Only'
iv_chk = mv_changes_only
iv_act = c_actions-toggle_changes ).
ro_toolbar->add( ro_toolbar->add(
iv_txt = 'Changes Only' iv_txt = 'File Paths'
iv_chk = mv_changes_only iv_chk = boolc( NOT mv_hide_files = abap_true )
iv_act = c_actions-toggle_changes ). iv_act = c_actions-toggle_hide_files ).
ro_toolbar->add(
iv_txt = 'File Paths'
iv_chk = boolc( NOT mv_hide_files = abap_true )
iv_act = c_actions-toggle_hide_files ).
ENDIF.
ro_toolbar->add( ro_toolbar->add(
iv_txt = 'Folders' iv_txt = '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

@ -304,16 +304,17 @@ INTERFACE zif_abapgit_definitions
END OF ty_ancestor . END OF ty_ancestor .
TYPES: TYPES:
BEGIN OF ty_repo_item, BEGIN OF ty_repo_item,
obj_type TYPE tadir-object, obj_type TYPE tadir-object,
obj_name TYPE tadir-obj_name, obj_name TYPE tadir-obj_name,
inactive TYPE abap_bool, inactive TYPE abap_bool,
sortkey TYPE i, sortkey TYPE i,
path TYPE string, path TYPE string,
is_dir TYPE abap_bool, is_dir TYPE abap_bool,
changes TYPE i, changes TYPE i,
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 .