mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +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.modified { background: #fbf7e9; }'.
|
||||
_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; }'.
|
||||
|
||||
ENDMETHOD. "styles
|
||||
|
|
|
@ -632,7 +632,7 @@ CLASS lcl_diff IMPLEMENTATION.
|
|||
|
||||
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>.
|
||||
<ls_diff>-short = abap_true.
|
||||
ENDLOOP.
|
||||
|
@ -641,7 +641,7 @@ CLASS lcl_diff IMPLEMENTATION.
|
|||
WHERE NOT result IS INITIAL AND short = abap_false.
|
||||
lv_index = sy-tabix.
|
||||
|
||||
DO 10 TIMES. " Backward
|
||||
DO 8 TIMES. " Backward
|
||||
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
|
||||
EXIT.
|
||||
|
@ -649,7 +649,7 @@ CLASS lcl_diff IMPLEMENTATION.
|
|||
<ls_diff>-short = abap_true.
|
||||
ENDDO.
|
||||
|
||||
DO 10 TIMES. " Forward
|
||||
DO 8 TIMES. " Forward
|
||||
READ TABLE mt_diff INDEX ( lv_index + sy-index - 1 ) ASSIGNING <ls_diff>.
|
||||
IF sy-subrc <> 0. " tab bound reached
|
||||
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.
|
||||
|
||||
METHODS:
|
||||
render_repo_menu
|
||||
render_head_menu
|
||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper
|
||||
RAISING lcx_exception,
|
||||
render_tab_menu
|
||||
render_grid_menu
|
||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper
|
||||
RAISING lcx_exception,
|
||||
render_repo_item
|
||||
render_item
|
||||
IMPORTING is_item TYPE lcl_repo_content_browser=>ty_repo_item
|
||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper
|
||||
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
|
||||
IMPORTING is_item TYPE lcl_repo_content_browser=>ty_repo_item
|
||||
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,
|
||||
render_empty_package
|
||||
RETURNING VALUE(rv_html) TYPE string,
|
||||
render_parent_dir_line
|
||||
render_parent_dir
|
||||
RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper
|
||||
RAISING lcx_exception.
|
||||
|
||||
METHODS:
|
||||
build_obj_jump_link
|
||||
IMPORTING iv_obj_type TYPE tadir-object
|
||||
iv_obj_name TYPE tadir-obj_name
|
||||
IMPORTING is_item TYPE lcl_repo_content_browser=>ty_repo_item
|
||||
RETURNING VALUE(rv_html) TYPE string,
|
||||
build_dir_jump_link
|
||||
IMPORTING iv_path TYPE string
|
||||
|
@ -337,7 +342,7 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
|||
iv_by_folders = mv_show_folders
|
||||
iv_changes_only = mv_changes_only ).
|
||||
|
||||
ro_html->add( render_repo_menu( ) ).
|
||||
ro_html->add( render_head_menu( ) ).
|
||||
|
||||
lo_log = lo_browser->get_log( ).
|
||||
IF mo_repo->is_offline( ) = abap_false AND lo_log->count( ) > 0.
|
||||
|
@ -347,20 +352,20 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
ro_html->add( '<div class="repo_container">' ).
|
||||
ro_html->add( render_tab_menu( ) ).
|
||||
ro_html->add( render_grid_menu( ) ).
|
||||
|
||||
" Repo content table
|
||||
ro_html->add( '<table width="100%" class="repo_tab">' ).
|
||||
|
||||
IF lcl_path=>is_root( mv_cur_dir ) = abap_false.
|
||||
ro_html->add( render_parent_dir_line( ) ).
|
||||
ro_html->add( render_parent_dir( ) ).
|
||||
ENDIF.
|
||||
|
||||
IF lines( lt_repo_items ) = 0.
|
||||
ro_html->add( render_empty_package( ) ).
|
||||
ELSE.
|
||||
LOOP AT lt_repo_items ASSIGNING <ls_item>.
|
||||
ro_html->add( render_repo_item( <ls_item> ) ).
|
||||
ro_html->add( render_item( <ls_item> ) ).
|
||||
ENDLOOP.
|
||||
ENDIF.
|
||||
|
||||
|
@ -368,13 +373,13 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
|||
ro_html->add( '</div>' ).
|
||||
|
||||
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 ) ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD. "lif_gui_page~render
|
||||
|
||||
METHOD render_tab_menu.
|
||||
METHOD render_grid_menu.
|
||||
|
||||
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 ).
|
||||
|
||||
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,
|
||||
lo_tb_advanced TYPE REF TO lcl_html_toolbar,
|
||||
|
@ -518,7 +523,7 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
|||
ro_html->add( '</div>' ).
|
||||
|
||||
|
||||
ENDMETHOD. "render_repo_menu
|
||||
ENDMETHOD. "render_head_menu
|
||||
|
||||
METHOD get_item_class.
|
||||
|
||||
|
@ -560,10 +565,8 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
|||
ENDMETHOD. "get_item_icon
|
||||
|
||||
|
||||
METHOD render_repo_item.
|
||||
DATA:
|
||||
lv_link TYPE string,
|
||||
lv_difflink TYPE string,
|
||||
METHOD render_item.
|
||||
DATA: lv_link TYPE string,
|
||||
ls_file LIKE LINE OF is_item-files.
|
||||
|
||||
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.
|
||||
ro_html->add( '<td colspan="2"></td>'
|
||||
&& '<td class="object"><i class="grey">non-code and meta files</i></td>' ).
|
||||
ELSEIF is_item-is_dir = abap_true.
|
||||
lv_link = build_dir_jump_link( iv_path = is_item-path ).
|
||||
ELSE.
|
||||
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>| ).
|
||||
ELSE.
|
||||
lv_link = build_obj_jump_link( iv_obj_name = is_item-obj_name
|
||||
iv_obj_type = is_item-obj_type ).
|
||||
ro_html->add( |<td class="icon">{ get_item_icon( is_item ) }</td>| ).
|
||||
lv_link = build_obj_jump_link( is_item = is_item ).
|
||||
ro_html->add( |<td class="type">{ is_item-obj_type }</td>| ).
|
||||
ro_html->add( |<td class="object">{ lv_link }</td>| ).
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
IF mo_repo->is_offline( ) = abap_false.
|
||||
|
||||
" Files
|
||||
ro_html->add( '<td class="files">' ).
|
||||
IF mv_hide_files = abap_false OR is_item-obj_type IS INITIAL.
|
||||
LOOP AT is_item-files INTO ls_file.
|
||||
ro_html->add( |<span>{ ls_file-path && ls_file-filename }</span>| ).
|
||||
ENDLOOP.
|
||||
ENDIF.
|
||||
ro_html->add( render_item_files( is_item ) ).
|
||||
ro_html->add( '</td>' ).
|
||||
|
||||
" TODO Refactor
|
||||
" Command
|
||||
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.
|
||||
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.
|
||||
ro_html->add( '<span class="grey">new @local</span>' ).
|
||||
ro_html->add( '<div class="grey">new @local</div>' ).
|
||||
ELSEIF is_item-changes > 0.
|
||||
IF mv_hide_files = abap_true AND is_item-obj_name IS NOT INITIAL.
|
||||
lv_difflink = lcl_html_action_utils=>obj_encode(
|
||||
iv_key = mo_repo->get_key( )
|
||||
ig_object = is_item ).
|
||||
ro_html->add( '<div>' ).
|
||||
IF is_item-changes = 1.
|
||||
ro_html->add_anchor(
|
||||
iv_txt = |{ is_item-changes } diff|
|
||||
|
@ -618,33 +650,31 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
|||
iv_txt = |{ is_item-changes } diffs|
|
||||
iv_act = |{ gc_action-go_diff }?{ lv_difflink }| ).
|
||||
ENDIF.
|
||||
ro_html->add( '</div>' ).
|
||||
ELSE.
|
||||
LOOP AT is_item-files INTO ls_file.
|
||||
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.
|
||||
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.
|
||||
lv_difflink = lcl_html_action_utils=>file_encode(
|
||||
iv_key = mo_repo->get_key( )
|
||||
ig_file = ls_file ).
|
||||
ro_html->add( '<div>' ).
|
||||
ro_html->add_anchor(
|
||||
iv_txt = 'diff'
|
||||
iv_act = |{ gc_action-go_diff }?{ lv_difflink }| ).
|
||||
ro_html->add( '</div>' ).
|
||||
ELSE.
|
||||
ro_html->add( |<span> </span>| ).
|
||||
ro_html->add( |<div> </div>| ).
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
ENDIF.
|
||||
|
||||
ENDIF.
|
||||
ro_html->add( '</td>' ).
|
||||
|
||||
ENDIF.
|
||||
|
||||
ro_html->add( '</tr>' ).
|
||||
|
||||
ENDMETHOD. "render_repo_item
|
||||
ENDMETHOD. "render_item_command
|
||||
|
||||
METHOD render_empty_package.
|
||||
|
||||
|
@ -654,7 +684,7 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD. "render_empty_package
|
||||
|
||||
METHOD render_parent_dir_line.
|
||||
METHOD render_parent_dir.
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
|
||||
|
@ -666,7 +696,7 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
|||
ENDIF.
|
||||
ro_html->add( '</tr>' ).
|
||||
|
||||
ENDMETHOD. "render_parent_dir_line
|
||||
ENDMETHOD. "render_parent_dir
|
||||
|
||||
METHOD build_dir_jump_link.
|
||||
|
||||
|
@ -689,11 +719,12 @@ CLASS lcl_gui_view_repo_content IMPLEMENTATION.
|
|||
DATA: lv_encode TYPE string,
|
||||
lo_html TYPE REF TO lcl_html_helper.
|
||||
|
||||
lv_encode = lcl_html_action_utils=>jump_encode( iv_obj_type = iv_obj_type
|
||||
iv_obj_name = iv_obj_name ).
|
||||
lv_encode = lcl_html_action_utils=>jump_encode( iv_obj_type = is_item-obj_type
|
||||
iv_obj_name = is_item-obj_name ).
|
||||
|
||||
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.
|
||||
|
||||
ENDMETHOD. "build_obj_jump_link
|
||||
|
|
Loading…
Reference in New Issue
Block a user