Sha256: 31a68cb73d5d7e517b630d24785318acf4881c785591657f41300b1159f3c5e1
Contents?: true
Size: 1.57 KB
Versions: 3
Compression:
Stored size: 1.57 KB
Contents
module Scrivito class WidgetTag < Struct.new(:view, :widget, :placement_modification) include TagRenderer def tag_name :div end def content view.render(template: template, locals: {widget: widget}) rescue ActionView::MissingTemplate %{Missing Ruby model class for "#{widget.obj_class_name}"} 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 widget.to_show_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.60.0 | lib/scrivito/widget_tag.rb |
scrivito_sdk-0.60.0.rc2 | lib/scrivito/widget_tag.rb |
scrivito_sdk-0.60.0.rc1 | lib/scrivito/widget_tag.rb |