src/pyams_content/component/paragraph/zmi/frame.py
changeset 527 5dd1aa8bedd9
parent 507 7320a5522ee1
child 550 9658debb49a3
--- a/src/pyams_content/component/paragraph/zmi/frame.py	Wed Apr 11 16:44:46 2018 +0200
+++ b/src/pyams_content/component/paragraph/zmi/frame.py	Wed Apr 11 16:46:31 2018 +0200
@@ -34,12 +34,13 @@
 from pyams_content.component.association.zmi import AssociationsTable
 from pyams_content.component.paragraph.frame import FrameParagraph
 from pyams_content.component.paragraph.zmi import BaseParagraphAJAXAddForm, BaseParagraphAJAXEditForm, \
-    BaseParagraphAddMenu, BaseParagraphPropertiesEditForm
+    BaseParagraphAddMenu, BaseParagraphPropertiesEditForm, get_json_paragraph_toolbar_refresh_event
 from pyams_content.component.paragraph.zmi.container import ParagraphContainerTable, \
     ParagraphTitleToolbarViewletManager
 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_switched_table_refresh_event, get_json_widget_refresh_event
 from pyams_utils.adapter import adapter_config, ContextRequestAdapter
 from pyams_utils.traversing import get_parent
 from pyams_viewlet.viewlet import viewlet_config
@@ -127,6 +128,8 @@
 class FrameParagraphPropertiesEditForm(BaseParagraphPropertiesEditForm):
     """Framed text paragraph properties edit form"""
 
+    prefix = 'frame_properties.'
+
     legend = _("Edit framed text paragraph properties")
     dialog_class = 'modal-large'
     icon_css_class = 'fa fa-fw fa-list-alt'
@@ -159,28 +162,12 @@
         if 'body' in changes.get(IFrameParagraph, ()):
             # refresh associations count markers
             parent = get_parent(self.context, IAssociationTarget)
-            table = ParagraphContainerTable(parent, self.request)
-            viewlet = ParagraphTitleToolbarViewletManager(parent, self.request, table)
-            viewlet.update()
-            output.setdefault('events', []).append({
-                'event': 'myams.refresh',
-                'options': {
-                    'handler': 'PyAMS_content.paragraphs.updateToolbar',
-                    'object_name': self.context.__name__,
-                    'toolbar_tag': viewlet.render()
-                }
-            })
+            output.setdefault('events', []).append(
+                get_json_paragraph_toolbar_refresh_event(parent, self.request,
+                                                         ParagraphContainerTable, ParagraphTitleToolbarViewletManager))
             # refresh associations table
-            associations_table = AssociationsTable(self.context, self.request)
-            associations_table.update()
-            output.setdefault('events', []).append({
-                'event': 'myams.refresh',
-                'options': {
-                    'handler': 'PyAMS_content.associations.refreshAssociations',
-                    'object_id': associations_table.id,
-                    'table': associations_table.render()
-                }
-            })
+            output.setdefault('events', []).append(
+                get_json_switched_table_refresh_event(self.context, self.request, AssociationsTable))
         return output
 
 
@@ -209,20 +196,8 @@
         output = super(FrameParagraphInnerAJAXEditForm, self).get_ajax_output(changes)
         updated = changes.get(IFrameParagraph, ())
         if 'renderer' in updated:
-            form = FrameParagraphInnerEditForm(self.context, self.request)
-            form.update()
-            output.setdefault('events', []).append({
-                'event': 'myams.refresh',
-                'options': {
-                    'handler': 'MyAMS.skin.refreshWidget',
-                    'parent_id': '{0}_{1}_{2}'.format(
-                        self.context.__class__.__name__,
-                        getattr(form.getContent(), '__name__', 'noname').replace('++', ''),
-                        form.id),
-                    'widget_name': form.widgets['renderer'].name,
-                    'content': form.widgets['renderer'].render()
-                }
-            })
+            output.setdefault('events', []).append(
+                get_json_widget_refresh_event(self.context, self.request, FrameParagraphInnerEditForm, 'renderer'))
         return output