diff -r 3371a40449c7 -r 6455b65fa3b7 hdalab/js/gomina.js --- a/hdalab/js/gomina.js Tue Jan 10 18:25:08 2012 +0100 +++ b/hdalab/js/gomina.js Fri Jan 13 17:03:49 2012 +0100 @@ -63,10 +63,13 @@ }); $.getJSON("filter.php", _urlParam, updateDisplay); if (gomNs.sessiondata.period || gomNs.sessiondata.filters.tag.length != 1 || gomNs.sessiondata.filters.tag[0] != _taglabel) { - $("#bandefiltre").attr("class", "inactif"); + $("#bandefiltre").addClass("inactif"); + $("#showsearch").removeClass("actif"); } else { - $("#bandefiltre").attr("class", ""); + $("#bandefiltre").removeClass("inactif"); + $("#showsearch").addClass("actif"); } + $("#showlist").removeClass("actif"); } function filterTag(_tagLabel) { @@ -91,16 +94,45 @@ function getUpdates() { var _params = {}; if (gomNs.sessiondata.filters.period) { - _params.period = gomNs.sessiondata.filters.period.join('|'); + _params.period = gomNs.sessiondata.filters.period.join(','); } if (gomNs.sessiondata.filters.tag.length) { - _params.label = gomNs.sessiondata.filters.tag.join('|'); + _params.label = gomNs.sessiondata.filters.tag.join(','); } $.getJSON("filter.php", _params, updateDisplay); } var debouncedGetUpdates = _.debounce(getUpdates, 200); +function updatePeriod(_n, _val) { + var _int = parseInt(_val); + if (_int != NaN) { + gomNs.sessiondata.filters.period[_n] = _int; + updateFilters(); + debouncedSaveChanges(); + debouncedHideSlider(); + } +} + +function changeSpan(_this) { + if (!$(_this).children().length) { + var _el = document.createElement('input'), + _n = _this.id.split('_')[1]; + _el.value = gomNs.sessiondata.filters.period[_n]; + _el.style.width = $(_this).width() + 'px'; + $(_el).focusout(function() { + updatePeriod(_n, this.value); + }).keypress(function(e) { + if (e.keyCode == 13) { + updatePeriod(_n, this.value); + } + }); + $(_this).html(_el); + _el.focus(); + _el.select(); + } +} + function updateFilters() { var _htmFilters = '', _fl = gomNs.sessiondata.filters.tag.length; @@ -117,7 +149,13 @@ }).join(""); } if (gomNs.sessiondata.filters.period) { - _htmFilters += '
  • ' + gomNs.sessiondata.filters.period.join('-') + '[x]
  • ' + _htmFilters += '
  • ' + + gomNs.sessiondata.filters.period[0] + + '-' + + gomNs.sessiondata.filters.period[1] + + '[x]
  • '; + $("#dateslider").slider("values",0,yearToPx(gomNs.sessiondata.filters.period[0])) + .slider("values",1,yearToPx(gomNs.sessiondata.filters.period[1])); } else { _htmFilters += '
  • Filtrer par période
  • '; } @@ -151,15 +189,37 @@ + '">' - + '

    Ajouter à ma liste

    ' + + ( gomNs.write_allowed + ? '

    ' + + ( gomNs.sessiondata.liste.indexOf(_d.id) == -1 ? 'Ajouter à ma liste' : 'Retirer de ma liste' ) + + '

    ' + : '' ) + ''; }).join('') + ''; $("#contents").html(_htmlCl).scrollTop(0); + $("a.addremlist").click(function() { + var _id = $(this).attr("contentid"), + _io = gomNs.sessiondata.liste.indexOf(_id); + if ( _io == -1) { + gomNs.sessiondata.liste.push(_id); + $(this).html('Retirer de ma liste'); + } else { + gomNs.sessiondata.liste.splice(_io, 1); + $(this).html('Ajouter à ma liste'); + } + if (gomNs.sessiondata.view == 1) { + showView(); + } + debouncedSaveChanges(); + return false; + }) $("div.content-annotation").click(function() { if (gomNs.write_allowed && this.children[0].tagName == 'UL') { var _el = document.createElement('textarea'), - _id = this.attributes.contentid.nodeValue; + _id = $(this).attr("contentid"); _el.innerHTML = (gomNs.sessiondata.annotations[_id] && gomNs.sessiondata.annotations[_id].texte) ? gomNs.sessiondata.annotations[_id].texte : ''; $(_el).focusout(function() { var _id = this.parentNode.attributes.contentid.nodeValue; @@ -228,6 +288,21 @@ $("#tagcloud").html("

    Pas de mots-clés trouvés

    "); } displayContents(data.contents); + if (gomNs.countries && data.countries) { + var _max = Math.max(1, _(data.countries).max(function(_c) { return _c.score}).score); + _(data.countries).each(function(_c) { + var _cc = gomNs.countries[_c.isocode]; + if (_cc) { + var _r = parseInt(255 * _c.score / _max), + _b = parseInt( (255 - _r)/2) ; + _(_cc.gPolygons).each(function(_p) { + _p.setOptions({ + "fillColor" : "rgb(" + _r + ",0," + _b + ")", + }) + } ); + } + }); + } } function saveChanges() { @@ -242,6 +317,33 @@ var debouncedSaveChanges = _.debounce(saveChanges, 1000); +function changeView(nview) { + gomNs.sessiondata.view = nview; + debouncedSaveChanges(); + showView(); +} + +function showView() { + $("#showsearch, #showlist").removeClass("actif"); + switch(gomNs.sessiondata.view) { + case 1: + if (gomNs.sessiondata.liste && gomNs.sessiondata.liste.length) { + $("#showlist").addClass("actif"); + $("#bandefiltre").hide(); + $.getJSON("filter.php", { + contentlist: gomNs.sessiondata.liste.join(',') + }, updateDisplay); + break; + } else { + alert("La liste de contenus est vide ! Ajoutez des contenus pour afficher la liste !"); + } + default: + $("#showsearch").addClass("actif"); + $("#bandefiltre").show(); + updateFilters(); + } +} + function getInitialView() { var _urlParam = {}; if (document.location.hash) { @@ -271,6 +373,10 @@ if (!gomNs.sessiondata.title) { gomNs.sessiondata.title = 'Nouvelle session'; } + if (!gomNs.sessiondata.view) { + gomNs.sessiondata.view = 0; + // 0 pour les résultats de recherche, 1 pour la liste + } if (!gomNs.sessiondata.filters) { gomNs.sessiondata.filters = { period : null, @@ -291,7 +397,7 @@ getInitialView(); } }, 500); - updateFilters(); + showView(); }); } @@ -306,17 +412,22 @@ }, 2000); $(document).ready(function() { + gomNs.map = new google.maps.Map(document.getElementById("map"), + { + center: new google.maps.LatLng(30, 0), + zoom: 1, + mapTypeId: google.maps.MapTypeId.SATELLITE + }); + $.getJSON('lib/countries.geo.json', showCountries); $("#dates li").each(function() { $(this).css({ "left" : parseInt(yearToPx(parseInt($(this).text()))) + "px" }); }); - $("#affres").click(function() { - updateFilters(); - return false; - }); $("#apartager").click(function() { - $("#partageurls").slideToggle(); + var _pu = $("#partageurls"); + $(this).attr("class",_pu.is(":visible") ? "" : "actif"); + _pu.slideToggle(); return false; }) $( "#dateslider" ).slider({ @@ -363,5 +474,13 @@ _el.select(); } }); + $("#showlist").click(function() { + changeView(1); + return false; + }); + $("#affres, #showsearch").click(function() { + changeView(0); + return false; + }); getInitialView(); });