Add inline editing for folder name [SCI-5896] (#3430)

This commit is contained in:
aignatov-bio 2021-07-21 21:33:13 +02:00 committed by GitHub
parent 7b0ea6f701
commit d4f974ac64
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 2 deletions

View file

@ -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

View file

@ -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>&nbsp;
<span class="projects-title name-readonly-placeholder"><%= current_folder&.name || t('projects.index.head_title_archived') %></span>