--- 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 += '<li class="filperiod">' + gomNs.sessiondata.filters.period.join('-') + '<a href="#" class="remfil" onclick="removePeriod(); return false;">[x]</a></li>'
+ _htmFilters += '<li class="filperiod" onclick="$(\'#dateslider\').show(); debouncedHideSlider();"><span class="spyr" id="sp_0" onclick="changeSpan(this);">'
+ + gomNs.sessiondata.filters.period[0]
+ + '</span>-<span class="spyr" id="sp_1" onclick="changeSpan(this);">'
+ + gomNs.sessiondata.filters.period[1]
+ + '</span><a href="#" class="remfil" onclick="removePeriod(); return false;">[x]</a></li>';
+ $("#dateslider").slider("values",0,yearToPx(gomNs.sessiondata.filters.period[0]))
+ .slider("values",1,yearToPx(gomNs.sessiondata.filters.period[1]));
} else {
_htmFilters += '<li><a href="#" onclick="$(\'#dateslider\').show(); debouncedHideSlider(); return false;">Filtrer par période</a></li>';
}
@@ -151,15 +189,37 @@
+ '"><ul><li>'
+ (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...')
+ '</li></ul></div>'
- + '<p><a href="#" class="addtolist" >Ajouter à ma liste</a></p>'
+ + ( gomNs.write_allowed
+ ? '<p><a href="#" class="addremlist" contentid="'
+ + _d.id
+ + '">'
+ + ( gomNs.sessiondata.liste.indexOf(_d.id) == -1 ? 'Ajouter à ma liste' : 'Retirer de ma liste' )
+ + '</a></p>'
+ : '' )
+ '</li>';
}).join('')
+ '</ul>';
$("#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("<h4>Pas de mots-clés trouvés</h4>");
}
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();
});