diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2011-02-15 02:54:04 -0500 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2011-02-15 02:54:04 -0500 |
commit | 2e1ed7ddab5b6f0b58dc1c338d70ae53af0e5886 (patch) | |
tree | 4d937f95ceaf8d4863ec15e149c593e11b2918a6 | |
parent | 65c0dd3ead293602d2b709b9640c88fcb714ba8d (diff) | |
download | askbot-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.js | 4 | ||||
-rw-r--r-- | askbot/skins/default/media/js/post.js | 11 | ||||
-rw-r--r-- | askbot/skins/default/media/js/tag_selector.js | 3 | ||||
-rw-r--r-- | askbot/skins/default/templates/blocks/tag_selector.html | 39 | ||||
-rw-r--r-- | askbot/skins/default/templates/macros.html | 55 | ||||
-rw-r--r-- | askbot/skins/default/templates/main_page/headline.html | 5 | ||||
-rw-r--r-- | askbot/skins/default/templates/main_page/sidebar.html | 5 | ||||
-rw-r--r-- | askbot/skins/default/templates/tags.html | 7 | ||||
-rw-r--r-- | askbot/skins/default/templates/user_profile/user_stats.html | 12 |
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">× {{ 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> + {{ macros.tag_widget(tag.name, url_params = 'start_over=true') }} <span class="tag-number">× {{ 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}}&author={{view_user.id}}&start_over=true">{{tag.name}}</a> - <span class="tag-number">× {{ 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">× {{ tag.user_tag_usage_count|intcomma }}</span><br/> {% if loop.index is divisibleby 10 %} </td> <td width="180" valign="top"> |