Module: FcrepoAdmin::Helpers::DatastreamsHelperBehavior
- Included in:
- DatastreamsHelper
- Defined in:
- lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb
Instance Method Summary collapse
- #custom_datastream_nav_item(item) ⇒ Object
- #datastream_alert(alert) ⇒ Object
- #datastream_alerts(*alerts) ⇒ Object
- #datastream_history_columns ⇒ Object
- #datastream_index_columns ⇒ Object
- #datastream_nav ⇒ Object
- #datastream_nav_header ⇒ Object
- #datastream_nav_item(item) ⇒ Object
- #datastream_nav_items ⇒ Object
- #datastream_params ⇒ Object
- #datastream_show_profile_keys ⇒ Object
- #datastream_title ⇒ Object
- #format_datastream_control_group(ds) ⇒ Object
- #format_datastream_profile_value(ds, key) ⇒ Object
- #format_datastream_state(ds) ⇒ Object
- #format_datastream_version_id(ds) ⇒ Object
- #link_to_datastream(view, condition = true, unless_current = true) ⇒ Object
- #link_to_datastream_version(dsVersion) ⇒ Object
- #render_datastream_alert(alert, opts = {}) ⇒ Object
- #render_datastream_dsid_label ⇒ Object
- #render_datastream_version ⇒ Object
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_columns ⇒ Object
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_columns ⇒ Object
24 25 26 |
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 24 def datastream_index_columns FcrepoAdmin.datastream_index_columns end |
#datastream_nav ⇒ Object
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_header ⇒ Object
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_items ⇒ Object
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_params ⇒ Object
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_keys ⇒ Object
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_title ⇒ Object
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 |
#link_to_datastream(view, condition = true, unless_current = true) ⇒ Object
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 |
#link_to_datastream_version(dsVersion) ⇒ Object
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_label ⇒ Object
80 81 82 |
# File 'lib/fcrepo_admin/helpers/datastreams_helper_behavior.rb', line 80 def render_datastream_dsid_label content_tag :span, @datastream.dsid, :class => "label" end |
#render_datastream_version ⇒ Object
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 |