diff options
-rw-r--r-- | askbot/search/state_manager.py | 12 | ||||
-rw-r--r-- | askbot/skins/common/media/js/live_search.js | 7 | ||||
-rw-r--r-- | askbot/skins/default/templates/widgets/ask_button.html | 2 | ||||
-rw-r--r-- | askbot/views/readers.py | 3 |
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, |