src/pyams_content/component/illustration/zmi/__init__.py
changeset 1004 ca57b160d863
parent 967 1be26c1585fd
child 1005 107406cb705c
--- 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)