Module: FcrepoAdmin::Helpers::DatastreamsHelperBehavior

Included in:
DatastreamsHelper
Defined in:
lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb

Instance Method Summary collapse

Instance Method Details

#custom_datastream_nav_item(item) ⇒ Object



66
67
68
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 66

def custom_datastream_nav_item(item)
  # Override this method with your custom item behavior
end

#datastream_alert(alert) ⇒ Object



93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 93

def datastream_alert(alert)
  case
  when alert == :system_managed
    if ["DC", "RELS-EXT", "rightsMetadata", "defaultRights"].include?(@datastream.dsid)
      render_datastream_alert(alert, :caution => true)
    end
  when alert == :not_versionable        
    render_datastream_alert(alert, :caution => true) unless @datastream.versionable
  when alert == :inactive
    render_datastream_alert(alert) if @datastream.inactive?
  when alert == :deleted
    render_datastream_alert(alert, :css_class => "alert alert-error") if @datastream.deleted?
  end
end

#datastream_alerts(*alerts) ⇒ Object



84
85
86
87
88
89
90
91
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 84

def datastream_alerts(*alerts)
  rendered = ""
  alerts.each do |alert|
    content = datastream_alert(alert)
    rendered << content unless content.nil?
  end
  rendered.html_safe
end

#datastream_history_columnsObject



28
29
30
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 28

def datastream_history_columns
  FcrepoAdmin.datastream_history_columns
end

#datastream_index_columnsObject



24
25
26
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 24

def datastream_index_columns
  FcrepoAdmin.datastream_index_columns
end

#datastream_navObject



12
13
14
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 12

def datastream_nav
  render :partial => 'fcrepo_admin/shared/context_nav', :locals => {:header => datastream_nav_header, :items => datastream_nav_items}      
end

#datastream_nav_headerObject



16
17
18
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 16

def datastream_nav_header
  t("fcrepo_admin.datastream.nav.header")
end

#datastream_nav_item(item) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 36

def datastream_nav_item(item)
  case
  when item == :dsid            then render_datastream_dsid_label
  when item == :version         then render_datastream_version unless @datastream.current_version?
  when item == :current_version then link_to_datastream item, !@datastream.current_version?, false
  when item == :summary         then link_to_datastream item
  when item == :content         then link_to_datastream item, @datastream.content_is_text?
  when item == :download        then link_to_datastream item, @datastream.content_is_downloadable?, false
  when item == :edit            then link_to_datastream item, @datastream.content_is_editable? && can?(:edit, @object)
  when item == :upload          then link_to_datastream item, @datastream.content_is_uploadable? && can?(:upload, @object)
  when item == :history         then link_to_datastream item, !@datastream.new?
  else custom_datastream_nav_item item
  end
end

#datastream_nav_itemsObject



20
21
22
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 20

def datastream_nav_items
  FcrepoAdmin.datastream_nav_items.collect { |item| datastream_nav_item(item) }.reject { |item| item.nil? }
end

#datastream_paramsObject



32
33
34
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 32

def datastream_params
  params.has_key?(:asOfDateTime) ? {:asOfDateTime => params[:asOfDateTime]} : {}
end

#datastream_show_profile_keysObject



8
9
10
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 8

def datastream_show_profile_keys
  FcrepoAdmin.datastream_show_profile_keys
end

#datastream_titleObject



4
5
6
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 4

def datastream_title
  "#{t('fcrepo_admin.datastream.title')}: #{@datastream.dsid}"
end

#format_datastream_control_group(ds) ⇒ Object



122
123
124
125
126
127
128
129
130
131
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 122

def format_datastream_control_group(ds)
  control_group = ds.controlGroup
  formatted = case
              when control_group == 'M' then "M (Managed)"
              when control_group == 'X' then "X (Inline XML)"
              when control_group == 'E' then "E (External Referenced)"
              when control_group == 'R' then "R (Redirect)"
              end
  formatted
end

#format_datastream_profile_value(ds, key) ⇒ Object



139
140
141
142
143
144
145
146
147
148
149
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 139

def format_datastream_profile_value(ds, key)
  case
  when key == "dsSize" then number_to_human_size(ds.dsSize)
  when key == "dsCreateDate" then ds.dsCreateDate.strftime("%Y-%m-%dT%H:%M:%S.%LZ")
  when key == "dsLocation" && ds.content_is_url? then link_to(ds.dsLocation, ds.dsLocation)
  when key == "dsState" then format_datastream_state(ds)
  when key == "dsControlGroup" then format_datastream_control_group(ds)
  when key == "dsVersionID" then format_datastream_version_id(ds)
  else ds.profile[key]
  end
end

#format_datastream_state(ds) ⇒ Object



112
113
114
115
116
117
118
119
120
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 112

def format_datastream_state(ds)
  state = ds.dsState
  formatted = case 
              when state == 'A' then "A (Active)"
              when state == 'I' then "I (Inactive)"
              when state == 'D' then "D (Deleted)"
              end
  formatted
end

#format_datastream_version_id(ds) ⇒ Object



133
134
135
136
137
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 133

def format_datastream_version_id(ds)
  version_id = ds.dsVersionID
  version_id += " (#{t('fcrepo_admin.datastream.current_version')})" if ds.current_version?
  version_id
end


51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 51

def link_to_datastream(view, condition=true, unless_current=true)
  return nil unless condition
  path = case
         when view == :current_version then fcrepo_admin.object_datastream_path(@object, @datastream)
         when view == :summary         then fcrepo_admin.object_datastream_path(@object, @datastream, datastream_params)
         when view == :content         then fcrepo_admin.content_object_datastream_path(@object, @datastream, datastream_params)
         when view == :download        then fcrepo_admin.download_object_datastream_path(@object, @datastream, datastream_params)
         when view == :edit            then fcrepo_admin.edit_object_datastream_path(@object, @datastream)
         when view == :upload          then fcrepo_admin.upload_object_datastream_path(@object, @datastream)
         when view == :history         then fcrepo_admin.history_object_datastream_path(@object, @datastream)
         end
  label = t("fcrepo_admin.datastream.nav.items.#{view}")
  unless_current ? link_to_unless_current(label, path) : link_to(label, path)
end


70
71
72
73
74
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 70

def link_to_datastream_version(dsVersion)
  link_to_unless dsVersion.current_version?, dsVersion.dsVersionID, fcrepo_admin.object_datastream_path(@object, @datastream, :asOfDateTime => dsVersion.asOfDateTime) do |name|
    "#{name} (current version)"
  end
end

#render_datastream_alert(alert, opts = {}) ⇒ Object



108
109
110
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 108

def render_datastream_alert(alert, opts={})
  render :partial => 'alert', :locals => {:alert => alert, :caution => opts.fetch(:caution, false), :css_class => opts.fetch(:css_class, "alert")}
end

#render_datastream_dsid_labelObject



80
81
82
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 80

def render_datastream_dsid_label
   :span, @datastream.dsid, :class => "label"
end

#render_datastream_versionObject



76
77
78
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 76

def render_datastream_version
  render :partial => 'version', :locals => {:datastream => @datastream}
end