--- a/Resources/public/js/wikiTag.js Wed Nov 09 16:25:13 2011 +0100
+++ b/Resources/public/js/wikiTag.js Wed Nov 09 17:33:26 2011 +0100
@@ -214,6 +214,89 @@
});
}
+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(){
+ $(document).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());
+ }
+ });
+}
+
function wikitag_update_tag(btn)
{
new_checked = false;