--- a/src/pyams_content/component/illustration/zmi/__init__.py Mon Oct 08 16:33:38 2018 +0200
+++ b/src/pyams_content/component/illustration/zmi/__init__.py Tue Oct 09 09:00:12 2018 +0200
@@ -9,6 +9,14 @@
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
+from zope.interface import implementer
+
+from pyams_content.skin import pyams_content
+from pyams_form.security import ProtectedFormObjectMixin
+from pyams_skin.viewlet.toolbar import JsToolbarAction
+from pyams_utils.fanstatic import get_resource_path
+from pyams_utils.interfaces.data import IObjectData
+
__docformat__ = 'restructuredtext'
@@ -153,6 +161,34 @@
return registry.getAdapter(self.context, IIllustration, name='link')
+@viewlet_config(name='add-illustration.action', context=IBasicIllustrationTarget, layer=IPyAMSLayer,
+ view=IllustrationPropertiesInnerEditForm, manager=IWidgetsPrefixViewletsManager)
+@implementer(IObjectData)
+class AddIllustrationAction(ProtectedFormObjectMixin, JsToolbarAction):
+ """Add illustration action"""
+
+ group_css_class = 'btn-group clearfix persistent'
+ label = _("Add illustration")
+ url = 'PyAMS_content.illustration.addIllustration'
+
+ def __new__(cls, context, request, view, manager):
+ if not IBaseParagraph.providedBy(context):
+ return None
+ illustration = IIllustration(context, None)
+ if illustration and illustration.data:
+ for value in illustration.data.values():
+ if value:
+ return None
+ return JsToolbarAction.__new__(cls)
+
+ @property
+ def object_data(self):
+ return {
+ 'ams-plugins': 'pyams_content',
+ 'ams-plugin-pyams_content-src': get_resource_path(pyams_content)
+ }
+
+
@viewlet_config(name='illustration-thumbnail', context=IBasicIllustrationTarget, layer=IPyAMSLayer,
view=BasicIllustrationPropertiesInnerEditForm, manager=IWidgetsPrefixViewletsManager)
@template_config(template='templates/illustration-thumbnail.pt', layer=IPyAMSLayer)