equal
deleted
inserted
replaced
26 from pyams_portal.interfaces import MANAGE_TEMPLATE_PERMISSION |
26 from pyams_portal.interfaces import MANAGE_TEMPLATE_PERMISSION |
27 from pyams_skin.interfaces.viewlet import IWidgetTitleViewletManager, IToolbarAddingMenu |
27 from pyams_skin.interfaces.viewlet import IWidgetTitleViewletManager, IToolbarAddingMenu |
28 from pyams_skin.layer import IPyAMSLayer |
28 from pyams_skin.layer import IPyAMSLayer |
29 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION |
29 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION |
30 from pyams_viewlet.interfaces import IViewletManager |
30 from pyams_viewlet.interfaces import IViewletManager |
|
31 from pyams_zmi.interfaces import IPropertiesEditForm |
31 from z3c.table.interfaces import IValues, IColumn |
32 from z3c.table.interfaces import IValues, IColumn |
32 |
33 |
33 # import packages |
34 # import packages |
34 from pyams_content.component.association.zmi import AssociationsTable, AssociationsTablePublicNameColumn |
35 from pyams_content.component.association.zmi import AssociationsTable, AssociationsTablePublicNameColumn |
35 from pyams_form.form import ajax_config, AJAXAddForm, AJAXEditForm |
36 from pyams_form.form import ajax_config, AJAXAddForm, AJAXEditForm |
46 from pyams_viewlet.viewlet import viewlet_config |
47 from pyams_viewlet.viewlet import viewlet_config |
47 from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm |
48 from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm |
48 from pyams_zmi.zmi.table import InnerTableView |
49 from pyams_zmi.zmi.table import InnerTableView |
49 from pyramid.decorator import reify |
50 from pyramid.decorator import reify |
50 from pyramid.exceptions import NotFound |
51 from pyramid.exceptions import NotFound |
|
52 from pyramid.renderers import render |
51 from pyramid.view import view_config |
53 from pyramid.view import view_config |
52 from z3c.form import field |
54 from z3c.form import field |
53 from zope.interface import implementer, alsoProvides, Interface |
55 from zope.interface import implementer, alsoProvides, Interface |
54 |
56 |
55 from pyams_content import _ |
57 from pyams_content import _ |
112 } |
114 } |
113 |
115 |
114 |
116 |
115 @pagelet_config(name='properties.html', context=IMenu, layer=IPyAMSLayer, permission=MANAGE_TEMPLATE_PERMISSION) |
117 @pagelet_config(name='properties.html', context=IMenu, layer=IPyAMSLayer, permission=MANAGE_TEMPLATE_PERMISSION) |
116 @ajax_config(name='properties.json', context=IMenu, layer=IPyAMSLayer) |
118 @ajax_config(name='properties.json', context=IMenu, layer=IPyAMSLayer) |
|
119 @implementer(IPropertiesEditForm) |
117 class MenuPropertiesEditForm(AdminDialogEditForm): |
120 class MenuPropertiesEditForm(AdminDialogEditForm): |
118 """Menu properties edit form""" |
121 """Menu properties edit form""" |
119 |
122 |
120 legend = _("Edit menu properties") |
123 legend = _("Edit menu properties") |
121 icon_css_class = 'fa fa-fw fa-bars' |
124 icon_css_class = 'fa fa-fw fa-bars' |
|
125 |
|
126 dialog_class = 'modal-large' |
122 |
127 |
123 fields = field.Fields(IMenu).select('title') |
128 fields = field.Fields(IMenu).select('title') |
124 edit_permission = MANAGE_TEMPLATE_PERMISSION |
129 edit_permission = MANAGE_TEMPLATE_PERMISSION |
125 |
130 |
126 def get_ajax_output(self, changes): |
131 def get_ajax_output(self, changes): |
203 _header = _("Label") |
208 _header = _("Label") |
204 attrName = 'title' |
209 attrName = 'title' |
205 weight = 10 |
210 weight = 10 |
206 |
211 |
207 def renderCell(self, item): |
212 def renderCell(self, item): |
208 return '<span data-ams-stop-propagation="true" ' \ |
213 return render('templates/menu-name-cell.pt', {'context': item}, request=self.request) |
209 ' data-ams-click-handler="MyAMS.skin.switchCellContent" ' \ |
|
210 ' data-ams-switch-handler="get-menu-items.json" ' \ |
|
211 ' data-ams-switch-target=".menus">' \ |
|
212 ' <span class="small hint" title="{hint}" data-ams-hint-gravity="e">' \ |
|
213 ' <i class="fa fa-plus-square-o switch"></i>' \ |
|
214 ' </span>' \ |
|
215 '</span> <span class="title">{title}</span>' \ |
|
216 '<div class="inner-table-form menus margin-x-10 margin-bottom-0 padding-left-5"></div>'.format( |
|
217 hint=self.request.localizer.translate(_("Click to see menu items")), |
|
218 title=super(MenusTableNameColumn, self).renderCell(item)) |
|
219 |
214 |
220 |
215 |
221 @adapter_config(name='trash', context=(IMenusContainerTarget, IPyAMSLayer, MenusTable), provides=IColumn) |
216 @adapter_config(name='trash', context=(IMenusContainerTarget, IPyAMSLayer, MenusTable), provides=IColumn) |
222 class MenusTableTrashColumn(TrashColumn): |
217 class MenusTableTrashColumn(TrashColumn): |
223 """Menus table trash column""" |
218 """Menus table trash column""" |