[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