src/pyams_content/component/paragraph/zmi/html.py
changeset 1194 d4ae54d8fe17
parent 1141 a033c4cad074
child 1243 837612af4dc3
equal deleted inserted replaced
1193:7601e1471970 1194:d4ae54d8fe17
    12 
    12 
    13 __docformat__ = 'restructuredtext'
    13 __docformat__ = 'restructuredtext'
    14 
    14 
    15 from z3c.form import button, field
    15 from z3c.form import button, field
    16 from z3c.form.interfaces import INPUT_MODE
    16 from z3c.form.interfaces import INPUT_MODE
    17 from zope.interface import implementer
    17 from zope.interface import alsoProvides, implementer
    18 
    18 
       
    19 from pyams_content import _
    19 from pyams_content.component.association.interfaces import IAssociationContainerTarget
    20 from pyams_content.component.association.interfaces import IAssociationContainerTarget
    20 from pyams_content.component.association.zmi import AssociationsTable
    21 from pyams_content.component.association.zmi import AssociationsTable
    21 from pyams_content.component.association.zmi.interfaces import IAssociationsParentForm
    22 from pyams_content.component.association.zmi.interfaces import IAssociationsParentForm
    22 from pyams_content.component.paragraph.html import HTMLParagraph, RawParagraph
    23 from pyams_content.component.paragraph.html import HTMLParagraph, RawParagraph
    23 from pyams_content.component.paragraph.interfaces import IBaseParagraph, IParagraphContainer, \
    24 from pyams_content.component.paragraph.interfaces import IBaseParagraph, IParagraphContainer, \
    39 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu
    40 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu
    40 from pyams_skin.layer import IPyAMSLayer
    41 from pyams_skin.layer import IPyAMSLayer
    41 from pyams_skin.viewlet.menu import MenuDivider
    42 from pyams_skin.viewlet.menu import MenuDivider
    42 from pyams_utils.adapter import adapter_config
    43 from pyams_utils.adapter import adapter_config
    43 from pyams_utils.html import html_to_text
    44 from pyams_utils.html import html_to_text
       
    45 from pyams_utils.interfaces.data import IObjectData
    44 from pyams_utils.text import get_text_start
    46 from pyams_utils.text import get_text_start
    45 from pyams_utils.traversing import get_parent
    47 from pyams_utils.traversing import get_parent
    46 from pyams_viewlet.viewlet import viewlet_config
    48 from pyams_viewlet.viewlet import viewlet_config
    47 from pyams_zmi.form import AdminDialogAddForm
    49 from pyams_zmi.form import AdminDialogAddForm
    48 from pyams_zmi.interfaces import IPropertiesEditForm
    50 from pyams_zmi.interfaces import IPropertiesEditForm
    49 
    51 
    50 from pyams_content import _
       
    51 
       
    52 
    52 
    53 #
    53 #
    54 # Raw HTML paragraph
    54 # Raw HTML paragraph
    55 #
    55 #
    56 
    56 
    94     edit_permission = MANAGE_CONTENT_PERMISSION
    94     edit_permission = MANAGE_CONTENT_PERMISSION
    95 
    95 
    96     def updateWidgets(self, prefix=None):
    96     def updateWidgets(self, prefix=None):
    97         super(RawParagraphAddForm, self).updateWidgets(prefix)
    97         super(RawParagraphAddForm, self).updateWidgets(prefix)
    98         if 'body' in self.widgets:
    98         if 'body' in self.widgets:
    99             self.widgets['body'].widget_css_class = 'monospace input height-200'
    99             widget = self.widgets['body']
       
   100             widget.widget_css_class = 'monospace input height-400 text-editor'
       
   101             widget.object_data = {
       
   102                 'ams-editor-mode': 'ace/mode/html'
       
   103             }
       
   104             alsoProvides(widget, IObjectData)
   100 
   105 
   101     def create(self, data):
   106     def create(self, data):
   102         return RawParagraph()
   107         return RawParagraph()
   103 
   108 
   104     def add(self, object):
   109     def add(self, object):
   123     edit_permission = MANAGE_CONTENT_PERMISSION
   128     edit_permission = MANAGE_CONTENT_PERMISSION
   124 
   129 
   125     def updateWidgets(self, prefix=None):
   130     def updateWidgets(self, prefix=None):
   126         super(RawParagraphPropertiesEditForm, self).updateWidgets(prefix)
   131         super(RawParagraphPropertiesEditForm, self).updateWidgets(prefix)
   127         if 'body' in self.widgets:
   132         if 'body' in self.widgets:
   128             self.widgets['body'].widget_css_class = 'monospace input height-200'
   133             widget = self.widgets['body']
       
   134             widget.widget_css_class = 'monospace input height-400 text-editor'
       
   135             widget.object_data = {
       
   136                 'ams-editor-mode': 'ace/mode/html'
       
   137             }
       
   138             alsoProvides(widget, IObjectData)
   129 
   139 
   130 
   140 
   131 @adapter_config(context=(IRawParagraph, IPyAMSLayer), provides=IParagraphInnerEditor)
   141 @adapter_config(context=(IRawParagraph, IPyAMSLayer), provides=IParagraphInnerEditor)
   132 @ajax_config(name='inner-properties.json', context=IRawParagraph, layer=IPyAMSLayer,
   142 @ajax_config(name='inner-properties.json', context=IRawParagraph, layer=IPyAMSLayer,
   133              base=BaseParagraphAJAXEditForm)
   143              base=BaseParagraphAJAXEditForm)