timeline/js/timeline.js
author veltr
Tue, 13 Aug 2013 16:22:32 +0200
changeset 89 6b1a038edbf7
parent 88 8bab0eb0d791
child 90 50e3c4ba168a
permissions -rw-r--r--
Removed List
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
     1
/*
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
     2
 * Main Timeline code
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
     3
 */
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
     4
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
     5
window.Tlns = {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
     6
    Utils : {},
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
     7
    Defaults : {},
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
     8
    Templates : {},
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
     9
    Classes : {}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    10
};
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    11
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    12
/* Utility Functions */
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    13
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    14
Tlns.Utils.zeroPad = function(_n) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    15
    return (_n < 10 ? "0" : "") + _n;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    16
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    17
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    18
Tlns.Utils.SetDefaults = function(_object, _defaults, _options) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    19
    var _options = _options || {};
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    20
    _(_defaults).each(function(_v, _k) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    21
        if(/^m(in|ax)_/.test(_k)) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    22
            var _tab = _k.split('_')
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    23
            if( typeof _object[_tab[1]] !== "undefined") {
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
    24
                var _fn = Math[_tab[0] === "max" ? "min":"max"];
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    25
                _object[_tab[1]] = _fn(_object[_tab[1]], _v);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    26
            }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    27
        } else {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    28
            if( typeof _options[_k] !== "undefined") {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    29
                _object[_k] = _options[_k];
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    30
            } else {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    31
                _object[_k] = _v;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    32
            }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    33
        }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    34
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    35
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    36
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    37
Tlns.Utils.dateFormat = function(_date, _template) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    38
    if (typeof _date !== "object") {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    39
        _date = new Date(parseInt(_date));
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    40
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    41
    var _params = {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    42
        hours: _date.getHours(),
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
    43
        isDayStart: !_date.getHours(),
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    44
        "0hours": Tlns.Utils.zeroPad(_date.getHours()),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    45
        minutes: _date.getMinutes(),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    46
        "0minutes": Tlns.Utils.zeroPad(_date.getMinutes()),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    47
        seconds: _date.getSeconds(),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    48
        "0seconds": Tlns.Utils.zeroPad(_date.getSeconds()),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    49
        dayOfWeek: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"][_date.getDay()],
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    50
        shortDayOfWeek: ["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"][_date.getDay()],
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    51
        dayOfMonth: _date.getDate(),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    52
        "0dayOfMonth": Tlns.Utils.zeroPad(_date.getDate()),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    53
        monthNumber: 1+_date.getMonth(),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    54
        "0monthNumber": Tlns.Utils.zeroPad(1+_date.getMonth()),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    55
        monthName: ["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"][_date.getMonth()],
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    56
        shortMonthName: ["jan","fev","mar","avr","mai","jun","jul","aou","sep","oct","nov","dec"][_date.getMonth()],
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    57
        year: _date.getFullYear()
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    58
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    59
    return Mustache.to_html(_template, _params);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    60
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    61
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    62
Tlns.Utils.guid = function() {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    63
    return 'xxxx-xxxx-xxxx-xxxx'.replace(/x/g,function() {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    64
        return Math.floor(Math.random()*16).toString(16);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    65
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    66
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    67
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    68
Tlns.Utils.timeFieldProcess = function(_val) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    69
    var _h = 0,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    70
        _m = 0,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    71
        _matches = _val.match(/(\d+)/g);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    72
    if (_matches && _matches.length) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    73
        _h = Math.min(23, +(_matches[0]));
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    74
        if (_matches.length > 1) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    75
            _m = Math.min(59, +(_matches[1]));
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    76
        }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    77
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    78
    return {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    79
        hours: _h,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    80
        minutes: _m,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    81
        text: Tlns.Utils.zeroPad(_h) + ':' + Tlns.Utils.zeroPad(_m)
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    82
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    83
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    84
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    85
Tlns.Utils.dateFieldProcess = function(_val) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    86
    var _now = new Date(),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    87
        _y = _now.getFullYear(),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    88
        _m = 1 + _now.getMonth(),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    89
        _d = _now.getDate(),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    90
        _matches = _val.match(/(\d+)/g);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    91
    if (_matches && _matches.length) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    92
        _d = Math.min(31, +(_matches[0]));
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    93
        if (_matches.length > 1) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    94
            _m = Math.min(12, +(_matches[1]));
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    95
        }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    96
        if (_matches.length > 2) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    97
            _y = parseInt(_matches[2]);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    98
            if (_y < 2000) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    99
                _y += 2000;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   100
            }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   101
            _y = Math.min(2020, Math.max(2000, _y));
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   102
        }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   103
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   104
    return {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   105
        year: _y,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   106
        month: _m,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   107
        date: _d,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   108
        text: Tlns.Utils.zeroPad(_d) + '/' + Tlns.Utils.zeroPad(_m) + '/' + _y
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   109
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   110
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   111
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   112
/* Defaults */
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   113
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   114
Tlns.Defaults.Timeline = {
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   115
    email: "",
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   116
    token: "",
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   117
    container : "timeline",
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   118
    width : 780,
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   119
    height : 225,
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   120
    min_width : 400,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   121
    min_height : 100,
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   122
    main_width : 700,
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   123
    linelabels : [],
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   124
    timescales : [{
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   125
        label : "Semaine",
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   126
        span : 7 * 86400 * 1000,
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   127
        grid_interval : 86400 * 1000,
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   128
        grid_date_format : '{{dayOfMonth}} {{monthName}}',
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   129
        start_date_format : '{{dayOfMonth}} {{shortMonthName}}',
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   130
        end_date_format : '{{dayOfMonth}} {{shortMonthName}}'
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   131
    }, {
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   132
        label : "3 jours",
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   133
        span : 3 * 86400 * 1000,
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   134
        grid_interval : 6 * 3600 * 1000,
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   135
        grid_date_format : '{{^isDayStart}}{{0hours}}h{{0minutes}}{{/isDayStart}}{{#isDayStart}}{{dayOfMonth}} {{shortMonthName}}{{/isDayStart}}',
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   136
        start_date_format : '{{dayOfMonth}} {{shortMonthName}}',
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   137
        end_date_format : '{{dayOfMonth}} {{shortMonthName}}'
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   138
    }, {
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   139
        label : "Journée",
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   140
        span : 86400 * 1000,
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   141
        grid_interval : 2 * 3600 * 1000,
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   142
        grid_date_format : '{{^isDayStart}}{{0hours}}h{{0minutes}}{{/isDayStart}}{{#isDayStart}}{{dayOfMonth}} {{shortMonthName}}{{/isDayStart}}',
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   143
        start_date_format : '{{dayOfMonth}} {{shortMonthName}} {{hours}}h',
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   144
        end_date_format : '{{dayOfMonth}} {{shortMonthName}} {{hours}}h'
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   145
    }, {
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   146
        label : "Demi-Journée",
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   147
        span : 6 * 3600 * 1000,
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   148
        grid_interval : 3600 * 1000,
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   149
        grid_date_format : '{{^isDayStart}}{{0hours}}h{{0minutes}}{{/isDayStart}}{{#isDayStart}}{{dayOfMonth}} {{shortMonthName}}{{/isDayStart}}',
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   150
        start_date_format : '{{dayOfMonth}} {{shortMonthName}} {{hours}}h',
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   151
        end_date_format : '{{dayOfMonth}} {{shortMonthName}} {{hours}}h'
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   152
    }],
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   153
    level: 0,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   154
    central_time: 0,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   155
    sync_now: true,
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   156
    api_endpoint: "",
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   157
    api_method: "searchForTimelineEdito",
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   158
    occurrences: [],
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   159
    cluster_spacing: 12,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   160
    tooltip_date_format: '{{dayOfMonth}} {{shortMonthName}} {{year}} {{0hours}}:{{0minutes}}',
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   161
    statuses: {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   162
        "valide": "Validée",
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   163
        "a_valider": "A valider",
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   164
        "a_realiser": "A réaliser"
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   165
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   166
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   167
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   168
for (var _i = 0; _i < Tlns.Defaults.Timeline.timescales.length; _i++) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   169
    Tlns.Defaults.Timeline.timescales[_i].level = _i;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   170
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   171
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   172
/* Templates */
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   173
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   174
Tlns.Templates.Timeline = '<div class="Tl-Main"><div class="Tl-Grid"></div><div class="Tl-TopBar"></div>'
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   175
    + '<div class="Tl-BottomPart"><ul class="Tl-UniversLabels"></ul>'
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   176
    + '<div class="Tl-MainPart"><div class="Tl-Occurrences"></div>'
87
4dc63e325f48 Removed editing functions
veltr
parents: 85
diff changeset
   177
    + '</div>'
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   178
    + '<div class="Tl-Overlay-Container"><div class="Tl-Overlay-Box"><div class="Tl-Overlay"><div class="Tl-Overlay-Tip-Top"></div><div class="Tl-Overlay-Main"></div><div class="Tl-Overlay-Tip-Bottom"></div></div></div></div></div></div>'
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   179
    
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   180
Tlns.Templates.Univers = '<div class="Tl-UniversText">{{title}}</div>';
83
f8b1d6f5bb33 Lots of small modifications
veltr
parents: 82
diff changeset
   181
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   182
Tlns.Templates.Occurrence = '{{#clusters}}<div class="Tl-Cluster" style="left: {{x}}px; top: {{y}}px;" cluster-contents="{{contents}}">'
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   183
    + '<div class="Tl-ClusterCount">{{occurrences.length}}</div></div>{{/clusters}}'
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   184
    + '{{#occurrences}}<div class="Tl-Occurrence Tl-OccOnGrid Tl-Occ{{type}} Tl-Occ{{status}}{{#editing}} Tl-Editing{{/editing}}" occurrence-id="{{id}}" style="left: {{x}}px; top: {{y}}px;">'
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   185
//  + '{{#locked}}<div class="Tl-Locked"></div>{{/locked}}'
87
4dc63e325f48 Removed editing functions
veltr
parents: 85
diff changeset
   186
    + '</div>{{/occurrences}}{{#open_cluster}}<div class="Tl-ClusterOverlay" style="left: {{x}}px; top: {{y}}px;">'
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   187
    + '{{#occurrences}}<div class="Tl-Occurrence Tl-OccInCluster Tl-Occ{{type}} Tl-Occ{{status}}{{#editing}} Tl-Editing{{/editing}}" occurrence-id="{{id}}">'
87
4dc63e325f48 Removed editing functions
veltr
parents: 85
diff changeset
   188
    + '{{#locked}}<div class="Tl-Locked"></div>{{/locked}}</div>{{/occurrences}}</div>{{/open_cluster}}';
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   189
83
f8b1d6f5bb33 Lots of small modifications
veltr
parents: 82
diff changeset
   190
Tlns.Templates.OccurrenceTooltip = '<h3 class="Tl-Tooltip-Title">{{title}}</h3><p class="Tl-Tooltip-Date">{{formatted_date}} &mdash; {{translated_status}} &mdash; {{#jt}}Au JT{{/jt}}{{^jt}}Hors JT{{/jt}}{{#format}} &mdash; {{format}}{{/format}}</p>'
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   191
    + '<p class="Tl-Tooltip-Description">{{description}}</p>'
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   192
//    + '<p class="Tl-Tooltip-Characters">{{univers.mainCharacter}}{{#characters}}, {{.}}{{/characters}}</p>'
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   193
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   194
/* Classes */
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   195
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   196
Tlns.Classes.Timeline = function(_options) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   197
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   198
    /* Setting Defaults */
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   199
    Tlns.Utils.SetDefaults(this, Tlns.Defaults.Timeline, _options);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   200
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   201
    /* Setting container CSS */
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   202
    this.$ = $('#' + this.container).html(Mustache.to_html(Tlns.Templates.Timeline, this));
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   203
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   204
    this.$.find('.Tl-Main').css({
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   205
        width : this.width + "px",
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   206
        height : this.height + "px"
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   207
    });
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   208
    this.top_height = this.$.find('.Tl-TopBar').outerHeight();
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   209
    this.main_height = this.height - this.top_height;
82
f00eb382bff1 Bugfixes
veltr
parents: 81
diff changeset
   210
    //this.main_height = this.height - 27;
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   211
    this.$.find('.Tl-BottomPart').css("height", this.main_height + "px");
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   212
    this.$.find('.Tl-MainPart, .Tl-Grid').css("width", this.main_width + "px");
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   213
    this.$.find('.Tl-Overlay-Container').css("left", (this.$.find('.Tl-BottomPart').outerWidth() - this.main_width) + "px");
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   214
    
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   215
    var _o = this.$.find('.Tl-MainPart').offset();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   216
    this.dragging_bounds = {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   217
        left: _o.left,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   218
        top: _o.top,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   219
        right: _o.left + this.$.find('.Tl-MainPart').outerWidth(),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   220
        bottom: _o.top + this.$.find('.Tl-MainPart').outerHeight(),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   221
    };
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   222
    this.$.find('.Tl-UniversLabels').css({
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   223
        width: this.width - this.main_width
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   224
    });
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   225
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   226
    var _this = this;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   227
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   228
    this.throttledDrawGrid = _.throttle(function() {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   229
        _this.drawGrid();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   230
    }, 150);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   231
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   232
    this.setLevel(this.level);
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   233
     
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   234
    this.$.find('.Tl-MainPart').mousedown(function(_event) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   235
        _this.onMouseDown(_event);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   236
        return false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   237
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   238
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   239
    this.$.find('.Tl-MainPart').mousemove(function(_event) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   240
        _this.onMouseMove(_event);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   241
        return false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   242
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   243
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   244
    this.$.find('.Tl-MainPart').mouseup(function(_event) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   245
        _this.onMouseUp(_event);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   246
        return false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   247
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   248
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   249
    this.$.find('.Tl-MainPart').mousewheel(function(_event, _delta) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   250
        var _newLevel = Math.max(0,Math.min(_this.timescales.length-1, (_delta < 0 ? -1 : 1) + parseInt(_this.level)));
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   251
        if (_newLevel != _this.level) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   252
            _this.hideTooltip();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   253
            var _deltaX = _event.pageX - _this.dragging_bounds.left,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   254
                _tAtMouse = _this.timeFromMouse(_event.pageX),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   255
                _newScale = _this.main_width / (_this.timescales[_newLevel].span),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   256
                _newStart = _tAtMouse - _deltaX / _newScale;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   257
            _this.central_time = _newStart + _this.timescales[_newLevel].span / 2;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   258
            _this.setLevel(_newLevel);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   259
        }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   260
        return false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   261
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   262
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   263
    this.$.find('.Tl-Overlay-Box').mouseover(function(_event) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   264
        $(this).show();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   265
    }).mouseout(function(_event) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   266
        $(this).hide();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   267
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   268
    
87
4dc63e325f48 Removed editing functions
veltr
parents: 85
diff changeset
   269
       
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   270
    this.onUniversLoaded(this.linelabels);
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   271
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   272
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   273
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   274
Tlns.Classes.Timeline.prototype.onMouseDown = function(_event) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   275
    this.mouse_down = true;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   276
    this.is_dragging = false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   277
    this.start_pos = {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   278
        x: _event.pageX,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   279
        y: _event.pageY
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   280
    };
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   281
    if (typeof this.dragging_type === "undefined") {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   282
        this.time_at_start = this.central_time;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   283
        this.dragging_type = "timeline";
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   284
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   285
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   286
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   287
Tlns.Classes.Timeline.prototype.onMouseUp = function(_event) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   288
    this.mouse_down = false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   289
    this.is_dragging = false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   290
    this.dragging_type = undefined;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   291
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   292
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   293
Tlns.Classes.Timeline.prototype.timeFromX = function(_x) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   294
    return Math.max(this.start_time,Math.min(this.end_time, this.start_time + _x / this.current_scale));
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   295
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   296
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   297
Tlns.Classes.Timeline.prototype.timeFromMouse = function(_pageX) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   298
    return this.timeFromX(_pageX - this.dragging_bounds.left);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   299
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   300
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   301
Tlns.Classes.Timeline.prototype.universFromY = function(_y) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   302
    return Math.max(0,Math.min(this.univers.length, Math.floor(_y / this.univers_height)))
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   303
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   304
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   305
Tlns.Classes.Timeline.prototype.universFromMouse = function(_pageY) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   306
    return this.universFromY(_pageY - this.dragging_bounds.top);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   307
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   308
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   309
Tlns.Classes.Timeline.prototype.onMouseMove = function(_event) {
85
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   310
    if (this.mouse_down && !this.is_dragging) {
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   311
        var _dx = this.start_pos.x - _event.pageX,
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   312
            _dy = this.start_pos.y - _event.pageY,
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   313
            _sqd = _dx * _dx + _dy * _dy;
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   314
        if (_sqd > 16) {
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   315
            this.is_dragging = true;
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   316
        }
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   317
    }
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   318
    if (this.is_dragging) {
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   319
        this.hideTooltip();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   320
        switch (this.dragging_type) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   321
            case "timeline":
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   322
                this.setTime(this.time_at_start + Math.floor(( this.start_pos.x - _event.pageX ) / this.current_scale));
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   323
            break;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   324
        }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   325
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   326
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   327
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   328
Tlns.Classes.Timeline.prototype.onUniversLoaded = function(_data) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   329
    this.univers = [];
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   330
    if(_data.length) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   331
        this.univers_height = Math.floor(this.main_height / _data.length);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   332
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   333
    for(var _i = 0; _i < _data.length; _i++) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   334
        this.univers.push(new Tlns.Classes.Univers(_data[_i], this, _i));
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   335
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   336
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   337
    this.loadOccurrences();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   338
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   339
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   340
Tlns.Classes.Timeline.prototype.offsetTime = function(_timeOffset) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   341
    this.setTime(this.central_time + _timeOffset);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   342
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   343
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   344
Tlns.Classes.Timeline.prototype.setTime = function(_centralTime) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   345
    this.sync_now = false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   346
    this.central_time = _centralTime;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   347
    this.changeSpan();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   348
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   349
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   350
Tlns.Classes.Timeline.prototype.setLevel = function(_level) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   351
    if (_level >= 0 && _level < this.timescales.length) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   352
        this.level = _level;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   353
        this.changeSpan();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   354
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   355
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   356
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   357
Tlns.Classes.Timeline.prototype.changeSpan = function() {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   358
    var _now = new Date().valueOf();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   359
    if (this.sync_now) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   360
        this.central_time = _now;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   361
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   362
    var _timescale = this.timescales[this.level];
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   363
    this.current_scale = this.main_width / (_timescale.span);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   364
    this.start_time = this.central_time - (_timescale.span / 2);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   365
    this.end_time = this.central_time + (_timescale.span / 2);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   366
    this.throttledDrawGrid();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   367
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   368
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   369
Tlns.Classes.Timeline.prototype.drawGrid = function() {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   370
    var _now = new Date().valueOf(),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   371
        _timescale = this.timescales[this.level],
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   372
        _offset = new Date().getTimezoneOffset() * 60000,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   373
        _grid_width = Math.floor(_timescale.grid_interval * this.current_scale),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   374
        _roundstart = Math.floor((this.start_time - _offset) / _timescale.grid_interval) * _timescale.grid_interval + _offset,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   375
        _html = '';
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   376
    for (var _t = _roundstart; _t < this.end_time; _t += _timescale.grid_interval) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   377
        var _x = this.current_scale * (_t - this.start_time);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   378
        if (_x > 0) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   379
            _html += '<div class="Tl-Grid-Column" style="width:' + _grid_width + 'px; left: ' + _x + 'px">'
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   380
            + '<div class="Tl-Grid-Label">' + Tlns.Utils.dateFormat(_t, _timescale.grid_date_format) + '</div></div>';
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   381
        }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   382
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   383
    if (this.start_time <= _now && this.end_time >= _now) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   384
        _html += '<div class="Tl-Grid-Now" style="left: ' + this.current_scale * (_now - this.start_time) + 'px"></div>'
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   385
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   386
    this.$.find('.Tl-Grid').html(_html);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   387
    this.drawOccurrences();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   388
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   389
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   390
Tlns.Classes.Timeline.prototype.loadOccurrences = function() {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   391
    var _this = this;
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   392
    $.getJSON(this.api_endpoint, {
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   393
        method: this.api_method,
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   394
        api_key: this.token,
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   395
        mail: this.email
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   396
    }, function(_data) {
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   397
        console.log(_data);
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   398
        _this.onOccurrencesLoaded(_data);
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   399
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   400
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   401
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   402
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   403
Tlns.Classes.Timeline.prototype.onOccurrencesLoaded = function(_data) {
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   404
    for (var _i = 0; _i < _data.data.length; _i++) {
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   405
        this.createOrUpdateOccurrence(_data.data[_i]);
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   406
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   407
    if (!this.mouse_down) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   408
        this.drawOccurrences();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   409
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   410
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   411
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   412
Tlns.Classes.Timeline.prototype.deleteOccurrence = function(_id) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   413
    this.occurrences = _(this.occurrences).reject(function(_occ) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   414
        return _occ.id == _id;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   415
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   416
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   417
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   418
Tlns.Classes.Timeline.prototype.getOccurrence = function(_id) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   419
    return _(this.occurrences).find(function(_occ) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   420
        return _occ.id == _id;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   421
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   422
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   423
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   424
Tlns.Classes.Timeline.prototype.createOrUpdateOccurrence = function(_data) {
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   425
    var _id = _data.id,
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   426
        _occurrence = this.getOccurrence(_id);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   427
    if (typeof _occurrence === "undefined") {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   428
        _occurrence = new Tlns.Classes.Occurrence(this);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   429
        this.occurrences.push(_occurrence);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   430
    }
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   431
    _occurrence.update(_data);
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   432
    return _occurrence;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   433
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   434
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   435
Tlns.Classes.Timeline.prototype.showTooltip = function(_x, _y, _html, _isUp) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   436
    this.$.find('.Tl-Overlay-Box')
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   437
        .removeClass(_isUp ? 'Tl-Overlay-Down' : 'Tl-Overlay-Up')
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   438
        .addClass(_isUp ? 'Tl-Overlay-Up' : 'Tl-Overlay-Down')
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   439
        .show()
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   440
        .css({
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   441
            left: _x + "px",
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   442
            top: _y + "px"
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   443
        });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   444
    this.$.find('.Tl-Overlay-Main').html(_html);
85
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   445
    
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   446
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   447
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   448
Tlns.Classes.Timeline.prototype.hideTooltip = function() {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   449
    this.$.find('.Tl-Overlay-Box').hide();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   450
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   451
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   452
Tlns.Classes.Timeline.prototype.drawOccurrences = function() {
85
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   453
    var _this = this;
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   454
    _(this.occurrences).each(function(_occ) {
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   455
        _occ.x = _this.current_scale * (_occ.date - _this.start_time);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   456
        _occ.y = _occ.univers.y;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   457
        _occ.in_cluster = false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   458
    });
85
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   459
    var _visible = _(this.occurrences).filter(function(_occ) {
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   460
        return (_occ.date >= _this.start_time && _occ.date <= _this.end_time && _occ.status);
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   461
    });
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   462
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   463
    var _moved = true;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   464
    while (_moved) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   465
        _moved = false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   466
        for (var _i = 0; _i < _visible.length; _i++) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   467
            for (var _j = 0; _j < _i; _j++) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   468
                if (_visible[_j].univers_id == _visible[_i].univers_id
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   469
                    && _visible[_j].x != _visible[_i].x
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   470
                    && Math.abs(_visible[_j].x-_visible[_i].x) < this.cluster_spacing
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   471
                ) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   472
                    _moved = true;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   473
                    _visible[_i].x = this.cluster_spacing * Math.round(_visible[_i].x / this.cluster_spacing);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   474
                    _visible[_j].x = this.cluster_spacing * Math.round(_visible[_j].x / this.cluster_spacing);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   475
                }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   476
            }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   477
        }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   478
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   479
    var _clusters = [],
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   480
        _openCluster = false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   481
    for (var _i = 0; _i < _visible.length; _i++) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   482
        for (var _j = 0; _j < _i; _j++) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   483
            if (_visible[_j].univers_id == _visible[_i].univers_id && _visible[_j].x == _visible[_i].x) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   484
                _visible[_j].in_cluster = true;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   485
                _visible[_i].in_cluster = true;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   486
                var _x = _visible[_j].x,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   487
                    _y = _visible[_j].y;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   488
                    _cluster = _(_clusters).find(function(_c) { return _c.x == _x && _c.y == _y });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   489
                if (typeof _cluster === "undefined") {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   490
                    _cluster = { x: _x, y: _y, occurrences: [] };
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   491
                    _clusters.push(_cluster);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   492
                }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   493
                if ("undefined" === typeof _(_cluster.occurrences).find(function(_o) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   494
                    return _o.type == _visible[_j].type && _o.id == _visible[_j].id;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   495
                })) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   496
                    _cluster.occurrences.push(_visible[_j]);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   497
                }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   498
                if ("undefined" === typeof _(_cluster.occurrences).find(function(_o) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   499
                    return _o.type == _visible[_i].type && _o.id == _visible[_i].id;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   500
                })) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   501
                    _cluster.occurrences.push(_visible[_i]);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   502
                }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   503
            }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   504
        }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   505
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   506
    _(_clusters).each(function(_cluster) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   507
        _cluster.occurrences = _(_cluster.occurrences).sortBy(function(_o) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   508
            return _o.date;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   509
        });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   510
        _cluster.contents = _cluster.occurrences.map(function(_o) {
84
2448fdcef656 Added Narrative Occurrence Support
veltr
parents: 83
diff changeset
   511
            return _o.id;
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   512
        }).join("|");
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   513
        if (_cluster.contents == _this.open_cluster) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   514
            _openCluster = _cluster;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   515
        }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   516
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   517
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   518
    var _html = Mustache.to_html(Tlns.Templates.Occurrence, {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   519
        occurrences:_(_visible).reject(function(_o) {return _o.in_cluster}),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   520
        clusters: _clusters,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   521
        open_cluster: _openCluster
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   522
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   523
    this.$.find('.Tl-Occurrences').html(_html);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   524
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   525
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   526
    if (_openCluster) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   527
        var _w = this.$.find('.Tl-Occurrence').width(),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   528
            _ww = _w * _openCluster.occurrences.length;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   529
        this.$.find('.Tl-ClusterOverlay').css({
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   530
            "margin-left": - Math.floor(_ww/2) + "px",
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   531
            width: _ww
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   532
        });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   533
        _(_openCluster.occurrences).each(function(_o, _i) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   534
            _o.y = _o.y - 20;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   535
            _o.x = _o.x - (_ww / 2) + ((_i + .5) * _w);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   536
        });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   537
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   538
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   539
    this.$.find('.Tl-Occurrence').mousedown(function() {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   540
        var _el = $(this),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   541
            _id = _el.attr("occurrence-id");
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   542
        if (typeof _id !== "undefined") {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   543
            _this.editing_occurrence = _this.getOccurrence(_id);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   544
            if (typeof _this.dragging_type === "undefined" && typeof _this.editing_occurrence !== "undefined" /* && !_this.editing_occurrence.locked */ ) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   545
                _this.dragging_type = "occurrence";
83
f8b1d6f5bb33 Lots of small modifications
veltr
parents: 82
diff changeset
   546
            }
f8b1d6f5bb33 Lots of small modifications
veltr
parents: 82
diff changeset
   547
            if (!_this.editing_occurrence.editing) {
f8b1d6f5bb33 Lots of small modifications
veltr
parents: 82
diff changeset
   548
                _(_this.occurrences).each(function(_occ) {
f8b1d6f5bb33 Lots of small modifications
veltr
parents: 82
diff changeset
   549
                    _occ.editing = false;
f8b1d6f5bb33 Lots of small modifications
veltr
parents: 82
diff changeset
   550
                });
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   551
                _this.editing_occurrence.editing = true;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   552
            }
83
f8b1d6f5bb33 Lots of small modifications
veltr
parents: 82
diff changeset
   553
            _this.throttledDrawGrid();
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   554
        }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   555
    }).mouseover(function(_event) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   556
        var _el = $(this),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   557
            _id = _el.attr("occurrence-id");
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   558
        if (typeof _id !== "undefined") {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   559
            var _occurrence = _this.getOccurrence(_id);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   560
            if (!_this.is_dragging) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   561
                var _html = Mustache.to_html(Tlns.Templates.OccurrenceTooltip, _occurrence);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   562
                _this.showTooltip(_occurrence.x, _occurrence.y, _html, (_event.pageY - _this.dragging_bounds.top) >= (.4 * _this.main_height) );
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   563
            }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   564
        }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   565
    }).mouseout(function() {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   566
        var _el = $(this),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   567
            _id = _el.attr("occurrence-id");
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   568
        if (typeof _id !== "undefined") {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   569
            var _occurrence = _this.getOccurrence(_id);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   570
            _this.hideTooltip();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   571
        }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   572
    });
87
4dc63e325f48 Removed editing functions
veltr
parents: 85
diff changeset
   573
        
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   574
    this.$.find('.Tl-Cluster').click(function() {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   575
        var _el = $(this),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   576
            _contents = _el.attr("cluster-contents");
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   577
        if (_this.open_cluster == _contents) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   578
            _this.open_cluster = false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   579
        } else {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   580
            _this.open_cluster = _contents;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   581
        }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   582
        _this.throttledDrawGrid();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   583
    })
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   584
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   585
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   586
Tlns.Classes.Timeline.prototype.getUnivers = function(_id) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   587
    return _(this.univers).find(function(_univ) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   588
        return (_univ.id == _id);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   589
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   590
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   591
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   592
/*
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   593
 * Univers
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   594
 */
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   595
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   596
Tlns.Classes.Univers = function(_data, _timeline, _index) {
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   597
    this.id = "u_" + _index;
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   598
    this.index = _index;
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   599
    this.title = _data;
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   600
//    this.mainCharacter = _data.personnage;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   601
    this.y = (_timeline.univers_height * _index);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   602
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   603
    this.$label = $('<li>').css({
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   604
        height : _timeline.univers_height + "px"
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   605
    }).html(Mustache.to_html(Tlns.Templates.Univers, this));
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   606
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   607
    _timeline.$.find('.Tl-UniversLabels').append(this.$label);
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   608
    
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   609
    var txtdiv = this.$label.find(".Tl-UniversText");
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   610
    txtdiv.css("margin-top", Math.floor((_timeline.univers_height - txtdiv.height()) / 2));
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   611
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   612
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   613
/*
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   614
 * Occurrence
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   615
 */
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   616
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   617
Tlns.Classes.Occurrence = function(_timeline) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   618
    this.timeline = _timeline;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   619
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   620
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   621
Tlns.Classes.Occurrence.prototype.update = function(_data) {
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   622
    this.original_data = _data;
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   623
    this.id = _data.id;
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   624
    this.date = new Date(1000 * (_data.dateFirstPublication || _data.dateCreate) || Date.now);
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   625
    this.formatted_date = Tlns.Utils.dateFormat(this.date,Tlns.Defaults.Timeline.tooltip_date_format);
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   626
    this.title = _data.title;
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   627
    this.univers_id = this.timeline.univers[Math.floor(this.timeline.univers.length * Math.random())].id;
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   628
    this.univers = this.timeline.getUnivers(this.univers_id);
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   629
    this.type = "publication";
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   630
    if (typeof _data.statut !== "undefined" || typeof this.status === "undefined") {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   631
        switch(_data.statut) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   632
            case "Validée":
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   633
            case "valide":
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   634
                this.status = "valide"
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   635
            break;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   636
            case "A réaliser":
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   637
            case "a_realiser":
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   638
                this.status = "a_realiser";
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   639
            break;
84
2448fdcef656 Added Narrative Occurrence Support
veltr
parents: 83
diff changeset
   640
            case "A valider":
2448fdcef656 Added Narrative Occurrence Support
veltr
parents: 83
diff changeset
   641
            case "a_valider":
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   642
            default:
84
2448fdcef656 Added Narrative Occurrence Support
veltr
parents: 83
diff changeset
   643
                this.status = "a_valider";
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   644
        }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   645
    }
83
f8b1d6f5bb33 Lots of small modifications
veltr
parents: 82
diff changeset
   646
    if (typeof _data.typeOccurrencePublication !== "undefined" || typeof this.format === "undefined") {
f8b1d6f5bb33 Lots of small modifications
veltr
parents: 82
diff changeset
   647
        this.format = _data.typeOccurrencePublication || 'Format non défini';
f8b1d6f5bb33 Lots of small modifications
veltr
parents: 82
diff changeset
   648
    }
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   649
    this.translated_status = Tlns.Defaults.Timeline.statuses[this.status];
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   650
//    this.published = (_data.publication && _data.publication == "En ligne");
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   651
//    this.locked = _data.verrouille || false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   652
//    this.characters = _data.personnagesSecondaires || [];
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   653
    var _tmp = $('<p>').html(_data.resume || "");
83
f8b1d6f5bb33 Lots of small modifications
veltr
parents: 82
diff changeset
   654
    this.description = _tmp.text().trim().replace(/(\n|\r|\r\n)/mg,' ').replace(/(^.{60,80})[\s].+$/m,'$1&hellip;');
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   655
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   656
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   657
Tlns.Classes.Occurrence.prototype.addDependency = function(_id) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   658
    if (_(this.dependsOn).indexOf(_id) == -1) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   659
        this.dependsOn.push(_id);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   660
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   661
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   662
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   663
Tlns.Classes.Occurrence.prototype.removeDependency = function(_id) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   664
    this.dependsOn = _(this.dependsOn).reject(function(_n) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   665
        return _n == _id;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   666
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   667
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   668
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   669
Tlns.Classes.Occurrence.prototype.toString = function() {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   670
    return "Occurrence " + this.type + ': "' + this.title + '"';
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   671
}