[ARVADOS] created: d62ad17b3eca4b107a7602045980a118a09115e7
git at public.curoverse.com
git at public.curoverse.com
Fri Dec 12 14:02:31 EST 2014
at d62ad17b3eca4b107a7602045980a118a09115e7 (commit)
commit d62ad17b3eca4b107a7602045980a118a09115e7
Author: Radhika Chippada <radhika at curoverse.com>
Date: Fri Dec 12 14:02:03 2014 -0500
4414: add "Add a new project" link to project dropdown.
diff --git a/apps/workbench/app/controllers/application_controller.rb b/apps/workbench/app/controllers/application_controller.rb
index 6fea625..18ad704 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 600c6ab..5ba2073 100644
--- a/apps/workbench/app/views/application/_projects_tree_menu.html.erb
+++ b/apps/workbench/app/views/application/_projects_tree_menu.html.erb
@@ -1,4 +1,9 @@
<li>
+ <%= link_to projects_path, method: :post, class: 'btn btn-xs btn-default pull-right' do %>
+ <i class="fa fa-plus"></i> Add a new project
+ <% end %>
+ </li>
+ <li>
<%= project_link_to.call({object: current_user, depth: 0}) do %>
<span style="padding-left: 0"></span>Home
<% end %>
diff --git a/apps/workbench/app/views/layouts/body.html.erb b/apps/workbench/app/views/layouts/body.html.erb
index 035d147..07b536b 100644
--- a/apps/workbench/app/views/layouts/body.html.erb
+++ b/apps/workbench/app/views/layouts/body.html.erb
@@ -153,19 +153,14 @@
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
- <%= render partial: "projects_tree_menu", locals: {
+ <%= render partial: "projects_tree_menu", locals: {
:project_link_to => Proc.new do |pnode, &block|
link_to(project_path(pnode[:object].uuid),
data: { 'object-uuid' => pnode[:object].uuid,
'name' => 'name' },
&block)
end,
- :top_button => Proc.new do %>
- <% link_to projects_path, method: :post, class: 'btn btn-xs btn-default pull-right' do %>
- <i class="fa fa-plus"></i> New project
- <% end %>
- <% end %>
- <% } %>
+ } %>
</ul>
</li>
<% if @name_link or @object %>
diff --git a/apps/workbench/test/integration/projects_test.rb b/apps/workbench/test/integration/projects_test.rb
index 0ed2624..340d9ba 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
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list