Utilisateur:Pinocchio/timeline init.js

De BoyWiki

Note : après avoir publié vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou appuyez sur Ctrl + F5 ou Ctrl + R (⌘ + R sur un Mac).
  • Google Chrome : appuyez sur Ctrl + Maj + R (⌘ + Shift + R sur un Mac).
  • Internet Explorer / Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
  • Opera : appuyez sur Ctrl + F5.
/* Initialisation timeline */

var tmln;

/* seulement pour la page timeline */
if (wgPageName == 'Utilisateur:Pinocchio/Timeline' && wgAction == 'view') {

   /* seulement si connexion boywiki sécure (problème referrer) */
   if (document.URL.match(/^https:/)) {

      if (confirm("Le chargement du code de Timeline s'effectue sur le site simile.mit.edu\nAccepter le téléchargement externe ?")) {
   
         /* chargement appli Timeline depuis mit.edu */
         importScriptURI('http://static.simile.mit.edu/timeline/api-2.3.0/timeline-api.js?bundle=true');
         /* chargement style timeline */
         //importStylesheet('Utilisateur:Pinocchio/timeline_style.css');
         /* start */
         timeline_init();
      }
   } else {
      alert('Il est fortement recommandé de se connecter à BoyWiki avec le protocole sécurisé https');
   }
}


/* Tempo chargement et init */
function timeline_init() {
   var x = setTimeout("timeline_init_wait()",1500);
}
function timeline_init_wait() {
   if (typeof(Timeline) == 'object') timeline_init_run();
   else var x = setTimeout("timeline_init_wait()",500);
}

function timeline_init_run() {
   if (wgPageName != 'Utilisateur:Pinocchio/Timeline' || wgAction != 'view') return;
   
   var eventSource = new Timeline.DefaultEventSource(0);
   
   /* modif thème par défaut */
   var theme = Timeline.ClassicTheme.create();
   theme.event.bubble.width = 350;
   theme.event.bubble.height = 300;

   //var d = Timeline.DateTime.parseGregorianDateTime("1900");
   var bandInfos = [
      Timeline.createBandInfo({
         width:          "80%", 
         intervalUnit:   Timeline.DateTime.DECADE, 
         intervalPixels: 200,
         eventSource:    eventSource,
         //date:           d,
         theme:          theme,
         layout:         'original'  // original, overview, detailed
      }),
      Timeline.createBandInfo({
         width:          "20%", 
         intervalUnit:   Timeline.DateTime.CENTURY, 
         intervalPixels: 200,
         eventSource:    eventSource,
         //date:           d,
         theme:          theme,
         layout:         'overview'  // original, overview, detailed
      })
   ];
   bandInfos[1].syncWith = 0;
   bandInfos[1].highlight = true;

   /* creation dans div */
   tmln = Timeline.create(document.getElementById("tmln"), bandInfos, Timeline.HORIZONTAL);


/* redefinition des labels dates */

   Timeline.GregorianDateLabeller.prototype.defaultLabelInterval = function(date, intervalUnit) {
      var text;
      var emphasized = false;

      date = Timeline.DateTime.removeTimeZoneOffset(date, this._timeZone);

      switch(intervalUnit) {
      case Timeline.DateTime.MILLISECOND:
         text = date.getUTCMilliseconds();
         break;
      case Timeline.DateTime.SECOND:
         text = date.getUTCSeconds();
         break;
      case Timeline.DateTime.MINUTE:
         var m = date.getUTCMinutes();
         if (m == 0) {
            text = date.getUTCHours() + ":00";
            emphasized = true;
         } else {
            text = m;
         }
         break;
      case Timeline.DateTime.HOUR:
         text = date.getUTCHours() + "hr";
         break;
      case Timeline.DateTime.DAY:
         text = Timeline.GregorianDateLabeller.getMonthName(date.getUTCMonth(), this._locale) + " " + date.getUTCDate();
         break;
      case Timeline.DateTime.WEEK:
         text = Timeline.GregorianDateLabeller.getMonthName(date.getUTCMonth(), this._locale) + " " + date.getUTCDate();
         break;
      case Timeline.DateTime.MONTH:
         var m = date.getUTCMonth();
         if (m == 0) {
            text = this.labelInterval(date, Timeline.DateTime.YEAR).text;
            emphasized = true;
         } else {
            text = Timeline.GregorianDateLabeller.getMonthName(m, this._locale);
         }
         break;
      case Timeline.DateTime.YEAR:
      case Timeline.DateTime.DECADE:
      case Timeline.DateTime.CENTURY:
      case Timeline.DateTime.MILLENNIUM:
         var y = date.getUTCFullYear();
         if (y > 0) {
            text = date.getUTCFullYear();
         } else if (y == 0) {
            text = "1 av.J-C";
         } else {
            text = (0 - y) + "av.J-C";
         }
         break;
      default:
         text = date.toUTCString();
      }
      return { text: text, emphasized: emphasized };
   }


   /* chargement source données format json */
   tmln.loadJSON(wgScript + '?action=raw&ctype=text/javascript&title=Utilisateur:Pinocchio/timeline_data1.js', function(json, url) {
      eventSource.loadJSON(json, url);
   });
}

//addOnloadHook(timeline_init);


var resizeTimerID = null;

function timeline_resize() {
   if (resizeTimerID == null) {
      resizeTimerID = window.setTimeout(function() {resizeTimerID = null; tmln.layout();}, 500);
   }
}

if (wgPageName == 'Utilisateur:Pinocchio/Timeline' && wgAction == 'view') {
   if (document.body) document.body.onresize = timeline_resize;
}