7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED |
7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED |
8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS |
9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS |
10 # FOR A PARTICULAR PURPOSE. |
10 # FOR A PARTICULAR PURPOSE. |
11 # |
11 # |
12 from pyams_content.component.paragraph import IBaseParagraph |
|
13 |
|
14 |
12 |
15 __docformat__ = 'restructuredtext' |
13 __docformat__ = 'restructuredtext' |
16 |
14 |
17 from z3c.form import button, field |
15 from z3c.form import button, field |
18 from z3c.form.interfaces import INPUT_MODE |
16 from z3c.form.interfaces import INPUT_MODE |
19 from zope.interface import implementer |
17 from zope.interface import implementer |
20 |
18 |
21 from pyams_content.component.association.zmi.interfaces import IAssociationsParentForm |
19 from pyams_content.component.association.zmi.interfaces import IAssociationsParentForm |
|
20 from pyams_content.component.paragraph import IBaseParagraph |
22 from pyams_content.component.paragraph.interfaces import IParagraphContainer, IParagraphContainerTarget, \ |
21 from pyams_content.component.paragraph.interfaces import IParagraphContainer, IParagraphContainerTarget, \ |
23 PARAGRAPH_HIDDEN_FIELDS |
22 PARAGRAPH_HIDDEN_FIELDS |
24 from pyams_content.component.paragraph.interfaces.verbatim import IVerbatimParagraph, VERBATIM_PARAGRAPH_TYPE |
23 from pyams_content.component.paragraph.interfaces.verbatim import IVerbatimParagraph, VERBATIM_PARAGRAPH_TYPE |
25 from pyams_content.component.paragraph.verbatim import VerbatimParagraph |
24 from pyams_content.component.paragraph.verbatim import VerbatimParagraph |
26 from pyams_content.component.paragraph.zmi import BaseParagraphAJAXAddForm, BaseParagraphAJAXEditForm, \ |
25 from pyams_content.component.paragraph.zmi import BaseParagraphAJAXAddForm, BaseParagraphAJAXEditForm, \ |
31 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION |
30 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION |
32 from pyams_form.form import ajax_config |
31 from pyams_form.form import ajax_config |
33 from pyams_form.interfaces.form import IInnerForm |
32 from pyams_form.interfaces.form import IInnerForm |
34 from pyams_i18n.interfaces import II18n |
33 from pyams_i18n.interfaces import II18n |
35 from pyams_pagelet.pagelet import pagelet_config |
34 from pyams_pagelet.pagelet import pagelet_config |
36 from pyams_skin.event import get_json_widget_refresh_event |
|
37 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu |
35 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu |
38 from pyams_skin.layer import IPyAMSLayer |
36 from pyams_skin.layer import IPyAMSLayer |
39 from pyams_utils.adapter import adapter_config |
37 from pyams_utils.adapter import adapter_config |
40 from pyams_utils.text import get_text_start |
38 from pyams_utils.text import get_text_start |
41 from pyams_viewlet.viewlet import viewlet_config |
39 from pyams_viewlet.viewlet import viewlet_config |
71 icon_css_class = 'fa fa-fw fa-quote-right' |
69 icon_css_class = 'fa fa-fw fa-quote-right' |
72 |
70 |
73 fields = field.Fields(IVerbatimParagraph).omit(*PARAGRAPH_HIDDEN_FIELDS) |
71 fields = field.Fields(IVerbatimParagraph).omit(*PARAGRAPH_HIDDEN_FIELDS) |
74 edit_permission = MANAGE_CONTENT_PERMISSION |
72 edit_permission = MANAGE_CONTENT_PERMISSION |
75 |
73 |
|
74 def updateWidgets(self, prefix=None): |
|
75 super(VerbatimParagraphAddForm, self).updateWidgets(prefix) |
|
76 if 'quote' in self.widgets: |
|
77 self.widgets['quote'].widget_css_class = 'input height-100' |
|
78 |
76 def create(self, data): |
79 def create(self, data): |
77 return VerbatimParagraph() |
80 return VerbatimParagraph() |
78 |
81 |
79 def add(self, object): |
82 def add(self, object): |
80 IParagraphContainer(self.context).append(object) |
83 IParagraphContainer(self.context).append(object) |
107 fields = field.Fields(IVerbatimParagraph).omit(*PARAGRAPH_HIDDEN_FIELDS) |
110 fields = field.Fields(IVerbatimParagraph).omit(*PARAGRAPH_HIDDEN_FIELDS) |
108 fields['renderer'].widgetFactory = RendererFieldWidget |
111 fields['renderer'].widgetFactory = RendererFieldWidget |
109 |
112 |
110 edit_permission = MANAGE_CONTENT_PERMISSION |
113 edit_permission = MANAGE_CONTENT_PERMISSION |
111 |
114 |
|
115 def updateWidgets(self, prefix=None): |
|
116 super(VerbatimParagraphPropertiesEditForm, self).updateWidgets(prefix) |
|
117 if 'quote' in self.widgets: |
|
118 self.widgets['quote'].widget_css_class = 'input height-100' |
|
119 |
112 def get_ajax_output(self, changes): |
120 def get_ajax_output(self, changes): |
113 output = super(self.__class__, self).get_ajax_output(changes) |
121 output = super(self.__class__, self).get_ajax_output(changes) |
114 if 'quote' in changes.get(IVerbatimParagraph, ()): |
122 if 'quote' in changes.get(IVerbatimParagraph, ()): |
115 if 'title' not in changes.get(IBaseParagraph, ()): |
123 if 'title' not in changes.get(IBaseParagraph, ()): |
116 output.setdefault('events', []).append( |
124 output.setdefault('events', []).append( |