74 |
74 |
75 legend = _("Add new external video...") |
75 legend = _("Add new external video...") |
76 dialog_class = 'modal-large' |
76 dialog_class = 'modal-large' |
77 icon_css_class = 'fa fa-fw fa-youtube-play' |
77 icon_css_class = 'fa fa-fw fa-youtube-play' |
78 |
78 |
79 fields = field.Fields(IExternalVideoParagraph).omit('__parent__', '__name__', 'visible') |
79 fields = field.Fields(IExternalVideoParagraph).select('title', 'description', 'author', 'renderer', 'provider_name') |
80 edit_permission = MANAGE_CONTENT_PERMISSION |
80 edit_permission = MANAGE_CONTENT_PERMISSION |
81 |
81 |
82 def updateWidgets(self, prefix=None): |
82 def updateWidgets(self, prefix=None): |
83 super(ExternalVideoParagraphAddForm, self).updateWidgets(prefix) |
83 super(ExternalVideoParagraphAddForm, self).updateWidgets(prefix) |
84 if 'description' in self.widgets: |
84 if 'description' in self.widgets: |
85 self.widgets['description'].widget_css_class = 'textarea' |
85 self.widgets['description'].widget_css_class = 'textarea' |
86 if 'body' in self.widgets: |
|
87 self.widgets['body'].label = '' |
|
88 if 'provider_name' in self.widgets: |
86 if 'provider_name' in self.widgets: |
89 widget = self.widgets['provider_name'] |
87 widget = self.widgets['provider_name'] |
90 widget.object_data = { |
88 widget.object_data = { |
91 'ams-change-handler': 'MyAMS.helpers.select2ChangeHelper', |
89 'ams-change-handler': 'MyAMS.helpers.select2ChangeHelper', |
92 'ams-change-stop-propagation': 'true', |
90 'ams-change-stop-propagation': 'true', |
95 'get-video-provider-settings-add-form.html'), |
93 'get-video-provider-settings-add-form.html'), |
96 'ams-select2-helper-argument': 'provider_name', |
94 'ams-select2-helper-argument': 'provider_name', |
97 'ams-select2-helper-target': '#video-settings-helper' |
95 'ams-select2-helper-target': '#video-settings-helper' |
98 } |
96 } |
99 alsoProvides(widget, IObjectData) |
97 alsoProvides(widget, IObjectData) |
100 |
|
101 def updateGroups(self): |
|
102 if 'body' in self.widgets: |
|
103 self.add_group(NamedWidgetsGroup(self, 'body_group', self.widgets, ('body',), |
|
104 bordered=False, |
|
105 legend=_("HTML content"), |
|
106 css_class='inner switcher padding-right-10 no-y-padding pull-left', |
|
107 switch=True, |
|
108 display_mode='auto')) |
|
109 self.add_group(NamedWidgetsGroup(self, 'data_group', self.widgets, |
|
110 ('description', 'author', 'renderer', 'provider_name'), |
|
111 bordered=False)) |
|
112 super(ExternalVideoParagraphAddForm, self).updateGroups() |
|
113 |
98 |
114 def create(self, data): |
99 def create(self, data): |
115 return ExternalVideoParagraph() |
100 return ExternalVideoParagraph() |
116 |
101 |
117 def update_content(self, content, data): |
102 def update_content(self, content, data): |
209 |
194 |
210 edit_permission = MANAGE_CONTENT_PERMISSION |
195 edit_permission = MANAGE_CONTENT_PERMISSION |
211 |
196 |
212 @property |
197 @property |
213 def fields(self): |
198 def fields(self): |
214 fields = field.Fields(IExternalVideoParagraph).omit('__parent__', '__name__', 'visible') |
199 fields = field.Fields(IExternalVideoParagraph).select('title', 'description', 'author', 'renderer', |
|
200 'provider_name') |
215 fields['renderer'].widgetFactory = RendererFieldWidget |
201 fields['renderer'].widgetFactory = RendererFieldWidget |
216 provider = self.context.get_provider() |
202 provider = self.context.get_provider() |
217 if provider is not None: |
203 if provider is not None: |
218 fields += field.Fields(provider.settings_interface) |
204 fields += field.Fields(provider.settings_interface) |
219 return fields |
205 return fields |
220 |
206 |
221 def updateWidgets(self, prefix=None): |
207 def updateWidgets(self, prefix=None): |
222 super(ExternalVideoParagraphPropertiesEditForm, self).updateWidgets(prefix) |
208 super(ExternalVideoParagraphPropertiesEditForm, self).updateWidgets(prefix) |
223 if 'description' in self.widgets: |
209 if 'description' in self.widgets: |
224 self.widgets['description'].widget_css_class = 'textarea' |
210 self.widgets['description'].widget_css_class = 'textarea' |
225 if 'body' in self.widgets: |
|
226 self.widgets['body'].label = '' |
|
227 if 'provider_name' in self.widgets: |
211 if 'provider_name' in self.widgets: |
228 self.widgets['provider_name'].mode = DISPLAY_MODE |
212 self.widgets['provider_name'].mode = DISPLAY_MODE |
229 |
213 |
230 def updateGroups(self): |
214 def updateGroups(self): |
231 if 'body' in self.widgets: |
|
232 self.add_group(NamedWidgetsGroup(self, 'body_group', self.widgets, ('body',), |
|
233 bordered=False, |
|
234 fieldset_class='margin-top-10 padding-y-5', |
|
235 legend=_("HTML content"), |
|
236 css_class='inner switcher padding-right-10 no-y-padding pull-left', |
|
237 switch=True, |
|
238 display_mode='auto')) |
|
239 self.add_group(NamedWidgetsGroup(self, 'data_group', self.widgets, |
|
240 ('description', 'author', 'renderer', 'provider_name'), |
|
241 bordered=False)) |
|
242 if 'provider_name' in self.widgets: |
215 if 'provider_name' in self.widgets: |
243 provider = self.context.get_provider() |
216 provider = self.context.get_provider() |
244 if provider is not None: |
217 if provider is not None: |
245 if 'integration_code' in self.widgets: # custom video provider |
218 if 'integration_code' in self.widgets: # custom video provider |
246 self.widgets['integration_code'].widget_css_class = 'textarea' |
219 self.widgets['integration_code'].widget_css_class = 'textarea' |
259 switch=True, |
232 switch=True, |
260 display_mode='never')) |
233 display_mode='never')) |
261 |
234 |
262 def get_ajax_output(self, changes): |
235 def get_ajax_output(self, changes): |
263 output = super(self.__class__, self).get_ajax_output(changes) |
236 output = super(self.__class__, self).get_ajax_output(changes) |
264 if 'title' in changes.get(IBaseParagraph, ()): |
237 if 'title' in changes.get(IExternalVideoParagraph, ()): |
265 output.setdefault('events', []).append( |
238 output.setdefault('events', []).append( |
266 get_json_paragraph_refresh_event(self.context, self.request)) |
239 get_json_paragraph_refresh_event(self.context, self.request)) |
267 return output |
240 return output |
268 |
241 |
269 |
242 |