# HG changeset patch # User veltr # Date 1381501861 -7200 # Node ID 8ff19e5d2d70461baa1b90b1d71d928303a6414f # Parent 85dd4590e014e89b4e673f5ba16fb9393dcea0c1 navigation fixes diff -r 85dd4590e014 -r 8ff19e5d2d70 src/jocondelab/static/jocondelab/css/front-common.css --- a/src/jocondelab/static/jocondelab/css/front-common.css Thu Oct 10 15:03:55 2013 +0200 +++ b/src/jocondelab/static/jocondelab/css/front-common.css Fri Oct 11 16:31:01 2013 +0200 @@ -78,7 +78,7 @@ text-decoration: underline; color: #800000; } -b { +b, .bold { font-weight: 800; } diff -r 85dd4590e014 -r 8ff19e5d2d70 src/jocondelab/static/jocondelab/css/front-notice.css --- a/src/jocondelab/static/jocondelab/css/front-notice.css Thu Oct 10 15:03:55 2013 +0200 +++ b/src/jocondelab/static/jocondelab/css/front-notice.css Fri Oct 11 16:31:01 2013 +0200 @@ -180,11 +180,15 @@ text-align: right; margin: 5px 0; } -.button-links a { +.back-button { + display: inline-block; margin: 5px 0; +} + +.button-links a, .back-button { color: #ffffff; font-size: 14px; font-weight: bold; padding: 4px 6px; background: #202060; border-radius: 6px; } -.button-links a:hover { - background: #404080; +.button-links a:hover, .back-button:hover { + background: #404080; color: #cccccc; } diff -r 85dd4590e014 -r 8ff19e5d2d70 src/jocondelab/static/jocondelab/js/front-common.js --- a/src/jocondelab/static/jocondelab/js/front-common.js Thu Oct 10 15:03:55 2013 +0200 +++ b/src/jocondelab/static/jocondelab/js/front-common.js Fri Oct 11 16:31:01 2013 +0200 @@ -418,8 +418,12 @@ return; } var $datablock = $(".notice-list"), - winbottom = $win.scrollTop() + $win.height(), - databottom = $datablock.offset().top + $datablock.height(); + dbo = $datablock.offset(); + if (!dbo) { + return; + } + var winbottom = $win.scrollTop() + $win.height(), + databottom = dbo.top + $datablock.height(); if (winbottom >= databottom) { loadingnext = true; $(".loading-please-wait").show(); @@ -457,6 +461,7 @@ $(".loading-please-wait").hide(); scrollLoad(query); resizeWikiInfo(); + $("html,body").animate({scrollTop:$(".results").offset().top}, 500); } }); }; diff -r 85dd4590e014 -r 8ff19e5d2d70 src/jocondelab/static/jocondelab/js/front-geo.js --- a/src/jocondelab/static/jocondelab/js/front-geo.js Thu Oct 10 15:03:55 2013 +0200 +++ b/src/jocondelab/static/jocondelab/js/front-geo.js Fri Oct 11 16:31:01 2013 +0200 @@ -53,35 +53,36 @@ showData(); } - function selectFeature(feature) { + function selectFeature(dbpedia_uri, blockHistory) { _(coordCache).each(function(coord) { - coord.isCurrent = false; - if (coord.marker) { - coord.marker.setIcon(defaultIcon); + if (coord.dbpedia_uri === dbpedia_uri) { + coord.isCurrent = true; + coord.marker.setIcon(orangeIcon); + map.setView([coord.latitude, coord.longitude], Math.max(Math.min(12,map.getZoom() + 1),6)); + showCoord(coord); + } else { + coord.isCurrent = false; + if (coord.marker) { + coord.marker.setIcon(defaultIcon); + } } }); _(countries).each(function(c) { - if (c.layer) { - c.layer.setStyle({weight: 1, color: "#000080", opacity: .3}); + if (c.dbpedia_uri === dbpedia_uri) { + c.layer.setStyle({weight: 5, color: "#c00000", opacity: .8}); + map.fitBounds(c.bounds); + } else { + if (c.layer) { + c.layer.setStyle({weight: 1, color: "#000080", opacity: .3}); + } } }); - loadSearchResults({ dbpedia_uri: feature.dbpedia_uri }); + loadSearchResults({ dbpedia_uri: dbpedia_uri }); + if (!blockHistory) { + window.history.pushState("","","#"+encodeURIComponent(dbpedia_uri)); + } } - - function selectMarker(coord) { - showCoord(coord); - selectFeature(coord); - coord.isCurrent = true; - coord.marker.setIcon(orangeIcon); - map.setView([coord.latitude, coord.longitude], Math.max(Math.min(12,map.getZoom() + 1),6)); - } - - function selectCountry(country) { - selectFeature(country); - country.layer.setStyle({weight: 5, color: "#c00000", opacity: .8}); - map.fitBounds(country.bounds); - } - + function showDbpedia(feature) { clearCountryTimeout(); if (!feature) { @@ -200,7 +201,7 @@ f.dbCountry.bounds = l.getBounds(); f.dbCountry.latlng = f.dbCountry.bounds.getCenter(); f.dbCountry.layer = l; - l.on("click", function() { selectCountry(f.dbCountry); }); + l.on("click", function() { selectFeature(f.dbCountry.dbpedia_uri); }); l.on("mouseover", function() { if (!mapDragging && f.dbCountry !== currentCountry) { showDbpedia(f.dbCountry); @@ -225,13 +226,39 @@ }); gjs.addTo(map); - + $.getJSON(urls.countries_geo_json, function(data) { gjs.addData(data); }); - var debouncedGetData = _.debounce(getData,500); + $(window).on("popstate", function() { + var h = document.location.hash.replace(/^#/,''); + if (/https?:\/\//.test(h)) { + selectFeature(h, true); + } else { + _(coordCache).each(function(coord) { + coord.isCurrent = false; + if (coord.marker) { + coord.marker.setIcon(defaultIcon); + } + }); + _(countries).each(function(c) { + if (c.layer) { + c.layer.setStyle({weight: 1, color: "#000080", opacity: .3}); + } + }); + $(".results").empty(); + map.setView([20, 0],2); + } + }); + + var h = document.location.hash.replace(/^#/,''); + if (/https?:\/\//.test(h)) { + loadSearchResults({dbpedia_uri: h}); + } + var debouncedGetData = _.debounce(getData,1000); + debouncedGetData(); map.on("movestart", function() { @@ -243,7 +270,7 @@ }); oms.addListener("click", function(marker) { if (marker.coord) { - selectMarker(marker.coord); + selectFeature(marker.coord.dbpedia_uri); } }); oms.addListener('spiderfy', function(markers) { @@ -277,10 +304,8 @@ } else { var feature = _(coordCache).find(function(c) { return c.dbpedia_uri === coord.dbpedia_uri; }); } - selectMarker(feature); - } else { - selectCountry(countries[countryindex]); } + selectFeature(coord.dbpedia_uri); blockUnsticking = true; window.setTimeout(function() { blockUnsticking = false;}, 0); } diff -r 85dd4590e014 -r 8ff19e5d2d70 src/jocondelab/static/jocondelab/js/front-notice.js --- a/src/jocondelab/static/jocondelab/js/front-notice.js Thu Oct 10 15:03:55 2013 +0200 +++ b/src/jocondelab/static/jocondelab/js/front-notice.js Fri Oct 11 16:31:01 2013 +0200 @@ -153,7 +153,7 @@ var o = $curitem.offset(); $overlay.css({ top: o.top + $curitem.outerHeight(), - left: o.left - $overlay.outerWidth(true), + left: o.left + $curitem.outerWidth(true) / 2, }).show().attr("data-dbpedia-uri", termdata.dbpedia_uri); if (termdata.thumbnail) { $overlayImg.attr("src",termdata.thumbnail).show(); @@ -220,8 +220,12 @@ }); return false; }); - - $ncf.autocomplete({ + $.widget( "custom.halfwidthautocomplete", $.ui.autocomplete, { + _resizeMenu: function() { + this.menu.element.outerWidth(this.element.outerWidth()/2); + } + }); + $ncf.halfwidthautocomplete({ source: function( request, response ) { if (labelsCache[request.term]) { response(labelsCache[request.term]); @@ -291,5 +295,10 @@ }); return false; }); + + $(".back-button").click(function() { + window.history.back(); + return false; + }); }); diff -r 85dd4590e014 -r 8ff19e5d2d70 src/jocondelab/static/jocondelab/js/front-termlist.js --- a/src/jocondelab/static/jocondelab/js/front-termlist.js Thu Oct 10 15:03:55 2013 +0200 +++ b/src/jocondelab/static/jocondelab/js/front-termlist.js Fri Oct 11 16:31:01 2013 +0200 @@ -1,31 +1,3 @@ -$(function() { - - var $tt = $(".term-tab"), - $tc = $(".term-contents"); - - function loadUrl(url) { - $tc.empty().append($(".loading-please-wait").clone().show()); - $.ajax({ - url: url, - dataType: "html", - success: function(html) { - $tc.html(html); - $tc.find(".term-filter a").click(function() { - loadUrl($(this).attr("href")); - return false; - }); - dbpediaBox.bind($tc.find(".terms h3")); - } - }); - } - - $tt.click(function() { - var $this = $(this); - $tt.removeClass("active"); - $this.addClass("active"); - loadUrl($this.find("a").attr("href")); - return false; - }); - - dbpediaBox.bind(".term-cloud a"); +$(function() { + dbpediaBox.bind(".term-cloud a, .terms h3"); }); diff -r 85dd4590e014 -r 8ff19e5d2d70 src/jocondelab/static/jocondelab/js/front-timeline.js --- a/src/jocondelab/static/jocondelab/js/front-timeline.js Thu Oct 10 15:03:55 2013 +0200 +++ b/src/jocondelab/static/jocondelab/js/front-timeline.js Fri Oct 11 16:31:01 2013 +0200 @@ -131,6 +131,14 @@ function updateZoomFactor() { zoomFactor = Math.pow(2, zoomLevel/2); } + function updateSlider() { + startSlide = boundValue(userStartSlide); + endSlide = boundValue(userEndSlide); + var startPos = yrToSliderPos(startSlide), + endPos = yrToSliderPos(endSlide); + $slider.slider("values",[Math.min(startPos, endPos),Math.max(startPos, endPos)]); + updateSpans(); + } function updateCoords() { /* Let's first check if the timeline width has been changed */ cWidth = $tlcontainer.width(); @@ -156,12 +164,7 @@ wLineDist = lineDistances[i]; } /* If the slider range is larger than the window, we constrain it to the window */ - startSlide = boundValue(userStartSlide); - endSlide = boundValue(userEndSlide); - var startPos = yrToSliderPos(startSlide), - endPos = yrToSliderPos(endSlide); - $slider.slider("values",[Math.min(startPos, endPos),Math.max(startPos, endPos)]); - updateSpans(); + updateSlider(); } var itemTpl = _.template( @@ -259,7 +262,7 @@ currentTerm = $this.attr("data-dbpedia-uri"); $(".timeline-item-box").removeClass("timeline-current"); $this.addClass("timeline-current"); - loadSearchResults({ dbpedia_uri: currentTerm }); + loadSearchWithState({ dbpedia_uri: currentTerm }); }); $(".timeline-span-from").text(Math.round(fromYear) || 1); $(".timeline-span-to").text(Math.round(toYear)); @@ -301,6 +304,23 @@ } ); } + + function loadSearchWithState(data) { + window.history.pushState(data, "", "#" + $.param(data)); + loadSearchResults(data); + } + function loadFromState(data) { + loadSearchResults(data); + if (data.dbpedia_uri) { + $(".timeline-item-box").removeClass("timeline-current"); + $(".timeline-item-box[data-dbpedia-uri='" + data.dbpedia_uri + "']").addClass("timeline-current"); + } + if (typeof data.from_year !== "undefined" && typeof data.to_year !== "undefined") { + userStartSlide = parseInt(data.from_year); + userEndSlide = parseInt(data.to_year); + updateSlider(); + } + } var throttledRedraw = _.throttle(function() { updateCoords(); @@ -430,7 +450,7 @@ }); $(".timeline-mill-submit").click(function() { - loadSearchResults({ from_year: startSlide, to_year: endSlide, show_years: 1 }); + loadSearchWithState({ from_year: startSlide, to_year: endSlide, show_years: 1 }); }); updateZoomFactor(); @@ -438,5 +458,33 @@ getData(); $(window).resize(throttledRedraw); + + var hash = document.location.hash.replace(/^#/,'') + if (hash) { + var paramtables = hash.split('&'), + firstState = {}; + _(paramtables).each(function(p) { + var t = p.split('='); + firstState[t[0]] = t[1]; + }); + loadFromState(firstState); + } else { + var firstState = null; + } + + $(window).on("popstate", function(e) { + var state = e.originalEvent.state || firstState; + if (state) { + loadFromState(state); + } else { + $(".timeline-item-box").removeClass("timeline-current"); + $(".results").empty(); + var $body = $("html,body"), + headoff = $("header").offset().top; + if ($body.scrollTop() > headoff) { + $("html,body").animate({scrollTop:headoff}, 500); + } + } + }); }); diff -r 85dd4590e014 -r 8ff19e5d2d70 src/jocondelab/templates/jocondelab/front_notice.html --- a/src/jocondelab/templates/jocondelab/front_notice.html Thu Oct 10 15:03:55 2013 +0200 +++ b/src/jocondelab/templates/jocondelab/front_notice.html Fri Oct 11 16:31:01 2013 +0200 @@ -37,6 +37,7 @@ {% block main %}
+ Retour {% block datasheet %} {% if object.autr %} @@ -68,7 +69,7 @@ {% if object.deno or object.appl %} - + {% endif %} {% if object.repr %} diff -r 85dd4590e014 -r 8ff19e5d2d70 src/jocondelab/templates/jocondelab/front_search.html --- a/src/jocondelab/templates/jocondelab/front_search.html Thu Oct 10 15:03:55 2013 +0200 +++ b/src/jocondelab/templates/jocondelab/front_search.html Fri Oct 11 16:31:01 2013 +0200 @@ -28,7 +28,7 @@
{% include 'jocondelab/partial/wrapped_notice_list.html' %}
-
+
{% trans 'Chargement en cours' %}

{% trans 'Afficher plus de résultats' %}

{% endblock %} diff -r 85dd4590e014 -r 8ff19e5d2d70 src/jocondelab/templates/jocondelab/front_termlist.html --- a/src/jocondelab/templates/jocondelab/front_termlist.html Thu Oct 10 15:03:55 2013 +0200 +++ b/src/jocondelab/templates/jocondelab/front_termlist.html Fri Oct 11 16:31:01 2013 +0200 @@ -36,7 +36,41 @@
- {% include "jocondelab/partial/termlist_contents.html" %} + {% if thesaurus %} +

+ {% trans "Termes les plus fréquents" %} +

+ {% if show_alphabet %} +
    + {% for letter in alphabet %} +
  • {{letter}}
  • + {% endfor %} +
+ {% else %} +

+ {% trans "Classer par ordre alphabétique" %} +

+ {% endif %} +
    + {% for term in terms %} +
  • +
    + +
    +

    {{term.label}}

    + {% if term.abstract %}

    {{term.abstract|truncatechars:100}}

    {% endif %} +
  • + {% endfor %} +
+ {% else %} + + {% endif %}
diff -r 85dd4590e014 -r 8ff19e5d2d70 src/jocondelab/templates/jocondelab/partial/datasheet_row.html --- a/src/jocondelab/templates/jocondelab/partial/datasheet_row.html Thu Oct 10 15:03:55 2013 +0200 +++ b/src/jocondelab/templates/jocondelab/partial/datasheet_row.html Fri Oct 11 16:31:01 2013 +0200 @@ -1,7 +1,7 @@ {% load i18n %} {% if linked_terms %} - +

+ {% trans 'Titre :' %} {{notice.title}}

+ + {% endif %} + {% if notice.designation %} + +

+ {% trans 'Désignation :' %} {{notice.designation}} +

+
{% trans 'Désignation :' %}{% show_datasheet_row 'APPL' %}{% show_datasheet_row 'DENO' %}{% show_datasheet_row 'DENO' isbold=True %}{% show_datasheet_row 'APPL' %}