mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-10-31 00:19:20 +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