diff -r e48c2e503945 -r 1d4af6751f5b Resources/public/js/wikiTag.js --- a/Resources/public/js/wikiTag.js Fri Nov 18 17:42:18 2011 +0100 +++ b/Resources/public/js/wikiTag.js Thu Nov 24 13:04:01 2011 +0100 @@ -216,87 +216,97 @@ function wikitag_init_search_context_events() { - // We implement the behaviour on text select. Kolich is just an object name, it could be anything - if(!window.Kolich){ - Kolich = {}; - } - Kolich.Selector = {}; - Kolich.Selector.getSelected = function(){ - var t = ''; - if(window.getSelection){ - t = window.getSelection(); - }else if(document.getSelection){ - t = document.getSelection(); - }else if(document.selection){ - t = document.selection.createRange().text; - } - return t; - } - Kolich.Selector.mouseup = function(e){ - var st = Kolich.Selector.getSelected(); - if(st!=''){ - // Behaviour after the text was selected - $("#wikitag_context_div").offset({left:e.pageX+10,top:e.pageY}); - $("#wikitag_context_div").show(); - $("#wikitag_context_div #wikitag_wp_search_context").val(st); - $("#wikitag_context_div #wikitag_wp_search_context").autocomplete("search"); - } - } - $(document).ready(function(){ - for(c in reactive_selectors){ - $(reactive_selectors[c]).bind("mouseup", Kolich.Selector.mouseup); - } - }); - - // Function to close the context window - $("#wikitag_context_close").click(function(e){ - $("#wikitag_context_div #wikitag_wp_search_context").autocomplete("close"); - $("#wikitag_context_div").offset({left:0,top:0}); - $("#wikitag_context_div").hide(); - }); - - // Wikipedia search management (new tag) - $("#wikitag_wp_search_context").autocomplete({ - source: function( request, response ) { - $.ajax({ - url: "http://fr.wikipedia.org/w/api.php", - dataType: "jsonp", - data: { - action: "opensearch", - limit: "20", - namespace: "0", - format: "json", - search: request.term - }, - success: function( data ) { - response( $.map( data[1], function( item ) { - return { - label: item, - value: item - } - })); - } - }); - }, - select: function(event, ui) { - // Since the event still did not update wp_search's val, we force it. - $("#wikitag_wp_search_context").val(ui.item.label); - add_tag($("#wikitag_wp_search_context").val()); - $("#wikitag_context_close").click(); - }, - minLength: 2, - open: function() { - $( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" ); - }, - close: function() { - $( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" ); - } - }); - $('#wikitag_wp_search_context').keyup(function(e){ - if((e.keyCode==13) && ($("#wikitag_wp_search_context").val()!="")){ - add_tag($("#wikitag_wp_search_context").val()); - } - }); + // We implement the behaviour on text select. Kolich is just an object name, it could be anything + if(!window.Kolich){ + Kolich = {}; + } + Kolich.Selector = {}; + Kolich.Selector.getSelected = function(){ + var t = ''; + if(window.getSelection){ + t = window.getSelection(); + }else if(document.getSelection){ + t = document.getSelection(); + }else if(document.selection){ + t = document.selection.createRange().text; + } + return t; + } + Kolich.Selector.mouseup = function(e){ + var st = Kolich.Selector.getSelected(); + if(st!=''){ + // Behaviour after the text was selected + $("#wikitag_context_div").offset({left:e.pageX+10,top:e.pageY}); + $("#wikitag_context_div").show(); + $("#wikitag_context_div #wikitag_wp_search_context").val(st); + $("#wikitag_context_div #wikitag_wp_search_context").autocomplete("search"); + } + } + $(document).ready(function(){ + for(c in reactive_selectors){ + $(reactive_selectors[c]).bind("mouseup", Kolich.Selector.mouseup); + } + }); + + // Function to close the context window + $("#wikitag_context_close").click(function(e){ + $("#wikitag_context_div #wikitag_wp_search_context").autocomplete("close"); + $("#wikitag_context_div").offset({left:0,top:0}); + $("#wikitag_context_div").hide(); + }); + + // Wikipedia search management (new tag) + $("#wikitag_wp_search_context").autocomplete({ + source: function( request, response ) { + $.ajax({ + url: "http://fr.wikipedia.org/w/api.php", + dataType: "jsonp", + data: { + action: "query", + limit: "20", + list: "search", + format: "json", + srsearch: request.term + }, + success: function( data ) { + response( $.map( data["query"]["search"], function( item ) { + console.log(item); + return { + label: item["title"], + snippet: item["snippet"], + value: item["title"] + } + })); + } + }); + }, + select: function(event, ui) { + // Since the event still did not update wp_search's val, we force it. + $("#wikitag_wp_search_context").val(ui.item.label); + add_tag($("#wikitag_wp_search_context").val()); + $("#wikitag_context_close").click(); + }, + minLength: 2, + open: function() { + $( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" ); + // We force width to something not too large + $( this ).autocomplete("widget").addClass("wikitag_context_result"); + }, + close: function() { + $( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" ); + } + }); + $("#wikitag_wp_search_context").data("autocomplete")._renderItem = function( ul, item ) { + return $( "
  • " ) + .data( "item.autocomplete", item ) + .append( ''+ item.label + ' : ' + item.snippet + '' ) + .appendTo( ul ); + }; + $('#wikitag_wp_search_context').keyup(function(e){ + if((e.keyCode==13) && ($("#wikitag_wp_search_context").val()!="")){ + add_tag($("#wikitag_wp_search_context").val()); + } + }); } function wikitag_update_tag(btn)