#
# Copyright (c) 2008-2015 Thierry Florac <tflorac AT ulthar.net>
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
__docformat__ = 'restructuredtext'
# import standard library
# import interfaces
from pyams_viewlet.interfaces import IViewlet, IViewletManager
# import packages
from zope.interface import Interface, Attribute
from zope.schema import Text, TextLine, List, Object, Dict, Bool
from pyams_skin import _
#
# Top links viewlet manager
#
[docs]class ITopLinksViewletManager(IViewletManager):
"""Topo links viewlet manager interface"""
#
# Top drop-down menus viewlet
#
[docs]class ITopLinksViewlet(IViewlet):
"""Top links viewlet"""
label = TextLine(title="Main label")
dropdown_label = TextLine(title="Drop-down menu label")
css_class = TextLine(title="Main CSS class")
viewlets = List(title="Top links menu",
value_type=Object(schema=ITopLinksMenu))
#
# Top tabs viewlet
#
[docs]class ITopTabsTab(IViewlet):
"""Top tabs tab"""
css_class = TextLine(title="Tab CSS class",
required=False)
label = TextLine(title="Tab label")
click_handler = TextLine(title="Tab click handler",
description="Name of a Javascript function handling tab click",
required=False)
url = TextLine(title="Tab link target")
data = Dict(title="Tab data attribrutes",
key_type=TextLine(),
value_type=TextLine())
[docs]class ITopTabsViewlet(IViewlet):
"""Top tabs viewlet"""
label = TextLine(title="Main label")
css_class = TextLine(title="Main CSS class")
viewlets = List(title="Top tabs items",
value_type=Object(schema=ITopTabsTab))
#
# Shortcuts viewlet manager
#
[docs]class IShortcutsViewletManager(IViewletManager):
"""Shortcuts viewlet manager"""
[docs]class IShortcut(IViewlet):
"""Shortcut viewlet interface"""
bg_color_class = TextLine(title="Shortcut CSS class")
icon_class = TextLine(title="Shortcut icon class")
label = TextLine(title="Shortcut title")
url = TextLine(title="Shortcut target URL")
target = TextLine(title="Window target",
required=False)
modal_target = Bool(title="Modal target",
required=True,
default=True)
checked = TextLine(title="Checked shortcut class",
required=False)
def get_url(self):
"""Return shortcut absolute URL"""
#
# Menus viewlet manager
#
[docs]class IMainMenusViewletManager(IViewletManager):
"""Main menus viewlet manager"""
#
# Breadcrumbs interfaces
#
[docs]class IBreadcrumbs(Interface):
"""Main breadcrumbs interface"""
items = Attribute("Breadcrumbs items iterator attribute")
[docs]class IBreadcrumbItem(Interface):
"""Breadcrumb item interface"""
label = TextLine(title="Item label")
view_name = TextLine(title="Link view name")
css_class = TextLine(title="CSS class")
url = Attribute("Link absolute target URL")
#
# Extensions viewlet manager
#
[docs]class IJSExtensionsViewletManager(IViewletManager):
"""Javascript extensions viewlet manager
These extensions (like Google Analytics tracking code for example)
can be included into layouts footer
"""
#
# Activity viewlet manager
#
[docs]class IActivityViewletManager(IViewletManager):
"""User activity viewlet manager"""
header = TextLine(title="Initial header message")
message = Text(title="Initial message")
loading_text = TextLine(title="Tab loading text",
default=_("<i class='fa fa-refresh fa-spin'></i>"))
refresh_handler = TextLine(title="Refresh button click handler",
default="MyAMS.skin.refreshNotificationsPanel")
def get_last_update(self):
"""Get last update time"""
[docs]class IActivityViewlet(IViewlet):
"""User activity panel viewlet"""
name = TextLine(title="Tab input value")
label = TextLine(title="Tab label")
click_handler = TextLine(title="Tab click handler",
required=False)
url = TextLine(title="Tab content loading URL",
required=False)
def get_url(self):
"""Get menu target URL"""
#
# Widget title extensions viewlet manager
#
#
# Toolbar viewlet manager
#
[docs]class ITableItemColumnActionsMenu(IViewletManager, IToolbarMenu):
"""Table item actions viewlet manager"""
[docs]class IContextActions(IViewletManager, IToolbarMenu):
"""Context actions viewlet manager"""
css_class = TextLine(title="Button CSS class",
default='btn btn-xs btn-default dropdown-toggle')