class Formtastic::Inputs::MultipleFilesInput include Formtastic::Inputs::Base def to_html object = builder.object klass = Formtastic::Inputs::MultipleFilesInput param_key = "#{object.class.table_name.singularize}[#{method}]" title = method.to_s.pluralize.titleize assets = object.send(method) defn = object.class.haraway_assets[method.to_s] accepts = defn.profile.try(:accepted_file_types) accepts = accepts.join(", ") if accepts versions = compile_versions_array(defn.profile) sorted_assets = klass.sorted_assets(assets.clone).map do |asset| klass.xfile_html(self, template, param_key, asset, versions) end <<-HTML #{title} Browse files #{ klass.menu_html } #{ asset_attributes_form(template, param_key) } #{ sorted_assets.join("") } #{ versions_html(defn.profile) } HTML end def asset_attributes_form(template, param_key, asset=nil) if block = @options[:block] h = @builder.semantic_fields_for(@method, asset, index: "", &block) else h = "" end # select h.gsub!(" #{version.params.to_json} HTML end.join("") end # # Utilities # def self.sorted_assets(array) array end def self.xfile_html(input, template, param_key, asset, versions) asset_url_original = asset.url(:original) # thumb if versions.select { |v| v.name == "thumb" }.length >= 1 asset_url_thumb = asset.url(:thumb) end if asset_url_thumb thumb_html = "" else thumb_html = "" end # return <<-HTML #{ thumb_html } #{ input.asset_attributes_form(template, param_key, asset) } #{ Formtastic::Inputs::MultipleFilesInput.menu_html } #{ template.hidden_field_tag(param_key + "[][file_name]", asset.file_name) } #{ template.hidden_field_tag(param_key + "[][id]", asset.id) } #{ template.hidden_field_tag(param_key + "[][_destroy]", "") } #{ asset.file_name } HTML end def self.menu_html <<-HTML HTML end end