diff --git a/app/assets/javascripts/shared/inline_editing.js b/app/assets/javascripts/shared/inline_editing.js index 7ce2b36a0..c1b7b7cd9 100644 --- a/app/assets/javascripts/shared/inline_editing.js +++ b/app/assets/javascripts/shared/inline_editing.js @@ -2,6 +2,8 @@ /* global SmartAnnotation */ var inlineEditing = (function() { + const SIDEBAR_ITEM_TYPES = ['project', 'experiment', 'my_module', 'repository']; + var editBlocks = '.inline-init-handler'; function appendAfterLabel(container) { @@ -29,9 +31,17 @@ var inlineEditing = (function() { }); } + function updateSideBarNav(itemType, itemId, newData) { + let sidebar = $('#slide-panel'); + let link = sidebar.find(`a[data-type="${itemType}"][data-id="${itemId}"]`); + link.prop('title', newData); + link.text(newData); + } + function updateField(container) { var params; var paramsGroup = container.data('params-group'); + var itemId = container.data('item-id'); var fieldToUpdate = container.data('field-to-update'); if (inputField(container).val() === container.attr('data-original-name')) { @@ -83,6 +93,10 @@ var inlineEditing = (function() { .addClass('hidden') .attr('value', inputField(container).val()); appendAfterLabel(container); + + if (SIDEBAR_ITEM_TYPES.includes(paramsGroup)) { + updateSideBarNav(paramsGroup, itemId, viewData); + } }, error: function(response) { var error = response.responseJSON[fieldToUpdate]; diff --git a/app/assets/javascripts/sidebar.js b/app/assets/javascripts/sidebar.js index 9e1338f71..2424a7c01 100644 --- a/app/assets/javascripts/sidebar.js +++ b/app/assets/javascripts/sidebar.js @@ -121,22 +121,22 @@ var experimentId = sidebar.data('current-experiment'); var taskId = sidebar.data('current-task'); var currentPage = sidebar.data('page'); - var li; + var link; if (currentPage === 'project') { - li = sidebar.find('li[data-project-id="' + projectId + '"]'); + link = sidebar.find(`a[data-type="project"][data-id="${projectId}"]`); } else if (currentPage === 'experiment') { - li = sidebar.find('[data-experiment-id="' + experimentId + '"]'); + link = sidebar.find(`a[data-type="experiment"][data-id="${experimentId}"]`); } else if (currentPage === 'canvas') { - li = sidebar.find('[data-experiment-id="' + experimentId + '"]'); - li.find('.task-tree-link') - .append('' - + ''); + link = sidebar.find(`a[data-type="experiment"][data-id="${experimentId}"]`); + let treeLink = link.closest('li').find('.task-tree-link'); + treeLink.find('.canvas-center-on').remove(); + treeLink.append(''); } else if (currentPage === 'task') { - li = sidebar.find('[data-module-id="' + taskId + '"]'); + link = sidebar.find(`a[data-type="my_module"][data-id="${taskId}"]`); } - li.find('a:first').addClass('disabled'); - li.addClass('active'); + link.addClass('disabled'); + link.closest('li').addClass('active'); } activateCurrent(); diff --git a/app/controllers/experiments_controller.rb b/app/controllers/experiments_controller.rb index c069e53ec..0addb3e1b 100644 --- a/app/controllers/experiments_controller.rb +++ b/app/controllers/experiments_controller.rb @@ -314,6 +314,7 @@ class ExperimentsController < ApplicationController @inline_editable_title_config = { name: 'title', params_group: 'experiment', + item_id: @experiment.id, field_to_udpate: 'name', path_to_update: experiment_path(@experiment) } diff --git a/app/controllers/my_modules_controller.rb b/app/controllers/my_modules_controller.rb index 0a6b3f4ac..0d43641ba 100644 --- a/app/controllers/my_modules_controller.rb +++ b/app/controllers/my_modules_controller.rb @@ -720,6 +720,7 @@ class MyModulesController < ApplicationController @inline_editable_title_config = { name: 'title', params_group: 'my_module', + item_id: @my_module.id, field_to_udpate: 'name', path_to_update: my_module_path(@my_module) } diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index a22ac69b6..0db4d5f56 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -331,6 +331,7 @@ class ProjectsController < ApplicationController @inline_editable_title_config = { name: 'title', params_group: 'project', + item_id: @project.id, field_to_udpate: 'name', path_to_update: project_path(@project) } diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 212b23aca..b114ecf22 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -336,6 +336,7 @@ class RepositoriesController < ApplicationController @inline_editable_title_config = { name: 'title', params_group: 'repository', + item_id: @repository.id, field_to_udpate: 'name', path_to_update: team_repository_path(@repository), label_after: " " diff --git a/app/views/repositories/_sidebar.html.erb b/app/views/repositories/_sidebar.html.erb index ed41a4327..43f03485b 100644 --- a/app/views/repositories/_sidebar.html.erb +++ b/app/views/repositories/_sidebar.html.erb @@ -16,13 +16,11 @@ <% repositories.each do |repository| %>