Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
With ftw.tooltip
you are able to dynamically add tooltips to every DOM
element, which is selectable by jQuery and allows the title attribute.
.. figure:: http://onegov.ch/approved.png/image :align: right :target: http://onegov.ch/community/zertifizierte-module/ftw.tooltip
Certified: 01/2013
Add ftw.tooltip
to your buildout configuration:
::
[instance] eggs = ftw.tooltip
Import ftw.tooltip
default profile.
Basically you have to register named ITooltipSource
adapters.
They will be queried by a view, which generates the necessary JS code.
There are two example tooltip-source adapter, to show how they work
You can load both examples on your site by register the following adapters::
>>> from ftw.tooltip.demo_tooltip_source import (DemoStaticTooltipSource,
... DemoDynamicTooltipSource)
>>> from zope.component import provideAdapter
>>> provideAdapter(DemoStaticTooltipSource, name="demo1")
>>> provideAdapter(DemoDynamicTooltipSource, name="demo2")
Or if you are using zcml::
<adapter
factory="ftw.tooltip.demo_tooltip_source.DemoStaticTooltipSource" name="demo1" />
<adapter
factory="ftw.tooltip.demo_tooltip_source.DemoDynamicTooltipSource" name="demo2" />
It's easy to define a new ITooltipSource
adapter.
The following example will show a tooltip "This is the edit bar" only on
folderish types (check global_condition) and of course only if "documentEditable"
css class is available::
>>> from zope.component import adapts
>>> from zope.interface import implements, Interface
>>> from ftw.tooltip.interfaces import ITooltipSource
>>> from plone.app.layout.navigation.interfaces import INavigationRoot
>>> from Products.CMFCore.interfaces import IFolderish
>>> class EditBarTooltip(object):
... """Base demo static tooltip source. Use a given text"""
... implements(ITooltipSource)
... adapts(Interface, Interface)
...
... def __init__(self, context, request):
... self.context = context
... self.request = request
...
... def global_condition(self):
... return bool(IFolderish.providedBy(self.context))
...
... def tooltips(self):
... return [{
... 'selector': u'#edit-bar',
... 'text': u'This is the edit bar',
... 'condition': 'div.documentEditable'}]
Register the adapter with ZCML::
>>> <adapter
... factory="your.module.EditBarTooltip" name="my_edit_bar_tooltip" />
You may want to use your own tooltip layout: Just register a BrowserView named "ftw_tooltip_layout" and return the tooltip layout you prefere.
Or you can fully customize the tooltip paramters by register a BrowserView named "ftw_tooltip_custom_config" - check jquerytools documentation for more details.
Small customization example::
{
offset: [-10, 10],
position: 'right center',
opacity: '0.7',
}
It's also possible to use an html-tag as data source(must be a sibling of the selctor) instead of the title attribute. For this case only a small adjustment is necessary:
The ITooltipSource
adapter should return a js-selector in the content
attribute instead of a text attribute::
>>> from zope.component import adapts
>>> from zope.interface import implements, Interface
>>> from ftw.tooltip.interfaces import ITooltipSource
>>> from plone.app.layout.navigation.interfaces import INavigationRoot
>>> from Products.CMFCore.interfaces import IFolderish
>>> class EditBarTooltip(object):
... """Base demo static tooltip source. Use a given text"""
... implements(ITooltipSource)
... adapts(Interface, Interface)
...
... def __init__(self, context, request):
... self.context = context
... self.request = request
...
... def global_condition(self):
... return bool(IFolderish.providedBy(self.context))
...
... def tooltips(self):
... return [{
... 'selector': u'#edit-bar',
... 'condition': 'div.documentEditable',
... 'content': u'.tabbedview-tooltip-data'}]
The only constraint in the html structure, wich must receive attention, is that the content tag must be a sibling of the selector tag. For example::
... <a href="/edit_bar" id="edit_bar"></a>
... <div class="tabbedview-tooltip-data">
... <div class="tooltip-content">
... <div class="tooltip-header">Tooltip Headeer</div>
... <div class="tooltip-breadcrumb">Lorem ipsum ...</div>
... </div>
... </div>
Runs with Plone <http://www.plone.org/>
_ 4.3
.
This package is copyright by 4teamwork <http://www.4teamwork.ch/>
_.
ftw.tooltip
is licensed under GNU General Public License, version 2.
Change behaviour of initialize tooltips on ajax calls.
onegov.ch approved: add badge to readme. [jone]
Add translations. [jone]
Adjust javscripts: Use $ instead of deprecated jq. [phgross]
Added functionality wich allows using html tags as tooltip data. [phgross]
Wrapped <![CDATA[ around inline javascript (W3C). [Julian Infanger]
Fixed wrong ending of a page template file. [Julian Infanger]
Use new test buildout config. [mathias.leimgruber]
Code cleanup (pep8/pylint) [mathias.leimgruber]
Set delay to 0 by default. [mathias.leimgruber]
Trigger mousover event to activate the tooltip, otherwise some tooltip configurations will not work (ex. predelay) [mathias.leimgruber]
FAQs
Apply tooltips dynamically
We found that ftw.tooltip demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 12 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.