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) |