diff options
-rw-r--r-- | askbot/media/js/post.js | 4 | ||||
-rw-r--r-- | askbot/media/js/utils.js | 13 | ||||
-rw-r--r-- | askbot/media/js/wmd/showdown.js | 2 | ||||
-rw-r--r-- | askbot/startup_procedures.py | 9 | ||||
-rw-r--r-- | askbot/templates/base.html | 6 | ||||
-rw-r--r-- | askbot/templates/main_page/javascript.html | 9 | ||||
-rw-r--r-- | askbot/templates/meta/bottom_scripts.html | 75 | ||||
-rw-r--r-- | askbot/templates/meta/editor_data.html | 14 | ||||
-rw-r--r-- | askbot/templates/meta/html_head_javascript.html | 21 | ||||
-rw-r--r-- | askbot/templates/meta/html_head_stylesheets.html | 21 | ||||
-rw-r--r-- | askbot/templates/question.html | 37 | ||||
-rw-r--r-- | askbot/templates/question/javascript.html | 69 | ||||
-rw-r--r-- | askbot/templatetags/extra_filters_jinja.py | 6 |
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() |