Sha256: 142e83e024dc6141c9df2a8271e51432ea3de06e39d840f634ddafea5a2181fe
Contents?: true
Size: 1.72 KB
Versions: 5
Compression:
Stored size: 1.72 KB
Contents
module Scrivito class BaseWidgetTag < Struct.new(:view, :widget, :placement_modification, :render_context, :inner_tag) DEFAULT_RENDER_CONTEXT = 'show' DEFAULT_TAG = 'div' include TagRenderer def initialize(view, widget, options = {}) super view, widget, *options.values_at(:placement_modification, :render_context, :inner_tag) end def options raise NotImplementedError end def content raise NotImplementedError end def tag_name inner_tag || DEFAULT_TAG end def options options = {} if inplace_editing_allowed? options['private-widget-id'] = widget.id options['widget-obj-class'] = widget.obj_class options['private-widget-description-for-editor'] = 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 has_widget_details_view?(widget) view.lookup_context.find(widget.details_view_path).present? rescue ActionView::MissingTemplate false end def description_for_editor raise NotImplementedError end def inplace_editing_allowed? editing_context.authenticated_editor? end def editing_context EditingContextMiddleware.from_request(view.request) end end end
Version data entries
5 entries across 5 versions & 1 rubygems