mirror of
				https://github.com/scinote-eln/scinote-web.git
				synced 2025-10-31 16:49:40 +08:00 
			
		
		
		
	Add inline editing for folder name [SCI-5896] (#3430)
This commit is contained in:
		
							parent
							
								
									7b0ea6f701
								
							
						
					
					
						commit
						d4f974ac64
					
				
					 2 changed files with 35 additions and 2 deletions
				
			
		|  | @ -20,6 +20,7 @@ class ProjectsController < ApplicationController | |||
|   before_action :set_inline_name_editing, only: %i(show) | ||||
|   before_action :load_exp_sort_var, only: :show | ||||
|   before_action :reset_invalid_view_state, only: %i(index cards show) | ||||
|   before_action :set_folder_inline_name_editing, only: %i(index cards) | ||||
| 
 | ||||
|   layout 'fluid' | ||||
| 
 | ||||
|  | @ -48,7 +49,15 @@ class ProjectsController < ApplicationController | |||
|         breadcrumbs_html = render_to_string(partial: 'projects/index/breadcrumbs.html.erb', | ||||
|                                             locals: { target_folder: current_folder, folder_page: true }) | ||||
|         projects_cards_url = project_folder_cards_url(current_folder) | ||||
|         title = current_folder.name | ||||
|         title = if @inline_editable_title_config.present? | ||||
|                   render_to_string(partial: 'shared/inline_editing', | ||||
|                     locals: { | ||||
|                       initial_value: current_folder&.name, | ||||
|                       config: @inline_editable_title_config | ||||
|                     }) | ||||
|                 else | ||||
|                   current_folder.name | ||||
|                 end | ||||
|       else | ||||
|         breadcrumbs_html = '' | ||||
|         projects_cards_url = cards_projects_url | ||||
|  | @ -367,6 +376,18 @@ class ProjectsController < ApplicationController | |||
|     } | ||||
|   end | ||||
| 
 | ||||
|   def set_folder_inline_name_editing | ||||
|     return if !can_update_team?(current_team) || @current_folder.nil? | ||||
| 
 | ||||
|     @inline_editable_title_config = { | ||||
|       name: 'title', | ||||
|       params_group: 'project_folder', | ||||
|       item_id: @current_folder.id, | ||||
|       field_to_udpate: 'name', | ||||
|       path_to_update: project_folder_path(@current_folder) | ||||
|     } | ||||
|   end | ||||
| 
 | ||||
|   def load_exp_sort_var | ||||
|     if params[:sort] | ||||
|       @project.experiments_order = params[:sort].to_s | ||||
|  |  | |||
|  | @ -3,7 +3,19 @@ | |||
|     <%= render partial: 'projects/index/breadcrumbs', locals: { target_folder: current_folder, folder_page: true } if current_folder %> | ||||
|   </div> | ||||
|   <div class="title-row"> | ||||
|     <h1 data-view-mode="active" class="projects-title name-readonly-placeholder"><%= current_folder&.name || t('projects.index.head_title') %></h1> | ||||
|       <% if current_folder&.name && @inline_editable_title_config.present? %> | ||||
|         <h1 data-view-mode="active" class="projects-title"> | ||||
|           <%= render partial: "shared/inline_editing", | ||||
|                      locals: { | ||||
|                         initial_value: current_folder&.name, | ||||
|                         config: @inline_editable_title_config | ||||
|                      } %> | ||||
|         </h1> | ||||
|       <% else %> | ||||
|         <h1 data-view-mode="active" class="projects-title name-readonly-placeholder"> | ||||
|           <%= current_folder&.name || t('projects.index.head_title') %> | ||||
|         </h1> | ||||
|       <% end %> | ||||
|     <h1 data-view-mode="archived"> | ||||
|       <i class="fas fa-archive"></i>  | ||||
|       <span class="projects-title name-readonly-placeholder"><%= current_folder&.name || t('projects.index.head_title_archived') %></span> | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue