timeline/js/timeline.js
author veltr
Fri, 11 Oct 2013 16:41:08 +0200
changeset 106 574bb047a940
parent 105 fe4b70b9991d
child 107 6b346cb90c5a
permissions -rw-r--r--
bugfix
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;
101
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
    16
};
81
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)) {
101
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
    22
            var _tab = _k.split('_');
81
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
    });
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
    35
};
81
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()],
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
    56
        shortMonthName: ["jan.","fev.","mar.","avr.","mai","jun.","jul.","aou.","sep.","oct.","nov.","dec."][_date.getMonth()],
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    57
        year: _date.getFullYear()
101
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
    58
    };
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
    59
    return Mustache.to_html(_template, _params);
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
    60
};
81
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
    });
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
    66
};
81
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)
101
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
    82
    };
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
    83
};
81
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
101
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   109
    };
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   110
};
81
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
101
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   114
/* TOUTE LA CONFIGURATION DE L'APPLI SE FAIT ICI */
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   115
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   116
Tlns.Defaults.Timeline = {
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   117
    email: "",
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   118
    token: "",
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   119
    container : "timeline",
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   120
    width : 790,
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   121
    height : 225,
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   122
    min_width : 400,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   123
    min_height : 100,
96
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   124
    main_width : 726,
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   125
    linelabels : [
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   126
        "RDV",
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   127
        "Actu",
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   128
        "Appels",
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   129
        "Persos"
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   130
    ],
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   131
    picto_url: "img/",
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   132
    timescales : [{
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   133
        label : "Semaine",
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   134
        span : 7 * 86400 * 1000,
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   135
        grid_interval : 86400 * 1000,
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   136
        grid_date_format : '{{dayOfMonth}} {{monthName}}',
104
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   137
        max_importance : 0
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   138
    }, {
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   139
        label : "3 jours",
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   140
        span : 3 * 86400 * 1000,
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   141
        grid_interval : 6 * 3600 * 1000,
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   142
        grid_date_format : '{{^isDayStart}}{{0hours}}h{{0minutes}}{{/isDayStart}}{{#isDayStart}}{{dayOfMonth}} {{shortMonthName}}{{/isDayStart}}',
104
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   143
        max_importance : 1
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   144
    }, {
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   145
        label : "Journée",
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   146
        span : 86400 * 1000,
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   147
        grid_interval : 2 * 3600 * 1000,
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   148
        grid_date_format : '{{^isDayStart}}{{0hours}}h{{0minutes}}{{/isDayStart}}{{#isDayStart}}{{dayOfMonth}} {{shortMonthName}}{{/isDayStart}}',
104
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   149
        max_importance : 2
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   150
    }, {
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   151
        label : "Demi-Journée",
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   152
        span : 6 * 3600 * 1000,
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   153
        grid_interval : 3600 * 1000,
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   154
        grid_date_format : '{{^isDayStart}}{{0hours}}h{{0minutes}}{{/isDayStart}}{{#isDayStart}}{{dayOfMonth}} {{shortMonthName}}{{/isDayStart}}',
104
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   155
        max_importance : 3
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   156
    }],
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   157
    level: 0,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   158
    central_time: 0,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   159
    sync_now: true,
105
fe4b70b9991d Backoffice timeline as default
veltr
parents: 104
diff changeset
   160
    contents_endpoint: "http://anarchy2.solicis.fr/api/cms/content?method=searchForTimelineEdito",
104
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   161
    get_favorite_endpoint: "http://anarchy2.solicis.fr/stream/timeline/favorites",
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   162
    set_favorite_endpoint: "http://anarchy2.solicis.fr/stream/timeline/favorite",
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   163
    contribution_endpoint: "http://anarchy2.solicis.fr/stream/timeline/contribs",
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   164
    use_auth: true,
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   165
    occurrences: [],
90
50e3c4ba168a Remove clusters
veltr
parents: 89
diff changeset
   166
    grid_spacing: 12,
98
abead2de6332 Some fixes
veltr
parents: 97
diff changeset
   167
    tooltip_date_format: '{{dayOfMonth}} {{monthName}} {{year}} à {{0hours}}:{{0minutes}}',
96
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   168
    class_info: {
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   169
        "Cms\\Previously": {
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   170
            label: "Précédemment",
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   171
            univers_id: 0,
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   172
            picto: "previously.png",
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   173
            show: true
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   174
        },
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   175
        "Cms\\Chapter": {
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   176
            label: "Roman",
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   177
            univers_id: 0,
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   178
            picto: "roman.png",
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   179
            show: true
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   180
        },
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   181
        "Cms\\FlashTrash": {
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   182
            label: "JT",
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   183
            univers_id: 0,
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   184
            picto: "flash.png",
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   185
            show: true
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   186
        },
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   187
        "Cms\\Article": {
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   188
            label: "Article",
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   189
            univers_id: 1,
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   190
            show: true
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   191
        },
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   192
        "Cms\\Poll": {
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   193
            label: "Sondage",
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   194
            univers_id: 2,
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   195
            picto: "sondage.png",
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   196
            show: true
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   197
        },
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   198
        "Cms\\CallWitness": {
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   199
            label: "Appel à Témoins",
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   200
            univers_id: 2,
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   201
            picto: "temoignage.png",
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   202
            show: true
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   203
        },
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   204
        "Cms\\Rule": {
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   205
            label: "Règle du jour",
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   206
            univers_id: 2,
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   207
            picto: "regle.png",
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   208
            show: true
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   209
        },
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   210
        "Cms\\CallCharacter": {
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   211
            label: "Appel à Personnage",
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   212
            univers_id: 3,
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   213
            show: true
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   214
        },
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   215
        "Cms\\SweetCadaver": {
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   216
            label: "Cadavre exquis",
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   217
            univers_id: 3,
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   218
            show: true
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   219
        }
93
dc66d623dddd Added importance filter
veltr
parents: 92
diff changeset
   220
    },
94
bf8879a6470e Added details underneath timeline
veltr
parents: 93
diff changeset
   221
    maxtime: false,
104
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   222
    url_base: "http://anarchy2.solicis.fr",
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   223
    user_id: false,
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   224
    use_jsonp: false
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   225
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   226
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   227
for (var _i = 0; _i < Tlns.Defaults.Timeline.timescales.length; _i++) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   228
    Tlns.Defaults.Timeline.timescales[_i].level = _i;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   229
}
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   230
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   231
/* Templates */
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   232
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   233
Tlns.Templates.Timeline = '<div class="Tl-Main"><div class="Tl-Grid"></div><div class="Tl-TopBar"></div>'
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   234
    + '<div class="Tl-BottomPart"><div class="Tl-AnotherGroup"><ul class="Tl-UniversLabels"></ul>'
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   235
    + '<div class="Tl-MainPart"><div class="Tl-Occurrences"></div>'
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   236
    + '</div></div><div class="Tl-Slider-Container"><a class="Tl-Slider-Zoom-In" href="#"></a><div class="Tl-Slider"></div><a class="Tl-Slider-Zoom-Out" href="#"></a></div>'
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   237
    + '<div class="Tl-Overlay-Container"><div class="Tl-Overlay-Box"><div class="Tl-Overlay"><div class="Tl-Overlay-Main"></div></div></div></div></div></div>'
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   238
    + '<div class="Tl-Details"></div>';
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   239
    
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   240
Tlns.Templates.Univers = '<div class="Tl-UniversText">{{title}}</div>';
83
f8b1d6f5bb33 Lots of small modifications
veltr
parents: 82
diff changeset
   241
90
50e3c4ba168a Remove clusters
veltr
parents: 89
diff changeset
   242
Tlns.Templates.Occurrence =
96
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   243
    '{{#occurrences}}<div class="Tl-Occurrence Tl-OccOnGrid Tl-Occ{{type}}{{#editing}} Tl-Editing{{/editing}}" occurrence-id="{{id}}" style="left: {{x}}px; top: {{y}}px;">'
102
2f1ef2ded30c Added favorites display and participation count with random data
veltr
parents: 101
diff changeset
   244
    + '{{#image}}<img src="{{image}}" />{{/image}}{{#isFavorite}}<div class="Tl-Occurrence-Favorite"></div>{{/isFavorite}}'
2f1ef2ded30c Added favorites display and participation count with random data
veltr
parents: 101
diff changeset
   245
    + '{{#participationCount}}<div class="Tl-Occurrence-Participation">{{participationCount}}</div>{{/participationCount}}</div>{{/occurrences}}';
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   246
95
907a53a35a95 Aspect changes
veltr
parents: 94
diff changeset
   247
Tlns.Templates.OccurrenceTooltip = '<h3 class="Tl-Tooltip-Title">{{title}}</h3>';
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   248
102
2f1ef2ded30c Added favorites display and participation count with random data
veltr
parents: 101
diff changeset
   249
Tlns.Templates.OccurrenceDetails = 
2f1ef2ded30c Added favorites display and participation count with random data
veltr
parents: 101
diff changeset
   250
    '<div class="Tl-Detail"><div class="Tl-Detail-X"></div><div class="Tl-Detail-Favorite{{#isFavorite}} Tl-Detail-isFavorite{{/isFavorite}}"></div>'
2f1ef2ded30c Added favorites display and participation count with random data
veltr
parents: 101
diff changeset
   251
    + '<div class="Tl-Detail-Image-Wrapper"><img class="Tl-Detail-Image" src="{{detail_image}}" />'
2f1ef2ded30c Added favorites display and participation count with random data
veltr
parents: 101
diff changeset
   252
    + '{{#participationCount}}<div class="Tl-Detail-Participation">{{participationCount}}<span class="Tl-Participation-Icon"></span></div>{{/participationCount}}</div>'
94
bf8879a6470e Added details underneath timeline
veltr
parents: 93
diff changeset
   253
    + '<h2 class="Tl-Detail-Title">{{title}}</h2><p class="Tl-Detail-Description">{{detail_description}}</p>'
98
abead2de6332 Some fixes
veltr
parents: 97
diff changeset
   254
    + '<div class="Tl-Detail-Bottom"><span class="Tl-Detail-Date">Publié le {{formatted_date}}</span><a class="Tl-Detail-Read" href="{{url}}" target="_blank">Lire la suite</a></div></div>';
94
bf8879a6470e Added details underneath timeline
veltr
parents: 93
diff changeset
   255
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   256
/* Classes */
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   257
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   258
Tlns.Classes.Timeline = function(_options) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   259
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   260
    /* Setting Defaults */
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   261
    Tlns.Utils.SetDefaults(this, Tlns.Defaults.Timeline, _options);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   262
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   263
    /* Setting container CSS */
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   264
    this.$ = $('#' + this.container).html(Mustache.to_html(Tlns.Templates.Timeline, this));
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   265
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   266
    this.$.find('.Tl-Main').css({
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   267
        width : this.width + "px",
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   268
        height : this.height + "px"
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   269
    });
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   270
    this.top_height = this.$.find('.Tl-TopBar').outerHeight();
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   271
    this.main_height = this.height - this.top_height;
82
f00eb382bff1 Bugfixes
veltr
parents: 81
diff changeset
   272
    //this.main_height = this.height - 27;
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   273
    var labelsWidth = this.$.find('.Tl-UniversLabels').width();
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   274
    this.main_width = this.width - labelsWidth - this.$.find('.Tl-Slider-Container').width();
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   275
    this.$.find('.Tl-BottomPart').css("height", this.main_height + "px");
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   276
    this.$.find('.Tl-MainPart').css("width", this.main_width + "px");
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   277
    this.$.find('.Tl-Grid').css({
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   278
        "left": labelsWidth + "px",
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   279
        "width": this.main_width + "px"
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   280
    });
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   281
    this.$.find('.Tl-Overlay-Container').css("left", (this.$.find('.Tl-BottomPart').outerWidth() - this.main_width) + "px");
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   282
    this.$slider = this.$.find('.Tl-Slider');
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   283
    
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   284
    var $mainpart = this.$.find('.Tl-MainPart'),
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   285
        _o = $mainpart.offset();
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   286
    this.dragging_bounds = {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   287
        left: _o.left,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   288
        top: _o.top,
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   289
        right: _o.left + $mainpart.outerWidth(),
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   290
        bottom: _o.top + $mainpart.outerHeight(),
81
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
    var _this = this;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   294
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   295
    this.throttledDrawGrid = _.throttle(function() {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   296
        _this.drawGrid();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   297
    }, 150);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   298
    
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   299
    var $scrollgroup = this.$.find('.Tl-AnotherGroup');
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   300
     
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   301
    $scrollgroup.mousedown(function(_event) {
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   302
        _this.onMouseDown(_event);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   303
        return false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   304
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   305
    
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   306
    $scrollgroup.mousemove(function(_event) {
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   307
        _this.onMouseMove(_event);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   308
        return false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   309
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   310
    
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   311
    $scrollgroup.mouseup(function(_event) {
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   312
        _this.onMouseUp(_event);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   313
        return false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   314
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   315
    
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   316
    $scrollgroup.mousewheel(function(_event, _delta) {
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   317
        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
   318
        if (_newLevel != _this.level) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   319
            _this.hideTooltip();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   320
            var _deltaX = _event.pageX - _this.dragging_bounds.left,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   321
                _tAtMouse = _this.timeFromMouse(_event.pageX),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   322
                _newScale = _this.main_width / (_this.timescales[_newLevel].span),
93
dc66d623dddd Added importance filter
veltr
parents: 92
diff changeset
   323
                _newStart = _tAtMouse - _deltaX / _newScale,
dc66d623dddd Added importance filter
veltr
parents: 92
diff changeset
   324
                _newTime = _newStart + _this.timescales[_newLevel].span / 2;
dc66d623dddd Added importance filter
veltr
parents: 92
diff changeset
   325
            _this.central_time = _this.maxtime ? Math.min(_newTime, _this.maxtime) : _newTime;
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   326
            _this.setLevel(_newLevel);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   327
        }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   328
        return false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   329
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   330
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   331
    this.$.find('.Tl-Overlay-Box').mouseover(function(_event) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   332
        $(this).show();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   333
    }).mouseout(function(_event) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   334
        $(this).hide();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   335
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   336
    
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   337
    this.$slider.slider({
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   338
        orientation: "vertical",
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   339
        min: 0,
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   340
        max: this.timescales.length - 1,
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   341
        value: this.level,
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   342
        slide: function(e, ui) {
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   343
            _this.setLevel(ui.value);
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   344
        }
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   345
    });
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   346
    this.$.find('.Tl-Slider-Container').mousewheel(function(_event, _delta) {
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   347
        var _newLevel = Math.max(0,Math.min(_this.timescales.length-1, (_delta < 0 ? -1 : 1) + parseInt(_this.level)));
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   348
        if (_newLevel != _this.level) {
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   349
            _this.hideTooltip();
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   350
            _this.setLevel(_newLevel);
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   351
        }
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   352
        return false;
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   353
    });
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   354
    
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   355
    $(".Tl-Slider-Zoom-In").click(function() {
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   356
        _this.setLevel(Math.min(_this.timescales.length-1,parseInt(_this.level)+1));
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   357
        return false;
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   358
    });
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   359
    $(".Tl-Slider-Zoom-Out").click(function() {
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   360
        _this.setLevel(Math.max(0,parseInt(_this.level)-1));
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   361
        return false;
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   362
    });
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   363
    
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   364
    this.setLevel(this.level);
87
4dc63e325f48 Removed editing functions
veltr
parents: 85
diff changeset
   365
       
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   366
    this.onUniversLoaded(this.linelabels);
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   367
    
104
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   368
    this.favoriteContents = [];
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   369
    this.participationCounts = [];
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   370
    
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   371
    $.getJSON(
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   372
        this.jsonpify(this.get_favorite_endpoint),
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   373
        {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   374
            uid: this.user_id || undefined,
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   375
            api_key: _this.use_auth ? _this.token : undefined,
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   376
            mail: _this.use_auth ? _this.email : undefined
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   377
        },
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   378
        function(d) {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   379
            _this.favoriteContents = _(d.data).map(function(f) {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   380
                return f.id;
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   381
            });
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   382
            _(_this.favoriteContents).each(function(f) {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   383
                var o = _this.getOccurrence(f);
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   384
                if (o) {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   385
                    o.isFavorite = true;
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   386
                }
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   387
            });
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   388
        }
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   389
    );
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   390
    
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   391
    $.getJSON(
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   392
        this.jsonpify(this.contribution_endpoint),
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   393
        {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   394
            api_key: _this.use_auth ? _this.token : undefined,
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   395
            mail: _this.use_auth ? _this.email : undefined
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   396
        },
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   397
        function(d) {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   398
            _(d.data).each(function(c) {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   399
                _this.participationCounts[c.id] = c.nb;
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   400
                var o = _this.getOccurrence(c.id);
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   401
                if (o) {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   402
                    o.participationCount = c.nb;
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   403
                }
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   404
            });
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   405
        }
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   406
    );
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   407
    
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   408
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   409
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   410
Tlns.Classes.Timeline.prototype.onMouseDown = function(_event) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   411
    this.mouse_down = true;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   412
    this.is_dragging = false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   413
    this.start_pos = {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   414
        x: _event.pageX,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   415
        y: _event.pageY
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   416
    };
102
2f1ef2ded30c Added favorites display and participation count with random data
veltr
parents: 101
diff changeset
   417
    this.time_at_start = this.central_time;
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   418
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   419
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   420
Tlns.Classes.Timeline.prototype.onMouseUp = function(_event) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   421
    this.mouse_down = false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   422
    this.is_dragging = false;
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   423
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   424
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   425
Tlns.Classes.Timeline.prototype.timeFromX = function(_x) {
93
dc66d623dddd Added importance filter
veltr
parents: 92
diff changeset
   426
    return this.start_time + _x / this.current_scale;
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   427
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   428
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   429
Tlns.Classes.Timeline.prototype.timeFromMouse = function(_pageX) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   430
    return this.timeFromX(_pageX - this.dragging_bounds.left);
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   431
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   432
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   433
Tlns.Classes.Timeline.prototype.universFromY = function(_y) {
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   434
    return Math.max(0,Math.min(this.univers.length, Math.floor(_y / this.univers_height)));
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   435
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   436
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   437
Tlns.Classes.Timeline.prototype.universFromMouse = function(_pageY) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   438
    return this.universFromY(_pageY - this.dragging_bounds.top);
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   439
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   440
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   441
Tlns.Classes.Timeline.prototype.onMouseMove = function(_event) {
85
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   442
    if (this.mouse_down && !this.is_dragging) {
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   443
        var _dx = this.start_pos.x - _event.pageX,
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   444
            _dy = this.start_pos.y - _event.pageY,
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   445
            _sqd = _dx * _dx + _dy * _dy;
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   446
        if (_sqd > 16) {
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   447
            this.is_dragging = true;
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   448
        }
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   449
    }
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   450
    if (this.is_dragging) {
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   451
        this.hideTooltip();
102
2f1ef2ded30c Added favorites display and participation count with random data
veltr
parents: 101
diff changeset
   452
        this.setTime(this.time_at_start + Math.floor(( this.start_pos.x - _event.pageX ) / this.current_scale));
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   453
    }
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   454
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   455
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   456
Tlns.Classes.Timeline.prototype.onUniversLoaded = function(_data) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   457
    this.univers = [];
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   458
    if(_data.length) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   459
        this.univers_height = Math.floor(this.main_height / _data.length);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   460
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   461
    for(var _i = 0; _i < _data.length; _i++) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   462
        this.univers.push(new Tlns.Classes.Univers(_data[_i], this, _i));
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   463
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   464
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   465
    this.loadOccurrences();
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   466
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   467
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   468
Tlns.Classes.Timeline.prototype.offsetTime = function(_timeOffset) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   469
    this.setTime(this.central_time + _timeOffset);
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   470
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   471
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   472
Tlns.Classes.Timeline.prototype.setTime = function(_centralTime) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   473
    this.sync_now = false;
93
dc66d623dddd Added importance filter
veltr
parents: 92
diff changeset
   474
    this.central_time = this.maxtime ? Math.min(_centralTime, this.maxtime) : _centralTime;
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   475
    this.changeSpan();
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   476
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   477
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   478
Tlns.Classes.Timeline.prototype.setLevel = function(_level) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   479
    if (_level >= 0 && _level < this.timescales.length) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   480
        this.level = _level;
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   481
        this.$slider.slider("value", _level);
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   482
        this.changeSpan();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   483
    }
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   484
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   485
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   486
Tlns.Classes.Timeline.prototype.changeSpan = function() {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   487
    var _now = new Date().valueOf();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   488
    if (this.sync_now) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   489
        this.central_time = _now;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   490
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   491
    var _timescale = this.timescales[this.level];
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   492
    this.current_scale = this.main_width / (_timescale.span);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   493
    this.start_time = this.central_time - (_timescale.span / 2);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   494
    this.end_time = this.central_time + (_timescale.span / 2);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   495
    this.throttledDrawGrid();
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   496
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   497
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   498
Tlns.Classes.Timeline.prototype.drawGrid = function() {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   499
    var _now = new Date().valueOf(),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   500
        _timescale = this.timescales[this.level],
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   501
        _offset = new Date().getTimezoneOffset() * 60000,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   502
        _grid_width = Math.floor(_timescale.grid_interval * this.current_scale),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   503
        _roundstart = Math.floor((this.start_time - _offset) / _timescale.grid_interval) * _timescale.grid_interval + _offset,
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   504
        _html = '';
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   505
    for (var _t = _roundstart; _t < this.end_time; _t += _timescale.grid_interval) {
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   506
        var _x = this.current_scale * (_t - this.start_time),
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   507
            isMajor = !((_t - _offset)%(24*60*60*1000));
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   508
        if (_x > 0) {
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   509
            _html += '<div class="Tl-Grid-Column' + (isMajor ? ' Tl-Grid-Major':'') + '" style="width:' + _grid_width + 'px; left: ' + _x + 'px">'
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   510
            + '<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
   511
        }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   512
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   513
    if (this.start_time <= _now && this.end_time >= _now) {
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   514
        _html += '<div class="Tl-Grid-Now" style="left: ' + this.current_scale * (_now - this.start_time) + 'px"></div>';
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   515
    }
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   516
    if (this.editing_occurrence && this.editing_occurrence.date <= this.end_time && this.editing_occurrence.date >= this.start_time) {
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   517
        _html += '<div class="Tl-Grid-Editing" style="left: ' + this.editing_occurrence.x + 'px"></div>';
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   518
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   519
    this.$.find('.Tl-Grid').html(_html);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   520
    this.drawOccurrences();
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   521
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   522
104
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   523
Tlns.Classes.Timeline.prototype.jsonpify = function(url) {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   524
    if (this.use_jsonp) {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   525
        return url + (/\?/.test(url) ? "&" : "?" ) + "callback=?";
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   526
    } else {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   527
        return url;
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   528
    }
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   529
};
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   530
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   531
Tlns.Classes.Timeline.prototype.loadOccurrences = function() {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   532
    var _this = this;
99
281ef3fd6f84 added basic pagination
veltr
parents: 98
diff changeset
   533
    
281ef3fd6f84 added basic pagination
veltr
parents: 98
diff changeset
   534
    function getData(cursor) {
104
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   535
        $.getJSON(_this.jsonpify(_this.contents_endpoint), {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   536
            api_key: _this.use_auth ? _this.token : undefined,
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   537
            mail: _this.use_auth ? _this.email : undefined,
99
281ef3fd6f84 added basic pagination
veltr
parents: 98
diff changeset
   538
            cursor: cursor
281ef3fd6f84 added basic pagination
veltr
parents: 98
diff changeset
   539
        }, function(_data) {
281ef3fd6f84 added basic pagination
veltr
parents: 98
diff changeset
   540
            _this.onOccurrencesLoaded(_data);
104
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   541
            if (_data.cursor && _data.cursor.hasNext) {
99
281ef3fd6f84 added basic pagination
veltr
parents: 98
diff changeset
   542
                getData(_data.cursor.next);
281ef3fd6f84 added basic pagination
veltr
parents: 98
diff changeset
   543
            }
281ef3fd6f84 added basic pagination
veltr
parents: 98
diff changeset
   544
        });
281ef3fd6f84 added basic pagination
veltr
parents: 98
diff changeset
   545
    }
281ef3fd6f84 added basic pagination
veltr
parents: 98
diff changeset
   546
    
281ef3fd6f84 added basic pagination
veltr
parents: 98
diff changeset
   547
    getData();
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   548
    
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   549
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   550
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   551
Tlns.Classes.Timeline.prototype.onOccurrencesLoaded = function(_data) {
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   552
    for (var _i = 0; _i < _data.data.length; _i++) {
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   553
        this.createOrUpdateOccurrence(_data.data[_i]);
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   554
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   555
    if (!this.mouse_down) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   556
        this.drawOccurrences();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   557
    }
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   558
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   559
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   560
Tlns.Classes.Timeline.prototype.deleteOccurrence = function(_id) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   561
    this.occurrences = _(this.occurrences).reject(function(_occ) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   562
        return _occ.id == _id;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   563
    });
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   564
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   565
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   566
Tlns.Classes.Timeline.prototype.getOccurrence = function(_id) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   567
    return _(this.occurrences).find(function(_occ) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   568
        return _occ.id == _id;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   569
    });
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   570
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   571
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   572
Tlns.Classes.Timeline.prototype.createOrUpdateOccurrence = function(_data) {
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   573
    var _id = _data.id,
96
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   574
        _occurrence = this.getOccurrence(_id),
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   575
        typeinfo = this.class_info[_data.__CLASS__];
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   576
    if (typeinfo && typeinfo.show) {
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   577
        if (typeof _occurrence === "undefined") {
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   578
            _occurrence = new Tlns.Classes.Occurrence(this);
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   579
            this.occurrences.push(_occurrence);
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   580
        }
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   581
        _occurrence.update(_data);
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   582
    }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   583
    return _occurrence;
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   584
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   585
95
907a53a35a95 Aspect changes
veltr
parents: 94
diff changeset
   586
Tlns.Classes.Timeline.prototype.showTooltip = function(_x, _y, _html) {
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   587
    this.$.find('.Tl-Overlay-Box')
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   588
        .show()
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   589
        .css({
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   590
            left: _x + "px",
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   591
            top: _y + "px"
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   592
        });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   593
    this.$.find('.Tl-Overlay-Main').html(_html);
85
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   594
    
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   595
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   596
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   597
Tlns.Classes.Timeline.prototype.hideTooltip = function() {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   598
    this.$.find('.Tl-Overlay-Box').hide();
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   599
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   600
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   601
Tlns.Classes.Timeline.prototype.drawOccurrences = function() {
85
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   602
    var _this = this;
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   603
    _(this.occurrences).each(function(_occ) {
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   604
        _occ.x = _this.current_scale * (_occ.date - _this.start_time);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   605
        _occ.y = _occ.univers.y;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   606
    });
96
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   607
    var minT = this.timeFromX(-32),
104
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   608
        maxI = this.timescales[this.level].max_importance;
85
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   609
    var _visible = _(this.occurrences).filter(function(_occ) {
104
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   610
        _occ.visible = (_occ.date >= minT && _occ.date <= _this.end_time && (_occ.importance <= maxI));
101
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   611
        return _occ.visible;
85
7a0de7ed7575 Corrected timeline behaviour
veltr
parents: 84
diff changeset
   612
    });
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   613
    
101
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   614
    /* FILTRAGE SI TROP D'OCCURRENCES PAR UNITE DE TEMPS */
102
2f1ef2ded30c Added favorites display and participation count with random data
veltr
parents: 101
diff changeset
   615
    /* Commenter la partie ci-dessous pour les tests */
101
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   616
    
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   617
    var _timescale = this.timescales[this.level],
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   618
        _offset = new Date().getTimezoneOffset() * 60000,
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   619
        _grid_width = Math.floor(_timescale.grid_interval * this.current_scale),
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   620
        _roundstart = Math.floor((this.start_time - _offset) / _timescale.grid_interval) * _timescale.grid_interval + _offset,
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   621
        _html = '';
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   622
    for (var _t = _roundstart; _t < this.end_time; _t += _timescale.grid_interval) {
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   623
        var items = _(_visible).filter(function(_occ) {
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   624
            return _occ.date >= _t && _occ.date < _t + _timescale.grid_interval;
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   625
        });
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   626
        if (items && items.length > 1) {
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   627
            _(items).chain().rest().each(function(_occ) {
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   628
                _occ.visible = false;
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   629
            });
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   630
        }
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   631
    }
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   632
    var _visible = _(_visible).filter(function(_occ) { return _occ.visible; });
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   633
    
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   634
    /* FIN FILTRAGE */
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   635
    
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   636
    /* REORGANISATION DES PICTOS SI TROP NOMBREUX */
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   637
    
90
50e3c4ba168a Remove clusters
veltr
parents: 89
diff changeset
   638
    var _moved = true, l = 0;
91
5b770cf1a6e3 Added thumbnail
veltr
parents: 90
diff changeset
   639
    while (_moved && l < 10) {
90
50e3c4ba168a Remove clusters
veltr
parents: 89
diff changeset
   640
        l++;
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   641
        _moved = false;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   642
        for (var _i = 0; _i < _visible.length; _i++) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   643
            for (var _j = 0; _j < _i; _j++) {
90
50e3c4ba168a Remove clusters
veltr
parents: 89
diff changeset
   644
                var delta = Math.abs(_visible[_j].x-_visible[_i].x);
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   645
                if (_visible[_j].univers_id == _visible[_i].univers_id
90
50e3c4ba168a Remove clusters
veltr
parents: 89
diff changeset
   646
                    && delta < this.grid_spacing
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   647
                ) {
90
50e3c4ba168a Remove clusters
veltr
parents: 89
diff changeset
   648
                    var sign = _visible[_i].x < _visible[_j].x ? 1 : -1,
91
5b770cf1a6e3 Added thumbnail
veltr
parents: 90
diff changeset
   649
                        add = sign * (this.grid_spacing - delta) / 2;
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   650
                    _moved = true;
90
50e3c4ba168a Remove clusters
veltr
parents: 89
diff changeset
   651
                    _visible[_i].x -= add;
50e3c4ba168a Remove clusters
veltr
parents: 89
diff changeset
   652
                    _visible[_j].x += add;
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   653
                }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   654
            }
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
    
101
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   658
    /* FIN REORGANISATION */
05c1161fa501 Added "aggressive filtering"
veltr
parents: 99
diff changeset
   659
    
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   660
    var _html = Mustache.to_html(Tlns.Templates.Occurrence, {
90
50e3c4ba168a Remove clusters
veltr
parents: 89
diff changeset
   661
        occurrences: _visible
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   662
    });
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   663
    this.$.find('.Tl-Occurrences').html(_html);
90
50e3c4ba168a Remove clusters
veltr
parents: 89
diff changeset
   664
        
102
2f1ef2ded30c Added favorites display and participation count with random data
veltr
parents: 101
diff changeset
   665
    this.$.find('.Tl-Occurrence').mousedown(function() { // Clic sur un contenu
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   666
        var _el = $(this),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   667
            _id = _el.attr("occurrence-id");
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   668
        if (typeof _id !== "undefined") {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   669
            _this.editing_occurrence = _this.getOccurrence(_id);
83
f8b1d6f5bb33 Lots of small modifications
veltr
parents: 82
diff changeset
   670
            if (!_this.editing_occurrence.editing) {
f8b1d6f5bb33 Lots of small modifications
veltr
parents: 82
diff changeset
   671
                _(_this.occurrences).each(function(_occ) {
f8b1d6f5bb33 Lots of small modifications
veltr
parents: 82
diff changeset
   672
                    _occ.editing = false;
f8b1d6f5bb33 Lots of small modifications
veltr
parents: 82
diff changeset
   673
                });
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   674
                _this.editing_occurrence.editing = true;
94
bf8879a6470e Added details underneath timeline
veltr
parents: 93
diff changeset
   675
                _this.$.find(".Tl-Details").html(Mustache.to_html(Tlns.Templates.OccurrenceDetails, _this.editing_occurrence));
103
b9a417017e19 Simulate click on favorite star
veltr
parents: 102
diff changeset
   676
                _this.$.find(".Tl-Detail-Favorite").click(function() {
b9a417017e19 Simulate click on favorite star
veltr
parents: 102
diff changeset
   677
                    _this.editing_occurrence.toggleFavorite();
b9a417017e19 Simulate click on favorite star
veltr
parents: 102
diff changeset
   678
                }).hover(function() {
b9a417017e19 Simulate click on favorite star
veltr
parents: 102
diff changeset
   679
                    $(this)[_this.editing_occurrence.isFavorite ? "removeClass" : "addClass" ]("Tl-Detail-isFavorite");
b9a417017e19 Simulate click on favorite star
veltr
parents: 102
diff changeset
   680
                }, function() {
b9a417017e19 Simulate click on favorite star
veltr
parents: 102
diff changeset
   681
                    $(this)[_this.editing_occurrence.isFavorite ? "addClass" : "removeClass"]("Tl-Detail-isFavorite");
b9a417017e19 Simulate click on favorite star
veltr
parents: 102
diff changeset
   682
                });
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   683
            }
83
f8b1d6f5bb33 Lots of small modifications
veltr
parents: 82
diff changeset
   684
            _this.throttledDrawGrid();
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   685
        }
102
2f1ef2ded30c Added favorites display and participation count with random data
veltr
parents: 101
diff changeset
   686
    }).mouseover(function(_event) { // Hover sur un contenu
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   687
        var _el = $(this),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   688
            _id = _el.attr("occurrence-id");
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   689
        if (typeof _id !== "undefined") {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   690
            var _occurrence = _this.getOccurrence(_id);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   691
            if (!_this.is_dragging) {
95
907a53a35a95 Aspect changes
veltr
parents: 94
diff changeset
   692
                var _html = Mustache.to_html(Tlns.Templates.OccurrenceTooltip, _occurrence);
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   693
                _this.showTooltip(_occurrence.x, _occurrence.y, _html);
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   694
            }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   695
        }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   696
    }).mouseout(function() {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   697
        var _el = $(this),
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   698
            _id = _el.attr("occurrence-id");
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   699
        if (typeof _id !== "undefined") {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   700
            var _occurrence = _this.getOccurrence(_id);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   701
            _this.hideTooltip();
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   702
        }
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   703
    });
90
50e3c4ba168a Remove clusters
veltr
parents: 89
diff changeset
   704
    
98
abead2de6332 Some fixes
veltr
parents: 97
diff changeset
   705
    if (this.editing_occurrence) {
abead2de6332 Some fixes
veltr
parents: 97
diff changeset
   706
        $(".Tl-Grid-Editing, .Tl-Detail-X").css("left", this.editing_occurrence.x);
abead2de6332 Some fixes
veltr
parents: 97
diff changeset
   707
        if (this.editing_occurrence.date > this.end_time || this.editing_occurrence.date < this.start_time) {
abead2de6332 Some fixes
veltr
parents: 97
diff changeset
   708
            $(".Tl-Detail-X").hide();
abead2de6332 Some fixes
veltr
parents: 97
diff changeset
   709
        } else {
abead2de6332 Some fixes
veltr
parents: 97
diff changeset
   710
            $(".Tl-Detail-X").show();
abead2de6332 Some fixes
veltr
parents: 97
diff changeset
   711
        }
abead2de6332 Some fixes
veltr
parents: 97
diff changeset
   712
    }
abead2de6332 Some fixes
veltr
parents: 97
diff changeset
   713
    
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   714
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   715
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   716
Tlns.Classes.Timeline.prototype.getUnivers = function(_id) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   717
    return _(this.univers).find(function(_univ) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   718
        return (_univ.id == _id);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   719
    });
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   720
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   721
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   722
/*
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   723
 * Univers
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   724
 */
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   725
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   726
Tlns.Classes.Univers = function(_data, _timeline, _index) {
92
8e017d512ef5 Added Class rules
veltr
parents: 91
diff changeset
   727
    this.id = this.index = _index;
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   728
    this.title = _data;
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   729
//    this.mainCharacter = _data.personnage;
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   730
    this.y = (_timeline.univers_height * _index);
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   731
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   732
    this.$label = $('<li>').css({
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   733
        height : _timeline.univers_height + "px"
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   734
    }).html(Mustache.to_html(Tlns.Templates.Univers, this));
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   735
    
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   736
    _timeline.$.find('.Tl-UniversLabels').append(this.$label);
89
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   737
    
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   738
    var txtdiv = this.$label.find(".Tl-UniversText");
6b1a038edbf7 Removed List
veltr
parents: 88
diff changeset
   739
    txtdiv.css("margin-top", Math.floor((_timeline.univers_height - txtdiv.height()) / 2));
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   740
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   741
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   742
/*
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   743
 * Occurrence
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   744
 */
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   745
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   746
Tlns.Classes.Occurrence = function(_timeline) {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   747
    this.timeline = _timeline;
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   748
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   749
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   750
Tlns.Classes.Occurrence.prototype.update = function(_data) {
102
2f1ef2ded30c Added favorites display and participation count with random data
veltr
parents: 101
diff changeset
   751
    
2f1ef2ded30c Added favorites display and participation count with random data
veltr
parents: 101
diff changeset
   752
    /* Récupération des propriétés du JSON */
2f1ef2ded30c Added favorites display and participation count with random data
veltr
parents: 101
diff changeset
   753
    
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   754
    this.original_data = _data;
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   755
    this.id = _data.id;
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   756
    this.date = new Date(1000 * (_data.dateFirstPublication || _data.dateCreate) || Date.now);
98
abead2de6332 Some fixes
veltr
parents: 97
diff changeset
   757
    this.formatted_date = Tlns.Utils.dateFormat(this.date,this.timeline.tooltip_date_format);
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   758
    this.title = _data.title;
92
8e017d512ef5 Added Class rules
veltr
parents: 91
diff changeset
   759
    this.type = _data.__CLASS__;
93
dc66d623dddd Added importance filter
veltr
parents: 92
diff changeset
   760
    this.importance = _data.importance;
96
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   761
    var typeinfo = this.timeline.class_info[_data.__CLASS__];
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   762
    this.univers_id = typeinfo.univers_id;
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   763
    var media = _(_data.contentHasMedias).find(function(m) {
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   764
        return !!m.media.carre;
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   765
    });
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   766
    if (media) {
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   767
        this.image = media.media.carre.replace(/carre\/[\d]+\/[\d]+/,'carre/32/32');
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   768
        this.detail_image = media.media.carre.replace(/carre\/[\d]+\/[\d]+/,'carre/135/135');
96
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   769
    }
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   770
    if (typeinfo.picto) {
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   771
        this.image = this.timeline.picto_url + typeinfo.picto;
92
8e017d512ef5 Added Class rules
veltr
parents: 91
diff changeset
   772
    }
104
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   773
    var taxonomy = _(_data.contentHasTaxonomys).find(function(t) {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   774
        return !!t.taxonomy.taxonomyHasMedias;
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   775
    });
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   776
    if (taxonomy) {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   777
        var taxonomyMedia = _(taxonomy.taxonomy.taxonomyHasMedias).find(function(m) {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   778
            return !!m.media.carre;
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   779
        });
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   780
        if (taxonomyMedia) {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   781
            this.image = taxonomyMedia.media.carre.replace(/carre\/[\d]+\/[\d]+/,'carre/32/32');
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   782
        }
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   783
    }
92
8e017d512ef5 Added Class rules
veltr
parents: 91
diff changeset
   784
    this.univers = this.timeline.univers[this.univers_id];
96
7d1c2c21d891 Added pictos
veltr
parents: 95
diff changeset
   785
    this.format = typeinfo.label;
102
2f1ef2ded30c Added favorites display and participation count with random data
veltr
parents: 101
diff changeset
   786
    
104
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   787
    if (this.timeline.favoriteContents.indexOf(this.id) !== -1) {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   788
        this.isFavorite = true;
102
2f1ef2ded30c Added favorites display and participation count with random data
veltr
parents: 101
diff changeset
   789
    }
104
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   790
    this.participationCount = this.timeline.participationCounts[this.id];
102
2f1ef2ded30c Added favorites display and participation count with random data
veltr
parents: 101
diff changeset
   791
    /* End Temporary Data */
2f1ef2ded30c Added favorites display and participation count with random data
veltr
parents: 101
diff changeset
   792
    
88
8bab0eb0d791 adapted ajax request to solicis api
veltr
parents: 87
diff changeset
   793
    var _tmp = $('<p>').html(_data.resume || "");
94
bf8879a6470e Added details underneath timeline
veltr
parents: 93
diff changeset
   794
    var trimmedDesc = _tmp.text().trim().replace(/(\n|\r|\r\n)/mg,' ');
bf8879a6470e Added details underneath timeline
veltr
parents: 93
diff changeset
   795
    this.description = trimmedDesc.replace(/(^.{60,80})[\s].+$/m,'$1&hellip;');
bf8879a6470e Added details underneath timeline
veltr
parents: 93
diff changeset
   796
    this.detail_description = trimmedDesc.replace(/(^.{360,380})[\s].+$/m,'$1&hellip;');
bf8879a6470e Added details underneath timeline
veltr
parents: 93
diff changeset
   797
    this.url = this.timeline.url_base + _data.url;
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   798
};
81
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   799
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   800
Tlns.Classes.Occurrence.prototype.toString = function() {
bf6adf981cc2 JS file was accidentally deleted
veltr
parents:
diff changeset
   801
    return "Occurrence " + this.type + ': "' + this.title + '"';
97
0444ad28e6ba Graphical changes
veltr
parents: 96
diff changeset
   802
};
103
b9a417017e19 Simulate click on favorite star
veltr
parents: 102
diff changeset
   803
b9a417017e19 Simulate click on favorite star
veltr
parents: 102
diff changeset
   804
Tlns.Classes.Occurrence.prototype.toggleFavorite = function() {
106
veltr
parents: 105
diff changeset
   805
    var newFavStatus = !this.isFavorite,
veltr
parents: 105
diff changeset
   806
        _this = this;
104
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   807
    $.ajax({
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   808
        type: "POST",
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   809
        url: this.timeline.set_favorite_endpoint,
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   810
        data: {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   811
            type: this.type,
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   812
            conId: this.id,
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   813
            status: +newFavStatus,
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   814
            uid: this.timeline.user_id || undefined
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   815
        },
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   816
        success: function(r) {
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   817
            console.log(r);
106
veltr
parents: 105
diff changeset
   818
            /* DEPENDING ON THE RESULT.... */
104
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   819
            _this.isFavorite = newFavStatus;
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   820
            _this.timeline.throttledDrawGrid();
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   821
        }
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   822
    });
3fef455d214a Added contribution & favorite data
veltr
parents: 103
diff changeset
   823
    
103
b9a417017e19 Simulate click on favorite star
veltr
parents: 102
diff changeset
   824
};