summaryrefslogtreecommitdiffstats
path: root/templates
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2010-01-24 19:53:24 -0500
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2010-01-24 20:03:45 -0500
commitad2e22b999b3b795f60e0f95abcaf3b339567294 (patch)
treeebea9e231463d878ff869e4a74ecd4620e743a95 /templates
parentc4da893b2e28dbd2a04f8c6f61c52936119b1148 (diff)
downloadaskbot-ad2e22b999b3b795f60e0f95abcaf3b339567294.tar.gz
askbot-ad2e22b999b3b795f60e0f95abcaf3b339567294.tar.bz2
askbot-ad2e22b999b3b795f60e0f95abcaf3b339567294.zip
recaptcha for conventional registration\n\
simpler email subscription form at registration\n\ fixed urls in rss feed\n\ added experimental remote password login api (cleartext password for remote site entered locally)\n\ included example for Mediawiki Authentication plugin\n\ very simple message to everyone management command
Diffstat (limited to 'templates')
-rw-r--r--templates/about.html23
-rw-r--r--templates/authopenid/complete.html14
-rw-r--r--templates/authopenid/external_legacy_login_info.html2
-rw-r--r--templates/authopenid/signup.html14
-rw-r--r--templates/badge.html2
-rw-r--r--templates/badges.html4
-rwxr-xr-xtemplates/base.html4
-rw-r--r--templates/base_content.html6
-rw-r--r--templates/content/images/logo.pngbin1902 -> 0 bytes
-rw-r--r--templates/content/jquery-openid/images/local-login.pngbin2522 -> 0 bytes
-rw-r--r--templates/content/jquery-openid/jquery.openid.js2
-rw-r--r--templates/content/js/com.cnprog.admin.js2
-rw-r--r--templates/content/js/com.cnprog.editor.js2
-rw-r--r--templates/content/js/com.cnprog.i18n.js2
-rw-r--r--templates/content/js/com.cnprog.post.js63
-rw-r--r--templates/content/js/com.cnprog.tag_selector.js45
-rw-r--r--templates/content/js/com.cnprog.utils.js51
-rw-r--r--templates/content/js/mediawiki-login.js29
-rw-r--r--templates/content/style/mediawiki-login.css63
-rw-r--r--templates/content/style/style.css22
-rw-r--r--templates/footer.html23
-rw-r--r--templates/header.html6
-rw-r--r--templates/mediawiki/mediawiki_signup.html9
-rw-r--r--templates/mediawiki/mediawiki_signup_content.html110
-rw-r--r--templates/mediawiki/thanks_for_joining.html76
-rw-r--r--templates/mediawiki/welcome_email.txt28
-rw-r--r--templates/mediawiki/welcome_professor_email.txt19
-rw-r--r--templates/notarobot.html15
-rw-r--r--templates/tag_selector.html2
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&amp;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 }}">&#9679;</span>&nbsp;{{ badge.name }}</a><strong> &#215; {{ 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
deleted file mode 100644
index b53732e3..00000000
--- a/templates/content/images/logo.png
+++ /dev/null
Binary files differ
diff --git a/templates/content/jquery-openid/images/local-login.png b/templates/content/jquery-openid/images/local-login.png
deleted file mode 100644
index 258cedac..00000000
--- a/templates/content/jquery-openid/images/local-login.png
+++ /dev/null
Binary files differ
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&amp;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&amp;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>