X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/41c7c826a7e4c3a074a6ab5a719bf4c88e9a0e28..14ea55f217bbd7061fafc1fe69f4f453ad7c3e59:/apps/workbench/app/helpers/application_helper.rb diff --git a/apps/workbench/app/helpers/application_helper.rb b/apps/workbench/app/helpers/application_helper.rb index 6de96e8995..e608572f05 100644 --- a/apps/workbench/app/helpers/application_helper.rb +++ b/apps/workbench/app/helpers/application_helper.rb @@ -106,12 +106,14 @@ module ApplicationHelper end def render_editable_subattribute(object, attr, subattr, template, htmloptions={}) - attrvalue = object.send(attr) - subattr.each do |k| - if attrvalue and attrvalue.is_a? Hash - attrvalue = attrvalue[k] - else - break + if object + attrvalue = object.send(attr) + subattr.each do |k| + if attrvalue and attrvalue.is_a? Hash + attrvalue = attrvalue[k] + else + break + end end end @@ -135,18 +137,24 @@ module ApplicationHelper end end - return attrvalue if !object.attribute_editable? attr - - if not dataclass - rsc = template - if template.is_a? Hash - if template[:value] - rsc = template[:value] - elsif template[:default] - rsc = template[:default] - end + rsc = template + if template.is_a? Hash + if template[:value] + rsc = template[:value] + elsif template[:default] + rsc = template[:default] end + end + + return link_to_if_arvados_object(rsc) if !object + return link_to_if_arvados_object(attrvalue) if !object.attribute_editable? attr + if dataclass + begin + dataclass = dataclass.constantize + rescue NameError + end + else dataclass = ArvadosBase.resource_class_for_uuid(rsc) end @@ -178,7 +186,9 @@ module ApplicationHelper if dataclass and dataclass.is_a? Class items = [] - items.append({name: attrvalue, uuid: attrvalue, type: dataclass.to_s}) + if attrvalue and !attrvalue.empty? + items.append({name: attrvalue, uuid: attrvalue, type: dataclass.to_s}) + end #dataclass.where(uuid: attrvalue).each do |item| # items.append({name: item.uuid, uuid: item.uuid, type: dataclass.to_s}) #end @@ -192,7 +202,7 @@ module ApplicationHelper "data-placement" => "bottom", "data-type" => datatype, "data-url" => url_for(action: "update", id: object.uuid, controller: object.class.to_s.pluralize.underscore), - "data-title" => "Update #{subattr[-1].to_s.titleize}", + "data-title" => "Set value for #{subattr[-1].to_s}", "data-name" => dn, "data-pk" => "{id: \"#{object.uuid}\", key: \"#{object.class.to_s.underscore}\"}", "data-showbuttons" => "false", @@ -201,7 +211,7 @@ module ApplicationHelper :id => id }.merge(htmloptions) - lt += raw('