Improve wikipedia dialog. Work with redirect.
--- a/src/jocondelab/static/jocondelab/js/jocondelab.js Fri Jun 28 16:12:24 2013 +0200
+++ b/src/jocondelab/static/jocondelab/js/jocondelab.js Fri Jun 28 18:16:13 2013 +0200
@@ -1,4 +1,48 @@
// -*- coding: utf-8 -*-
+function fill_wp_infobox(item) {
+
+ var wp_infobox = $("#wp-infobox");
+ if(wp_infobox.length === 0) {
+ wp_infobox = $("<div>",{id: 'wp-infobox'}).addClass( "ui-widget-content ui-corner-all").appendTo('body');
+ }
+
+ var html_str = "<h3>"+item.label+"</h3>" +
+ (item.original_label !== item.label ? "<h4>" + gettext("Redirected from: ") + item.original_label+"</h4>":"") +
+ "<div class='wp-infobox-wp-link'>" +
+ "<a target='_blank' href='"+ item.url +"'>Source wikipedia</a>" +
+ "</div>" +
+ "<img class='wp-img' src=\""+ item.thumbnail+"\"/>" +
+ "<div>" + item.abstract + "</div>" ;
+
+
+ wp_infobox
+ .html(html_str)
+ .position({my: "left top", at:"right+5 top", of: $(".ui-autocomplete")})
+ .css("z-index", $(".ui-autocomplete").css("z-index"))
+ .show();
+}
+
+function get_dp_sparql(resource_url) {
+ return "select distinct ?s ?t ?y ?l ?r where { " +
+ "<"+resource_url+"> rdfs:label ?s . " +
+ "OPTIONAL { <"+resource_url+"> dbpedia-owl:thumbnail ?t } . " +
+ "OPTIONAL { <"+resource_url+"> dbpedia-owl:abstract ?y . FILTER(langMatches(lang(?y), \"fr\")) } . "+
+ "OPTIONAL { <"+resource_url+"> foaf:isPrimaryTopicOf ?l } " +
+ "OPTIONAL { <"+resource_url+"> dbpedia-owl:wikiPageRedirects ?r } " +
+ "} LIMIT 100"
+}
+
+function get_dp_ajax(resource_url) {
+ return $.ajax({
+ url: "http://fr.dbpedia.org/sparql",
+ data: {
+ query: get_dp_sparql(resource_url),
+ format: "application/sparql-results+json"
+ },
+ dataType: "json"
+ })
+}
+
function init_term_events()
{
// Tag simple operations : activate/unactivate wp link, remove wp link
@@ -73,39 +117,29 @@
},
focus: function(event,ui) {
- var wp_infobox = $("#wp-infobox");
- if(wp_infobox.length === 0) {
- wp_infobox = $("<div>",{id: 'wp-infobox'}).addClass( "ui-widget-content ui-corner-all").appendTo('body');
- }
var page_name = ui.item.label.replace(/ /g, "_");
var resource_url = "http://fr.dbpedia.org/resource/" + page_name;
- $.ajax({
- url: "http://fr.dbpedia.org/sparql",
- data: {
- query: "select distinct ?t ?y ?l where { OPTIONAL { <"+resource_url+"> dbpedia-owl:thumbnail ?t} . OPTIONAL { <"+resource_url+"> dbpedia-owl:abstract ?y . FILTER(langMatches(lang(?y), \"fr\")) } . OPTIONAL { <"+resource_url+"> foaf:isPrimaryTopicOf ?l } } LIMIT 100",
- format: "application/sparql-results+json"
- },
- dataType: "json",
- success: function(data) {
- res = data.results.bindings.length>0?data.results.bindings[0]:{y:"",l:"http://fr.wikipedia.org/"+page_name,t:""};
- var item = {
- abstract: res.y?res.y.value:"",
- url: res.l?res.l.value:"",
- thumbnail: res.t?res.t.value:""
- };
- var html_str = "<h3>"+ui.item.label+"</h3>" +
- "<div class='wp-infobox-wp-link'>" +
- "<a target='_blank' href='"+ item.url +"'>Source wikipedia</a>" +
- "</div>" +
- "<img class='wp-img' src=\""+ item.thumbnail+"\"/>" +
- "<div>" + item.abstract + "</div>" ;
-
- wp_infobox
- .html(html_str)
- .position({my: "left top", at:"right+5 top", of: $(".ui-autocomplete")})
- .css("z-index", $(".ui-autocomplete").css("z-index"))
- .show();
- }
+ var request = get_dp_ajax(resource_url),
+ chained = request.then(function(data) {
+ res = data.results.bindings.length>0?data.results.bindings[0]:{y:"",l:"http://fr.wikipedia.org/"+page_name,t:"", r:""};
+ if(res.r) {
+ return get_dp_ajax(res.r.value);
+ }
+ else {
+ return data;
+ }
+ });
+
+ chained.done(function(data) {
+ res = data.results.bindings.length>0?data.results.bindings[0]:{s:ui.item.label, y:"",l:"http://fr.wikipedia.org/"+page_name,t:"", r:""};
+ var item = {
+ label : res.s?res.s.value:ui.item.label,
+ original_label : ui.item.label,
+ abstract: res.y?res.y.value:"",
+ url: res.l?res.l.value:"",
+ thumbnail: res.t?res.t.value:""
+ };
+ fill_wp_infobox(item);
});
}
})
--- a/src/jocondelab/templates/jocondelab/term_edit.html Fri Jun 28 16:12:24 2013 +0200
+++ b/src/jocondelab/templates/jocondelab/term_edit.html Fri Jun 28 18:16:13 2013 +0200
@@ -160,9 +160,9 @@
</span>
<span>
{% if term.validated %}
- <span><input type="text" name="wp_search" id="wp_search" size="35" disabled="disabled" /> <span id="ok_search_disabled" class="hand_cursor_disabled"><b>OK</b></span></span>
+ <span><input type="text" name="wp_search" id="wp_search" size="30" disabled="disabled" /> <span id="ok_search_disabled" class="hand_cursor_disabled"><b>OK</b></span></span>
{% else %}
- <span><input type="text" name="wp_search" id="wp_search" size="35" /> <span id="ok_search" class="hand_cursor"><b>OK</b></span></span>
+ <span><input type="text" name="wp_search" id="wp_search" size="30" /> <span id="ok_search" class="hand_cursor"><b>OK</b></span></span>
{% endif %}
</span>
</td>