From d62ad17b3eca4b107a7602045980a118a09115e7 Mon Sep 17 00:00:00 2001 From: Radhika Chippada Date: Fri, 12 Dec 2014 14:02:03 -0500 Subject: [PATCH] 4414: add "Add a new project" link to project dropdown. --- .../app/controllers/application_controller.rb | 15 ++++++++++++++- .../application/_projects_tree_menu.html.erb | 5 +++++ apps/workbench/app/views/layouts/body.html.erb | 9 ++------- .../workbench/test/integration/projects_test.rb | 17 ++++++++++++++++- 4 files changed, 37 insertions(+), 9 deletions(-) diff --git a/apps/workbench/app/controllers/application_controller.rb b/apps/workbench/app/controllers/application_controller.rb index 6fea62563d..18ad704e84 100644 --- a/apps/workbench/app/controllers/application_controller.rb +++ b/apps/workbench/app/controllers/application_controller.rb @@ -322,7 +322,20 @@ class ApplicationController < ActionController::Base @new_resource_attrs ||= {} @new_resource_attrs.reject! { |k,v| k.to_s == 'uuid' } @object ||= model_class.new @new_resource_attrs, params["options"] - if @object.save + + begin + object_saved = @object.save + rescue ArvadosApiClient::ApiErrorResponseException => e + if e.message.include? 'groups_owner_uuid_name_unique' + rename_to = @object.name + ' created at ' + Time.now.to_s + @object.name = rename_to + object_saved = @object.save + else + raise + end + end + + if object_saved show else render_error status: 422 diff --git a/apps/workbench/app/views/application/_projects_tree_menu.html.erb b/apps/workbench/app/views/application/_projects_tree_menu.html.erb index 600c6ab96f..5ba2073c19 100644 --- a/apps/workbench/app/views/application/_projects_tree_menu.html.erb +++ b/apps/workbench/app/views/application/_projects_tree_menu.html.erb @@ -1,3 +1,8 @@ +
  • + <%= link_to projects_path, method: :post, class: 'btn btn-xs btn-default pull-right' do %> + Add a new project + <% end %> +
  • <%= project_link_to.call({object: current_user, depth: 0}) do %> Home diff --git a/apps/workbench/app/views/layouts/body.html.erb b/apps/workbench/app/views/layouts/body.html.erb index 035d147f04..07b536b8e3 100644 --- a/apps/workbench/app/views/layouts/body.html.erb +++ b/apps/workbench/app/views/layouts/body.html.erb @@ -153,19 +153,14 @@
  • <% if @name_link or @object %> diff --git a/apps/workbench/test/integration/projects_test.rb b/apps/workbench/test/integration/projects_test.rb index 0ed2624d8d..340d9ba2bb 100644 --- a/apps/workbench/test/integration/projects_test.rb +++ b/apps/workbench/test/integration/projects_test.rb @@ -147,7 +147,6 @@ class ProjectsTest < ActionDispatch::IntegrationTest find(".dropdown-menu a", text: "Home").click find('.btn', text: "Add a subproject").click - # within('.editable', text: 'New project') do within('h2') do find('.fa-pencil').click find('.editable-input input').set('Project 1234') @@ -728,4 +727,20 @@ class ProjectsTest < ActionDispatch::IntegrationTest end end + test "add new project using projects dropdown" do + # verify that selection options are disabled on the project until an item is selected + visit page_with_token 'active', '/' + + # Add a new project + find("#projects-menu").click + click_link 'Add a new project' + assert_text 'New project' + assert_text 'No description provided' + + # Add one more new project + find("#projects-menu").click + click_link 'Add a new project' + assert_text 'New project created at' + assert_text 'No description provided' + end end -- 2.39.5