summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--askbot/search/state_manager.py12
-rw-r--r--askbot/skins/common/media/js/live_search.js7
-rw-r--r--askbot/skins/default/templates/widgets/ask_button.html2
-rw-r--r--askbot/views/readers.py3
4 files changed, 21 insertions, 3 deletions
diff --git a/askbot/search/state_manager.py b/askbot/search/state_manager.py
index d1641b49..840901d3 100644
--- a/askbot/search/state_manager.py
+++ b/askbot/search/state_manager.py
@@ -3,7 +3,7 @@ import re
import copy
from django.core import urlresolvers
-from django.utils.http import urlquote
+from django.utils.http import urlquote, urlencode
import askbot
import askbot.conf
@@ -133,6 +133,16 @@ class SearchState(object):
def full_url(self):
return urlresolvers.reverse('questions') + self.query_string()
+ def ask_query_string(self): # TODO: test me
+ """returns string to prepopulate title field on the "Ask your question" page"""
+ ask_title = self.stripped_query or self.query or ''
+ if not ask_title:
+ return ''
+ return '?' + urlencode({'title': ask_title})
+
+ def full_ask_url(self):
+ return urlresolvers.reverse('ask') + self.ask_query_string()
+
#
# Safe characters in urlquote() according to http://www.ietf.org/rfc/rfc1738.txt:
#
diff --git a/askbot/skins/common/media/js/live_search.js b/askbot/skins/common/media/js/live_search.js
index 8fdb0b43..b6adba83 100644
--- a/askbot/skins/common/media/js/live_search.js
+++ b/askbot/skins/common/media/js/live_search.js
@@ -196,6 +196,7 @@ var liveSearch = function(query_string) {
$("#ContentLeft a.rss:first").attr("href", data['feed_url']);
}
+ // Patch scope selectors
$('#scopeWrapper > a.scope-selector').each(function(index) {
var old_qs = $(this).attr('href').replace(search_url, '');
var scope = QSutils.get_query_string_selector_value(old_qs, 'scope');
@@ -203,6 +204,12 @@ var liveSearch = function(query_string) {
$(this).attr('href', search_url + qs);
});
+ // Patch "Ask your question"
+ var askButton = $('#askButton');
+ var askHrefBase = askButton.attr('href').split('?')[0];
+ askButton.attr('href', askHrefBase + data['query_data']['ask_query_string']); /* INFO: ask_query_string should already be URL-encoded! */
+
+
query.focus();
var old_list = $('#' + q_list_sel);
diff --git a/askbot/skins/default/templates/widgets/ask_button.html b/askbot/skins/default/templates/widgets/ask_button.html
index 8240f0f4..c6cba37d 100644
--- a/askbot/skins/default/templates/widgets/ask_button.html
+++ b/askbot/skins/default/templates/widgets/ask_button.html
@@ -1,3 +1,3 @@
{% if active_tab != "ask" %}
- <a id="askButton" href="{% url ask %}">{% trans %}ask a question{% endtrans %}</a>
+ <a id="askButton" href="{{ search_state.full_ask_url() }}">{% trans %}ask a question{% endtrans %}</a>
{% endif %}
diff --git a/askbot/views/readers.py b/askbot/views/readers.py
index 538d8ad2..b227c0d5 100644
--- a/askbot/views/readers.py
+++ b/askbot/views/readers.py
@@ -151,7 +151,8 @@ def questions(request, **kwargs):
ajax_data = {
'query_data': {
'tags': search_state.tags,
- 'sort_order': search_state.sort
+ 'sort_order': search_state.sort,
+ 'ask_query_string': search_state.ask_query_string(),
},
'paginator': paginator_html,
'question_counter': question_counter,