mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
repo view refactoring
This commit is contained in:
parent
fb371ae903
commit
1955a117bb
|
@ -341,9 +341,6 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
|
||||||
_add '.repo_tab tr.unsupported { color: lightgrey; }'.
|
_add '.repo_tab tr.unsupported { color: lightgrey; }'.
|
||||||
_add '.repo_tab tr.modified { background: #fbf7e9; }'.
|
_add '.repo_tab tr.modified { background: #fbf7e9; }'.
|
||||||
_add '.repo_tab tr:first-child td { border-top: 0px; }'.
|
_add '.repo_tab tr:first-child td { border-top: 0px; }'.
|
||||||
_add '.repo_tab td.files span { display: block; }'.
|
|
||||||
_add '.repo_tab td.cmd span { display: block; }'.
|
|
||||||
_add '.repo_tab td.cmd a { display: block; }'.
|
|
||||||
_add 'td.current_dir { color: #ccc; }'.
|
_add 'td.current_dir { color: #ccc; }'.
|
||||||
|
|
||||||
ENDMETHOD. "styles
|
ENDMETHOD. "styles
|
||||||
|
|
|
@ -632,7 +632,7 @@ CLASS lcl_diff IMPLEMENTATION.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_diff> LIKE LINE OF mt_diff.
|
FIELD-SYMBOLS: <ls_diff> LIKE LINE OF mt_diff.
|
||||||
|
|
||||||
IF lines( mt_diff ) < 100.
|
IF lines( mt_diff ) < 20.
|
||||||
LOOP AT mt_diff ASSIGNING <ls_diff>.
|
LOOP AT mt_diff ASSIGNING <ls_diff>.
|
||||||
<ls_diff>-short = abap_true.
|
<ls_diff>-short = abap_true.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
@ -641,7 +641,7 @@ CLASS lcl_diff IMPLEMENTATION.
|
||||||
WHERE NOT result IS INITIAL AND short = abap_false.
|
WHERE NOT result IS INITIAL AND short = abap_false.
|
||||||
lv_index = sy-tabix.
|
lv_index = sy-tabix.
|
||||||
|
|
||||||
DO 10 TIMES. " Backward
|
DO 8 TIMES. " Backward
|
||||||
READ TABLE mt_diff INDEX ( lv_index - sy-index ) ASSIGNING <ls_diff>.
|
READ TABLE mt_diff INDEX ( lv_index - sy-index ) ASSIGNING <ls_diff>.
|
||||||
IF sy-subrc <> 0 OR <ls_diff>-short = abap_true. " tab bound or prev marker
|
IF sy-subrc <> 0 OR <ls_diff>-short = abap_true. " tab bound or prev marker
|
||||||
EXIT.
|
EXIT.
|
||||||
|
@ -649,7 +649,7 @@ CLASS lcl_diff IMPLEMENTATION.
|
||||||
<ls_diff>-short = abap_true.
|
<ls_diff>-short = abap_true.
|
||||||
ENDDO.
|
ENDDO.
|
||||||
|
|
||||||
DO 10 TIMES. " Forward
|
DO 8 TIMES. " Forward
|
||||||
READ TABLE mt_diff INDEX ( lv_index + sy-index - 1 ) ASSIGNING <ls_diff>.
|
READ TABLE mt_diff INDEX ( lv_index + sy-index - 1 ) ASSIGNING <ls_diff>.
|
||||||
IF sy-subrc <> 0. " tab bound reached
|
IF sy-subrc <> 0. " tab bound reached
|
||||||
EXIT.
|
EXIT.
|
||||||
|
|
|
@ -247,16 +247,22 @@ CLASS lcl_gui_view_repo_content DEFINITION FINAL INHERITING FROM lcl_gui_page_su
|
||||||
mv_changes_only TYPE abap_bool.
|
mv_changes_only TYPE abap_bool.
|
||||||
|
|
||||||
METHODS:
|
METHODS:
|
||||||
render_repo_menu
|
render_head_menu
|
||||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper
|
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
render_tab_menu
|
render_grid_menu
|
||||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper
|
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
render_repo_item
|
render_item
|
||||||
IMPORTING is_item TYPE lcl_repo_content_browser=>ty_repo_item
|
IMPORTING is_item TYPE lcl_repo_content_browser=>ty_repo_item
|
||||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper
|
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
|
render_item_files
|
||||||
|
IMPORTING is_item TYPE lcl_repo_content_browser=>ty_repo_item
|
||||||
|
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper,
|
||||||
|
render_item_command
|
||||||
|
IMPORTING is_item TYPE lcl_repo_content_browser=>ty_repo_item
|
||||||
|
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper,
|
||||||
get_item_class
|
get_item_class
|
||||||
IMPORTING is_item TYPE lcl_repo_content_browser=>ty_repo_item
|
IMPORTING is_item TYPE lcl_repo_content_browser=>ty_repo_item
|
||||||
RETURNING VALUE(rv_html) TYPE string,
|
RETURNING VALUE(rv_html) TYPE string,
|
||||||
|
@ -265,14 +271,13 @@ CLASS lcl_gui_view_repo_content DEFINITION FINAL INHERITING FROM lcl_gui_page_su
|
||||||
RETURNING VALUE(rv_html) TYPE string,
|
RETURNING VALUE(rv_html) TYPE string,
|
||||||
render_empty_package
|
render_empty_package
|
||||||
RETURNING VALUE(rv_html) TYPE string,
|
RETURNING VALUE(rv_html) TYPE string,
|
||||||
render_parent_dir_line
|
render_parent_dir
|
||||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper
|
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
METHODS:
|
METHODS:
|
||||||
build_obj_jump_link
|
build_obj_jump_link
|
||||||
IMPORTING iv_obj_type TYPE tadir-object
|
IMPORTING is_item TYPE lcl_repo_content_browser=>ty_repo_item
|
||||||
iv_obj_name TYPE tadir-obj_name
|
|
||||||
RETURNING VALUE(rv_html) TYPE string,
|
RETURNING VALUE(rv_html) TYPE string,
|
||||||
build_dir_jump_link
|
build_dir_jump_link
|
||||||
IMPORTING iv_path TYPE string
|
IMPORTING iv_path TYPE string
|
||||||
|
@ -337,7 +342,7 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
||||||
iv_by_folders = mv_show_folders
|
iv_by_folders = mv_show_folders
|
||||||
iv_changes_only = mv_changes_only ).
|
iv_changes_only = mv_changes_only ).
|
||||||
|
|
||||||
ro_html->add( render_repo_menu( ) ).
|
ro_html->add( render_head_menu( ) ).
|
||||||
|
|
||||||
lo_log = lo_browser->get_log( ).
|
lo_log = lo_browser->get_log( ).
|
||||||
IF mo_repo->is_offline( ) = abap_false AND lo_log->count( ) > 0.
|
IF mo_repo->is_offline( ) = abap_false AND lo_log->count( ) > 0.
|
||||||
|
@ -347,20 +352,20 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ro_html->add( '<div class="repo_container">' ).
|
ro_html->add( '<div class="repo_container">' ).
|
||||||
ro_html->add( render_tab_menu( ) ).
|
ro_html->add( render_grid_menu( ) ).
|
||||||
|
|
||||||
" Repo content table
|
" Repo content table
|
||||||
ro_html->add( '<table width="100%" class="repo_tab">' ).
|
ro_html->add( '<table width="100%" class="repo_tab">' ).
|
||||||
|
|
||||||
IF lcl_path=>is_root( mv_cur_dir ) = abap_false.
|
IF lcl_path=>is_root( mv_cur_dir ) = abap_false.
|
||||||
ro_html->add( render_parent_dir_line( ) ).
|
ro_html->add( render_parent_dir( ) ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF lines( lt_repo_items ) = 0.
|
IF lines( lt_repo_items ) = 0.
|
||||||
ro_html->add( render_empty_package( ) ).
|
ro_html->add( render_empty_package( ) ).
|
||||||
ELSE.
|
ELSE.
|
||||||
LOOP AT lt_repo_items ASSIGNING <ls_item>.
|
LOOP AT lt_repo_items ASSIGNING <ls_item>.
|
||||||
ro_html->add( render_repo_item( <ls_item> ) ).
|
ro_html->add( render_item( <ls_item> ) ).
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
@ -368,13 +373,13 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
||||||
ro_html->add( '</div>' ).
|
ro_html->add( '</div>' ).
|
||||||
|
|
||||||
CATCH lcx_exception INTO lx_error.
|
CATCH lcx_exception INTO lx_error.
|
||||||
ro_html->add( render_repo_menu( ) ).
|
ro_html->add( render_head_menu( ) ).
|
||||||
ro_html->add( lcl_gui_page_super=>render_error( lx_error ) ).
|
ro_html->add( lcl_gui_page_super=>render_error( lx_error ) ).
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
ENDMETHOD. "lif_gui_page~render
|
ENDMETHOD. "lif_gui_page~render
|
||||||
|
|
||||||
METHOD render_tab_menu.
|
METHOD render_grid_menu.
|
||||||
|
|
||||||
DATA lo_tab_menu TYPE REF TO lcl_html_toolbar.
|
DATA lo_tab_menu TYPE REF TO lcl_html_toolbar.
|
||||||
|
|
||||||
|
@ -407,9 +412,9 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
||||||
|
|
||||||
ro_html = lo_tab_menu->render( iv_as_angle = abap_true ).
|
ro_html = lo_tab_menu->render( iv_as_angle = abap_true ).
|
||||||
|
|
||||||
ENDMETHOD. "render_tab_menu
|
ENDMETHOD. "render_grid_menu
|
||||||
|
|
||||||
METHOD render_repo_menu.
|
METHOD render_head_menu.
|
||||||
|
|
||||||
DATA: lo_toolbar TYPE REF TO lcl_html_toolbar,
|
DATA: lo_toolbar TYPE REF TO lcl_html_toolbar,
|
||||||
lo_tb_advanced TYPE REF TO lcl_html_toolbar,
|
lo_tb_advanced TYPE REF TO lcl_html_toolbar,
|
||||||
|
@ -518,7 +523,7 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
||||||
ro_html->add( '</div>' ).
|
ro_html->add( '</div>' ).
|
||||||
|
|
||||||
|
|
||||||
ENDMETHOD. "render_repo_menu
|
ENDMETHOD. "render_head_menu
|
||||||
|
|
||||||
METHOD get_item_class.
|
METHOD get_item_class.
|
||||||
|
|
||||||
|
@ -560,10 +565,8 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
||||||
ENDMETHOD. "get_item_icon
|
ENDMETHOD. "get_item_icon
|
||||||
|
|
||||||
|
|
||||||
METHOD render_repo_item.
|
METHOD render_item.
|
||||||
DATA:
|
DATA: lv_link TYPE string,
|
||||||
lv_link TYPE string,
|
|
||||||
lv_difflink TYPE string,
|
|
||||||
ls_file LIKE LINE OF is_item-files.
|
ls_file LIKE LINE OF is_item-files.
|
||||||
|
|
||||||
CREATE OBJECT ro_html.
|
CREATE OBJECT ro_html.
|
||||||
|
@ -574,41 +577,70 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
||||||
IF is_item-obj_name IS INITIAL AND is_item-is_dir = abap_false.
|
IF is_item-obj_name IS INITIAL AND is_item-is_dir = abap_false.
|
||||||
ro_html->add( '<td colspan="2"></td>'
|
ro_html->add( '<td colspan="2"></td>'
|
||||||
&& '<td class="object"><i class="grey">non-code and meta files</i></td>' ).
|
&& '<td class="object"><i class="grey">non-code and meta files</i></td>' ).
|
||||||
ELSEIF is_item-is_dir = abap_true.
|
ELSE.
|
||||||
lv_link = build_dir_jump_link( iv_path = is_item-path ).
|
|
||||||
ro_html->add( |<td class="icon">{ get_item_icon( is_item ) }</td>| ).
|
ro_html->add( |<td class="icon">{ get_item_icon( is_item ) }</td>| ).
|
||||||
|
|
||||||
|
IF is_item-is_dir = abap_true. " Subdir
|
||||||
|
lv_link = build_dir_jump_link( iv_path = is_item-path ).
|
||||||
ro_html->add( |<td class="dir" colspan="2">{ lv_link }</td>| ).
|
ro_html->add( |<td class="dir" colspan="2">{ lv_link }</td>| ).
|
||||||
ELSE.
|
ELSE.
|
||||||
lv_link = build_obj_jump_link( iv_obj_name = is_item-obj_name
|
lv_link = build_obj_jump_link( is_item = is_item ).
|
||||||
iv_obj_type = is_item-obj_type ).
|
|
||||||
ro_html->add( |<td class="icon">{ get_item_icon( is_item ) }</td>| ).
|
|
||||||
ro_html->add( |<td class="type">{ is_item-obj_type }</td>| ).
|
ro_html->add( |<td class="type">{ is_item-obj_type }</td>| ).
|
||||||
ro_html->add( |<td class="object">{ lv_link }</td>| ).
|
ro_html->add( |<td class="object">{ lv_link }</td>| ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
IF mo_repo->is_offline( ) = abap_false.
|
IF mo_repo->is_offline( ) = abap_false.
|
||||||
|
|
||||||
" Files
|
" Files
|
||||||
ro_html->add( '<td class="files">' ).
|
ro_html->add( '<td class="files">' ).
|
||||||
IF mv_hide_files = abap_false OR is_item-obj_type IS INITIAL.
|
ro_html->add( render_item_files( is_item ) ).
|
||||||
LOOP AT is_item-files INTO ls_file.
|
|
||||||
ro_html->add( |<span>{ ls_file-path && ls_file-filename }</span>| ).
|
|
||||||
ENDLOOP.
|
|
||||||
ENDIF.
|
|
||||||
ro_html->add( '</td>' ).
|
ro_html->add( '</td>' ).
|
||||||
|
|
||||||
" TODO Refactor
|
|
||||||
" Command
|
" Command
|
||||||
ro_html->add( '<td class="cmd">' ).
|
ro_html->add( '<td class="cmd">' ).
|
||||||
|
ro_html->add( render_item_command( is_item ) ).
|
||||||
|
ro_html->add( '</td>' ).
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ro_html->add( '</tr>' ).
|
||||||
|
|
||||||
|
ENDMETHOD. "render_item
|
||||||
|
|
||||||
|
METHOD render_item_files.
|
||||||
|
|
||||||
|
DATA: ls_file LIKE LINE OF is_item-files.
|
||||||
|
|
||||||
|
CREATE OBJECT ro_html.
|
||||||
|
|
||||||
|
IF mv_hide_files = abap_true AND is_item-obj_type IS NOT INITIAL.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
LOOP AT is_item-files INTO ls_file.
|
||||||
|
ro_html->add( |<div>{ ls_file-path && ls_file-filename }</div>| ).
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD. "render_item_files
|
||||||
|
|
||||||
|
METHOD render_item_command.
|
||||||
|
|
||||||
|
DATA: lv_difflink TYPE string,
|
||||||
|
ls_file LIKE LINE OF is_item-files.
|
||||||
|
|
||||||
|
CREATE OBJECT ro_html.
|
||||||
|
|
||||||
IF is_item-is_dir = abap_true.
|
IF is_item-is_dir = abap_true.
|
||||||
ro_html->add( |<span class="grey">{ is_item-changes } changes</span>| ).
|
ro_html->add( |<div class="grey">{ is_item-changes } changes</div>| ).
|
||||||
ELSEIF lines( is_item-files ) = 0.
|
ELSEIF lines( is_item-files ) = 0.
|
||||||
ro_html->add( '<span class="grey">new @local</span>' ).
|
ro_html->add( '<div class="grey">new @local</div>' ).
|
||||||
ELSEIF is_item-changes > 0.
|
ELSEIF is_item-changes > 0.
|
||||||
IF mv_hide_files = abap_true AND is_item-obj_name IS NOT INITIAL.
|
IF mv_hide_files = abap_true AND is_item-obj_name IS NOT INITIAL.
|
||||||
lv_difflink = lcl_html_action_utils=>obj_encode(
|
lv_difflink = lcl_html_action_utils=>obj_encode(
|
||||||
iv_key = mo_repo->get_key( )
|
iv_key = mo_repo->get_key( )
|
||||||
ig_object = is_item ).
|
ig_object = is_item ).
|
||||||
|
ro_html->add( '<div>' ).
|
||||||
IF is_item-changes = 1.
|
IF is_item-changes = 1.
|
||||||
ro_html->add_anchor(
|
ro_html->add_anchor(
|
||||||
iv_txt = |{ is_item-changes } diff|
|
iv_txt = |{ is_item-changes } diff|
|
||||||
|
@ -618,33 +650,31 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
||||||
iv_txt = |{ is_item-changes } diffs|
|
iv_txt = |{ is_item-changes } diffs|
|
||||||
iv_act = |{ gc_action-go_diff }?{ lv_difflink }| ).
|
iv_act = |{ gc_action-go_diff }?{ lv_difflink }| ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
ro_html->add( '</div>' ).
|
||||||
ELSE.
|
ELSE.
|
||||||
LOOP AT is_item-files INTO ls_file.
|
LOOP AT is_item-files INTO ls_file.
|
||||||
IF ls_file-new = gc_new-remote.
|
IF ls_file-new = gc_new-remote.
|
||||||
ro_html->add( '<span class="grey">new @remote</span>' ).
|
ro_html->add( '<div class="grey">new @remote</div>' ).
|
||||||
ELSEIF ls_file-new = gc_new-local.
|
ELSEIF ls_file-new = gc_new-local.
|
||||||
ro_html->add( '<span class="grey">new @local</span>' ).
|
ro_html->add( '<div class="grey">new @local</div>' ).
|
||||||
ELSEIF ls_file-is_changed = abap_true.
|
ELSEIF ls_file-is_changed = abap_true.
|
||||||
lv_difflink = lcl_html_action_utils=>file_encode(
|
lv_difflink = lcl_html_action_utils=>file_encode(
|
||||||
iv_key = mo_repo->get_key( )
|
iv_key = mo_repo->get_key( )
|
||||||
ig_file = ls_file ).
|
ig_file = ls_file ).
|
||||||
|
ro_html->add( '<div>' ).
|
||||||
ro_html->add_anchor(
|
ro_html->add_anchor(
|
||||||
iv_txt = 'diff'
|
iv_txt = 'diff'
|
||||||
iv_act = |{ gc_action-go_diff }?{ lv_difflink }| ).
|
iv_act = |{ gc_action-go_diff }?{ lv_difflink }| ).
|
||||||
|
ro_html->add( '</div>' ).
|
||||||
ELSE.
|
ELSE.
|
||||||
ro_html->add( |<span> </span>| ).
|
ro_html->add( |<div> </div>| ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ro_html->add( '</td>' ).
|
|
||||||
|
|
||||||
ENDIF.
|
ENDMETHOD. "render_item_command
|
||||||
|
|
||||||
ro_html->add( '</tr>' ).
|
|
||||||
|
|
||||||
ENDMETHOD. "render_repo_item
|
|
||||||
|
|
||||||
METHOD render_empty_package.
|
METHOD render_empty_package.
|
||||||
|
|
||||||
|
@ -654,7 +684,7 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. "render_empty_package
|
ENDMETHOD. "render_empty_package
|
||||||
|
|
||||||
METHOD render_parent_dir_line.
|
METHOD render_parent_dir.
|
||||||
|
|
||||||
CREATE OBJECT ro_html.
|
CREATE OBJECT ro_html.
|
||||||
|
|
||||||
|
@ -666,7 +696,7 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ro_html->add( '</tr>' ).
|
ro_html->add( '</tr>' ).
|
||||||
|
|
||||||
ENDMETHOD. "render_parent_dir_line
|
ENDMETHOD. "render_parent_dir
|
||||||
|
|
||||||
METHOD build_dir_jump_link.
|
METHOD build_dir_jump_link.
|
||||||
|
|
||||||
|
@ -689,11 +719,12 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
||||||
DATA: lv_encode TYPE string,
|
DATA: lv_encode TYPE string,
|
||||||
lo_html TYPE REF TO lcl_html_helper.
|
lo_html TYPE REF TO lcl_html_helper.
|
||||||
|
|
||||||
lv_encode = lcl_html_action_utils=>jump_encode( iv_obj_type = iv_obj_type
|
lv_encode = lcl_html_action_utils=>jump_encode( iv_obj_type = is_item-obj_type
|
||||||
iv_obj_name = iv_obj_name ).
|
iv_obj_name = is_item-obj_name ).
|
||||||
|
|
||||||
CREATE OBJECT lo_html.
|
CREATE OBJECT lo_html.
|
||||||
lo_html->add_anchor( iv_txt = |{ iv_obj_name }| iv_act = |{ gc_action-jump }?{ lv_encode }| ).
|
lo_html->add_anchor( iv_txt = |{ is_item-obj_name }|
|
||||||
|
iv_act = |{ gc_action-jump }?{ lv_encode }| ).
|
||||||
rv_html = lo_html->mv_html.
|
rv_html = lo_html->mv_html.
|
||||||
|
|
||||||
ENDMETHOD. "build_obj_jump_link
|
ENDMETHOD. "build_obj_jump_link
|
||||||
|
|
Loading…
Reference in New Issue
Block a user