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