diff options
Diffstat (limited to 'templates')
29 files changed, 511 insertions, 127 deletions
diff --git a/templates/about.html b/templates/about.html index ec4b6a73..66dcc3fd 100644 --- a/templates/about.html +++ b/templates/about.html @@ -12,24 +12,25 @@ </div> <div class="content"> - <p><strong>{{settings.APP_SHORT_NAME}}</strong> is a collaboratively edited question and answer site created with - <a href="http://osqa.net">OSQA: The Open Source Q&A System</a>.</p> + <p class="strong">Please customize file templates/about.html</p> <p>Here you can <strong>ask</strong> and <strong>answer</strong> questions, <strong>comment</strong> and <strong>vote</strong> for the questions of others and their answers. Both questions and answers <strong>can be revised</strong> and improved. Questions can be <strong>tagged</strong> with - the relevant keywords to simplify future access and organize the accumulated material.</p> + the relevant keywords to simplify future access and organize the accumulated material. + </p> - <p>This OSQA site is moderated by its members, hopefully - including yourself! + <p>This <span class="orange">Q&A</span> site is moderated by its members, hopefully - including yourself! Moderation rights are gradually assigned to the site users based on the accumulated <strong>"reputation"</strong> points. These points are added to the users account when others vote for his/her questions or answers. - These points (very) roughly reflect the level of trust of the community.</p> - - <p>No points are necessary to ask or answer the questions - so please - <strong><a href="{% url user_signin %}">join - us!</a></strong></p> - - <p>If you would like to find out more about this site - please see <strong><a href="{% url faq %}">frequently - asked questions</a></strong>.</p> + These points (very) roughly reflect the level of trust of the community. + </p> + <p>No points are necessary to ask or answer the questions - so please - + <strong><a href="{% url user_signin %}">join us!</a></strong> + </p> + <p> + If you would like to find out more about this site - please see <strong><a href="{% url faq %}">frequently asked questions</a></strong>. + </p> </div> {% endblock %} <!-- end template about.html --> diff --git a/templates/authopenid/complete.html b/templates/authopenid/complete.html index 1606cfc5..c967e8e2 100644 --- a/templates/authopenid/complete.html +++ b/templates/authopenid/complete.html @@ -11,7 +11,7 @@ parameters: * username (same as screen name or username in the models, and nickname in openid sreg) * form1 - OpenidRegisterForm * form2 - OpenidVerifyForm not clear what this form is supposed to do, not used for legacy -* email_feeds_form forum.forms.EditUserEmailFeedsForm +* email_feeds_form forum.forms.SimpleEmailSubscribeForm * openid_username_exists {% endcomment %} {% load i18n %} @@ -92,9 +92,11 @@ parameters: {% endif %} {{ form1.email }} </div> - <p class='nomargin'>{% trans "receive updates motivational blurb" %}</p> - {% include "edit_user_email_feeds_form.html" %} - <p class='nomargin'>{% trans "Tag filter tool will be your right panel, once you log in." %}</p> + <p>{% trans "receive updates motivational blurb" %}</p> + <div class='simple-subscribe-options'> + {{email_feeds_form.subscribe}} + </div> + <p class='space-above'>{% trans "Tag filter tool will be your right panel, once you log in." %}</p> <div class="submit-row"><input type="submit" class="submit" name="bnewaccount" value="{% trans "create account" %}"/></div> </form> </div> @@ -108,7 +110,9 @@ parameters: <div class="form-row"><label for="id_username">{% trans "user name" %}</label><br/>{{ form2.username }}</div> <div class="form-row"><label for="id_passwordl">{% trans "password" %}</label><br/>{{ form2.password }}</div> <p><span class='big strong'>(Optional) receive updates by email</span> - only sent when there are any.</p> - {% include "edit_user_email_feeds_form.html" %} + <div class='simple-subscribe-options'> + {{email_feeds_form.subscribe}} + </div> <!--todo double check translation from chinese 确认 = "Register" --> <div class="submit-row"> <input type="submit" class="submit" name="bverify" value="{% trans "Register" %}"/> diff --git a/templates/authopenid/external_legacy_login_info.html b/templates/authopenid/external_legacy_login_info.html index c200b29d..3318499c 100644 --- a/templates/authopenid/external_legacy_login_info.html +++ b/templates/authopenid/external_legacy_login_info.html @@ -9,7 +9,7 @@ {% spaceless %} <div class="message"> <!--add info about your external login site here--> -{% trans "how to login with password through external login website" %} +{% blocktrans %}how to login with password through external login website or use {{feedback_url}}{% endblocktrans %} </div> {% endspaceless %} {% endblock %} diff --git a/templates/authopenid/signup.html b/templates/authopenid/signup.html index 45dfb51b..d800eaf9 100644 --- a/templates/authopenid/signup.html +++ b/templates/authopenid/signup.html @@ -10,10 +10,18 @@ <p class="message">{% trans "Traditional signup info" %}</p> <form action="{% url user_signup %}" method="post" accept-charset="utf-8"> <ul class="form-horizontal-rows"> - {{form.as_ul}} + <li><label for="usename_id">{{form.username.label}}</label>{{form.username}}{{form.username.errors}}</li> + <li><label for="email_id">{{form.email.label}}</label>{{form.email}}{{form.email.errors}}</li> + <li><label for="password1_id">{{form.password1.label}}</label>{{form.password1}}{{form.password1.errors}}</li> + <li><label for="password2_id">{{form.password2.label}}</label>{{form.password2}}{{form.password2.errors}}</li> </ul> - <p style="margin:10px 0px 0px 3px;">{% trans "receive updates motivational blurb" %}</p> - {% include "edit_user_email_feeds_form.html" %} + <p class="signup_p">{% trans "receive updates motivational blurb" %}</p> + <p class="signup_p">{% trans "Please select your preferred email update schedule for the following groups of questions:" %}</p> + <div class='simple-subscribe-options'> + {{email_feeds_form.subscribe}} + </div> + <p class="signup_p">{% trans "Please read and type in the two words below to help us prevent automated account creation." %}</p> + {{form.recaptcha}} <div class="submit-row"><input type="submit" class="submit" value="{% trans "Create Account" %}" /> <strong>{% trans "or" %} <a href="{% url user_signin %}">{% trans "return to OpenID login" %}</a></strong></div> diff --git a/templates/badge.html b/templates/badge.html index 73cba4ba..af6aa2a2 100644 --- a/templates/badge.html +++ b/templates/badge.html @@ -28,7 +28,7 @@ </div> <div id="award-list" style="clear:both;margin-left:20px;line-height:25px;"> {% for award in awards %} - <p style="width:185px;float:left"><a href="{% url users %}{{ award.id }}/{{ award.name }}">{{ award.name }}</a> {% get_score_badge_by_details award.rep award.gold award.silver award.bronze %}</p> + <p style="width:180px;float:left"><a href="{% url users %}{{ award.id }}/{{ award.name }}">{{ award.name }}</a> {% get_score_badge_by_details award.rep award.gold award.silver award.bronze %}</p> {% endfor %} </div> diff --git a/templates/badges.html b/templates/badges.html index 1902a3b0..8de93df5 100644 --- a/templates/badges.html +++ b/templates/badges.html @@ -33,10 +33,10 @@ {% endifequal %} {% endfor %} </div> - <div style="float:left;width:180px;"> + <div style="float:left;width:230px;"> <a href="{{badge.get_absolute_url}}" title="{{ badge.get_type_display }} : {{ badge.description }}" class="medal"><span class="badge{{ badge.type }}">●</span> {{ badge.name }}</a><strong> × {{ badge.awarded_count|intcomma }}</strong> </div> - <p style="float:left;width:350px;"> + <p style="float:left;margin-top:8px;"> {{ badge.description }} </p> </div> diff --git a/templates/base.html b/templates/base.html index a33512cc..17a32ef2 100755 --- a/templates/base.html +++ b/templates/base.html @@ -11,7 +11,7 @@ {% endspaceless %} <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> {% if settings.GOOGLE_SITEMAP_CODE %} - <meta name="verify-v1" content="{{settings.GOOGLE_SITEMAP_CODE}}" /> + <meta name="google-site-verification" content="{{settings.GOOGLE_SITEMAP_CODE}}" /> {% endif %} <link rel="shortcut icon" href="{% href "/content/images/favicon.ico" %}" /> <link href="{% href "/content/style/style.css" %}" rel="stylesheet" type="text/css" /> @@ -46,7 +46,7 @@ body { margin-top:2.4em; } </style> <script type="text/javascript"> - $().ready(function() { + $(document).ready(function() { $('#validate_email_alert').click(function(){notify.close(true)}) notify.show(); }); diff --git a/templates/base_content.html b/templates/base_content.html index 78e5fe38..eacdc6d0 100644 --- a/templates/base_content.html +++ b/templates/base_content.html @@ -7,7 +7,7 @@ <title>{% block title %}{% endblock %} - {{ settings.APP_TITLE }}</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> {% if settings.GOOGLE_SITEMAP_CODE %} - <meta name="verify-v1" content="{{ settings.GOOGLE_SITEMAP_CODE }}" /> + <meta name="google-site-verification" content="{{ settings.GOOGLE_SITEMAP_CODE }}" /> {% endif %} <link rel="shortcut icon" href="{% href "/content/images/favicon.ico" %}" /> <link href="{% href "/content/style/style.css" %}" rel="stylesheet" type="text/css" /> @@ -48,7 +48,7 @@ body { margin-top:2.4em; } </style> <script type="text/javascript"> - $().ready(function() { + $(document).ready(function() { var element = $('#validate_email_alert') element.click(function(){notify.close(true);setTimeout(function(){},1000)}) notify.show(); @@ -64,7 +64,7 @@ {% autoescape off %} {% if user_messages %} {% for message in user_messages %} - <p class="darkred">{{ message }}<p> + <p class="darkred">{{ message }}</p> {% endfor %} {% endif %} {% endautoescape %} diff --git a/templates/content/images/logo.png b/templates/content/images/logo.png Binary files differdeleted file mode 100644 index b53732e3..00000000 --- a/templates/content/images/logo.png +++ /dev/null diff --git a/templates/content/jquery-openid/images/local-login.png b/templates/content/jquery-openid/images/local-login.png Binary files differdeleted file mode 100644 index 258cedac..00000000 --- a/templates/content/jquery-openid/images/local-login.png +++ /dev/null diff --git a/templates/content/jquery-openid/jquery.openid.js b/templates/content/jquery-openid/jquery.openid.js index 763af2c6..8d1cd204 100644 --- a/templates/content/jquery-openid/jquery.openid.js +++ b/templates/content/jquery-openid/jquery.openid.js @@ -53,7 +53,7 @@ $.fn.openid = function() { $localfs.fadeOut('slow'); $idfs.fadeOut('slow'); $id.val($this.find("li.highlight span").text()); - setTimeout(function(){$('#bsignin').click()},1000); + setTimeout(function(){$('#bsignin').click();},1000); return false; }; diff --git a/templates/content/js/com.cnprog.admin.js b/templates/content/js/com.cnprog.admin.js index cb1c1b15..39dff48c 100644 --- a/templates/content/js/com.cnprog.admin.js +++ b/templates/content/js/com.cnprog.admin.js @@ -1,4 +1,4 @@ -$().ready( function(){ +$(document).ready( function(){ var options = { success: function(a,b){$('.admin #action_status').html($.i18n._('changes saved'));}, dataType:'json', diff --git a/templates/content/js/com.cnprog.editor.js b/templates/content/js/com.cnprog.editor.js index 6cfa2c74..18cc5166 100644 --- a/templates/content/js/com.cnprog.editor.js +++ b/templates/content/js/com.cnprog.editor.js @@ -65,4 +65,4 @@ function ajaxFileUpload(imageUrl) ) return false; -}
\ No newline at end of file +} diff --git a/templates/content/js/com.cnprog.i18n.js b/templates/content/js/com.cnprog.i18n.js index 7562628b..da9bf396 100644 --- a/templates/content/js/com.cnprog.i18n.js +++ b/templates/content/js/com.cnprog.i18n.js @@ -1,3 +1,5 @@ + +//var i18nLang; var i18nZh = { 'insufficient privilege':'用户权限不在操作范围', 'cannot pick own answer as best':'不能设置自己的回答为最佳答案', diff --git a/templates/content/js/com.cnprog.post.js b/templates/content/js/com.cnprog.post.js index a073d20f..668c80fe 100644 --- a/templates/content/js/com.cnprog.post.js +++ b/templates/content/js/com.cnprog.post.js @@ -61,7 +61,7 @@ var Vote = function(){ var pleaseSeeFAQ = $.i18n._('please see') + "<a href='" + scriptUrl + $.i18n._("faq/") + "'>faq</a>"; - var favoriteAnonymousMessage = $.i18n._('anonymous users cannot select favorite questions') + var favoriteAnonymousMessage = $.i18n._('anonymous users cannot select favorite questions'); var voteAnonymousMessage = $.i18n._('anonymous users cannot vote') + pleaseLogin; var upVoteRequiredScoreMessage = $.i18n._('>15 points requried to upvote') + pleaseSeeFAQ; var downVoteRequiredScoreMessage = $.i18n._('>100 points required to downvote') + pleaseSeeFAQ; @@ -242,7 +242,8 @@ var Vote = function(){ url: scriptUrl + $.i18n._("questions/") + questionId + "/" + $.i18n._("vote/"), data: { "type": voteType, "postId": postId }, error: handleFail, - success: function(data){callback(object, voteType, data)}}); + success: function(data){callback(object, voteType, data);} + }); }; var handleFail = function(xhr, msg){ @@ -287,8 +288,9 @@ var Vote = function(){ object.attr("src", scriptUrl + "content/images/vote-favorite-off.png"); var fav = getFavoriteNumber(); fav.removeClass("my-favorite-number"); - if(data.count == 0) + if(data.count === 0){ data.count = ''; + } fav.text(data.count); } else if(data.success == "1"){ @@ -456,9 +458,12 @@ var Vote = function(){ submit($(object), voteType, callback_remove); } } - } + }; } (); +var questionComments = createComments('question'); +var answerComments = createComments('answer'); +var commentsFactory = {'question' : questionComments, 'answer' : answerComments}; // site comments function createComments(type) { @@ -482,12 +487,12 @@ function createComments(type) { $(jDiv).css('background','none'); $(jDiv).css('padding-left',0); if (canPostComments(id)) { - if (jDiv.find("#" + formId).length == 0) { + if (jDiv.find("#" + formId).length === 0) { var form = '<form id="' + formId + '" class="post-comments"><div>'; form += '<textarea name="comment" cols="60" rows="5" maxlength="300" onblur="'+ objectType +'Comments.updateTextCounter(this)" '; form += 'onfocus="' + objectType + 'Comments.updateTextCounter(this)" onkeyup="'+ objectType +'Comments.updateTextCounter(this)"></textarea>'; - form += '<input type="submit" value="' - + $.i18n._('add comment') + '" /><br><span class="text-counter"></span>'; + form += '<input type="submit" value="' + + $.i18n._('add comment') + '" /><br><span class="text-counter"></span>'; form += '<span class="form-error"></span></div></form>'; jDiv.append(form); @@ -499,20 +504,20 @@ function createComments(type) { } else { var divId = "comments-rep-needed-" + objectType + '-' + id; - if (jDiv.find("#" + divId).length == 0) { - jDiv.append('<p id="' + divId + '" class="comment">' - + $.i18n._('to comment, need') + ' ' + - + repNeededForComments + ' ' + $.i18n._('community karma points') - + '<a href="' + scriptUrl + $.i18n._('faq/') + '" class="comment-user">' - + $.i18n._('please see') + 'faq</a></span></p>'); + if (jDiv.find("#" + divId).length === 0) { + jDiv.append('<p id="' + divId + '" class="comment">' + + $.i18n._('to comment, need') + ' ' + + repNeededForComments + ' ' + $.i18n._('community karma points') + + '<a href="' + scriptUrl + $.i18n._('faq/') + '" class="comment-user">' + + $.i18n._('please see') + 'faq</a></span></p>'); } } }; var getComments = function(id, jDiv) { //appendLoaderImg(id); - $.getJSON(scriptUrl + objectType + "s/" + id + "/" + $.i18n._("comments/") - , function(json) { showComments(id, json); }); + $.getJSON(scriptUrl + objectType + "s/" + id + "/" + $.i18n._("comments/"), + function(json) { showComments(id, json); }); }; var showComments = function(id, json) { @@ -523,8 +528,9 @@ function createComments(type) { jDiv.children().remove(); removeLoader(); if (json && json.length > 0) { - for (var i = 0; i < json.length; i++) + for (var i = 0; i < json.length; i++){ renderComment(jDiv, json[i]); + } jDiv.children().show(); } }; @@ -535,14 +541,14 @@ function createComments(type) { var img = scriptUrl + "content/images/close-small.png"; var imgHover = scriptUrl + "content/images/close-small-hover.png"; html += '<img class="delete-icon" onclick="' + objectType + 'Comments.deleteComment($(this), ' + post_id + ', \'' + delete_url + '\')" src="' + img; - html += '" onmouseover="$(this).attr(\'src\', \'' + imgHover + '\')" onmouseout="$(this).attr(\'src\', \'' + img + html += '" onmouseover="$(this).attr(\'src\', \'' + imgHover + '\')" onmouseout="$(this).attr(\'src\', \'' + img; html += '\')" title="' + $.i18n._('delete this comment') + '" />'; return html; } else{ return ''; } - } + }; // {"Id":6,"PostId":38589,"CreationDate":"an hour ago","Text":"hello there!","UserDisplayName":"Jarrod Dixon","UserUrl":"/users/3/jarrod-dixon","DeleteUrl":null} var renderComment = function(jDiv, json) { @@ -604,8 +610,8 @@ function createComments(type) { $(this).children().each( function(i){ var comment_id = $(this).attr('id').replace('comment-',''); - var delete_url = scriptUrl + objectType + 's/' + post_id + '/' - + $.i18n._('comments/') + comment_id + '/' + $.i18n._('delete/'); + var delete_url = scriptUrl + objectType + 's/' + post_id + '/' + + $.i18n._('comments/') + comment_id + '/' + $.i18n._('delete/'); var html = $(this).html(); var CommentsClass; if (objectType == 'question'){ @@ -638,14 +644,14 @@ function createComments(type) { jDiv.show(); var link = $('#comments-link-' + objectType + '-' + id); - if (canPostComments(id)) link.parent().find("textarea").get(0).focus(); + if (canPostComments(id)) { link.parent().find("textarea").get(0).focus(); } link.remove(); }, hide: function(id) { var jDiv = jDivInit(id); var len = jDiv.children("div.comments").children().length; - var anchorText = len == 0 ? $.i18n._('add a comment') : $.i18n._('comments') + ' (<b>' + len + "</b>)"; + var anchorText = len === 0 ? $.i18n._('add a comment') : $.i18n._('comments') + ' (<b>' + len + "</b>)"; jDiv.hide(); jDiv.siblings("a").unbind("click").click(function() { commentsFactory[objectType].show(id); }).html(anchorText); @@ -666,23 +672,18 @@ function createComments(type) { var length = textarea.value ? textarea.value.length : 0; var color = length > 270 ? "#f00" : length > 200 ? "#f60" : "#999"; var jSpan = $(textarea).siblings("span.text-counter"); - jSpan.html($.i18n._('can write') - + (300 - length) + ' ' - + $.i18n._('characters')).css("color", color); + jSpan.html($.i18n._('can write') + + (300 - length) + ' ' + + $.i18n._('characters')).css("color", color); } }; } -var questionComments = createComments('question'); -var answerComments = createComments('answer'); - -$().ready(function() { +$(document).ready(function() { questionComments.init(); answerComments.init(); }); -var commentsFactory = {'question' : questionComments, 'answer' : answerComments}; - /* Prettify http://www.apache.org/licenses/LICENSE-2.0 diff --git a/templates/content/js/com.cnprog.tag_selector.js b/templates/content/js/com.cnprog.tag_selector.js index f6c16c9c..06aefcfc 100644 --- a/templates/content/js/com.cnprog.tag_selector.js +++ b/templates/content/js/com.cnprog.tag_selector.js @@ -1,7 +1,8 @@ +//var scriptUrl, interestingTags, ignoredTags, tags, $; function pickedTags(){ var sendAjax = function(tagname, reason, action, callback){ - url = scriptUrl; + var url = scriptUrl; if (action == 'add'){ url += $.i18n._('mark-tag/'); if (reason == 'good'){ @@ -16,15 +17,15 @@ function pickedTags(){ } url = url + tagname + '/'; - call_settings = { + var call_settings = { type:'POST', url:url - } - if (callback != false){ - call_settings['success'] = callback; + }; + if (callback !== false){ + call_settings.success = callback; } $.ajax(call_settings); - } + }; var unpickTag = function(from_target ,tagname, reason, send_ajax){ @@ -32,7 +33,7 @@ function pickedTags(){ var deleteTagLocally = function(){ from_target[tagname].remove(); delete from_target[tagname]; - } + }; if (send_ajax){ sendAjax(tagname,reason,'remove',deleteTagLocally); } @@ -40,7 +41,7 @@ function pickedTags(){ deleteTagLocally(); } - } + }; var setupTagDeleteEvents = function(obj,tag_store,tagname,reason,send_ajax){ obj.unbind('mouseover').bind('mouseover', function(){ @@ -52,12 +53,13 @@ function pickedTags(){ obj.click( function(){ unpickTag(tag_store,tagname,reason,send_ajax); }); - } + }; var handlePickedTag = function(obj,reason){ var tagname = $.trim($(obj).prev().attr('value')); - to_target = interestingTags; - from_target = ignoredTags; + var to_target = interestingTags; + var from_target = ignoredTags; + var to_tag_container; if (reason == 'bad'){ to_target = ignoredTags; from_target = interestingTags; @@ -78,13 +80,13 @@ function pickedTags(){ //send ajax request to pick this tag sendAjax(tagname,reason,'add',function(){ - new_tag = $('<span></span>'); + var new_tag = $('<span></span>'); new_tag.addClass('deletable-tag'); - tag_link = $('<a></a>'); + var tag_link = $('<a></a>'); tag_link.attr('rel','tag'); tag_link.attr('href', scriptUrl + $.i18n._('tags/') + tagname); tag_link.html(tagname); - del_link = $('<img></img>'); + var del_link = $('<img></img>'); del_link.addClass('delete-icon'); del_link.attr('src', scriptUrl + 'content/images/close-small-dark.png'); @@ -97,7 +99,7 @@ function pickedTags(){ to_target[tagname] = new_tag; }); } - } + }; var collectPickedTags = function(){ var good_prefix = 'interesting-tag-'; @@ -108,7 +110,8 @@ function pickedTags(){ ignoredTags = {}; $('.deletable-tag').each( function(i,item){ - item_id = $(item).attr('id') + var item_id = $(item).attr('id'); + var tag_name, tag_store; if (good_re.test(item_id)){ tag_name = item_id.replace(good_prefix,''); tag_store = interestingTags; @@ -123,10 +126,10 @@ function pickedTags(){ return; } tag_store[tag_name] = $(item); - setupTagDeleteEvents($(item).find('img'),tag_store,tag_name,reason,true) + setupTagDeleteEvents($(item).find('img'),tag_store,tag_name,reason,true); } ); - } + }; var setupHideIgnoredQuestionsControl = function(){ $('#hideIgnoredTagsCb').unbind('click').click(function(){ @@ -138,7 +141,7 @@ function pickedTags(){ data: {command:'toggle-ignored-questions'} }); }); - } + }; return { init: function(){ collectPickedTags(); @@ -157,8 +160,8 @@ function pickedTags(){ } }); - $("#interestingTagAdd").click(function(){handlePickedTag(this,'good')}); - $("#ignoredTagAdd").click(function(){handlePickedTag(this,'bad')}); + $("#interestingTagAdd").click(function(){handlePickedTag(this,'good');}); + $("#ignoredTagAdd").click(function(){handlePickedTag(this,'bad');}); } }; } diff --git a/templates/content/js/com.cnprog.utils.js b/templates/content/js/com.cnprog.utils.js index b19b6773..4c3aafba 100644 --- a/templates/content/js/com.cnprog.utils.js +++ b/templates/content/js/com.cnprog.utils.js @@ -1,6 +1,7 @@ +//var $, scriptUrl; var showMessage = function(object, msg) { - var div = $('<div class="vote-notification"><h3>' + msg + '</h3>(' - + $.i18n._('click to close') + ')</div>'); + var div = $('<div class="vote-notification"><h3>' + msg + '</h3>(' + + $.i18n._('click to close') + ')</div>'); div.click(function(event) { $(".vote-notification").fadeOut("fast", function() { $(this).remove(); }); @@ -35,18 +36,30 @@ var notify = function() { } (); function appendLoader(containerSelector) { - $(containerSelector).append('<img class="ajax-loader" ' - +'src="' + scriptUrl + 'content/images/indicator.gif" title="' - +$.i18n._('loading...') - +'" alt="' - +$.i18n._('loading...') - +'" />'); + $(containerSelector).append('<img class="ajax-loader" ' + + 'src="' + scriptUrl + 'content/images/indicator.gif" title="' + + $.i18n._('loading...') + + '" alt="' + + $.i18n._('loading...') + + '" />'); } function removeLoader() { $("img.ajax-loader").remove(); } +function setSubmitButtonDisabled(formSelector, isDisabled) { + $(formSelector).find("input[type='submit']").attr("disabled", isDisabled ? "true" : ""); +} + +function enableSubmitButton(formSelector) { + setSubmitButtonDisabled(formSelector, false); +} + +function disableSubmitButton(formSelector) { + setSubmitButtonDisabled(formSelector, true); +} + function setupFormValidation(formSelector, validationRules, validationMessages, onSubmitCallback) { enableSubmitButton(formSelector); $(formSelector).validate({ @@ -56,7 +69,7 @@ function setupFormValidation(formSelector, validationRules, validationMessages, errorClass: "form-error", errorPlacement: function(error, element) { var span = element.next().find("span.form-error"); - if (span.length == 0) { + if (span.length === 0) { span = element.parent().find("span.form-error"); } span.replaceWith(error); @@ -64,24 +77,16 @@ function setupFormValidation(formSelector, validationRules, validationMessages, submitHandler: function(form) { disableSubmitButton(formSelector); - if (onSubmitCallback) + if (onSubmitCallback){ onSubmitCallback(); - else + } + else{ form.submit(); + } } }); } -function enableSubmitButton(formSelector) { - setSubmitButtonDisabled(formSelector, false); -} -function disableSubmitButton(formSelector) { - setSubmitButtonDisabled(formSelector, true); -} -function setSubmitButtonDisabled(formSelector, isDisabled) { - $(formSelector).find("input[type='submit']").attr("disabled", isDisabled ? "true" : ""); -} - var CPValidator = function(){ return { getQuestionFormRules : function(){ @@ -108,11 +113,11 @@ var CPValidator = function(){ }, text: { required: " " + $.i18n._('content cannot be empty'), - minlength: jQuery.format(' ' + $.i18n._('content minchars')) + minlength: $.format(' ' + $.i18n._('content minchars')) }, title: { required: " " + $.i18n._('please enter title'), - minlength: jQuery.format(' ' + $.i18n._('title minchars')) + minlength: $.format(' ' + $.i18n._('title minchars')) } }; } diff --git a/templates/content/js/mediawiki-login.js b/templates/content/js/mediawiki-login.js new file mode 100644 index 00000000..f1805f88 --- /dev/null +++ b/templates/content/js/mediawiki-login.js @@ -0,0 +1,29 @@ +function toggleScreenNameInput(par1,par2){ + if ($(this).is(':checked')){ + $('.optional-screen-name').show(); + } + else { + $('#id_screen_name').val(''); + $('.optional-screen-name').hide(); + } +} + +function toggleScreenNameErrorMessage(e){ + var screen_name = $('#id_screen_name').val(); + if (screen_name != ''){ + $('.screen-name-error').hide(); + } + else{ + $('.screen-name-error').show(); + } +} + +$(document).ready( function(){ + var screen_name = $('#id_screen_name').val(); + var use_screen_name = $('#id_use_separate_screen_name').is(':checked'); + if (screen_name == '' && !use_screen_name){ + $('.optional-screen-name').hide(); + } + $('#id_use_separate_screen_name').unbind('click').click(toggleScreenNameInput); + $('#id_screen_name').unbind('keyup').keyup(toggleScreenNameErrorMessage); +}); diff --git a/templates/content/style/mediawiki-login.css b/templates/content/style/mediawiki-login.css new file mode 100644 index 00000000..58813c7c --- /dev/null +++ b/templates/content/style/mediawiki-login.css @@ -0,0 +1,63 @@ +#mediawiki-login legend { + font-weight:bold; + font-size:14px; +} + +#mediawiki-login fieldset { + border:none; +} + +#mediawiki-login ul { + list-style: none; + list-style-position: outside; + padding: 0px; + margin: 10px 0 0 0; +} + +#mediawiki-login p { + margin:0; +} + +#mediawiki-login div.login-information label { + width: 180px; + display: inline-block; +} + +#mediawiki-login legend { + padding: 0px; +} + +#mediawiki-login h2 { + margin:10px 0 0 0; + padding:3px 0 3px 0; + border:none; + font-family:sans-serif; + font-size:16.8px; + font-weight:bold; +} + +#mediawiki-login tr { + vertical-align: top; +} + +#id_screen_name { + margin-left:25px; +} + +#mediawiki-login input { + height: 20px; +} + +#mediawiki-login input.submit { + margin-top:5px; + margin-left:5px; + display:block; + clear:both; + font-weight: bold; + font-size:14.4px; + height:33px; + /*padding: 4px 6px 4px 6px;*/ + text-align: center; + border: 1px solid #777777; + background: #D4D0C8; +} diff --git a/templates/content/style/style.css b/templates/content/style/style.css index 47b4dc00..aba67eee 100644 --- a/templates/content/style/style.css +++ b/templates/content/style/style.css @@ -686,7 +686,12 @@ table.form-as-table th { /*.form-row li label { display: inline }*/ -.submit-row{line-height:30px;padding-top:10px;} +.submit-row{ + line-height:30px; + padding-top:10px; + display: block; + clear: both; +} .errors{line-height:20px;color:red;} .error{ color:darkred; @@ -1158,7 +1163,7 @@ ul.bulleta li {background:url(../images/bullet_green.gif) no-repeat 0px 2px; pad .message p { margin-bottom:0px; } -.message p.space-above { +p.space-above { margin-top:10px; } @@ -1446,3 +1451,16 @@ ul.form-horizontal-rows li input { #hideIgnoredTagsCb { margin: 0 2px 0 1px; } +#recaptcha_widget_div { + width:318px; + float:left; + clear:both; +} +p.signup_p { + margin: 20px 0px 0px 0px; +} +.simple-subscribe-options ul { + list-style:none; + list-style-position:outside; + margin:0; +} diff --git a/templates/footer.html b/templates/footer.html index 9d19b41e..66feff8a 100644 --- a/templates/footer.html +++ b/templates/footer.html @@ -7,8 +7,6 @@ <div class="footerLinks" > <a href="{% url about %}">{% trans "about" %}</a><span class="link-separator"> |</span> <a href="{% url faq %}">{% trans "faq" %}</a><span class="link-separator"> |</span> - <!--<a href="{{ blog_url }}">{% trans "blog" %}</a><span class="link-separator"> |</span>--> - <!--<a href="{{ webmaster_email }}">{% trans "contact us" %}</a><span class="link-separator"> |</span>--> <a href="{% url privacy %}">{% trans "privacy policy" %}</a><span class="link-separator"> |</span> {% spaceless %} <a href= @@ -25,7 +23,6 @@ <p> <a href="http://github.com/cnprog/CNPROG/network" target="_blank"> powered by cnprog platform - <!--<img src="{% href "/content/images/djangomade124x25_grey.gif" %}" border="0" alt="Made with Django." title="Made with Django." >--> </a> </p> </div> @@ -36,14 +33,16 @@ </div> </div> <!-- 页面底部结束: --> - <script type="text/javascript"> - var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); - document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); - </script> - <script type="text/javascript"> - try { - var pageTracker = _gat._getTracker('{{ settings.GOOGLE_ANALYTICS_KEY }}'); - pageTracker._trackPageview(); - } catch(err) {} + {% if settings.GOOGLE_ANALYTICS_KEY %} + <script type="text/javascript"> + var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); + document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> + <script type="text/javascript"> + try { + var pageTracker = _gat._getTracker('{{ settings.GOOGLE_ANALYTICS_KEY }}'); + pageTracker._trackPageview(); + } catch(err) {} + </script> + {% endif %} <!-- end template footer.html --> diff --git a/templates/header.html b/templates/header.html index 42074763..466659de 100644 --- a/templates/header.html +++ b/templates/header.html @@ -32,12 +32,6 @@ {% endif %} <a id="nav_badges" href="{% url badges %}">{% trans "badges" %}</a> <a id="nav_unanswered" href="{% url unanswered %}">{% trans "unanswered questions" %}</a> - - {% comment %}<!-- i think this needs to be removed -e.f. --> - {% if request.user.is_authenticated %} - <a id="nav_profile" href="{% url user %}{{ request.user.id }}/{{ request.user.username }}/">{% trans "my profile" %}</a> - {% endif %} - {% endcomment %} <div class="focus"> <a id="nav_ask" href="{% url ask %}" class="special">{% trans "ask a question" %}</a> </div> diff --git a/templates/mediawiki/mediawiki_signup.html b/templates/mediawiki/mediawiki_signup.html new file mode 100644 index 00000000..d1ecb96c --- /dev/null +++ b/templates/mediawiki/mediawiki_signup.html @@ -0,0 +1,9 @@ +{% extends "base_content.html" %} +{% load i18n %} +{% block forejs %} + {{form.media}} +{% endblock %} +{% block title %}{% spaceless %}{% trans "MediaWiki User Registration" %}{% endspaceless %}{% endblock %} +{% block content %} +{% include "mediawiki/mediawiki_signup_content.html" %} +{% endblock %} diff --git a/templates/mediawiki/mediawiki_signup_content.html b/templates/mediawiki/mediawiki_signup_content.html new file mode 100644 index 00000000..a09de107 --- /dev/null +++ b/templates/mediawiki/mediawiki_signup_content.html @@ -0,0 +1,110 @@ +{% load smart_if %} +{% load i18n %} +{% if request.is_include_virtual == False %} +<div class="headNormal"> + {% trans "MediaWiki User Registration" %} +</div> +{% endif %} +<div id="mediawiki-login"> +{% if request.is_include_virtual %} +<form name="fregister" action="/wiki/index.php" accept-charset="UTF-8" method="post"> + <input type="hidden" name="command" value="/backend/account/yourwiki/signup/"/> + <input type="hidden" name="title" value="Special:UserRegister"/> +{% else %} +<form name="fregister" action="." accept-charset="UTF-8" method="post"> +{% endif %} + {% with form as f %} + {{ f.next }} + <h2>{% trans "Basic information" %}</h2> + <div class="login-information"> + <p> + <label for="id_login_name">{{f.login_name.label}}</label> + {{f.login_name}} + </p> + {% if f.login_name.errors %} + <p class="error">{{ f.login_name.errors|join:", " }}</p> + {% endif %} + <p> + <label for="id_password1">{{f.password1.label}}</label> + {{f.password1}} + {% if f.password1.errors %} + <span class="error">{{ f.password1.errors|join:", " }}</span> + {% endif %} + </p> + <p> + <label for="id_password2">{{f.password2.label}}</label> + {{f.password2}} + {% if f.password2.errors %} + <span class="error">{{ f.password2.errors|join:", " }}</span> + {% endif %} + </p> + <p> + <label for="id_email">{{f.email.label}}</label> + {{f.email}} + {% if f.email.errors %} + <span class="error">{{ f.email.errors|join:", " }}</span> + {% endif %} + </p> + </div> + <h2>{% trans "Your Name" %}</h2> + <p>{% trans "<strong>1) Real name</strong> - required for the Wiki, but not shown on the forum by default" %}</p> + <table> + <tr> + <td><label for="id_first_name">{{f.first_name.label}}</label></td> + <td><label for="id_screen_name">{{f.last_name.label}}</label></td> + <td><label for="id_user_title">{{f.user_title.label}}</label></td> + </tr> + <tr> + <td> + {{f.first_name}} + {% if f.first_name.errors %} + <p class="error">{{ f.first_name.errors|join:", " }}</p> + {% endif %} + </td> + <td> + {{f.last_name}} + {% if f.last_name.errors %} + <p class="error">{{ f.last_name.errors|join:", " }}</p> + {% endif %} + </td> + <td> + {{f.user_title}} + {% if f.user_title.errors %} + <p class="error">{{ f.user_title.errors|join:", " }}</p> + {% endif %} + </td> + </tr> + </table> + <p>{% trans "<strong>2) Forum screen name</strong>" %}</p> + <p>{% trans "Just skip this to use your full name at the forum, otherwise please check below" %}</p> + <p> + {{f.use_separate_screen_name}} + <label for="id_use_separate_screen_name"> + {{f.use_separate_screen_name.label}} + </label> + </p> + <p class="optional-screen-name"> + {{f.screen_name}} + </p> + {% if f.screen_name.errors %} + <p class="error screen-name-error">{{ f.screen_name.errors|join:", " }}</p> + {% endif %} + <p class="optional-screen-name">{% trans "Please remember that forum screen name is not your login name.<br/>Screen name allows you stay anonymous at the forum - you can change it at any time too. Login name cannot be changed." %}</p> + <h2>{% trans "Update subscription" %}</h2> + <p>{% trans "receive updates motivational blurb" %}</p> + {{f.subscribe}} + {% if f.subscribe.errors %} + <p class="error">{{ f.subscribe.errors|join:", " }}</p> + {% endif %} + <h2>{% trans "Almost there..." %}</h2> + <p>{% trans "recaptcha explained" %}</p> + <p>{{f.recaptcha.errors|join:", "}} + <div style="clear:both; display:block;">{{f.recaptcha}}</div> + {% endwith %} + <input type="submit" value="{% trans "Create account" %}" class="submit"/> + {% comment %}<!-- this stuff was used for the wizard that fails with recaptcha so commented out--> + <input type="hidden" name="{{ step_field }}" value="{{ step0 }}" /> + {{ previous_fields|safe }} + {% endcomment %} + </form> +</div> diff --git a/templates/mediawiki/thanks_for_joining.html b/templates/mediawiki/thanks_for_joining.html new file mode 100644 index 00000000..9695ba05 --- /dev/null +++ b/templates/mediawiki/thanks_for_joining.html @@ -0,0 +1,76 @@ +{% spaceless %} +{% load smart_if %} +{% with wiki_user.user_name as user_name %} +<script type="text/javascript"> +$wgUserName = '{{user_name}}'; +$(document).ready(function(){ +$('#p-personal div').html('\ +<ul>\ +<li id="pt-0"><a href="/wiki/index.php?title=User:{{user_name}}" class="new">{{user_name}}</a></li>\ +<li id="pt-1"><a href="/wiki/index.php?title=UserWiki:{{user_name}}" class="new">my page</a></li>\ +<li id="pt-mytalk"><a href="/wiki/index.php?title=User_talk:{{user_name}}" title="My talk page [n]" accesskey="n" class="new">My talk</a></li>\ +<li id="pt-preferences"><a href="/wiki/index.php?title=Special:Preferences" title="My preferences">My preferences</a></li>\ +<li id="pt-watchlist"><a href="/wiki/index.php?title=Special:Watchlist" title="The list of pages you\'re monitoring for changes [l]" accesskey="l">My watchlist</a></li>\ +<li id="pt-mycontris"><a href="/wiki/index.php?title=Special:Contributions/{{user_name}}" title="List of my contributions [y]" accesskey="y">My contributions</a></li>\ +<li id="pt-logout"><a href="/wiki/index.php?title=Special:Userlogout&returnto=Special:UserRegister" title="Log out">Log out</a></li>\ +</ul>\ +'); +}); +</script> +{% endwith %} +{% if wiki_user.user_title == 'prof' %} +<script type="text/javascript"> + var documentTitle = 'Professor {{wiki_user.user_last_name}}, Welcome to Wiki!'; +</script> +{% else %} + {% if wiki_user.title == 'dr' %} + <script type="text/javascript"> + var documentTitle = 'Dr. {{wiki_user.user_last_name}}, Welcome to Wiki!'; + </script> + {% else %} + <script type="text/javascript"> + var documentTitle = '{{wiki_user.user_first_name}}, Welcome to Wiki!'; + </script> + {% endif %} +{% endif %} +<script type="text/javascript"> + $(document).ready( function(){ + document.title = documentTitle; + $('h1.firstHeading').html(documentTitle); + }); +</script> +{% if wiki_user.user_title == 'prof' %} +<p>Dear Professor {{wiki_user.user_last_name}}, +{% else %} + {% if wiki_user.title == 'dr' %} + <p>Dear Dr. {{wiki_user.user_last_name}}, + {% else %} + <p>Dear {{wiki_user.user_first_name}}, + {% endif %} +{% endif %} +thanks joining Wiki!</p> +<p><strong>Could you help our community right now?</strong><br/> +Please answer some of the questions from our Q&A forum:</p> +<ul> + {% for q in questions %} + <li><a href="http://yourwiki.org/question/{{q.id}}/{{q.title|slugify}}">{{q.title}}</a></li> + {% endfor %} +</ul> +<p>Your answers will be <strong>indispensable</strong>.<br/> +Please feel free to ask something too! Hopefully you will like this forum and the wiki and invite your coworkers and friends to join. +</p> +<p>Might you consider <strong>sharing some of the digital documentation and pulse sequences</strong> that +perhaps had accumulated in your lab?<br/> It's very easy to upload +files to the wiki as it is to edit the pages directly. +</p> +<p>Best wishes,<br/> +Wiki Server Admin. +</p> +<p>P.S. An email with the confirmation code has been sent to <strong>{{wiki_user.user_email}}</strong>. +Please follow the included link to confirm your email address. +{% if wiki_user.user_title == 'prof' %} +<br/> +Also, you are always welcome to <strong>advertise open positions</strong> in your laboratory on the wiki. </p> +{% endif %} +</p> +{% endspaceless %} diff --git a/templates/mediawiki/welcome_email.txt b/templates/mediawiki/welcome_email.txt new file mode 100644 index 00000000..c282d9e5 --- /dev/null +++ b/templates/mediawiki/welcome_email.txt @@ -0,0 +1,28 @@ +{% spaceless %} +{% load i18n %} +{% load smart_if %} +{% if title == 'prof' %} +{% blocktrans %}Dear Professor {{last_name}},{% endblocktrans %} +{% endif %} +{% if title == 'dr' %} +{% blocktrans %}Dear Dr. {{last_name}},{% endblocktrans %} +{% endif %} +{% if title == 'none' %} +{% blocktrans %}Dear {{first_name}},{% endblocktrans %} +{% endif %} +{% endspaceless %} + +{% trans "Thank you for joining OSQA online community!" %} + +{% trans "A very brief introduction to OSQA community follows this technical information, included for your record:" %} +{% blocktrans %}* please visit {{email_confirmation_url}} to confirm your email for the OSQA wiki +* your OSQA login name is {{login_name}}, email address {{user_email}}. +* password recovery information can be always found here: {{password_recovery_url}}{% endblocktrans %} + +{% trans "A brief introduction to the OSQA online community for the new user." %} + +{% blocktrans %}Sincerely, +Adminstrator of the OSQA website.{% endblocktrans %} + +{% blocktrans %}P.S. If you believe that this message was sent in error please tell us +about it by email at {{admin_email}}.{% endblocktrans %} diff --git a/templates/mediawiki/welcome_professor_email.txt b/templates/mediawiki/welcome_professor_email.txt new file mode 100644 index 00000000..6b05889d --- /dev/null +++ b/templates/mediawiki/welcome_professor_email.txt @@ -0,0 +1,19 @@ +{% spaceless %} +{% load i18n %} +{% blocktrans %}Dear Professor {{last_name}},{% endblocktrans %} +{% endspaceless %} + +{% trans "Thanks a lot for joining OSQA online community!" %} + +{% trans "A very brief introduction to OSQA community follows this technical information, included for your record:" %} +{% blocktrans %}* please visit {{email_confirmation_url}} to confirm your email for the OSQA wiki +* your OSQA login name is {{login_name}}, email address {{user_email}}. +* password recovery information can be always found here: {{password_recovery_url}}{% endblocktrans %} + +{% trans "A brief introduction to the OSQA online community for the new professor user." %} + +{% blocktrans %}Sincerely, +Adminstrator of the OSQA website.{% endblocktrans %} + +{% blocktrans %}P.S. If you believe that this message was sent in error please tell us +about it by email at {{admin_email}}.{% endblocktrans %} diff --git a/templates/notarobot.html b/templates/notarobot.html new file mode 100644 index 00000000..698c5696 --- /dev/null +++ b/templates/notarobot.html @@ -0,0 +1,15 @@ +{% extends "base_content.html" %} +{% load i18n %} +{% block title %}{% spaceless %}{% trans "Please prove that you are a Human Being" %}{% endspaceless %}{% endblock %} +{% block content %} +{% comment %} this form is set up to be used in wizards {% endcomment %} +<form name="notarobot" action="." method="POST"> + <div> + {{form}} + </div> + <input type="submit" value="{% trans "I am a Human Being" %}" class="submit" style="float:left"/> + <input type="hidden" name="{{ step_field }}" value="{{ step0 }}" /> + {{ previous_fields|safe }} + </form> +</form> +{% endblock %} diff --git a/templates/tag_selector.html b/templates/tag_selector.html index 6edc5cc8..94d23f3c 100644 --- a/templates/tag_selector.html +++ b/templates/tag_selector.html @@ -37,6 +37,6 @@ <input id="ignoredTagAdd" type="submit" value="{% trans "Add" %}"/> <p id="hideIgnoredTagsControl"> <input id="hideIgnoredTagsCb" type="checkbox" {% if request.user.hide_ignored_questions %}checked="checked"{% endif %} /> - <label id="hideIgnoredTagsLabel" for="hideIgnoredTags">{% trans "keep ingored questions hidden" %}</label> + <label id="hideIgnoredTagsLabel" for="hideIgnoredTagsCb">{% trans "keep ingored questions hidden" %}</label> <p> </div> |