web/data/cubicweb.timeline-ext.js
changeset 0 b97547f5f1fa
child 67 60a291fe7965
--- /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');
+  }
+};