diff -r 000000000000 -r b97547f5f1fa web/data/cubicweb.timeline-ext.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/data/cubicweb.timeline-ext.js Wed Nov 05 15:52:50 2008 +0100 @@ -0,0 +1,101 @@ +/* + * :organization: Logilab + * :copyright: 2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved. + * :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr + * + */ + + +/* provide our own custom date parser since the default + * one only understands iso8601 and gregorian dates + */ +Timeline.NativeDateUnit.getParser = function(format) { + if (typeof format == "string") { + if (format.indexOf('%') != -1) { + return function(datestring) { + if (datestring) { + return strptime(datestring, format); + } + return null; + }; + } + format = format.toLowerCase(); + } + if (format == "iso8601" || format == "iso 8601") { + return Timeline.DateTime.parseIso8601DateTime; + } + return Timeline.DateTime.parseGregorianDateTime; +}; + +/*** CUBICWEB EVENT PAINTER *****************************************************/ +Timeline.CubicWebEventPainter = function(params) { +// Timeline.OriginalEventPainter.apply(this, arguments); + this._params = params; + this._onSelectListeners = []; + + this._filterMatcher = null; + this._highlightMatcher = null; + this._frc = null; + + this._eventIdToElmt = {}; + this.foo = 'bar'; +}; + +Timeline.CubicWebEventPainter.prototype = new Timeline.OriginalEventPainter(); + +Timeline.CubicWebEventPainter.prototype._paintEventLabel = function( + evt, text, left, top, width, height, theme) { + var doc = this._timeline.getDocument(); + + var labelDiv = doc.createElement("div"); + labelDiv.className = 'timeline-event-label'; + + labelDiv.style.left = left + "px"; + labelDiv.style.width = width + "px"; + labelDiv.style.top = top + "px"; + + if (evt._obj.onclick) { + labelDiv.appendChild(A({'href': evt._obj.onclick}, text)); + } else if (evt._obj.image) { + labelDiv.appendChild(IMG({src: evt._obj.image, width: '30px', height: '30px'})); + } else { + labelDiv.innerHTML = text; + } + + if(evt._title != null) + labelDiv.title = evt._title; + + var color = evt.getTextColor(); + if (color == null) { + color = evt.getColor(); + } + if (color != null) { + labelDiv.style.color = color; + } + var classname = evt.getClassName(); + if(classname) labelDiv.className +=' ' + classname; + + this._eventLayer.appendChild(labelDiv); + + return { + left: left, + top: top, + width: width, + height: height, + elmt: labelDiv + }; +}; + + +Timeline.CubicWebEventPainter.prototype._showBubble = function(x, y, evt) { + var div = DIV({id: 'xxx'}); + var width = this._params.theme.event.bubble.width; + if (!evt._obj.bubbleUrl) { + evt.fillInfoBubble(div, this._params.theme, this._band.getLabeller()); + } + SimileAjax.WindowManager.cancelPopups(); + SimileAjax.Graphics.createBubbleForContentAndPoint(div, x, y, width); + if (evt._obj.bubbleUrl) { + jQuery('#xxx').loadxhtml(evt._obj.bubbleUrl, null, 'post', 'replace'); + } +};