X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/3204b60e04bf8613858bfc4a753d7114f6ca90a3..3374f67bfe90aeae87389ca323a3bfac123ac7ea:/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 edcb7fbe85..bc828c4f38 100644 --- a/apps/workbench/app/helpers/application_helper.rb +++ b/apps/workbench/app/helpers/application_helper.rb @@ -1,4 +1,6 @@ module ApplicationHelper + include VersionHelper + def current_user controller.current_user end @@ -93,7 +95,7 @@ module ApplicationHelper if opts[:friendly_name] if attrvalue.respond_to? :friendly_link_name - link_name = attrvalue.friendly_link_name + link_name = attrvalue.friendly_link_name opts[:lookup] else begin if resource_class.name == 'Collection' @@ -150,11 +152,9 @@ module ApplicationHelper def render_editable_attribute(object, attr, attrvalue=nil, htmloptions={}) attrvalue = object.send(attr) if attrvalue.nil? - if !object.attribute_editable?(attr, :ever) or - (!object.editable? and - !object.owner_uuid.in?(my_projects.collect(&:uuid))) + if not object.attribute_editable?(attr) if attrvalue && attrvalue.length > 0 - return render_textile_if_textile( object, attr, attrvalue ) + return render_attribute_as_textile( object, attr, attrvalue, false ) else return (attr == 'name' and object.andand.default_name) || '(none)' @@ -172,7 +172,7 @@ module ApplicationHelper end attrvalue = attrvalue.to_json if attrvalue.is_a? Hash or attrvalue.is_a? Array - rendervalue = render_textile_if_textile( object, attr, attrvalue ) + rendervalue = render_attribute_as_textile( object, attr, attrvalue, false ) ajax_options = { "data-pk" => { @@ -241,10 +241,7 @@ module ApplicationHelper preconfigured_search_str = value_info[:search_for] end - if !object or - !object.attribute_editable?(attr, :ever) or - (!object.editable? and - !object.owner_uuid.in?(my_projects.collect(&:uuid))) + if not object.andand.attribute_editable?(attr) return link_to_if_arvados_object attrvalue end @@ -266,7 +263,7 @@ module ApplicationHelper dn += '[value]' end - if dataclass == Collection + if (dataclass == Collection) or (dataclass == File) selection_param = object.class.to_s.underscore + dn display_value = attrvalue if value_info.is_a?(Hash) @@ -274,12 +271,14 @@ module ApplicationHelper display_value = link.name elsif value_info[:link_name] display_value = value_info[:link_name] + elsif value_info[:selection_name] + display_value = value_info[:selection_name] end end if (attr == :components) and (subattr.size > 2) - chooser_title = "Choose a dataset for #{object.component_input_title(subattr[0], subattr[2])}:" + chooser_title = "Choose a #{dataclass == Collection ? 'dataset' : 'file'} for #{object.component_input_title(subattr[0], subattr[2])}:" else - chooser_title = "Choose a dataset:" + chooser_title = "Choose a #{dataclass == Collection ? 'dataset' : 'file'}:" end modal_path = choose_collections_path \ ({ title: chooser_title, @@ -290,6 +289,7 @@ module ApplicationHelper preconfigured_search_str: (preconfigured_search_str || ""), action_data: { merge: true, + use_preview_selection: dataclass == File ? true : nil, selection_param: selection_param, success: 'page-refresh' }.to_json, @@ -451,21 +451,31 @@ module ApplicationHelper end end - def chooser_preview_url_for object + def chooser_preview_url_for object, use_preview_selection=false case object.class.to_s when 'Collection' - polymorphic_path(object, tab_pane: 'chooser_preview') + polymorphic_path(object, tab_pane: 'chooser_preview', use_preview_selection: use_preview_selection) else nil end end + def render_attribute_as_textile( object, attr, attrvalue, truncate ) + if attrvalue && (is_textile? object, attr) + markup = render_markup attrvalue + markup = markup[0,markup.index('

')+4] if (truncate && markup.index('

')) + return markup + else + return attrvalue + end + end + + def render_localized_date(date, opts="") + raw("#{date}") + end + private def is_textile?( object, attr ) is_textile = object.textile_attributes.andand.include?(attr) end - - def render_textile_if_textile( object, attr, attrvalue ) - is_textile?( object, attr ) ? render_markup(attrvalue) : attrvalue - end end