From bdf1cc4f9dd3f0ac06ba1af3c7d35c72cc358297 Mon Sep 17 00:00:00 2001 From: Evgeny Fadeev Date: Mon, 8 Feb 2010 19:13:04 -0500 Subject: fixed a little bug that i have planted into fbconnect before, removed unused files fixed email signup form validation --- fbconnect/fb.py | 9 +- fbconnect/urls.py | 5 +- fbconnect/views.py | 33 +- locale/en/LC_MESSAGES/django.mo | Bin 26619 -> 26986 bytes locale/en/LC_MESSAGES/django.po | 714 ++++++++++++++++----------------- session_messages/__init__.py | 37 -- session_messages/context_processors.py | 48 --- session_messages/models.py | 3 - templates/authopenid/complete.html | 3 + templates/authopenid/signin.html | 2 +- templates/authopenid/signup.html | 6 +- templates/content/style/style.css | 3 + templates/fbconnect/xd_receiver.html | 11 +- 13 files changed, 409 insertions(+), 465 deletions(-) delete mode 100644 session_messages/__init__.py delete mode 100644 session_messages/context_processors.py delete mode 100644 session_messages/models.py diff --git a/fbconnect/fb.py b/fbconnect/fb.py index 99bc0b79..afcd8210 100755 --- a/fbconnect/fb.py +++ b/fbconnect/fb.py @@ -73,17 +73,24 @@ STATES = { def get_user_state(request): API_KEY = settings.FB_API_KEY + logging.debug('') if API_KEY in request.COOKIES: + logging.debug('FB API key is in request cookies') if check_cookies_signature(request.COOKIES): + logging.debug('FB cookie signature is fine') if check_session_expiry(request.COOKIES): + logging.debug('FB session is not expired') try: uassoc = FBAssociation.objects.get(fbuid=request.COOKIES[API_KEY + '_user']) + logging.debug('found existing FB user association') return (STATES['RETURNINGUSER'], uassoc.user) except: + logging.debug('dont have FB association for this user') return (STATES['FIRSTTIMER'], get_user_data(request.COOKIES)) else: + logging.debug('FB session expired') return (STATES['SESSIONEXPIRED'], None) + logging.debug('FB state is INVALID') return (STATES['INVALIDSTATE'], None) - diff --git a/fbconnect/urls.py b/fbconnect/urls.py index 9b4ff0c9..bf2d4364 100755 --- a/fbconnect/urls.py +++ b/fbconnect/urls.py @@ -1,10 +1,13 @@ from django.conf.urls.defaults import * from django.utils.translation import ugettext as _ from django.views.generic.simple import direct_to_template +from django.conf import settings from views import signin, register urlpatterns = patterns('', - url(r'^xd_receiver$', direct_to_template, {'template': 'fbconnect/xd_receiver.html'}, name='xd_receiver'), + url(r'^xd_receiver$', direct_to_template, {'template': 'fbconnect/xd_receiver.html',\ + 'extra_context': {'APP_SHORT_NAME':settings.APP_SHORT_NAME}},\ + name='xd_receiver'), url(r'^%s$' % _('signin/'), signin, name="fb_signin"), url(r'^%s%s$' % (_('signin/'), _('newquestion/')), signin, {'newquestion': True}, name="fb_signin_new_question"), diff --git a/fbconnect/views.py b/fbconnect/views.py index 5c308e45..1781f6bf 100755 --- a/fbconnect/views.py +++ b/fbconnect/views.py @@ -6,7 +6,7 @@ from django.core.urlresolvers import reverse from django.contrib.auth.models import User from django.contrib.auth import login, logout from models import FBAssociation -from forum.forms import EditUserEmailFeedsForm +from forum.forms import SimpleEmailSubscribeForm from django.conf import settings import fb @@ -15,9 +15,11 @@ import forms import logging def signin(request, newquestion = False, newanswer = False): + logging.debug('') state, context = fb.get_user_state(request) if state == fb.STATES['FIRSTTIMER']: + logging.debug('FB state = FIRSTTIMER') if newquestion: register_url = 'fb_user_register_new_question' elif newanswer: @@ -26,8 +28,10 @@ def signin(request, newquestion = False, newanswer = False): register_url = 'fb_user_register' return HttpResponseRedirect(reverse(register_url)) elif state == fb.STATES['RETURNINGUSER']: + logging.debug('FB state = RETURNINGUSER') return login_and_forward(request, context, newquestion, newanswer) elif state == fb.STATES['SESSIONEXPIRED']: + logging.debug('FB state = SESSIONEXPIRED') response = logout(request, next_page=reverse('index')) fb.delete_cookies(response) return response @@ -35,36 +39,41 @@ def signin(request, newquestion = False, newanswer = False): return HttpResponseRedirect(reverse('index')) def register(request, newquestion = False, newanswer = False): + logging.debug('') state, context = fb.get_user_state(request) if state == fb.STATES['FIRSTTIMER']: - - if 'bnewaccount' in request.POST.keys(): + logging.debug('FB FIRSTTIMER - try to register locally') + logging.debug('request method is %s' % request.method) + if request.method == 'POST' and 'bnewaccount' in request.POST: form1 = forms.FBConnectRegisterForm(request.POST) - email_feeds_form = EditUserEmailFeedsForm(request.POST) + email_feeds_form = SimpleEmailSubscribeForm(request.POST) if (form1.is_valid() and email_feeds_form.is_valid()): tmp_pwd = User.objects.make_random_password() user_ = User.objects.create_user(form1.cleaned_data['username'], form1.cleaned_data['email'], tmp_pwd) - + user_.set_unusable_password() + logging.debug('created new internal user %s' % form1.cleaned_data['username']) uassoc = FBAssociation(user=user_, fbuid=context['uid']) uassoc.save() + logging.debug('created new user association') email_feeds_form.save(user_) return login_and_forward(request, user_, newquestion, newanswer) + else: + logging.debug('form user input is invalid') else: form1 = forms.FBConnectRegisterForm(initial={ 'next': '/', 'username': context['name'], 'email': '', }) - - email_feeds_form = EditUserEmailFeedsForm() - + email_feeds_form = SimpleEmailSubscribeForm() + return render('authopenid/complete.html', { 'form1': form1, 'email_feeds_form': email_feeds_form, @@ -73,25 +82,31 @@ def register(request, newquestion = False, newanswer = False): 'gravatar_faq_url':reverse('faq') + '#gravatar', }, context_instance=RequestContext(request)) else: + logging.debug('not a FIRSTTIMER --> redirect to index view') return HttpResponseRedirect(reverse('index')) def login_and_forward(request, user, newquestion = False, newanswer = False): old_session = request.session.session_key user.backend = "django.contrib.auth.backends.ModelBackend" + logging.debug('attached auth.backends.ModelBackend to this FB user') login(request, user) + logging.debug('user logged in!') from forum.models import user_logged_in user_logged_in.send(user=user,session_key=old_session,sender=None) + logging.debug('user_logged_in signal sent') if (newquestion): from forum.models import Question question = Question.objects.filter(author=user).order_by('-added_at')[0] + logging.debug('redirecting to newly posted question') return HttpResponseRedirect(question.get_absolute_url()) if (newanswer): from forum.models import Answer answer = Answer.objects.filter(author=user).order_by('-added_at')[0] + logging.debug('redirecting to newly posted answer') return HttpResponseRedirect(answer.get_absolute_url()) + logging.debug('redirecting to front page') return HttpResponseRedirect('/') - diff --git a/locale/en/LC_MESSAGES/django.mo b/locale/en/LC_MESSAGES/django.mo index ef3007a0..38120e49 100644 Binary files a/locale/en/LC_MESSAGES/django.mo and b/locale/en/LC_MESSAGES/django.mo differ diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index ee40fa36..bfec60c0 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-09 08:54-0800\n" +"POT-Creation-Date: 2010-02-08 18:43-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,297 +16,228 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: django_authopenid/forms.py:70 -msgid "choose a username" -msgstr "Choose screen name" - -#: django_authopenid/forms.py:76 -msgid "user name is required" -msgstr "" - -#: django_authopenid/forms.py:77 -msgid "sorry, this name is taken, please choose another" -msgstr "" - -#: django_authopenid/forms.py:78 -msgid "sorry, this name is not allowed, please choose another" -msgstr "" - -#: django_authopenid/forms.py:79 -msgid "sorry, there is no user with this name" -msgstr "" - -#: django_authopenid/forms.py:80 -msgid "sorry, we have a serious error - user name is taken by several users" -msgstr "" - -#: django_authopenid/forms.py:81 -msgid "user name can only consist of letters, empty space and underscore" -msgstr "" - -#: django_authopenid/forms.py:116 -msgid "your email address" -msgstr "Your email (never shared)" - -#: django_authopenid/forms.py:117 -msgid "email address is required" -msgstr "" - -#: django_authopenid/forms.py:118 -msgid "please enter a valid email address" -msgstr "" - -#: django_authopenid/forms.py:119 -msgid "this email is already used by someone else, please choose another" -msgstr "" - -#: django_authopenid/forms.py:163 django_authopenid/views.py:118 +#: django_authopenid/forms.py:71 django_authopenid/views.py:118 msgid "i-names are not supported" msgstr "" -#: django_authopenid/forms.py:219 +#: django_authopenid/forms.py:134 msgid "Account with this name already exists on the forum" msgstr "" -#: django_authopenid/forms.py:220 +#: django_authopenid/forms.py:135 msgid "can't have two logins to the same account yet, sorry." msgstr "" -#: django_authopenid/forms.py:242 +#: django_authopenid/forms.py:157 msgid "Please enter valid username and password (both are case-sensitive)." msgstr "" -#: django_authopenid/forms.py:245 django_authopenid/forms.py:295 +#: django_authopenid/forms.py:160 django_authopenid/forms.py:210 msgid "This account is inactive." msgstr "" -#: django_authopenid/forms.py:247 +#: django_authopenid/forms.py:162 msgid "Login failed." msgstr "" -#: django_authopenid/forms.py:249 +#: django_authopenid/forms.py:164 msgid "Please enter username and password" msgstr "" -#: django_authopenid/forms.py:251 +#: django_authopenid/forms.py:166 msgid "Please enter your password" msgstr "" -#: django_authopenid/forms.py:253 +#: django_authopenid/forms.py:168 msgid "Please enter user name" msgstr "" -#: django_authopenid/forms.py:291 +#: django_authopenid/forms.py:206 msgid "" "Please enter a valid username and password. Note that " "both fields are case-sensitive." msgstr "" -#: django_authopenid/forms.py:313 -msgid "choose password" -msgstr "Password" - -#: django_authopenid/forms.py:314 -msgid "password is required" -msgstr "" - -#: django_authopenid/forms.py:317 -msgid "retype password" -msgstr "Password (please retype)" - -#: django_authopenid/forms.py:318 -msgid "please, retype your password" -msgstr "" - -#: django_authopenid/forms.py:319 -msgid "sorry, entered passwords did not match, please try again" -msgstr "" - -#: django_authopenid/forms.py:344 +#: django_authopenid/forms.py:229 msgid "Current password" msgstr "" -#: django_authopenid/forms.py:346 -msgid "New password" -msgstr "" - -#: django_authopenid/forms.py:348 -msgid "Retype new password" -msgstr "" - -#: django_authopenid/forms.py:359 +#: django_authopenid/forms.py:240 msgid "" "Old password is incorrect. Please enter the correct " "password." msgstr "" -#: django_authopenid/forms.py:371 -msgid "new passwords do not match" -msgstr "" - -#: django_authopenid/forms.py:435 +#: django_authopenid/forms.py:305 msgid "Your user name (required)" msgstr "" -#: django_authopenid/forms.py:450 +#: django_authopenid/forms.py:320 msgid "Incorrect username." msgstr "sorry, there is no such user name" -#: django_authopenid/urls.py:9 django_authopenid/urls.py:10 -#: django_authopenid/urls.py:11 django_authopenid/urls.py:13 forum/urls.py:24 +#: django_authopenid/urls.py:23 django_authopenid/urls.py:24 +#: django_authopenid/urls.py:25 django_authopenid/urls.py:27 +#: fbconnect/urls.py:12 fbconnect/urls.py:13 fbconnect/urls.py:14 +#: forum/urls.py:29 msgid "signin/" msgstr "" -#: django_authopenid/urls.py:10 +#: django_authopenid/urls.py:24 fbconnect/urls.py:13 fbconnect/urls.py:17 msgid "newquestion/" msgstr "" -#: django_authopenid/urls.py:11 +#: django_authopenid/urls.py:25 fbconnect/urls.py:14 fbconnect/urls.py:18 msgid "newanswer/" msgstr "" -#: django_authopenid/urls.py:12 +#: django_authopenid/urls.py:26 msgid "signout/" msgstr "" -#: django_authopenid/urls.py:13 +#: django_authopenid/urls.py:27 msgid "complete/" msgstr "" -#: django_authopenid/urls.py:15 -msgid "external-login/" -msgstr "" - -#: django_authopenid/urls.py:16 +#: django_authopenid/urls.py:29 fbconnect/urls.py:16 fbconnect/urls.py:17 +#: fbconnect/urls.py:18 msgid "register/" msgstr "" -#: django_authopenid/urls.py:17 +#: django_authopenid/urls.py:30 msgid "signup/" msgstr "" -#: django_authopenid/urls.py:19 +#: django_authopenid/urls.py:32 msgid "sendpw/" msgstr "" -#: django_authopenid/urls.py:20 django_authopenid/urls.py:24 +#: django_authopenid/urls.py:33 django_authopenid/urls.py:37 msgid "password/" msgstr "" -#: django_authopenid/urls.py:20 +#: django_authopenid/urls.py:33 msgid "confirm/" msgstr "" -#: django_authopenid/urls.py:23 +#: django_authopenid/urls.py:36 msgid "account_settings" msgstr "" -#: django_authopenid/urls.py:25 django_authopenid/urls.py:26 -#: django_authopenid/urls.py:27 django_authopenid/urls.py:28 +#: django_authopenid/urls.py:38 django_authopenid/urls.py:39 +#: django_authopenid/urls.py:40 django_authopenid/urls.py:41 msgid "email/" msgstr "" -#: django_authopenid/urls.py:25 +#: django_authopenid/urls.py:38 msgid "validate/" msgstr "" -#: django_authopenid/urls.py:26 +#: django_authopenid/urls.py:39 msgid "change/" msgstr "" -#: django_authopenid/urls.py:27 +#: django_authopenid/urls.py:40 msgid "sendkey/" msgstr "" -#: django_authopenid/urls.py:28 +#: django_authopenid/urls.py:41 msgid "verify/" msgstr "" -#: django_authopenid/urls.py:29 +#: django_authopenid/urls.py:42 msgid "openid/" msgstr "" -#: django_authopenid/urls.py:30 forum/urls.py:44 forum/urls.py:48 +#: django_authopenid/urls.py:43 forum/urls.py:49 forum/urls.py:53 msgid "delete/" msgstr "" -#: django_authopenid/views.py:124 +#: django_authopenid/urls.py:51 +msgid "external-login/forgot-password/" +msgstr "" + +#: django_authopenid/urls.py:54 +msgid "external-login/signup/" +msgstr "" + +#: django_authopenid/views.py:125 #, python-format msgid "OpenID %(openid_url)s is invalid" msgstr "" -#: django_authopenid/views.py:532 +#: django_authopenid/views.py:593 msgid "Welcome email subject line" msgstr "Welcome to the Q&A forum" -#: django_authopenid/views.py:627 +#: django_authopenid/views.py:699 msgid "Password changed." msgstr "" -#: django_authopenid/views.py:639 django_authopenid/views.py:645 +#: django_authopenid/views.py:711 django_authopenid/views.py:717 #, python-format msgid "your email needs to be validated see %(details_url)s" msgstr "" "Your email needs to be validated. Please see details here." -#: django_authopenid/views.py:666 +#: django_authopenid/views.py:738 msgid "Email verification subject line" msgstr "Verification Email from Q&A forum" -#: django_authopenid/views.py:752 +#: django_authopenid/views.py:829 msgid "your email was not changed" msgstr "" -#: django_authopenid/views.py:799 django_authopenid/views.py:951 +#: django_authopenid/views.py:877 django_authopenid/views.py:1035 #, python-format msgid "No OpenID %s found associated in our database" msgstr "" -#: django_authopenid/views.py:803 django_authopenid/views.py:958 +#: django_authopenid/views.py:881 django_authopenid/views.py:1042 #, python-format msgid "The OpenID %s isn't associated to current user logged in" msgstr "" -#: django_authopenid/views.py:811 +#: django_authopenid/views.py:889 msgid "Email Changed." msgstr "" -#: django_authopenid/views.py:886 +#: django_authopenid/views.py:967 msgid "This OpenID is already associated with another account." msgstr "" -#: django_authopenid/views.py:891 +#: django_authopenid/views.py:972 #, python-format msgid "OpenID %s is now associated with your account." msgstr "" -#: django_authopenid/views.py:961 +#: django_authopenid/views.py:1045 msgid "Account deleted." msgstr "" -#: django_authopenid/views.py:1004 +#: django_authopenid/views.py:1097 msgid "Request for new password" msgstr "" -#: django_authopenid/views.py:1017 +#: django_authopenid/views.py:1111 msgid "A new password and the activation link were sent to your email address." msgstr "" -#: django_authopenid/views.py:1047 +#: django_authopenid/views.py:1143 #, python-format msgid "" "Could not change password. Confirmation key '%s' is not " "registered." msgstr "" -#: django_authopenid/views.py:1056 +#: django_authopenid/views.py:1153 msgid "" "Can not change password. User don't exist anymore in our " "database." msgstr "" -#: django_authopenid/views.py:1065 +#: django_authopenid/views.py:1163 #, python-format msgid "Password changed for %s. You may now sign in." msgstr "" @@ -439,7 +370,7 @@ msgstr "" msgid "[deleted]" msgstr "" -#: forum/const.py:87 forum/views.py:849 forum/views.py:868 +#: forum/const.py:87 forum/views.py:796 forum/views.py:815 msgid "initial version" msgstr "" @@ -452,7 +383,7 @@ msgid "exclude ignored tags" msgstr "" #: forum/const.py:92 -msgid "allow only interesting tags" +msgid "allow only selected tags" msgstr "" #: forum/feed.py:18 @@ -463,373 +394,384 @@ msgstr "" msgid "latest questions" msgstr "" -#: forum/feed.py:19 forum/urls.py:52 -msgid "question/" -msgstr "" - -#: forum/forms.py:16 templates/answer_edit_tips.html:35 +#: forum/forms.py:18 templates/answer_edit_tips.html:35 #: templates/answer_edit_tips.html.py:39 templates/question_edit_tips.html:32 #: templates/question_edit_tips.html:37 msgid "title" msgstr "" -#: forum/forms.py:17 +#: forum/forms.py:19 msgid "please enter a descriptive title for your question" msgstr "" -#: forum/forms.py:22 +#: forum/forms.py:24 msgid "title must be > 10 characters" msgstr "" -#: forum/forms.py:31 +#: forum/forms.py:33 msgid "content" msgstr "" -#: forum/forms.py:37 +#: forum/forms.py:39 msgid "question content must be > 10 characters" msgstr "" -#: forum/forms.py:47 templates/header.html:28 templates/header.html.py:62 +#: forum/forms.py:49 templates/header.html:28 templates/header.html.py:56 msgid "tags" msgstr "" -#: forum/forms.py:49 +#: forum/forms.py:51 msgid "" "Tags are short keywords, with no spaces within. Up to five tags can be used." msgstr "" -#: forum/forms.py:56 templates/question_retag.html:39 +#: forum/forms.py:58 templates/question_retag.html:39 msgid "tags are required" msgstr "" -#: forum/forms.py:62 +#: forum/forms.py:64 msgid "please use 5 tags or less" msgstr "" -#: forum/forms.py:65 +#: forum/forms.py:67 msgid "tags must be shorter than 20 characters" msgstr "" -#: forum/forms.py:69 +#: forum/forms.py:71 msgid "" "please use following characters in tags: letters 'a-z', numbers, and " "characters '.-_#'" msgstr "" -#: forum/forms.py:79 templates/index.html:61 templates/index.html.py:73 +#: forum/forms.py:81 templates/index.html:61 templates/index.html.py:73 #: templates/post_contributor_info.html:7 #: templates/question_summary_list_roll.html:26 #: templates/question_summary_list_roll.html:38 templates/questions.html:92 -#: templates/questions.html.py:104 templates/unanswered.html:51 -#: templates/unanswered.html.py:63 +#: templates/questions.html.py:104 msgid "community wiki" msgstr "" -#: forum/forms.py:80 +#: forum/forms.py:82 msgid "" "if you choose community wiki option, the question and answer do not generate " "points and name of author will not be shown" msgstr "" -#: forum/forms.py:96 +#: forum/forms.py:98 msgid "update summary:" msgstr "" -#: forum/forms.py:97 +#: forum/forms.py:99 msgid "" "enter a brief summary of your revision (e.g. fixed spelling, grammar, " "improved style, this field is optional)" msgstr "" -#: forum/forms.py:100 +#: forum/forms.py:102 msgid "Automatically accept user's contributions for the email updates" msgstr "" -#: forum/forms.py:113 +#: forum/forms.py:118 msgid "Your name:" msgstr "" -#: forum/forms.py:114 +#: forum/forms.py:119 msgid "Email (not shared with anyone):" msgstr "" -#: forum/forms.py:115 +#: forum/forms.py:120 msgid "Your message:" msgstr "" -#: forum/forms.py:197 +#: forum/forms.py:202 msgid "this email does not have to be linked to gravatar" msgstr "" -#: forum/forms.py:198 +#: forum/forms.py:204 msgid "Screen name" msgstr "" -#: forum/forms.py:199 +#: forum/forms.py:205 msgid "Real name" msgstr "" -#: forum/forms.py:200 +#: forum/forms.py:206 msgid "Website" msgstr "" -#: forum/forms.py:201 +#: forum/forms.py:207 msgid "Location" msgstr "" -#: forum/forms.py:202 +#: forum/forms.py:208 msgid "Date of birth" msgstr "" -#: forum/forms.py:202 +#: forum/forms.py:208 msgid "will not be shown, used to calculate age, format: YYYY-MM-DD" msgstr "" -#: forum/forms.py:203 templates/authopenid/settings.html:21 +#: forum/forms.py:209 templates/authopenid/settings.html:21 msgid "Profile" msgstr "" -#: forum/forms.py:231 forum/forms.py:232 +#: forum/forms.py:240 forum/forms.py:241 msgid "this email has already been registered, please use another one" msgstr "" -#: forum/forms.py:238 +#: forum/forms.py:247 msgid "Choose email tag filter" msgstr "" -#: forum/forms.py:245 forum/forms.py:246 +#: forum/forms.py:262 forum/forms.py:263 msgid "weekly" msgstr "" -#: forum/forms.py:245 forum/forms.py:246 +#: forum/forms.py:262 forum/forms.py:263 msgid "no email" msgstr "" -#: forum/forms.py:246 +#: forum/forms.py:263 msgid "daily" msgstr "" -#: forum/forms.py:261 +#: forum/forms.py:278 msgid "Asked by me" msgstr "" -#: forum/forms.py:264 +#: forum/forms.py:281 msgid "Answered by me" msgstr "" -#: forum/forms.py:267 +#: forum/forms.py:284 msgid "Individually selected" msgstr "" -#: forum/forms.py:270 +#: forum/forms.py:287 msgid "Entire forum (tag filtered)" msgstr "" -#: forum/models.py:51 -msgid "Entire forum" +#: forum/forms.py:341 +msgid "okay, let's try!" +msgstr "" + +#: forum/forms.py:342 +msgid "no OSQA community email please, thanks" +msgstr "" + +#: forum/forms.py:345 +msgid "please choose one of the options above" msgstr "" #: forum/models.py:52 -msgid "Questions that I asked" +msgid "Entire forum" msgstr "" #: forum/models.py:53 -msgid "Questions that I answered" +msgid "Questions that I asked" msgstr "" #: forum/models.py:54 +msgid "Questions that I answered" +msgstr "" + +#: forum/models.py:55 msgid "Individually selected questions" msgstr "" -#: forum/models.py:57 +#: forum/models.py:58 msgid "Weekly" msgstr "" -#: forum/models.py:58 +#: forum/models.py:59 msgid "Daily" msgstr "" -#: forum/models.py:59 +#: forum/models.py:60 msgid "No email" msgstr "" -#: forum/models.py:301 +#: forum/models.py:321 #, python-format msgid "%(author)s modified the question" msgstr "" -#: forum/models.py:305 +#: forum/models.py:325 #, python-format msgid "%(people)s posted %(new_answer_count)s new answers" msgstr "" -#: forum/models.py:310 +#: forum/models.py:330 #, python-format msgid "%(people)s commented the question" msgstr "" -#: forum/models.py:315 +#: forum/models.py:335 #, python-format msgid "%(people)s commented answers" msgstr "" -#: forum/models.py:317 +#: forum/models.py:337 #, python-format msgid "%(people)s commented an answer" msgstr "" -#: forum/models.py:348 +#: forum/models.py:368 msgid "interesting" msgstr "" -#: forum/models.py:348 +#: forum/models.py:368 msgid "ignored" msgstr "" -#: forum/models.py:511 templates/badges.html:53 +#: forum/models.py:541 templates/badges.html:53 msgid "gold" msgstr "" -#: forum/models.py:512 templates/badges.html:61 +#: forum/models.py:542 templates/badges.html:61 msgid "silver" msgstr "" -#: forum/models.py:513 templates/badges.html:68 +#: forum/models.py:543 templates/badges.html:68 msgid "bronze" msgstr "" -#: forum/urls.py:21 +#: forum/urls.py:26 msgid "upfiles/" msgstr "" -#: forum/urls.py:25 +#: forum/urls.py:30 msgid "about/" msgstr "" -#: forum/urls.py:26 +#: forum/urls.py:31 msgid "faq/" msgstr "" -#: forum/urls.py:27 +#: forum/urls.py:32 msgid "privacy/" msgstr "" -#: forum/urls.py:28 +#: forum/urls.py:33 msgid "logout/" msgstr "" -#: forum/urls.py:29 forum/urls.py:30 forum/urls.py:31 forum/urls.py:48 +#: forum/urls.py:34 forum/urls.py:35 forum/urls.py:36 forum/urls.py:53 msgid "answers/" msgstr "" -#: forum/urls.py:29 forum/urls.py:41 forum/urls.py:44 forum/urls.py:48 +#: forum/urls.py:34 forum/urls.py:46 forum/urls.py:49 forum/urls.py:53 msgid "comments/" msgstr "" -#: forum/urls.py:30 forum/urls.py:35 forum/urls.py:70 +#: forum/urls.py:35 forum/urls.py:40 forum/urls.py:75 #: templates/user_info.html:45 msgid "edit/" msgstr "" -#: forum/urls.py:31 forum/urls.py:40 +#: forum/urls.py:36 forum/urls.py:45 msgid "revisions/" msgstr "" -#: forum/urls.py:32 forum/urls.py:33 forum/urls.py:34 forum/urls.py:35 -#: forum/urls.py:36 forum/urls.py:37 forum/urls.py:38 forum/urls.py:39 -#: forum/urls.py:40 forum/urls.py:41 forum/urls.py:44 +#: forum/urls.py:37 forum/urls.py:38 forum/urls.py:39 forum/urls.py:40 +#: forum/urls.py:41 forum/urls.py:42 forum/urls.py:43 forum/urls.py:44 +#: forum/urls.py:45 forum/urls.py:46 forum/urls.py:49 msgid "questions/" msgstr "" -#: forum/urls.py:33 forum/urls.py:80 +#: forum/urls.py:38 forum/urls.py:85 msgid "ask/" msgstr "" -#: forum/urls.py:34 +#: forum/urls.py:39 msgid "unanswered/" msgstr "" -#: forum/urls.py:36 +#: forum/urls.py:41 msgid "close/" msgstr "" -#: forum/urls.py:37 +#: forum/urls.py:42 msgid "reopen/" msgstr "" -#: forum/urls.py:38 +#: forum/urls.py:43 msgid "answer/" msgstr "" -#: forum/urls.py:39 +#: forum/urls.py:44 msgid "vote/" msgstr "" -#: forum/urls.py:42 +#: forum/urls.py:47 msgid "command/" msgstr "" -#: forum/urls.py:53 forum/urls.py:54 +#: forum/urls.py:57 forum/views.py:440 +msgid "question/" +msgstr "" + +#: forum/urls.py:58 forum/urls.py:59 msgid "tags/" msgstr "" -#: forum/urls.py:56 forum/urls.py:60 +#: forum/urls.py:61 forum/urls.py:65 msgid "mark-tag/" msgstr "" -#: forum/urls.py:56 +#: forum/urls.py:61 msgid "interesting/" msgstr "" -#: forum/urls.py:60 +#: forum/urls.py:65 msgid "ignored/" msgstr "" -#: forum/urls.py:64 +#: forum/urls.py:69 msgid "unmark-tag/" msgstr "" -#: forum/urls.py:68 forum/urls.py:70 forum/urls.py:71 +#: forum/urls.py:73 forum/urls.py:75 forum/urls.py:76 msgid "users/" msgstr "" -#: forum/urls.py:69 +#: forum/urls.py:74 msgid "moderate-user/" msgstr "" -#: forum/urls.py:72 forum/urls.py:73 +#: forum/urls.py:77 forum/urls.py:78 msgid "badges/" msgstr "" -#: forum/urls.py:74 +#: forum/urls.py:79 msgid "messages/" msgstr "" -#: forum/urls.py:74 +#: forum/urls.py:79 msgid "markread/" msgstr "" -#: forum/urls.py:76 +#: forum/urls.py:81 msgid "nimda/" msgstr "" -#: forum/urls.py:78 +#: forum/urls.py:83 msgid "upload/" msgstr "" -#: forum/urls.py:79 forum/urls.py:80 forum/urls.py:81 +#: forum/urls.py:84 forum/urls.py:85 forum/urls.py:86 msgid "books/" msgstr "" -#: forum/urls.py:82 +#: forum/urls.py:87 msgid "search/" msgstr "" -#: forum/urls.py:83 +#: forum/urls.py:88 msgid "feedback/" msgstr "" -#: forum/urls.py:84 +#: forum/urls.py:89 forum/urls.py:90 msgid "account/" msgstr "" @@ -929,49 +871,49 @@ msgstr "" msgid "We look forward to hearing your feedback! Please, give it next time :)" msgstr "" -#: forum/views.py:1150 +#: forum/views.py:1098 #, python-format msgid "subscription saved, %(email)s needs validation, see %(details_url)s" msgstr "" "Your subscription is saved, but email address %(email)s needs to be " "validated, please see more details here" -#: forum/views.py:1158 +#: forum/views.py:1106 msgid "email update frequency has been set to daily" msgstr "" -#: forum/views.py:2032 +#: forum/views.py:1982 forum/views.py:1986 msgid "changes saved" msgstr "" -#: forum/views.py:2038 +#: forum/views.py:1992 msgid "email updates canceled" msgstr "" -#: forum/views.py:2207 +#: forum/views.py:2159 msgid "uploading images is limited to users with >60 reputation points" msgstr "sorry, file uploading requires karma >60" -#: forum/views.py:2209 +#: forum/views.py:2161 msgid "allowed file types are 'jpg', 'jpeg', 'gif', 'bmp', 'png', 'tiff'" msgstr "" -#: forum/views.py:2211 +#: forum/views.py:2163 #, python-format msgid "maximum upload file size is %sK" msgstr "" -#: forum/views.py:2213 +#: forum/views.py:2165 #, python-format msgid "" "Error uploading file. Please contact the site administrator. Thank you. %s" msgstr "" -#: forum/management/commands/send_email_alerts.py:160 +#: forum/management/commands/send_email_alerts.py:156 msgid "email update message subject" msgstr "news from Q&A forum" -#: forum/management/commands/send_email_alerts.py:161 +#: forum/management/commands/send_email_alerts.py:158 #, python-format msgid "%(name)s, this is an update message header for a question" msgid_plural "%(name)s, this is an update message header for %(num)d questions" @@ -982,11 +924,11 @@ msgstr[1] "" "

Dear %(name)s,

The following %(num)d questions have been updated on " "the Q&A forum:

" -#: forum/management/commands/send_email_alerts.py:172 +#: forum/management/commands/send_email_alerts.py:169 msgid "new question" msgstr "" -#: forum/management/commands/send_email_alerts.py:182 +#: forum/management/commands/send_email_alerts.py:179 #, python-format msgid "There is also one question which was recently " msgid_plural "" @@ -994,12 +936,12 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: forum/management/commands/send_email_alerts.py:187 +#: forum/management/commands/send_email_alerts.py:184 msgid "" "Perhaps you could look up previously sent forum reminders in your mailbox." msgstr "" -#: forum/management/commands/send_email_alerts.py:191 +#: forum/management/commands/send_email_alerts.py:188 #, python-format msgid "" "go to %(link)s to change frequency of email updates or %(email)s " @@ -1011,39 +953,31 @@ msgstr "" "administrator at %(email)s.

Sincerely,

Your friendly Q&A forum " "server.

" -#: forum/templatetags/extra_tags.py:163 forum/templatetags/extra_tags.py:192 +#: forum/templatetags/extra_tags.py:164 forum/templatetags/extra_tags.py:193 #: templates/header.html:33 msgid "badges" msgstr "" -#: forum/templatetags/extra_tags.py:164 forum/templatetags/extra_tags.py:191 +#: forum/templatetags/extra_tags.py:165 forum/templatetags/extra_tags.py:192 msgid "reputation points" msgstr "karma" -#: forum/templatetags/extra_tags.py:247 -msgid "%b %d at %H:%M" -msgstr "" - -#: forum/templatetags/extra_tags.py:249 -msgid "%b %d '%y at %H:%M" -msgstr "" - -#: forum/templatetags/extra_tags.py:251 +#: forum/templatetags/extra_tags.py:252 msgid "2 days ago" msgstr "" -#: forum/templatetags/extra_tags.py:253 +#: forum/templatetags/extra_tags.py:254 msgid "yesterday" msgstr "" -#: forum/templatetags/extra_tags.py:255 +#: forum/templatetags/extra_tags.py:256 #, python-format msgid "%(hr)d hour ago" msgid_plural "%(hr)d hours ago" msgstr[0] "" msgstr[1] "" -#: forum/templatetags/extra_tags.py:257 +#: forum/templatetags/extra_tags.py:258 #, python-format msgid "%(min)d min ago" msgid_plural "%(min)d mins ago" @@ -1121,38 +1055,6 @@ msgstr "" msgid "About" msgstr "" -#: templates/about.html:21 -msgid "" -"CNPROG Q&A is a " -"collaboratively edited question\n" -" and answer site created for the CNPROG " -"community.\n" -" " -msgstr "" - -#: templates/about.html:25 -msgid "" -"Here you can ask and answer questions, " -"comment\n" -" and vote for the questions of others and their answers. " -"Both questions and answers\n" -" can be revised and improved. Questions can be " -"tagged with\n" -" the relevant keywords to simplify future access and organize the " -"accumulated material." -msgstr "" - -#: templates/about.html:31 -msgid "" -"This Q&A site is moderated by its members, " -"hopefully - including yourself!\n" -" Moderation rights are gradually assigned to the site users based on the " -"accumulated \"reputation\"\n" -" points. These points are added to the users account when others vote for " -"his/her questions or answers.\n" -" These points (very) roughly reflect the level of trust of the community." -msgstr "" - #: templates/answer_edit.html:5 templates/answer_edit.html.py:48 msgid "Edit answer" msgstr "" @@ -1436,7 +1338,7 @@ msgstr "" #: templates/book.html:105 templates/index.html:49 #: templates/question_summary_list_roll.html:14 templates/questions.html:80 -#: templates/unanswered.html:39 templates/users_questions.html:32 +#: templates/users_questions.html:32 msgid "votes" msgstr "" @@ -1446,14 +1348,13 @@ msgstr "" #: templates/book.html:115 templates/index.html:50 #: templates/question_summary_list_roll.html:15 templates/questions.html:81 -#: templates/unanswered.html:40 templates/users_questions.html:40 +#: templates/users_questions.html:40 msgid "views" msgstr "" #: templates/book.html:125 templates/index.html:105 #: templates/question.html:480 templates/question_summary_list_roll.html:52 #: templates/questions.html:136 templates/tags.html:49 -#: templates/unanswered.html:95 templates/unanswered.html.py:122 #: templates/users_questions.html:52 msgid "using tags" msgstr "" @@ -1699,7 +1600,7 @@ msgstr "" "Please ask your question, help make our " "community better!" -#: templates/faq.html:128 templates/header.html:27 templates/header.html.py:61 +#: templates/faq.html:128 templates/header.html:27 templates/header.html.py:55 msgid "questions" msgstr "" @@ -1775,18 +1676,10 @@ msgid "faq" msgstr "" #: templates/footer.html:10 -msgid "blog" -msgstr "" - -#: templates/footer.html:11 -msgid "contact us" -msgstr "" - -#: templates/footer.html:12 msgid "privacy policy" msgstr "" -#: templates/footer.html:21 +#: templates/footer.html:19 msgid "give feedback" msgstr "" @@ -1802,7 +1695,7 @@ msgstr "" msgid "back to home page" msgstr "" -#: templates/header.html:29 templates/header.html.py:63 +#: templates/header.html:29 templates/header.html.py:57 msgid "users" msgstr "" @@ -1814,15 +1707,11 @@ msgstr "" msgid "unanswered questions" msgstr "unanswered" -#: templates/header.html:38 -msgid "my profile" -msgstr "" - -#: templates/header.html:42 +#: templates/header.html:36 msgid "ask a question" msgstr "" -#: templates/header.html:57 +#: templates/header.html:51 msgid "search" msgstr "" @@ -1839,7 +1728,6 @@ msgid "last updated questions" msgstr "" #: templates/index.html:27 templates/questions.html:47 -#: templates/unanswered.html:21 msgid "newest" msgstr "" @@ -1864,27 +1752,23 @@ msgid "all questions" msgstr "" #: templates/index.html:48 templates/question_summary_list_roll.html:13 -#: templates/questions.html:79 templates/unanswered.html:38 -#: templates/users_questions.html:36 +#: templates/questions.html:79 templates/users_questions.html:36 msgid "answers" msgstr "" #: templates/index.html:80 templates/index.html.py:94 #: templates/questions.html:111 templates/questions.html.py:125 -#: templates/unanswered.html:70 templates/unanswered.html.py:84 msgid "Posted:" msgstr "" #: templates/index.html:83 templates/index.html.py:88 #: templates/questions.html:114 templates/questions.html.py:119 -#: templates/unanswered.html:73 templates/unanswered.html.py:78 msgid "Updated:" msgstr "" #: templates/index.html:105 templates/question.html:480 #: templates/question_summary_list_roll.html:52 templates/questions.html:136 -#: templates/tags.html:49 templates/unanswered.html:95 -#: templates/unanswered.html.py:122 templates/users_questions.html:52 +#: templates/tags.html:49 templates/users_questions.html:52 msgid "see questions tagged" msgstr "" @@ -1929,7 +1813,7 @@ msgstr "" msgid "complete list of questions" msgstr "list of all questions" -#: templates/index.html:161 templates/authopenid/signup.html:18 +#: templates/index.html:161 templates/authopenid/signup.html:26 msgid "or" msgstr "" @@ -1958,6 +1842,14 @@ msgstr "" msgid "Logout now" msgstr "Logout Now" +#: templates/notarobot.html:3 +msgid "Please prove that you are a Human Being" +msgstr "" + +#: templates/notarobot.html:10 +msgid "I am a Human Being" +msgstr "" + #: templates/pagesize.html:6 msgid "posts per page" msgstr "" @@ -2414,8 +2306,7 @@ msgstr "" msgid "Found by title" msgstr "" -#: templates/questions.html:39 templates/unanswered.html:8 -#: templates/unanswered.html.py:19 +#: templates/questions.html:39 msgid "Unanswered questions" msgstr "" @@ -2423,7 +2314,7 @@ msgstr "" msgid "All questions" msgstr "" -#: templates/questions.html:47 templates/unanswered.html:21 +#: templates/questions.html:47 msgid "most recently asked questions" msgstr "" @@ -2480,14 +2371,12 @@ msgid_plural "" " " msgstr[0] "" "\n" -"
%(q_num)s

question " -"containing %(searchtitle)s" +"

%(q_num)s

question containing " +"%(searchtitle)s

" msgstr[1] "" "\n" -"
%(q_num)s

questions " -"containing %(searchtitle)s" +"

%(q_num)s

questions containing " +"%(searchtitle)s

" #: templates/questions.html:177 #, python-format @@ -2576,7 +2465,7 @@ msgstr "" msgid "Most voted questions are shown first." msgstr "" -#: templates/questions.html:224 templates/unanswered.html:118 +#: templates/questions.html:224 msgid "Related tags" msgstr "Tags" @@ -2681,13 +2570,6 @@ msgstr "" msgid "Nothing found" msgstr "" -#: templates/unanswered.html:114 -#, python-format -msgid "have %(num_q)s unanswered questions" -msgstr "" -"
%(num_q)s
questions without " -"accepted answers" - #: templates/user_edit.html:6 msgid "Edit user profile" msgstr "" @@ -2709,6 +2591,10 @@ msgstr "gravatar" msgid "Registered user" msgstr "" +#: templates/user_edit.html:43 +msgid "Screen Name" +msgstr "" + #: templates/user_edit.html:86 templates/user_email_subscriptions.html:20 msgid "Update" msgstr "" @@ -3147,25 +3033,36 @@ msgstr "" "retrieve your unique avatar image - gravatar.

" -#: templates/authopenid/complete.html:40 +#: templates/authopenid/complete.html:38 +#, python-format +msgid "register new Facebook connect account info, see %(gravatar_faq_url)s" +msgstr "" +"

You are here for the first time with your " +"Facebook login. Please create your screen name " +"and save your email address. Saved email address will let " +"you subscribe for the updates on the most interesting " +"questions and will be used to create and retrieve your unique avatar image - " +"gravatar.

" + +#: templates/authopenid/complete.html:42 msgid "This account already exists, please use another." msgstr "" -#: templates/authopenid/complete.html:55 +#: templates/authopenid/complete.html:57 msgid "Sorry, looks like we have some errors:" msgstr "" -#: templates/authopenid/complete.html:76 +#: templates/authopenid/complete.html:82 msgid "Screen name label" msgstr "Screen Name (will be shown to others)" -#: templates/authopenid/complete.html:83 +#: templates/authopenid/complete.html:89 msgid "Email address label" msgstr "" "Email Address (will not be shared with " "anyone, must be valid)" -#: templates/authopenid/complete.html:89 templates/authopenid/signup.html:15 +#: templates/authopenid/complete.html:95 templates/authopenid/signup.html:18 msgid "receive updates motivational blurb" msgstr "" "Receive forum updates by email - this will help our " @@ -3174,31 +3071,31 @@ msgstr "" "week - only when there is anything new.
If you like, please " "adjust this now or any time later from your user account." -#: templates/authopenid/complete.html:91 +#: templates/authopenid/complete.html:99 msgid "Tag filter tool will be your right panel, once you log in." msgstr "" -#: templates/authopenid/complete.html:92 +#: templates/authopenid/complete.html:100 msgid "create account" msgstr "Signup" -#: templates/authopenid/complete.html:101 +#: templates/authopenid/complete.html:109 msgid "Existing account" msgstr "" -#: templates/authopenid/complete.html:102 +#: templates/authopenid/complete.html:110 msgid "user name" msgstr "" -#: templates/authopenid/complete.html:103 +#: templates/authopenid/complete.html:111 msgid "password" msgstr "" -#: templates/authopenid/complete.html:108 +#: templates/authopenid/complete.html:118 msgid "Register" msgstr "" -#: templates/authopenid/complete.html:109 templates/authopenid/signin.html:140 +#: templates/authopenid/complete.html:119 templates/authopenid/signin.html:151 msgid "Forgot your password?" msgstr "" @@ -3292,7 +3189,10 @@ msgid "Traditional login information" msgstr "" #: templates/authopenid/external_legacy_login_info.html:12 -msgid "how to login with password through external login website" +#, python-format +msgid "" +"how to login with password through external login website or use %" +"(feedback_url)s" msgstr "" #: templates/authopenid/sendpw.html:4 templates/authopenid/sendpw.html.py:7 @@ -3397,14 +3297,14 @@ msgstr "" "have to remember another one. CNPROG option requires your login name and " "password entered here.

" -#: templates/authopenid/signin.html:117 +#: templates/authopenid/signin.html:128 msgid "Enter your Provider user name" msgstr "" "Enter your Provider user name
(or " "select another login method above)" -#: templates/authopenid/signin.html:124 +#: templates/authopenid/signin.html:135 msgid "" "Enter your OpenID " "web address" @@ -3413,55 +3313,55 @@ msgstr "" "openid.net\">OpenID web address
(or choose " "another login method above)" -#: templates/authopenid/signin.html:126 templates/authopenid/signin.html:138 +#: templates/authopenid/signin.html:137 templates/authopenid/signin.html:149 msgid "Login" msgstr "" -#: templates/authopenid/signin.html:129 +#: templates/authopenid/signin.html:140 msgid "Enter your login name and password" msgstr "" "Enter your CNPROG login and password
(or select your OpenID provider above)" -#: templates/authopenid/signin.html:133 +#: templates/authopenid/signin.html:144 msgid "Login name" msgstr "" -#: templates/authopenid/signin.html:135 +#: templates/authopenid/signin.html:146 msgid "Password" msgstr "" -#: templates/authopenid/signin.html:139 +#: templates/authopenid/signin.html:150 msgid "Create account" msgstr "" -#: templates/authopenid/signin.html:149 +#: templates/authopenid/signin.html:160 msgid "Why use OpenID?" msgstr "" -#: templates/authopenid/signin.html:152 +#: templates/authopenid/signin.html:163 msgid "with openid it is easier" msgstr "With the OpenID you don't need to create new username and password." -#: templates/authopenid/signin.html:155 +#: templates/authopenid/signin.html:166 msgid "reuse openid" msgstr "You can safely re-use the same login for all OpenID-enabled websites." -#: templates/authopenid/signin.html:158 +#: templates/authopenid/signin.html:169 msgid "openid is widely adopted" msgstr "" "There are > 160,000,000 OpenID account in use. Over 10,000 sites are OpenID-" "enabled." -#: templates/authopenid/signin.html:161 +#: templates/authopenid/signin.html:172 msgid "openid is supported open standard" msgstr "OpenID is based on an open standard, supported by many organizations." -#: templates/authopenid/signin.html:166 +#: templates/authopenid/signin.html:177 msgid "Find out more" msgstr "" -#: templates/authopenid/signin.html:167 +#: templates/authopenid/signin.html:178 msgid "Get OpenID" msgstr "" @@ -3482,14 +3382,104 @@ msgstr "" "simply reuse your external login (e.g. Gmail or AOL) without ever sharing " "your login details with anyone and having to remember yet another password." -#: templates/authopenid/signup.html:17 +#: templates/authopenid/signup.html:19 +msgid "" +"Please select your preferred email update schedule for the following groups " +"of questions:" +msgstr "" + +#: templates/authopenid/signup.html:23 +msgid "" +"Please read and type in the two words below to help us prevent automated " +"account creation." +msgstr "" + +#: templates/authopenid/signup.html:25 msgid "Create Account" msgstr "" -#: templates/authopenid/signup.html:19 +#: templates/authopenid/signup.html:27 msgid "return to OpenID login" msgstr "" +#: templates/fbconnect/xd_receiver.html:5 +#, python-format +msgid "Connect to %(APP_SHORT_NAME)s with Facebook!" +msgstr "" + +#: utils/forms.py:27 +msgid "this field is required" +msgstr "" + +#: utils/forms.py:42 +msgid "choose a username" +msgstr "Choose screen name" + +#: utils/forms.py:47 +msgid "user name is required" +msgstr "" + +#: utils/forms.py:48 +msgid "sorry, this name is taken, please choose another" +msgstr "" + +#: utils/forms.py:49 +msgid "sorry, this name is not allowed, please choose another" +msgstr "" + +#: utils/forms.py:50 +msgid "sorry, there is no user with this name" +msgstr "" + +#: utils/forms.py:51 +msgid "sorry, we have a serious error - user name is taken by several users" +msgstr "" + +#: utils/forms.py:52 +msgid "user name can only consist of letters, empty space and underscore" +msgstr "" + +#: utils/forms.py:100 +msgid "your email address" +msgstr "Your email (never shared)" + +#: utils/forms.py:101 +msgid "email address is required" +msgstr "" + +#: utils/forms.py:102 +msgid "please enter a valid email address" +msgstr "" + +#: utils/forms.py:103 +msgid "this email is already used by someone else, please choose another" +msgstr "" + +#: utils/forms.py:128 +msgid "choose password" +msgstr "Password" + +#: utils/forms.py:129 +msgid "password is required" +msgstr "" + +#: utils/forms.py:132 +msgid "retype password" +msgstr "Password (please retype)" + +#: utils/forms.py:133 +msgid "please, retype your password" +msgstr "" + +#: utils/forms.py:134 +msgid "sorry, entered passwords did not match, please try again" +msgstr "" + +#~ msgid "have %(num_q)s unanswered questions" +#~ msgstr "" +#~ "
%(num_q)s
questions without " +#~ "accepted answers" + #~ msgid "" #~ "\n" #~ "\t\t\t\thave total %(q_num)s questions\n" diff --git a/session_messages/__init__.py b/session_messages/__init__.py deleted file mode 100644 index 4dd10a6b..00000000 --- a/session_messages/__init__.py +++ /dev/null @@ -1,37 +0,0 @@ -""" -Lightweight session-based messaging system. - -Time-stamp: <2009-03-10 19:22:29 carljm __init__.py> - -""" -VERSION = (0, 1, 'pre') - -def create_message (request, message): - """ - Create a message in the current session. - - """ - assert hasattr(request, 'session'), "django-session-messages requires session middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.sessions.middleware.SessionMiddleware'." - - try: - request.session['messages'].append(message) - except KeyError: - request.session['messages'] = [message] - -def get_and_delete_messages (request, include_auth=False): - """ - Get and delete all messages for current session. - - Optionally also fetches user messages from django.contrib.auth. - - """ - assert hasattr(request, 'session'), "django-session-messages requires session middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.sessions.middleware.SessionMiddleware'." - - messages = request.session.pop('messages', []) - import logging - - if include_auth and request.user.is_authenticated(): - messages.extend(request.user.get_and_delete_messages()) - - return messages - diff --git a/session_messages/context_processors.py b/session_messages/context_processors.py deleted file mode 100644 index df9840fd..00000000 --- a/session_messages/context_processors.py +++ /dev/null @@ -1,48 +0,0 @@ -""" -Context processor for lightweight session messages. - -Time-stamp: <2008-07-19 23:16:19 carljm context_processors.py> - -""" -from django.utils.encoding import StrAndUnicode - -from session_messages import get_and_delete_messages - -def session_messages (request): - """ - Returns session messages for the current session. - - """ - return { 'session_messages': LazyMessages(request) } - -class LazyMessages (StrAndUnicode): - """ - Lazy message container, so messages aren't actually retrieved from - session and deleted until the template asks for them. - - """ - def __init__(self, request): - self.request = request - - def __iter__(self): - return iter(self.messages) - - def __len__(self): - return len(self.messages) - - def __nonzero__(self): - return bool(self.messages) - - def __unicode__(self): - return unicode(self.messages) - - def __getitem__(self, *args, **kwargs): - return self.messages.__getitem__(*args, **kwargs) - - def _get_messages(self): - if hasattr(self, '_messages'): - return self._messages - self._messages = get_and_delete_messages(self.request) - return self._messages - messages = property(_get_messages) - diff --git a/session_messages/models.py b/session_messages/models.py deleted file mode 100644 index b67ead6d..00000000 --- a/session_messages/models.py +++ /dev/null @@ -1,3 +0,0 @@ -""" -blank models.py -""" diff --git a/templates/authopenid/complete.html b/templates/authopenid/complete.html index c967e8e2..62970e38 100644 --- a/templates/authopenid/complete.html +++ b/templates/authopenid/complete.html @@ -95,6 +95,9 @@ parameters:

{% trans "receive updates motivational blurb" %}

{{email_feeds_form.subscribe}} + {% if email_feeds_form.errors %} +

{% trans "please select one of the options above" %}

+ {% endif %}

{% trans "Tag filter tool will be your right panel, once you log in." %}

diff --git a/templates/authopenid/signin.html b/templates/authopenid/signin.html index 51b8aa7f..aacdd490 100755 --- a/templates/authopenid/signin.html +++ b/templates/authopenid/signin.html @@ -71,7 +71,7 @@ http://{your-openid-url} --> -
  • {{form.password1}}{{form.password1.errors}}
  • {{form.password2}}{{form.password2.errors}}
  • - - +

    {% trans "receive updates motivational blurb" %}

    {{email_feeds_form.subscribe}} + {% if email_feeds_form.errors %} +

    {% trans "please select one of the options above" %}

    + {% endif %}
    {{form.recaptcha}} diff --git a/templates/content/style/style.css b/templates/content/style/style.css index aba67eee..175fcb66 100644 --- a/templates/content/style/style.css +++ b/templates/content/style/style.css @@ -1265,6 +1265,9 @@ p.space-above { .margin-bottom { margin-bottom: 10px; } +.margin-top { + margin-top: 10px; +} .inline-block { display:inline-block; } diff --git a/templates/fbconnect/xd_receiver.html b/templates/fbconnect/xd_receiver.html index c67c57b7..a03c61bc 100755 --- a/templates/fbconnect/xd_receiver.html +++ b/templates/fbconnect/xd_receiver.html @@ -1 +1,10 @@ - + + +{% load i18n %} + + {% blocktrans %}Connect to {{APP_SHORT_NAME}} with Facebook!{% endblocktrans %} + </head> + <body> + <script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/XdCommReceiver.js" type="text/javascript"></script> + </body> +</html> -- cgit v1.2.3-1-g7c22 From 3c4c71fc19865bfb75231c425fae31c6b2c211de Mon Sep 17 00:00:00 2001 From: Evgeny Fadeev <evgeny.fadeev@gmail.com> Date: Tue, 9 Feb 2010 16:48:38 -0500 Subject: started working towards skinning forum app - first step - move templates to app --- forum/templates/404.html | 49 + forum/templates/500.html | 35 + forum/templates/about.html | 36 + forum/templates/answer_edit.html | 85 + forum/templates/answer_edit_tips.html | 55 + forum/templates/ask.html | 134 + forum/templates/authopenid/changeemail.html | 88 + forum/templates/authopenid/changeopenid.html | 35 + forum/templates/authopenid/changepw.html | 18 + forum/templates/authopenid/complete.html | 130 + forum/templates/authopenid/confirm_email.txt | 13 + forum/templates/authopenid/delete.html | 39 + forum/templates/authopenid/email_validation.txt | 15 + .../authopenid/external_legacy_login_info.html | 15 + forum/templates/authopenid/failure.html | 14 + forum/templates/authopenid/sendpw.html | 26 + forum/templates/authopenid/sendpw_email.txt | 9 + forum/templates/authopenid/settings.html | 43 + forum/templates/authopenid/signin.html | 186 + forum/templates/authopenid/signup.html | 32 + forum/templates/authopenid/yadis.xrdf | 14 + forum/templates/badge.html | 37 + forum/templates/badges.html | 76 + forum/templates/base.html | 95 + forum/templates/base_content.html | 93 + forum/templates/book.html | 152 + forum/templates/close.html | 36 + .../content/images/blue-up-arrow-h18px.png | Bin 0 -> 593 bytes forum/templates/content/images/box-arrow.gif | Bin 0 -> 69 bytes forum/templates/content/images/bullet_green.gif | Bin 0 -> 64 bytes forum/templates/content/images/cc-88x31.png | Bin 0 -> 5460 bytes forum/templates/content/images/cc-wiki.png | Bin 0 -> 2333 bytes .../templates/content/images/close-small-dark.png | Bin 0 -> 226 bytes .../templates/content/images/close-small-hover.png | Bin 0 -> 337 bytes forum/templates/content/images/close-small.png | Bin 0 -> 293 bytes forum/templates/content/images/dash.gif | Bin 0 -> 44 bytes .../content/images/djangomade124x25_grey.gif | Bin 0 -> 2035 bytes forum/templates/content/images/dot-g.gif | Bin 0 -> 61 bytes forum/templates/content/images/dot-list.gif | Bin 0 -> 56 bytes forum/templates/content/images/edit.png | Bin 0 -> 758 bytes .../content/images/expander-arrow-hide.gif | Bin 0 -> 126 bytes .../content/images/expander-arrow-show.gif | Bin 0 -> 135 bytes forum/templates/content/images/favicon.gif | Bin 0 -> 3918 bytes forum/templates/content/images/feed-icon-small.png | Bin 0 -> 689 bytes .../content/images/gray-up-arrow-h18px.png | Bin 0 -> 383 bytes forum/templates/content/images/grippie.png | Bin 0 -> 162 bytes forum/templates/content/images/indicator.gif | Bin 0 -> 2545 bytes forum/templates/content/images/logo.gif | Bin 0 -> 2114 bytes forum/templates/content/images/logo.png | Bin 0 -> 2081 bytes forum/templates/content/images/logo1.png | Bin 0 -> 2752 bytes forum/templates/content/images/logo2.png | Bin 0 -> 2124 bytes forum/templates/content/images/medala.gif | Bin 0 -> 801 bytes forum/templates/content/images/medala_on.gif | Bin 0 -> 957 bytes forum/templates/content/images/new.gif | Bin 0 -> 635 bytes forum/templates/content/images/nophoto.png | Bin 0 -> 696 bytes forum/templates/content/images/openid.gif | Bin 0 -> 910 bytes forum/templates/content/images/openid/aol.gif | Bin 0 -> 2205 bytes forum/templates/content/images/openid/blogger.ico | Bin 0 -> 3638 bytes forum/templates/content/images/openid/claimid.ico | Bin 0 -> 3638 bytes forum/templates/content/images/openid/facebook.gif | Bin 0 -> 2075 bytes forum/templates/content/images/openid/flickr.ico | Bin 0 -> 1150 bytes forum/templates/content/images/openid/google.gif | Bin 0 -> 1596 bytes .../content/images/openid/livejournal.ico | Bin 0 -> 5222 bytes forum/templates/content/images/openid/myopenid.ico | Bin 0 -> 2862 bytes .../content/images/openid/openid-inputicon.gif | Bin 0 -> 237 bytes forum/templates/content/images/openid/openid.gif | Bin 0 -> 740 bytes .../templates/content/images/openid/technorati.ico | Bin 0 -> 2294 bytes forum/templates/content/images/openid/verisign.ico | Bin 0 -> 4710 bytes forum/templates/content/images/openid/vidoop.ico | Bin 0 -> 1406 bytes .../templates/content/images/openid/wordpress.ico | Bin 0 -> 1150 bytes forum/templates/content/images/openid/yahoo.gif | Bin 0 -> 1682 bytes forum/templates/content/images/quest-bg.gif | Bin 0 -> 294 bytes .../templates/content/images/vote-accepted-on.png | Bin 0 -> 1124 bytes forum/templates/content/images/vote-accepted.png | Bin 0 -> 1058 bytes .../content/images/vote-arrow-down-on.png | Bin 0 -> 905 bytes forum/templates/content/images/vote-arrow-down.png | Bin 0 -> 876 bytes .../templates/content/images/vote-arrow-up-on.png | Bin 0 -> 906 bytes forum/templates/content/images/vote-arrow-up.png | Bin 0 -> 843 bytes .../templates/content/images/vote-favorite-off.png | Bin 0 -> 930 bytes .../templates/content/images/vote-favorite-on.png | Bin 0 -> 1023 bytes .../templates/content/jquery-openid/images/aol.gif | Bin 0 -> 2205 bytes .../content/jquery-openid/images/blogger-1.png | Bin 0 -> 432 bytes .../content/jquery-openid/images/blogger.ico | Bin 0 -> 3638 bytes .../content/jquery-openid/images/claimid-0.png | Bin 0 -> 629 bytes .../content/jquery-openid/images/claimid.ico | Bin 0 -> 3638 bytes .../content/jquery-openid/images/facebook.gif | Bin 0 -> 2075 bytes .../content/jquery-openid/images/flickr.ico | Bin 0 -> 1150 bytes .../content/jquery-openid/images/flickr.png | Bin 0 -> 426 bytes .../content/jquery-openid/images/google.gif | Bin 0 -> 1596 bytes .../content/jquery-openid/images/livejournal-1.png | Bin 0 -> 713 bytes .../content/jquery-openid/images/livejournal.ico | Bin 0 -> 5222 bytes .../content/jquery-openid/images/myopenid-2.png | Bin 0 -> 511 bytes .../content/jquery-openid/images/myopenid.ico | Bin 0 -> 2862 bytes .../jquery-openid/images/openid-inputicon.gif | Bin 0 -> 237 bytes .../content/jquery-openid/images/openid.gif | Bin 0 -> 740 bytes .../content/jquery-openid/images/openidico.png | Bin 0 -> 654 bytes .../content/jquery-openid/images/openidico16.png | Bin 0 -> 554 bytes .../content/jquery-openid/images/technorati-1.png | Bin 0 -> 606 bytes .../content/jquery-openid/images/technorati.ico | Bin 0 -> 2294 bytes .../content/jquery-openid/images/verisign-2.png | Bin 0 -> 859 bytes .../content/jquery-openid/images/verisign.ico | Bin 0 -> 4710 bytes .../content/jquery-openid/images/vidoop.ico | Bin 0 -> 1406 bytes .../content/jquery-openid/images/vidoop.png | Bin 0 -> 499 bytes .../content/jquery-openid/images/wordpress.ico | Bin 0 -> 1150 bytes .../content/jquery-openid/images/wordpress.png | Bin 0 -> 566 bytes .../content/jquery-openid/images/yahoo.gif | Bin 0 -> 1682 bytes .../content/jquery-openid/jquery.openid.js | 111 + forum/templates/content/jquery-openid/openid.css | 75 + forum/templates/content/js/com.cnprog.admin.js | 13 + forum/templates/content/js/com.cnprog.editor.js | 68 + forum/templates/content/js/com.cnprog.i18n.js | 159 + forum/templates/content/js/com.cnprog.post.js | 691 ++++ .../content/js/com.cnprog.tag_selector.js | 171 + forum/templates/content/js/com.cnprog.utils.js | 128 + forum/templates/content/js/compress.bat | 5 + forum/templates/content/js/excanvas.pack.js | 1 + forum/templates/content/js/flot-build.bat | 3 + forum/templates/content/js/jquery-1.2.6.js | 3549 ++++++++++++++++++++ forum/templates/content/js/jquery-1.2.6.min.js | 32 + .../templates/content/js/jquery.ajaxfileupload.js | 195 ++ forum/templates/content/js/jquery.flot.js | 2421 +++++++++++++ forum/templates/content/js/jquery.flot.pack.js | 1 + forum/templates/content/js/jquery.form.js | 654 ++++ forum/templates/content/js/jquery.i18n.js | 133 + forum/templates/content/js/jquery.openid.js | 176 + forum/templates/content/js/jquery.validate.pack.js | 15 + forum/templates/content/js/se_hilite.js | 1 + forum/templates/content/js/se_hilite_src.js | 273 ++ .../content/js/wmd/images/wmd-buttons.png | Bin 0 -> 7465 bytes forum/templates/content/js/wmd/showdown-min.js | 1 + forum/templates/content/js/wmd/showdown.js | 1309 ++++++++ forum/templates/content/js/wmd/wmd-min.js | 1 + forum/templates/content/js/wmd/wmd-test.html | 158 + forum/templates/content/js/wmd/wmd.css | 129 + forum/templates/content/js/wmd/wmd.js | 2388 +++++++++++++ forum/templates/content/js/yuicompressor-2.4.2.jar | Bin 0 -> 851219 bytes forum/templates/content/style/default.css | 1754 ++++++++++ .../content/style/jquery.autocomplete.css | 49 + forum/templates/content/style/openid.css | 45 + forum/templates/content/style/prettify.css | 27 + forum/templates/content/style/style.css | 1469 ++++++++ forum/templates/edit_user_email_feeds_form.html | 4 + forum/templates/faq.html | 144 + forum/templates/fbconnect/xd_receiver.html | 10 + forum/templates/feedback.html | 55 + forum/templates/feedback_email.txt | 19 + forum/templates/feeds/rss_description.html | 1 + forum/templates/feeds/rss_title.html | 1 + forum/templates/footer.html | 48 + forum/templates/header.html | 65 + forum/templates/index.html | 164 + forum/templates/logout.html | 23 + forum/templates/notarobot.html | 15 + forum/templates/pagesize.html | 27 + forum/templates/paginator.html | 38 + forum/templates/post_contributor_info.html | 55 + forum/templates/privacy.html | 42 + forum/templates/question.html | 510 +++ forum/templates/question_edit.html | 131 + forum/templates/question_edit_tips.html | 53 + forum/templates/question_retag.html | 106 + forum/templates/question_summary_list_roll.html | 55 + forum/templates/questions.html | 235 ++ forum/templates/reopen.html | 37 + forum/templates/revisions_answer.html | 83 + forum/templates/revisions_question.html | 83 + forum/templates/tag_selector.html | 42 + forum/templates/tags.html | 67 + forum/templates/user.html | 39 + forum/templates/user_edit.html | 95 + forum/templates/user_email_subscriptions.html | 26 + forum/templates/user_favorites.html | 8 + forum/templates/user_footer.html | 4 + forum/templates/user_info.html | 112 + forum/templates/user_recent.html | 26 + forum/templates/user_reputation.html | 42 + forum/templates/user_responses.html | 23 + forum/templates/user_stats.html | 138 + forum/templates/user_tabs.html | 32 + forum/templates/user_votes.html | 32 + forum/templates/users.html | 73 + forum/templates/users_questions.html | 66 + templates/404.html | 49 - templates/500.html | 35 - templates/about.html | 36 - templates/answer_edit.html | 85 - templates/answer_edit_tips.html | 55 - templates/ask.html | 134 - templates/authopenid/changeemail.html | 88 - templates/authopenid/changeopenid.html | 35 - templates/authopenid/changepw.html | 18 - templates/authopenid/complete.html | 130 - templates/authopenid/confirm_email.txt | 13 - templates/authopenid/delete.html | 39 - templates/authopenid/email_validation.txt | 15 - .../authopenid/external_legacy_login_info.html | 15 - templates/authopenid/failure.html | 14 - templates/authopenid/sendpw.html | 26 - templates/authopenid/sendpw_email.txt | 9 - templates/authopenid/settings.html | 43 - templates/authopenid/signin.html | 186 - templates/authopenid/signup.html | 32 - templates/authopenid/yadis.xrdf | 14 - templates/badge.html | 37 - templates/badges.html | 76 - templates/base.html | 95 - templates/base_content.html | 93 - templates/book.html | 152 - templates/close.html | 36 - templates/content/images/blue-up-arrow-h18px.png | Bin 593 -> 0 bytes templates/content/images/box-arrow.gif | Bin 69 -> 0 bytes templates/content/images/bullet_green.gif | Bin 64 -> 0 bytes templates/content/images/cc-88x31.png | Bin 5460 -> 0 bytes templates/content/images/cc-wiki.png | Bin 2333 -> 0 bytes templates/content/images/close-small-dark.png | Bin 226 -> 0 bytes templates/content/images/close-small-hover.png | Bin 337 -> 0 bytes templates/content/images/close-small.png | Bin 293 -> 0 bytes templates/content/images/dash.gif | Bin 44 -> 0 bytes templates/content/images/djangomade124x25_grey.gif | Bin 2035 -> 0 bytes templates/content/images/dot-g.gif | Bin 61 -> 0 bytes templates/content/images/dot-list.gif | Bin 56 -> 0 bytes templates/content/images/edit.png | Bin 758 -> 0 bytes templates/content/images/expander-arrow-hide.gif | Bin 126 -> 0 bytes templates/content/images/expander-arrow-show.gif | Bin 135 -> 0 bytes templates/content/images/favicon.gif | Bin 3918 -> 0 bytes templates/content/images/feed-icon-small.png | Bin 689 -> 0 bytes templates/content/images/gray-up-arrow-h18px.png | Bin 383 -> 0 bytes templates/content/images/grippie.png | Bin 162 -> 0 bytes templates/content/images/indicator.gif | Bin 2545 -> 0 bytes templates/content/images/logo.gif | Bin 2114 -> 0 bytes templates/content/images/logo.png | Bin 2081 -> 0 bytes templates/content/images/logo1.png | Bin 2752 -> 0 bytes templates/content/images/logo2.png | Bin 2124 -> 0 bytes templates/content/images/medala.gif | Bin 801 -> 0 bytes templates/content/images/medala_on.gif | Bin 957 -> 0 bytes templates/content/images/new.gif | Bin 635 -> 0 bytes templates/content/images/nophoto.png | Bin 696 -> 0 bytes templates/content/images/openid.gif | Bin 910 -> 0 bytes templates/content/images/openid/aol.gif | Bin 2205 -> 0 bytes templates/content/images/openid/blogger.ico | Bin 3638 -> 0 bytes templates/content/images/openid/claimid.ico | Bin 3638 -> 0 bytes templates/content/images/openid/facebook.gif | Bin 2075 -> 0 bytes templates/content/images/openid/flickr.ico | Bin 1150 -> 0 bytes templates/content/images/openid/google.gif | Bin 1596 -> 0 bytes templates/content/images/openid/livejournal.ico | Bin 5222 -> 0 bytes templates/content/images/openid/myopenid.ico | Bin 2862 -> 0 bytes .../content/images/openid/openid-inputicon.gif | Bin 237 -> 0 bytes templates/content/images/openid/openid.gif | Bin 740 -> 0 bytes templates/content/images/openid/technorati.ico | Bin 2294 -> 0 bytes templates/content/images/openid/verisign.ico | Bin 4710 -> 0 bytes templates/content/images/openid/vidoop.ico | Bin 1406 -> 0 bytes templates/content/images/openid/wordpress.ico | Bin 1150 -> 0 bytes templates/content/images/openid/yahoo.gif | Bin 1682 -> 0 bytes templates/content/images/quest-bg.gif | Bin 294 -> 0 bytes templates/content/images/vote-accepted-on.png | Bin 1124 -> 0 bytes templates/content/images/vote-accepted.png | Bin 1058 -> 0 bytes templates/content/images/vote-arrow-down-on.png | Bin 905 -> 0 bytes templates/content/images/vote-arrow-down.png | Bin 876 -> 0 bytes templates/content/images/vote-arrow-up-on.png | Bin 906 -> 0 bytes templates/content/images/vote-arrow-up.png | Bin 843 -> 0 bytes templates/content/images/vote-favorite-off.png | Bin 930 -> 0 bytes templates/content/images/vote-favorite-on.png | Bin 1023 -> 0 bytes templates/content/jquery-openid/images/aol.gif | Bin 2205 -> 0 bytes .../content/jquery-openid/images/blogger-1.png | Bin 432 -> 0 bytes templates/content/jquery-openid/images/blogger.ico | Bin 3638 -> 0 bytes .../content/jquery-openid/images/claimid-0.png | Bin 629 -> 0 bytes templates/content/jquery-openid/images/claimid.ico | Bin 3638 -> 0 bytes .../content/jquery-openid/images/facebook.gif | Bin 2075 -> 0 bytes templates/content/jquery-openid/images/flickr.ico | Bin 1150 -> 0 bytes templates/content/jquery-openid/images/flickr.png | Bin 426 -> 0 bytes templates/content/jquery-openid/images/google.gif | Bin 1596 -> 0 bytes .../content/jquery-openid/images/livejournal-1.png | Bin 713 -> 0 bytes .../content/jquery-openid/images/livejournal.ico | Bin 5222 -> 0 bytes .../content/jquery-openid/images/myopenid-2.png | Bin 511 -> 0 bytes .../content/jquery-openid/images/myopenid.ico | Bin 2862 -> 0 bytes .../jquery-openid/images/openid-inputicon.gif | Bin 237 -> 0 bytes templates/content/jquery-openid/images/openid.gif | Bin 740 -> 0 bytes .../content/jquery-openid/images/openidico.png | Bin 654 -> 0 bytes .../content/jquery-openid/images/openidico16.png | Bin 554 -> 0 bytes .../content/jquery-openid/images/technorati-1.png | Bin 606 -> 0 bytes .../content/jquery-openid/images/technorati.ico | Bin 2294 -> 0 bytes .../content/jquery-openid/images/verisign-2.png | Bin 859 -> 0 bytes .../content/jquery-openid/images/verisign.ico | Bin 4710 -> 0 bytes templates/content/jquery-openid/images/vidoop.ico | Bin 1406 -> 0 bytes templates/content/jquery-openid/images/vidoop.png | Bin 499 -> 0 bytes .../content/jquery-openid/images/wordpress.ico | Bin 1150 -> 0 bytes .../content/jquery-openid/images/wordpress.png | Bin 566 -> 0 bytes templates/content/jquery-openid/images/yahoo.gif | Bin 1682 -> 0 bytes templates/content/jquery-openid/jquery.openid.js | 111 - templates/content/jquery-openid/openid.css | 75 - templates/content/js/com.cnprog.admin.js | 13 - templates/content/js/com.cnprog.editor.js | 68 - templates/content/js/com.cnprog.i18n.js | 159 - templates/content/js/com.cnprog.post.js | 691 ---- templates/content/js/com.cnprog.tag_selector.js | 171 - templates/content/js/com.cnprog.utils.js | 128 - templates/content/js/compress.bat | 5 - templates/content/js/excanvas.pack.js | 1 - templates/content/js/flot-build.bat | 3 - templates/content/js/jquery-1.2.6.js | 3549 -------------------- templates/content/js/jquery-1.2.6.min.js | 32 - templates/content/js/jquery.ajaxfileupload.js | 195 -- templates/content/js/jquery.flot.js | 2421 ------------- templates/content/js/jquery.flot.pack.js | 1 - templates/content/js/jquery.form.js | 654 ---- templates/content/js/jquery.i18n.js | 133 - templates/content/js/jquery.openid.js | 176 - templates/content/js/jquery.validate.pack.js | 15 - templates/content/js/se_hilite.js | 1 - templates/content/js/se_hilite_src.js | 273 -- templates/content/js/wmd/images/wmd-buttons.png | Bin 7465 -> 0 bytes templates/content/js/wmd/showdown-min.js | 1 - templates/content/js/wmd/showdown.js | 1309 -------- templates/content/js/wmd/wmd-min.js | 1 - templates/content/js/wmd/wmd-test.html | 158 - templates/content/js/wmd/wmd.css | 129 - templates/content/js/wmd/wmd.js | 2388 ------------- templates/content/js/yuicompressor-2.4.2.jar | Bin 851219 -> 0 bytes templates/content/style/default.css | 1754 ---------- templates/content/style/jquery.autocomplete.css | 49 - templates/content/style/openid.css | 45 - templates/content/style/prettify.css | 27 - templates/content/style/style.css | 1469 -------- templates/edit_user_email_feeds_form.html | 4 - templates/faq.html | 144 - templates/fbconnect/xd_receiver.html | 10 - templates/feedback.html | 55 - templates/feedback_email.txt | 19 - templates/feeds/rss_description.html | 1 - templates/feeds/rss_title.html | 1 - templates/footer.html | 48 - templates/header.html | 65 - templates/index.html | 164 - templates/logout.html | 23 - templates/notarobot.html | 15 - templates/pagesize.html | 27 - templates/paginator.html | 38 - templates/post_contributor_info.html | 55 - templates/privacy.html | 42 - templates/question.html | 510 --- templates/question_edit.html | 131 - templates/question_edit_tips.html | 53 - templates/question_retag.html | 106 - templates/question_summary_list_roll.html | 55 - templates/questions.html | 235 -- templates/reopen.html | 37 - templates/revisions_answer.html | 83 - templates/revisions_question.html | 83 - templates/tag_selector.html | 42 - templates/tags.html | 67 - templates/user.html | 39 - templates/user_edit.html | 95 - templates/user_email_subscriptions.html | 26 - templates/user_favorites.html | 8 - templates/user_footer.html | 4 - templates/user_info.html | 112 - templates/user_recent.html | 26 - templates/user_reputation.html | 42 - templates/user_responses.html | 23 - templates/user_stats.html | 138 - templates/user_tabs.html | 32 - templates/user_votes.html | 32 - templates/users.html | 73 - templates/users_questions.html | 66 - 364 files changed, 20594 insertions(+), 20594 deletions(-) create mode 100644 forum/templates/404.html create mode 100644 forum/templates/500.html create mode 100644 forum/templates/about.html create mode 100644 forum/templates/answer_edit.html create mode 100644 forum/templates/answer_edit_tips.html create mode 100644 forum/templates/ask.html create mode 100644 forum/templates/authopenid/changeemail.html create mode 100644 forum/templates/authopenid/changeopenid.html create mode 100644 forum/templates/authopenid/changepw.html create mode 100644 forum/templates/authopenid/complete.html create mode 100644 forum/templates/authopenid/confirm_email.txt create mode 100644 forum/templates/authopenid/delete.html create mode 100644 forum/templates/authopenid/email_validation.txt create mode 100644 forum/templates/authopenid/external_legacy_login_info.html create mode 100644 forum/templates/authopenid/failure.html create mode 100644 forum/templates/authopenid/sendpw.html create mode 100644 forum/templates/authopenid/sendpw_email.txt create mode 100644 forum/templates/authopenid/settings.html create mode 100755 forum/templates/authopenid/signin.html create mode 100644 forum/templates/authopenid/signup.html create mode 100644 forum/templates/authopenid/yadis.xrdf create mode 100644 forum/templates/badge.html create mode 100644 forum/templates/badges.html create mode 100755 forum/templates/base.html create mode 100644 forum/templates/base_content.html create mode 100644 forum/templates/book.html create mode 100644 forum/templates/close.html create mode 100644 forum/templates/content/images/blue-up-arrow-h18px.png create mode 100644 forum/templates/content/images/box-arrow.gif create mode 100644 forum/templates/content/images/bullet_green.gif create mode 100644 forum/templates/content/images/cc-88x31.png create mode 100644 forum/templates/content/images/cc-wiki.png create mode 100644 forum/templates/content/images/close-small-dark.png create mode 100644 forum/templates/content/images/close-small-hover.png create mode 100644 forum/templates/content/images/close-small.png create mode 100644 forum/templates/content/images/dash.gif create mode 100644 forum/templates/content/images/djangomade124x25_grey.gif create mode 100644 forum/templates/content/images/dot-g.gif create mode 100644 forum/templates/content/images/dot-list.gif create mode 100644 forum/templates/content/images/edit.png create mode 100644 forum/templates/content/images/expander-arrow-hide.gif create mode 100644 forum/templates/content/images/expander-arrow-show.gif create mode 100644 forum/templates/content/images/favicon.gif create mode 100644 forum/templates/content/images/feed-icon-small.png create mode 100644 forum/templates/content/images/gray-up-arrow-h18px.png create mode 100644 forum/templates/content/images/grippie.png create mode 100644 forum/templates/content/images/indicator.gif create mode 100644 forum/templates/content/images/logo.gif create mode 100644 forum/templates/content/images/logo.png create mode 100644 forum/templates/content/images/logo1.png create mode 100644 forum/templates/content/images/logo2.png create mode 100644 forum/templates/content/images/medala.gif create mode 100644 forum/templates/content/images/medala_on.gif create mode 100644 forum/templates/content/images/new.gif create mode 100644 forum/templates/content/images/nophoto.png create mode 100644 forum/templates/content/images/openid.gif create mode 100644 forum/templates/content/images/openid/aol.gif create mode 100644 forum/templates/content/images/openid/blogger.ico create mode 100644 forum/templates/content/images/openid/claimid.ico create mode 100644 forum/templates/content/images/openid/facebook.gif create mode 100644 forum/templates/content/images/openid/flickr.ico create mode 100644 forum/templates/content/images/openid/google.gif create mode 100644 forum/templates/content/images/openid/livejournal.ico create mode 100644 forum/templates/content/images/openid/myopenid.ico create mode 100644 forum/templates/content/images/openid/openid-inputicon.gif create mode 100644 forum/templates/content/images/openid/openid.gif create mode 100644 forum/templates/content/images/openid/technorati.ico create mode 100644 forum/templates/content/images/openid/verisign.ico create mode 100644 forum/templates/content/images/openid/vidoop.ico create mode 100644 forum/templates/content/images/openid/wordpress.ico create mode 100644 forum/templates/content/images/openid/yahoo.gif create mode 100644 forum/templates/content/images/quest-bg.gif create mode 100644 forum/templates/content/images/vote-accepted-on.png create mode 100644 forum/templates/content/images/vote-accepted.png create mode 100644 forum/templates/content/images/vote-arrow-down-on.png create mode 100644 forum/templates/content/images/vote-arrow-down.png create mode 100644 forum/templates/content/images/vote-arrow-up-on.png create mode 100644 forum/templates/content/images/vote-arrow-up.png create mode 100644 forum/templates/content/images/vote-favorite-off.png create mode 100644 forum/templates/content/images/vote-favorite-on.png create mode 100644 forum/templates/content/jquery-openid/images/aol.gif create mode 100644 forum/templates/content/jquery-openid/images/blogger-1.png create mode 100644 forum/templates/content/jquery-openid/images/blogger.ico create mode 100644 forum/templates/content/jquery-openid/images/claimid-0.png create mode 100644 forum/templates/content/jquery-openid/images/claimid.ico create mode 100644 forum/templates/content/jquery-openid/images/facebook.gif create mode 100644 forum/templates/content/jquery-openid/images/flickr.ico create mode 100644 forum/templates/content/jquery-openid/images/flickr.png create mode 100644 forum/templates/content/jquery-openid/images/google.gif create mode 100644 forum/templates/content/jquery-openid/images/livejournal-1.png create mode 100644 forum/templates/content/jquery-openid/images/livejournal.ico create mode 100644 forum/templates/content/jquery-openid/images/myopenid-2.png create mode 100644 forum/templates/content/jquery-openid/images/myopenid.ico create mode 100644 forum/templates/content/jquery-openid/images/openid-inputicon.gif create mode 100644 forum/templates/content/jquery-openid/images/openid.gif create mode 100644 forum/templates/content/jquery-openid/images/openidico.png create mode 100644 forum/templates/content/jquery-openid/images/openidico16.png create mode 100644 forum/templates/content/jquery-openid/images/technorati-1.png create mode 100644 forum/templates/content/jquery-openid/images/technorati.ico create mode 100644 forum/templates/content/jquery-openid/images/verisign-2.png create mode 100644 forum/templates/content/jquery-openid/images/verisign.ico create mode 100644 forum/templates/content/jquery-openid/images/vidoop.ico create mode 100644 forum/templates/content/jquery-openid/images/vidoop.png create mode 100644 forum/templates/content/jquery-openid/images/wordpress.ico create mode 100644 forum/templates/content/jquery-openid/images/wordpress.png create mode 100644 forum/templates/content/jquery-openid/images/yahoo.gif create mode 100644 forum/templates/content/jquery-openid/jquery.openid.js create mode 100644 forum/templates/content/jquery-openid/openid.css create mode 100644 forum/templates/content/js/com.cnprog.admin.js create mode 100644 forum/templates/content/js/com.cnprog.editor.js create mode 100644 forum/templates/content/js/com.cnprog.i18n.js create mode 100644 forum/templates/content/js/com.cnprog.post.js create mode 100644 forum/templates/content/js/com.cnprog.tag_selector.js create mode 100644 forum/templates/content/js/com.cnprog.utils.js create mode 100644 forum/templates/content/js/compress.bat create mode 100644 forum/templates/content/js/excanvas.pack.js create mode 100644 forum/templates/content/js/flot-build.bat create mode 100644 forum/templates/content/js/jquery-1.2.6.js create mode 100644 forum/templates/content/js/jquery-1.2.6.min.js create mode 100644 forum/templates/content/js/jquery.ajaxfileupload.js create mode 100644 forum/templates/content/js/jquery.flot.js create mode 100644 forum/templates/content/js/jquery.flot.pack.js create mode 100644 forum/templates/content/js/jquery.form.js create mode 100644 forum/templates/content/js/jquery.i18n.js create mode 100644 forum/templates/content/js/jquery.openid.js create mode 100644 forum/templates/content/js/jquery.validate.pack.js create mode 100644 forum/templates/content/js/se_hilite.js create mode 100644 forum/templates/content/js/se_hilite_src.js create mode 100644 forum/templates/content/js/wmd/images/wmd-buttons.png create mode 100644 forum/templates/content/js/wmd/showdown-min.js create mode 100644 forum/templates/content/js/wmd/showdown.js create mode 100644 forum/templates/content/js/wmd/wmd-min.js create mode 100644 forum/templates/content/js/wmd/wmd-test.html create mode 100644 forum/templates/content/js/wmd/wmd.css create mode 100644 forum/templates/content/js/wmd/wmd.js create mode 100644 forum/templates/content/js/yuicompressor-2.4.2.jar create mode 100644 forum/templates/content/style/default.css create mode 100644 forum/templates/content/style/jquery.autocomplete.css create mode 100644 forum/templates/content/style/openid.css create mode 100644 forum/templates/content/style/prettify.css create mode 100644 forum/templates/content/style/style.css create mode 100644 forum/templates/edit_user_email_feeds_form.html create mode 100644 forum/templates/faq.html create mode 100755 forum/templates/fbconnect/xd_receiver.html create mode 100644 forum/templates/feedback.html create mode 100644 forum/templates/feedback_email.txt create mode 100644 forum/templates/feeds/rss_description.html create mode 100644 forum/templates/feeds/rss_title.html create mode 100644 forum/templates/footer.html create mode 100644 forum/templates/header.html create mode 100644 forum/templates/index.html create mode 100644 forum/templates/logout.html create mode 100644 forum/templates/notarobot.html create mode 100644 forum/templates/pagesize.html create mode 100644 forum/templates/paginator.html create mode 100644 forum/templates/post_contributor_info.html create mode 100644 forum/templates/privacy.html create mode 100644 forum/templates/question.html create mode 100644 forum/templates/question_edit.html create mode 100644 forum/templates/question_edit_tips.html create mode 100644 forum/templates/question_retag.html create mode 100644 forum/templates/question_summary_list_roll.html create mode 100644 forum/templates/questions.html create mode 100644 forum/templates/reopen.html create mode 100644 forum/templates/revisions_answer.html create mode 100644 forum/templates/revisions_question.html create mode 100644 forum/templates/tag_selector.html create mode 100644 forum/templates/tags.html create mode 100644 forum/templates/user.html create mode 100644 forum/templates/user_edit.html create mode 100644 forum/templates/user_email_subscriptions.html create mode 100644 forum/templates/user_favorites.html create mode 100644 forum/templates/user_footer.html create mode 100644 forum/templates/user_info.html create mode 100644 forum/templates/user_recent.html create mode 100644 forum/templates/user_reputation.html create mode 100644 forum/templates/user_responses.html create mode 100644 forum/templates/user_stats.html create mode 100644 forum/templates/user_tabs.html create mode 100644 forum/templates/user_votes.html create mode 100644 forum/templates/users.html create mode 100644 forum/templates/users_questions.html delete mode 100644 templates/404.html delete mode 100644 templates/500.html delete mode 100644 templates/about.html delete mode 100644 templates/answer_edit.html delete mode 100644 templates/answer_edit_tips.html delete mode 100644 templates/ask.html delete mode 100644 templates/authopenid/changeemail.html delete mode 100644 templates/authopenid/changeopenid.html delete mode 100644 templates/authopenid/changepw.html delete mode 100644 templates/authopenid/complete.html delete mode 100644 templates/authopenid/confirm_email.txt delete mode 100644 templates/authopenid/delete.html delete mode 100644 templates/authopenid/email_validation.txt delete mode 100644 templates/authopenid/external_legacy_login_info.html delete mode 100644 templates/authopenid/failure.html delete mode 100644 templates/authopenid/sendpw.html delete mode 100644 templates/authopenid/sendpw_email.txt delete mode 100644 templates/authopenid/settings.html delete mode 100755 templates/authopenid/signin.html delete mode 100644 templates/authopenid/signup.html delete mode 100644 templates/authopenid/yadis.xrdf delete mode 100644 templates/badge.html delete mode 100644 templates/badges.html delete mode 100755 templates/base.html delete mode 100644 templates/base_content.html delete mode 100644 templates/book.html delete mode 100644 templates/close.html delete mode 100644 templates/content/images/blue-up-arrow-h18px.png delete mode 100644 templates/content/images/box-arrow.gif delete mode 100644 templates/content/images/bullet_green.gif delete mode 100644 templates/content/images/cc-88x31.png delete mode 100644 templates/content/images/cc-wiki.png delete mode 100644 templates/content/images/close-small-dark.png delete mode 100644 templates/content/images/close-small-hover.png delete mode 100644 templates/content/images/close-small.png delete mode 100644 templates/content/images/dash.gif delete mode 100644 templates/content/images/djangomade124x25_grey.gif delete mode 100644 templates/content/images/dot-g.gif delete mode 100644 templates/content/images/dot-list.gif delete mode 100644 templates/content/images/edit.png delete mode 100644 templates/content/images/expander-arrow-hide.gif delete mode 100644 templates/content/images/expander-arrow-show.gif delete mode 100644 templates/content/images/favicon.gif delete mode 100644 templates/content/images/feed-icon-small.png delete mode 100644 templates/content/images/gray-up-arrow-h18px.png delete mode 100644 templates/content/images/grippie.png delete mode 100644 templates/content/images/indicator.gif delete mode 100644 templates/content/images/logo.gif delete mode 100644 templates/content/images/logo.png delete mode 100644 templates/content/images/logo1.png delete mode 100644 templates/content/images/logo2.png delete mode 100644 templates/content/images/medala.gif delete mode 100644 templates/content/images/medala_on.gif delete mode 100644 templates/content/images/new.gif delete mode 100644 templates/content/images/nophoto.png delete mode 100644 templates/content/images/openid.gif delete mode 100644 templates/content/images/openid/aol.gif delete mode 100644 templates/content/images/openid/blogger.ico delete mode 100644 templates/content/images/openid/claimid.ico delete mode 100644 templates/content/images/openid/facebook.gif delete mode 100644 templates/content/images/openid/flickr.ico delete mode 100644 templates/content/images/openid/google.gif delete mode 100644 templates/content/images/openid/livejournal.ico delete mode 100644 templates/content/images/openid/myopenid.ico delete mode 100644 templates/content/images/openid/openid-inputicon.gif delete mode 100644 templates/content/images/openid/openid.gif delete mode 100644 templates/content/images/openid/technorati.ico delete mode 100644 templates/content/images/openid/verisign.ico delete mode 100644 templates/content/images/openid/vidoop.ico delete mode 100644 templates/content/images/openid/wordpress.ico delete mode 100644 templates/content/images/openid/yahoo.gif delete mode 100644 templates/content/images/quest-bg.gif delete mode 100644 templates/content/images/vote-accepted-on.png delete mode 100644 templates/content/images/vote-accepted.png delete mode 100644 templates/content/images/vote-arrow-down-on.png delete mode 100644 templates/content/images/vote-arrow-down.png delete mode 100644 templates/content/images/vote-arrow-up-on.png delete mode 100644 templates/content/images/vote-arrow-up.png delete mode 100644 templates/content/images/vote-favorite-off.png delete mode 100644 templates/content/images/vote-favorite-on.png delete mode 100644 templates/content/jquery-openid/images/aol.gif delete mode 100644 templates/content/jquery-openid/images/blogger-1.png delete mode 100644 templates/content/jquery-openid/images/blogger.ico delete mode 100644 templates/content/jquery-openid/images/claimid-0.png delete mode 100644 templates/content/jquery-openid/images/claimid.ico delete mode 100644 templates/content/jquery-openid/images/facebook.gif delete mode 100644 templates/content/jquery-openid/images/flickr.ico delete mode 100644 templates/content/jquery-openid/images/flickr.png delete mode 100644 templates/content/jquery-openid/images/google.gif delete mode 100644 templates/content/jquery-openid/images/livejournal-1.png delete mode 100644 templates/content/jquery-openid/images/livejournal.ico delete mode 100644 templates/content/jquery-openid/images/myopenid-2.png delete mode 100644 templates/content/jquery-openid/images/myopenid.ico delete mode 100644 templates/content/jquery-openid/images/openid-inputicon.gif delete mode 100644 templates/content/jquery-openid/images/openid.gif delete mode 100644 templates/content/jquery-openid/images/openidico.png delete mode 100644 templates/content/jquery-openid/images/openidico16.png delete mode 100644 templates/content/jquery-openid/images/technorati-1.png delete mode 100644 templates/content/jquery-openid/images/technorati.ico delete mode 100644 templates/content/jquery-openid/images/verisign-2.png delete mode 100644 templates/content/jquery-openid/images/verisign.ico delete mode 100644 templates/content/jquery-openid/images/vidoop.ico delete mode 100644 templates/content/jquery-openid/images/vidoop.png delete mode 100644 templates/content/jquery-openid/images/wordpress.ico delete mode 100644 templates/content/jquery-openid/images/wordpress.png delete mode 100644 templates/content/jquery-openid/images/yahoo.gif delete mode 100644 templates/content/jquery-openid/jquery.openid.js delete mode 100644 templates/content/jquery-openid/openid.css delete mode 100644 templates/content/js/com.cnprog.admin.js delete mode 100644 templates/content/js/com.cnprog.editor.js delete mode 100644 templates/content/js/com.cnprog.i18n.js delete mode 100644 templates/content/js/com.cnprog.post.js delete mode 100644 templates/content/js/com.cnprog.tag_selector.js delete mode 100644 templates/content/js/com.cnprog.utils.js delete mode 100644 templates/content/js/compress.bat delete mode 100644 templates/content/js/excanvas.pack.js delete mode 100644 templates/content/js/flot-build.bat delete mode 100644 templates/content/js/jquery-1.2.6.js delete mode 100644 templates/content/js/jquery-1.2.6.min.js delete mode 100644 templates/content/js/jquery.ajaxfileupload.js delete mode 100644 templates/content/js/jquery.flot.js delete mode 100644 templates/content/js/jquery.flot.pack.js delete mode 100644 templates/content/js/jquery.form.js delete mode 100644 templates/content/js/jquery.i18n.js delete mode 100644 templates/content/js/jquery.openid.js delete mode 100644 templates/content/js/jquery.validate.pack.js delete mode 100644 templates/content/js/se_hilite.js delete mode 100644 templates/content/js/se_hilite_src.js delete mode 100644 templates/content/js/wmd/images/wmd-buttons.png delete mode 100644 templates/content/js/wmd/showdown-min.js delete mode 100644 templates/content/js/wmd/showdown.js delete mode 100644 templates/content/js/wmd/wmd-min.js delete mode 100644 templates/content/js/wmd/wmd-test.html delete mode 100644 templates/content/js/wmd/wmd.css delete mode 100644 templates/content/js/wmd/wmd.js delete mode 100644 templates/content/js/yuicompressor-2.4.2.jar delete mode 100644 templates/content/style/default.css delete mode 100644 templates/content/style/jquery.autocomplete.css delete mode 100644 templates/content/style/openid.css delete mode 100644 templates/content/style/prettify.css delete mode 100644 templates/content/style/style.css delete mode 100644 templates/edit_user_email_feeds_form.html delete mode 100644 templates/faq.html delete mode 100755 templates/fbconnect/xd_receiver.html delete mode 100644 templates/feedback.html delete mode 100644 templates/feedback_email.txt delete mode 100644 templates/feeds/rss_description.html delete mode 100644 templates/feeds/rss_title.html delete mode 100644 templates/footer.html delete mode 100644 templates/header.html delete mode 100644 templates/index.html delete mode 100644 templates/logout.html delete mode 100644 templates/notarobot.html delete mode 100644 templates/pagesize.html delete mode 100644 templates/paginator.html delete mode 100644 templates/post_contributor_info.html delete mode 100644 templates/privacy.html delete mode 100644 templates/question.html delete mode 100644 templates/question_edit.html delete mode 100644 templates/question_edit_tips.html delete mode 100644 templates/question_retag.html delete mode 100644 templates/question_summary_list_roll.html delete mode 100644 templates/questions.html delete mode 100644 templates/reopen.html delete mode 100644 templates/revisions_answer.html delete mode 100644 templates/revisions_question.html delete mode 100644 templates/tag_selector.html delete mode 100644 templates/tags.html delete mode 100644 templates/user.html delete mode 100644 templates/user_edit.html delete mode 100644 templates/user_email_subscriptions.html delete mode 100644 templates/user_favorites.html delete mode 100644 templates/user_footer.html delete mode 100644 templates/user_info.html delete mode 100644 templates/user_recent.html delete mode 100644 templates/user_reputation.html delete mode 100644 templates/user_responses.html delete mode 100644 templates/user_stats.html delete mode 100644 templates/user_tabs.html delete mode 100644 templates/user_votes.html delete mode 100644 templates/users.html delete mode 100644 templates/users_questions.html diff --git a/forum/templates/404.html b/forum/templates/404.html new file mode 100644 index 00000000..227de3ae --- /dev/null +++ b/forum/templates/404.html @@ -0,0 +1,49 @@ +{% extends "base_content.html" %} +<!-- template 404.html --> +{% load i18n %} +{% block title %}{% spaceless %}404 Error{% endspaceless %}{% endblock %} +{% block forestyle%} + <style type="text/css"> + form input { margin-right: 5px; } + </style> +{% endblock %} +{% block forejs %} + <script type="text/javascript"> + $().ready(function(){ + $("#linkPrevious").bind("click", back=function(){history.go(-1);}) + }); + + </script> +{% endblock %} +{% block content %} +<div id="main-bar" class="headNormal"> + 404 Not Found +</div> +<div id="main-body" class=""> + <div style="padding:5px 0px 10px 0;line-height:25px;"> + <h3>{% trans "Sorry, could not find the page you requested." %}</h3> + <div style="margin-top:5px"> + {% trans "This might have happened for the following reasons:" %}<br/> + <ul> + <li>{% trans "this question or answer has been deleted;" %}</li> + <li>{% trans "url has error - please check it;" %}</li> + <li>{% trans "the page you tried to visit is protected or you don't have sufficient points, see" %} <a href="{% url faq %}"> faq</a>;</li> + <li>{% trans "if you believe this error 404 should not have occured, please" %} + <a href="{{feedback_site_url}}" target="_blank">{% trans "report this problem" %}</a></li> + </u> + </div> + <script type="text/javascript"> + var GOOG_FIXURL_LANG = '{{settings.LANGUAGE_CODE}}'; + var GOOG_FIXURL_SITE = '{{site_url}}'; + </script> + <script type="text/javascript" src="http://linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script> + <ul> + <li><a href="#" id="linkPrevious">{% trans "back to previous page" %} »</li> + <li><a href="{% url questions %}">{% trans "see all questions" %} »</a></li> + <li><a href="{% url tags %}">{% trans "see all tags" %} »</a></li> + </u> + </div> + +</div> +{% endblock %} +<!-- end template 404.html --> diff --git a/forum/templates/500.html b/forum/templates/500.html new file mode 100644 index 00000000..51e73178 --- /dev/null +++ b/forum/templates/500.html @@ -0,0 +1,35 @@ +{% extends "base_content.html" %} +<!-- template 500.html --> +{% load i18n %} +{% block title %}{% spaceless %}500 Error{% endspaceless %}{% endblock %} +{% block forejs %} + <script type="text/javascript"> + $().ready(function(){ + $("#linkPrevious").bind("click", back=function(){history.go(-1);}) + }); + + </script> +{% endblock %} +{% block content %} +<div id="main-bar" class=""> + <h3> + 500 Server Error + </h3> + +</div> +<div id="main-body" class="headNormal"> + <div style="padding:5px 0px 10px 0;line-height:25px"> + <h3>{% trans "sorry, system error" %}</h3> + <br/> + {% trans "system error log is recorded, error will be fixed as soon as possible" %}<br/> + {% trans "please report the error to the site administrators if you wish" %} + <ul> + <li><a href="#" id="linkPrevious">{% trans "back to previous page" %}</li> + <li><a href="{% url questions %}">{% trans "see latest questions" %}</a></li> + <li><a href="{% url tags %}">{% trans "see tags" %}</a></li> + </u> + </div> + +</div> +{% endblock %} +<!-- end template 500.html --> diff --git a/forum/templates/about.html b/forum/templates/about.html new file mode 100644 index 00000000..66dcc3fd --- /dev/null +++ b/forum/templates/about.html @@ -0,0 +1,36 @@ +{% extends "base_content.html" %} +<!-- template about.html --> +{% load i18n %} +{% load extra_tags %} +{% load humanize %} +{% block title %}{% spaceless %}{% trans "About" %}{% endspaceless %}{% endblock %} +{% block forejs %} +{% endblock %} +{% block content %} +<div class="headNormal"> +{% trans "About" %} +</div> + +<div class="content"> + <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> + + <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> +</div> +{% endblock %} +<!-- end template about.html --> diff --git a/forum/templates/answer_edit.html b/forum/templates/answer_edit.html new file mode 100644 index 00000000..cd247a3c --- /dev/null +++ b/forum/templates/answer_edit.html @@ -0,0 +1,85 @@ +{% extends "base.html" %} +<!-- template answer_edit.html --> +{% load i18n %} +{% load extra_tags %} +{% block title %}{% spaceless %}{% trans "Edit answer" %}{% endspaceless %}{% endblock %} +{% block forejs %} + <script type='text/javascript' src='{% href "/content/js/com.cnprog.editor.js" %}'></script> + <script type='text/javascript' src='{% href "/content/js/com.cnprog.post.js" %}'></script> + <script type='text/javascript' src='{% href "/content/js/jquery.validate.pack.js" %}'></script> + <script type='text/javascript' src='{% href "/content/js/wmd/showdown.js" %}'></script> + <script type='text/javascript' src='{% href "/content/js/wmd/wmd.js" %}'></script> + <link rel="stylesheet" type="text/css" href="{% href "/content/js/wmd/wmd.css" %}" /> + <script type="text/javascript"> + + $().ready(function(){ + $("#nav_questions").attr('className',"on"); + $('#editor').TextAreaResizer(); + + //highlight code synctax when editor has new text + $("#editor").typeWatch({highlight: false, wait: 3000, + captureLength: 5, callback: lanai.highlightSyntax}); + + //toggle preview of editor + var display = true; + var txt = "{% trans "hide preview" %}"; + $('#pre-collapse').text(txt); + $('#pre-collapse').bind('click', function(){ + txt = display ? "{% trans "show preview" %}" : "{% trans "hide preview" %}"; + display = !display; + $('#previewer').toggle(); + $('#pre-collapse').text(txt); + }); + + setupFormValidation("#fmedit", CPValidator.getQuestionFormRules(), CPValidator.getQuestionFormMessages()); + + $('#id_revision').unbind().change(function(){ + $("#select_revision").click(); + }); + + lanai.highlightSyntax(); + + }); + </script> +{% endblock %} + +{% block content %} +<div id="main-bar" class="headNormal"> + {% trans "Edit answer" %} [<a href="{{ answer.question.get_absolute_url }}#{{ answer.id }}">{% trans "back" %}</a>] +</div> +<div id="main-body" class="ask-body"> + <div id="askform"> + <form id="fmedit" action="{% url edit_answer answer.id %}" method="post" > + <label for="id_revision" ><strong>{% trans "revision" %}:</strong></label> <br/> + {% if revision_form.revision.errors %}{{ revision_form.revision.errors.as_ul }}{% endif %} + <div style="vertical-align:middle"> + {{ revision_form.revision }} <input type="submit" style="display:none" id="select_revision" name="select_revision" value="{% trans "select revision" %}"> + </div> + <div class="form-item"> + <div id="wmd-button-bar" class="wmd-panel"></div> + {{ form.text }} + <span class="form-error"></span> + <div class="preview-toggle"><span id="pre-collapse" + title="{% trans "Toggle the real time Markdown editor preview" %}">{% trans "toggle preview" %}</span></div> + <div id="previewer" class="wmd-preview"></div> + </div> + + <strong>{{ form.summary.label_tag }}</strong> <br/> + {{ form.summary }} {{ form.summary.errors }} + <div class="title-desc"> + {{ form.summary.help_text }} + </div> + <input type="submit" value="{% trans "Save edit" %}" class="submit" /> + <input type="button" value="{% trans "Cancel" %}" class="submit" onclick="history.back(-1);" /> + </form> + </div> +</div> +{% endblock %} + +{% block sidebar %} +{% include "answer_edit_tips.html" %} +{% endblock %} + +{% block endjs %} +{% endblock %} +<!-- end template answer_edit.html --> diff --git a/forum/templates/answer_edit_tips.html b/forum/templates/answer_edit_tips.html new file mode 100644 index 00000000..c390da06 --- /dev/null +++ b/forum/templates/answer_edit_tips.html @@ -0,0 +1,55 @@ +<!-- template answer_edit_tips.html --> +{% load i18n %} +<div class="boxC"> + <p class="subtitle darkred">{% trans "answer tips" %}</p> + <div> + <ul class="list-item"> + <li> <b>{% trans "please make your answer relevant to this community" %}</b> + </li> + <li> + {% trans "try to give an answer, rather than engage into a discussion" %} + </li> + <li> + {% trans "please try to provide details" %} + </li> + <li> + {% trans "be clear and concise" %} + </li> + </ul> + <p class='info-box-follow-up-links'> + <a href="{% url faq %}" target="_blank" title="{% trans "see frequently asked questions" %}">faq »</a> + </p> + </div> +</div> + +<div class="boxC"> + <p class="subtitle">{% trans "Markdown tips" %}</p> + <ul class="list-item"> + <li> + {% trans "*italic* or __italic__" %} + </li> + <li> + {% trans "**bold** or __bold__" %} + </li> + <li> + <b>{% trans "link" %}</b>:[{% trans "text" %}](http://url.com/ "{% trans "title" %}") + + </li> + <li> + <b>{% trans "image" %}</b>:![alt {% trans "text" %}](/path/img.jpg "{% trans "title" %}") + + </li> + <li> + {% trans "numbered list:" %} + 1. Foo + 2. Bar + </li> + <li> + {% trans "basic HTML tags are also supported" %} + </li> + </ul> + <p class='info-box-follow-up-links'> + <a href="http://en.wikipedia.org/wiki/Markdown" target="_blank">{% trans "learn more about Markdown" %} »</a> + </p> +</div> +<!-- end template answer_edit_tips.html --> diff --git a/forum/templates/ask.html b/forum/templates/ask.html new file mode 100644 index 00000000..30d43ee0 --- /dev/null +++ b/forum/templates/ask.html @@ -0,0 +1,134 @@ +{% extends "base.html" %} +<!-- template ask.html --> +{% load i18n %} +{% load extra_tags %} +{% block title %}{% spaceless %}{% trans "Ask a question" %}{% endspaceless %}{% endblock %} +{% block forejs %} + <script type='text/javascript' src='{% href "/content/js/com.cnprog.editor.js" %}'></script> + <script type='text/javascript' src='{% href "/content/js/com.cnprog.post.js" %}'></script> + <script type='text/javascript' src='{% href "/content/js/jquery.validate.pack.js" %}'></script> + <script type='text/javascript' src='{% href "/content/js/wmd/showdown.js" %}'></script> + <script type='text/javascript' src='{% href "/content/js/wmd/wmd.js" %}'></script> + <link rel="stylesheet" type="text/css" href="{% href "/content/js/wmd/wmd.css" %}" /> + <script type="text/javascript"> + $().ready(function(){ + //set current module button style + $("#nav_ask").attr('className',"on"); + $('#editor').TextAreaResizer(); + + //highlight code synctax when editor has new text + $("#editor").typeWatch({highlight: false, wait: 3000, + captureLength: 5, callback: lanai.highlightSyntax}); + + //toggle preview of editor + //todo remove copy-paste + var display = true; + var txt = "[{% trans "hide preview" %}]"; + $('#pre-collapse').text(txt); + $('#pre-collapse').bind('click', function(){ + txt = display ? "[{% trans "show preview" %}]" : "[{% trans "hide preview" %}]"; + display = !display; + $('#previewer').toggle(); + $('#pre-collapse').text(txt); + }); + + //Tags autocomplete action + var tags = {{ tags|safe }}; + $("#id_tags").autocomplete(tags, { + minChars: 1, + matchContains: true, + max: 20, + multiple: true, + multipleSeparator: " ", + formatItem: function(row, i, max) { + return row.n + " ("+ row.c +")"; + }, + formatResult: function(row, i, max){ + return row.n; + } + + }); + + setupFormValidation("#fmask", CPValidator.getQuestionFormRules(), CPValidator.getQuestionFormMessages()); + lanai.highlightSyntax(); + + }); + </script> +{% endblock %} + +{% block content %} +<div id="main-bar" class="headNormal"> + {% trans "Ask a question" %} +</div> +<div id="main-body" class="ask-body"> + <div id="askform"> + <form id="fmask" action="" method="post" > + {% if not request.user.is_authenticated %} + <div class="message"> + <p>{% trans "login to post question info" %}</p> + </div> + {% else %} + {% ifequal settings.EMAIL_VALIDATION 'on' %} + {% if not request.user.email_isvalid %} + <div class="message"> + {% blocktrans with request.user.email as email %}must have valid {{email}} to post, + see {{email_validation_faq_url}} + {% endblocktrans %} + </div> + {% endif %} + {% endifequal %} + {% endif %} + <div class="form-item"> + <label for="id_title" ><strong>{{ form.title.label_tag }}:</strong></label> <span class="form-error"></span><br/> + {{ form.title }} {{ form.title.errors }} + <div class="title-desc"> + {{ form.title.help_text }} + </div> + </div> + + <div class="form-item"> + <div id="wmd-button-bar" class="wmd-panel"></div> + {{ form.text }} + + <div class="preview-toggle"> + <table width="100%"> + <tr> + <td> + <span id="pre-collapse" title="{% trans "Toggle the real time Markdown editor preview" %}">{% trans "toggle preview" %}</span> + </td> + {% if settings.WIKI_ON %} + <td style="text-align:right;"> + {{ form.wiki }} <span style="font-weight:normal;cursor:help" title="{{form.wiki.help_text}}">{{ form.wiki.label_tag }} </span> + </td> + {% endif %} + </tr> + + </table> + </div> + <div id="previewer" class="wmd-preview"></div> + <span class="form-error"></span> + </div> + <div class="form-item"> + <strong>{{ form.tags.label_tag }}:</strong> {% trans "(required)" %} <span class="form-error"></span><br/> + {{ form.tags }} {{ form.tags.errors }} + </div> + <p class="title-desc"> + {{ form.tags.help_text }} + </p> + {% if not request.user.is_authenticated %} + <input type="submit" value="{% trans "Login/signup to post your question" %}" class="submit" /> + {% else %} + <input type="submit" value="{% trans "Ask your question" %}" class="submit" /> + {% endif %} + </form> + </div> +</div> +{% endblock %} + +{% block sidebar %} +{% include "question_edit_tips.html" %} +{% endblock %} + +{% block endjs %} +{% endblock %} +<!-- end template ask.html --> diff --git a/forum/templates/authopenid/changeemail.html b/forum/templates/authopenid/changeemail.html new file mode 100644 index 00000000..94d1881c --- /dev/null +++ b/forum/templates/authopenid/changeemail.html @@ -0,0 +1,88 @@ +{% extends "base_content.html" %} +{% load i18n %} +{% block title %}{% spaceless %}{% trans "Change email" %}{% endspaceless %}{% endblock %} +{% block content %} +<!-- changeemail.html action_type={{action_type}}--> +{% ifequal action_type "change" %} + <div id="main-bar" class="headNormal"> + {% if user.email %} + {% trans "Change email" %} + {% else %} + {% trans "Save your email address" %} + {% endif %} + </div> + <p class="message"> + {% if user.email %} + {% blocktrans %}change {{email}} info{% endblocktrans %} + {% else %} + {% blocktrans %}here is why email is required, see {{gravatar_faq_url}}{% endblocktrans %} + {% endif %} + </p> + {% if msg %} + <p class="error">{{ msg }}</p> + {% endif %} + + <div class="aligned"> + <form action="." method="post" accept-charset="utf-8"> + {% if next %} + <input type="hidden" name="next" value="{{next}}"/> + {% endif %} + <div class="form-row-vertical"> + <label for="id_email">{% if user.email %}{% trans "Your new Email" %}{% else %}{% trans "Your Email" %}{% endif %}</label> + {% if form.email.errors %} + <p class="error">{{form.email.errors|join:", "}}</p> + {% endif %} + {{ form.email }} + </div> + <div class="submit-row"> + <input class="submit" type="submit" name="change_email" value="{% if user.email %}{% trans "Change email" %}{% else %}{% trans "Save Email" %}{% endif %}"> + {% if user.email %} + <input class="submit" type="submit" name="cancel" value="{% trans "Cancel" %}"> + {% endif %} + </div> + + </form> + </div> +{% endifequal %} +{% ifequal action_type "validate" %} + <div id="main-bar" class="headNormal"> + {% trans "Validate email" %} + </div> + <p class="message"> + {% blocktrans %}validate {{email}} info or go to {{change_email_url}}{% endblocktrans %} + </p> +{% endifequal %} +{% ifequal action_type "keep" %} + <div id="main-bar" class="headNormal"> + {% trans "Email not changed" %} + </div> + <p class="message"> + {% blocktrans %}old {{email}} kept, if you like go to {{change_email_url}}{% endblocktrans %} + </p> +{% endifequal %} +{% ifequal action_type "done_novalidate" %} + <div id="main-bar" class="headNormal"> + {% trans "Email changed" %} + </div> + <p class="message"> + {% blocktrans %}your current {{email}} can be used for this{% endblocktrans %} + </p> +{% endifequal %} +{% ifequal action_type "validation_complete" %} + <div id="main-bar" class="headNormal"> + {% trans "Email verified" %} + </div> + <p class="message"> + {% trans "thanks for verifying email" %} + </p> +{% endifequal %} +{% ifequal action_type "key_not_sent" %} + <div id="main-bar" class="headNormal"> + {% trans "email key not sent" %} + </div> + <p class="message"> + {% blocktrans %}email key not sent {{email}} change email here {{change_link}}{% endblocktrans %} + </p> +{% endifequal %} +{% endblock %} +<!-- end changeemail.html --> diff --git a/forum/templates/authopenid/changeopenid.html b/forum/templates/authopenid/changeopenid.html new file mode 100644 index 00000000..d01788fb --- /dev/null +++ b/forum/templates/authopenid/changeopenid.html @@ -0,0 +1,35 @@ +{% extends "base.html" %} +<!-- changeopenid.html --> +{% load i18n %} +{% block title %}{% spaceless %}{% trans "Change OpenID" %}{% endspaceless %}{% endblock %} +{% block content %} +<div id="main-bar" class=""> + <h3> + {% trans "Account: change OpenID URL" %} + </h3> +</div> + +<p>{% blocktrans %}This is where you can change your OpenID URL. Make sure you remember it!{% endblocktrans %}</p> +{% if form.errors %} +<p class="errors">{% trans "Please correct errors below:" %}<br /> + {% if form.openid_url.errors %} + <span class="error">{{ form.openid_url.errors|join:", " }}</span> + {% endif %} + + +</p> +{% endif %} +{% if msg %} + <p class="errors">{{ msg }}</p> +{% endif %} + +<div class="aligned"> + <form action="." method="post" accept-charset="utf-8"> + + <div id="form-row"><label for="id_openid_url">{% trans "OpenID URL:" %}</label>{{ form.openid_url }}</div> + <p><input type="submit" value="{% trans "Change OpenID" %}"></p> + + </form> + </div> +{% endblock %} +<!-- end changeopenid.html --> diff --git a/forum/templates/authopenid/changepw.html b/forum/templates/authopenid/changepw.html new file mode 100644 index 00000000..8b059544 --- /dev/null +++ b/forum/templates/authopenid/changepw.html @@ -0,0 +1,18 @@ +{% extends "base.html" %} +<!-- changepw.html --> +{% load i18n %} +{% block head %}{% endblock %} +{% block title %}{% spaceless %}{% trans "Change password" %}{% endspaceless %}{% endblock %} +{% block content %} +<div class="headNormal">{% trans "Account: change password" %}</div> +<p class="message">{% blocktrans %}This is where you can change your password. Make sure you remember it!{% endblocktrans %}</p> +<div class="aligned"> + <form action="." method="post" accept-charset="utf-8"> + <ul id="changepw-form" class="form-horizontal-rows"> + {{form.as_ul}} + </ul> + <div class="submit-row"><input type="submit" class="submit" value="{% trans "Change password" %}" /></div> + </form> + </div> +{% endblock %} +<!-- end changepw.html --> diff --git a/forum/templates/authopenid/complete.html b/forum/templates/authopenid/complete.html new file mode 100644 index 00000000..62970e38 --- /dev/null +++ b/forum/templates/authopenid/complete.html @@ -0,0 +1,130 @@ +{% extends "base_content.html" %} +<!-- complete.html --> +{% comment %} +views calling this template: +* django_authopenid.views.register with login_type='openid' +* django_authopenid.views.signin - with login_type='legacy' + +parameters: +* provider +* login_type openid|legacy +* 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.SimpleEmailSubscribeForm +* openid_username_exists +{% endcomment %} +{% load i18n %} +{% block head %}{% endblock %} +{% block title %}{% spaceless %}{% trans "Connect your OpenID with this site" %}{% endspaceless %}{% endblock %} +{% block content %} + <div id="main-bar" class="headNormal"> + {% trans "Connect your OpenID with your account on this site" %} + </div> + <div id="completetxt" > + <div class="message"> + {% ifequal login_type 'openid' %} + {% blocktrans %}register new {{provider}} account info, see {{gravatar_faq_url}}{% endblocktrans %} + {% else %} + {% ifequal login_type 'legacy' %} + {% if external_login_name_is_taken %} + {% blocktrans %}{{username}} already exists, choose another name for + {{provider}}. Email is required too, see {{gravatar_faq_url}} + {% endblocktrans %} + {% else %} + {% blocktrans %}register new external {{provider}} account info, see {{gravatar_faq_url}}{% endblocktrans %} + {% endif %} + {% else %} + {% blocktrans %}register new Facebook connect account info, see {{gravatar_faq_url}}{% endblocktrans %} + {% endifequal %} + {% endifequal %} + </div> + <p style="display:none">{% trans "This account already exists, please use another." %}</p> + </div> + + {% if form1.errors %} + <ul class="errorlist"> + {% if form1.non_field_errors %} + {% for error in form1.non_field_errors %} + <li>{{error}}</li> + {% endfor %} + {% endif %} + </ul> + {% endif %} + {% comment %} + {% if form2.errors %}<!--form2 is dysfunctional so commented out --> + <div class="errors"> + <span class="big">{% trans "Sorry, looks like we have some errors:" %}</span><br/> + <ul class="error-list"> + {% if form2.username.errors %} + <li><span class="error">{{ form2.username.errors|join:", " }}</span></li> + {% endif %} + {% if form2.password.errors %} + <li><span class="error">{{ form2.password.errors|join:", " }}</span></li> + {% endif %} + </ul> + </div> + {% endif %} + {% endcomment %} + + <div class="login"> + {% ifequal login_type 'openid' %} + <form name="fregister" action="{% url user_register %}" method="POST"> + {% else %} + {% ifequal login_type 'facebook' %} + <form name="fregister" action="" method="POST"> + {% else %} + <form name="fregister" action="{% url user_signin %}" method="POST"> + {% endifequal %} + {% endifequal %} + {{ form1.next }} + <div class="form-row-vertical"> + <label for="id_username">{% trans "Screen name label" %}</label> + {% if form1.username.errors %} + <p class="error">{{ form1.username.errors|join:", " }}</p> + {% endif %} + {{ form1.username }} + </div> + <div class="form-row-vertical margin-bottom"> + <label for="id_email">{% trans "Email address label" %}</label> + {% if form1.email.errors %} + <p class="error">{{ form1.email.errors|join:", " }}</p> + {% endif %} + {{ form1.email }} + </div> + <p>{% trans "receive updates motivational blurb" %}</p> + <div class='simple-subscribe-options'> + {{email_feeds_form.subscribe}} + {% if email_feeds_form.errors %} + <p class="error">{% trans "please select one of the options above" %}</p> + {% endif %} + </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> + {% comment %}<!-- this form associates openID with an existing password-protected account, not yet functional --> + {% if form2 %} + <div class="login" style="display:none"> + <form name="fverify" action="{% url user_register %}" method="POST"> + {{ form2.next }} + <fieldset style="padding:10px"> + <legend class="big">{% trans "Existing account" %}</legend> + <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> + <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" %}"/> + <a href="{% url user_sendpw %}">{% trans "Forgot your password?" %}</a> + </div> + </fieldset> + </form> + </div> + {% endif %} + {% endcomment %} +{% endblock %} +<!-- end complete.html --> diff --git a/forum/templates/authopenid/confirm_email.txt b/forum/templates/authopenid/confirm_email.txt new file mode 100644 index 00000000..3a01f146 --- /dev/null +++ b/forum/templates/authopenid/confirm_email.txt @@ -0,0 +1,13 @@ +{% load i18n %} +{% trans "Thank you for registering at our Q&A forum!" %} + +{% trans "Your account details are:" %} + +{% trans "Username:" %} {{ username }} +{% trans "Password:" %} {{ password }} + +{% trans "Please sign in here:" %} +{{signup_url}} + +{% blocktrans %}Sincerely, +Forum Administrator{% endblocktrans %} diff --git a/forum/templates/authopenid/delete.html b/forum/templates/authopenid/delete.html new file mode 100644 index 00000000..0f9f1c60 --- /dev/null +++ b/forum/templates/authopenid/delete.html @@ -0,0 +1,39 @@ +{% extends "base.html" %} +<!-- delete.html --> +{% load i18n %} +{% block title %}{% spaceless %}{% trans "Delete account" %}{% endspaceless %}{% endblock %} +{% block content %} +<div id="main-bar" class=""> + <h3> + {% trans "Account: delete account" %} + </h3> +</div> + +<p class="settings-descr">{% blocktrans %}Note: After deleting your account, anyone will be able to register this username.{% endblocktrans %}</p> +{% if form.errors %} +<p class="errors">{% trans "Please correct errors below:" %}<br /> + {% if form.confirm.errors %} + <span class="error">{% trans "Check confirm box, if you want delete your account." %}</span><br /> + {% endif %} + {% if form.password.errors %} + <span class="error">{% trans "Password:" %} {{ form.password.errors|join:", " }}</span> + {% endif %} +</p> +{% endif %} +{% if msg %} +<p class="errors">{% trans "Please correct errors below:" %}<br /> + <span class="error">{{ msg }}</span> + </p> +{% endif %} +<div class="aligned"> + <form action="." method="post" accept-charset="utf-8"> + + <div id="form-row"> {{ form.confirm }} {% trans "I am sure I want to delete my account." %}</div> + <div id="form-row"><label for="id_password">{% trans "Password/OpenID URL" %}</label>{{ form.password }} {% trans "(required for your security)" %}</div> + + <p><input type="submit" value="{% trans "Delete account permanently" %}"></p> + + </form> + </div> +{% endblock %} +<!-- end delete.html --> diff --git a/forum/templates/authopenid/email_validation.txt b/forum/templates/authopenid/email_validation.txt new file mode 100644 index 00000000..5b166a9b --- /dev/null +++ b/forum/templates/authopenid/email_validation.txt @@ -0,0 +1,15 @@ +{% load i18n %} +{% trans "Greetings from the Q&A forum" %}, + +{% trans "To make use of the Forum, please follow the link below:" %} + +{{validation_link}} + +{% trans "Following the link above will help us verify your email address." %} + +{% blocktrans %}If you beleive that this message was sent in mistake - +no further action is needed. Just ingore this email, we apologize +for any inconvenience{% endblocktrans %} + +{% blocktrans %}Sincerely, +Forum Administrator{% endblocktrans %} diff --git a/forum/templates/authopenid/external_legacy_login_info.html b/forum/templates/authopenid/external_legacy_login_info.html new file mode 100644 index 00000000..3318499c --- /dev/null +++ b/forum/templates/authopenid/external_legacy_login_info.html @@ -0,0 +1,15 @@ +{% extends "base_content.html" %} +<!--customize this template--> +{% load i18n %} +{% block title %}{% spaceless %}{% trans "Traditional login information" %}{% endspaceless %}{% endblock %} +{% block content %} +<div class="headNormal"> + {% trans "Traditional login information" %} +</div> +{% spaceless %} +<div class="message"> +<!--add info about your external login site here--> +{% blocktrans %}how to login with password through external login website or use {{feedback_url}}{% endblocktrans %} +</div> +{% endspaceless %} +{% endblock %} diff --git a/forum/templates/authopenid/failure.html b/forum/templates/authopenid/failure.html new file mode 100644 index 00000000..d075d6b0 --- /dev/null +++ b/forum/templates/authopenid/failure.html @@ -0,0 +1,14 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> +<!-- failure.html --> +<html> +<head> + <title>OpenID failed + + +

    OpenID failed

    + +

    {{ message|escape }}

    + + + diff --git a/forum/templates/authopenid/sendpw.html b/forum/templates/authopenid/sendpw.html new file mode 100644 index 00000000..6241c811 --- /dev/null +++ b/forum/templates/authopenid/sendpw.html @@ -0,0 +1,26 @@ +{% extends "base.html" %} + +{% load i18n %} +{% block title %}{% spaceless %}{% trans "Send new password" %}{% endspaceless %}{% endblock %} +{% block content %} +
    + {% trans "Send new password" %} +
    +

    +{% trans "password recovery information" %} +

    +{% if msg %} +

    {{msg}}

    +{% endif %} + +

    +
    +
      + {{form.as_ul}} +
    +

    + {% trans "return to login" %}

    +
    +
    +{% endblock %} + diff --git a/forum/templates/authopenid/sendpw_email.txt b/forum/templates/authopenid/sendpw_email.txt new file mode 100644 index 00000000..f044ca45 --- /dev/null +++ b/forum/templates/authopenid/sendpw_email.txt @@ -0,0 +1,9 @@ +{% load i18n %} +{% blocktrans%}Someone has requested to reset your password on {{site_url}}. +If it were not you, it is safe to ignore this email.{% endblocktrans %} + +{% blocktrans %}email explanation how to use new {{password}} for {{username}} +with the {{key_link}}{% endblocktrans %} + +{% blocktrans %}Sincerely, +Forum Administrator{% endblocktrans %} diff --git a/forum/templates/authopenid/settings.html b/forum/templates/authopenid/settings.html new file mode 100644 index 00000000..66ea5953 --- /dev/null +++ b/forum/templates/authopenid/settings.html @@ -0,0 +1,43 @@ +{% extends "base_content.html" %} + +{% load i18n %} +{% block title %}{% spaceless %}{% trans "Account functions" %}{% endspaceless %}{% endblock %} +{% block head %} + +{% endblock %} + +{% block content %} +
    +

    {{ request.user.username }} {% trans "Profile" %}

    +
    +
    + {% if msg %} +

    {{ msg }}

    + {% endif %} + +
    +
    » {% trans "Change password" %}
    +
    {% trans "Give your account a new password." %}
    +
    » {% trans "Change email " %}
    +
    {% trans "Add or update the email address associated with your account." %}
    + {% if is_openid %} +
    » {% trans "Change OpenID" %}
    +
    {% trans "Change openid associated to your account" %}
    + {% endif %} + +
    » {% trans "Delete account" %}
    +
    {% trans "Erase your username and all your data from website" %}
    +
    +
    +{% endblock %} + diff --git a/forum/templates/authopenid/signin.html b/forum/templates/authopenid/signin.html new file mode 100755 index 00000000..aacdd490 --- /dev/null +++ b/forum/templates/authopenid/signin.html @@ -0,0 +1,186 @@ +{% extends "base.html" %} + +{% load i18n %} +{% load extra_tags %} +{% block title %}{% spaceless %}{% trans "User login" %}{% endspaceless %}{% endblock %} +{% block forejs %} + + + + + + +{% endblock %} +{% block content %} +
    + {% trans "User login" %} +
    + {% if msg %} +

    {{ msg }}

    + {% endif %} + {% if answer %} +
    + {% blocktrans with answer.question.title as title and answer.summary as summary %} + Your answer to {{title}} {{summary}} will be posted once you log in + {% endblocktrans %} +
    + {% endif %} + {% if question %} +
    + {% blocktrans with question.title as title and question.summary as summary %}Your question + {{title}} {{summary}} will be posted once you log in + {% endblocktrans %} +
    + {% endif %} +
    +
    + {% trans "Click to sign in through any of these services." %} +
    +
      +
    • + + +
    • +
    • +
      + iconhttps://www.google.com/accounts/o8/id +
      +
    • +
    • +
      + iconhttp://yahoo.com/ +
      +
    • +
    • +
      + iconhttp://openid.aol.com/username +
      +
    • +
    +
      + + +
    • + icon + http://{your-openid-url} +
    • +
    • + icon + http://username.myopenid.com/ +
    • +
    • + icon + http://flickr.com/username/ +
    • +
    • + icon + http://technorati.com/people/technorati/username/ +
    • +
    • + icon + http://username.wordpress.com +
    • +
    • + icon + http://username.blogspot.com/ +
    • +
    • + icon + http://username.livejournal.com +
    • +
    • + icon + http://claimid.com/username +
    • +
    • + icon + http://username.myvidoop.com/ +
    • +
    • + icon + http://username.pip.verisignlabs.com/ +
    • +
    + {{ form2.next }} +
    +

    {% trans 'Enter your Provider user name' %}

    +

    + + +

    +
    +
    +

    {% trans 'Enter your web address' %}

    +

    +

    +
    +
    +

    {% trans 'Enter your login name and password' %}

    + {% if form1.errors %} + {{form1.non_field_errors.as_ul}} + {% endif %} +
    + +

    + + {% trans "Create account" %}
    + {% trans "Forgot your password?" %} +

    +
    +
    +
    +{% endblock %} + +{% block sidebar %} +
    +

    {% trans "Why use OpenID?" %}

    +
      +
    • + {% trans "with openid it is easier" %} +
    • +
    • + {% trans "reuse openid" %} +
    • +
    • + {% trans "openid is widely adopted" %} +
    • +
    • + {% trans "openid is supported open standard" %} +
    • + +
    + +
    + + +{% endblock%} + + + diff --git a/forum/templates/authopenid/signup.html b/forum/templates/authopenid/signup.html new file mode 100644 index 00000000..fdb236c2 --- /dev/null +++ b/forum/templates/authopenid/signup.html @@ -0,0 +1,32 @@ +{% extends "base_content.html" %} + +{% load i18n %} +{% block title %}{% spaceless %}{% trans "Signup" %}{% endspaceless %}{% endblock %} + +{% block content %} +
    + {% trans "Create login name and password" %} +
    +

    {% trans "Traditional signup info" %}

    +
    +
      +
    • {{form.username}}{{form.username.errors}}
    • +
    • {{form.email}}{{form.email.errors}}
    • +
    • {{form.password1}}{{form.password1.errors}}
    • +
    • {{form.password2}}{{form.password2.errors}}
    • +
    +

    {% trans "receive updates motivational blurb" %}

    +
    + {{email_feeds_form.subscribe}} + {% if email_feeds_form.errors %} +

    {% trans "please select one of the options above" %}

    + {% endif %} +
    + + {{form.recaptcha}} + +
    +{% endblock %} + diff --git a/forum/templates/authopenid/yadis.xrdf b/forum/templates/authopenid/yadis.xrdf new file mode 100644 index 00000000..a9ed44fe --- /dev/null +++ b/forum/templates/authopenid/yadis.xrdf @@ -0,0 +1,14 @@ + + + + + http://specs.openid.net/auth/2.0/return_to + {% for uri in return_to %} + {{ uri }} + {% endfor %} + + + \ No newline at end of file diff --git a/forum/templates/badge.html b/forum/templates/badge.html new file mode 100644 index 00000000..af6aa2a2 --- /dev/null +++ b/forum/templates/badge.html @@ -0,0 +1,37 @@ +{% extends "base_content.html" %} + +{% load i18n %} +{% load extra_tags %} +{% load humanize %} +{% block title %}{% spaceless %}{{ badge.name }} - {% trans "Badge" %}{% endspaceless %}{% endblock %} +{% block forejs %} + +{% endblock %} +{% block content %} +
    + {% trans "Badge" %} +
    +
    +

    +  {{ badge.name }} {{ badge.description }} +

    +
    + {% if badge.awarded_count %} +

    {{ awards|length|intcomma }} + {% trans "The users have been awarded with badges:" %}

    + {% endif %} +
    +
    + {% for award in awards %} +

    {{ award.name }} {% get_score_badge_by_details award.rep award.gold award.silver award.bronze %}

    + {% endfor %} +
    + +
    +{% endblock %} + diff --git a/forum/templates/badges.html b/forum/templates/badges.html new file mode 100644 index 00000000..8de93df5 --- /dev/null +++ b/forum/templates/badges.html @@ -0,0 +1,76 @@ +{% extends "base.html" %} + +{% load extra_tags %} +{% load humanize %} +{% load i18n %} +{% block title %}{% spaceless %}{% trans "Badges summary" %}{% endspaceless %}{% endblock %} +{% block forejs %} + +{% endblock %} +{% block content %} +
    + {% trans "Badges" %} +
    +
    +

    + {% trans "Community gives you awards for your questions, answers and votes." %}
    + {% blocktrans %}Below is the list of available badges and number + of times each type of badge has been awarded. Give us feedback at {{feedback_faq_url}}. + {% endblocktrans %} +

    +
    + {% for badge in badges %} +
    +
    + {% for a in mybadges %} + {% ifequal a.badge_id badge.id %} + + {% endifequal %} + {% endfor %} +
    +
    +  {{ badge.name }} × {{ badge.awarded_count|intcomma }} +
    +

    + {{ badge.description }} +

    +
    + {% endfor %} +
    +
    +{% endblock %} +{% block sidebar %} + +
    +

    {% trans "Community badges" %}

    +
    +

    +  {% trans "gold" %} +

    +

    + {% trans "gold badge description" %} +

    +

    +  {% trans "silver" %} +

    +

    + {% trans "silver badge description" %} +

    +

    + +  {% trans "bronze" %} +

    +

    + {% trans "bronze badge description" %} +

    +
    +
    +{% endblock %} + diff --git a/forum/templates/base.html b/forum/templates/base.html new file mode 100755 index 00000000..17a32ef2 --- /dev/null +++ b/forum/templates/base.html @@ -0,0 +1,95 @@ + + +{% load extra_filters %} +{% load extra_tags %} +{% load i18n %} + + + {% block title %}{% endblock %} - {{ settings.APP_TITLE }} + {% spaceless %} + {% block meta %}{% endblock %} + {% endspaceless %} + + {% if settings.GOOGLE_SITEMAP_CODE %} + + {% endif %} + + + + + + + + + + + {% if user_messages %} + + + {% endif %} + + {% block forejs %} + {% endblock %} + + + + {% include "header.html" %} +
    +
    +
    + {% block content%} + {% endblock%} + +
    +
    + {% block sidebar%} + {% endblock%} + +
    +
    + {% block tail %} + {% endblock %} +
    +
    +
    +
    + {% include "footer.html" %} + {% block endjs %} + {% endblock %} + + + diff --git a/forum/templates/base_content.html b/forum/templates/base_content.html new file mode 100644 index 00000000..eacdc6d0 --- /dev/null +++ b/forum/templates/base_content.html @@ -0,0 +1,93 @@ + + +{% load i18n %} +{% load extra_tags %} + + + {% block title %}{% endblock %} - {{ settings.APP_TITLE }} + + {% if settings.GOOGLE_SITEMAP_CODE %} + + {% endif %} + + + {% spaceless %} + {% block forestyle %}{% endblock %} + {% endspaceless %} + + + + + + + + + + + {% if user_messages %} + + + {% endif %} + + {% block forejs %} + {% endblock %} + + + + {% include "header.html" %} +
    +
    +
    + {% block content%} + {% endblock%} + +
    +
    + {% block tail %} + {% endblock %} +
    +
    +
    +
    + {% include "footer.html" %} + {% block endjs %} + {% endblock %} + + + diff --git a/forum/templates/book.html b/forum/templates/book.html new file mode 100644 index 00000000..e83268e4 --- /dev/null +++ b/forum/templates/book.html @@ -0,0 +1,152 @@ +{% extends "base_content.html" %} + +{% load i18n %} +{% load extra_tags %} +{% load extra_filters %} +{% load humanize %} +{% block title %}{% spaceless %}{{ book.title }}-{% trans "reading channel" %}{% endspaceless %}{% endblock %} +{% block forejs %} + +{% endblock %} +{% block content %} + +
    +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {% if author_info.blog_url %} + + + + + + {% endif %} + + + + + + + + +
    {% trans "[author]" %}{{ book.author }}
    {% trans "[publisher]" %}{{ book.publication }}
    {% trans "[publication date]" %}{{ book.published_at|date:"Y-m" }}
    {% trans "[price]" %}{{ book.price }} {% trans "currency unit" %}
    {% trans "[pages]" %}{{ book.pages }} {% trans "pages abbreviation" %}
    {% trans "[tags]" %}{{ book.tagnames }}
     
    {% trans "author blog" %} »
    {% trans "book directory" %} »
    {% trans "buy online" %} »
    +
    +
    + +
    +
    + + +{% endblock %} +{% block tail %} +
    + {% cnprog_paginator context %} + +
    + + +{% endblock %} + diff --git a/forum/templates/close.html b/forum/templates/close.html new file mode 100644 index 00000000..d9e73507 --- /dev/null +++ b/forum/templates/close.html @@ -0,0 +1,36 @@ +{% extends "base_content.html" %} + +{% load i18n %} +{% load extra_tags %} +{% load humanize %} +{% block title %}{% spaceless %}{% trans "Close question" %}{% endspaceless %}{% endblock %} +{% block forejs %} + +{% endblock %} +{% block content %} +
    + {% trans "Close question" %} +
    +
    +

    {% trans "Close the question" %}: + {{ question.get_question_title }} +

    + +
    +

    + {% trans "Reasons" %}: {{ form.reason }} +

    +
    + + + +
    + +
    +
    +{% endblock %} + diff --git a/forum/templates/content/images/blue-up-arrow-h18px.png b/forum/templates/content/images/blue-up-arrow-h18px.png new file mode 100644 index 00000000..e1f29e86 Binary files /dev/null and b/forum/templates/content/images/blue-up-arrow-h18px.png differ diff --git a/forum/templates/content/images/box-arrow.gif b/forum/templates/content/images/box-arrow.gif new file mode 100644 index 00000000..89dcf5b3 Binary files /dev/null and b/forum/templates/content/images/box-arrow.gif differ diff --git a/forum/templates/content/images/bullet_green.gif b/forum/templates/content/images/bullet_green.gif new file mode 100644 index 00000000..fa530910 Binary files /dev/null and b/forum/templates/content/images/bullet_green.gif differ diff --git a/forum/templates/content/images/cc-88x31.png b/forum/templates/content/images/cc-88x31.png new file mode 100644 index 00000000..0f2a0f10 Binary files /dev/null and b/forum/templates/content/images/cc-88x31.png differ diff --git a/forum/templates/content/images/cc-wiki.png b/forum/templates/content/images/cc-wiki.png new file mode 100644 index 00000000..3e680538 Binary files /dev/null and b/forum/templates/content/images/cc-wiki.png differ diff --git a/forum/templates/content/images/close-small-dark.png b/forum/templates/content/images/close-small-dark.png new file mode 100644 index 00000000..280c1fc7 Binary files /dev/null and b/forum/templates/content/images/close-small-dark.png differ diff --git a/forum/templates/content/images/close-small-hover.png b/forum/templates/content/images/close-small-hover.png new file mode 100644 index 00000000..7899aec7 Binary files /dev/null and b/forum/templates/content/images/close-small-hover.png differ diff --git a/forum/templates/content/images/close-small.png b/forum/templates/content/images/close-small.png new file mode 100644 index 00000000..5a99d31f Binary files /dev/null and b/forum/templates/content/images/close-small.png differ diff --git a/forum/templates/content/images/dash.gif b/forum/templates/content/images/dash.gif new file mode 100644 index 00000000..d1ddc507 Binary files /dev/null and b/forum/templates/content/images/dash.gif differ diff --git a/forum/templates/content/images/djangomade124x25_grey.gif b/forum/templates/content/images/djangomade124x25_grey.gif new file mode 100644 index 00000000..d34bb311 Binary files /dev/null and b/forum/templates/content/images/djangomade124x25_grey.gif differ diff --git a/forum/templates/content/images/dot-g.gif b/forum/templates/content/images/dot-g.gif new file mode 100644 index 00000000..5d6bb28e Binary files /dev/null and b/forum/templates/content/images/dot-g.gif differ diff --git a/forum/templates/content/images/dot-list.gif b/forum/templates/content/images/dot-list.gif new file mode 100644 index 00000000..f6a6b865 Binary files /dev/null and b/forum/templates/content/images/dot-list.gif differ diff --git a/forum/templates/content/images/edit.png b/forum/templates/content/images/edit.png new file mode 100644 index 00000000..dcb09be0 Binary files /dev/null and b/forum/templates/content/images/edit.png differ diff --git a/forum/templates/content/images/expander-arrow-hide.gif b/forum/templates/content/images/expander-arrow-hide.gif new file mode 100644 index 00000000..feb6a618 Binary files /dev/null and b/forum/templates/content/images/expander-arrow-hide.gif differ diff --git a/forum/templates/content/images/expander-arrow-show.gif b/forum/templates/content/images/expander-arrow-show.gif new file mode 100644 index 00000000..6825c56e Binary files /dev/null and b/forum/templates/content/images/expander-arrow-show.gif differ diff --git a/forum/templates/content/images/favicon.gif b/forum/templates/content/images/favicon.gif new file mode 100644 index 00000000..910c2666 Binary files /dev/null and b/forum/templates/content/images/favicon.gif differ diff --git a/forum/templates/content/images/feed-icon-small.png b/forum/templates/content/images/feed-icon-small.png new file mode 100644 index 00000000..b3c949d2 Binary files /dev/null and b/forum/templates/content/images/feed-icon-small.png differ diff --git a/forum/templates/content/images/gray-up-arrow-h18px.png b/forum/templates/content/images/gray-up-arrow-h18px.png new file mode 100644 index 00000000..78767445 Binary files /dev/null and b/forum/templates/content/images/gray-up-arrow-h18px.png differ diff --git a/forum/templates/content/images/grippie.png b/forum/templates/content/images/grippie.png new file mode 100644 index 00000000..6524d416 Binary files /dev/null and b/forum/templates/content/images/grippie.png differ diff --git a/forum/templates/content/images/indicator.gif b/forum/templates/content/images/indicator.gif new file mode 100644 index 00000000..1c72ebb5 Binary files /dev/null and b/forum/templates/content/images/indicator.gif differ diff --git a/forum/templates/content/images/logo.gif b/forum/templates/content/images/logo.gif new file mode 100644 index 00000000..ab690de2 Binary files /dev/null and b/forum/templates/content/images/logo.gif differ diff --git a/forum/templates/content/images/logo.png b/forum/templates/content/images/logo.png new file mode 100644 index 00000000..6a250e35 Binary files /dev/null and b/forum/templates/content/images/logo.png differ diff --git a/forum/templates/content/images/logo1.png b/forum/templates/content/images/logo1.png new file mode 100644 index 00000000..d79a6271 Binary files /dev/null and b/forum/templates/content/images/logo1.png differ diff --git a/forum/templates/content/images/logo2.png b/forum/templates/content/images/logo2.png new file mode 100644 index 00000000..bd3cccd9 Binary files /dev/null and b/forum/templates/content/images/logo2.png differ diff --git a/forum/templates/content/images/medala.gif b/forum/templates/content/images/medala.gif new file mode 100644 index 00000000..93dd1a39 Binary files /dev/null and b/forum/templates/content/images/medala.gif differ diff --git a/forum/templates/content/images/medala_on.gif b/forum/templates/content/images/medala_on.gif new file mode 100644 index 00000000..a18f9e85 Binary files /dev/null and b/forum/templates/content/images/medala_on.gif differ diff --git a/forum/templates/content/images/new.gif b/forum/templates/content/images/new.gif new file mode 100644 index 00000000..8a220b53 Binary files /dev/null and b/forum/templates/content/images/new.gif differ diff --git a/forum/templates/content/images/nophoto.png b/forum/templates/content/images/nophoto.png new file mode 100644 index 00000000..2daf0ffd Binary files /dev/null and b/forum/templates/content/images/nophoto.png differ diff --git a/forum/templates/content/images/openid.gif b/forum/templates/content/images/openid.gif new file mode 100644 index 00000000..8540e12b Binary files /dev/null and b/forum/templates/content/images/openid.gif differ diff --git a/forum/templates/content/images/openid/aol.gif b/forum/templates/content/images/openid/aol.gif new file mode 100644 index 00000000..decc4f12 Binary files /dev/null and b/forum/templates/content/images/openid/aol.gif differ diff --git a/forum/templates/content/images/openid/blogger.ico b/forum/templates/content/images/openid/blogger.ico new file mode 100644 index 00000000..1b9730b0 Binary files /dev/null and b/forum/templates/content/images/openid/blogger.ico differ diff --git a/forum/templates/content/images/openid/claimid.ico b/forum/templates/content/images/openid/claimid.ico new file mode 100644 index 00000000..2b80f491 Binary files /dev/null and b/forum/templates/content/images/openid/claimid.ico differ diff --git a/forum/templates/content/images/openid/facebook.gif b/forum/templates/content/images/openid/facebook.gif new file mode 100644 index 00000000..b997b358 Binary files /dev/null and b/forum/templates/content/images/openid/facebook.gif differ diff --git a/forum/templates/content/images/openid/flickr.ico b/forum/templates/content/images/openid/flickr.ico new file mode 100644 index 00000000..11f6e07f Binary files /dev/null and b/forum/templates/content/images/openid/flickr.ico differ diff --git a/forum/templates/content/images/openid/google.gif b/forum/templates/content/images/openid/google.gif new file mode 100644 index 00000000..1b6cd07b Binary files /dev/null and b/forum/templates/content/images/openid/google.gif differ diff --git a/forum/templates/content/images/openid/livejournal.ico b/forum/templates/content/images/openid/livejournal.ico new file mode 100644 index 00000000..f3d21ec5 Binary files /dev/null and b/forum/templates/content/images/openid/livejournal.ico differ diff --git a/forum/templates/content/images/openid/myopenid.ico b/forum/templates/content/images/openid/myopenid.ico new file mode 100644 index 00000000..ceb06e6a Binary files /dev/null and b/forum/templates/content/images/openid/myopenid.ico differ diff --git a/forum/templates/content/images/openid/openid-inputicon.gif b/forum/templates/content/images/openid/openid-inputicon.gif new file mode 100644 index 00000000..cde836c8 Binary files /dev/null and b/forum/templates/content/images/openid/openid-inputicon.gif differ diff --git a/forum/templates/content/images/openid/openid.gif b/forum/templates/content/images/openid/openid.gif new file mode 100644 index 00000000..c718b0e6 Binary files /dev/null and b/forum/templates/content/images/openid/openid.gif differ diff --git a/forum/templates/content/images/openid/technorati.ico b/forum/templates/content/images/openid/technorati.ico new file mode 100644 index 00000000..fa1083c1 Binary files /dev/null and b/forum/templates/content/images/openid/technorati.ico differ diff --git a/forum/templates/content/images/openid/verisign.ico b/forum/templates/content/images/openid/verisign.ico new file mode 100644 index 00000000..3953af93 Binary files /dev/null and b/forum/templates/content/images/openid/verisign.ico differ diff --git a/forum/templates/content/images/openid/vidoop.ico b/forum/templates/content/images/openid/vidoop.ico new file mode 100644 index 00000000..bbd9a0d5 Binary files /dev/null and b/forum/templates/content/images/openid/vidoop.ico differ diff --git a/forum/templates/content/images/openid/wordpress.ico b/forum/templates/content/images/openid/wordpress.ico new file mode 100644 index 00000000..31b7d2c2 Binary files /dev/null and b/forum/templates/content/images/openid/wordpress.ico differ diff --git a/forum/templates/content/images/openid/yahoo.gif b/forum/templates/content/images/openid/yahoo.gif new file mode 100644 index 00000000..42adbfa5 Binary files /dev/null and b/forum/templates/content/images/openid/yahoo.gif differ diff --git a/forum/templates/content/images/quest-bg.gif b/forum/templates/content/images/quest-bg.gif new file mode 100644 index 00000000..b7540238 Binary files /dev/null and b/forum/templates/content/images/quest-bg.gif differ diff --git a/forum/templates/content/images/vote-accepted-on.png b/forum/templates/content/images/vote-accepted-on.png new file mode 100644 index 00000000..2026f3bc Binary files /dev/null and b/forum/templates/content/images/vote-accepted-on.png differ diff --git a/forum/templates/content/images/vote-accepted.png b/forum/templates/content/images/vote-accepted.png new file mode 100644 index 00000000..ecd18551 Binary files /dev/null and b/forum/templates/content/images/vote-accepted.png differ diff --git a/forum/templates/content/images/vote-arrow-down-on.png b/forum/templates/content/images/vote-arrow-down-on.png new file mode 100644 index 00000000..048dbb44 Binary files /dev/null and b/forum/templates/content/images/vote-arrow-down-on.png differ diff --git a/forum/templates/content/images/vote-arrow-down.png b/forum/templates/content/images/vote-arrow-down.png new file mode 100644 index 00000000..e4fdec0a Binary files /dev/null and b/forum/templates/content/images/vote-arrow-down.png differ diff --git a/forum/templates/content/images/vote-arrow-up-on.png b/forum/templates/content/images/vote-arrow-up-on.png new file mode 100644 index 00000000..56ad0c25 Binary files /dev/null and b/forum/templates/content/images/vote-arrow-up-on.png differ diff --git a/forum/templates/content/images/vote-arrow-up.png b/forum/templates/content/images/vote-arrow-up.png new file mode 100644 index 00000000..6e9a51c7 Binary files /dev/null and b/forum/templates/content/images/vote-arrow-up.png differ diff --git a/forum/templates/content/images/vote-favorite-off.png b/forum/templates/content/images/vote-favorite-off.png new file mode 100644 index 00000000..c1bef074 Binary files /dev/null and b/forum/templates/content/images/vote-favorite-off.png differ diff --git a/forum/templates/content/images/vote-favorite-on.png b/forum/templates/content/images/vote-favorite-on.png new file mode 100644 index 00000000..1f9c14ab Binary files /dev/null and b/forum/templates/content/images/vote-favorite-on.png differ diff --git a/forum/templates/content/jquery-openid/images/aol.gif b/forum/templates/content/jquery-openid/images/aol.gif new file mode 100644 index 00000000..decc4f12 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/aol.gif differ diff --git a/forum/templates/content/jquery-openid/images/blogger-1.png b/forum/templates/content/jquery-openid/images/blogger-1.png new file mode 100644 index 00000000..8b360ea5 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/blogger-1.png differ diff --git a/forum/templates/content/jquery-openid/images/blogger.ico b/forum/templates/content/jquery-openid/images/blogger.ico new file mode 100644 index 00000000..1b9730b0 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/blogger.ico differ diff --git a/forum/templates/content/jquery-openid/images/claimid-0.png b/forum/templates/content/jquery-openid/images/claimid-0.png new file mode 100644 index 00000000..4a0ea1b3 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/claimid-0.png differ diff --git a/forum/templates/content/jquery-openid/images/claimid.ico b/forum/templates/content/jquery-openid/images/claimid.ico new file mode 100644 index 00000000..2b80f491 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/claimid.ico differ diff --git a/forum/templates/content/jquery-openid/images/facebook.gif b/forum/templates/content/jquery-openid/images/facebook.gif new file mode 100644 index 00000000..b997b358 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/facebook.gif differ diff --git a/forum/templates/content/jquery-openid/images/flickr.ico b/forum/templates/content/jquery-openid/images/flickr.ico new file mode 100644 index 00000000..11f6e07f Binary files /dev/null and b/forum/templates/content/jquery-openid/images/flickr.ico differ diff --git a/forum/templates/content/jquery-openid/images/flickr.png b/forum/templates/content/jquery-openid/images/flickr.png new file mode 100644 index 00000000..142405a6 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/flickr.png differ diff --git a/forum/templates/content/jquery-openid/images/google.gif b/forum/templates/content/jquery-openid/images/google.gif new file mode 100644 index 00000000..1b6cd07b Binary files /dev/null and b/forum/templates/content/jquery-openid/images/google.gif differ diff --git a/forum/templates/content/jquery-openid/images/livejournal-1.png b/forum/templates/content/jquery-openid/images/livejournal-1.png new file mode 100644 index 00000000..e6436081 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/livejournal-1.png differ diff --git a/forum/templates/content/jquery-openid/images/livejournal.ico b/forum/templates/content/jquery-openid/images/livejournal.ico new file mode 100644 index 00000000..f3d21ec5 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/livejournal.ico differ diff --git a/forum/templates/content/jquery-openid/images/myopenid-2.png b/forum/templates/content/jquery-openid/images/myopenid-2.png new file mode 100644 index 00000000..f64fb8e8 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/myopenid-2.png differ diff --git a/forum/templates/content/jquery-openid/images/myopenid.ico b/forum/templates/content/jquery-openid/images/myopenid.ico new file mode 100644 index 00000000..ceb06e6a Binary files /dev/null and b/forum/templates/content/jquery-openid/images/myopenid.ico differ diff --git a/forum/templates/content/jquery-openid/images/openid-inputicon.gif b/forum/templates/content/jquery-openid/images/openid-inputicon.gif new file mode 100644 index 00000000..cde836c8 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/openid-inputicon.gif differ diff --git a/forum/templates/content/jquery-openid/images/openid.gif b/forum/templates/content/jquery-openid/images/openid.gif new file mode 100644 index 00000000..c718b0e6 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/openid.gif differ diff --git a/forum/templates/content/jquery-openid/images/openidico.png b/forum/templates/content/jquery-openid/images/openidico.png new file mode 100644 index 00000000..ab622669 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/openidico.png differ diff --git a/forum/templates/content/jquery-openid/images/openidico16.png b/forum/templates/content/jquery-openid/images/openidico16.png new file mode 100644 index 00000000..ad718ac5 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/openidico16.png differ diff --git a/forum/templates/content/jquery-openid/images/technorati-1.png b/forum/templates/content/jquery-openid/images/technorati-1.png new file mode 100644 index 00000000..f7195240 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/technorati-1.png differ diff --git a/forum/templates/content/jquery-openid/images/technorati.ico b/forum/templates/content/jquery-openid/images/technorati.ico new file mode 100644 index 00000000..fa1083c1 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/technorati.ico differ diff --git a/forum/templates/content/jquery-openid/images/verisign-2.png b/forum/templates/content/jquery-openid/images/verisign-2.png new file mode 100644 index 00000000..c1467008 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/verisign-2.png differ diff --git a/forum/templates/content/jquery-openid/images/verisign.ico b/forum/templates/content/jquery-openid/images/verisign.ico new file mode 100644 index 00000000..3953af93 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/verisign.ico differ diff --git a/forum/templates/content/jquery-openid/images/vidoop.ico b/forum/templates/content/jquery-openid/images/vidoop.ico new file mode 100644 index 00000000..bbd9a0d5 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/vidoop.ico differ diff --git a/forum/templates/content/jquery-openid/images/vidoop.png b/forum/templates/content/jquery-openid/images/vidoop.png new file mode 100644 index 00000000..032c9e98 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/vidoop.png differ diff --git a/forum/templates/content/jquery-openid/images/wordpress.ico b/forum/templates/content/jquery-openid/images/wordpress.ico new file mode 100644 index 00000000..31b7d2c2 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/wordpress.ico differ diff --git a/forum/templates/content/jquery-openid/images/wordpress.png b/forum/templates/content/jquery-openid/images/wordpress.png new file mode 100644 index 00000000..ee29f0cf Binary files /dev/null and b/forum/templates/content/jquery-openid/images/wordpress.png differ diff --git a/forum/templates/content/jquery-openid/images/yahoo.gif b/forum/templates/content/jquery-openid/images/yahoo.gif new file mode 100644 index 00000000..42adbfa5 Binary files /dev/null and b/forum/templates/content/jquery-openid/images/yahoo.gif differ diff --git a/forum/templates/content/jquery-openid/jquery.openid.js b/forum/templates/content/jquery-openid/jquery.openid.js new file mode 100644 index 00000000..8d1cd204 --- /dev/null +++ b/forum/templates/content/jquery-openid/jquery.openid.js @@ -0,0 +1,111 @@ +//jQuery OpenID Plugin 1.1 Copyright 2009 Jarrett Vance http://jvance.com/pages/jQueryOpenIdPlugin.xhtml +$.fn.openid = function() { + var $this = $(this); + + //name input value - needed for name based OpenID + var $usr = $this.find('input[name=openid_username]'); + + //final url input value + var $id = $this.find('input[name=openid_url]'); + + //beginning and end of name OpenID url (name being the middle) + var $front = $this.find('p:has(input[name=openid_username])>span:eq(0)'); + var $end = $this.find('p:has(input[name=openid_username])>span:eq(1)'); + + //needed for special effects only + var $localfs = $this.find('fieldset:has(input[name=username])'); + var $usrfs = $this.find('fieldset:has(input[name=openid_username])'); + var $idfs = $this.find('fieldset:has(input[name=openid_url])'); + + var submitusr = function() { + if ($usr.val().length < 1) { + $usr.focus(); + return false; + } + $id.val($front.text() + $usr.val() + $end.text()); + return true; + }; + + var submitid = function() { + if ($id.val().length < 1) { + $id.focus(); + return false; + } + return true; + + }; + var local = function() { + var $li = $(this); + $('#openid_form .providers li').removeClass('highlight'); + $li.addClass('highlight'); + $usrfs.hide(); + $idfs.hide(); + $localfs.show(); + $this.unbind('submit').submit(submitid); + return false; + }; + + var direct = function() { + var $li = $(this); + $('#openid_form .providers li').removeClass('highlight'); + $li.addClass('highlight'); + $usrfs.fadeOut('slow'); + $localfs.fadeOut('slow'); + $idfs.fadeOut('slow'); + $id.val($this.find("li.highlight span").text()); + setTimeout(function(){$('#bsignin').click();},1000); + return false; + }; + + var openid = function() { + var $li = $(this); + $('#openid_form .providers li').removeClass('highlight'); + $li.addClass('highlight'); + $usrfs.hide(); + $localfs.hide(); + $idfs.show(); + $id.focus(); + $this.unbind('submit').submit(submitid); + return false; + }; + + var username = function() { + var $li = $(this); + $('#openid_form .providers li').removeClass('highlight'); + $li.addClass('highlight'); + $idfs.hide(); + $localfs.hide(); + $usrfs.show(); + $this.find('#enter_your_what').text($li.attr("title")); + $front.text($li.find("span").text().split("username")[0]); + $end.text("").text($li.find("span").text().split("username")[1]); + $id.focus(); + $this.unbind('submit').submit(submitusr); + return false; + }; + + $this.find('li.local').click(local); + $this.find('li.direct').click(direct); + $this.find('li.openid').click(openid); + $this.find('li.username').click(username); + $id.keypress(function(e) { + if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) { + return submitid(); + } + }); + $usr.keypress(function(e) { + if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) { + return submitusr(); + } + }); + $this.find('li span').hide(); + $this.find('li').css('line-height', 0).css('cursor', 'pointer'); + $usrfs.hide(); + $idfs.hide(); + $localfs.hide(); + $this.find('li:eq(0)').click(); + + return this; +}; +// submitting next=%2F&openid_username=&openid_url=http%3A%2F%2Fyahoo.com%2F +// submitting next=%2F&openid_username=&openid_url=http%3A%2F%2Fyahoo.com%2F diff --git a/forum/templates/content/jquery-openid/openid.css b/forum/templates/content/jquery-openid/openid.css new file mode 100644 index 00000000..1b7aaf82 --- /dev/null +++ b/forum/templates/content/jquery-openid/openid.css @@ -0,0 +1,75 @@ +fieldset { border-style:none; } +img {border-style:none;} + +.logo_box {display:inline-block;float:left;width:90px;height:40px;background:white;border:1px solid #dddddd;} +.openid_box img {margin-top:6px;} +.aol_box img {margin-top:6px;} +.yahoo_box img {margin-top:13px;} +.google_box img {margin-top:6px;} +.local_login_box img {margin-top:2px;margin-left:-3px;} + +form.openid ul{ margin:0;padding:0;text-align:center; list-style-type:none; display:block;} +form.openid ul li {float:left; padding:4px;display:inline-block;} +form.openid ul li div {display:inline-block;} +form.openid ul li span {padding:0 1em 0 3px} +form.openid ul li.first_tiny_li {clear:left;} +form.openid fieldset {clear:both;padding:10px 0px 0px 0px;} +form.openid div+fieldset {display:none} +form.openid label {display:block; font-weight:bold;} +input[name=openid_username] {width:8em} +input[name=openid_identifier] {width:18em} +form.openid ul li.highlight { -moz-border-radius:4px; -webkit-border-radius:4px; background-color: #FD6} +form.openid fieldset div { + -moz-border-radius:4px; + -webkit-border-radius:4px; + background: #DCDCDC; + padding:10px; + display:inline-block; + float:left; +} +form.openid p {margin-bottom:4px;} +form.openid fieldset div p {padding:0px;margin:0px;} +form.openid fieldset div p.login {padding:0px;margin:0 0 10px 0;} +form.openid label { + display:inline-block; + font-weight:normal; + width:6em; + text-align:right; +} +#local_login_fs div { + padding-bottom:4px; +} +#local_login_buttons { + text-align:center; + line-height:1.8em; + margin-top:3px; +} +/*form.openid input[type='submit'] {margin-left:1em;}*/ +#openid_username {background:#ffffa0;} +#openid_url {background:#ffffa0;} + +.openid_logo{color:#F7931E;padding:6px 0px 8px 28px; +background: url(images/openidico.png) no-repeat; +} + +#openid_login {float:left; width:30%; margin:2em 1em; text-align:center} +#openid_login div{margin-top:0.5em} + +form.openid ul.errorlist { + border: none; + list-style-position:inside; + list-style-type: disc; + margin-bottom:5px; +} +form.openid ul.errorlist li { + text-align: left; + margin: 5px; + float: none; + color:blue; +} +#openid_small_providers li { + margin-top:4px; +} +#openid_small_providers li.facebook { + margin-top:0px; +} diff --git a/forum/templates/content/js/com.cnprog.admin.js b/forum/templates/content/js/com.cnprog.admin.js new file mode 100644 index 00000000..39dff48c --- /dev/null +++ b/forum/templates/content/js/com.cnprog.admin.js @@ -0,0 +1,13 @@ +$(document).ready( function(){ + var options = { + success: function(a,b){$('.admin #action_status').html($.i18n._('changes saved'));}, + dataType:'json', + timeout:5000, + url: scriptUrl + $.i18n._('moderate-user/') + viewUserID + '/' + }; + var form = $('.admin #moderate_user_form').ajaxForm(options); + var box = $('.admin input#id_is_approved').click(function(){ + $('.admin #action_status').html($.i18n._('sending data...')); + form.ajaxSubmit(options); + }); +}); diff --git a/forum/templates/content/js/com.cnprog.editor.js b/forum/templates/content/js/com.cnprog.editor.js new file mode 100644 index 00000000..18cc5166 --- /dev/null +++ b/forum/templates/content/js/com.cnprog.editor.js @@ -0,0 +1,68 @@ +/* + jQuery TextAreaResizer plugin + Created on 17th January 2008 by Ryan O'Dell + Version 1.0.4 +*/(function($){var textarea,staticOffset;var iLastMousePos=0;var iMin=32;var grip;$.fn.TextAreaResizer=function(){return this.each(function(){textarea=$(this).addClass('processed'),staticOffset=null;$(this).wrap('
    ').parent().append($('
    ').bind("mousedown",{el:this},startDrag));var grippie=$('div.grippie',$(this).parent())[0];grippie.style.marginRight=(grippie.offsetWidth-$(this)[0].offsetWidth)+'px'})};function startDrag(e){textarea=$(e.data.el);textarea.blur();iLastMousePos=mousePosition(e).y;staticOffset=textarea.height()-iLastMousePos;textarea.css('opacity',0.25);$(document).mousemove(performDrag).mouseup(endDrag);return false}function performDrag(e){var iThisMousePos=mousePosition(e).y;var iMousePos=staticOffset+iThisMousePos;if(iLastMousePos>=(iThisMousePos)){iMousePos-=5}iLastMousePos=iThisMousePos;iMousePos=Math.max(iMin,iMousePos);textarea.height(iMousePos+'px');if(iMousePos1&&!select.visible()){onChange(0,true);}}).bind("search",function(){var fn=(arguments.length>1)?arguments[1]:null;function findValueCallback(q,data){var result;if(data&&data.length){for(var i=0;i1){v=words.slice(0,words.length-1).join(options.multipleSeparator)+options.multipleSeparator+v;}v+=options.multipleSeparator;}$input.val(v);hideResultsNow();$input.trigger("result",[selected.data,selected.value]);return true;}function onChange(crap,skipPrevCheck){if(lastKeyPressCode==KEY.DEL){select.hide();return;}var currentValue=$input.val();if(!skipPrevCheck&¤tValue==previousValue)return;previousValue=currentValue;currentValue=lastWord(currentValue);if(currentValue.length>=options.minChars){$input.addClass(options.loadingClass);if(!options.matchCase)currentValue=currentValue.toLowerCase();request(currentValue,receiveData,hideResultsNow);}else{stopLoading();select.hide();}};function trimWords(value){if(!value){return[""];}var words=value.split(options.multipleSeparator);var result=[];$.each(words,function(i,value){if($.trim(value))result[i]=$.trim(value);});return result;}function lastWord(value){if(!options.multiple)return value;var words=trimWords(value);return words[words.length-1];}function autoFill(q,sValue){if(options.autoFill&&(lastWord($input.val()).toLowerCase()==q.toLowerCase())&&lastKeyPressCode!=KEY.BACKSPACE){$input.val($input.val()+sValue.substring(lastWord(previousValue).length));$.Autocompleter.Selection(input,previousValue.length,previousValue.length+sValue.length);}};function hideResults(){clearTimeout(timeout);timeout=setTimeout(hideResultsNow,200);};function hideResultsNow(){var wasVisible=select.visible();select.hide();clearTimeout(timeout);stopLoading();if(options.mustMatch){$input.search(function(result){if(!result){if(options.multiple){var words=trimWords($input.val()).slice(0,-1);$input.val(words.join(options.multipleSeparator)+(words.length?options.multipleSeparator:""));}else +$input.val("");}});}if(wasVisible)$.Autocompleter.Selection(input,input.value.length,input.value.length);};function receiveData(q,data){if(data&&data.length&&hasFocus){stopLoading();select.display(data,q);autoFill(q,data[0].value);select.show();}else{hideResultsNow();}};function request(term,success,failure){if(!options.matchCase)term=term.toLowerCase();var data=cache.load(term);if(data&&data.length){success(term,data);}else if((typeof options.url=="string")&&(options.url.length>0)){var extraParams={timestamp:+new Date()};$.each(options.extraParams,function(key,param){extraParams[key]=typeof param=="function"?param():param;});$.ajax({mode:"abort",port:"autocomplete"+input.name,dataType:options.dataType,url:options.url,data:$.extend({q:lastWord(term),limit:options.max},extraParams),success:function(data){var parsed=options.parse&&options.parse(data)||parse(data);cache.add(term,parsed);success(term,parsed);}});}else{select.emptyList();failure(term);}};function parse(data){var parsed=[];var rows=data.split("\n");for(var i=0;i]*)("+term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"$1");},scroll:true,scrollHeight:180};$.Autocompleter.Cache=function(options){var data={};var length=0;function matchSubset(s,sub){if(!options.matchCase)s=s.toLowerCase();var i=s.indexOf(sub);if(i==-1)return false;return i==0||options.matchContains;};function add(q,value){if(length>options.cacheLength){flush();}if(!data[q]){length++;}data[q]=value;}function populate(){if(!options.data)return false;var stMatchSets={},nullData=0;if(!options.url)options.cacheLength=1;stMatchSets[""]=[];for(var i=0,ol=options.data.length;i0){var c=data[k];$.each(c,function(i,x){if(matchSubset(x.value,q)){csub.push(x);}});}}return csub;}else +if(data[q]){return data[q];}else +if(options.matchSubset){for(var i=q.length-1;i>=options.minChars;i--){var c=data[q.substr(0,i)];if(c){var csub=[];$.each(c,function(i,x){if(matchSubset(x.value,q)){csub[csub.length]=x;}});return csub;}}}return null;}};};$.Autocompleter.Select=function(options,input,select,config){var CLASSES={ACTIVE:"ac_over"};var listItems,active=-1,data,term="",needsInit=true,element,list;function init(){if(!needsInit)return;element=$("
    ").hide().addClass(options.resultsClass).css("position","absolute").appendTo(document.body);list=$("
      ").appendTo(element).mouseover(function(event){if(target(event).nodeName&&target(event).nodeName.toUpperCase()=='LI'){active=$("li",list).removeClass(CLASSES.ACTIVE).index(target(event));$(target(event)).addClass(CLASSES.ACTIVE);}}).click(function(event){$(target(event)).addClass(CLASSES.ACTIVE);select();input.focus();return false;}).mousedown(function(){config.mouseDownOnSelect=true;}).mouseup(function(){config.mouseDownOnSelect=false;});if(options.width>0)element.css("width",options.width);needsInit=false;}function target(event){var element=event.target;while(element&&element.tagName!="LI")element=element.parentNode;if(!element)return[];return element;}function moveSelect(step){listItems.slice(active,active+1).removeClass(CLASSES.ACTIVE);movePosition(step);var activeItem=listItems.slice(active,active+1).addClass(CLASSES.ACTIVE);if(options.scroll){var offset=0;listItems.slice(0,active).each(function(){offset+=this.offsetHeight;});if((offset+activeItem[0].offsetHeight-list.scrollTop())>list[0].clientHeight){list.scrollTop(offset+activeItem[0].offsetHeight-list.innerHeight());}else if(offset=listItems.size()){active=0;}}function limitNumberOfItems(available){return options.max&&options.max").html(options.highlight(formatted,term)).addClass(i%2==0?"ac_even":"ac_odd").appendTo(list)[0];$.data(li,"ac_data",data[i]);}listItems=list.find("li");if(options.selectFirst){listItems.slice(0,1).addClass(CLASSES.ACTIVE);active=0;}if($.fn.bgiframe)list.bgiframe();}return{display:function(d,q){init();data=d;term=q;fillList();},next:function(){moveSelect(1);},prev:function(){moveSelect(-1);},pageUp:function(){if(active!=0&&active-8<0){moveSelect(-active);}else{moveSelect(-8);}},pageDown:function(){if(active!=listItems.size()-1&&active+8>listItems.size()){moveSelect(listItems.size()-1-active);}else{moveSelect(8);}},hide:function(){element&&element.hide();listItems&&listItems.removeClass(CLASSES.ACTIVE);active=-1;},visible:function(){return element&&element.is(":visible");},current:function(){return this.visible()&&(listItems.filter("."+CLASSES.ACTIVE)[0]||options.selectFirst&&listItems[0]);},show:function(){var offset=$(input).offset();element.css({width:typeof options.width=="string"||options.width>0?options.width:$(input).width(),top:offset.top+input.offsetHeight,left:offset.left}).show();if(options.scroll){list.scrollTop(0);list.css({maxHeight:options.scrollHeight,overflow:'auto'});if($.browser.msie&&typeof document.body.style.maxHeight==="undefined"){var listHeight=0;listItems.each(function(){listHeight+=this.offsetHeight;});var scrollbarsVisible=listHeight>options.scrollHeight;list.css('height',scrollbarsVisible?options.scrollHeight:listHeight);if(!scrollbarsVisible){listItems.width(list.width()-parseInt(listItems.css("padding-left"))-parseInt(listItems.css("padding-right")));}}}},selected:function(){var selected=listItems&&listItems.filter("."+CLASSES.ACTIVE).removeClass(CLASSES.ACTIVE);return selected&&selected.length&&$.data(selected[0],"ac_data");},emptyList:function(){list&&list.empty();},unbind:function(){element&&element.remove();}};};$.Autocompleter.Selection=function(field,start,end){if(field.createTextRange){var selRange=field.createTextRange();selRange.collapse(true);selRange.moveStart("character",start);selRange.moveEnd("character",end);selRange.select();}else if(field.setSelectionRange){field.setSelectionRange(start,end);}else{if(field.selectionStart){field.selectionStart=start;field.selectionEnd=end;}}field.focus();};})(jQuery); +/* + * TypeWatch 2.0 - Original by Denny Ferrassoli / Refactored by Charles Christolini + * Copyright(c) 2007 Denny Ferrassoli - DennyDotNet.com + * Coprright(c) 2008 Charles Christolini - BinaryPie.com + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html +*/(function(jQuery){jQuery.fn.typeWatch=function(o){var options=jQuery.extend({wait:750,callback:function(){},highlight:true,captureLength:2},o);function checkElement(timer,override){var elTxt=jQuery(timer.el).val();if((elTxt.length>options.captureLength&&elTxt.toUpperCase()!=timer.text)||(override&&elTxt.length>options.captureLength)){timer.text=elTxt.toUpperCase();timer.cb(elTxt)}};function watchElement(elem){if(elem.type.toUpperCase()=="TEXT"||elem.nodeName.toUpperCase()=="TEXTAREA"){var timer={timer:null,text:jQuery(elem).val().toUpperCase(),cb:options.callback,el:elem,wait:options.wait};if(options.highlight){jQuery(elem).focus(function(){this.select()})}var startWatch=function(evt){var timerWait=timer.wait;var overrideBool=false;if(evt.keyCode==13&&this.type.toUpperCase()=="TEXT"){timerWait=1;overrideBool=true}var timerCallbackFx=function(){checkElement(timer,overrideBool)};clearTimeout(timer.timer);timer.timer=setTimeout(timerCallbackFx,timerWait)};jQuery(elem).keydown(startWatch)}};return this.each(function(index){watchElement(this)})}})(jQuery); +/* +Ajax upload +*/jQuery.extend({createUploadIframe:function(d,b){var a="jUploadFrame"+d;if(window.ActiveXObject){var c=document.createElement('