X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/c4fa700661c2b69ae02eb282b25bb11d5ebc30f4..aa9d250fc29ad29a9b7863a6253e906c772df914:/forum/skins/default/media/js/osqa.ask.js diff --git a/forum/skins/default/media/js/osqa.ask.js b/forum/skins/default/media/js/osqa.ask.js index a649997..a2b6e55 100644 --- a/forum/skins/default/media/js/osqa.ask.js +++ b/forum/skins/default/media/js/osqa.ask.js @@ -1,10 +1,13 @@ var currentSideBar = 'div#title_side_bar'; function changeSideBar(enabled_bar) { - $(currentSideBar).hide(); - currentSideBar = enabled_bar; - $(currentSideBar).fadeIn('slow'); + if (enabled_bar != currentSideBar) { + $(currentSideBar).hide(); + currentSideBar = enabled_bar; + $(currentSideBar).fadeIn('slow'); + } } + $(function () { $('div#editor_side_bar').hide(); $('div#tags_side_bar').hide(); @@ -18,30 +21,40 @@ $(function() { var $input = $('#id_title'); var $box = $('#ask-related-questions'); var template = $('#question-summary-template').html(); + var $editor = $('#editor'); var results_cache = {}; function reload_suggestions_box(e) { - var q = $input.val().trim(); + var relatedQuestionsDiv = $('#ask-related-questions'); + var q = $input.val().replace(/^\s+|\s+$/g,""); - if (q.length == 0) { - $('#ask-related-questions').html(''); + if(q.length == 0) { + close_suggestions_box(); + relatedQuestionsDiv.html(''); return false; + } else if(relatedQuestionsDiv[0].style.height == 0 || relatedQuestionsDiv[0].style.height == '0px') { + relatedQuestionsDiv.animate({'height':'150'}, 350); } if (results_cache[q] && results_cache[q] != '') { - $('#ask-related-questions').html(results_cache[q]); + relatedQuestionsDiv.html(results_cache[q]); return false; } $.post(related_questions_url, {title: q}, function(data) { if (data) { - var c = $input.val().trim(); + var c = $input.val().replace(/^\s+|\s+$/g,""); if (c != q) { return; } + if(data.length == 0) { + relatedQuestionsDiv.html('

No questions like this have been found.
'); + return; + } + var html = ''; for (var i = 0; i < data.length; i++) { var item = template.replace(new RegExp('%URL%', 'g'), data[i].url) @@ -55,12 +68,37 @@ $(function() { results_cache[q] = html; - $('#ask-related-questions').html(html); + relatedQuestionsDiv.html(html); } }, 'json'); return false; } + function close_suggestions_box() { + $('#ask-related-questions').animate({'height':'0'},350, function() { + $('#ask-related-questions').html(''); + }); + } + $input.keyup(reload_suggestions_box); + $input.focus(reload_suggestions_box); + + $editor.change(function() { + if ($editor.html().length > 10) { + close_suggestions_box(); + } + }); + + + + // for chrome + $input.keydown(focus_on_question); + function focus_on_question(e) { + var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; + + if(e.keyCode == 9 && is_chrome) { + $('#editor')[0].focus(); + } + } }); \ No newline at end of file