--- a/src/pyams_content/component/paragraph/zmi/container.py Fri Jul 13 08:51:55 2018 +0200
+++ b/src/pyams_content/component/paragraph/zmi/container.py Fri Jul 13 09:23:53 2018 +0200
@@ -41,7 +41,7 @@
from pyams_content.skin import pyams_content
from pyams_form.security import ProtectedFormObjectMixin
from pyams_pagelet.pagelet import pagelet_config
-from pyams_skin.container import switch_element_visibility
+from pyams_skin.container import switch_element_visibility, switch_element_attribute
from pyams_skin.page import DefaultPageHeaderAdapter
from pyams_skin.table import BaseTable, I18nColumn, TrashColumn, SorterColumn, ImageColumn, \
VisibilitySwitcherColumn
@@ -108,7 +108,8 @@
'data-ams-post-reload': 'PyAMS_content.paragraphs.postReload',
'data-ams-tablednd-drag-handle': 'td.sorter',
'data-ams-tablednd-drop-target': 'set-paragraphs-order.json',
- 'data-ams-visibility-switcher': 'switch-paragraph-visibility.json'
+ 'data-ams-visibility-switcher': 'switch-paragraph-visibility.json',
+ 'data-ams-anchor-switcher': 'switch-paragraph-anchor.json'
})
return attributes
@@ -183,12 +184,40 @@
return column.table.context
+@adapter_config(name='anchor', context=(IParagraphContainerTarget, IPyAMSLayer, ParagraphContainerBaseTable),
+ provides=IColumn)
+class ParagraphContainerAnchorColumn(ProtectedFormObjectMixin, VisibilitySwitcherColumn):
+ """Paragraphs container anchor switcher column"""
+
+ switch_attribute = 'anchor'
+ visible_icon_class = 'fa fa-fw fa-anchor'
+ hidden_icon_class = 'fa fa-fw fa-anchor txt-color-silver opacity-50'
+
+ icon_hint = _("Set navigation anchor")
+
+ url = 'PyAMS_content.paragraphs.switchAnchor'
+ weight = 6
+
+
+@view_config(name='switch-paragraph-anchor.json', context=IParagraphContainer, request_type=IPyAMSLayer,
+ permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True)
+def switch_paragraph_anchor(request):
+ """Switch paragraph anchor"""
+ return switch_element_attribute(request, IParagraphContainer, attribute_name='anchor')
+
+
+@adapter_config(context=ParagraphContainerAnchorColumn, provides=IFormSecurityContext)
+def anchor_column_security_context_factory(column):
+ """Anchor column security context factory"""
+ return column.table.context
+
+
@adapter_config(name='pictogram', context=(IParagraphContainerTarget, IPyAMSLayer, ParagraphContainerBaseTable),
provides=IColumn)
class ParagraphContainerPictogramColumn(ImageColumn):
"""Paragraph container pictogram column"""
- weight = 6
+ weight = 8
def get_icon_class(self, item):
return item.icon_class