mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
Diff View: Collapse/expand all diffs (#6511)
This commit is contained in:
parent
31cf38aab6
commit
48fd0934a7
|
@ -49,6 +49,7 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION
|
||||||
CONSTANTS:
|
CONSTANTS:
|
||||||
BEGIN OF c_actions,
|
BEGIN OF c_actions,
|
||||||
toggle_unified TYPE string VALUE 'toggle_unified',
|
toggle_unified TYPE string VALUE 'toggle_unified',
|
||||||
|
toggle_hide_diffs TYPE string VALUE 'toggle_hide_diffs',
|
||||||
toggle_hidden_chars TYPE string VALUE 'toggle_hidden_chars',
|
toggle_hidden_chars TYPE string VALUE 'toggle_hidden_chars',
|
||||||
toggle_ignore_indent TYPE string VALUE 'toggle_ignore_indent',
|
toggle_ignore_indent TYPE string VALUE 'toggle_ignore_indent',
|
||||||
toggle_ignore_comments TYPE string VALUE 'toggle_ignore_comments',
|
toggle_ignore_comments TYPE string VALUE 'toggle_ignore_comments',
|
||||||
|
@ -164,6 +165,7 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_view,
|
BEGIN OF ty_view,
|
||||||
|
hide_diffs TYPE abap_bool,
|
||||||
hidden_chars TYPE abap_bool,
|
hidden_chars TYPE abap_bool,
|
||||||
ignore_indent TYPE abap_bool,
|
ignore_indent TYPE abap_bool,
|
||||||
ignore_comments TYPE abap_bool,
|
ignore_comments TYPE abap_bool,
|
||||||
|
@ -403,9 +405,19 @@ CLASS zcl_abapgit_gui_page_diff IMPLEMENTATION.
|
||||||
METHOD add_view_sub_menu.
|
METHOD add_view_sub_menu.
|
||||||
|
|
||||||
DATA lo_sub_view TYPE REF TO zcl_abapgit_html_toolbar.
|
DATA lo_sub_view TYPE REF TO zcl_abapgit_html_toolbar.
|
||||||
|
DATA lv_txt TYPE string.
|
||||||
|
|
||||||
CREATE OBJECT lo_sub_view EXPORTING iv_id = 'diff-view'.
|
CREATE OBJECT lo_sub_view EXPORTING iv_id = 'diff-view'.
|
||||||
|
|
||||||
|
IF ms_view-hide_diffs = abap_true.
|
||||||
|
lv_txt = 'Expand All Diffs'.
|
||||||
|
ELSE.
|
||||||
|
lv_txt = 'Collapse All Diffs'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
lo_sub_view->add( iv_txt = lv_txt
|
||||||
|
iv_act = c_actions-toggle_hide_diffs ).
|
||||||
|
|
||||||
lo_sub_view->add( iv_txt = 'Show Hidden Characters'
|
lo_sub_view->add( iv_txt = 'Show Hidden Characters'
|
||||||
iv_act = c_actions-toggle_hidden_chars
|
iv_act = c_actions-toggle_hidden_chars
|
||||||
iv_chk = ms_view-hidden_chars ).
|
iv_chk = ms_view-hidden_chars ).
|
||||||
|
@ -884,6 +896,8 @@ CLASS zcl_abapgit_gui_page_diff IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD render_diff.
|
METHOD render_diff.
|
||||||
|
|
||||||
|
DATA lv_display TYPE string.
|
||||||
|
|
||||||
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
|
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
|
||||||
|
|
||||||
ri_html->add( |<div class="diff" data-extension="{ is_diff-type
|
ri_html->add( |<div class="diff" data-extension="{ is_diff-type
|
||||||
|
@ -893,8 +907,12 @@ CLASS zcl_abapgit_gui_page_diff IMPLEMENTATION.
|
||||||
ri_html->add( render_diff_head( is_diff ) ).
|
ri_html->add( render_diff_head( is_diff ) ).
|
||||||
|
|
||||||
" Content
|
" Content
|
||||||
|
IF ms_view-hide_diffs = abap_true.
|
||||||
|
lv_display = ' nodisplay'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
IF is_diff-type <> 'binary'.
|
IF is_diff-type <> 'binary'.
|
||||||
ri_html->add( '<div class="diff_content">' ).
|
ri_html->add( |<div class="diff_content{ lv_display }">| ).
|
||||||
ri_html->add( |<table class="diff_tab syntax-hl" id="{ is_diff-filename }">| ).
|
ri_html->add( |<table class="diff_tab syntax-hl" id="{ is_diff-filename }">| ).
|
||||||
ri_html->add( render_table_head( is_diff ) ).
|
ri_html->add( render_table_head( is_diff ) ).
|
||||||
ri_html->add( render_lines( is_diff ) ).
|
ri_html->add( render_lines( is_diff ) ).
|
||||||
|
@ -914,6 +932,7 @@ CLASS zcl_abapgit_gui_page_diff IMPLEMENTATION.
|
||||||
METHOD render_diff_head.
|
METHOD render_diff_head.
|
||||||
|
|
||||||
DATA: ls_stats TYPE zif_abapgit_definitions=>ty_count,
|
DATA: ls_stats TYPE zif_abapgit_definitions=>ty_count,
|
||||||
|
lv_icon TYPE string,
|
||||||
lv_jump TYPE string,
|
lv_jump TYPE string,
|
||||||
lv_link TYPE string.
|
lv_link TYPE string.
|
||||||
|
|
||||||
|
@ -921,8 +940,14 @@ CLASS zcl_abapgit_gui_page_diff IMPLEMENTATION.
|
||||||
|
|
||||||
ri_html->add( '<div class="diff_head">' ).
|
ri_html->add( '<div class="diff_head">' ).
|
||||||
|
|
||||||
|
IF ms_view-hide_diffs = abap_true.
|
||||||
|
lv_icon = 'chevron-right'.
|
||||||
|
ELSE.
|
||||||
|
lv_icon = 'chevron-down'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ri_html->add_icon(
|
ri_html->add_icon(
|
||||||
iv_name = 'chevron-down'
|
iv_name = lv_icon
|
||||||
iv_hint = 'Collapse/Expand'
|
iv_hint = 'Collapse/Expand'
|
||||||
iv_class = 'cursor-pointer'
|
iv_class = 'cursor-pointer'
|
||||||
iv_onclick = 'onDiffCollapse(event)' ).
|
iv_onclick = 'onDiffCollapse(event)' ).
|
||||||
|
@ -1319,6 +1344,10 @@ CLASS zcl_abapgit_gui_page_diff IMPLEMENTATION.
|
||||||
set_layout( ).
|
set_layout( ).
|
||||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
|
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
|
||||||
|
|
||||||
|
WHEN c_actions-toggle_hide_diffs. " Toggle display of diffs
|
||||||
|
|
||||||
|
ms_view-hide_diffs = boolc( ms_view-hide_diffs = abap_false ).
|
||||||
|
|
||||||
WHEN c_actions-toggle_hidden_chars. " Toggle display of hidden characters
|
WHEN c_actions-toggle_hidden_chars. " Toggle display of hidden characters
|
||||||
|
|
||||||
ms_view-hidden_chars = boolc( ms_view-hidden_chars = abap_false ).
|
ms_view-hidden_chars = boolc( ms_view-hidden_chars = abap_false ).
|
||||||
|
@ -1352,7 +1381,9 @@ CLASS zcl_abapgit_gui_page_diff IMPLEMENTATION.
|
||||||
|
|
||||||
" If view has changed, refresh local files recalculating diff, and update menu
|
" If view has changed, refresh local files recalculating diff, and update menu
|
||||||
IF ms_view <> ls_view.
|
IF ms_view <> ls_view.
|
||||||
refresh( c_actions-refresh_local ).
|
IF ms_view-hide_diffs = ls_view-hide_diffs.
|
||||||
|
refresh( c_actions-refresh_local ).
|
||||||
|
ENDIF.
|
||||||
ms_control-page_menu = build_menu( ).
|
ms_control-page_menu = build_menu( ).
|
||||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
|
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user