timeline/js/timeline.js
changeset 101 05c1161fa501
parent 99 281ef3fd6f84
child 102 2f1ef2ded30c
--- a/timeline/js/timeline.js	Fri Oct 04 11:25:57 2013 +0200
+++ b/timeline/js/timeline.js	Fri Oct 04 11:26:40 2013 +0200
@@ -13,13 +13,13 @@
 
 Tlns.Utils.zeroPad = function(_n) {
     return (_n < 10 ? "0" : "") + _n;
-}
+};
 
 Tlns.Utils.SetDefaults = function(_object, _defaults, _options) {
     var _options = _options || {};
     _(_defaults).each(function(_v, _k) {
         if(/^m(in|ax)_/.test(_k)) {
-            var _tab = _k.split('_')
+            var _tab = _k.split('_');
             if( typeof _object[_tab[1]] !== "undefined") {
                 var _fn = Math[_tab[0] === "max" ? "min":"max"];
                 _object[_tab[1]] = _fn(_object[_tab[1]], _v);
@@ -55,7 +55,7 @@
         monthName: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"][_date.getMonth()],
         shortMonthName: ["jan.","fev.","mar.","avr.","mai","jun.","jul.","aou.","sep.","oct.","nov.","dec."][_date.getMonth()],
         year: _date.getFullYear()
-    }
+    };
     return Mustache.to_html(_template, _params);
 };
 
@@ -79,7 +79,7 @@
         hours: _h,
         minutes: _m,
         text: Tlns.Utils.zeroPad(_h) + ':' + Tlns.Utils.zeroPad(_m)
-    }
+    };
 };
 
 Tlns.Utils.dateFieldProcess = function(_val) {
@@ -106,11 +106,13 @@
         month: _m,
         date: _d,
         text: Tlns.Utils.zeroPad(_d) + '/' + Tlns.Utils.zeroPad(_m) + '/' + _y
-    }
+    };
 };
 
 /* Defaults */
 
+/* TOUTE LA CONFIGURATION DE L'APPLI SE FAIT ICI */
+
 Tlns.Defaults.Timeline = {
     email: "",
     token: "",
@@ -132,19 +134,19 @@
         span : 7 * 86400 * 1000,
         grid_interval : 86400 * 1000,
         grid_date_format : '{{dayOfMonth}} {{monthName}}',
-        min_importance : 0
+        min_importance : 3
     }, {
         label : "3 jours",
         span : 3 * 86400 * 1000,
         grid_interval : 6 * 3600 * 1000,
         grid_date_format : '{{^isDayStart}}{{0hours}}h{{0minutes}}{{/isDayStart}}{{#isDayStart}}{{dayOfMonth}} {{shortMonthName}}{{/isDayStart}}',
-        min_importance : 0
+        min_importance : 2
     }, {
         label : "Journée",
         span : 86400 * 1000,
         grid_interval : 2 * 3600 * 1000,
         grid_date_format : '{{^isDayStart}}{{0hours}}h{{0minutes}}{{/isDayStart}}{{#isDayStart}}{{dayOfMonth}} {{shortMonthName}}{{/isDayStart}}',
-        min_importance : 0
+        min_importance : 1
     }, {
         label : "Demi-Journée",
         span : 6 * 3600 * 1000,
@@ -558,9 +560,33 @@
     var minT = this.timeFromX(-32),
         minI = this.timescales[this.level].min_importance;
     var _visible = _(this.occurrences).filter(function(_occ) {
-        return (_occ.date >= minT && _occ.date <= _this.end_time && (_occ.importance >= minI));
+        _occ.visible = (_occ.date >= minT && _occ.date <= _this.end_time && (_occ.importance >= minI));
+        return _occ.visible;
     });
     
+    /* FILTRAGE SI TROP D'OCCURRENCES PAR UNITE DE TEMPS */
+    
+    var _timescale = this.timescales[this.level],
+        _offset = new Date().getTimezoneOffset() * 60000,
+        _grid_width = Math.floor(_timescale.grid_interval * this.current_scale),
+        _roundstart = Math.floor((this.start_time - _offset) / _timescale.grid_interval) * _timescale.grid_interval + _offset,
+        _html = '';
+    for (var _t = _roundstart; _t < this.end_time; _t += _timescale.grid_interval) {
+        var items = _(_visible).filter(function(_occ) {
+            return _occ.date >= _t && _occ.date < _t + _timescale.grid_interval;
+        });
+        if (items && items.length > 1) {
+            _(items).chain().rest().each(function(_occ) {
+                _occ.visible = false;
+            });
+        }
+    }
+    var _visible = _(_visible).filter(function(_occ) { return _occ.visible; });
+    
+    /* FIN FILTRAGE */
+    
+    /* REORGANISATION DES PICTOS SI TROP NOMBREUX */
+    
     var _moved = true, l = 0;
     while (_moved && l < 10) {
         l++;
@@ -581,6 +607,8 @@
         }
     }
     
+    /* FIN REORGANISATION */
+    
     var _html = Mustache.to_html(Tlns.Templates.Occurrence, {
         occurrences: _visible
     });