src/pyams_content/component/paragraph/zmi/contact.py
changeset 527 5dd1aa8bedd9
parent 507 7320a5522ee1
child 550 9658debb49a3
--- a/src/pyams_content/component/paragraph/zmi/contact.py	Wed Apr 11 16:44:46 2018 +0200
+++ b/src/pyams_content/component/paragraph/zmi/contact.py	Wed Apr 11 16:46:31 2018 +0200
@@ -22,7 +22,6 @@
 from pyams_content.component.paragraph.zmi.interfaces import IParagraphContainerView, IParagraphInnerEditor
 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
 from pyams_form.interfaces.form import IInnerForm, IEditFormButtons
-from pyams_i18n.interfaces import II18n
 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu
 from pyams_skin.layer import IPyAMSLayer
 from transaction.interfaces import ITransactionManager
@@ -31,10 +30,11 @@
 # import packages
 from pyams_content.component.paragraph.contact import ContactParagraph
 from pyams_content.component.paragraph.zmi import BaseParagraphAddMenu, BaseParagraphAJAXAddForm, \
-    BaseParagraphPropertiesEditForm, BaseParagraphAJAXEditForm
+    BaseParagraphPropertiesEditForm, BaseParagraphAJAXEditForm, get_json_paragraph_refresh_event
 from pyams_content.features.renderer.zmi import BaseRenderedContentRenderer
 from pyams_content.features.renderer.zmi.widget import RendererFieldWidget
 from pyams_pagelet.pagelet import pagelet_config
+from pyams_skin.event import get_json_form_refresh_event
 from pyams_utils.adapter import adapter_config
 from pyams_viewlet.viewlet import viewlet_config
 from pyams_zmi.form import AdminDialogAddForm
@@ -92,6 +92,8 @@
 class ContactParagraphPropertiesEditForm(BaseParagraphPropertiesEditForm):
     """Contact paragraph properties edit form"""
 
+    prefix = 'contact_properties.'
+
     legend = _("Edit contact card properties")
     icon_css_class = 'fa fa-fw fa-id-card-o'
 
@@ -138,31 +140,14 @@
         output = super(ContactParagraphInnerAJAXEditForm, self).get_ajax_output(changes)
         updated = changes.get(IBaseParagraph, ())
         if 'title' in updated:
-            output.setdefault('events', []).append({
-                'event': 'myams.refresh',
-                'options': {
-                    'handler': 'PyAMS_content.paragraphs.refreshParagraph',
-                    'object_name': self.context.__name__,
-                    'title': II18n(self.context).query_attribute('title', request=self.request),
-                    'visible': self.context.visible
-                }
-            })
+            output.setdefault('events', []).append(get_json_paragraph_refresh_event(self.context, self.request))
         updated = changes.get(IContactParagraph, ())
         if ('photo' in updated) or ('renderer' in updated):
             # we have to commit transaction to be able to handle blobs...
-            ITransactionManager(self.context).get().commit()
-            form = ContactParagraphInnerEditForm(self.context, self.request)
-            form.update()
-            output.setdefault('events', []).append({
-                'event': 'myams.refresh',
-                'options': {
-                    'object_id': '{0}_{1}_{2}'.format(
-                        self.context.__class__.__name__,
-                        getattr(form.getContent(), '__name__', 'noname').replace('++', ''),
-                        form.id),
-                    'content': form.render()
-                }
-            })
+            if 'photo' in updated:
+                ITransactionManager(self.context).get().commit()
+            output.setdefault('events', []).append(get_json_form_refresh_event(self.context, self.request,
+                                                                               ContactParagraphInnerEditForm))
         return output