[selectors] modify workflow selectors: is_in_state, on_transition
- factorize `is_on_state` selector
- add new `on_transition` selector
Especially useful to match pending transitions to enable notifications when
your workflow allows several transition to the same states.
Note that if workflow `change_state` adapter method is used, this selector
will not be triggered.
In debug mode:
These both selectors will check against the entity current workflow if expected
values given in selector argument are valid.
ValueError exception will be raised for unmatching state/transition
names against the current workflow (generic etype workflow).
(check against custom workflow is not implemented)
function showTooltip(x, y, contents) {
$('<div id="tooltip">' + contents + '</div>').css({
position: 'absolute',
display: 'none',
top: y + 5,
left: x + 5,
border: '1px solid #fdd',
padding: '2px',
'background-color': '#fee',
opacity: 0.80
}).appendTo("body").fadeIn(200);
}
var previousPoint = null;
function onPlotHover(event, pos, item) {
if (item) {
if (previousPoint != item.datapoint) {
previousPoint = item.datapoint;
$("#tooltip").remove();
var x = item.datapoint[0].toFixed(2),
y = item.datapoint[1].toFixed(2);
if (item.datapoint.length == 3) {
x = new Date(item.datapoint[2]);
x = x.toLocaleDateString() + ' ' + x.toLocaleTimeString();
} else if (item.datapoint.length == 4) {
x = new Date(item.datapoint[2]);
x = x.strftime(item.datapoint[3]);
}
showTooltip(item.pageX, item.pageY, item.series.label + ': (' + x + ' ; ' + y + ')');
}
} else {
$("#tooltip").remove();
previousPoint = null;
}
}