src/pyams_content/features/header/zmi/__init__.py
changeset 715 38fe2d681233
parent 628 baf2d9499054
child 723 d4b00aa0a9e0
--- 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"""