summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRosandra Cuello <rosandra.cuello@gmail.com>2011-11-17 04:49:31 -0400
committerRosandra Cuello <rosandra.cuello@gmail.com>2011-11-17 04:49:31 -0400
commitc9c18692410dc993cc85aefeac4163e3e4557b6d (patch)
treebcfd69e70ce12045c9bdb1c492b0d42d483bc10f
parentf40ced58a388b945c255e637e9a63233e8715cd2 (diff)
downloadaskbot-c9c18692410dc993cc85aefeac4163e3e4557b6d.tar.gz
askbot-c9c18692410dc993cc85aefeac4163e3e4557b6d.tar.bz2
askbot-c9c18692410dc993cc85aefeac4163e3e4557b6d.zip
url structure changed, some url patterns still missing
-rw-r--r--askbot/skins/default/media/js/live_search.js21
-rw-r--r--askbot/skins/default/media/js/utils.js25
-rw-r--r--askbot/skins/default/templates/blocks/header.html2
-rw-r--r--askbot/skins/default/templates/blocks/input_bar.html6
-rw-r--r--askbot/skins/default/templates/blocks/paginator.html2
-rw-r--r--askbot/skins/default/templates/macros.html18
-rw-r--r--askbot/skins/default/templates/main_page/headline.html8
-rw-r--r--askbot/skins/default/templates/main_page/javascript.html18
-rw-r--r--askbot/skins/default/templates/main_page/nothing_found.html8
-rw-r--r--askbot/skins/default/templates/main_page/paginator.html2
-rw-r--r--askbot/skins/default/templates/question.html5
-rw-r--r--askbot/skins/default/templates/tags.html2
-rw-r--r--askbot/skins/default/templates/user_profile/user_stats.html3
-rw-r--r--askbot/skins/default/templates/user_profile/users_questions.html2
-rw-r--r--askbot/urls.py29
-rw-r--r--askbot/views/readers.py4
16 files changed, 109 insertions, 46 deletions
diff --git a/askbot/skins/default/media/js/live_search.js b/askbot/skins/default/media/js/live_search.js
index 392320a0..919722dd 100644
--- a/askbot/skins/default/media/js/live_search.js
+++ b/askbot/skins/default/media/js/live_search.js
@@ -373,8 +373,7 @@ var liveSearch = function(){
var remove_search_tag = function(tag_name){
$.ajax({
- url: askbot['urls']['questions'],
- data: {remove_tag: tag_name},
+ url: askbot['urls']['questions']+'remove_tag:'+escape(tag_name)+'/',
dataType: 'json',
success: render_result,
complete: try_again
@@ -444,7 +443,7 @@ var liveSearch = function(){
render_faces(data['faces']);
render_related_tags(data['related_tags'], data['query_string']);
render_relevance_sort_tab(data['query_string']);
- set_active_sort_tab(sortMethod, query_string);
+ set_active_sort_tab(sortMethod, data['query_string']);
query.focus();
//show new div with a fadeIn effect
@@ -465,7 +464,7 @@ var liveSearch = function(){
var post_data = {query: query_text};
$.ajax({
url: search_url,
- data: {query: query_text, sort: sort_method},
+ //data: {query: query_text, sort: sort_method},
dataType: 'json',
success: render_result,
complete: try_again
@@ -498,7 +497,7 @@ var liveSearch = function(){
query = $('input#keywords');
refresh_main_page();
},
- init: function(mode){
+ init: function(mode, query_string){
if (mode === 'main_page'){
//live search for the main page
query = $('input#keywords');
@@ -512,6 +511,18 @@ var liveSearch = function(){
sortMethod = 'relevance-desc';
}
}
+ params = query_string.split('/')
+ for (var i = 0; i < params.length; i++){
+ if (params[i] !== ''){
+ if (params[i].substring(0, 5) == "sort:"){ //change the sort method
+ search_url += 'sort:'+sortMethod+'/'
+ search_url += 'query:'+ cur_text.split(' ').join('+') + '/' //we add the query here
+ }
+ else{
+ search_url += params[i] + '/';
+ }
+ }
+ }
send_query(cur_text, sortMethod);
};
restart_query = function() {
diff --git a/askbot/skins/default/media/js/utils.js b/askbot/skins/default/media/js/utils.js
index c79d739f..764d6770 100644
--- a/askbot/skins/default/media/js/utils.js
+++ b/askbot/skins/default/media/js/utils.js
@@ -357,19 +357,30 @@ Tag.prototype.createDom = function(){
if (this.isLinkable()){
var url = askbot['urls']['questions'];
if (this._url_params !== null){
- params = this._url_params.split('&')
- tag_p = 'tags=' + escape(this.getName());
+ params = this._url_params.split('/')
for (var i = 0; i < params.length; i++){
- if (params[i] !== tag_p){
- url += params[i] + '&';
+ if (params[i] !== ''){
+ if (params[i].substring(0, 5) == "tags:"){
+ tags = params[i].substr(5).split('+');
+ new_tags = ''
+ for(var j = 0; j < tags.length; j++){
+ if(tags[j] !== this.getName()){
+ new_tags += tags[j] + '+';
+ }
+ }
+ new_tags += escape(this.getName())
+ url += 'tags:'+new_tags+'/'
+ }
+ else{
+ url += params[i] + '/';
+ }
}
}
- //url += params + '&';
}
else{
- url += '?'
+ url += 'tags:' + escape(this.getName()) + '/';
}
- url += 'tags=' + escape(this.getName());
+
this._inner_element.attr('href', url);
}
diff --git a/askbot/skins/default/templates/blocks/header.html b/askbot/skins/default/templates/blocks/header.html
index d7359007..f480d3c7 100644
--- a/askbot/skins/default/templates/blocks/header.html
+++ b/askbot/skins/default/templates/blocks/header.html
@@ -3,7 +3,7 @@
<div id="ab-header">
<div class="content-wrapper">
{% if settings.SHOW_LOGO %}
- <a id="ab-logo" href="{% url questions %}?start_over=true"><img
+ <a id="ab-logo" href="{% url questions %}start_over:true/"><img
src="{{ settings.SITE_LOGO_URL|media }}"
title="{% trans %}back to home page{% endtrans %}"
alt="{% trans site=settings.APP_SHORT_NAME %}{{site}} logo{% endtrans %}"/></a>
diff --git a/askbot/skins/default/templates/blocks/input_bar.html b/askbot/skins/default/templates/blocks/input_bar.html
index bed97eb4..58849ca5 100644
--- a/askbot/skins/default/templates/blocks/input_bar.html
+++ b/askbot/skins/default/templates/blocks/input_bar.html
@@ -8,7 +8,7 @@
{% elif active_tab == "users" %}
action="{% url users %}"
{% else %}
- action="{% url questions %}"
+ action="{% url questions %}" id="searchForm"
{% endif %}
method="get">
{# class was searchInput #}
@@ -28,10 +28,10 @@
value="x"
name="reset_query"
{# todo - make sure it works on Enter keypress #}
- onclick="window.location.href='{% url questions %}?reset_query=true'"
+ onclick="window.location.href='{% url questions %}reset_query:true/'"
class="cancelSearchBtn"/>
{% endif %}
- <input type="submit" value="{% trans %}search{% endtrans %}" name="search" class="searchBtn" />
+ <input type="submit" value="{% trans %}search{% endtrans %}" name="search" class="searchBtn" id='searchButton'/>
{% if active_tab == "tags" %}
<input type="hidden" name="t" value="tag"/>
{% else %}
diff --git a/askbot/skins/default/templates/blocks/paginator.html b/askbot/skins/default/templates/blocks/paginator.html
index 9782407f..cef84f12 100644
--- a/askbot/skins/default/templates/blocks/paginator.html
+++ b/askbot/skins/default/templates/blocks/paginator.html
@@ -1,4 +1,4 @@
<!-- paginator.html -->
{% import "macros.html" as macros %}
-{{ macros.paginator(paginator_context)}}
+{{ macros.paginator(paginator_context, active_tab = active_tab)}}
<!-- end paginator.html -->
diff --git a/askbot/skins/default/templates/macros.html b/askbot/skins/default/templates/macros.html
index 432e6c4c..fd1bcf57 100644
--- a/askbot/skins/default/templates/macros.html
+++ b/askbot/skins/default/templates/macros.html
@@ -136,17 +136,17 @@
</div>
{%- endmacro -%}
-{%- macro paginator(p, position='left') -%}{# p is paginator context dictionary #}
+{%- macro paginator(p, position='left', active_tab='') -%}{# p is paginator context dictionary #}
{% spaceless %}
{% if p.is_paginated %}
<div class="paginator" style="float:{{position}}">
{% if p.has_previous %}
- <span class="prev"><a href="{{p.base_url}}page={{ p.previous }}{{ p.extend_url }}" title="{% trans %}previous{% endtrans %}">
+ <span class="prev"><a href="{% if active_tab == "questions" %}{% url questions%}{% endif %}{{p.base_url}}page{% if active_tab == "questions" %}:{%else%}={%endif%}{{ p.previous }}/{{ p.extend_url }}" title="{% trans %}previous{% endtrans %}">
&laquo; {% trans %}previous{% endtrans %}</a></span>
{% endif %}
{% if not p.in_leading_range %}
{% for num in p.pages_outside_trailing_range %}
- <span class="page"><a href="{{p.base_url}}page={{ num }}{{ p.extend_url }}" >{{ num }}</a></span>
+ <span class="page"><a href="{% if active_tab == "questions" %}{% url questions%}{% endif %}{{p.base_url}}page{% if active_tab == "questions" %}:{%else%}={%endif%}{{ num }}/{{ p.extend_url }}" >{{ num }}</a></span>
{% endfor %}
...
{% endif %}
@@ -155,18 +155,18 @@
{% if num == p.page and p.pages != 1%}
<span class="curr" title="{% trans %}current page{% endtrans %}">{{ num }}</span>
{% else %}
- <span class="page"><a href="{{p.base_url}}page={{ num }}{{ p.extend_url }}" title="{% trans %}page number {{num}}{% endtrans %}">{{ num }}</a></span>
+ <span class="page"><a href="{% if active_tab == "questions" %}{% url questions%}{% endif %}{{p.base_url}}page{% if active_tab == "questions" %}:{%else%}={%endif%}{{ num }}/{{ p.extend_url }}" title="{% trans %}page number {{num}}{% endtrans %}">{{ num }}</a></span>
{% endif %}
{% endfor %}
{% if not p.in_trailing_range %}
...
{% for num in p.pages_outside_leading_range|reverse %}
- <span class="page"><a href="{{p.base_url}}page={{ num }}{{ p.extend_url }}" title="{% trans %}page number {{ num }}{% endtrans %}">{{ num }}</a></span>
+ <span class="page"><a href="{% if active_tab == "questions" %}{% url questions%}{% endif %}{{p.base_url}}page{% if active_tab == "questions" %}:{%else%}={%endif%}{{ num }}/{{ p.extend_url }}" title="{% trans %}page number {{ num }}{% endtrans %}">{{ num }}</a></span>
{% endfor %}
{% endif %}
{% if p.has_next %}
- <span class="next"><a href="{{p.base_url}}page={{ p.next }}{{ p.extend_url }}" title="{% trans %}next page{% endtrans %}">{% trans %}next page{% endtrans %} &raquo;</a></span>
+ <span class="next"><a href="{% if active_tab == "questions" %}{% url questions%}{% endif %}{{p.base_url}}page{% if active_tab == "questions" %}:{%else%}={%endif%}{{ p.next }}/{{ p.extend_url }}" title="{% trans %}next page{% endtrans %}">{% trans %}next page{% endtrans %} &raquo;</a></span>
{% endif %}
</div>
{% endif %}
@@ -181,19 +181,19 @@
{% if p.page_size == 10 %}
<span class="curr">10</span>
{% else %}
- <span class="page"><a href="{{p.base_url}}page_size=10">10</a></span>
+ <span class="page"><a href="{% url questions %}{{p.base_url}}page_size:10/">10</a></span>
{% endif %}
{% if p.page_size == 30 %}
<span class="curr">30</span>
{% else %}
- <span class="page"><a href="{{p.base_url}}page_size=30">30</a></span>
+ <span class="page"><a href="{% url questions %}{{p.base_url}}page_size:30/">30</a></span>
{% endif %}
{% if p.page_size == 50 %}
<span class="curr">50</span>
{% else %}
- <span class="page"><a href="{{p.base_url}}page_size=50">50</a></span>
+ <span class="page"><a href="{% url questions %}{{p.base_url}}page_size:50/">50</a></span>
{% endif %}
</div>
{% endif %}
diff --git a/askbot/skins/default/templates/main_page/headline.html b/askbot/skins/default/templates/main_page/headline.html
index 130a9bd9..4b92ba35 100644
--- a/askbot/skins/default/templates/main_page/headline.html
+++ b/askbot/skins/default/templates/main_page/headline.html
@@ -28,16 +28,16 @@
<p class="search-tips">{% trans %}Search tips:{% endtrans %}
{% if reset_method_count > 1 %}
{% if author_name %}
- <a href="{% url questions %}?reset_author=true">{% trans %}reset author{% endtrans %}</a>
+ <a href="{% url questions %}reset_author:true/">{% trans %}reset author{% endtrans %}</a>
{% endif %}
{% if search_tags %}{% if author_name and query %}, {% elif author_name %}{% trans %} or {% endtrans %}{% endif %}
- <a href="{% url questions %}?reset_tags=true">{% trans %}reset tags{% endtrans %}</a>
+ <a href="{% url questions %}reset_tags:true/">{% trans %}reset tags{% endtrans %}</a>
{% endif %}
{% if query %}{% trans %} or {% endtrans %}
- <a href="{% url questions %}?start_over=true">{% trans %}start over{% endtrans %}</a>
+ <a href="{% url questions %}start_over:true/">{% trans %}start over{% endtrans %}</a>
{% endif %}
{% else %}
- <a href="{% url questions %}?start_over=true">{% trans %}start over{% endtrans %}</a>
+ <a href="{% url questions %}start_over:true/">{% trans %}start over{% endtrans %}</a>
{% endif %}
{% trans %} - to expand, or dig in by adding more tags and revising the query.{% endtrans %}
</p>
diff --git a/askbot/skins/default/templates/main_page/javascript.html b/askbot/skins/default/templates/main_page/javascript.html
index deef318c..2232164e 100644
--- a/askbot/skins/default/templates/main_page/javascript.html
+++ b/askbot/skins/default/templates/main_page/javascript.html
@@ -5,7 +5,7 @@
$(document).ready(function(){
/*var on_tab = '#nav_questions';
$(on_tab).attr('className','on');*/
- liveSearch().init('main_page');
+ liveSearch().init('main_page', '{{query_string}}');
Hilite.exact = false;
Hilite.elementid = "question-list";
Hilite.debug_referrer = location.href;
@@ -43,3 +43,19 @@
<script type='text/javascript' src='{{"/js/tag_selector.js"|media}}'></script>
{% endif %}
<script type="text/javascript" src="{{"/js/live_search.js"|media}}"></script>
+{% if active_tab != "tags" and active_tab != "users" %}
+<script>
+$("form#searchForm").submit(function(event) {
+ event.preventDefault();
+ form_action = $("form#searchForm").attr('action')
+ query = $("input#keywords").attr('value').split(' ').join('+')
+ $("input#keywords").attr('value', '')
+ $("input#searchButton").attr('value', '')
+ form_action += 'section:{{parameters.scope}}/sort:{{parameters.sort}}/'
+ + 'query:' + query + '/search:search/'
+ + '{% if parameters.tags %}tags:{{parameters.tags}}/{% endif %}'
+ + '{% if parameters.author %}author:{{parameters.author}}/{% endif %}'
+ window.location.href = form_action;
+});
+</script>
+{% endif %}
diff --git a/askbot/skins/default/templates/main_page/nothing_found.html b/askbot/skins/default/templates/main_page/nothing_found.html
index 50f2f340..1f590709 100644
--- a/askbot/skins/default/templates/main_page/nothing_found.html
+++ b/askbot/skins/default/templates/main_page/nothing_found.html
@@ -13,16 +13,16 @@
{% trans %}You can expand your search by {% endtrans %}
{% if reset_method_count > 1 %}
{% if author_name %}
- <a href="{% url questions %}?reset_author=true">{% trans %}resetting author{% endtrans %}</a>
+ <a href="{% url questions %}reset_author:true/">{% trans %}resetting author{% endtrans %}</a>
{% endif %}
{% if search_tags %}{% if author_name and query %}, {% elif author_name %}{% trans %} or {% endtrans %}{% endif %}
- <a href="{% url questions %}?reset_tags=true">{% trans %}resetting tags{% endtrans %}</a>
+ <a href="{% url questions %}reset_tags:true/">{% trans %}resetting tags{% endtrans %}</a>
{% endif %}
{% if query %}{% trans %} or {% endtrans %}
- <a href="{% url questions %}?start_over=true">{% trans %}starting over{% endtrans %}</a>
+ <a href="{% url questions %}start_over:true/">{% trans %}starting over{% endtrans %}</a>
{% endif %}
{% else %}
- <a href="{% url questions %}?start_over=true">{% trans %}starting over{% endtrans %}</a>
+ <a href="{% url questions %}start_over:true/">{% trans %}starting over{% endtrans %}</a>
{% endif %}
</p>
{% endif %}
diff --git a/askbot/skins/default/templates/main_page/paginator.html b/askbot/skins/default/templates/main_page/paginator.html
index cf45cc0c..dd52e019 100644
--- a/askbot/skins/default/templates/main_page/paginator.html
+++ b/askbot/skins/default/templates/main_page/paginator.html
@@ -1,7 +1,7 @@
{% import "macros.html" as macros %}
{% if questions_count > page_size %}{# todo: remove magic number #}
<div id="pager" class="pager">
- {{ macros.paginator(context|setup_paginator, position='left') }}
+ {{ macros.paginator(context|setup_paginator, position='left', active_tab=active_tab) }}
{{ macros.pagesize_switch(context, position='right') }}
</div>
{% endif %}
diff --git a/askbot/skins/default/templates/question.html b/askbot/skins/default/templates/question.html
index 282b47b4..f46faa2f 100644
--- a/askbot/skins/default/templates/question.html
+++ b/askbot/skins/default/templates/question.html
@@ -68,7 +68,8 @@
{{ macros.tag_widget(
tag,
css_class = 'post-tag',
- html_tag = 'li'
+ html_tag = 'li',
+ url_params = 'start_over:true',
)
}}
{% endfor %}
@@ -443,7 +444,7 @@
{{ macros.tag_widget(
tag,
html_tag = 'div',
- url_params = 'start_over=true',
+ url_params = 'start_over:true',
extra_content = '<span class="tag-number">&#215; ' ~
tag.used_count|intcomma ~ '</span>'
)
diff --git a/askbot/skins/default/templates/tags.html b/askbot/skins/default/templates/tags.html
index 7d9026af..19383bb8 100644
--- a/askbot/skins/default/templates/tags.html
+++ b/askbot/skins/default/templates/tags.html
@@ -37,7 +37,7 @@
<li>
{{ macros.tag_widget(
tag = tag.name,
- url_params = 'start_over=true',
+ url_params = 'start_over:true',
html_tag = 'div',
extra_content = '<span class="tag-number">&#215; ' ~
tag.used_count|intcomma ~ '</span>'
diff --git a/askbot/skins/default/templates/user_profile/user_stats.html b/askbot/skins/default/templates/user_profile/user_stats.html
index d9002d30..6e882199 100644
--- a/askbot/skins/default/templates/user_profile/user_stats.html
+++ b/askbot/skins/default/templates/user_profile/user_stats.html
@@ -73,8 +73,7 @@
tag.name,
html_tag = 'div',
url_params =
- "author=" ~ view_user.id ~
- "&start_over=true",
+ "/start_over:true/author:" ~ view_user.id,
extra_content =
'<span class="tag-number">&#215; ' ~
tag.user_tag_usage_count|intcomma ~
diff --git a/askbot/skins/default/templates/user_profile/users_questions.html b/askbot/skins/default/templates/user_profile/users_questions.html
index 41809a62..fc7bda60 100644
--- a/askbot/skins/default/templates/user_profile/users_questions.html
+++ b/askbot/skins/default/templates/user_profile/users_questions.html
@@ -2,7 +2,7 @@
{% import "macros.html" as macros %}
<div class="user-stats-table">
{% for question in questions %}
- {{macros.question_summary(question, extra_class='narrow')}}
+ {{macros.question_summary(question, extra_class='narrow', query_string="start_over:true/")}}
{% endfor %}
</div>
<!-- end users_questions.html -->
diff --git a/askbot/urls.py b/askbot/urls.py
index 60a955f7..0cf36412 100644
--- a/askbot/urls.py
+++ b/askbot/urls.py
@@ -65,7 +65,7 @@ urlpatterns = patterns('',
name='answer_revisions'
),
url(#this url works both normally and through ajax
- r'^%s/section:(?P<scope>\w+)/sort:(?P<sort>[\w\-]+)/tags:(?P<tags>[\w\-\+]+)/$' % _('questions'),
+ r'^%s/section:(?P<scope>\w+)/sort:(?P<sort>[\w\-]+)/tags:(?P<tags>[\w\d\-\+\#]+)/$' % _('questions'),
views.readers.questions,
name='questions'
),
@@ -74,7 +74,32 @@ urlpatterns = patterns('',
views.readers.questions,
name='questions'
),
- url(#this url works both normally and through ajax
+ url(
+ r'^%s/remove_tag:(?P<remove_tag>[\w\d\-\#]+)/$' % _('questions'),
+ views.readers.questions,
+ name='questions'
+ ),
+ url(
+ r'^%s/reset_tags:(?P<reset_tags>\w+)/$' % _('questions'),
+ views.readers.questions,
+ name='questions'
+ ),
+ url(
+ r'^%s/reset_author:(?P<reset_author>\w+)/$' % _('questions'),
+ views.readers.questions,
+ name='questions'
+ ),
+ url(
+ r'^%s/reset_query:(?P<reset_query>\w+)/$' % _('questions'),
+ views.readers.questions,
+ name='questions'
+ ),
+ url(
+ r'^%s/start_over:(?P<start_over>\w+)/$' % _('questions'), #Nota: hay start over con mas parametros
+ views.readers.questions,
+ name='questions'
+ ),
+ url(
r'^%s$' % _('questions/'),
views.readers.questions,
name='questions'
diff --git a/askbot/views/readers.py b/askbot/views/readers.py
index c5a289ed..3163ce61 100644
--- a/askbot/views/readers.py
+++ b/askbot/views/readers.py
@@ -94,7 +94,7 @@ def questions(request, scope=const.DEFAULT_POST_SCOPE, sort=const.DEFAULT_POST_S
if start_over:
params_dict['start_over'] = start_over
if remove_tag:
- params_dict['remove_tag'] = remove_tag
+ params_dict['remove_tag'] = remove_tag.decode("utf8")
if page_size:
params_dict['page_size'] = page_size
@@ -151,7 +151,7 @@ def questions(request, scope=const.DEFAULT_POST_SCOPE, sort=const.DEFAULT_POST_S
'has_next': page.has_next(),
'previous': page.previous_page_number(),
'next': page.next_page_number(),
- 'base_url' : request.path + search_state.query_string() + '&',#todo in T sort=>sort_method
+ 'base_url' : search_state.query_string(),#todo in T sort=>sort_method
'page_size' : search_state.page_size,#todo in T pagesize -> page_size
'parameters': search_state.make_parameters(),
}