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.
@ -132,6 +132,12 @@ CLASS ZCL_ABAPGIT_REPO_CONTENT_LIST IMPLEMENTATION.
ELSE.
<ls_repo_item>-sortkey = c_sortkey-default. " Default sort key
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.
ENDMETHOD.
@ -141,7 +147,8 @@ CLASS ZCL_ABAPGIT_REPO_CONTENT_LIST IMPLEMENTATION.
DATA:
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,
<ls_repo_item> LIKE LINE OF rt_repo_items.
@ -184,6 +191,12 @@ CLASS ZCL_ABAPGIT_REPO_CONTENT_LIST IMPLEMENTATION.
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
IF <ls_repo_item>-obj_type IS INITIAL.
<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 .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_hotkeys .
CONSTANTS:
BEGIN OF c_actions,
repo_list TYPE string VALUE 'abapgit_home' ##NO_TEXT,
change_dir TYPE string VALUE 'change_dir' ##NO_TEXT,
toggle_hide_files TYPE string VALUE 'toggle_hide_files' ##NO_TEXT,
toggle_folders TYPE string VALUE 'toggle_folders' ##NO_TEXT,
toggle_changes TYPE string VALUE 'toggle_changes' ##NO_TEXT,
toggle_diff_first TYPE string VALUE 'toggle_diff_first ' ##NO_TEXT,
display_more TYPE string VALUE 'display_more' ##NO_TEXT,
go_data TYPE string VALUE 'go_data',
repo_list TYPE string VALUE 'abapgit_home' ##NO_TEXT,
change_dir TYPE string VALUE 'change_dir' ##NO_TEXT,
toggle_hide_files TYPE string VALUE 'toggle_hide_files' ##NO_TEXT,
toggle_folders TYPE string VALUE 'toggle_folders' ##NO_TEXT,
toggle_changes TYPE string VALUE 'toggle_changes' ##NO_TEXT,
toggle_diff_first TYPE string VALUE 'toggle_diff_first ' ##NO_TEXT,
display_more TYPE string VALUE 'display_more' ##NO_TEXT,
go_data TYPE string VALUE 'go_data',
END OF c_actions .
METHODS constructor
@ -177,11 +176,19 @@ CLASS zcl_abapgit_gui_page_repo_view DEFINITION
METHODS get_abapgit_tcode
RETURNING
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.
CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_VIEW IMPLEMENTATION.
CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
METHOD apply_order_by.
@ -553,19 +560,15 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_VIEW IMPLEMENTATION.
iv_chk = mv_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(
iv_txt = 'Changes Only'
iv_chk = mv_changes_only
iv_act = c_actions-toggle_changes ).
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(
iv_txt = 'File Paths'
iv_chk = boolc( NOT mv_hide_files = abap_true )
iv_act = c_actions-toggle_hide_files ).
ro_toolbar->add(
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( '</td>' ).
ri_html->add( '<td class="user">' ).
ri_html->add( render_item_changed_by( is_item ) ).
ri_html->add( '</td>' ).
" Command
ri_html->add( '<td class="cmd">' ).
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.
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-display_name = 'Status'.
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.
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.

View File

@ -304,16 +304,17 @@ INTERFACE zif_abapgit_definitions
END OF ty_ancestor .
TYPES:
BEGIN OF ty_repo_item,
obj_type TYPE tadir-object,
obj_name TYPE tadir-obj_name,
inactive TYPE abap_bool,
sortkey TYPE i,
path TYPE string,
is_dir TYPE abap_bool,
changes TYPE i,
lstate TYPE c LENGTH 1,
rstate TYPE c LENGTH 1,
files TYPE ty_repo_file_tt,
obj_type TYPE tadir-object,
obj_name TYPE tadir-obj_name,
inactive TYPE abap_bool,
sortkey TYPE i,
path TYPE string,
is_dir TYPE abap_bool,
changes TYPE i,
lstate TYPE c LENGTH 1,
rstate TYPE c LENGTH 1,
files TYPE ty_repo_file_tt,
changed_by TYPE xubname,
END OF ty_repo_item .
TYPES:
ty_repo_item_tt TYPE STANDARD TABLE OF ty_repo_item WITH DEFAULT KEY .