Improving link names
authorPeter Amstutz <peter.amstutz@curoverse.com>
Sat, 11 Jan 2014 00:09:18 +0000 (19:09 -0500)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Sat, 11 Jan 2014 00:09:18 +0000 (19:09 -0500)
apps/workbench/app/helpers/application_helper.rb
apps/workbench/app/views/application/_arvados_attr_value.html.erb
apps/workbench/app/views/application/_arvados_object.html.erb
apps/workbench/app/views/application/_arvados_object_attr.html.erb

index c67b314cb82e72edbe4b338337bbe63fdd5b741e..fe35bfe99e8b37833a9da12b8c0780a189736e07 100644 (file)
@@ -32,8 +32,15 @@ module ApplicationHelper
       link_name = opts[:link_text]
       if !link_name
         link_name = link_uuid
-        if opts[:with_class_name]
-          link_name = "#{resource_class.to_s} #{link_name}"
+        opts[:friendly_name]
+        if opts[:friendly_name] and resource_class.column_names.include? "name"
+          link_name = resource_class.find(link_uuid).name
+        elsif opts[:friendly_name] and resource_class.column_names.include? "first_name"
+          link_name = "#{resource_class.find(link_uuid).first_name} #{resource_class.find(link_uuid).last_name}"
+        else
+          if opts[:with_class_name]
+            link_name = "#{resource_class.to_s} #{link_name}"
+          end
         end
       end
       link_to link_name, { controller: resource_class.to_s.underscore.pluralize, action: 'show', id: link_uuid }, style_opts
index 4dc6daa64086276a3cd6889a1a943839881c76ae..0fb0181c860101417714f584939475379cbc9301 100644 (file)
@@ -5,10 +5,10 @@
 <% else %>
     <% if attr == 'uuid' and (uuid = attrvalue.split('-')).size == 3 %>
       <%= uuid[0..-2].join('-') %>-<b><%= uuid[-1] %></b>
-    <% elsif obj.attribute_editable?(attr) %>
+    <% elsif allow_edit && obj.attribute_editable?(attr) %>
       <%= render_editable_attribute obj, attr %>
     <% else %>
-      <%= link_to_if_arvados_object attrvalue, {referring_attr: attr, referring_object: obj, with_class_name: true} %>
+      <%= link_to_if_arvados_object attrvalue, {referring_attr: attr, referring_object: obj, with_class_name: true, friendly_name: true} %>
     <% end %>
     <% if resource_class_for_uuid(attrvalue, {referring_object: obj, referring_attr: attr}) %>
       <%= link_to_if_arvados_object(attrvalue, { referring_object: obj, link_text: raw('<span class="icon-hand-right"></span>'), referring_attr: attr })  %>
index c41fa18fcf82924f1501e99be80e21d186bb4ae9..8e0350ab8326b9c97ecbfbaaeb6403b01c8babca 100644 (file)
   <tbody>
     <% incoming.each do |link| %>
       <tr>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "uuid", attrvalue: link.uuid } %></td>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "link_class", attrvalue: link.link_class } %></td>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "name", attrvalue: link.name } %></td>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "head_uuid", attrvalue: link.head_uuid } %></td>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "properties", attrvalue: link.properties } %></td>
+        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "uuid", attrvalue: link.uuid, allow_edit: false } %></td>
+        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "link_class", attrvalue: link.link_class, allow_edit: false } %></td>
+        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "name", attrvalue: link.name, allow_edit: false } %></td>
+        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "head_uuid", attrvalue: link.head_uuid, allow_edit: false } %></td>
+        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "properties", attrvalue: link.properties, allow_edit: false } %></td>
       </tr>
     <% end %>
   </tbody>
   <tbody>
     <% outgoing.each do |link| %>
       <tr>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "uuid", attrvalue: link.uuid } %></td>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "link_class", attrvalue: link.link_class } %></td>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "name", attrvalue: link.name } %></td>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "tail_uuid", attrvalue: link.tail_uuid } %></td>
-        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "properties", attrvalue: link.properties } %></td>
+        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "uuid", attrvalue: link.uuid, allow_edit: false } %></td>
+        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "link_class", attrvalue: link.link_class, allow_edit: false } %></td>
+        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "name", attrvalue: link.name, allow_edit: false } %></td>
+        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "tail_uuid", attrvalue: link.tail_uuid, allow_edit: false } %></td>
+        <td><%= render partial: 'application/arvados_attr_value', locals: { obj: link, attr: "properties", attrvalue: link.properties, allow_edit: false } %></td>
       </tr>
     <% end %>
   </tbody>
index ec2ac365e09003dd0f0d361e2ecf555da569eb84..90c8a61e46c896cb3cd5dee4bf1bc5621566e515 100644 (file)
@@ -2,7 +2,7 @@
 <tr class="info">
   <td><%= attr %>[<%= infokey %>]</td>
   <td>
-    <%= render partial: 'application/arvados_attr_value', locals: { obj: @object, attr: nil, attrvalue: infocontent } %>
+    <%= render partial: 'application/arvados_attr_value', locals: { obj: @object, attr: nil, attrvalue: infocontent, allow_edit: false } %>
   </td>
 </tr>
 <% end %>
@@ -10,7 +10,7 @@
 <tr class="<%= 'info' if %w(uuid owner_uuid created_at modified_at modified_by_user_uuid modified_by_client_uuid updated_at).index(attr.to_s).nil? %>">
   <td><%= attr %></td>
   <td>
-    <%= render partial: 'application/arvados_attr_value', locals: { obj: @object, attr: attr, attrvalue: attrvalue } %>
+    <%= render partial: 'application/arvados_attr_value', locals: { obj: @object, attr: attr, attrvalue: attrvalue, allow_edit: true } %>
   </td>
 </tr>
 <% end %>