--- a/src/pyams_content/reference/zmi/__init__.py Wed Apr 11 16:44:46 2018 +0200
+++ b/src/pyams_content/reference/zmi/__init__.py Wed Apr 11 16:46:31 2018 +0200
@@ -16,7 +16,7 @@
# import standard library
# import interfaces
-from pyams_content.interfaces import MANAGE_SITE_ROOT_PERMISSION
+from pyams_content.interfaces import MANAGE_SITE_ROOT_PERMISSION, IBaseContent
from pyams_content.reference.interfaces import IReferenceManager, IReferenceInfo
from pyams_i18n.interfaces import II18n
from pyams_skin.interfaces.container import ITableElementName
@@ -25,10 +25,15 @@
from pyams_zmi.layer import IAdminLayer
# import packages
+from pyams_content.reference import IReferenceTable
+from pyams_content.reference.zmi.table import ReferenceTableContentsTable
+from pyams_form.form import AJAXEditForm
+from pyams_skin.event import get_json_table_row_refresh_event
from pyams_skin.viewlet.breadcrumb import BreadcrumbItem
from pyams_skin.viewlet.toplinks import TopLinksViewlet, TopLinksMenu
from pyams_utils.adapter import adapter_config, ContextRequestAdapter
from pyams_utils.registry import get_local_registry
+from pyams_utils.traversing import get_parent
from pyams_utils.url import absolute_url
from pyams_viewlet.viewlet import viewlet_config
from zope.interface import Interface
@@ -72,3 +77,21 @@
@property
def name(self):
return II18n(self.context).query_attribute('title', request=self.request)
+
+
+#
+# Reference table item views
+#
+
+class ReferenceInfoAJAXEditForm(AJAXEditForm):
+ """Base reference info edit form"""
+
+ table_factory = ReferenceTableContentsTable
+
+ def get_ajax_output(self, changes):
+ output = super(ReferenceInfoAJAXEditForm, self).get_ajax_output(changes)
+ if 'title' in changes.get(IBaseContent, ()):
+ parent = get_parent(self.context, IReferenceTable)
+ output.setdefault('events', []).append(
+ get_json_table_row_refresh_event(parent, self.request, self.table_factory, self.context))
+ return output