summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2013-03-23 18:53:31 -0400
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2013-03-23 18:53:31 -0400
commit2d45c27d7abcdc9fe91d87adf3a1f62ab41420f0 (patch)
tree1f24c98c5f293c695c4146c0d91f4e982ffd9922
parentab0e57d06ba77fabad2424dabb0b1028abf0b28f (diff)
downloadaskbot-2d45c27d7abcdc9fe91d87adf3a1f62ab41420f0.tar.gz
askbot-2d45c27d7abcdc9fe91d87adf3a1f62ab41420f0.tar.bz2
askbot-2d45c27d7abcdc9fe91d87adf3a1f62ab41420f0.zip
better compress support on the main and question pages
-rw-r--r--askbot/media/js/post.js4
-rw-r--r--askbot/media/js/utils.js13
-rw-r--r--askbot/media/js/wmd/showdown.js2
-rw-r--r--askbot/startup_procedures.py9
-rw-r--r--askbot/templates/base.html6
-rw-r--r--askbot/templates/main_page/javascript.html9
-rw-r--r--askbot/templates/meta/bottom_scripts.html75
-rw-r--r--askbot/templates/meta/editor_data.html14
-rw-r--r--askbot/templates/meta/html_head_javascript.html21
-rw-r--r--askbot/templates/meta/html_head_stylesheets.html21
-rw-r--r--askbot/templates/question.html37
-rw-r--r--askbot/templates/question/javascript.html69
-rw-r--r--askbot/templatetags/extra_filters_jinja.py6
13 files changed, 157 insertions, 129 deletions
diff --git a/askbot/media/js/post.js b/askbot/media/js/post.js
index 94e230a2..6a583166 100644
--- a/askbot/media/js/post.js
+++ b/askbot/media/js/post.js
@@ -1006,7 +1006,7 @@ var Vote = function(){
questionId = qId;
questionSlug = qSlug;
questionAuthorId = questionAuthor;
- currentUserId = userId;
+ currentUserId = '' + userId;//convert to string
bindEvents();
},
@@ -1840,7 +1840,7 @@ Comment.prototype.getElement = function(){
Comment.superClass_.getElement.call(this);
if (this.isBlank() && this.hasContent()){
this.setContent();
- if (enableMathJax === true){
+ if (askbot['settings']['mathjaxEnabled'] === true){
MathJax.Hub.Queue(['Typeset', MathJax.Hub]);
}
}
diff --git a/askbot/media/js/utils.js b/askbot/media/js/utils.js
index 304caa8b..21fb9467 100644
--- a/askbot/media/js/utils.js
+++ b/askbot/media/js/utils.js
@@ -1,4 +1,3 @@
-//var $, scriptUrl, askbotSkin
/**
* attention - this function needs to be retired
* as it cannot accurately give url to the media file
@@ -65,6 +64,18 @@ var joinAsPhrase = function(values) {
}
};
+/**
+ * @return {boolean}
+ */
+var inArray = function(item, itemsList) {
+ for (var i = 0; i < itemsList.length; i++) {
+ if (item === itemsList[i]) {
+ return true;
+ }
+ }
+ return false;
+};
+
var showMessage = function(element, msg, where) {
var div = $('<div class="vote-notification"><h3>' + msg + '</h3>(' +
gettext('click to close') + ')</div>');
diff --git a/askbot/media/js/wmd/showdown.js b/askbot/media/js/wmd/showdown.js
index 257b8bd1..25872e48 100644
--- a/askbot/media/js/wmd/showdown.js
+++ b/askbot/media/js/wmd/showdown.js
@@ -155,7 +155,7 @@ var makeHtmlBase = function(text) {
}
this.makeHtml = function(text){
- if (enableMathJax === false){
+ if (askbot['settings']['mathjaxEnabled'] === false){
return makeHtmlBase(text);
}
else {
diff --git a/askbot/startup_procedures.py b/askbot/startup_procedures.py
index 53162421..7b1aa709 100644
--- a/askbot/startup_procedures.py
+++ b/askbot/startup_procedures.py
@@ -124,7 +124,7 @@ def test_jinja2():
"Please add to the JINJA2_EXTENSIONS list an item:\n"
"'%s'," % compressor_ext
)
-
+
print_errors(errors)
@@ -326,6 +326,13 @@ def test_compressor():
"('%s', '%s')," % lessc_item
)
+ js_filters = getattr(django_settings, 'COMPRESS_JS_FILTERS', [])
+ if len(js_filters) > 0:
+ errors.append(
+ 'Askbot does not yet support js minification, please add to your settings.py:\n'
+ 'COMPRESS_JS_FILTERS = []'
+ )
+
if 'compressor' not in django_settings.INSTALLED_APPS:
errors.append(
'add to the INSTALLED_APPS the following entry:\n'
diff --git a/askbot/templates/base.html b/askbot/templates/base.html
index 1e4c5bec..80230b26 100644
--- a/askbot/templates/base.html
+++ b/askbot/templates/base.html
@@ -19,14 +19,12 @@
title="{% trans site_title=settings.APP_SHORT_NAME %}RSS feed from {{ site_title }}{% endtrans %}"
href="{{ settings.APP_URL }}{% url "latest_questions_feed" %}"
/>
- {% compress css %}
{% block before_css %}{% endblock %}
{% include "meta/html_head_stylesheets.html" %}
- {% endcompress %}
{% include "meta/fonts.html" %} {# may contain external files #}
- {% compress css %}{% block forestyle %}{% endblock %}{% endcompress %}
+ {% block forestyle %}{% endblock %}
{% include "meta/html_head_javascript.html" %}
- {% compress js %}{% block forejs %}{% endblock %}{% endcompress %}
+ {% block forejs %}{% endblock %}
{% if settings.USE_CUSTOM_HTML_HEAD %}
{{ settings.CUSTOM_HTML_HEAD }}
{% endif %}
diff --git a/askbot/templates/main_page/javascript.html b/askbot/templates/main_page/javascript.html
index 55b31d00..dc6bdc94 100644
--- a/askbot/templates/main_page/javascript.html
+++ b/askbot/templates/main_page/javascript.html
@@ -1,6 +1,10 @@
<script type="text/javascript">
+ {# cant cache this #}
+ askbot['settings']['showSortByRelevance'] = {{ show_sort_by_relevance|as_js_bool }};
+</script>
+{% compress js %}
+<script type="text/javascript">
/*<![CDATA[*/
- askbot['settings']['showSortByRelevance'] = {% if show_sort_by_relevance %}true{% else %}false{% endif %};
$(document).ready(function(){
/*var on_tab = '#nav_questions';
$(on_tab).attr('className','on');*/
@@ -40,6 +44,5 @@
/*]]>*/
</script>
<script type='text/javascript' src='{{"/js/editor.js"|media}}'></script>
-{% if request.user.is_authenticated() %}
<script type='text/javascript' src='{{"/js/tag_selector.js"|media}}'></script>
-{% endif %}
+{% endcompress %}
diff --git a/askbot/templates/meta/bottom_scripts.html b/askbot/templates/meta/bottom_scripts.html
index 1a910672..805974cc 100644
--- a/askbot/templates/meta/bottom_scripts.html
+++ b/askbot/templates/meta/bottom_scripts.html
@@ -13,11 +13,8 @@
noscript.style.backgroundColor = 'transparent';
</script>
</div>
+{# this section cannot be compressed because lots of data is runtime #}
<script type="text/javascript">
- var i18nLang = '{{ language_code }}';
- var scriptUrl = '/{{settings.ASKBOT_URL}}'
- var askbotSkin = '{{settings.ASKBOT_DEFAULT_SKIN}}';
- var enableMathJax = {% if settings.ENABLE_MATHJAX %}true{% else %}false{% endif %};
askbot['urls']['mark_read_message'] = '{% url "read_message" %}';
askbot['urls']['get_tags_by_wildcard'] = '{% url "get_tags_by_wildcard" %}';
askbot['urls']['get_tag_list'] = '{% url "get_tag_list" %}';
@@ -28,24 +25,29 @@
askbot['urls']['titleSearch'] = '{% url "title_search" %}';
askbot['urls']['ask'] = '{% url "ask" %}';
askbot['urls']['questions'] = '{% url "questions" %}';
+ askbot['settings']['groupsEnabled'] = {{ settings.GROUPS_ENABLED|as_js_bool }};
askbot['settings']['static_url'] = '{{ settings.STATIC_URL }}';
askbot['settings']['minSearchWordLength'] = {{ settings.MIN_SEARCH_WORD_LENGTH }};
+ askbot['settings']['mathjaxEnabled'] = {{ settings.ENABLE_MATHJAX|as_js_bool }};
askbot['settings']['sharingSuffixText'] = '{{ settings.SHARING_SUFFIX_TEXT|escape }}';
-</script>
-<script
- type="text/javascript"
- {% if settings.DEBUG %}
- src="{{"/js/jquery-1.7.2.min.js"|media}}"
+ askbot['data']['haveFlashNotifications'] = {{ user_messages|as_js_bool }};
+ askbot['data']['activeTab'] = '{{ active_tab }}';
+ {% if search_state %}
+ askbot['data']['searchUrl'] = '{{ search_state.query_string()|escapejs }}';
{% else %}
- src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"
+ askbot['data']['searchUrl'] = '';
{% endif %}
-></script>
+</script>
+{# everything below until the custom js and google analytics is compressable #}
+{% compress js %}
+<script type="text/javascript" src="{{"/js/jquery-1.7.2.min.js"|media}}"></script>
<script type="text/javascript" src='{{"/bootstrap/js/bootstrap.js"|media}}'></script>
<!-- History.js -->
<script type='text/javascript' src="{{"/js/jquery.history.js"|media }}"></script>
<script type='text/javascript' src="{{"/js/utils.js"|media }}"></script>
<script type="text/javascript" src="{{'/js/live_search.js'|media}}"></script>
{% if settings.ENABLE_MATHJAX %}
+ {# we don't want to load mathjax just in case, only if it is really enabled #}
<script type='text/javascript' src="{{settings.MATHJAX_BASE_URL}}/MathJax.js">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
@@ -58,59 +60,56 @@
/*<![CDATA[*/
$(document).ready(function(){
// focus input on the search bar endcomment
- {% if active_tab in ('users', 'questions', 'tags', 'badges') %}
+ var activeTab = askbot['data']['activeTab'];
+ if (inArray(activeTab, ['users', 'questions', 'tags', 'badges'])) {
var searchInput = $('#keywords');
- {% elif active_tab == 'ask' %}
+ } else if (activeTab === 'ask') {
var searchInput = $('#id_title');
- {% else %}
+ } else {
var searchInput = undefined;
animateHashes();
- {% endif %}
+ }
if (searchInput) {
searchInput.focus();
putCursorAtEnd(searchInput);
}
- {% if active_tab in ('questions', 'badges', 'ask') %}
- if (searchInput) {
+ if (inArray(activeTab, ['questions', 'badges', 'ask']) && searchInput.length) {
var search = new FullTextSearch();
askbot['controllers'] = askbot['controllers'] || {};
askbot['controllers']['fullTextSearch'] = search;
- {% if search_state %}
- search.setSearchUrl('{{ search_state.query_string()|escapejs }}');
- {% else %}
- search.setSearchUrl('');
- {% endif %}
- {% if active_tab == 'ask' %}
+ search.setSearchUrl(askbot['data']['searchUrl']);
+ if (activeTab === 'ask') {
search.setAskButtonEnabled(false);
- {% endif %}
+ }
search.decorate(searchInput);
}
- {% endif %}
if (askbot['data']['userIsAdminOrMod']) {
$('body').addClass('admin');
}
- {%if settings.GROUPS_ENABLED %}
- askbot['urls']['add_group'] = "{% url add_group %}";
- var group_dropdown = new GroupDropdown({{group_list}});
- $('.dropdown').append(group_dropdown.getElement());
- {%if request.user.is_superuser%}
- group_dropdown.enableAddGroups();
- {%endif%}
- {% endif %}
+ if (askbot['settings']['groupsEnabled']) {
+ askbot['urls']['add_group'] = "{% url add_group %}";
+ var group_dropdown = new GroupDropdown({{ group_list }});
+ $('.dropdown').append(group_dropdown.getElement());
+ if (askbot['data']['userIsAdmin']) {
+ group_dropdown.enableAddGroups();
+ }
+ }
});
-{% if user_messages %}
- $('#validate_email_alert').click(function(){notify.close(true)})
- notify.show();
-{% endif %}
+ if (askbot['data']['haveFlashNotifications']) {
+ $('#validate_email_alert').click(function(){notify.close(true)})
+ notify.show();
+ }
$('abbr.timeago').timeago();
/*]]>*/
</script>
+{% endcompress %}
+{# stuff below should not be compressed #}
{% if settings.USE_CUSTOM_JS %}
<script
- src="{% url "custom_js"%}?v={{ settings.MEDIA_RESOURCE_REVISION }}"
+ src="{% url "custom_js" %}?v={{ settings.MEDIA_RESOURCE_REVISION }}"
type="text/javascript"
></script>
{% endif %}
diff --git a/askbot/templates/meta/editor_data.html b/askbot/templates/meta/editor_data.html
index f0402672..d7328b7d 100644
--- a/askbot/templates/meta/editor_data.html
+++ b/askbot/templates/meta/editor_data.html
@@ -1,16 +1,14 @@
<script type="text/javascript">
{# data necessary for the post editor, goes into endjs block #}
- askbot['settings']['tagsAreRequired'] =
- {% if settings.TAGS_ARE_REQUIRED %}true{% else %}false{% endif %};
- askbot['settings']['maxTagLength'] = {{settings.MAX_TAG_LENGTH}};
- "each tag must be shorter than %(max_chars)d characters",
+ askbot['settings']['tagsAreRequired'] = {{ settings.TAGS_ARE_REQUIRED|as_js_bool }}
+ askbot['settings']['maxTagLength'] = {{ settings.MAX_TAG_LENGTH }};
askbot['messages']['maxTagLength'] = "{% trans max_chars = settings.MAX_TAG_LENGTH %}each tag must be shorter that {{max_chars}} character{% pluralize %}each tag must be shorter than {{max_chars}} characters{% endtrans %}";
- askbot['settings']['maxTagsPerPost'] = {{settings.MAX_TAGS_PER_POST}};
+ askbot['settings']['maxTagsPerPost'] = {{ settings.MAX_TAGS_PER_POST }};
askbot['messages']['maxTagsPerPost'] = "{% trans tag_count = settings.MAX_TAGS_PER_POST %}please use {{tag_count}} tag{% pluralize %}please use {{tag_count}} tags or less{% endtrans %}";
askbot['messages']['tagLimits'] = "{% trans tag_count=settings.MAX_TAGS_PER_POST, max_chars=settings.MAX_TAG_LENGTH %}please use up to {{tag_count}} tags, less than {{max_chars}} characters each{% endtrans %}";
askbot['urls']['upload'] = '{% url "upload" %}';
- askbot['settings']['minTitleLength'] = {{settings.MIN_TITLE_LENGTH}};
- askbot['settings']['minQuestionBodyLength'] = {{settings.MIN_QUESTION_BODY_LENGTH}};
- askbot['settings']['minAnswerBodyLength'] = {{settings.MIN_ANSWER_BODY_LENGTH}};
+ askbot['settings']['minTitleLength'] = {{ settings.MIN_TITLE_LENGTH }};
+ askbot['settings']['minQuestionBodyLength'] = {{ settings.MIN_QUESTION_BODY_LENGTH }};
+ askbot['settings']['minAnswerBodyLength'] = {{ settings.MIN_ANSWER_BODY_LENGTH }};
askbot['settings']['tag_editor'] = '{{ tag_editor_settings|escapejs }}';
</script>
diff --git a/askbot/templates/meta/html_head_javascript.html b/askbot/templates/meta/html_head_javascript.html
index bd5e6ed5..67f0ec88 100644
--- a/askbot/templates/meta/html_head_javascript.html
+++ b/askbot/templates/meta/html_head_javascript.html
@@ -1,26 +1,18 @@
-{% load compress %}
-{% compress js %}
<script type="text/javascript" src="{{"/js/modernizr.custom.js"|media }}"></script>
<script type="text/javascript">
var askbot = {};
askbot['data'] = {};
+ askbot['data']['userIsAuthenticated'] = {{ request.user.is_authenticated()|as_js_bool }};
{% if request.user.is_authenticated() %}
- askbot['data']['userIsAuthenticated'] = true;
- askbot['data']['userId'] = {{request.user.id}};
+ askbot['data']['userId'] = {{ request.user.id }};
askbot['data']['userName'] = '{{ request.user.username }}';
- askbot['data']['userIsAdminOrMod'] = {% if
- request.user.is_administrator()
- or request.user.is_moderator()
- %}true{% else %}false{% endif %};
- askbot['data']['userIsAdmin'] = {% if
- request.user.is_administrator()
- %}true{% else %}false{% endif %};
- askbot['data']['userReputation'] = {{request.user.reputation}};
+ askbot['data']['userIsAdminOrMod'] = {{ request.user.is_administrator()|as_js_bool }};
+ askbot['data']['userIsAdmin'] = {{ request.user.is_administrator()|as_js_bool }};
+ askbot['data']['userReputation'] = {{ request.user.reputation }};
{% else %}
- askbot['data']['userIsAuthenticated'] = false;
askbot['data']['userReputation'] = 0;
{% endif %}
- askbot['data']['maxCommentLength'] = {{settings.MAX_COMMENT_LENGTH}};
+ askbot['data']['maxCommentLength'] = {{ settings.MAX_COMMENT_LENGTH }};
askbot['urls'] = {};
askbot['settings'] = {};
askbot['settings']['editorType'] = '{{ settings.EDITOR_TYPE }}';
@@ -33,6 +25,5 @@
{% endif %}
askbot['messages'] = {};
</script>
-{% endcompress %}
<script type="text/javascript" src="{% url django.views.i18n.javascript_catalog %}"></script>
{# avoid adding javascript here so that pages load faster #}
diff --git a/askbot/templates/meta/html_head_stylesheets.html b/askbot/templates/meta/html_head_stylesheets.html
index b99eeabd..20551315 100644
--- a/askbot/templates/meta/html_head_stylesheets.html
+++ b/askbot/templates/meta/html_head_stylesheets.html
@@ -1,16 +1,17 @@
-{%if settings.GROUPS_ENABLED%}
-<link href="{{'/bootstrap/css/bootstrap.css'|media}}" rel="stylesheet" type="text/css" />
-{% endif %}
-{% if settings.ASKBOT_CSS_DEVEL == False %}
-<link href="{{"/style/style.css"|media }}" rel="stylesheet" type="text/less" />
-{{ skin.get_extra_css_link() }}
+{% if settings.ASKBOT_CSS_DEVEL %}
+ <link href="{{"/style/style.less"|media }}" rel="stylesheet/less" type="text/css" />
+ {{ skin.get_extra_css_link() }}
+ <script type="text/javascript" src="{{"/js/less.min.js"|media}}"></script>
+ <link href="{{'/bootstrap/css/bootstrap.css'|media}}" rel="stylesheet" type="text/css" />
{% else %}
-<link href="{{"/style/style.less"|media }}" rel="stylesheet/less" type="text/css" />
-{{ skin.get_extra_css_link() }}
-<script type="text/javascript" src="{{"/js/less.min.js"|media}}"></script>
+ {% compress css %}
+ <link href="{{"/style/style.css"|media }}" rel="stylesheet" type="text/less" />
+ {{ skin.get_extra_css_link() }}
+ <link href="{{'/bootstrap/css/bootstrap.css'|media}}" rel="stylesheet" type="text/css" />
+ {% endcompress %}
{% endif %}
-<link href="{{'/bootstrap/css/bootstrap.css'|media}}" rel="stylesheet" type="text/css" />
{% if settings.USE_CUSTOM_CSS %}
+ {# can't compress yet because this comes from live settings #}
<link
href="{% url "custom_css" %}?v={{settings.MEDIA_RESOURCE_REVISION}}"
rel="stylesheet"
diff --git a/askbot/templates/question.html b/askbot/templates/question.html
index 5fcea3a9..e40fcda1 100644
--- a/askbot/templates/question.html
+++ b/askbot/templates/question.html
@@ -8,7 +8,6 @@
{% block forestyle %}
<link rel="canonical" href="{{settings.APP_URL|strip_path}}{{question.get_absolute_url()}}" />
<link rel="stylesheet" type="text/css" href="{{'/js/wmd/wmd.css'|media}}" />
- <link href="{{'/bootstrap/css/bootstrap.css'|media}}" rel="stylesheet" type="text/css" />
{% endblock %}
{% block forejs %}
<script type="text/javascript">
@@ -273,10 +272,46 @@
{% include "question/sidebar.html" %}
{% endblock %}
{% block endjs %}
+ <script type='text/javascript'>
+ {# not compressable #}
+ {% if settings.ENABLE_MATHJAX or settings.MARKUP_CODE_FRIENDLY %}
+ var codeFriendlyMarkdown = true;
+ {% else %}
+ var codeFriendlyMarkdown = false;
+ {% endif %}
+ var maxCommentLength = {{settings.MAX_COMMENT_LENGTH}};
+ askbot['urls']['postComments'] = '{% url post_comments %}';
+ askbot['urls']['editComment'] = '{% url edit_comment %}';
+ askbot['urls']['deleteComment'] = '{% url delete_comment %}';
+ askbot['urls']['convertComment'] = '{% url comment_to_answer %}';
+ askbot['urls']['getComment'] = '{% url get_comment %}';
+ askbot['urls']['saveDraftAnswer'] = '{% url save_draft_answer %}';
+ askbot['urls']['vote_url'] = '{% url vote question.id %}';
+ askbot['urls']['user_signin'] = '{{ settings.LOGIN_URL }}';
+ askbot['urls']['swap_question_with_answer'] = '{% url swap_question_with_answer %}';
+ askbot['urls']['upvote_comment'] = '{% url upvote_comment %}';
+ askbot['urls']['delete_post'] = '{% url delete_post %}';
+ askbot['urls']['get_html_template'] = '{% url get_html_template %}';
+ askbot['urls']['getGroupsList'] = '{% url get_groups_list %}';
+ askbot['urls']['publishAnswer'] = '{% url publish_answer %}';
+ askbot['data']['userIsThreadModerator'] = {{ user_is_thread_moderator|as_js_bool }};
+ askbot['data']['questionAuthorId'] = {{ question.author_id }};
+ askbot['data']['threadIsClosed'] = {{ thread.closed|as_js_bool }};
+ askbot['data']['answersSortTab'] = '{{ tab_id }}';
+ askbot['data']['questionId'] = {{ question.id }};
+ askbot['data']['threadSlug'] = '{{ thread.title|slugify }}';
+ askbot['messages']['addComment'] = '{% trans %}post a comment{% endtrans %}';
+ askbot['settings']['saveCommentOnEnter'] = {{ settings.SAVE_COMMENT_ON_ENTER|as_js_bool }};
+ askbot['settings']['tagSource'] = '{{ settings.TAG_SOURCE }}';
+ askbot['settings']['enableSharingGoogle'] = {{ settings.ENABLE_SHARING_GOOGLE|as_js_bool }};
+ </script>
+ {% include "meta/editor_data.html" %}
+ {% compress js %}
{% include "question/javascript.html" %}
{% if settings.TAG_SOURCE == 'category-tree' %}
{% include "meta/category_tree_js.html" %}
{% endif %}
+ {% endcompress %}
{#
<script type="text/javascript">
var messages = askbot['messages'];
diff --git a/askbot/templates/question/javascript.html b/askbot/templates/question/javascript.html
index edd7ead7..d32e14c5 100644
--- a/askbot/templates/question/javascript.html
+++ b/askbot/templates/question/javascript.html
@@ -1,66 +1,44 @@
<script type='text/javascript' src='{{"/js/editor.js"|media}}'></script>
-<script type='text/javascript'>
- {% if settings.ENABLE_MATHJAX or settings.MARKUP_CODE_FRIENDLY %}
- var codeFriendlyMarkdown = true;
- {% else %}
- var codeFriendlyMarkdown = false;
- {% endif %}
- var maxCommentLength = {{settings.MAX_COMMENT_LENGTH}};
- askbot['urls']['postComments'] = '{% url post_comments %}';
- askbot['urls']['editComment'] = '{% url edit_comment %}';
- askbot['urls']['deleteComment'] = '{% url delete_comment %}';
- askbot['urls']['convertComment'] = '{% url comment_to_answer %}';
- askbot['urls']['getComment'] = '{% url get_comment %}';
- askbot['urls']['saveDraftAnswer'] = '{% url save_draft_answer %}';
- askbot['urls']['vote_url'] = '{% url vote question.id %}';
- askbot['urls']['user_signin'] = '{{ settings.LOGIN_URL }}';
- askbot['urls']['swap_question_with_answer'] = '{% url swap_question_with_answer %}';
- askbot['urls']['upvote_comment'] = '{% url upvote_comment %}';
- askbot['urls']['delete_post'] = '{% url delete_post %}';
- askbot['urls']['get_html_template'] = '{% url get_html_template %}';
- askbot['urls']['getGroupsList'] = '{% url get_groups_list %}';
- askbot['urls']['publishAnswer'] = '{% url publish_answer %}';
- askbot['data']['userIsThreadModerator'] = {% if user_is_thread_moderator %}true{% else %}false{% endif %};
- askbot['messages']['addComment'] = '{% trans %}post a comment{% endtrans %}';
- {% if settings.SAVE_COMMENT_ON_ENTER %}
- askbot['settings']['saveCommentOnEnter'] = true;
- {% else %}
- askbot['settings']['saveCommentOnEnter'] = false;
- {% endif %}
- askbot['settings']['tagSource'] = '{{ settings.TAG_SOURCE }}';
-</script>
<script type="text/javascript" src='{{"/bootstrap/js/bootstrap.js"|media}}'></script>
-{% if settings.EDITOR_TYPE == 'markdown' %}
- <script type='text/javascript' src='{{"/js/wmd/showdown.js"|media}}'></script>
- <script type='text/javascript' src='{{"/js/wmd/wmd.js"|media}}'></script>
-{% endif %}
+<script type='text/javascript' src='{{"/js/wmd/showdown.js"|media}}'></script>
+<script type='text/javascript' src='{{"/js/wmd/wmd.js"|media}}'></script>
<script type='text/javascript' src='{{"/js/jquery.validate.min.js"|media}}'></script>
<script type='text/javascript' src='{{"/js/post.js"|media}}'></script>
<script type="text/javascript">
// define reputation needs for comments
- var repNeededForComments = 50;
$(document).ready(function(){
$("#nav_questions").attr('className',"on");
- var answer_sort_tab = "{{ tab_id }}";
- $("#" + answer_sort_tab).attr('className',"on");
+ $("#" + askbot['data']['answersSortTab']).attr('className',"on");
- Vote.init({{ question.id }}, '{{ thread.title|slugify }}', '{{ question.author_id }}','{{ request.user.id }}');
+ Vote.init(
+ askbot['data']['questionId'],
+ askbot['data']['threadSlug'],
+ askbot['data']['questionAuthorId'],
+ askbot['data']['userId']
+ );
- {% if not thread.closed and request.user.is_authenticated %}initEditor();{% endif %}
+ if ((askbot['data']['threadIsClosed'] === false) && askbot['data']['userIsAuthenticated']) {
+ initEditor();
+ }
lanai.highlightSyntax();
- $('#btLogin').bind('click', function(){window.location.href='{{ settings.LOGIN_URL }}'; } )
+ $('#btLogin').bind('click', function(){
+ window.location.href='{{ settings.LOGIN_URL }}';
+ });
if (window.location.hash === 'fmanswer'){
$('#fmanswer textarea').focus();
}
- {% if settings.ENABLE_SHARING_GOOGLE %}$.getScript("//apis.google.com/js/plusone.js"){% endif %}
- {% if request.user.id == question.author_id %}
+ if (askbot['settings']['enableSharingGoogle']) {
+ $.getScript("//apis.google.com/js/plusone.js");
+ }
+
+ if (askbot['data']['userId'] === askbot['data']['questionAuthorId']) {
$("#fmanswer_button").click(function() {
$("#fmanswer").show();
$("#fmanswer_button").hide();
});
- {%endif%}
+ }
if (askbot['data']['userIsAuthenticated']) {
var draftHandler = new DraftAnswer();
@@ -76,7 +54,9 @@
if (id_value != ""){
var previous_color = $(id_value).css('background-color');
$(id_value).css('backgroundColor', '#FFF8C6');
- $(id_value).animate({backgroundColor: '#ff7f2a'}, 1000).animate({backgroundColor: '#FFF8C6'}, 1000, function(){
+ $(id_value).animate(
+ {backgroundColor: '#ff7f2a'}, 1000
+ ).animate({backgroundColor: '#FFF8C6'}, 1000, function(){
$(id_value).css('backgroundColor', previous_color);
});
}
@@ -105,4 +85,3 @@
);
}
</script>
-{% include "meta/editor_data.html" %}
diff --git a/askbot/templatetags/extra_filters_jinja.py b/askbot/templatetags/extra_filters_jinja.py
index e927ccbf..cbd9956a 100644
--- a/askbot/templatetags/extra_filters_jinja.py
+++ b/askbot/templatetags/extra_filters_jinja.py
@@ -39,6 +39,12 @@ def add_tz_offset(datetime_object):
return str(datetime_object) + ' ' + TIMEZONE_STR
@register.filter
+def as_js_bool(some_object):
+ if bool(some_object):
+ return 'true'
+ return 'false'
+
+@register.filter
def is_current_language(lang):
return lang == django_get_language()