Module: Spree::Admin::AssetsHelper
- Included in:
- AssetsController, ProductsController
- Defined in:
- app/helpers/spree/admin/assets_helper.rb
Instance Method Summary collapse
- #clear_session_for_uploaded_assets(viewable_type) ⇒ Object
- #ensure_session_uploaded_assets_uuid(viewable_type) ⇒ Object
- #media_form_assets(viewable, viewable_type) ⇒ Object
- #session_uploaded_assets(viewable_type) ⇒ Object
- #session_uploaded_assets_uuid_key(viewable_type) ⇒ Object
- #store_uploaded_asset_in_session(asset, viewable_type) ⇒ Object
Instance Method Details
#clear_session_for_uploaded_assets(viewable_type) ⇒ Object
29 30 31 |
# File 'app/helpers/spree/admin/assets_helper.rb', line 29 def clear_session_for_uploaded_assets(viewable_type) session.delete(session_uploaded_assets_uuid_key(viewable_type)) end |
#ensure_session_uploaded_assets_uuid(viewable_type) ⇒ Object
14 15 16 |
# File 'app/helpers/spree/admin/assets_helper.rb', line 14 def ensure_session_uploaded_assets_uuid(viewable_type) session[session_uploaded_assets_uuid_key(viewable_type)] ||= SecureRandom.uuid end |
#media_form_assets(viewable, viewable_type) ⇒ Object
4 5 6 7 8 9 10 11 12 |
# File 'app/helpers/spree/admin/assets_helper.rb', line 4 def media_form_assets(viewable, viewable_type) if viewable&.persisted? viewable.images elsif session_uploaded_assets(viewable_type).any? Spree::Asset.accessible_by(current_ability, :manage).where(id: session_uploaded_assets(viewable_type)) else [] end end |
#session_uploaded_assets(viewable_type) ⇒ Object
23 24 25 26 27 |
# File 'app/helpers/spree/admin/assets_helper.rb', line 23 def session_uploaded_assets(viewable_type) return Spree::Asset.none if session[session_uploaded_assets_uuid_key(viewable_type)].blank? Spree::Asset.with_session_uploaded_assets_uuid(session[session_uploaded_assets_uuid_key(viewable_type)]).where(viewable_id: nil) end |
#session_uploaded_assets_uuid_key(viewable_type) ⇒ Object
33 34 35 36 37 38 39 |
# File 'app/helpers/spree/admin/assets_helper.rb', line 33 def session_uploaded_assets_uuid_key(viewable_type) [ 'spree.admin.uploaded_assets', viewable_type&.underscore, 'uuid' ].compact_blank.join('.') end |
#store_uploaded_asset_in_session(asset, viewable_type) ⇒ Object
18 19 20 21 |
# File 'app/helpers/spree/admin/assets_helper.rb', line 18 def store_uploaded_asset_in_session(asset, viewable_type) ensure_session_uploaded_assets_uuid(viewable_type) asset.update(session_id: session[session_uploaded_assets_uuid_key(viewable_type)]) end |