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_content.component.paragraph.video import VideoParagraph |
32 from pyams_content.component.paragraph.video import VideoParagraph |
33 from pyams_content.component.paragraph.zmi import BaseParagraphAJAXAddForm, BaseParagraphAJAXEditForm, \ |
33 from pyams_content.component.paragraph.zmi import BaseParagraphAJAXAddForm, BaseParagraphAJAXEditForm, \ |
34 BaseParagraphAddMenu, BaseParagraphPropertiesEditForm, IParagraphEditFormButtons |
34 BaseParagraphAddMenu, BaseParagraphPropertiesEditForm, IParagraphEditFormButtons, get_json_paragraph_refresh_event |
35 from pyams_content.features.renderer.zmi.widget import RendererFieldWidget |
35 from pyams_content.features.renderer.zmi.widget import RendererFieldWidget |
36 from pyams_form.form import ajax_config |
36 from pyams_form.form import ajax_config |
37 from pyams_form.group import NamedWidgetsGroup |
|
38 from pyams_pagelet.pagelet import pagelet_config |
37 from pyams_pagelet.pagelet import pagelet_config |
39 from pyams_skin.event import get_json_form_refresh_event, get_json_widget_refresh_event |
38 from pyams_skin.event import get_json_form_refresh_event, get_json_widget_refresh_event |
40 from pyams_utils.adapter import adapter_config |
39 from pyams_utils.adapter import adapter_config |
41 from pyams_viewlet.viewlet import viewlet_config |
40 from pyams_viewlet.viewlet import viewlet_config |
42 from pyams_zmi.form import AdminDialogAddForm |
41 from pyams_zmi.form import AdminDialogAddForm |
43 from pyramid.view import view_config |
|
44 from z3c.form import field, button |
42 from z3c.form import field, button |
45 from zope.interface import implementer |
43 from zope.interface import implementer |
46 |
44 |
47 from pyams_content import _ |
45 from pyams_content import _ |
48 |
46 |
74 |
72 |
75 def updateWidgets(self, prefix=None): |
73 def updateWidgets(self, prefix=None): |
76 super(VideoParagraphAddForm, self).updateWidgets(prefix) |
74 super(VideoParagraphAddForm, self).updateWidgets(prefix) |
77 if 'description' in self.widgets: |
75 if 'description' in self.widgets: |
78 self.widgets['description'].widget_css_class = 'textarea' |
76 self.widgets['description'].widget_css_class = 'textarea' |
79 if 'body' in self.widgets: |
|
80 self.widgets['body'].label = '' |
|
81 |
|
82 def updateGroups(self): |
|
83 self.add_group(NamedWidgetsGroup(self, 'body_group', self.widgets, ('body',), |
|
84 bordered=False, |
|
85 legend=_("HTML content"), |
|
86 css_class='inner switcher padding-right-10 no-y-padding pull-left', |
|
87 switch=True, |
|
88 display_mode='auto')) |
|
89 self.add_group(NamedWidgetsGroup(self, 'data_group', self.widgets, |
|
90 ('description', 'author', 'data', 'renderer'), |
|
91 bordered=False)) |
|
92 super(VideoParagraphAddForm, self).updateGroups() |
|
93 |
77 |
94 def create(self, data): |
78 def create(self, data): |
95 return VideoParagraph() |
79 return VideoParagraph() |
96 |
80 |
97 def add(self, object): |
81 def add(self, object): |
118 |
102 |
119 def updateWidgets(self, prefix=None): |
103 def updateWidgets(self, prefix=None): |
120 super(VideoParagraphPropertiesEditForm, self).updateWidgets(prefix) |
104 super(VideoParagraphPropertiesEditForm, self).updateWidgets(prefix) |
121 if 'description' in self.widgets: |
105 if 'description' in self.widgets: |
122 self.widgets['description'].widget_css_class = 'textarea' |
106 self.widgets['description'].widget_css_class = 'textarea' |
123 if 'body' in self.widgets: |
|
124 self.widgets['body'].label = '' |
|
125 |
|
126 def updateGroups(self): |
|
127 self.add_group(NamedWidgetsGroup(self, 'body_group', self.widgets, ('body',), |
|
128 bordered=False, |
|
129 fieldset_class='margin-top-10 padding-y-5', |
|
130 legend=_("HTML content"), |
|
131 css_class='inner switcher padding-right-10 no-y-padding pull-left', |
|
132 switch=True, |
|
133 display_mode='auto')) |
|
134 self.add_group(NamedWidgetsGroup(self, 'data_group', self.widgets, |
|
135 ('description', 'author', 'data', 'renderer'), |
|
136 bordered=False)) |
|
137 super(VideoParagraphPropertiesEditForm, self).updateGroups() |
|
138 |
107 |
139 |
108 |
140 @adapter_config(context=(IVideoParagraph, IPyAMSLayer), provides=IParagraphInnerEditor) |
109 @adapter_config(context=(IVideoParagraph, IPyAMSLayer), provides=IParagraphInnerEditor) |
141 @ajax_config(name='inner-properties.json', context=IVideoParagraph, layer=IPyAMSLayer, |
110 @ajax_config(name='inner-properties.json', context=IVideoParagraph, layer=IPyAMSLayer, |
142 base=BaseParagraphAJAXEditForm) |
111 base=BaseParagraphAJAXEditForm) |
159 if 'data' in updated: |
128 if 'data' in updated: |
160 # we have to commit transaction to be able to handle blobs... |
129 # we have to commit transaction to be able to handle blobs... |
161 ITransactionManager(self.context).get().commit() |
130 ITransactionManager(self.context).get().commit() |
162 output.setdefault('events', []).append( |
131 output.setdefault('events', []).append( |
163 get_json_form_refresh_event(self.context, self.request, VideoParagraphPropertiesInnerEditForm)) |
132 get_json_form_refresh_event(self.context, self.request, VideoParagraphPropertiesInnerEditForm)) |
164 elif 'renderer' in updated: |
133 else: |
165 output.setdefault('events', []).append( |
134 if 'title' in updated: |
166 get_json_widget_refresh_event(self.context, self.request, |
135 output.setdefault('events', []).append( |
167 VideoParagraphPropertiesInnerEditForm, 'renderer')) |
136 get_json_paragraph_refresh_event(self.context, self.request)) |
|
137 if 'renderer' in updated: |
|
138 output.setdefault('events', []).append( |
|
139 get_json_widget_refresh_event(self.context, self.request, |
|
140 VideoParagraphPropertiesInnerEditForm, 'renderer')) |
168 return output |
141 return output |