hdalab/js/gomina.js
author veltr
Tue, 10 Jan 2012 18:25:08 +0100
changeset 109 3371a40449c7
child 110 6455b65fa3b7
permissions -rw-r--r--
HDA Lab 1st commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
109
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
     1
/**
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
     2
 * @author raph
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
     3
 */
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
     4
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
     5
var gomNs = {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
     6
    minYear: -5000,
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
     7
    maxYear: 2010,
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
     8
    tlPixels: 960,
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
     9
    tlGamma: 6,
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    10
    heatGamma: 4,
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    11
}
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    12
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    13
function yearToPx(year) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    14
    return gomNs.tlPixels * Math.pow( ( year - gomNs.minYear ) / ( gomNs.maxYear - gomNs.minYear ), gomNs.tlGamma );
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    15
}
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    16
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    17
function pxToYear(px) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    18
    return gomNs.minYear + ( gomNs.maxYear - gomNs.minYear ) * Math.pow( px / gomNs.tlPixels, 1 / gomNs.tlGamma );
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    19
}
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    20
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    21
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    22
function tagInfo(_taglabel) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    23
    var _urlParam = { "label": _taglabel };
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    24
    $.getJSON("taginfo.php",
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    25
        _urlParam,
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    26
        function(data) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    27
            var _html = '<div id="addtofilter"><h3>'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    28
                + data.content_count
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    29
                + ' contenus pour ce tag</h3><p><a href="#" onclick="filterTag($(\'#tagname\').text()); return false;">Ajouter au filtrage</a></p></div><h2 id="tagname">'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    30
                + data.requested_label
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    31
                + '</h2></div>';
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    32
            if (data.wikipedia_url) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    33
                _html += '<h3><a href="'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    34
                    + data.wikipedia_url
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    35
                    + '" target="_blank">Wikipédia: '
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    36
                    + decodeURI(data.wikipedia_url.match(/[^\/]+$/)[0]).replace("_"," ")
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    37
                    + '</a></h3>'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    38
            }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    39
            if (data.thumbnail) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    40
                _html += '<img id="img_wikipedia" src="'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    41
                    + data.thumbnail
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    42
                    + '" />';
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    43
            }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    44
            if (data.abstract) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    45
                _html += '<p>' + _(data.abstract).escape() + '</p>';
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    46
            }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    47
            if (data.links) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    48
                var _lC = data.requested_label.toLowerCase();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    49
                var _t = data.links.map(function(d) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    50
                    return (d.subject.toLowerCase() == _lC) ? d.object : d.subject;
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    51
                });
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    52
                _t.sort();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    53
                _t = _(_t).uniq(true);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    54
                _html += '<h3>Tags liés (dbpedia)</h3><ul class="content-tags">'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    55
                    + _t.map(function(d) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    56
                        return '<li class="content-tag-item"><a href="#" onclick="tagInfo($(this).text()); return false;">'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    57
                            + d
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    58
                            + '</a></li>';
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    59
                    }).join('')
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    60
                    + '</ul>';
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    61
            }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    62
            $("#taginfo").html(_html);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    63
        });
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    64
    $.getJSON("filter.php", _urlParam, updateDisplay);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    65
    if (gomNs.sessiondata.period || gomNs.sessiondata.filters.tag.length != 1 || gomNs.sessiondata.filters.tag[0] != _taglabel) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    66
        $("#bandefiltre").attr("class", "inactif");
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    67
    } else {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    68
        $("#bandefiltre").attr("class", "");
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    69
    }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    70
}
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    71
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    72
function filterTag(_tagLabel) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    73
    gomNs.sessiondata.filters.tag.push(_tagLabel);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    74
    updateFilters();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    75
    debouncedSaveChanges();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    76
}
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    77
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    78
function removeFilter(_index) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    79
    gomNs.sessiondata.filters.tag.splice(_index,1);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    80
    updateFilters();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    81
    debouncedSaveChanges();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    82
}
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    83
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    84
function removePeriod() {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    85
    $("#dateslider").slider("values",0,0).slider("values",1,gomNs.tlPixels).slideUp();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    86
    gomNs.sessiondata.filters.period = null;
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    87
    updateFilters();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    88
    debouncedSaveChanges();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    89
}
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    90
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    91
function getUpdates() {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    92
    var _params = {};
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    93
    if (gomNs.sessiondata.filters.period) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    94
        _params.period = gomNs.sessiondata.filters.period.join('|');
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    95
    }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    96
    if (gomNs.sessiondata.filters.tag.length) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    97
        _params.label = gomNs.sessiondata.filters.tag.join('|');
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    98
    }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
    99
    $.getJSON("filter.php", _params, updateDisplay);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   100
}
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   101
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   102
var debouncedGetUpdates = _.debounce(getUpdates, 200);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   103
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   104
function updateFilters() {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   105
    var _htmFilters = '',
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   106
        _fl = gomNs.sessiondata.filters.tag.length;
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   107
    if (!gomNs.sessiondata.filters.period && !_fl) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   108
        _htmFilters = '<li class="nofilter">Aucun filtre</li>';
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   109
    }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   110
    if (_fl) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   111
        _htmFilters += _(gomNs.sessiondata.filters.tag).map(function(_t, _i) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   112
            return '<li class="filtag">'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   113
                + _t
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   114
                + '<a href="#" class="remfil" onclick="removeFilter('
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   115
                + _i
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   116
                + '); return false;">[x]</a></li>'; 
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   117
        }).join("");
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   118
    }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   119
    if (gomNs.sessiondata.filters.period) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   120
        _htmFilters += '<li class="filperiod">' + gomNs.sessiondata.filters.period.join('-') + '<a href="#" class="remfil" onclick="removePeriod(); return false;">[x]</a></li>'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   121
    } else {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   122
        _htmFilters += '<li><a href="#" onclick="$(\'#dateslider\').show(); debouncedHideSlider(); return false;">Filtrer par période</a></li>';
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   123
    }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   124
    $("#filters").html(_htmFilters);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   125
    $("#bandefiltre").attr("class","");
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   126
    debouncedGetUpdates();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   127
}
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   128
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   129
function displayContents(contentdata) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   130
    if (contentdata && contentdata.length) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   131
        var _htmlCl = '<ul id="contentlist">'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   132
            + contentdata.map(function(_d) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   133
                return '<li class="content-item"><h3>'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   134
                    + _d.title
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   135
                    + '</h3><h4><a href="'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   136
                    + _d.url
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   137
                    + '" target="_blank">'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   138
                    + _d.url
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   139
                    + '</a></h4><p>'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   140
                    + _d.description
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   141
                    + '</p><ul class="content-tags">'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   142
                    + _d.tags.map(function(_t) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   143
                        return '<li class="content-tag-item"><a href="#" onclick="tagInfo($(this).text()); return false;"'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   144
                            + (_t.match ? ' class="tagmatch"' : '')
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   145
                            + '>'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   146
                            + _t.label
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   147
                            + '</a></li>';
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   148
                    }).join('')
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   149
                    + '</ul><h4>Annotations</h4><div class="content-annotation" contentid="'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   150
                    + _d.id
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   151
                    + '"><ul><li>'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   152
                    + (gomNs.sessiondata.annotations[_d.id] && gomNs.sessiondata.annotations[_d.id].texte ? gomNs.sessiondata.annotations[_d.id].texte.replace(/\n/gm,"</p><p>") : 'Annoter ce contenu...')
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   153
                    + '</li></ul></div>'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   154
                    + '<p><a href="#" class="addtolist" >Ajouter à ma liste</a></p>'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   155
                    + '</li>';
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   156
            }).join('')
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   157
            + '</ul>';
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   158
        $("#contents").html(_htmlCl).scrollTop(0);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   159
        $("div.content-annotation").click(function() {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   160
            if (gomNs.write_allowed && this.children[0].tagName == 'UL') {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   161
            var _el = document.createElement('textarea'),
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   162
                _id = this.attributes.contentid.nodeValue;
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   163
            _el.innerHTML = (gomNs.sessiondata.annotations[_id] && gomNs.sessiondata.annotations[_id].texte) ? gomNs.sessiondata.annotations[_id].texte : '';
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   164
            $(_el).focusout(function() {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   165
                var _id = this.parentNode.attributes.contentid.nodeValue;
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   166
                if (!gomNs.sessiondata.annotations[_id]) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   167
                    gomNs.sessiondata.annotations[_id] = {};
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   168
                }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   169
                gomNs.sessiondata.annotations[_id].texte = _.escape(this.value);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   170
                this.parentNode.innerHTML = '<ul><li>' + (this.value.length ? gomNs.sessiondata.annotations[_id].texte.replace(/\n/gm,"</li><li>") : 'Annoter ce contenu...' ) + '</ul>';
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   171
                debouncedSaveChanges();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   172
            });
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   173
            $(this).html(_el);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   174
            _el.focus();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   175
            _el.select();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   176
        }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   177
        });
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   178
    }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   179
    else {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   180
        $("#contents").html("");
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   181
    }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   182
}
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   183
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   184
function updateDisplay(data) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   185
    if (gomNs.dhmPaper) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   186
        gomNs.dhmPaper.clear();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   187
    } else {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   188
        gomNs.dhmPaper = new Raphael("dateheat");
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   189
    }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   190
    var _s = (data.count>1?'s':'');
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   191
    $("#contentcount").html('<b>'+data.count+'</b> notice'+_s);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   192
    var _sl = data.sparkline.length;
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   193
    if (_sl) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   194
        var _maxheat = _(data.sparkline).max(function(_d) { return parseInt(_d.score); }).score,
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   195
            _exp = 1 / gomNs.heatGamma,
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   196
            _scale = Math.pow(_maxheat, - _exp);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   197
        _(data.sparkline).each(function(_d, _i) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   198
            var _nxt = (_i == _sl - 1) ? gomNs.maxYear + 1 : data.sparkline[_i + 1].year,
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   199
                _x1 = yearToPx(_d.year),
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   200
                _x2 = yearToPx(_nxt),
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   201
                _heat = _scale * Math.pow(_d.score, _exp);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   202
            gomNs.dhmPaper.rect(_x1, 0, _x2 - _x1, 20).attr({
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   203
                "fill" : "rgb(255, 128, 128)",
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   204
                "opacity" : _heat,
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   205
                "stroke" : "none"
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   206
            })
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   207
        });
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   208
    }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   209
    if (data.tags.length) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   210
        var _scores = _(data.tags).map(function(_d) { return parseInt(_d.score)}),
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   211
            _maxTag = _(_scores).max(),
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   212
            _minTag = Math.min(_(_scores).min(), _maxTag - 1),
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   213
            _scale = 20 / Math.sqrt(_maxTag - _minTag),
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   214
            _htmlTc = '<ul id="tclist">'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   215
            + _(data.tags).map(function(_d) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   216
                return '<li style="font-size:'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   217
                    + parseInt(10 + _scale * Math.sqrt(_d.score - _minTag))
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   218
                    + 'px;"><a href="#" onclick="tagInfo($(this).text()); return false;"'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   219
                    + (_d.match ? ' class="tagmatch"' : '')
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   220
                    + '>'
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   221
                    + _d.label
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   222
                    + '</a></li>';
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   223
            }).join('')
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   224
            + '</ul>';
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   225
        $("#tagcloud").html(_htmlTc);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   226
    }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   227
    else {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   228
        $("#tagcloud").html("<h4>Pas de mots-clés trouvés</h4>");
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   229
    }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   230
    displayContents(data.contents);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   231
}
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   232
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   233
function saveChanges() {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   234
    if (gomNs.sessionid && gomNs.sessionkey) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   235
        $.getJSON("sessioninfo.php", {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   236
            "sessionid" : gomNs.sessionid,
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   237
            "sessionkey" : gomNs.sessionkey,
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   238
            "data" : JSON.stringify(gomNs.sessiondata),
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   239
        });
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   240
    }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   241
}
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   242
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   243
var debouncedSaveChanges = _.debounce(saveChanges, 1000);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   244
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   245
function getInitialView() {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   246
    var _urlParam = {};
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   247
    if (document.location.hash) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   248
        var _tab = document.location.hash.replace("#","").split("-");
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   249
        _urlParam.sessionid = _tab[0];
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   250
        if (_tab.length > 1) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   251
            _urlParam.sessionkey = _tab[1];
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   252
        }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   253
    }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   254
    $.getJSON("sessioninfo.php", _urlParam, function(data) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   255
        gomNs.sessionid = data.sessionid;
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   256
        if (data.sessionkey) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   257
            gomNs.sessionkey = data.sessionkey;
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   258
        }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   259
        gomNs.write_allowed = data.write_allowed;
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   260
        if (data.write_allowed) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   261
            $("#partagerw").show();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   262
        } else {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   263
            $("#partagerw").hide();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   264
        }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   265
        var _baseUrl = document.location.href.split("#")[0];
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   266
        $("#rourl").html(_baseUrl + "#" + data.sessionid );
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   267
        gomNs.hash = "#" + data.sessionid + (data.sessionkey ? '-' + data.sessionkey : '');
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   268
        document.location.hash = gomNs.hash;
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   269
        $("#rwurl").html(_baseUrl + gomNs.hash);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   270
        gomNs.sessiondata = JSON.parse(data.data);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   271
        if (!gomNs.sessiondata.title) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   272
            gomNs.sessiondata.title = 'Nouvelle session';
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   273
        }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   274
        if (!gomNs.sessiondata.filters) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   275
            gomNs.sessiondata.filters = {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   276
                period : null,
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   277
                tag : [],
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   278
            }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   279
        }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   280
        if (!gomNs.sessiondata.liste) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   281
            gomNs.sessiondata.liste = [];
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   282
        }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   283
        if (!gomNs.sessiondata.annotations) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   284
            gomNs.sessiondata.annotations = {};
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   285
        }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   286
        $("#sessionname").html(gomNs.sessiondata.title + ( data.write_allowed ? '' : '<span class="lectseul"> (lecture seule)</span>' ) );
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   287
        gomNs.hrefinterval = setInterval(function() {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   288
            if (document.location.hash != gomNs.hash) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   289
                console.log("Changement de hash");
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   290
                clearInterval(gomNs.hrefinterval);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   291
                getInitialView();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   292
            }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   293
        }, 500);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   294
        updateFilters();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   295
    });
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   296
}
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   297
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   298
function changeSessionTitle(title) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   299
    gomNs.sessiondata.title = _.escape(title);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   300
    $("#sessionname").html(gomNs.sessiondata.title);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   301
    debouncedSaveChanges();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   302
}
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   303
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   304
var debouncedHideSlider = _.debounce(function() {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   305
    $("#dateslider").slideUp();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   306
}, 2000);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   307
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   308
$(document).ready(function() {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   309
    $("#dates li").each(function() {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   310
        $(this).css({
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   311
            "left" : parseInt(yearToPx(parseInt($(this).text()))) + "px"
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   312
        });
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   313
    });
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   314
    $("#affres").click(function() {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   315
        updateFilters();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   316
        return false;
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   317
    });
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   318
    $("#apartager").click(function() {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   319
        $("#partageurls").slideToggle();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   320
        return false;
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   321
    })
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   322
    $( "#dateslider" ).slider({
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   323
        range: true,
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   324
        min: 0,
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   325
        max: gomNs.tlPixels,
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   326
        values: [ 0, gomNs.tlPixels ],
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   327
        slide: function( event, ui ) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   328
            gomNs.sessiondata.filters.period = ui.values.map(function(_v) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   329
                return parseInt(pxToYear(_v));
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   330
            });
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   331
            updateFilters();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   332
            debouncedSaveChanges();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   333
            debouncedHideSlider();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   334
        }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   335
    }).hide();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   336
    var _defLab = $( "#tagsearch" ).val();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   337
    $( "#tagsearch" ).autocomplete({
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   338
        source: "tagsearch.php",
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   339
        minLength: 2,
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   340
        select: function( event, ui ) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   341
            tagInfo(ui.item.label);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   342
            $(this).val(_defLab);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   343
            return false;
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   344
        }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   345
    }).focusin(function() {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   346
        if ($(this).val() == _defLab) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   347
            $(this).val("");
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   348
        }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   349
    });
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   350
    $("#sessionname").click(function() {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   351
        if (gomNs.write_allowed && !$(this).children().length) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   352
            var _el = document.createElement('input');
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   353
            _el.value = gomNs.sessiondata.title;
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   354
            $(_el).focusout(function() {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   355
                changeSessionTitle(this.value);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   356
            }).keypress(function(e) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   357
                if (e.keyCode == 13) {
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   358
                    changeSessionTitle(this.value);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   359
                }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   360
            });
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   361
            $(this).html(_el);
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   362
            _el.focus();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   363
            _el.select();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   364
        }
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   365
    });
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   366
    getInitialView();
3371a40449c7 HDA Lab 1st commit
veltr
parents:
diff changeset
   367
});