summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2011-02-15 02:54:04 -0500
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2011-02-15 02:54:04 -0500
commit2e1ed7ddab5b6f0b58dc1c338d70ae53af0e5886 (patch)
tree4d937f95ceaf8d4863ec15e149c593e11b2918a6
parent65c0dd3ead293602d2b709b9640c88fcb714ba8d (diff)
downloadaskbot-2e1ed7ddab5b6f0b58dc1c338d70ae53af0e5886.tar.gz
askbot-2e1ed7ddab5b6f0b58dc1c338d70ae53af0e5886.tar.bz2
askbot-2e1ed7ddab5b6f0b58dc1c338d70ae53af0e5886.zip
added support for fancy tags
-rw-r--r--askbot/skins/default/media/js/live_search.js4
-rw-r--r--askbot/skins/default/media/js/post.js11
-rw-r--r--askbot/skins/default/media/js/tag_selector.js3
-rw-r--r--askbot/skins/default/templates/blocks/tag_selector.html39
-rw-r--r--askbot/skins/default/templates/macros.html55
-rw-r--r--askbot/skins/default/templates/main_page/headline.html5
-rw-r--r--askbot/skins/default/templates/main_page/sidebar.html5
-rw-r--r--askbot/skins/default/templates/tags.html7
-rw-r--r--askbot/skins/default/templates/user_profile/user_stats.html12
9 files changed, 103 insertions, 38 deletions
diff --git a/askbot/skins/default/media/js/live_search.js b/askbot/skins/default/media/js/live_search.js
index 47965b61..23da046b 100644
--- a/askbot/skins/default/media/js/live_search.js
+++ b/askbot/skins/default/media/js/live_search.js
@@ -199,14 +199,14 @@ $(document).ready(function(){
tag_url = ' href="' + url + '" ';
}
html = '<' + tag_element +
- ' class="tag" ' +
+ ' class="tag tag-right" ' +
tag_url +
' title="' + tag_title + '" rel="tag"' +
'>' + tag_name + '</' + tag_element + '>';
if (deletable){
html += '<span class="delete-icon"></span>';
}
- return html;
+ return '<span class="tag-left">' + html + '</span>';
};
var render_tags = function(tags, linkable, deletable){
diff --git a/askbot/skins/default/media/js/post.js b/askbot/skins/default/media/js/post.js
index 1f05efbf..f49720a6 100644
--- a/askbot/skins/default/media/js/post.js
+++ b/askbot/skins/default/media/js/post.js
@@ -634,10 +634,13 @@ var questionRetagger = function(){
'{tag}',
tag_name
);
- return '<a ' +
- 'href="' + url + '" ' +
- 'title="' + tag_title + '" rel="tag"' +
- '>' + tag_name + '</a>';
+ return '<span class="tag-left">' +
+ '<a ' +
+ 'class="tag tag-right" ' +
+ 'href="' + url + '" ' +
+ 'title="' + tag_title + '" rel="tag"' +
+ '>' + tag_name + '</a>' +
+ '</span>';
};
var drawNewTags = function(new_tags){
diff --git a/askbot/skins/default/media/js/tag_selector.js b/askbot/skins/default/media/js/tag_selector.js
index f896141c..857e67b6 100644
--- a/askbot/skins/default/media/js/tag_selector.js
+++ b/askbot/skins/default/media/js/tag_selector.js
@@ -62,7 +62,10 @@ function pickedTags(){
$.each(clean_tagnames, function(idx, tagname){
var new_tag = $('<span></span>');
new_tag.addClass('deletable-tag');
+ new_tag.addClass('tag-left');
var tag_link = $('<a></a>');
+ tag_link.addClass('tag-right');
+ tag_link.addClass('tag')
tag_link.attr('rel','tag');
var tag_url = askbot['urls']['questions'] + '?tags=' + tagname;
tag_link.attr('href', tag_url);
diff --git a/askbot/skins/default/templates/blocks/tag_selector.html b/askbot/skins/default/templates/blocks/tag_selector.html
index 52c21e6a..8270f5ea 100644
--- a/askbot/skins/default/templates/blocks/tag_selector.html
+++ b/askbot/skins/default/templates/blocks/tag_selector.html
@@ -1,17 +1,21 @@
{# todo - maybe disable navigation from ignored tags here when "hide" is on - with js? #}
+{% import "macros.html" as macros %}
<div id="tagSelector" class="boxC">
<h2>{% trans %}Interesting tags{% endtrans %}</h2>
<div class="tags interesting marked-tags">
{% for tag_name in interesting_tag_names %}
{% spaceless %}
- <span class="deletable-tag" id="interesting-tag-{{tag_name}}">
- <a rel="tag"
- title="{% trans %}see questions tagged '{{ tag_name }}'{% endtrans %}"
- href="{% url questions %}?tags={{tag_name|urlencode}}">{{tag_name}}</a>
- <img class="delete-icon"
- src="{{'/images/close-small-dark.png'|media}}"
- title="{% trans %}remove '{{tag_name}}' from the list of interesting tags{% endtrans %}"/>
- </span>
+ {{
+ macros.tag_widget(
+ tag_name,
+ id = "interesting-tag-" ~ tag_name,
+ deletable = True,
+ delete_link_title = _(
+ "remove '%(tag_name)s' from the list of interesting tags"|
+ format(tag_name = tag_name)
+ )
+ )
+ }}
{% endspaceless %}
{% endfor %}
</div>
@@ -21,14 +25,17 @@
<div class="tags ignored marked-tags">
{% for tag_name in ignored_tag_names %}
{% spaceless %}
- <span class="deletable-tag" id="ignored-tag-{{tag_name}}">
- <a rel="tag"
- title="{% trans %}see questions tagged '{{ tag_name }}'{% endtrans %}"
- href="{% url questions %}?tags={{tag_name|urlencode}}">{{tag_name}}</a>
- <img class="delete-icon"
- src="{{'/images/close-small-dark.png'|media}}"
- title="{% trans %}remove '{{tag_name}}' from the list of ignored tags{% endtrans %}"/>
- </span>
+ {{
+ macros.tag_widget(
+ tag_name,
+ id = "interesting-tag-" ~ tag_name,
+ deletable = True,
+ delete_link_title = gettext(
+ "remove '%(tag_name)s' from the list of ignored tags"|
+ format(tag_name = tag_name)
+ )
+ )
+ }}
{% endspaceless %}
{% endfor %}
</div>
diff --git a/askbot/skins/default/templates/macros.html b/askbot/skins/default/templates/macros.html
index abd4a87d..486d058c 100644
--- a/askbot/skins/default/templates/macros.html
+++ b/askbot/skins/default/templates/macros.html
@@ -46,7 +46,17 @@
{%- macro user_country_flag(user) -%}
{% if user.country and user.show_country %}
- <img class="flag" src="{{ ('/images/flags/' ~ user.country.code|lower ~ '.gif')|media }}"/>
+ <img class="flag"
+ src="{{ ('/images/flags/' ~ user.country.code|lower ~ '.gif')|media }}"
+ alt="{% trans
+ country=user.country.name
+ %}flag of {{country}}{%
+ endtrans %}"
+ title="{% trans
+ country=user.country.name,
+ person=user.username %}{{person}} is from {{country}}{%
+ endtrans %}"
+ />
{% endif %}
{%- endmacro -%}
@@ -239,6 +249,47 @@ poor design of the data or methods on data objects #}
{% endif %}
{%- endmacro -%}
+{%- macro if_else(condition, if_true, if_false) -%}
+ {%- if condition == True -%}
+ {{if_true}}
+ {%- else -%}
+ {{if_false}}
+ {%- endif -%}
+{%- endmacro -%}
+
+{%- macro tag_widget(
+ tag,
+ id = None,
+ deletable = False,
+ is_link = True,
+ delete_link_title = None,
+ url_params = None
+ ) %}
+ <span
+ {% if id %}id="{{ id }}"{% endif %}
+ class="tag-left{% if deletable %} deletable-tag{% endif %}"
+ >
+ <{{ if_else(is_link, 'a', 'span') }}
+ class="tag tag-right"
+ href="{% url questions %}?tags={{tag|urlencode}}{{
+ if_else(
+ url_params != None,
+ '&' ~ url_params,
+ ''
+ )|escape
+ }}"
+ title="{% trans %}see questions tagged '{{ tag }}'{% endtrans %}" rel="tag">{{ tag }}</{{ if_else(is_link, 'a', 'span') }}>
+ {% if deletable %}
+ <img class="delete-icon"
+ src="{{'/images/close-small-dark.png'|media}}"
+ {% if delete_link_title %}
+ title="{{ delete_link_title }}"
+ {% endif %}
+ />
+ {% endif %}
+ </span>
+{%- endmacro -%}
+
{%- macro question_summary(question, extra_class=None) -%}
<div class="short-summary{% if extra_class %} {{extra_class}}{% endif %}">
<div class="counts">
@@ -296,7 +347,7 @@ poor design of the data or methods on data objects #}
{% spaceless %}
<div class="tags">
{% for tag in question.get_tag_names() %}
- <a class="tag" href="{% url questions %}?tags={{tag|urlencode}}" title="{% trans %}see questions tagged '{{ tag }}'{% endtrans %}" rel="tag">{{ tag }}</a>
+ {{ tag_widget(tag) }}
{% endfor %}
</div>
{% endspaceless %}
diff --git a/askbot/skins/default/templates/main_page/headline.html b/askbot/skins/default/templates/main_page/headline.html
index ec6944d6..4e47f217 100644
--- a/askbot/skins/default/templates/main_page/headline.html
+++ b/askbot/skins/default/templates/main_page/headline.html
@@ -1,3 +1,4 @@
+{% import "macros.html" as macros %}
{% if questions_count > 0 %}
<div style="clear:both">
<p class="rss">
@@ -20,8 +21,10 @@
<div id="search-tags" class="tags">
{% if search_tags %}
{% for tag in search_tags %}
- <span class="tag">{{tag}}</span>
+ <span class="tag-left">
+ <span class="tag tag-right">{{tag}}</span>
<span class="delete-icon"></span>
+ </span>
{% endfor %}
{% endif %}
</div>
diff --git a/askbot/skins/default/templates/main_page/sidebar.html b/askbot/skins/default/templates/main_page/sidebar.html
index 5ea9af4f..baedb25d 100644
--- a/askbot/skins/default/templates/main_page/sidebar.html
+++ b/askbot/skins/default/templates/main_page/sidebar.html
@@ -22,10 +22,7 @@
<h2>{% trans %}Related tags{% endtrans %}</h2>
<div id="related-tags" class="tags">
{% for tag in tags %}
- <a
- rel="tag"
- title="{% trans tag_name=tag.name %}see questions tagged '{{ tag_name }}'{% endtrans %}"
- href="{% url questions %}?tags={{tag.name|urlencode}}">{{ tag.name }}</a>
+ {{ macros.tag_widget(tag.name) }}
<span class="tag-number">&#215; {{ tag.local_used_count|intcomma }}</span>
<br />
{% endfor %}
diff --git a/askbot/skins/default/templates/tags.html b/askbot/skins/default/templates/tags.html
index 1142315d..267da771 100644
--- a/askbot/skins/default/templates/tags.html
+++ b/askbot/skins/default/templates/tags.html
@@ -33,10 +33,7 @@
<ul class="tagsList tags">
{% for tag in tags.object_list %}
<li>
- <a href="{% url questions %}?tags={{tag|urlencode}}&start_over=true"
- title="{% trans %}see questions tagged '{{ tag }}'{% endtrans %}" rel="tag">
- {{ tag }}
- </a>&nbsp;
+ {{ macros.tag_widget(tag.name, url_params = 'start_over=true') }}&nbsp;
<span class="tag-number">&#215; {{ tag.used_count|intcomma }}</span>
<br/>
</li>
@@ -45,7 +42,7 @@
{% endif %}
<div class="pager">
{{macros.paginator(paginator_context)}}
-</div>
+</div>
{% endblock %}
{% block endjs %}
<script type="text/javascript">
diff --git a/askbot/skins/default/templates/user_profile/user_stats.html b/askbot/skins/default/templates/user_profile/user_stats.html
index 40ed0703..677fc69e 100644
--- a/askbot/skins/default/templates/user_profile/user_stats.html
+++ b/askbot/skins/default/templates/user_profile/user_stats.html
@@ -1,4 +1,5 @@
{% extends "user_profile/user.html" %}
+{% import "macros.html" as macros %}
<!-- user_stats.html -->
{% block profilesection %}
{% trans %}overview{% endtrans %}
@@ -66,10 +67,13 @@
<tr>
<td width="180" valign="top">
{% for tag in user_tags %}
- <a rel="tag"
- title="{% trans tag_name=tag.name %}see other questions with {{view_user}}'s contributions tagged '{{ tag_name }}' {% endtrans %}"
- href="{% url questions %}?tags={{tag|urlencode}}&amp;author={{view_user.id}}&amp;start_over=true">{{tag.name}}</a>
- <span class="tag-number">&#215; {{ tag.user_tag_usage_count|intcomma }}</span><br/>
+ {{ macros.tag_widget(
+ tag.name,
+ url_params = "author=" ~ view_user.id ~
+ "&start_over=true"
+ )
+ }}
+ <span class="tag-number">&#215; {{ tag.user_tag_usage_count|intcomma }}</span><br/>
{% if loop.index is divisibleby 10 %}
</td>
<td width="180" valign="top">