src/pyams_content/component/video/zmi/paragraph.py
changeset 598 f9cd7d17430e
parent 591 b694d5667d17
child 842 7f0d72e427b1
equal deleted inserted replaced
597:f4912f6e4cde 598:f9cd7d17430e
    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