2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'app/helpers/skyline/editors/file_browser.rb', line 2
def output_without_errors
attr_names = self.attribute_names.dup
attr_names[-1] = attr_names[-1].to_s.gsub(/_id$/, "_attributes")
input_name_prefix = input_name(attr_names) input_id_prefix = input_id(attr_names)
association = field.name.to_s.gsub(/_id$/, "") location = nil
if record.respond_to?(association)
location = :model
media_file = record.send(association)
media_file ||= record.send("build_#{association}")
media_file_name = media_file.referable_id.blank? ? "" : media_file.name
linked = !media_file.referable_type.blank?
referable_type = media_file.referable_type
referable_id = media_file.referable_id
else
location = :settings
media_file = Skyline::MediaFile.find_by_id(field.value(record))
media_file_name = media_file.name if media_file
linked = media_file.present?
referable_type = media_file ? "Skyline::MediaFile" : ""
referable_id = media_file ? media_file.id : ""
end
<<-EOF
<div id="#{input_id_prefix}" class="#{!media_file.blank? && media_file.file_type}">
#{hidden_field_tag(input_name(attr_names+['id']), media_file.id) if location == :model}
#{hidden_field_tag(input_name(attr_names+['_destroy']), 0, :class => 'delete')}
#{hidden_field_tag(input_name(attr_names+['referable_type']), referable_type, :class => 'referable_type')}
#{hidden_field_tag(input_name(attr_names+['referable_id']), referable_id, :class => 'referable_id')}
<div class="content-browser">
<div class="relatesTo#{' linked' if linked}">
<div class="not-linked">
<div class="blank">
#{t(:nothing_selected, :scope => [:browser,:file])}
#{link_to_function button_text(:browse), "Application.Browser.browseFileFor('#{input_id_prefix}');", :class => "browse button small"}
</div>
</div>
<div class="linked">
#{t(:links_to, :scope => [:browser,:file], :referable_title => "<span class=\"referable_title\">#{media_file_name}</span>")}
#{link_to_function button_text(:delete), "Application.Browser.unlink('#{input_id_prefix}');", :class => "delete button small red"}
#{link_to_function button_text(:browse), "Application.Browser.browseFileFor('#{input_id_prefix}');", :class => "browse button small"}
</div>
</div>
</div>
</div>
EOF
end
|