src/pyams_content/component/links/zmi/__init__.py
changeset 683 20acd0a6d5a5
parent 625 abd143a83a07
child 685 081cb4c45d29
equal deleted inserted replaced
682:d093aba47072 683:20acd0a6d5a5
    23 from pyams_content.component.paragraph.zmi.interfaces import IParagraphContainerTable, IParagraphTitleToolbar
    23 from pyams_content.component.paragraph.zmi.interfaces import IParagraphContainerTable, IParagraphTitleToolbar
    24 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
    24 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
    25 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu
    25 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu
    26 from pyams_skin.layer import IPyAMSLayer
    26 from pyams_skin.layer import IPyAMSLayer
    27 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
    27 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
       
    28 from pyams_zmi.interfaces import IPropertiesEditForm
    28 
    29 
    29 # import packages
    30 # import packages
    30 from pyams_content.component.association.zmi import AssociationItemAJAXAddForm, AssociationItemAJAXEditForm
    31 from pyams_content.component.association.zmi import AssociationItemAJAXAddForm, AssociationItemAJAXEditForm
    31 from pyams_content.component.links import InternalLink, ExternalLink, MailtoLink
    32 from pyams_content.component.links import InternalLink, ExternalLink, MailtoLink
    32 from pyams_content.component.paragraph.zmi import get_json_paragraph_markers_refresh_event
    33 from pyams_content.component.paragraph.zmi import get_json_paragraph_markers_refresh_event
    37 from pyams_pagelet.pagelet import pagelet_config
    38 from pyams_pagelet.pagelet import pagelet_config
    38 from pyams_skin.viewlet.toolbar import ToolbarMenuItem
    39 from pyams_skin.viewlet.toolbar import ToolbarMenuItem
    39 from pyams_viewlet.viewlet import viewlet_config
    40 from pyams_viewlet.viewlet import viewlet_config
    40 from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm
    41 from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm
    41 from z3c.form import field
    42 from z3c.form import field
       
    43 from zope.interface import implementer
    42 
    44 
    43 from pyams_content import _
    45 from pyams_content import _
    44 
    46 
    45 
    47 
    46 #
    48 #
   112 
   114 
   113 
   115 
   114 @pagelet_config(name='properties.html', context=IInternalLink, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
   116 @pagelet_config(name='properties.html', context=IInternalLink, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
   115 @ajax_config(name='properties.json', context=IInternalLink, layer=IPyAMSLayer,
   117 @ajax_config(name='properties.json', context=IInternalLink, layer=IPyAMSLayer,
   116              permission=MANAGE_CONTENT_PERMISSION, base=AssociationItemAJAXEditForm)
   118              permission=MANAGE_CONTENT_PERMISSION, base=AssociationItemAJAXEditForm)
       
   119 @implementer(IPropertiesEditForm)
   117 class InternalLinkPropertiesEditForm(AdminDialogEditForm):
   120 class InternalLinkPropertiesEditForm(AdminDialogEditForm):
   118     """Internal link properties edit form"""
   121     """Internal link properties edit form"""
   119 
   122 
   120     prefix = 'internallink_properties.'
   123     prefix = 'internallink_properties.'
   121 
   124 
   122     legend = _("Edit internal link properties")
   125     legend = _("Edit internal link properties")
   123     icon_css_class = 'fa fa-fw fa-external-link-square fa-rotate-90'
   126     icon_css_class = 'fa fa-fw fa-external-link-square fa-rotate-90'
       
   127     dialog_class = 'modal-large'
   124 
   128 
   125     fields = field.Fields(IInternalLink).select('reference', 'title', 'description', 'pictogram_name')
   129     fields = field.Fields(IInternalLink).select('reference', 'title', 'description', 'pictogram_name')
   126     fields['pictogram_name'].widgetFactory = PictogramSelectFieldWidget
   130     fields['pictogram_name'].widgetFactory = PictogramSelectFieldWidget
   127 
   131 
   128     edit_permission = None  # defined by IFormContextPermissionChecker adapter
   132     edit_permission = None  # defined by IFormContextPermissionChecker adapter
   209 
   213 
   210 
   214 
   211 @pagelet_config(name='properties.html', context=IExternalLink, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
   215 @pagelet_config(name='properties.html', context=IExternalLink, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
   212 @ajax_config(name='properties.json', context=IExternalLink, layer=IPyAMSLayer,
   216 @ajax_config(name='properties.json', context=IExternalLink, layer=IPyAMSLayer,
   213              permission=MANAGE_CONTENT_PERMISSION, base=AssociationItemAJAXEditForm)
   217              permission=MANAGE_CONTENT_PERMISSION, base=AssociationItemAJAXEditForm)
       
   218 @implementer(IPropertiesEditForm)
   214 class ExternalLinkPropertiesEditForm(AdminDialogEditForm):
   219 class ExternalLinkPropertiesEditForm(AdminDialogEditForm):
   215     """External link properties edit form"""
   220     """External link properties edit form"""
   216 
   221 
   217     prefix = 'externallink_properties.'
   222     prefix = 'externallink_properties.'
   218 
   223 
   306 
   311 
   307 
   312 
   308 @pagelet_config(name='properties.html', context=IMailtoLink, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
   313 @pagelet_config(name='properties.html', context=IMailtoLink, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
   309 @ajax_config(name='properties.json', context=IMailtoLink, layer=IPyAMSLayer,
   314 @ajax_config(name='properties.json', context=IMailtoLink, layer=IPyAMSLayer,
   310              permission=MANAGE_CONTENT_PERMISSION, base=AssociationItemAJAXEditForm)
   315              permission=MANAGE_CONTENT_PERMISSION, base=AssociationItemAJAXEditForm)
       
   316 @implementer(IPropertiesEditForm)
   311 class MailtoLinkPropertiesEditForm(AdminDialogEditForm):
   317 class MailtoLinkPropertiesEditForm(AdminDialogEditForm):
   312     """Mailto link properties edit form"""
   318     """Mailto link properties edit form"""
   313 
   319 
   314     prefix = 'mailtolink_properties.'
   320     prefix = 'mailtolink_properties.'
   315 
   321