timeline/js/timeline.js
author veltr
Thu, 24 May 2012 19:02:39 +0200
changeset 67 5d1ac260d3ee
parent 66 37492d1ce841
child 68 4def147b1604
permissions -rw-r--r--
Added occurrence dragging and links drawing
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
     1
/*
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
     2
 * Main Timeline code
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
     3
 */
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
     4
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
     5
window.Tlns = {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
     6
    Utils : {},
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
     7
    Defaults : {},
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
     8
    Templates : {},
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
     9
    Classes : {}
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    10
};
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    11
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    12
/* Utility Functions */
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    13
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    14
Tlns.Utils.SetDefaults = function(_object, _defaults, _options) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    15
    var _options = _options || {};
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    16
    _(_defaults).each(function(_v, _k) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    17
        if(/^m(in|ax)_/.test(_k)) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    18
            var _tab = _k.split('_')
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    19
            if( typeof _object[_tab[1]] !== "undefined") {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    20
                var _fn = (_tab[0] === "min" ? Math.max : Math.min);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    21
                _object[_tab[1]] = _fn(_object[_tab[1]], _v);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    22
            }
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    23
        } else {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    24
            if( typeof _options[_k] !== "undefined") {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    25
                _object[_k] = _options[_k];
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    26
            } else {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    27
                _object[_k] = _v;
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    28
            }
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    29
        }
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    30
    });
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    31
}
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    32
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    33
Tlns.Utils.dateFormat = function(_date, _template) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    34
    if (typeof _data !== "object") {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    35
        _date = new Date(_date);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    36
    }
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    37
    function zeroPad(_n) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    38
        return (_n < 10 ? "0" : "") + _n
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    39
    }
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    40
    var _params = {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    41
        hours: _date.getHours(),
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    42
        "0hours": zeroPad(_date.getHours()),
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    43
        minutes: _date.getMinutes(),
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    44
        "0minutes": zeroPad(_date.getMinutes()),
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    45
        seconds: _date.getSeconds(),
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    46
        "0seconds": zeroPad(_date.getSeconds()),
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    47
        dayOfWeek: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"][_date.getDay()],
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    48
        shortDayOfWeek: ["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"][_date.getDay()],
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    49
        dayOfMonth: _date.getDate(),
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    50
        "0dayOfMonth": zeroPad(_date.getDate()),
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    51
        monthNumber: 1+_date.getMonth(),
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    52
        "0monthNumber": zeroPad(1+_date.getMonth()),
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    53
        monthName: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"][_date.getMonth()],
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    54
        shortMonthName: ["jan","fev","mar","avr","mai","jun","jul","aou","sep","oct","nov","dec"][_date.getMonth()],
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    55
        year: _date.getFullYear()
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    56
    }
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    57
    return Mustache.to_html(_template, _params);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    58
}
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    59
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    60
/* Defaults */
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    61
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    62
Tlns.Defaults.Timeline = {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    63
    container : "timeline",
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    64
    width : 950,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    65
    height : 200,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    66
    url_univers : '',
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    67
    min_width : 400,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    68
    min_height : 100,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    69
    main_width : 800,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    70
    timescales : [{
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    71
        label : "Mois",
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    72
        span : 32 * 86400 * 1000,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    73
        grid_interval : 5 * 86400 * 1000,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    74
        grid_date_format : '{{dayOfMonth}} {{shortMonthName}}',
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    75
        start_date_format : '{{dayOfMonth}} {{shortMonthName}}',
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    76
        end_date_format : '{{dayOfMonth}} {{shortMonthName}} {{year}}'
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    77
    }, {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    78
        label : "Semaine",
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    79
        span : 8 * 86400 * 1000,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    80
        grid_interval : 86400 * 1000,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    81
        grid_date_format : '{{shortDayOfWeek}} {{0dayOfMonth}}/{{0monthNumber}}',
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    82
        start_date_format : '{{dayOfMonth}} {{shortMonthName}}',
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    83
        end_date_format : '{{dayOfMonth}} {{shortMonthName}}'
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    84
    }, {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    85
        label : "2 jours",
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    86
        span : 2 * 86400 * 1000,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    87
        grid_interval : 8 * 3600 * 1000,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    88
        grid_date_format : '{{shortDayOfWeek}} {{0dayOfMonth}}/{{0monthNumber}} {{hours}}h',
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    89
        start_date_format : '{{dayOfMonth}} {{shortMonthName}}',
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    90
        end_date_format : '{{dayOfMonth}} {{shortMonthName}}'
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    91
    }, {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    92
        label : "Demi-Journée",
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    93
        span : 12 * 3600 * 1000,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    94
        grid_interval : 2 * 3600 * 1000,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    95
        grid_date_format : '{{hours}}h',
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    96
        start_date_format : '{{dayOfMonth}} {{shortMonthName}} {{hours}}h',
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    97
        end_date_format : '{{dayOfMonth}} {{shortMonthName}} {{hours}}h'
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    98
    }, {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
    99
        label : "3 Heures",
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   100
        span : 3 * 3600 * 1000,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   101
        grid_interval : 30 * 60 * 1000,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   102
        grid_date_format : '{{0hours}}:{{0minutes}}',
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   103
        start_date_format : '{{dayOfMonth}} {{shortMonthName}} {{0hours}}:{{0minutes}}',
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   104
        end_date_format : '{{0hours}}:{{0minutes}}'
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   105
    }, {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   106
        label : "1 Heure",
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   107
        span : 60 * 60 * 1000,
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   108
        grid_interval : 15 * 60 * 1000,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   109
        grid_date_format : '{{0hours}}:{{0minutes}}',
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   110
        start_date_format : '{{dayOfMonth}} {{shortMonthName}} {{0hours}}:{{0minutes}}',
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   111
        end_date_format : '{{0hours}}:{{0minutes}}'
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   112
    }],
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   113
    level: 0,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   114
    central_time: 0,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   115
    sync_now: true,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   116
    url_occurrences: '',
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   117
    occurrences: [],
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   118
    cluster_spacing: 9
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   119
}
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   120
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   121
for (var _i = 0; _i < Tlns.Defaults.Timeline.timescales.length; _i++) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   122
    Tlns.Defaults.Timeline.timescales[_i].level = _i;
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   123
}
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   124
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   125
/* Templates */
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   126
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   127
Tlns.Templates.Timeline = '<div class="Tl-TopBar"><div class="Tl-TopBar-Button Tl-Border-Right"><div class="Tl-TopBar-AddButton"></div></div><div class="Tl-TopBar-Spacer Tl-Border-Right"></div>'
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   128
    + '<div class="Tl-TopBar-Button Tl-Border-Right"><div class="Tl-TopBar-PreviousButton"></div></div><div class="Tl-TopBar-TimeSpan Tl-TopBar-TextBtn Tl-Border-Right">--/--</div>'
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   129
    + '<div class="Tl-TopBar-Button Tl-Border-Right"><div class="Tl-TopBar-SyncButton"></div></div><div class="Tl-TopBar-Button Tl-Border-Right"><div class="Tl-TopBar-NextButton"></div></div><div class="Tl-TopBar-Spacer Tl-Border-Right"></div>'
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   130
    + '<div class="Tl-TopBar-Timescales">{{#timescales}}<div class="Tl-TopBar-Button Tl-TopBar-TextBtn Tl-Border-Right" data-level="{{level}}">{{label}}</div>{{/timescales}}</div></div>'
67
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   131
    + '<div class="Tl-BottomPart"><ul class="Tl-UniversLabels"></ul><div class="Tl-MainPart"><div class="Tl-Layer Tl-Grid"></div><canvas class="Tl-Layer Tl-Canvas"></canvas><div class="Tl-Layer Tl-Occurrences"></div></div>'
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   132
    + '<div class="Tl-Overlay-Container"><div class="Tl-Overlay-Box"><div class="Tl-Overlay"><div class="Tl-Overlay-Main"></div><div class="Tl-Overlay-Tip"></div></div></div></div></div>';
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   133
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   134
Tlns.Templates.Univers = '<span class="Tl-UniversText">{{title}}</span>';
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   135
67
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   136
Tlns.Templates.Occurrence = '{{#clusters}}<div class="Tl-Cluster Tl-Occ{{type}}" style="left: {{x}}px; top: {{y}}px;" cluster-contents="{{#occurrences}}{{type}}|{{id}},{{/occurrences}}"><div class="Tl-ClusterCount">{{occurrences.length}}</div></div>{{/clusters}}{{#occurrences}}<div class="Tl-Occurrence Tl-Occ{{type}}{{#editing}} Tl-Editing{{/editing}}" occurrence-type="{{type}}" occurrence-id="{{id}}" style="left: {{x}}px; top: {{univers.y}}px;"></div>{{/occurrences}}';
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   137
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   138
/* Classes */
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   139
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   140
Tlns.Classes.Timeline = function(_options) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   141
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   142
    /* Setting Defaults */
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   143
    Tlns.Utils.SetDefaults(this, Tlns.Defaults.Timeline, _options);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   144
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   145
    /* Setting container CSS */
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   146
    this.$ = $('#' + this.container);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   147
    this.$.addClass('Tl-Main');
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   148
    this.$.css({
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   149
        width : this.width + "px",
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   150
        height : this.height + "px"
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   151
    });
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   152
    this.$.html(Mustache.to_html(Tlns.Templates.Timeline, this));
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   153
    
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   154
    this.main_height = this.height - this.$.find('.Tl-TopBar').outerHeight();
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   155
    this.$.find('.Tl-BottomPart').css("height", this.main_height + "px");
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   156
    this.$.find('.Tl-MainPart').css("width", this.main_width + "px");
67
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   157
    this.$.find('.Tl-Overlay-Container').css("left", (this.$.find('.Tl-BottomPart').outerWidth() - this.main_width) + "px");
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   158
    this.$.find('.Tl-Canvas').attr({
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   159
        width: this.main_width,
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   160
        height: this.main_height
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   161
    });
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   162
    var _o = this.$.find('.Tl-MainPart').offset();
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   163
    this.dragging_bounds = {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   164
        left: _o.left,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   165
        top: _o.top,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   166
        right: _o.left + this.$.find('.Tl-MainPart').outerWidth(),
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   167
        bottom: _o.top + this.$.find('.Tl-MainPart').outerHeight(),
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   168
    };
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   169
    
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   170
    this.setLevel(this.level);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   171
    
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   172
    var _this = this;
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   173
    this.$.find('.Tl-TopBar-Timescales>div').click(function() {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   174
        _this.setLevel($(this).attr("data-level"));
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   175
    });
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   176
    
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   177
    this.$.find('.Tl-TopBar-SyncButton').click(function() {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   178
        _this.sync_now = !_this.sync_now;
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   179
        _this.drawGrid();
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   180
    })
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   181
    
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   182
    this.$.find('.Tl-TopBar-PreviousButton').click(function() {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   183
        _this.offsetTime(-_this.timescales[_this.level].span / 4);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   184
    });
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   185
    
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   186
    this.$.find('.Tl-TopBar-NextButton').click(function() {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   187
        _this.offsetTime(_this.timescales[_this.level].span / 4);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   188
    });
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   189
    
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   190
    this.$.find('.Tl-MainPart').mousedown(function(_event) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   191
        _this.onMouseDown(_event);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   192
        return false;
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   193
    });
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   194
    
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   195
    this.$.find('.Tl-MainPart').mousemove(function(_event) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   196
        _this.onMouseMove(_event);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   197
        return false;
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   198
    });
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   199
    
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   200
    this.$.find('.Tl-MainPart').mouseup(function(_event) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   201
        _this.onMouseUp(_event);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   202
        return false;
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   203
    });
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   204
    
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   205
    this.$.find('.Tl-Overlay-Box').mouseover(function(_event) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   206
        $(this).show();
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   207
    }).mouseout(function(_event) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   208
        $(this).hide();
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   209
    })
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   210
    
67
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   211
    this.throttledDrawGrid = _.throttle(function() {
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   212
        _this.drawGrid();
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   213
    }, 150);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   214
    
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   215
    /* Loading Univers */
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   216
    $.getJSON(this.url_univers, function(_data) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   217
        _this.onUniversLoaded(_data);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   218
    });
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   219
}
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   220
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   221
Tlns.Classes.Timeline.prototype.onMouseDown = function(_event) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   222
    this.mouse_down = true;
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   223
    this.is_dragging = false;
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   224
    this.start_pos = {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   225
        x: _event.pageX,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   226
        y: _event.pageY
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   227
    };
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   228
    if (typeof this.dragging_type === "undefined") {
67
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   229
        this.time_at_start = this.central_time;
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   230
        this.dragging_type = "timeline";
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   231
    }
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   232
}
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   233
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   234
Tlns.Classes.Timeline.prototype.onMouseUp = function(_event) {
67
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   235
    if (this.is_dragging) {
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   236
        switch (this.dragging_type) {
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   237
            case "occurrence":
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   238
                this.editing_occurrence.editing = false;
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   239
                this.throttledDrawGrid();
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   240
            break;
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   241
        }
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   242
    }
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   243
    this.mouse_down = false;
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   244
    this.is_dragging = false;
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   245
    this.dragging_type = undefined;
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   246
}
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   247
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   248
Tlns.Classes.Timeline.prototype.onMouseMove = function(_event) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   249
    if (this.mouse_down) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   250
        this.is_dragging = true;
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   251
        this.$.find('.Tl-Overlay-Box').hide();
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   252
        if (_event.pageX > this.dragging_bounds.left
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   253
            && _event.pageX < this.dragging_bounds.right
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   254
            && _event.pageY > this.dragging_bounds.top
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   255
            && _event.pageY < this.dragging_bounds.bottom
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   256
        ) {
67
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   257
            var _timeDelta = Math.floor(( this.start_pos.x - _event.pageX ) / this.current_scale);
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   258
            switch (this.dragging_type) {
67
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   259
                case "occurrence":
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   260
                    this.editing_occurrence.date = this.time_at_start - _timeDelta;
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   261
                    var _u = Math.max(0,Math.min(this.univers.length, Math.floor(this.u_at_start - (this.start_pos.y - _event.pageY) / this.univers_height)));
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   262
                    this.editing_occurrence.univers = this.univers[_u];
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   263
                    this.editing_occurrence.univers_id = this.univers[_u].id;
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   264
                    this.throttledDrawGrid();
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   265
                break;
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   266
                case "timeline":
67
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   267
                    this.setTime(this.time_at_start + _timeDelta);
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   268
                break;
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   269
            }
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   270
        } else {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   271
            this.onMouseUp(_event);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   272
        }
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   273
    }
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   274
}
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   275
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   276
Tlns.Classes.Timeline.prototype.onUniversLoaded = function(_data) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   277
    this.univers = [];
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   278
    if(_data.length) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   279
        this.univers_height = Math.floor(this.main_height / _data.length);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   280
    }
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   281
    for(var _i = 0; _i < _data.length; _i++) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   282
        this.univers.push(new Tlns.Classes.Univers(_data[_i], this, _i));
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   283
    }
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   284
    this.loadOccurrences();
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   285
}
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   286
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   287
Tlns.Classes.Timeline.prototype.offsetTime = function(_timeOffset) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   288
    this.setTime(this.central_time + _timeOffset);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   289
}
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   290
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   291
Tlns.Classes.Timeline.prototype.setTime = function(_centralTime) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   292
    this.sync_now = false;
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   293
    this.central_time = _centralTime;
67
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   294
    this.throttledDrawGrid();
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   295
}
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   296
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   297
Tlns.Classes.Timeline.prototype.setLevel = function(_level) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   298
    if (_level >= 0 && _level < this.timescales.length) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   299
        this.$.find('.Tl-TopBar-Timescales>div').each(function() {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   300
            var _el = $(this);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   301
            if (_el.attr("data-level") == _level) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   302
                _el.addClass("active");
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   303
            } else {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   304
                _el.removeClass("active");
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   305
            }
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   306
        });
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   307
        this.level = _level;
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   308
        this.drawGrid();
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   309
    }
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   310
}
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   311
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   312
Tlns.Classes.Timeline.prototype.drawGrid = function() {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   313
    var _now = new Date().valueOf();
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   314
    if (this.sync_now) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   315
        this.central_time = _now;
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   316
        this.$.find('.Tl-TopBar-SyncButton').addClass("active");
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   317
    } else {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   318
        this.$.find('.Tl-TopBar-SyncButton').removeClass("active");
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   319
    }
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   320
    var _timescale = this.timescales[this.level],
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   321
        _offset = new Date().getTimezoneOffset() * 60000;
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   322
    this.current_scale = this.main_width / (_timescale.span)
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   323
    this.start_time = this.central_time - (_timescale.span / 2);
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   324
    this.end_time = this.central_time + (_timescale.span / 2);
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   325
    var _grid_width = Math.floor(_timescale.grid_interval * this.current_scale),
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   326
        _roundstart = Math.floor((this.start_time - _offset) / _timescale.grid_interval) * _timescale.grid_interval + _offset,
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   327
        _html = '';
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   328
    this.$.find('.Tl-TopBar-TimeSpan').html(Tlns.Utils.dateFormat(this.start_time, _timescale.start_date_format) + ' - ' + Tlns.Utils.dateFormat(this.end_time, _timescale.end_date_format));
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   329
    for (var _t = _roundstart; _t < this.end_time; _t += _timescale.grid_interval) {
67
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   330
        _html += '<div class="Tl-Grid-Column" style="width:' + _grid_width + 'px; left: ' + this.current_scale * (_t - this.start_time) + 'px">'
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   331
        + '<div class="Tl-Grid-Label">' + Tlns.Utils.dateFormat(_t, _timescale.grid_date_format) + '</div></div>';
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   332
    }
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   333
/*
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   334
 
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   335
    for (var _t = _roundstart; _t < _tmax; _t += _timescale.grid_interval) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   336
        var _isMajor = !(Math.floor((_t - _offset) / _timescale.grid_interval) % _timescale.major_interval);
67
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   337
        _html += '<div class="Tl-Grid-Column' + ( _isMajor ? ' Tl-Grid-Major' : '' ) + '" style="width:' + _grid_width + 'px; left: ' + _scale * (_t - this.start_time) + 'px">'
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   338
        + ( _isMajor ? '<div class="Tl-Grid-Label">' + Tlns.Utils.dateFormat(_t, _timescale.date_format) + '</div>' : '' ) + '</div>';
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   339
    }
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   340
*/
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   341
    if (this.start_time <= _now && this.end_time >= _now) {
67
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   342
        _html += '<div class="Tl-Grid-Now" style="left: ' + this.current_scale * (_now - this.start_time) + 'px"></div>'
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   343
    }
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   344
    this.$.find('.Tl-Grid').html(_html);
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   345
    this.drawOccurrences();
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   346
}
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   347
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   348
Tlns.Classes.Timeline.prototype.loadOccurrences = function() {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   349
    var _url = Mustache.to_html(this.url_occurrences, {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   350
            from_time: this.start_time,
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   351
            to_time: this.end_time
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   352
        }),
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   353
        _this = this;
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   354
    $.getJSON(_url, function(_data) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   355
        _this.onOccurrencesLoaded(_data);
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   356
    });
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   357
}
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   358
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   359
Tlns.Classes.Timeline.prototype.onOccurrencesLoaded = function(_data) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   360
    if (typeof _data.occurrencesNarratives === "object" && _data.occurrencesNarratives !== null) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   361
        for (var _i = 0; _i < _data.occurrencesNarratives.length; _i++) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   362
            this.createOrUpdateOccurrence("narrative", _data.occurrencesNarratives[_i]);
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   363
        }
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   364
        for (var _i = 0; _i < _data.occurrencesProduction.length; _i++) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   365
            this.createOrUpdateOccurrence("production", _data.occurrencesProduction[_i]);
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   366
        }
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   367
    }
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   368
    if (!this.mouse_down) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   369
        this.drawOccurrences();
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   370
    }
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   371
}
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   372
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   373
Tlns.Classes.Timeline.prototype.getOccurrence = function(_type, _id) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   374
    return _(this.occurrences).find(function(_occ) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   375
        return (_occ.type == _type && _occ.id == _id);
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   376
    });
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   377
}
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   378
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   379
Tlns.Classes.Timeline.prototype.createOrUpdateOccurrence = function(_type, _data) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   380
    var _occurrence = this.getOccurrence(_type, _data.id);
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   381
    if (typeof _occurrence === "undefined") {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   382
        _occurrence = new Tlns.Classes.Occurrence(this);
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   383
        this.occurrences.push(_occurrence);
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   384
    }
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   385
    _occurrence.update(_type, _data);
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   386
}
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   387
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   388
Tlns.Classes.Timeline.prototype.showTooltip = function(_x, _y, _html) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   389
    this.$.find('.Tl-Overlay-Box').show()
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   390
        .css({
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   391
            left: _x + "px",
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   392
            top: _y + "px"
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   393
        });
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   394
    this.$.find('.Tl-Overlay-Main').html(_html);
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   395
}
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   396
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   397
Tlns.Classes.Timeline.prototype.hideTooltip = function() {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   398
    this.$.find('.Tl-Overlay-Box').hide();
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   399
}
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   400
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   401
Tlns.Classes.Timeline.prototype.drawOccurrences = function() {
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   402
    var _this = this,
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   403
        _visible = _(this.occurrences).filter(function(_occ) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   404
        return (_occ.date >= _this.start_time && _occ.date <= _this.end_time && _occ.published);
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   405
    });
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   406
    _(_visible).each(function(_occ) {
67
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   407
        _occ.x = _this.current_scale * (_occ.date - _this.start_time);
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   408
        _occ.in_cluster = false;
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   409
    });
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   410
    
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   411
    var _moved = true;
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   412
    while (_moved) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   413
        _moved = false;
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   414
        for (var _i = 0; _i < _visible.length; _i++) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   415
            for (var _j = 0; _j < _i; _j++) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   416
                if (_visible[_j].univers_id == _visible[_i].univers_id
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   417
                    && _visible[_j].x != _visible[_i].x
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   418
                    && Math.abs(_visible[_j].x-_visible[_i].x) < this.cluster_spacing
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   419
                ) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   420
                    _moved = true;
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   421
                    _visible[_i].x = this.cluster_spacing * Math.round(_visible[_i].x / this.cluster_spacing);
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   422
                    _visible[_j].x = this.cluster_spacing * Math.round(_visible[_j].x / this.cluster_spacing);
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   423
                }
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   424
            }
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   425
        }
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   426
    }
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   427
    var _clusters = [];
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   428
    for (var _i = 0; _i < _visible.length; _i++) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   429
        for (var _j = 0; _j < _i; _j++) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   430
            if (_visible[_j].univers_id == _visible[_i].univers_id && _visible[_j].x == _visible[_i].x) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   431
                _visible[_j].in_cluster = true;
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   432
                _visible[_i].in_cluster = true;
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   433
                var _x = _visible[_j].x,
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   434
                    _y = _visible[_j].univers.y;
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   435
                    _cluster = _(_clusters).find(function(_c) { return _c.x == _x && _c.y == _y });
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   436
                if (typeof _cluster === "undefined") {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   437
                    _cluster = { x: _x, y: _y, occurrences: [] };
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   438
                    _clusters.push(_cluster);
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   439
                }
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   440
                if ("undefined" === typeof _(_cluster.occurrences).find(function(_o) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   441
                    return _o.type == _visible[_j].type && _o.id == _visible[_j].id;
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   442
                })) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   443
                    _cluster.occurrences.push({type: _visible[_j].type, id: _visible[_j].id});
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   444
                }
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   445
                if ("undefined" === typeof _(_cluster.occurrences).find(function(_o) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   446
                    return _o.type == _visible[_i].type && _o.id == _visible[_i].id;
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   447
                })) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   448
                    _cluster.occurrences.push({type: _visible[_i].type, id: _visible[_i].id});
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   449
                }
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   450
            }
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   451
        }
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   452
    }
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   453
    _(_clusters).each(function(_cluster) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   454
        _cluster.type = _cluster.occurrences[0].type;
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   455
        for (var _i = 1; _i < _cluster.occurrences.length; _i++) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   456
            if (_cluster.occurrences[_i].type !== _cluster.type) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   457
                _cluster.type = "both";
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   458
                break;
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   459
            }
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   460
        }
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   461
    });
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   462
    
67
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   463
    var _links = [];
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   464
    
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   465
    _(_visible).each(function(_occurrence) {
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   466
        _(_occurrence.dependsOn).each(function(_dependance) {
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   467
            var _parent = _(_visible).find(function(_o) {
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   468
                return _o.type == "narrative" && _o.id == _dependance;
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   469
            });
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   470
            if (typeof _parent !== "undefined") {
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   471
                _links.push({
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   472
                    from_x: _occurrence.x,
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   473
                    from_y: _occurrence.univers.y + Math.floor(_this.univers_height / 2),
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   474
                    to_x: _parent.x,
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   475
                    to_y: _parent.univers.y + Math.floor(_this.univers_height / 2)
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   476
                });
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   477
            }
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   478
        });
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   479
    });
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   480
    
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   481
    var _ctx = this.$.find('.Tl-Canvas')[0].getContext('2d');
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   482
    _ctx.clearRect(0,0,this.main_width, this.main_height);
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   483
    _(_links).each(function(_link) {
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   484
        _ctx.beginPath();
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   485
        _ctx.moveTo(_link.from_x,_link.from_y);
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   486
        _ctx.lineTo(_link.to_x,_link.to_y);
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   487
        _ctx.stroke();
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   488
    })
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   489
    
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   490
    var _html = Mustache.to_html(Tlns.Templates.Occurrence, {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   491
        occurrences:_(_visible).reject(function(_o) {return _o.in_cluster}),
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   492
        clusters: _clusters
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   493
    });
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   494
    this.$.find('.Tl-Occurrences').html(_html);
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   495
    this.$.find('.Tl-Occurrence').mousedown(function() {
67
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   496
        var _el = $(this);
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   497
        _this.editing_occurrence = _occurrence = _this.getOccurrence(_el.attr("occurrence-type"),_el.attr("occurrence-id"));
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   498
        if (typeof _this.editing_occurrence !== "undefined") {
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   499
            _this.dragging_type = "occurrence";
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   500
            _this.time_at_start = _this.editing_occurrence.date;
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   501
            _this.u_at_start = _this.editing_occurrence.univers.index;
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   502
            _this.editing_occurrence.editing = true;
5d1ac260d3ee Added occurrence dragging and links drawing
veltr
parents: 66
diff changeset
   503
        }
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   504
    }).mouseover(function() {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   505
        var _el = $(this),
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   506
            _occurrence = _this.getOccurrence(_el.attr("occurrence-type"),_el.attr("occurrence-id"));
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   507
        _this.showTooltip(_occurrence.x, _occurrence.univers.y, _occurrence.title);
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   508
    }).mouseout(function() {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   509
        _this.hideTooltip();
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   510
    });
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   511
}
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   512
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   513
Tlns.Classes.Timeline.prototype.getUnivers = function(_id) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   514
    return _(this.univers).find(function(_univ) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   515
        return (_univ.id == _id);
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   516
    });
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   517
}
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   518
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   519
/*
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   520
 * Univers
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   521
 */
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   522
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   523
Tlns.Classes.Univers = function(_data, _timeline, _index) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   524
    this.id = _data.id;
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   525
    this.index = _index;
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   526
    this.title = _data.nom;
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   527
    this.mainCharacter = _data.personnage;
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   528
    this.y = (_timeline.univers_height * _index);
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   529
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   530
    this.$label = $('<li>').css({
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   531
        height : _timeline.univers_height + "px"
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   532
    }).html(Mustache.to_html(Tlns.Templates.Univers, this))
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   533
      .addClass((_index % 2) ? 'Tl-Line-Odd' : 'Tl-Line-Even');
65
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   534
    
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   535
    _timeline.$.find('.Tl-UniversLabels').append(this.$label);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   536
    var _txt = _data.nom,
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   537
        _span = this.$label.find('span');
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   538
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   539
    while (_span.outerWidth() > (_timeline.width - _timeline.main_width) && _txt) {
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   540
        _txt = _txt.substr(0, _txt.length - 1);
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   541
        _span.html(_txt + '&hellip;');
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   542
    }
03bbfd9cd3c6 First commit for Timeline
veltr
parents:
diff changeset
   543
}
66
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   544
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   545
/*
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   546
 * Occurrence
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   547
 */
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   548
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   549
Tlns.Classes.Occurrence = function(_timeline) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   550
    this.timeline = _timeline;
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   551
}
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   552
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   553
Tlns.Classes.Occurrence.prototype.update = function(_type, _data) {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   554
    this.type = _type;
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   555
    this.id = _data.id || _.uniqueId();
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   556
    this.date = _data.date || _data.datePublication;
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   557
    this.title = _data.titre || "<untitled>";
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   558
    this.univers_id = _data.univers;
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   559
    this.univers = this.timeline.getUnivers(this.univers_id);
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   560
    this.status = _data.statut;
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   561
    this.published = _data.publie || false;
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   562
    this.locked = _data.verrouille || false;
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   563
    this.characters = _data.personnagesSecondaires || [];
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   564
    this.dependsOn = _data.dependDe || [];
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   565
}
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   566
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   567
Tlns.Classes.Occurrence.prototype.toString = function() {
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   568
    return "Occurrence " + this.type + ': "' + this.title + '"';
37492d1ce841 Added clustering
veltr
parents: 65
diff changeset
   569
}