--- a/src/pyams_content/reference/pictograms/zmi/__init__.py Wed Apr 11 16:44:46 2018 +0200
+++ b/src/pyams_content/reference/pictograms/zmi/__init__.py Wed Apr 11 16:46:31 2018 +0200
@@ -12,6 +12,7 @@
__docformat__ = 'restructuredtext'
+
# import standard library
import sys
@@ -34,9 +35,11 @@
from pyams_content.reference.pictograms import Pictogram
from pyams_i18n.column import I18nAttrColumn
from pyams_pagelet.pagelet import pagelet_config
+from pyams_skin.event import get_json_table_row_refresh_event
from pyams_skin.table import I18nColumn
from pyams_skin.viewlet.toolbar import ToolbarAction
from pyams_utils.adapter import adapter_config
+from pyams_utils.traversing import get_parent
from pyams_utils.url import absolute_url
from pyams_viewlet.viewlet import viewlet_config
from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm
@@ -92,6 +95,8 @@
class PictogramEditForm(AdminDialogEditForm):
"""Pictogram properties edit form"""
+ prefix = 'pictogram_properties.'
+
legend = _("Edit pictogram properties")
dialog_class = 'modal-large'
@@ -107,29 +112,11 @@
def get_ajax_output(self, changes):
output = super(PictogramAJAXEditForm, self).get_ajax_output(changes)
- if 'image' in changes.get(IPictogram, ()):
- image = II18n(self.context).query_attribute('image', request=self.request)
- timestamp = randint(0, sys.maxsize)
- output.setdefault('events', []).append({
- 'event': 'myams.refresh',
- 'options': {
- 'handler': 'MyAMS.skin.refreshRowCell',
- 'object_id': '{0}::{1}'.format(ReferenceTableContentsTable.id, self.context.__name__),
- 'col_name': 'image',
- 'cell': '<img src="{0}?_={1}" />'.format(absolute_url(image, self.request, '++thumb++32x32'),
- timestamp)
- }
- })
- if 'title' in changes.get(IBaseContent, ()):
- output.setdefault('events', []).append({
- 'event': 'myams.refresh',
- 'options': {
- 'handler': 'MyAMS.skin.refreshRowCell',
- 'object_id': '{0}::{1}'.format(ReferenceTableContentsTable.id, self.context.__name__),
- 'col_name': 'name',
- 'cell': II18n(self.context).query_attribute('title', request=self.request)
- }
- })
+ if ('image' in changes.get(IPictogram, ())) or \
+ ('title' in changes.get(IBaseContent, ())):
+ parent = get_parent(self.context, IPictogramTable)
+ output.setdefault('events', []).append(
+ get_json_table_row_refresh_event(parent, self.request, PictogramTableContentsTable, self.context))
return output
@@ -140,6 +127,8 @@
class PictogramTableContentsTable(ReferenceTableContentsTable):
"""Pictograms table contents table"""
+ prefix = 'pictograms_table'
+
@property
def data_attributes(self):
attributes = super(PictogramTableContentsTable, self).data_attributes
@@ -162,7 +151,8 @@
def getValue(self, obj):
image = II18n(obj).query_attribute('image', request=self.request)
if image:
- return '<img src="{0}" />'.format(absolute_url(image, self.request, '++thumb++32x32'))
+ timestamp = randint(0, sys.maxsize)
+ return '<img src="{0}?_={1}" />'.format(absolute_url(image, self.request, '++thumb++32x32'), timestamp)
@adapter_config(name='name', context=(IPictogramTable, IAdminLayer, PictogramTableContentsTable), provides=IColumn)