27 from pyams_utils.interfaces.data import IObjectData |
27 from pyams_utils.interfaces.data import IObjectData |
28 from pyams_utils.interfaces.inherit import IInheritInfo |
28 from pyams_utils.interfaces.inherit import IInheritInfo |
29 from z3c.form.interfaces import INPUT_MODE |
29 from z3c.form.interfaces import INPUT_MODE |
30 |
30 |
31 # import packages |
31 # import packages |
32 from pyams_form.form import AJAXEditForm |
32 from pyams_form.form import ajax_config |
33 from pyams_form.group import NamedWidgetsGroup |
33 from pyams_form.group import NamedWidgetsGroup |
34 from pyams_pagelet.pagelet import pagelet_config |
34 from pyams_pagelet.pagelet import pagelet_config |
35 from pyams_skin.viewlet.menu import MenuItem, MenuDivider |
35 from pyams_skin.viewlet.menu import MenuItem, MenuDivider |
36 from pyams_template.template import template_config |
36 from pyams_template.template import template_config |
37 from pyams_utils.adapter import adapter_config |
37 from pyams_utils.adapter import adapter_config |
67 """Header settings group marker interface""" |
67 """Header settings group marker interface""" |
68 |
68 |
69 |
69 |
70 @pagelet_config(name='header-settings.html', context=IHeaderTarget, layer=IPyAMSLayer, |
70 @pagelet_config(name='header-settings.html', context=IHeaderTarget, layer=IPyAMSLayer, |
71 permission=MANAGE_TEMPLATE_PERMISSION) |
71 permission=MANAGE_TEMPLATE_PERMISSION) |
|
72 @ajax_config(name='header-settings.json', context=IHeaderTarget, layer=IPyAMSLayer, |
|
73 permission=MANAGE_TEMPLATE_PERMISSION) |
72 @implementer(IWidgetForm, IInnerPage) |
74 @implementer(IWidgetForm, IInnerPage) |
73 class HeaderSettingsEditForm(AdminEditForm): |
75 class HeaderSettingsEditForm(AdminEditForm): |
74 """Header settings edit form""" |
76 """Header settings edit form""" |
75 |
77 |
76 @property |
78 @property |
95 def buttons(self): |
97 def buttons(self): |
96 if self.mode == INPUT_MODE: |
98 if self.mode == INPUT_MODE: |
97 return button.Buttons(IUncheckedEditFormButtons) |
99 return button.Buttons(IUncheckedEditFormButtons) |
98 else: |
100 else: |
99 return button.Buttons(Interface) |
101 return button.Buttons(Interface) |
100 |
|
101 ajax_handler = 'header-settings.json' |
|
102 |
102 |
103 def updateGroups(self): |
103 def updateGroups(self): |
104 if self.getContent().can_inherit: |
104 if self.getContent().can_inherit: |
105 group = NamedWidgetsGroup(self, 'header', self.widgets, |
105 group = NamedWidgetsGroup(self, 'header', self.widgets, |
106 ('no_inherit', ), |
106 ('no_inherit', ), |
114 group = NamedWidgetsGroup(self, 'header', self.widgets, (), css_class='inner') |
114 group = NamedWidgetsGroup(self, 'header', self.widgets, (), css_class='inner') |
115 alsoProvides(group, IHeaderSettingsGroup) |
115 alsoProvides(group, IHeaderSettingsGroup) |
116 self.add_group(group) |
116 self.add_group(group) |
117 super(HeaderSettingsEditForm, self).updateGroups() |
117 super(HeaderSettingsEditForm, self).updateGroups() |
118 |
118 |
119 |
|
120 @view_config(name='header-settings.json', context=IHeaderTarget, request_type=IPyAMSLayer, |
|
121 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
|
122 class HeaderSettingsAJAXEditForm(AJAXEditForm, HeaderSettingsEditForm): |
|
123 """Header settings edit form, JSON renderer""" |
|
124 |
|
125 def get_ajax_output(self, changes): |
119 def get_ajax_output(self, changes): |
126 output = super(HeaderSettingsAJAXEditForm, self).get_ajax_output(changes) or {} |
120 output = super(self.__class__, self).get_ajax_output(changes) or {} |
127 if 'no_inherit' in changes.get(IInheritInfo, ()): |
121 if 'no_inherit' in changes.get(IInheritInfo, ()): |
128 output['status'] = 'reload' |
122 output['status'] = 'reload' |
129 return output |
123 return output |
130 |
124 |
131 |
125 |
168 |
162 |
169 @adapter_config(name='header-renderer-settings-form', |
163 @adapter_config(name='header-renderer-settings-form', |
170 context=(IHeaderRendererSettings, IPyAMSLayer, HeaderSettingsRendererEditSubform), |
164 context=(IHeaderRendererSettings, IPyAMSLayer, HeaderSettingsRendererEditSubform), |
171 provides=IInnerSubForm) |
165 provides=IInnerSubForm) |
172 @adapter_config(name='header-renderer-settings-form', |
166 @adapter_config(name='header-renderer-settings-form', |
173 context=(IHeaderTarget, IPyAMSLayer, HeaderSettingsAJAXEditForm), |
167 context=(IHeaderTarget, IPyAMSLayer, HeaderSettingsEditForm), |
174 provides=IInnerSubForm) |
168 provides=IInnerSubForm) |
175 class HeaderSettingsRendererSettingsEditForm(InnerAdminEditForm): |
169 class HeaderSettingsRendererSettingsEditForm(InnerAdminEditForm): |
176 """Header settings renderer settings edit form""" |
170 """Header settings renderer settings edit form""" |
177 |
171 |
178 legend = _("Header renderer settings") |
172 legend = _("Header renderer settings") |