Sha256: 711c1cfe416302468e3c343579f99fc2174fbb3330aceedbd9b2f83015c2b0ce
Contents?: true
Size: 1.73 KB
Versions: 3
Compression:
Stored size: 1.73 KB
Contents
module Scrivito class WidgetTag < Struct.new(:view, :widget, :placement_modification, :template_name, :inner_tag) DEFAULT_TAG = "div" include TagRenderer def tag_name inner_tag || DEFAULT_TAG end def content view.render(template: template_path, locals: {widget: widget}) rescue ActionView::MissingTemplate raise if Rails.env.development? || Rails.env.test? "Missing show template for #{widget.description_for_editor}" if view.scrivito_user end def options options = {} if inplace_editing_allowed? options['private-widget-id'] = widget.id options['widget-obj-class'] = widget.obj_class_name options['private-widget-description-for-editor'] = widget.description_for_editor if has_widget_details_view?(widget) options['private-widget-has-details-view'] = true end comparison = editing_context.comparison options['private-widget-modification'] = if comparison.revision == widget.revision if placement_modification unless widget.in_revision(Workspace.current.revision) Modification::DELETED end end else comparison.modification(widget) end options['private-widget-placement-modification'] = placement_modification end options end private def template_path widget.public_send("to_#{template_name}_view_path") end def has_widget_details_view?(widget) view.lookup_context.find(widget.to_details_view_path).present? rescue ActionView::MissingTemplate false end def inplace_editing_allowed? editing_context.authenticated_editor? end def editing_context EditingContextMiddleware.from_request(view.request) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
scrivito_sdk-0.66.0 | lib/scrivito/widget_tag.rb |
scrivito_sdk-0.66.0.rc2 | lib/scrivito/widget_tag.rb |
scrivito_sdk-0.66.0.rc1 | lib/scrivito/widget_tag.rb |