--- a/src/pyams_content/features/header/zmi/__init__.py Wed Jun 20 08:25:29 2018 +0200
+++ b/src/pyams_content/features/header/zmi/__init__.py Wed Jun 20 18:15:39 2018 +0200
@@ -19,22 +19,26 @@
from pyams_content.features.header.interfaces import IHeaderTarget, IHeaderSettings, IHeaderRenderer, \
IHeaderRendererSettings
from pyams_form.interfaces.form import IWidgetForm, IUncheckedEditFormButtons, IInnerSubForm, \
- IWidgetsSuffixViewletsManager
+ IWidgetsSuffixViewletsManager, IFormHelp
from pyams_portal.interfaces import MANAGE_TEMPLATE_PERMISSION
from pyams_portal.zmi.interfaces import IPortalContextTemplatePropertiesMenu
from pyams_skin.interfaces import IInnerPage
from pyams_skin.layer import IPyAMSLayer
from pyams_utils.interfaces.data import IObjectData
from pyams_utils.interfaces.inherit import IInheritInfo
+from pyams_zmi.layer import IAdminLayer
from z3c.form.interfaces import INPUT_MODE
# import packages
+from pyams_content.skin import pyams_content
from pyams_form.form import AJAXEditForm
from pyams_form.group import NamedWidgetsGroup
+from pyams_form.help import FormHelp
from pyams_pagelet.pagelet import pagelet_config
from pyams_skin.viewlet.menu import MenuItem, MenuDivider
from pyams_template.template import template_config
from pyams_utils.adapter import adapter_config
+from pyams_utils.fanstatic import get_resource_path
from pyams_utils.url import absolute_url
from pyams_viewlet.viewlet import viewlet_config, Viewlet
from pyams_zmi.form import AdminEditForm, InnerAdminEditForm
@@ -110,6 +114,17 @@
checkbox_switch=True,
checkbox_mode='disable',
checkbox_field=IHeaderSettings['no_inherit'])
+ if self.mode == INPUT_MODE:
+ group.object_data = {
+ 'ams-plugins': 'pyams_content',
+ 'ams-plugin-pyams_content-src': get_resource_path(pyams_content),
+ 'ams-plugin-pyams_content-async': False,
+ 'ams-events-handlers': {
+ 'ams.checker.opened': 'PyAMS_content.header.submitEditForm',
+ 'ams.checker.closed': 'PyAMS_content.header.submitEditForm'
+ }
+ }
+ alsoProvides(group, IObjectData)
else:
group = NamedWidgetsGroup(self, 'header', self.widgets, (), css_class='inner')
alsoProvides(group, IHeaderSettingsGroup)
@@ -125,10 +140,26 @@
def get_ajax_output(self, changes):
output = super(HeaderSettingsAJAXEditForm, self).get_ajax_output(changes) or {}
if 'no_inherit' in changes.get(IInheritInfo, ()):
- output['status'] = 'reload'
+ if 'autosubmit' in self.request.params:
+ output['close_form'] = False
+ else:
+ output['status'] = 'reload'
return output
+@adapter_config(context=(Interface, IAdminLayer, HeaderSettingsEditForm), provides=IFormHelp)
+class HeaderSettingsEditFormHelpAdapter(FormHelp):
+ """Header settings edit form help adapter"""
+
+ def __new__(cls, context, request, view):
+ if (not view.getContent().can_inherit) or (view.mode != INPUT_MODE):
+ return None
+ return FormHelp.__new__(cls)
+
+ message = _("""WARNING: Header properties are saved automatically when changing inherit mode!!""")
+ message_format = 'rest'
+
+
@adapter_config(name='renderer', context=(IHeaderTarget, IPyAMSLayer, IHeaderSettingsGroup), provides=IInnerSubForm)
class HeaderSettingsRendererEditSubform(InnerAdminEditForm):
"""Header settings renderer edit form"""