Stylesheets werden nur mit Less erzeugt. Damit können sie gleich
optimiert werden. jQuery wurde entfernt. Übersetzungen wurden korrigiert. Neue sync.sh Datei, welche änderungen mit rsync auf den Server spielt und das neuladen erzwingt.
8
.gitignore
vendored
@@ -1,12 +1,12 @@
|
||||
*.pyc
|
||||
htdocs/
|
||||
static/
|
||||
/static/
|
||||
media/
|
||||
.idea
|
||||
.gitignore
|
||||
virtenv/
|
||||
.idea/
|
||||
.gitignore
|
||||
.project
|
||||
.pydevproject
|
||||
.settings/
|
||||
*~
|
||||
maistar_ranking
|
||||
/kasu/static/css/kasu.css
|
||||
|
||||
1
.idea/encodings.xml
generated
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false">
|
||||
<file url="file://$PROJECT_DIR$/kasu/static/css/kasu.less" charset="UTF-8" />
|
||||
<file url="PROJECT" charset="UTF-8" />
|
||||
</component>
|
||||
</project>
|
||||
34
.idea/kasu.iml
generated
@@ -11,8 +11,38 @@
|
||||
</facet>
|
||||
</component>
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/aggregator" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/content" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/events" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/kasu" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/gallery" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/mahjong_ranking" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/maistar_ranking" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/media" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/membership" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/utils" isTestSource="false" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/.idea" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/.settings" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/gallery/templates" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/media" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/static" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/virtenv" />
|
||||
</content>
|
||||
<orderEntry type="jdk" jdkName="Python 2.6.9 virtualenv at ~/workspace/kasu/virtenv" jdkType="Python SDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
<component name="TemplatesService">
|
||||
<option name="TEMPLATE_CONFIGURATION" value="Django" />
|
||||
<option name="TEMPLATE_FOLDERS">
|
||||
<list>
|
||||
<option value="$MODULE_DIR$/content/templates" />
|
||||
<option value="$MODULE_DIR$/events/templates" />
|
||||
<option value="$MODULE_DIR$/kasu/templates" />
|
||||
<option value="$MODULE_DIR$/mahjong_ranking/templates" />
|
||||
<option value="$MODULE_DIR$/maistar_ranking/templates" />
|
||||
<option value="$MODULE_DIR$/membership/templates" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
</module>
|
||||
2
.idea/misc.xml
generated
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 2.7.5 (/usr/bin/python2.7)" project-jdk-type="Python SDK" />
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 2.6.9 virtualenv at ~/workspace/kasu/virtenv" project-jdk-type="Python SDK" />
|
||||
</project>
|
||||
@@ -18,6 +18,6 @@ export DJANGO_SETTINGS_MODULE="kasu.settings.production"
|
||||
echo "lösche den Python Compiler Cache..."
|
||||
find . -name "*.pyc" -exec rm -rf {} \;
|
||||
|
||||
./manage.py collectstatic --noinput
|
||||
./manage.py collectstatic --noinput -c
|
||||
./manage.py generateimages
|
||||
touch kasu/wsgi.py
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kasu.content\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-09 20:35+0100\n"
|
||||
"POT-Creation-Date: 2014-12-14 01:12+0100\n"
|
||||
"PO-Revision-Date: 2014-12-08 16:15+0100\n"
|
||||
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
||||
"Language-Team: Kasu <verein@kasu.at>\n"
|
||||
@@ -135,12 +135,21 @@ msgstr "Kategorien"
|
||||
msgid "This Category does not exist."
|
||||
msgstr "Diese Kategorie existiert nicht."
|
||||
|
||||
#: views.py:152
|
||||
#: views.py:93 templates/content/article_detail.html:52
|
||||
#: templates/content/article_form.html:17
|
||||
msgid "Edit Article"
|
||||
msgstr "Artikel bearbeiten"
|
||||
|
||||
#: views.py:95 templates/content/article_form.html:17
|
||||
msgid "Create Article"
|
||||
msgstr "Artikel erstellen"
|
||||
|
||||
#: views.py:160
|
||||
#, python-format
|
||||
msgid "No Page found matching the Path %s"
|
||||
msgstr "Keine Seite unter dem Pfad %s gefunden"
|
||||
|
||||
#: views.py:166
|
||||
#: views.py:174
|
||||
#, python-format
|
||||
msgid "No PDF Document found matching the Path %s"
|
||||
msgstr "Kein PDF Dokument unter dem Pfad %s gefunden."
|
||||
@@ -205,39 +214,24 @@ msgstr "Auf Twitter teilen"
|
||||
msgid "Share on Facebook"
|
||||
msgstr "Auf Facebook teilen"
|
||||
|
||||
#: templates/content/article_detail.html:52
|
||||
#: templates/content/article_form.html:5
|
||||
#: templates/content/article_form.html:21
|
||||
msgid "Edit Article"
|
||||
msgstr "Artikel bearbeiten"
|
||||
|
||||
#: templates/content/article_form.html:5
|
||||
#: templates/content/article_form.html:21
|
||||
msgid "Create Article"
|
||||
msgstr "Artikel erstellen"
|
||||
|
||||
#: templates/content/article_form.html:26 templates/content/page_form.html:29
|
||||
#: templates/content/article_form.html:22 templates/content/page_form.html:29
|
||||
#: templates/content/page_form.html:35
|
||||
msgid "German"
|
||||
msgstr "Deutsch"
|
||||
|
||||
#: templates/content/article_form.html:27 templates/content/page_form.html:30
|
||||
#: templates/content/article_form.html:23 templates/content/page_form.html:30
|
||||
#: templates/content/page_form.html:39
|
||||
msgid "English"
|
||||
msgstr "Englisch"
|
||||
|
||||
#: templates/content/article_form.html:40 templates/content/page_form.html:50
|
||||
#: templates/content/article_form.html:36 templates/content/page_form.html:50
|
||||
msgid "reset"
|
||||
msgstr "Zurücksetzen"
|
||||
|
||||
#: templates/content/article_form.html:41 templates/content/page_form.html:51
|
||||
#: templates/content/article_form.html:37 templates/content/page_form.html:51
|
||||
msgid "save"
|
||||
msgstr "Speichern"
|
||||
|
||||
#: templates/content/page.html:23
|
||||
msgid "Subpages"
|
||||
msgstr "Unterseiten"
|
||||
|
||||
#: templates/content/page_form.html:4 templates/content/page_form.html:24
|
||||
msgid "Edit Page"
|
||||
msgstr "Seite bearbeiten"
|
||||
@@ -249,3 +243,6 @@ msgstr "Seite hinzufügen"
|
||||
#: templates/content/page_form.html:45
|
||||
msgid "HTML Specific"
|
||||
msgstr "HTML spezifisch"
|
||||
|
||||
#~ msgid "Subpages"
|
||||
#~ msgstr "Unterseiten"
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
{% extends "base.html" %}
|
||||
{% load i18n fieldset_extras %}
|
||||
|
||||
{% block title %}
|
||||
{% if object.pk %}{% trans "Edit Article" %}{% else %}{% trans "Create Article" %}{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block extra_head %}
|
||||
<script type="text/javascript" src="{{ STATIC_URL }}js/jquery-1.6.2.min.js"></script>
|
||||
<script type="text/javascript" src="{{ STATIC_URL }}js/language_tabs.js" ></script>
|
||||
|
||||
@@ -14,18 +14,20 @@
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h2>{{ page.title }}</h2>
|
||||
{{ page.content }}
|
||||
{{ page.content }}
|
||||
{% endblock %}
|
||||
|
||||
{% block sidebar %}
|
||||
{% if current_top_page.subpages %}
|
||||
<h2>{% trans "Subpages" %}</h2>
|
||||
{% for subpage in current_top_page.subpages.all %}
|
||||
<h3><a href="{{ subpage.get_absolute_url }}">{{subpage.menu_name}}</a></h3>
|
||||
<ul class="list">
|
||||
{% for subpage in subpage.subpages.all %}<li class="{{subpage.css_class}}"><a href="{{ subpage.get_absolute_url }}">{{ subpage.menu_name }}</a></li>{% endfor %}
|
||||
</ul>
|
||||
{% if subpage.content_type > 0 %}
|
||||
<h2><a href="{{ subpage.get_absolute_url }}">{{subpage.menu_name}}</a></h2>
|
||||
<ul class="list">
|
||||
{% for subpage in subpage.subpages.all %}
|
||||
<li class="{{subpage.css_class}}"><a href="{{ subpage.get_absolute_url }}">{{ subpage.menu_name }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -87,6 +87,14 @@ class ArticleForm(PermissionRequiredMixin, generic.UpdateView):
|
||||
form_class = forms.ArticleForm
|
||||
permission_required = 'content.change_article'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(ArticleForm, self).get_context_data(**kwargs)
|
||||
if self.kwargs.get('pk'):
|
||||
context['title'] = _("Edit Article")
|
||||
else:
|
||||
context['title'] = _("Create Article")
|
||||
return context
|
||||
|
||||
def get_object(self, **kwargs):
|
||||
if self.kwargs.get('pk', None):
|
||||
return models.Article.objects.get(pk=self.kwargs['pk'])
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kasu.events\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-09 20:35+0100\n"
|
||||
"POT-Creation-Date: 2014-12-14 01:12+0100\n"
|
||||
"PO-Revision-Date: 2014-12-08 16:06+0100\n"
|
||||
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
||||
"Language-Team: Kasu <verein@kasu.at>\n"
|
||||
@@ -116,7 +116,17 @@ msgstr "Veranstaltungsort"
|
||||
msgid "Venues"
|
||||
msgstr "Veranstaltungsorte"
|
||||
|
||||
#: views.py:193
|
||||
#: views.py:101 templates/events/event_detail.html:110
|
||||
#: templates/events/event_form.html:9
|
||||
msgid "Edit Event"
|
||||
msgstr "Termin bearbeiten"
|
||||
|
||||
#: views.py:103 templates/events/event_form.html:9
|
||||
#: templates/events/page.html:15
|
||||
msgid "Add Event"
|
||||
msgstr "Neuer Termin"
|
||||
|
||||
#: views.py:199
|
||||
msgid "Event does not exist"
|
||||
msgstr "Veranstaltung gibt es nicht"
|
||||
|
||||
@@ -205,19 +215,11 @@ msgstr "Auf Facebook teilen"
|
||||
msgid "Show on Google Maps"
|
||||
msgstr "Auf Google Maps zeigen"
|
||||
|
||||
#: templates/events/event_detail.html:110 templates/events/event_form.html:13
|
||||
msgid "Edit Event"
|
||||
msgstr "Termin bearbeiten"
|
||||
|
||||
#: templates/events/event_form.html:13 templates/events/page.html:15
|
||||
msgid "Add Event"
|
||||
msgstr "Neuer Termin"
|
||||
|
||||
#: templates/events/event_form.html:23
|
||||
#: templates/events/event_form.html:19
|
||||
msgid "reset"
|
||||
msgstr "Zurücksetzen"
|
||||
|
||||
#: templates/events/event_form.html:24
|
||||
#: templates/events/event_form.html:20
|
||||
msgid "save"
|
||||
msgstr "Speichern"
|
||||
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
{% extends "events/page.html" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block extra_head %}
|
||||
<link rel="stylesheet" href="{{STATIC_URL}}css/jquery-ui-1.8.16.custom.css" type="text/css">
|
||||
<script type="text/javascript" src="{{STATIC_URL}}js/jquery-ui-1.8.16.custom.min.js"></script>
|
||||
{% endblock %}
|
||||
{% block title %}{{ title }}{% endblock %}
|
||||
|
||||
{% block maincontent %}
|
||||
<form method="post" enctype="multipart/form-data" class="grid_12">
|
||||
@@ -29,21 +25,4 @@
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
{% block buttonbar %}{% endblock %}
|
||||
|
||||
{% block javascript %}
|
||||
$(function() {
|
||||
$.datepicker.setDefaults($.datepicker.regional['{{LANGUAGE_CODE}}']);
|
||||
$( "#id_start_0" ).datepicker({
|
||||
changeMonth: true,
|
||||
changeYear: true,
|
||||
dateFormat: 'yy-mm-dd'
|
||||
});
|
||||
$( "#id_end_0" ).datepicker({
|
||||
changeMonth: true,
|
||||
changeYear: true,
|
||||
dateFormat: 'yy-mm-dd',
|
||||
});
|
||||
});
|
||||
|
||||
{% endblock %}
|
||||
{% block buttonbar %}{% endblock %}
|
||||
@@ -88,8 +88,6 @@ class EventDetailMixin(object):
|
||||
context['event'] = self.event
|
||||
else:
|
||||
context['event'] = self.object.event
|
||||
print "EventDetailMixin"
|
||||
print dir(context['event'])
|
||||
return context
|
||||
|
||||
|
||||
@@ -97,6 +95,14 @@ class EventForm(PermissionRequiredMixin, generic.UpdateView):
|
||||
form_class = forms.EventForm
|
||||
permission_required = 'events.add_event'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(EventForm, self).get_context_data(**kwargs)
|
||||
if self.kwargs.get('pk'):
|
||||
context['title'] = _("Edit Event")
|
||||
else:
|
||||
context['title'] = _("Add Event")
|
||||
return context
|
||||
|
||||
def get_object(self, queryset=None):
|
||||
"""
|
||||
If an id has been submitted, try return the existing Event for an update,
|
||||
|
||||
13
files_to_sync.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
aggregator
|
||||
content
|
||||
events
|
||||
gallery
|
||||
kasu
|
||||
mahjong_ranking
|
||||
maistar_ranking
|
||||
membership
|
||||
requirements
|
||||
static
|
||||
utils
|
||||
cleanup.sh
|
||||
manage.py
|
||||
@@ -1,26 +1,6 @@
|
||||
{% extends "base.html" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block teaser %}<h2>{{page.title}}{% trans 'Photos' %}</h2>{% endblock %}
|
||||
|
||||
{% block navigation %}
|
||||
<ul id="navigation">
|
||||
{% if event %}
|
||||
<li><a href="{{ current_top_page.get_absolute_url }}">{{current_top_page.menu_name}}</a></li>
|
||||
<li><a class="active">{{event.name}}</a></li>
|
||||
{% elif photo %}
|
||||
<li><a href="{{ current_top_page.get_absolute_url }}">{{current_top_page.menu_name}}</a></li>
|
||||
<li><a href="{% url 'event-photo-list' photo.event.id %}">{{photo.event.name}}</a></li>
|
||||
<li><a class="active">{{photo.name}}</a></li>
|
||||
{% else %}
|
||||
<li><a href="{{ current_top_page.get_absolute_url }}" {% ifequal current_page current_top_page %}class="active"{% endifequal %}>{{current_top_page.menu_name}}</a></li>
|
||||
{% if perms.event.add_photo %}
|
||||
<li><a href="/gallery/upload/" class="{% ifequal current_path 'gallery/upload' %}active{% endifequal %}">{% trans 'Upload' %}</a></li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
||||
{% block maincontent %}
|
||||
{% for event in event_list %}
|
||||
<div class="gallery grid_4">
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
{% extends "events/event_detail.html" %}
|
||||
{% extends "base.html" %}
|
||||
{% load i18n comments %}
|
||||
|
||||
{% block maincontent %}
|
||||
<h2 class="grid_12">Photos</a> » {% trans "upload"%}</h2>
|
||||
{% for event in event_list %}
|
||||
{% for event in event_list %}
|
||||
{% get_comment_count for event as comment_count %}
|
||||
{% ifchanged %}<h3 class="grid_12">{{ event.start|date:'F Y' }}</h3>{% endifchanged %}
|
||||
<div style="float:left">
|
||||
|
||||
@@ -25,9 +25,9 @@ CHOICES_VERTICAL = (
|
||||
|
||||
class ArticleImage(imagekit.ImageSpec):
|
||||
format = 'PNG'
|
||||
width = 210
|
||||
height = 130
|
||||
processors = [SmartResize(width=210, height=130)]
|
||||
width = 200
|
||||
height = 120
|
||||
processors = [SmartResize(width=200, height=120)]
|
||||
|
||||
|
||||
class CalloutImage(imagekit.ImageSpec):
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kasu.utils\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-09 20:35+0100\n"
|
||||
"PO-Revision-Date: 2014-12-08 19:20+0100\n"
|
||||
"POT-Creation-Date: 2014-12-14 01:12+0100\n"
|
||||
"PO-Revision-Date: 2014-12-14 01:11+0100\n"
|
||||
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
||||
"Language-Team: Kasu <verein@kasu.at>\n"
|
||||
"Language: de\n"
|
||||
@@ -1039,134 +1039,136 @@ msgstr "Wartend..."
|
||||
msgid "Published"
|
||||
msgstr "Veröffentlicht"
|
||||
|
||||
#: settings/base.py:84
|
||||
#: settings/base.py:85
|
||||
msgid "German"
|
||||
msgstr "Deutsch"
|
||||
|
||||
#: settings/base.py:85
|
||||
#: settings/base.py:86
|
||||
msgid "English"
|
||||
msgstr "Englisch"
|
||||
|
||||
#: templates/base.html:27
|
||||
#: templates/base.html:23
|
||||
msgid "Current News"
|
||||
msgstr "Aktuelle Neuigkeiten"
|
||||
|
||||
#: templates/base.html:29 templates/index.html:77
|
||||
#: templates/base.html:25 templates/index.html:44
|
||||
msgid "Recent Comments"
|
||||
msgstr "Kürzliche Kommentare"
|
||||
|
||||
#: templates/base.html:46
|
||||
#: templates/base.html:42
|
||||
msgid "Menu"
|
||||
msgstr "Menü"
|
||||
|
||||
#: templates/base.html:64 templates/index.html:14
|
||||
#: templates/base.html:57
|
||||
msgid "Current Event"
|
||||
msgstr "Aktuelle Veranstaltung"
|
||||
|
||||
#: templates/base.html:68 templates/index.html:16
|
||||
msgid "since"
|
||||
#: templates/base.html:60
|
||||
#, fuzzy
|
||||
msgid "Since"
|
||||
msgstr "seit"
|
||||
|
||||
#: templates/base.html:72 templates/base.html.py:86 templates/index.html:20
|
||||
#: templates/index.html.py:32
|
||||
#: templates/base.html:61 templates/base.html.py:72
|
||||
msgid "Start"
|
||||
msgstr "Beginn"
|
||||
|
||||
#: templates/base.html:73 templates/base.html.py:87 templates/index.html:21
|
||||
#: templates/index.html.py:33
|
||||
#: templates/base.html:62 templates/base.html.py:73
|
||||
msgid "Location"
|
||||
msgstr "Ort"
|
||||
|
||||
#: templates/base.html:75 templates/base.html.py:89 templates/index.html:23
|
||||
#: templates/index.html.py:35
|
||||
#: templates/base.html:64 templates/base.html.py:75
|
||||
msgid "More Details"
|
||||
msgstr "Mehr Details"
|
||||
|
||||
#: templates/base.html:78 templates/index.html:26
|
||||
#: templates/base.html:67
|
||||
msgid "Next Event"
|
||||
msgstr "Nächste Veranstaltung"
|
||||
|
||||
#: templates/base.html:82 templates/index.html:28
|
||||
#: templates/base.html:71
|
||||
msgid "in"
|
||||
msgstr "in"
|
||||
|
||||
#: templates/base.html:92 templates/index.html:38
|
||||
#: templates/base.html:78
|
||||
msgid "Upcoming events"
|
||||
msgstr "Bevorstehende Veranstaltungen"
|
||||
|
||||
#: templates/base.html:141
|
||||
#: templates/base.html:127
|
||||
msgid "Edit Page"
|
||||
msgstr "Seite bearbeiten"
|
||||
|
||||
#: templates/base.html:143
|
||||
#: templates/base.html:129
|
||||
msgid "Add Subpage"
|
||||
msgstr "Unterseite Hinzufügen"
|
||||
|
||||
#: templates/base.html:152
|
||||
#: templates/base.html:138
|
||||
msgid "Imprint"
|
||||
msgstr "Impressum"
|
||||
|
||||
#: templates/base.html:153
|
||||
#: templates/base.html:139
|
||||
msgid "contact"
|
||||
msgstr "Kontakt"
|
||||
|
||||
#: templates/base.html:158
|
||||
#: templates/base.html:144
|
||||
msgid "Language"
|
||||
msgstr "Sprache"
|
||||
|
||||
#: templates/base.html:167
|
||||
#: templates/base.html:153
|
||||
msgid "Go"
|
||||
msgstr "Los"
|
||||
|
||||
#: templates/base.html:172
|
||||
#: templates/base.html:158
|
||||
msgid "Logged in as"
|
||||
msgstr "Angemeldet als"
|
||||
|
||||
#: templates/base.html:174
|
||||
#: templates/base.html:160
|
||||
msgid "Admin"
|
||||
msgstr "Admin"
|
||||
|
||||
#: templates/base.html:175
|
||||
#: templates/base.html:161
|
||||
msgid "Logout"
|
||||
msgstr "Abmelden"
|
||||
|
||||
#: templates/base.html:177
|
||||
#: templates/base.html:163
|
||||
msgid "no user logged in"
|
||||
msgstr "Niemand angemeldet"
|
||||
|
||||
#: templates/base.html:178 templates/comments/form.html:46
|
||||
#: templates/base.html:164 templates/comments/form.html:46
|
||||
#: templates/registration/login.html:32 templates/registration/login.html:33
|
||||
msgid "register"
|
||||
msgstr "Registrieren"
|
||||
|
||||
#: templates/base.html:179 templates/comments/form.html:47
|
||||
#: templates/base.html:165 templates/comments/form.html:47
|
||||
#: templates/registration/login.html:6 templates/registration/login.html:8
|
||||
#: templates/registration/login.html:39
|
||||
msgid "login"
|
||||
msgstr "anmelden"
|
||||
|
||||
#: templates/index.html:54 templates/index.html.py:55
|
||||
#: templates/index.html:7
|
||||
msgid "traditional Asian game culture"
|
||||
msgstr "traditionelle asiatische Spielkultur"
|
||||
|
||||
#: templates/index.html:21 templates/index.html.py:22
|
||||
msgid "Created on"
|
||||
msgstr "Erstellt am"
|
||||
|
||||
#: templates/index.html:58 templates/index.html.py:59
|
||||
#: templates/index.html:25 templates/index.html.py:26
|
||||
msgid "Author"
|
||||
msgstr "Autor"
|
||||
|
||||
#: templates/index.html:61 templates/index.html.py:63
|
||||
#: templates/index.html:28 templates/index.html.py:30
|
||||
#: templates/comments/list.html:2
|
||||
msgid "Comments"
|
||||
msgstr "Kommentare"
|
||||
|
||||
#: templates/index.html:62
|
||||
#: templates/index.html:29
|
||||
msgid "comments"
|
||||
msgstr "Kommentare"
|
||||
|
||||
#: templates/index.html:69
|
||||
#: templates/index.html:36
|
||||
msgid "Read More"
|
||||
msgstr "Mehr lesen"
|
||||
|
||||
#: templates/index.html:83
|
||||
#: templates/index.html:50
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
@@ -1183,20 +1185,23 @@ msgstr ""
|
||||
" <time datetime=\"%(submit_date)s\">%(since)s</time>\n"
|
||||
" "
|
||||
|
||||
#: templates/index.html:95
|
||||
#: templates/index.html:62
|
||||
msgid "Kasu in the social network"
|
||||
msgstr "Kasu im sozialem Netzwerk"
|
||||
|
||||
#: templates/index.html:99 templates/index.html.py:101
|
||||
#: templates/index.html:104
|
||||
#: templates/index.html:66 templates/index.html.py:68 templates/index.html:71
|
||||
msgid "Visit us on"
|
||||
msgstr "Besuche uns auf"
|
||||
|
||||
#: templates/index.html:114
|
||||
#: templates/index.html:81
|
||||
msgid "Add Article"
|
||||
msgstr "Artikel hinzufügen"
|
||||
|
||||
#: templates/paginator.html:4 templates/paginator.html.py:6
|
||||
#: templates/paginator.html:4
|
||||
msgid "Previous"
|
||||
msgstr "Vorherige"
|
||||
|
||||
#: templates/paginator.html:6
|
||||
msgid "Prev"
|
||||
msgstr "Vorherige"
|
||||
|
||||
@@ -1218,7 +1223,7 @@ msgstr "Vorschau"
|
||||
|
||||
#: templates/comments/form.html:28
|
||||
msgid "Post"
|
||||
msgstr ""
|
||||
msgstr "Schreiben"
|
||||
|
||||
#: templates/comments/form.html:37
|
||||
msgid "not logged in"
|
||||
@@ -1257,6 +1262,14 @@ msgid ""
|
||||
" <li>club-members have access to our ranking-system</li>\n"
|
||||
"</ul>\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"<p>Als registiertes Mitglied kannst du:</p>\n"
|
||||
"<ul>\n"
|
||||
"<li>Kommentare auf dieser Seite schreiben.</li>\n"
|
||||
"<li>Unserem Newsletter beitreten</li>\n"
|
||||
"<li>Clubmitglied werden</li>\n"
|
||||
"<li>Clubmitglieder haben auch Zugang zu unserem Ranking System</li>\n"
|
||||
"</ul>\n"
|
||||
|
||||
#: templates/registration/login.html:25
|
||||
msgid ""
|
||||
@@ -1266,10 +1279,16 @@ msgid ""
|
||||
"authentication,\n"
|
||||
"you can fill out our registration form.</p>\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"<p>Du kannst dich hier mit deinen Google, Twitter, oder Facebook Account "
|
||||
"anmelden. Wenn du so etwas nicht besitzt, oder es nicht für die Anmeldung "
|
||||
"verwenden möchtest, kannst du auch unser Registrierungsformular verwenden.</"
|
||||
"p>\n"
|
||||
|
||||
#: templates/registration/login.html:43
|
||||
msgid "Your username and password didn't match. Please try again."
|
||||
msgstr ""
|
||||
"Benutzername und Passwort haben nicht gepasst. Bitte noch einmal versuchen."
|
||||
|
||||
#: templates/registration/login.html:46
|
||||
msgid "Forgot your Password?"
|
||||
@@ -1319,6 +1338,9 @@ msgid ""
|
||||
"Please enter your old password, for security's sake, and then enter your new "
|
||||
"password twice so we can verify you typed it in correctly."
|
||||
msgstr ""
|
||||
"Bitte gebe aus Sicherheitsgründen den altes Passwort an und anschließend 2x "
|
||||
"das neue Passwort, so können wir sicher gehen das du es korrekt eingegeben "
|
||||
"hast."
|
||||
|
||||
#: templates/registration/password_change_form.html:22
|
||||
msgid "Change Password"
|
||||
@@ -1331,7 +1353,7 @@ msgstr "Passwort fertig zurückgesetzt"
|
||||
|
||||
#: templates/registration/password_reset_complete.html:8
|
||||
msgid "Your password has been set. You may go ahead and log in now."
|
||||
msgstr ""
|
||||
msgstr "Dein Passwort wurde geändert. Du kannst dich nun damit anmelden."
|
||||
|
||||
#: templates/registration/password_reset_complete.html:9
|
||||
msgid "Log in"
|
||||
@@ -1352,6 +1374,8 @@ msgid ""
|
||||
"Please enter your new password twice so we can verify you typed it in "
|
||||
"correctly."
|
||||
msgstr ""
|
||||
"Bitte gib das neue Passwort 2x ein, so können wir sicher sein das du es "
|
||||
"korrekt eingegeben hast."
|
||||
|
||||
#: templates/registration/password_reset_confirm.html:13
|
||||
#: templates/registration/password_reset_confirm.html:22
|
||||
@@ -1367,6 +1391,8 @@ msgid ""
|
||||
"The password reset link was invalid, possibly because it has already been "
|
||||
"used. Please request a new password reset."
|
||||
msgstr ""
|
||||
"Der Link zum zurücksetzen des Passwortes ist ungültig, da er schon einmal "
|
||||
"verwendet wurde. Bitte veranlasse eine erneute Zurücksetzung."
|
||||
|
||||
#: templates/registration/password_reset_done.html:4
|
||||
#: templates/registration/password_reset_done.html:9
|
||||
|
||||
@@ -4,6 +4,7 @@ gettext = lambda s: s
|
||||
PROJECT_PATH = path.abspath(path.join(path.dirname(__file__), '..', '..'))
|
||||
|
||||
PREREQ_APPS = [
|
||||
'compressor',
|
||||
'grappelli',
|
||||
'django.contrib.admin',
|
||||
'django.contrib.admindocs',
|
||||
@@ -129,6 +130,7 @@ STATICFILES_DIRS = (
|
||||
STATICFILES_FINDERS = (
|
||||
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
|
||||
'django.contrib.staticfiles.finders.FileSystemFinder',
|
||||
'compressor.finders.CompressorFinder',
|
||||
)
|
||||
# Make this unique, and don't share it with anybody.
|
||||
SECRET_KEY = 'uve7*2z2+2fs!ts80e(^2kxo^960!hl)cns@fpt_e%7qg52wy0'
|
||||
|
||||
|
Before Width: | Height: | Size: 116 KiB |
@@ -149,6 +149,11 @@ img.partner:nth-of-type(odd) {
|
||||
input {font: normal 12pt Philosopher, sans-serif;}
|
||||
|
||||
input[type=number] {text-align: right;}
|
||||
input[readonly="readonly"], input[readonly] {
|
||||
border: none;
|
||||
background: transparent;
|
||||
color: #2e3436;
|
||||
}
|
||||
|
||||
li {
|
||||
margin-bottom: .2em;
|
||||
@@ -191,6 +196,11 @@ li.hanchan {
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
li.time {
|
||||
background: url(../icons/time.png) left center no-repeat;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
li.django_view {
|
||||
background: url(../icons/page_white_lightning.png) left center no-repeat;
|
||||
padding-left: 20px;
|
||||
@@ -251,14 +261,14 @@ table th a:link, table th a:visited {
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
table tr:hover {
|
||||
background-color: #eedcdc;
|
||||
}
|
||||
|
||||
table tr:nth-child(2n+1) {
|
||||
background-color: #eeeeec;
|
||||
}
|
||||
|
||||
table tr:hover {
|
||||
background-color: #eedcdc;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: circle outside;
|
||||
padding-left: 30px;
|
||||
@@ -365,7 +375,7 @@ ul.tabs {text-align: center}
|
||||
ul.tabs li {display: inline-block}
|
||||
ul.tabs li:after {content: " | "}
|
||||
ul.tabs li:last-child:after {content: ""}
|
||||
ul.tabs li a {color: #2e3436;}
|
||||
ul.tabs li a {color: #2e3436;}
|
||||
ul.tabs li.active a {border-bottom: 3px solid #bc0a19; color: #bc0a19}
|
||||
|
||||
.comment {
|
||||
@@ -374,15 +384,8 @@ ul.tabs li.active a {border-bottom: 3px solid #bc0a19; color: #bc0a19}
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
}
|
||||
.comment_picture {display: table-cell; padding: 0px 10px; width:60px; vertical-align: top;}
|
||||
.comment_header {display: table-cell; padding: 0px 10px; width: 140px; vertical-align: top;}
|
||||
.comment_header h3 {margin: 0}
|
||||
.comment_text {
|
||||
display: table-cell;
|
||||
padding: 0px 10px;
|
||||
width: auto;
|
||||
max-width: 700px;
|
||||
}
|
||||
|
||||
fieldset.comment {padding: 0}
|
||||
fieldset.comment legend {margin-left: 15px}
|
||||
fieldset.comment .buttonbar {margin: 0; width: 100%}
|
||||
fieldset.comment .buttonbar {margin: 0; width: 100%}
|
||||
@@ -1,500 +0,0 @@
|
||||
#content {
|
||||
width: 700px;
|
||||
display: inline;
|
||||
float: left;
|
||||
margin: 0px 10px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#display .next, #display .previous {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
width: 60px;
|
||||
height: 100%;
|
||||
margin: 0px;
|
||||
padding:0;
|
||||
text-indent: 9999px;
|
||||
overflow: hidden;
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
#display .next:hover, #display .previous:hover {
|
||||
opacity: 1;
|
||||
transition: all 0.2s ease-out;
|
||||
}
|
||||
#display .next {
|
||||
background: transparent url(../img/right-arrow.png) no-repeat center
|
||||
center;
|
||||
right: 10px;
|
||||
z-index:3;
|
||||
}
|
||||
|
||||
#display .previous {
|
||||
background: transparent url(../img/left-arrow.png) no-repeat center
|
||||
center;
|
||||
left: 10px;
|
||||
z-index:2
|
||||
}
|
||||
#display img {box-shadow: 1px 1px 5px 1px #444;}
|
||||
|
||||
#sidebar {
|
||||
width: 220px;
|
||||
display: inline;
|
||||
float: left;
|
||||
margin: 0px 10px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#footer {
|
||||
margin: -170px auto 0;
|
||||
position: relative;
|
||||
top: 0;
|
||||
width: 920px;
|
||||
z-index: 30;
|
||||
}
|
||||
|
||||
#footer p {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#footer_bg {
|
||||
background: url(../img/footer_bg.png) top center no-repeat;
|
||||
height: 477px;
|
||||
margin-top: -286px;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
#siteheader {
|
||||
height: 100px;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
width: 960px;
|
||||
z-index: 50;
|
||||
}
|
||||
|
||||
#header_bg {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 400px;
|
||||
width: 100%;
|
||||
background: url(../img/header_bg.png) top center no-repeat;
|
||||
text-align: center;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
#maincontent {
|
||||
margin: 0 auto;
|
||||
min-height: 600px;
|
||||
padding: 10px 0 50px 0 ;
|
||||
position: relative;
|
||||
width: 960px;
|
||||
z-index: 19;
|
||||
}
|
||||
|
||||
#mainnav {
|
||||
left: 233px;
|
||||
position: absolute;
|
||||
top: 65px;
|
||||
}
|
||||
|
||||
#mainnav a {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#mainnav a.active {
|
||||
color: #bc0a19;
|
||||
}
|
||||
|
||||
#mainnav a:hover {
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
#mainnav li {
|
||||
display: inline-block;
|
||||
font: normal small-caps 18px 'Amerika Sans', sans-serif;
|
||||
min-width: 50px;
|
||||
padding: 8px;
|
||||
text-align: center;
|
||||
text-shadow: 2px 2px 2px #2e3436;
|
||||
}
|
||||
#mainnav li:first-child {padding-left: 0;}
|
||||
#mainnav li:last-child {padding-right: 0;}
|
||||
ul.main_menu {padding:0px;}
|
||||
|
||||
#messages {
|
||||
clear: both;
|
||||
margin: 0 auto;
|
||||
padding: 8px 0 0 30px;
|
||||
width: 920px;
|
||||
}
|
||||
|
||||
#navigation, .pagination {
|
||||
clear: both;
|
||||
background: url(../img/navigation-bg.png) no-repeat left top;
|
||||
height: 56px;
|
||||
list-style: none;
|
||||
margin: 0 auto;
|
||||
padding: 8px 35px 0px 25px;
|
||||
width: 900px;
|
||||
}
|
||||
|
||||
#navigation a {
|
||||
background: url(../img/navigation-separator.png) no-repeat right center;
|
||||
color: #FFF;
|
||||
display: block;
|
||||
float: left;
|
||||
font-weight: bold;
|
||||
height: 33px;
|
||||
padding: 17px 15px 0;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#navigation a:hover,#navigation a.active {
|
||||
background: url(../img/navigation-hover.png) repeat-x left top;
|
||||
color: #3B3B3B;
|
||||
}
|
||||
|
||||
#navigation li {
|
||||
display: inline;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#sitelogo {
|
||||
background: url(../img/logo.png) no-repeat;
|
||||
height: 110px;
|
||||
left: 5px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
text-indent: -9999px;
|
||||
top: 5px;
|
||||
width: 233px;
|
||||
z-index: 99;
|
||||
}
|
||||
|
||||
#sitelogo a {
|
||||
display: block;
|
||||
height: 110px;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 233px;
|
||||
}
|
||||
|
||||
#jumbotron {
|
||||
clear: both;
|
||||
position: relative;
|
||||
margin: 20px auto 10px auto;
|
||||
padding: 0 1px 0 0;
|
||||
z-index: 5;
|
||||
width: 940px; /* 620px */
|
||||
min-height: 300px;
|
||||
border: none;
|
||||
border-radius: 10px;
|
||||
background-repeat: no-repeat;
|
||||
background-color: #333;
|
||||
background-position: center left;
|
||||
}
|
||||
|
||||
#jumbotron > h2, #jumbotron > h1 {
|
||||
padding: 10px 5px;
|
||||
font-size: 32pt;
|
||||
color: #eff0ef;
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
left: 10px;
|
||||
top: 33%;
|
||||
max-width: 600px;
|
||||
}
|
||||
|
||||
#teaser_text {
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 620px;
|
||||
min-height: 4em;
|
||||
left: 0px;
|
||||
bottom: 0px;
|
||||
color: #FFF;
|
||||
background: rgba(0,0,0,0.5);;
|
||||
font-size: 10pt;
|
||||
padding: 5px 10px 5px 15px;
|
||||
border-radius: 0px 0px 0px 10px;
|
||||
}
|
||||
|
||||
#redbox {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
height: 280px;
|
||||
width: 280px;
|
||||
padding: 10px;
|
||||
border-radius: 0px 10px 10px 0px;
|
||||
}
|
||||
|
||||
|
||||
#toggle, .toggle {display: none;}
|
||||
|
||||
#bottom_buttonbar {
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
left: -1px;
|
||||
margin: 0;
|
||||
width: 960px
|
||||
}
|
||||
|
||||
#usernav {
|
||||
background: url(../img/usernav-bg.png) top left no-repeat;
|
||||
color: #FFF;
|
||||
height: 50px;
|
||||
padding: 5px 10px 4px 20px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
text-align: right;
|
||||
top: 0;
|
||||
z-index: 50;
|
||||
}
|
||||
|
||||
#usernav a {
|
||||
color: #FFF;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
#usernav img {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.clearfix {
|
||||
zoom: 1px;
|
||||
}
|
||||
|
||||
.clearfix:after {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.gallery {
|
||||
display: inline;
|
||||
float: left;
|
||||
height: 200px;
|
||||
margin: 10px;
|
||||
overflow: hidden;
|
||||
text-align: center;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.gallery .thumbnail {
|
||||
display: block;
|
||||
float: none;
|
||||
margin: 5px auto;
|
||||
}
|
||||
|
||||
div.thumbnail a.delete_image {
|
||||
position: absolute;
|
||||
right: 4px;
|
||||
bottom: 0px;
|
||||
}
|
||||
|
||||
|
||||
body {
|
||||
background: #fff url(../img/background.png) repeat-y center top;
|
||||
font: 12pt Philosopher, Georgia, serif;
|
||||
line-height: 1;
|
||||
margin: 0;
|
||||
min-width: 960px;
|
||||
padding: 0;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
border: none;
|
||||
color: #2e3436;
|
||||
border-radius: 10px;
|
||||
margin: 10px 0 0 0;
|
||||
padding: 0 10px 0 160px;
|
||||
background: linear-gradient(135deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
background: -moz-linear-gradient(-45deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
background: -webkit-linear-gradient(-45deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
background: -o-linear-gradient(-45deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
background: -ms-linear-gradient(-45deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
vertical-align:top;
|
||||
}
|
||||
|
||||
fieldset legend {
|
||||
margin-top: -.1em;
|
||||
margin-left: -150px;
|
||||
color: #a40000;
|
||||
font-family: 'Amerika Sans', sans-serif;
|
||||
font-variant: small-caps;
|
||||
font-weight: 400;
|
||||
font-size: 16pt;
|
||||
text-shadow: 2px 2px 2px #888;
|
||||
}
|
||||
|
||||
fieldset div {margin:5px 0px;}
|
||||
|
||||
fieldset .required {font-weight: bold;}
|
||||
|
||||
fieldset .buttonbar {
|
||||
border-radius: 0px 0px 10px 10px;
|
||||
margin: 0 -10px 0 -160px;
|
||||
}
|
||||
|
||||
fieldset .help_text {font-size: small;}
|
||||
|
||||
fieldset .field_name {
|
||||
text-align: right;
|
||||
width: 140px;
|
||||
margin: 0 20px 0 -160px;
|
||||
padding-top: 3px;
|
||||
display: inline-block;
|
||||
clear: left;
|
||||
vertical-align:top;
|
||||
}
|
||||
|
||||
fieldset input,fieldset textarea {
|
||||
border: 1px solid #999999;
|
||||
border-radius: 5px;
|
||||
padding: 2px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
fieldset input[maxlength="255"], fieldset textarea {
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
max-width: 760px;
|
||||
}
|
||||
|
||||
fieldset ul {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
fieldset ul li {
|
||||
list-style: none;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
fieldset table {display: inline-table;max-width: 760px;}
|
||||
|
||||
img.partner,img.partner_right,img.posting_image {
|
||||
border: 1px solid #babdb6;
|
||||
float: left;
|
||||
height: 120px;
|
||||
margin: 0 20px 0 0;
|
||||
padding: 4px;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
img.partner:nth-of-type(odd) {float: right;}
|
||||
|
||||
ul.tabs {
|
||||
margin: 10px;
|
||||
padding: 0;
|
||||
border-radius: 10px;
|
||||
background: #bc0a19 url(../img/buttonbar.gif) repeat-x;
|
||||
text-align: left;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
ul.tabs li {display: inline-block;}
|
||||
ul.tabs li:after {content: ''}
|
||||
ul.tabs li a {
|
||||
display: inline-block;
|
||||
border: 1px solid #d3d7cf;
|
||||
border-radius: 5px;
|
||||
background-color: #f9f9f9;
|
||||
color: #2e3436;
|
||||
font: bold 14px Philosopher sans-serif;
|
||||
box-shadow: inset 0px 1px 0px 0px #ffffff;
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #f9f9f9), color-stop(1, #e9e9e9) );
|
||||
background: -moz-linear-gradient(center top, #f9f9f9 5%, #e9e9e9 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e9e9e9' );
|
||||
display: inline-block;
|
||||
padding: 4px 10px 2px 10px;
|
||||
margin: 3px 0px 0px 15px;
|
||||
text-decoration: none;
|
||||
text-shadow: 1px 1px 0px #ffffff;
|
||||
}
|
||||
|
||||
ul.tabs li.active a {
|
||||
background-color: #fa665a;
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #fa665a), color-stop(1, #d34639) );
|
||||
background: -moz-linear-gradient(center top, #fa665a 5%, #d34639 100%);
|
||||
color: #ffffff;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fa665a', endColorstr='#d34639' );
|
||||
border: 1px solid #d83526;
|
||||
box-shadow: inset 0px 1px 0px 0px #ffffff;
|
||||
text-shadow: 1px 1px 0px #98231a;
|
||||
}
|
||||
|
||||
.pagination a, .pagination .current, .pagination .next, .pagination .previous {
|
||||
display: inline-block;
|
||||
padding: 2px;
|
||||
color: #FFF;
|
||||
font-weight: bold;
|
||||
height: 33px;
|
||||
text-decoration: none;
|
||||
padding: 17px 0.5em 0 0.5em;
|
||||
}
|
||||
|
||||
.pagination .current {
|
||||
color: #a40000;
|
||||
}
|
||||
|
||||
.pagination .disabled {color: #ccc}
|
||||
|
||||
|
||||
img.avatar {
|
||||
border: none;
|
||||
box-shadow: 2px 2px 2px #888;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
|
||||
.userinfo {width: 140px;}
|
||||
|
||||
.grid_6 {
|
||||
width: 460px;
|
||||
}
|
||||
|
||||
.grid_7 {
|
||||
width: 540px;
|
||||
}
|
||||
|
||||
.grid_8 {
|
||||
width: 620px;
|
||||
}
|
||||
|
||||
.grid_9 {
|
||||
width: 700px;
|
||||
}
|
||||
|
||||
.grid_10 {
|
||||
width: 780px;
|
||||
}
|
||||
|
||||
.grid_11 {
|
||||
width: 860px;
|
||||
}
|
||||
|
||||
.grid_12 {
|
||||
width: 940px;
|
||||
}
|
||||
|
||||
#recaptcha_widget_div {margin-top: -20px;}
|
||||
|
||||
#google_maps {
|
||||
position: relative;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
height: 280px;
|
||||
padding: 10px;
|
||||
border-radius: 0px 10px 10px 0px;
|
||||
}
|
||||
563
kasu/static/css/desktop.less
Normal file
@@ -0,0 +1,563 @@
|
||||
@media screen and (min-width: @min-desktop-width) {
|
||||
|
||||
#content {
|
||||
width: 700px;
|
||||
display: inline;
|
||||
float: left;
|
||||
margin: 0px 10px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#display .next, #display .previous {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
width: 60px;
|
||||
height: 100%;
|
||||
margin: 0px;
|
||||
padding: 0;
|
||||
text-indent: 9999px;
|
||||
overflow: hidden;
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
#display .next:hover, #display .previous:hover {
|
||||
opacity: 1;
|
||||
transition: all 0.2s ease-out;
|
||||
}
|
||||
|
||||
#display .next {
|
||||
background: transparent url(../img/right-arrow.png) no-repeat center center;
|
||||
right: 10px;
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
#display .previous {
|
||||
background: transparent url(../img/left-arrow.png) no-repeat center center;
|
||||
left: 10px;
|
||||
z-index: 2
|
||||
}
|
||||
|
||||
#display img {
|
||||
box-shadow: 1px 1px 5px 1px #444;
|
||||
}
|
||||
|
||||
#sidebar {
|
||||
width: 220px;
|
||||
display: inline;
|
||||
float: left;
|
||||
margin: 0px 10px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#footer {
|
||||
margin: -170px auto 0;
|
||||
position: relative;
|
||||
top: 0;
|
||||
width: 920px;
|
||||
z-index: 30;
|
||||
}
|
||||
|
||||
#footer p {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#footer_bg {
|
||||
background: url(../img/footer_bg.png) top center no-repeat;
|
||||
height: 477px;
|
||||
margin-top: -286px;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
#siteheader {
|
||||
height: 100px;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
width: 960px;
|
||||
z-index: 50;
|
||||
}
|
||||
|
||||
#header_bg {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 400px;
|
||||
width: 100%;
|
||||
background: url(../img/header_bg.png) top center no-repeat;
|
||||
text-align: center;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
#maincontent {
|
||||
margin: 0 auto;
|
||||
min-height: 200px;
|
||||
padding: 10px 0 50px 0;
|
||||
position: relative;
|
||||
width: 960px;
|
||||
z-index: 19;
|
||||
}
|
||||
|
||||
#mainnav {
|
||||
left: 233px;
|
||||
position: absolute;
|
||||
top: 65px;
|
||||
}
|
||||
|
||||
#mainnav a {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#mainnav a.active {
|
||||
color: #bc0a19;
|
||||
}
|
||||
|
||||
#mainnav a:hover {
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
#mainnav li {
|
||||
display: inline-block;
|
||||
font: normal small-caps 18px 'Amerika Sans', sans-serif;
|
||||
min-width: 50px;
|
||||
padding: 8px;
|
||||
text-align: center;
|
||||
text-shadow: 2px 2px 2px #2e3436;
|
||||
}
|
||||
|
||||
#mainnav li:first-child {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
#mainnav li:last-child {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
ul.main_menu {
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
#messages {
|
||||
clear: both;
|
||||
margin: 0 auto;
|
||||
padding: 8px 0 0 30px;
|
||||
width: 920px;
|
||||
}
|
||||
|
||||
#navigation, .pagination {
|
||||
clear: both;
|
||||
position: relative;
|
||||
background: url(../img/navigation-bg.png) no-repeat left top;
|
||||
height: 56px;
|
||||
list-style: none;
|
||||
margin: 0 auto;
|
||||
padding: 8px 35px 0px 25px;
|
||||
width: 900px;
|
||||
z-index: 30;
|
||||
}
|
||||
|
||||
#navigation a {
|
||||
background: url(../img/navigation-separator.png) no-repeat right center;
|
||||
color: #FFF;
|
||||
display: block;
|
||||
float: left;
|
||||
font-weight: bold;
|
||||
height: 33px;
|
||||
padding: 17px 15px 0;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#navigation a:hover, #navigation a.active {
|
||||
background: url(../img/navigation-hover.png) repeat-x left top;
|
||||
color: #3B3B3B;
|
||||
}
|
||||
|
||||
#navigation li {
|
||||
display: inline;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#sitelogo {
|
||||
background: url(../img/logo.png) no-repeat;
|
||||
height: 110px;
|
||||
left: 5px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
text-indent: -9999px;
|
||||
top: 5px;
|
||||
width: 233px;
|
||||
z-index: 99;
|
||||
}
|
||||
|
||||
#sitelogo a {
|
||||
display: block;
|
||||
height: 110px;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 233px;
|
||||
}
|
||||
|
||||
#jumbotron {
|
||||
clear: both;
|
||||
position: relative;
|
||||
margin: 20px auto 10px auto;
|
||||
padding: 0 1px 0 0;
|
||||
z-index: 5;
|
||||
width: 940px; /* 620px */
|
||||
min-height: 300px;
|
||||
border: none;
|
||||
border-radius: 10px;
|
||||
background-repeat: no-repeat;
|
||||
background-color: #333;
|
||||
background-position: center left;
|
||||
}
|
||||
|
||||
#jumbotron > h2, #jumbotron > h1 {
|
||||
padding: 10px 5px;
|
||||
font-size: 32pt;
|
||||
color: #eff0ef;
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
left: 10px;
|
||||
top: 33%;
|
||||
max-width: 600px;
|
||||
}
|
||||
|
||||
#teaser_text {
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 620px;
|
||||
min-height: 4em;
|
||||
left: 0px;
|
||||
bottom: 0px;
|
||||
color: #FFF;
|
||||
background: rgba(0, 0, 0, 0.5);;
|
||||
font-size: 10pt;
|
||||
padding: 5px 10px 5px 15px;
|
||||
border-radius: 0px 0px 0px 10px;
|
||||
}
|
||||
|
||||
#redbox {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
height: 280px;
|
||||
width: 280px;
|
||||
padding: 10px;
|
||||
border-radius: 0px 10px 10px 0px;
|
||||
}
|
||||
|
||||
#toggle, .toggle {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#bottom_buttonbar {
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
left: -1px;
|
||||
margin: 0;
|
||||
width: 960px
|
||||
}
|
||||
|
||||
#usernav {
|
||||
background: url(../img/usernav-bg.png) top left no-repeat;
|
||||
color: #FFF;
|
||||
height: 50px;
|
||||
padding: 5px 10px 4px 20px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
text-align: right;
|
||||
top: 0;
|
||||
z-index: 50;
|
||||
}
|
||||
|
||||
#usernav a {
|
||||
color: #FFF;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
#usernav img {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.clearfix {
|
||||
zoom: 1px;
|
||||
}
|
||||
|
||||
.clearfix:after {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.gallery {
|
||||
display: inline;
|
||||
float: left;
|
||||
height: 200px;
|
||||
margin: 10px;
|
||||
overflow: hidden;
|
||||
text-align: center;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.gallery .thumbnail {
|
||||
display: block;
|
||||
float: none;
|
||||
margin: 5px auto;
|
||||
}
|
||||
|
||||
div.thumbnail a.delete_image {
|
||||
position: absolute;
|
||||
right: 4px;
|
||||
bottom: 0px;
|
||||
}
|
||||
|
||||
body {
|
||||
background: #fff url(../img/background.png) repeat-y center top;
|
||||
font: 12pt Philosopher, Georgia, serif;
|
||||
line-height: 1;
|
||||
margin: 0;
|
||||
min-width: 960px;
|
||||
padding: 0;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
border: none;
|
||||
color: #2e3436;
|
||||
border-radius: 10px;
|
||||
margin: 10px 0 0 0;
|
||||
padding: 0 10px 0 160px;
|
||||
background: linear-gradient(135deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
background: -moz-linear-gradient(-45deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
background: -webkit-linear-gradient(-45deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
background: -o-linear-gradient(-45deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
background: -ms-linear-gradient(-45deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
fieldset legend {
|
||||
margin-top: -.1em;
|
||||
margin-left: -150px;
|
||||
color: #a40000;
|
||||
font-family: 'Amerika Sans', sans-serif;
|
||||
font-variant: small-caps;
|
||||
font-weight: 400;
|
||||
font-size: 16pt;
|
||||
text-shadow: 2px 2px 2px #888;
|
||||
}
|
||||
|
||||
fieldset div {
|
||||
margin: 5px 0px;
|
||||
}
|
||||
|
||||
fieldset .required {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
fieldset .buttonbar {
|
||||
border-radius: 0px 0px 10px 10px;
|
||||
margin: 0 -10px 0 -160px;
|
||||
}
|
||||
|
||||
fieldset .help_text {
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
fieldset .field_name {
|
||||
text-align: right;
|
||||
width: 140px;
|
||||
margin: 0 20px 0 -160px;
|
||||
padding-top: 3px;
|
||||
display: inline-block;
|
||||
clear: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
fieldset input, fieldset textarea {
|
||||
border: 1px solid #999999;
|
||||
border-radius: 5px;
|
||||
padding: 2px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
fieldset input[maxlength="255"], fieldset textarea {
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
max-width: 760px;
|
||||
}
|
||||
|
||||
fieldset ul {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
fieldset ul li {
|
||||
list-style: none;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
fieldset table {
|
||||
display: inline-table;
|
||||
max-width: 760px;
|
||||
}
|
||||
|
||||
img.partner, img.partner_right, img.posting_image {
|
||||
border: 1px solid #babdb6;
|
||||
float: left;
|
||||
height: 120px;
|
||||
margin: 0 20px 0 0;
|
||||
padding: 4px;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
img.partner:nth-of-type(odd) {
|
||||
float: right;
|
||||
}
|
||||
|
||||
ul.tabs {
|
||||
margin: 10px;
|
||||
padding: 0;
|
||||
border-radius: 10px;
|
||||
background: #bc0a19 url(../img/buttonbar.gif) repeat-x;
|
||||
text-align: left;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
ul.tabs li {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
ul.tabs li:after {
|
||||
content: ''
|
||||
}
|
||||
|
||||
ul.tabs li a {
|
||||
display: inline-block;
|
||||
border: 1px solid #d3d7cf;
|
||||
border-radius: 5px;
|
||||
background-color: #f9f9f9;
|
||||
color: #2e3436;
|
||||
font: bold 14px Philosopher sans-serif;
|
||||
box-shadow: inset 0px 1px 0px 0px #ffffff;
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #f9f9f9), color-stop(1, #e9e9e9));
|
||||
background: -moz-linear-gradient(center top, #f9f9f9 5%, #e9e9e9 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#e9e9e9');
|
||||
display: inline-block;
|
||||
padding: 4px 10px 2px 10px;
|
||||
margin: 3px 0px 0px 15px;
|
||||
text-decoration: none;
|
||||
text-shadow: 1px 1px 0px #ffffff;
|
||||
}
|
||||
|
||||
ul.tabs li.active a {
|
||||
background-color: #fa665a;
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #fa665a), color-stop(1, #d34639));
|
||||
background: -moz-linear-gradient(center top, #fa665a 5%, #d34639 100%);
|
||||
color: #ffffff;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fa665a', endColorstr='#d34639');
|
||||
border: 1px solid #d83526;
|
||||
box-shadow: inset 0px 1px 0px 0px #ffffff;
|
||||
text-shadow: 1px 1px 0px #98231a;
|
||||
}
|
||||
|
||||
.pagination a, .pagination .current, .pagination .next, .pagination .previous {
|
||||
display: inline-block;
|
||||
padding: 2px;
|
||||
color: #FFF;
|
||||
font-weight: bold;
|
||||
height: 33px;
|
||||
text-decoration: none;
|
||||
padding: 17px 0.5em 0 0.5em;
|
||||
}
|
||||
|
||||
.pagination .current {
|
||||
color: #a40000;
|
||||
}
|
||||
|
||||
.pagination .disabled {
|
||||
color: #ccc
|
||||
}
|
||||
|
||||
img.avatar {
|
||||
border: none;
|
||||
box-shadow: 2px 2px 2px #888;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
|
||||
.comment_picture {
|
||||
display: table-cell;
|
||||
padding: 0px 10px;
|
||||
width: 60px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.comment_header {
|
||||
display: table-cell;
|
||||
padding: 0px 10px;
|
||||
width: 140px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.comment_header h3 {
|
||||
margin: 0
|
||||
}
|
||||
|
||||
.comment_text {
|
||||
display: table-cell;
|
||||
padding: 0px 10px;
|
||||
width: auto;
|
||||
max-width: 700px;
|
||||
}
|
||||
|
||||
.userinfo {
|
||||
width: 140px;
|
||||
}
|
||||
|
||||
.grid_6 {
|
||||
width: 460px;
|
||||
}
|
||||
|
||||
.grid_7 {
|
||||
width: 540px;
|
||||
}
|
||||
|
||||
.grid_8 {
|
||||
width: 620px;
|
||||
}
|
||||
|
||||
.grid_9 {
|
||||
width: 700px;
|
||||
}
|
||||
|
||||
.grid_10 {
|
||||
width: 780px;
|
||||
}
|
||||
|
||||
.grid_11 {
|
||||
width: 860px;
|
||||
}
|
||||
|
||||
.grid_12 {
|
||||
width: 940px;
|
||||
}
|
||||
|
||||
#recaptcha_widget_div {
|
||||
margin-top: -20px;
|
||||
}
|
||||
|
||||
#google_maps {
|
||||
position: relative;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
height: 280px;
|
||||
padding: 10px;
|
||||
border-radius: 0px 10px 10px 0px;
|
||||
}
|
||||
}
|
||||
411
kasu/static/css/jquery-ui-1.8.16.custom.css
vendored
@@ -1,411 +0,0 @@
|
||||
/*
|
||||
* jQuery UI CSS Framework 1.8.16
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Theming/API
|
||||
*/
|
||||
|
||||
/* Layout helpers
|
||||
----------------------------------*/
|
||||
.ui-helper-hidden { display: none; }
|
||||
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
|
||||
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
|
||||
.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
|
||||
.ui-helper-clearfix { display: inline-block; }
|
||||
/* required comment for clearfix to work in Opera \*/
|
||||
* html .ui-helper-clearfix { height:1%; }
|
||||
.ui-helper-clearfix { display:block; }
|
||||
/* end clearfix */
|
||||
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
|
||||
|
||||
|
||||
/* Interaction Cues
|
||||
----------------------------------*/
|
||||
.ui-state-disabled { cursor: default !important; }
|
||||
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
|
||||
|
||||
|
||||
/* Misc visuals
|
||||
----------------------------------*/
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
||||
|
||||
|
||||
/*
|
||||
* jQuery UI CSS Framework 1.8.16
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Theming/API
|
||||
*
|
||||
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
|
||||
*/
|
||||
|
||||
|
||||
/* Component containers
|
||||
----------------------------------*/
|
||||
.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 13px; }
|
||||
.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(../img/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
|
||||
.ui-widget-content a { color: #333333; }
|
||||
.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(../img/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
|
||||
.ui-widget-header a { color: #ffffff; }
|
||||
|
||||
/* Interaction states
|
||||
----------------------------------*/
|
||||
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(../img/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
|
||||
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
|
||||
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(../img/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
|
||||
.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; }
|
||||
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(../img/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
|
||||
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
|
||||
.ui-widget :active { outline: none; }
|
||||
|
||||
/* Interaction Cues
|
||||
----------------------------------*/
|
||||
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(../img/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
|
||||
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
|
||||
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(../img/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
|
||||
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
|
||||
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
|
||||
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
|
||||
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
|
||||
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon { width: 16px; height: 16px; background-image: url(../img/ui-icons_222222_256x240.png); }
|
||||
.ui-widget-content .ui-icon {background-image: url(../img/ui-icons_222222_256x240.png); }
|
||||
.ui-widget-header .ui-icon {background-image: url(../img/ui-icons_ffffff_256x240.png); }
|
||||
.ui-state-default .ui-icon { background-image: url(../img/ui-icons_ef8c08_256x240.png); }
|
||||
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(../img/ui-icons_ef8c08_256x240.png); }
|
||||
.ui-state-active .ui-icon {background-image: url(../img/ui-icons_ef8c08_256x240.png); }
|
||||
.ui-state-highlight .ui-icon {background-image: url(../img/ui-icons_228ef1_256x240.png); }
|
||||
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(../img/ui-icons_ffd27a_256x240.png); }
|
||||
|
||||
/* positioning */
|
||||
.ui-icon-carat-1-n { background-position: 0 0; }
|
||||
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
||||
.ui-icon-carat-1-e { background-position: -32px 0; }
|
||||
.ui-icon-carat-1-se { background-position: -48px 0; }
|
||||
.ui-icon-carat-1-s { background-position: -64px 0; }
|
||||
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
||||
.ui-icon-carat-1-w { background-position: -96px 0; }
|
||||
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
||||
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
||||
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
||||
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
||||
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
||||
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
||||
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
||||
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
||||
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
||||
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
||||
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
||||
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
||||
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
||||
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
||||
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
||||
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
||||
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
||||
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
||||
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
||||
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
||||
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
||||
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
||||
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
||||
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
||||
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
||||
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
||||
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
||||
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
||||
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
||||
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
||||
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
||||
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
||||
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
||||
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
||||
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
||||
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
||||
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
||||
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
||||
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
||||
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
||||
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
||||
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
||||
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
||||
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
||||
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
||||
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
||||
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
||||
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
||||
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
||||
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
||||
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
||||
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
||||
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
||||
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
||||
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
||||
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
||||
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
||||
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
||||
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
||||
.ui-icon-extlink { background-position: -32px -80px; }
|
||||
.ui-icon-newwin { background-position: -48px -80px; }
|
||||
.ui-icon-refresh { background-position: -64px -80px; }
|
||||
.ui-icon-shuffle { background-position: -80px -80px; }
|
||||
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
||||
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
||||
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
||||
.ui-icon-folder-open { background-position: -16px -96px; }
|
||||
.ui-icon-document { background-position: -32px -96px; }
|
||||
.ui-icon-document-b { background-position: -48px -96px; }
|
||||
.ui-icon-note { background-position: -64px -96px; }
|
||||
.ui-icon-mail-closed { background-position: -80px -96px; }
|
||||
.ui-icon-mail-open { background-position: -96px -96px; }
|
||||
.ui-icon-suitcase { background-position: -112px -96px; }
|
||||
.ui-icon-comment { background-position: -128px -96px; }
|
||||
.ui-icon-person { background-position: -144px -96px; }
|
||||
.ui-icon-print { background-position: -160px -96px; }
|
||||
.ui-icon-trash { background-position: -176px -96px; }
|
||||
.ui-icon-locked { background-position: -192px -96px; }
|
||||
.ui-icon-unlocked { background-position: -208px -96px; }
|
||||
.ui-icon-bookmark { background-position: -224px -96px; }
|
||||
.ui-icon-tag { background-position: -240px -96px; }
|
||||
.ui-icon-home { background-position: 0 -112px; }
|
||||
.ui-icon-flag { background-position: -16px -112px; }
|
||||
.ui-icon-calendar { background-position: -32px -112px; }
|
||||
.ui-icon-cart { background-position: -48px -112px; }
|
||||
.ui-icon-pencil { background-position: -64px -112px; }
|
||||
.ui-icon-clock { background-position: -80px -112px; }
|
||||
.ui-icon-disk { background-position: -96px -112px; }
|
||||
.ui-icon-calculator { background-position: -112px -112px; }
|
||||
.ui-icon-zoomin { background-position: -128px -112px; }
|
||||
.ui-icon-zoomout { background-position: -144px -112px; }
|
||||
.ui-icon-search { background-position: -160px -112px; }
|
||||
.ui-icon-wrench { background-position: -176px -112px; }
|
||||
.ui-icon-gear { background-position: -192px -112px; }
|
||||
.ui-icon-heart { background-position: -208px -112px; }
|
||||
.ui-icon-star { background-position: -224px -112px; }
|
||||
.ui-icon-link { background-position: -240px -112px; }
|
||||
.ui-icon-cancel { background-position: 0 -128px; }
|
||||
.ui-icon-plus { background-position: -16px -128px; }
|
||||
.ui-icon-plusthick { background-position: -32px -128px; }
|
||||
.ui-icon-minus { background-position: -48px -128px; }
|
||||
.ui-icon-minusthick { background-position: -64px -128px; }
|
||||
.ui-icon-close { background-position: -80px -128px; }
|
||||
.ui-icon-closethick { background-position: -96px -128px; }
|
||||
.ui-icon-key { background-position: -112px -128px; }
|
||||
.ui-icon-lightbulb { background-position: -128px -128px; }
|
||||
.ui-icon-scissors { background-position: -144px -128px; }
|
||||
.ui-icon-clipboard { background-position: -160px -128px; }
|
||||
.ui-icon-copy { background-position: -176px -128px; }
|
||||
.ui-icon-contact { background-position: -192px -128px; }
|
||||
.ui-icon-image { background-position: -208px -128px; }
|
||||
.ui-icon-video { background-position: -224px -128px; }
|
||||
.ui-icon-script { background-position: -240px -128px; }
|
||||
.ui-icon-alert { background-position: 0 -144px; }
|
||||
.ui-icon-info { background-position: -16px -144px; }
|
||||
.ui-icon-notice { background-position: -32px -144px; }
|
||||
.ui-icon-help { background-position: -48px -144px; }
|
||||
.ui-icon-check { background-position: -64px -144px; }
|
||||
.ui-icon-bullet { background-position: -80px -144px; }
|
||||
.ui-icon-radio-off { background-position: -96px -144px; }
|
||||
.ui-icon-radio-on { background-position: -112px -144px; }
|
||||
.ui-icon-pin-w { background-position: -128px -144px; }
|
||||
.ui-icon-pin-s { background-position: -144px -144px; }
|
||||
.ui-icon-play { background-position: 0 -160px; }
|
||||
.ui-icon-pause { background-position: -16px -160px; }
|
||||
.ui-icon-seek-next { background-position: -32px -160px; }
|
||||
.ui-icon-seek-prev { background-position: -48px -160px; }
|
||||
.ui-icon-seek-end { background-position: -64px -160px; }
|
||||
.ui-icon-seek-start { background-position: -80px -160px; }
|
||||
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
|
||||
.ui-icon-seek-first { background-position: -80px -160px; }
|
||||
.ui-icon-stop { background-position: -96px -160px; }
|
||||
.ui-icon-eject { background-position: -112px -160px; }
|
||||
.ui-icon-volume-off { background-position: -128px -160px; }
|
||||
.ui-icon-volume-on { background-position: -144px -160px; }
|
||||
.ui-icon-power { background-position: 0 -176px; }
|
||||
.ui-icon-signal-diag { background-position: -16px -176px; }
|
||||
.ui-icon-signal { background-position: -32px -176px; }
|
||||
.ui-icon-battery-0 { background-position: -48px -176px; }
|
||||
.ui-icon-battery-1 { background-position: -64px -176px; }
|
||||
.ui-icon-battery-2 { background-position: -80px -176px; }
|
||||
.ui-icon-battery-3 { background-position: -96px -176px; }
|
||||
.ui-icon-circle-plus { background-position: 0 -192px; }
|
||||
.ui-icon-circle-minus { background-position: -16px -192px; }
|
||||
.ui-icon-circle-close { background-position: -32px -192px; }
|
||||
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
||||
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
||||
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
||||
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
||||
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
||||
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
||||
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
||||
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
||||
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
||||
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
||||
.ui-icon-circle-check { background-position: -208px -192px; }
|
||||
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
||||
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
||||
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
||||
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
||||
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
||||
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
||||
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
||||
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
||||
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
||||
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
||||
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
||||
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
||||
|
||||
|
||||
/* Misc visuals
|
||||
----------------------------------*/
|
||||
|
||||
/* Corner radius */
|
||||
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
|
||||
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
|
||||
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
|
||||
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay { background: #666666 url(../img/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
|
||||
.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(../img/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*
|
||||
* jQuery UI Button 1.8.16
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Button#theming
|
||||
*/
|
||||
.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
|
||||
.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
|
||||
button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
|
||||
.ui-button-icons-only { width: 3.4em; }
|
||||
button.ui-button-icons-only { width: 3.7em; }
|
||||
|
||||
/*button text element */
|
||||
.ui-button .ui-button-text { display: block; line-height: 1.4; }
|
||||
.ui-button-text-only .ui-button-text { padding: .4em 1em; }
|
||||
.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
|
||||
.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
|
||||
.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
|
||||
.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
|
||||
/* no icon support for input elements, provide padding by default */
|
||||
input.ui-button { padding: .4em 1em; }
|
||||
|
||||
/*button icon element(s) */
|
||||
.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
|
||||
.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
|
||||
.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
|
||||
.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
|
||||
.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
|
||||
|
||||
/*button sets*/
|
||||
.ui-buttonset { margin-right: 7px; }
|
||||
.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
|
||||
|
||||
/* workarounds */
|
||||
button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
|
||||
/*
|
||||
* jQuery UI Tabs 1.8.16
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Tabs#theming
|
||||
*/
|
||||
.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
|
||||
.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
|
||||
.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
|
||||
.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
|
||||
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
||||
.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
|
||||
.ui-tabs .ui-tabs-hide { display: none !important; }
|
||||
/*
|
||||
* jQuery UI Datepicker 1.8.16
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Datepicker#theming
|
||||
*/
|
||||
.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
|
||||
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
|
||||
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
|
||||
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
|
||||
.ui-datepicker .ui-datepicker-prev { left:2px; }
|
||||
.ui-datepicker .ui-datepicker-next { right:2px; }
|
||||
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
|
||||
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
|
||||
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
|
||||
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
|
||||
.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
|
||||
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
|
||||
.ui-datepicker select.ui-datepicker-month,
|
||||
.ui-datepicker select.ui-datepicker-year { width: 49%;}
|
||||
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
|
||||
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
|
||||
.ui-datepicker td { border: 0; padding: 1px; }
|
||||
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
|
||||
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
|
||||
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
|
||||
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
|
||||
|
||||
/* with multiple calendars */
|
||||
.ui-datepicker.ui-datepicker-multi { width:auto; }
|
||||
.ui-datepicker-multi .ui-datepicker-group { float:left; }
|
||||
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
|
||||
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
|
||||
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
|
||||
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
|
||||
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
|
||||
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
|
||||
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
|
||||
.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
|
||||
|
||||
/* RTL support */
|
||||
.ui-datepicker-rtl { direction: rtl; }
|
||||
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
|
||||
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
|
||||
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
|
||||
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
|
||||
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
|
||||
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
|
||||
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
|
||||
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
|
||||
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
||||
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
||||
|
||||
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
|
||||
.ui-datepicker-cover {
|
||||
display: none; /*sorry for IE5*/
|
||||
display/**/: block; /*sorry for IE5*/
|
||||
position: absolute; /*must have*/
|
||||
z-index: -1; /*must have*/
|
||||
filter: mask(); /*must have*/
|
||||
top: -4px; /*must have*/
|
||||
left: -4px; /*must have*/
|
||||
width: 200px; /*must have*/
|
||||
height: 200px; /*must have*/
|
||||
}
|
||||
7
kasu/static/css/kasu.less
Normal file
@@ -0,0 +1,7 @@
|
||||
@min-desktop-width: 700px;
|
||||
@max-mobile-with: 699px;
|
||||
|
||||
@import "common";
|
||||
@import "desktop";
|
||||
@import "mobile";
|
||||
@import "print";
|
||||
@@ -1,348 +0,0 @@
|
||||
@-webkit-keyframes bugfix { from {padding:0;} to {padding:0;} }
|
||||
|
||||
body {
|
||||
background: url('../img/background_mobile.png') no-repeat top center;
|
||||
font: 12pt "Philosopher", Georgia, serif;
|
||||
-webkit-animation: bugfix infinite 1s;
|
||||
}
|
||||
|
||||
|
||||
#display .grid_10 {margin:0; position:relative; z-index:1}
|
||||
#display .next, #display .previous {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
width: 45px;
|
||||
height: 100%;
|
||||
margin: 0px;
|
||||
padding:0;
|
||||
text-indent: 9999px;
|
||||
overflow: hidden;
|
||||
opacity:.5;
|
||||
}
|
||||
#display .next:hover, #display .previous:hover {
|
||||
opacity: .9;
|
||||
transition: all 0.2s ease-out;
|
||||
}
|
||||
|
||||
#display .next {
|
||||
background: transparent url(../img/right-arrow.png) no-repeat center
|
||||
center;
|
||||
right: 0px;
|
||||
z-index:3;
|
||||
}
|
||||
|
||||
#display .previous {
|
||||
background: transparent url(../img/left-arrow.png) no-repeat center
|
||||
center;
|
||||
left: 0px;
|
||||
z-index:2
|
||||
}
|
||||
|
||||
|
||||
#footer_bg {display: none;}
|
||||
#top_bg {display: none;}
|
||||
#footer {border-top: 1px solid black; text-align: center;}
|
||||
#header {
|
||||
position: relative;
|
||||
min-height: 54px;
|
||||
height: 100%;
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
img.posting_image,img.partner {
|
||||
float: left;
|
||||
width: 99px;
|
||||
height: 59px;
|
||||
padding: 2px;
|
||||
margin: 1em 0.5em 0 0;
|
||||
border: 1px solid #babdb6;
|
||||
}
|
||||
|
||||
img {max-width: 100%; height: auto;}
|
||||
#topnav a {
|
||||
display: inline-block;
|
||||
color: #000;
|
||||
font: 400 small-caps 24pt 'Amerika Sans', sans-serif;
|
||||
min-width: 80px;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
text-shadow: 2px 2px 2px #2e3436;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#topnav a.active {
|
||||
color: #bc0a19;
|
||||
}
|
||||
|
||||
#topnav a:hover {
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
#sitelogo {
|
||||
background: url('../img/logo_mobile.png') no-repeat;
|
||||
width: 114px;
|
||||
height: 54px;
|
||||
left: 5px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
text-indent: -9999px;
|
||||
top: 5px;
|
||||
z-index: 20;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#teaser {background:none; margin-bottom: 1em;}
|
||||
|
||||
#teaser_text {
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
#navigation {margin: 10px 0; padding: 0}
|
||||
|
||||
#navigation li {
|
||||
display: inline-block;
|
||||
background: #45484d url("../img/buttonbar.gif") top left repeat-x;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#navigation a {
|
||||
display: inline-block;
|
||||
padding: 0.5em 1em;
|
||||
font: bold 12px Arial;
|
||||
color: #FFF;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#sitelogo a {
|
||||
display: block;
|
||||
width: 114px;
|
||||
height: 54px;
|
||||
}
|
||||
|
||||
#siteheader:after {
|
||||
content: ".";
|
||||
clear: both;
|
||||
display: block;
|
||||
visibility: hidden;
|
||||
height: 0px;
|
||||
}
|
||||
|
||||
/* Dynamische Menü */
|
||||
#mainnav {
|
||||
display: block;
|
||||
float: right
|
||||
}
|
||||
|
||||
#toggle,.toggle {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#toggle:checked ~ .main_menu {
|
||||
display: block;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
#toggle:checked ~ .toggle, .toggle:hover {background: #45ABD6;}
|
||||
|
||||
|
||||
.toggle {
|
||||
z-index: 2;
|
||||
display: block;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.main_menu {
|
||||
display: none;
|
||||
opacity: 0;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
z-index: 999;
|
||||
right: 0;
|
||||
background: black;
|
||||
border-top: 1px solid #a40000;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-shadow: outset 0px 1px 0px 0px #ffffff;
|
||||
}
|
||||
|
||||
.main_menu>li {
|
||||
height: auto;
|
||||
list-style: none;
|
||||
float: left;
|
||||
z-index: 100;
|
||||
background: #eeeeec;
|
||||
display: block;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.main_menu>li>a {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
text-decoration: none;
|
||||
font: 400 small-caps 18px 'Amerika Sans', sans-serif;
|
||||
color: black;
|
||||
box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
float: right;
|
||||
padding: 1em;
|
||||
line-height: 1;
|
||||
-webkit-transition: all 0.25s linear;
|
||||
-moz-transition: all 0.25s linear;
|
||||
-o-transition: all 0.25s linear;
|
||||
transition: all 0.25s linear;
|
||||
}
|
||||
|
||||
#jumbotron {background: none !important;}
|
||||
#redbox {display: block;}
|
||||
|
||||
.main_menu>li>a:hover,.menu>li>a:focus {
|
||||
box-shadow: inset 5px 0px #a40000;
|
||||
color: #a40000;
|
||||
}
|
||||
|
||||
.grid_6, .grid_7,.grid_8,.grid_9,.grid_10,.grid_11, .grid_12{clear: both; width:100%}
|
||||
|
||||
|
||||
.player {
|
||||
display: inline;
|
||||
float: left;
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
position: relative;
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
min-width: 60px;
|
||||
}
|
||||
|
||||
|
||||
.toggle {
|
||||
display: block;
|
||||
width: 150px;
|
||||
margin: 8px 0;
|
||||
padding: 10px;
|
||||
background: #a40000;
|
||||
text-align: center;
|
||||
color: #FFFFFF;
|
||||
content: 'Main Menu';
|
||||
border-radius: 2px;
|
||||
box-sizing: border-box;
|
||||
transition: all 0.5s linear;
|
||||
-webkit-border-radius: 2px;
|
||||
-webkit-transition: all 0.5s linear;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-transition: all 0.5s linear;
|
||||
-moz-box-sizing: border-box;
|
||||
-o-transition: all 0.5s linear;
|
||||
}
|
||||
|
||||
.thumbnail {
|
||||
display: block;
|
||||
position: relative;
|
||||
float: left;
|
||||
height: 70px;
|
||||
padding: 0;
|
||||
width: 70px;
|
||||
margin: 5px;
|
||||
box-shadow: 2px 2px 5px #888;
|
||||
}
|
||||
|
||||
.thumbnail img {height: 70px; width: 70px;}
|
||||
.thumbnail a.delete_image {display:none}
|
||||
|
||||
img.thumbnail {display:block; float: left;height: 70px; width: 70px; margin:5px;box-shadow: 2px 2px 5px #888;}
|
||||
|
||||
fieldset {
|
||||
border: none;
|
||||
color: #2e3436;
|
||||
border-radius: 10px;
|
||||
margin: 10px 0 0 0;
|
||||
padding: 0 10px 0 160px;
|
||||
background: #f2f5f6; /* Old browsers */
|
||||
background: linear-gradient(135deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
background: -moz-linear-gradient(-45deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #f2f5f6),
|
||||
color-stop(37%, #e3eaed), color-stop(100%, #c8d7dc) );
|
||||
background: -webkit-linear-gradient(-45deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
background: -o-linear-gradient(-45deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
background: -ms-linear-gradient(-45deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
|
||||
}
|
||||
|
||||
fieldset legend {
|
||||
margin-top: -.1em;
|
||||
margin-left: -150px;
|
||||
color: #a40000;
|
||||
font-family: 'Amerika Sans', sans-serif;
|
||||
font-variant: small-caps;
|
||||
font-weight: 400;
|
||||
font-size: 16pt;
|
||||
text-shadow: 2px 2px 2px #888;
|
||||
}
|
||||
|
||||
fieldset .required {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
fieldset .error {
|
||||
color: #a40000
|
||||
}
|
||||
|
||||
fieldset .buttonbar {
|
||||
border-radius: 0px 0px 10px 10px;
|
||||
margin: 0 -10px 0 -160px;
|
||||
}
|
||||
|
||||
fieldset .help_text {
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
fieldset .field_name {
|
||||
text-align: right;
|
||||
width: 140px;
|
||||
margin: 0 20px 0 -160px;
|
||||
padding-top: 3px;
|
||||
display: inline-block;
|
||||
clear: left;
|
||||
}
|
||||
|
||||
fieldset input,fieldset textarea {
|
||||
border: 1px solid #999999;
|
||||
border-radius: 5px;
|
||||
padding: 2px;
|
||||
margin: 0;
|
||||
font-size: 12pt;
|
||||
}
|
||||
|
||||
fieldset input[maxlength="255"],fieldset textarea {
|
||||
width: 99%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
fieldset ul {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
fieldset ul li {
|
||||
list-style: none;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
ul.tabs {margin-top:1em;}
|
||||
.pagination {clear:both;}
|
||||
.pagination a, .pagination .current, .pagination .next, .pagination .previous {
|
||||
display: inline-block;
|
||||
text-decoration: none;
|
||||
padding: 0 0.5em 0 0.5em;
|
||||
}
|
||||
|
||||
.gallery {float: left; width:150px; height:150px; margin: 10px;}
|
||||
.gallery h3 {font-size: 12pt;}
|
||||
462
kasu/static/css/mobile.less
Normal file
@@ -0,0 +1,462 @@
|
||||
@media screen and (max-width: @max-mobile-with) {
|
||||
|
||||
body {
|
||||
background: url('../img/background_mobile.png') no-repeat top center;
|
||||
font: 12pt "Philosopher", Georgia, serif;
|
||||
-webkit-animation: bugfix infinite 1s;
|
||||
}
|
||||
|
||||
|
||||
#display .grid_10 {
|
||||
margin: 0;
|
||||
position: relative;
|
||||
z-index: 1
|
||||
}
|
||||
|
||||
#display .next, #display .previous {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
width: 45px;
|
||||
height: 100%;
|
||||
margin: 0px;
|
||||
padding: 0;
|
||||
text-indent: 9999px;
|
||||
overflow: hidden;
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
#display .next:hover, #display .previous:hover {
|
||||
opacity: .9;
|
||||
transition: all 0.2s ease-out;
|
||||
}
|
||||
|
||||
#display .next {
|
||||
background: transparent url(../img/right-arrow.png) no-repeat center center;
|
||||
right: 0px;
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
#display .previous {
|
||||
background: transparent url(../img/left-arrow.png) no-repeat center center;
|
||||
left: 0px;
|
||||
z-index: 2
|
||||
}
|
||||
|
||||
#footer_bg {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#top_bg {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#footer {
|
||||
border-top: 1px solid black;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#header {
|
||||
position: relative;
|
||||
min-height: 54px;
|
||||
height: 100%;
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
img.posting_image, img.partner {
|
||||
float: left;
|
||||
width: 99px;
|
||||
height: 59px;
|
||||
padding: 2px;
|
||||
margin: 1em 0.5em 0 0;
|
||||
border: 1px solid #babdb6;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
#topnav a {
|
||||
display: inline-block;
|
||||
color: #000;
|
||||
font: 400 small-caps 24pt 'Amerika Sans', sans-serif;
|
||||
min-width: 80px;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
text-shadow: 2px 2px 2px #2e3436;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#topnav a.active {
|
||||
color: #bc0a19;
|
||||
}
|
||||
|
||||
#topnav a:hover {
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
#sitelogo {
|
||||
background: url('../img/logo_mobile.png') no-repeat;
|
||||
width: 114px;
|
||||
height: 54px;
|
||||
left: 5px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
text-indent: -9999px;
|
||||
top: 5px;
|
||||
z-index: 20;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#teaser {
|
||||
background: none;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
#teaser_text {
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
#navigation {
|
||||
margin: 10px 0;
|
||||
padding: 0;
|
||||
background: #45484d url("../img/navigation-mobile.png") top left repeat-x;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
#navigation li {
|
||||
display: inline-block;
|
||||
padding: 0.5em 0.3em 0.5em 0.5em;
|
||||
text-align: center;
|
||||
border-left: 1px solid #ffffff;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#navigation li:first-of-type {
|
||||
border: none;
|
||||
}
|
||||
|
||||
#navigation a {
|
||||
font: bold 12px Arial;
|
||||
color: #FFF;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#sitelogo a {
|
||||
display: block;
|
||||
width: 114px;
|
||||
height: 54px;
|
||||
}
|
||||
|
||||
#siteheader:after {
|
||||
content: ".";
|
||||
clear: both;
|
||||
display: block;
|
||||
visibility: hidden;
|
||||
height: 0px;
|
||||
}
|
||||
|
||||
/* Dynamische Menü */
|
||||
#mainnav {
|
||||
display: block;
|
||||
float: right
|
||||
}
|
||||
|
||||
#toggle, .toggle {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#toggle:checked ~ .main_menu {
|
||||
display: block;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
#toggle:checked ~ .toggle, .toggle:hover {
|
||||
background: #45ABD6;
|
||||
}
|
||||
|
||||
.comment_picture {
|
||||
display: table-cell;
|
||||
padding: 0px 10px;
|
||||
width: 60px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.comment_header {
|
||||
display: table-cell;
|
||||
padding: 0px 10px;
|
||||
width: 140px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.comment_header h3 {
|
||||
margin: 0
|
||||
}
|
||||
|
||||
.toggle {
|
||||
z-index: 2;
|
||||
display: block;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.main_menu {
|
||||
display: none;
|
||||
opacity: 0;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
z-index: 999;
|
||||
right: 0;
|
||||
background: black;
|
||||
border-top: 1px solid #a40000;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-shadow: outset 0px 1px 0px 0px #ffffff;
|
||||
}
|
||||
|
||||
.main_menu > li {
|
||||
height: auto;
|
||||
list-style: none;
|
||||
float: left;
|
||||
z-index: 100;
|
||||
background: #eeeeec;
|
||||
display: block;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.main_menu > li > a {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
text-decoration: none;
|
||||
font: 400 small-caps 18px 'Amerika Sans', sans-serif;
|
||||
color: black;
|
||||
box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
float: right;
|
||||
padding: 1em;
|
||||
line-height: 1;
|
||||
-webkit-transition: all 0.25s linear;
|
||||
-moz-transition: all 0.25s linear;
|
||||
-o-transition: all 0.25s linear;
|
||||
transition: all 0.25s linear;
|
||||
}
|
||||
|
||||
#jumbotron {
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
#redbox {
|
||||
margin-top: 1em;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.main_menu > li > a:hover, .menu > li > a:focus {
|
||||
box-shadow: inset 5px 0px #a40000;
|
||||
color: #a40000;
|
||||
}
|
||||
|
||||
.grid_6, .grid_7, .grid_8, .grid_9, .grid_10, .grid_11, .grid_12 {
|
||||
width: 100%;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.player {
|
||||
display: inline;
|
||||
float: left;
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
position: relative;
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
min-width: 60px;
|
||||
}
|
||||
|
||||
.toggle {
|
||||
display: block;
|
||||
width: 150px;
|
||||
margin: 8px 0;
|
||||
padding: 10px;
|
||||
background: #a40000;
|
||||
text-align: center;
|
||||
color: #FFFFFF;
|
||||
content: 'Main Menu';
|
||||
border-radius: 2px;
|
||||
box-sizing: border-box;
|
||||
transition: all 0.5s linear;
|
||||
-webkit-border-radius: 2px;
|
||||
-webkit-transition: all 0.5s linear;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-transition: all 0.5s linear;
|
||||
-moz-box-sizing: border-box;
|
||||
-o-transition: all 0.5s linear;
|
||||
}
|
||||
|
||||
.thumbnail {
|
||||
display: block;
|
||||
position: relative;
|
||||
float: left;
|
||||
height: 70px;
|
||||
padding: 0;
|
||||
width: 70px;
|
||||
margin: 5px;
|
||||
box-shadow: 2px 2px 5px #888;
|
||||
}
|
||||
|
||||
.thumbnail img {
|
||||
height: 70px;
|
||||
width: 70px;
|
||||
}
|
||||
|
||||
.thumbnail a.delete_image {
|
||||
display: none
|
||||
}
|
||||
|
||||
img.thumbnail {
|
||||
display: block;
|
||||
float: left;
|
||||
height: 70px;
|
||||
width: 70px;
|
||||
margin: 5px;
|
||||
box-shadow: 2px 2px 5px #888;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
border: none;
|
||||
color: #2e3436;
|
||||
border-radius: 10px;
|
||||
margin: 10px 0 0 0;
|
||||
padding: 0 10px 0 160px;
|
||||
background: #f2f5f6; /* Old browsers */
|
||||
background: linear-gradient(135deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
background: -moz-linear-gradient(-45deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
background: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #f2f5f6),
|
||||
color-stop(37%, #e3eaed), color-stop(100%, #c8d7dc));
|
||||
background: -webkit-linear-gradient(-45deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
background: -o-linear-gradient(-45deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
background: -ms-linear-gradient(-45deg, #f2f5f6 0%, #e3eaed 37%, #c8d7dc 100%);
|
||||
|
||||
}
|
||||
|
||||
fieldset legend {
|
||||
margin-top: -.1em;
|
||||
margin-left: -150px;
|
||||
color: #a40000;
|
||||
font-family: 'Amerika Sans', sans-serif;
|
||||
font-variant: small-caps;
|
||||
font-weight: 400;
|
||||
font-size: 16pt;
|
||||
text-shadow: 2px 2px 2px #888;
|
||||
}
|
||||
|
||||
fieldset .required {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
fieldset .error {
|
||||
color: #a40000
|
||||
}
|
||||
|
||||
fieldset .buttonbar {
|
||||
border-radius: 0px 0px 10px 10px;
|
||||
margin: 0 -10px 0 -160px;
|
||||
}
|
||||
|
||||
fieldset .help_text {
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
fieldset .field_name {
|
||||
text-align: right;
|
||||
width: 140px;
|
||||
margin: 0 20px 0 -160px;
|
||||
padding-top: 3px;
|
||||
display: inline-block;
|
||||
clear: left;
|
||||
}
|
||||
|
||||
fieldset input, fieldset textarea {
|
||||
border: 1px solid #999999;
|
||||
border-radius: 5px;
|
||||
padding: 2px;
|
||||
margin: 0;
|
||||
font-size: 12pt;
|
||||
}
|
||||
|
||||
fieldset input[maxlength="255"], fieldset textarea {
|
||||
width: 99%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
fieldset ul {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
fieldset ul li {
|
||||
list-style: none;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
ul.tabs {
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.pagination a, .pagination .current, .pagination .next, .pagination .previous {
|
||||
display: inline-block;
|
||||
text-decoration: none;
|
||||
padding: 0 0.5em 0 0.5em;
|
||||
}
|
||||
|
||||
.gallery {
|
||||
float: left;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.gallery h3 {
|
||||
font-size: 12pt;
|
||||
}
|
||||
|
||||
.comment {
|
||||
display: block
|
||||
}
|
||||
|
||||
.comment_picture {
|
||||
display: block;
|
||||
float: left;
|
||||
vertical-align: top;
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
.comment_header {
|
||||
display: block;
|
||||
float: left;
|
||||
padding: 0px 10px;
|
||||
vertical-align: top;
|
||||
width: 140px;
|
||||
}
|
||||
|
||||
.comment_header h3 {
|
||||
margin: 0
|
||||
}
|
||||
|
||||
.comment_text {
|
||||
border-top: 1px solid #45484d;
|
||||
display: block;
|
||||
margin-left: 0px 10px;
|
||||
padding-top: 0.5em;
|
||||
clear: both;
|
||||
}
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
@page {
|
||||
size: portrait;
|
||||
margin: 0.5cm 1cm 0.6cm 2cm;
|
||||
orphans: 3;
|
||||
widows: 3;
|
||||
}
|
||||
|
||||
nav, aside, #comment_form, #navigation, #mainnav, #usernav, #bottom_buttonbar, #footer > form {
|
||||
display: none; !important
|
||||
}
|
||||
|
||||
#header {
|
||||
width: 100%;
|
||||
border-bottom: 1px solid black;
|
||||
}
|
||||
#footer {
|
||||
width: 100%;
|
||||
border-top: 1px solid black;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
* {
|
||||
-webkit-print-color-adjust: exact;
|
||||
/*print-color-adjust: exact;*/
|
||||
}
|
||||
|
||||
a:link, a:visited {
|
||||
color: black;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#sitelogo {
|
||||
background: url(../img/logo.png) top right no-repeat;
|
||||
background-size: contain;
|
||||
left: 5px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
line-height: 1cm;
|
||||
font-size: 16pt;
|
||||
top: 5px;
|
||||
z-index: 99;
|
||||
}
|
||||
|
||||
body, article {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #000;
|
||||
background: #fff;
|
||||
}
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
text-shadow: none;
|
||||
page-break-after: avoid;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100% !important;
|
||||
}
|
||||
|
||||
ul, img {
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
#comment_form, #navigation, #mainnav, #usernav, #bottom_buttonbar, #footer > form {
|
||||
display: none;
|
||||
}
|
||||
.more_link {display: none}
|
||||
#maincontent nav {display: none}
|
||||
#maincontent aside {display: none}
|
||||
|
||||
.grid_6, grid_7, .grid_8, grid_9, .grid_10, .grid_11, .grid_12 {width:100%}
|
||||
87
kasu/static/css/print.less
Normal file
@@ -0,0 +1,87 @@
|
||||
@media print {
|
||||
|
||||
@page {
|
||||
size: portrait;
|
||||
margin: 0.5cm 0.5cm 0.5cm 1cm;
|
||||
orphans: 3;
|
||||
widows: 3;
|
||||
}
|
||||
|
||||
nav, aside, #comment_form, #navigation, #mainnav, #usernav, #bottom_buttonbar, #footer > form {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#footer {
|
||||
width: 100%;
|
||||
padding-top: 0.5em;
|
||||
border-top: 1px solid black;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
* {
|
||||
-webkit-print-color-adjust: exact;
|
||||
print-color-adjust: exact;
|
||||
}
|
||||
|
||||
a:link, a:visited {
|
||||
color: black;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#sitelogo {
|
||||
background: url(../img/logo.png) top right no-repeat;
|
||||
background-size: contain;
|
||||
left: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
line-height: 1cm;
|
||||
font-size: 16pt;
|
||||
top: 5px;
|
||||
z-index: 99;
|
||||
}
|
||||
|
||||
#jumbotron {
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
body, article {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #000;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
text-shadow: none;
|
||||
page-break-after: avoid;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100% !important;
|
||||
}
|
||||
|
||||
ul, img {
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
#comment_form, #navigation, #mainnav, #usernav, #bottom_buttonbar, #footer > form {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.more_link {
|
||||
display: none
|
||||
}
|
||||
|
||||
#maincontent nav {
|
||||
display: none
|
||||
}
|
||||
|
||||
#maincontent aside {
|
||||
display: none
|
||||
}
|
||||
|
||||
.grid_6, grid_7, .grid_8, grid_9, .grid_10, .grid_11, .grid_12 {
|
||||
width: 100%
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
/* Generated by Font Squirrel (http://www.fontsquirrel.com) on October 22, 2011 */
|
||||
|
||||
|
||||
|
||||
@font-face {
|
||||
font-family: 'AmerikaSansRegular';
|
||||
src: url('amerikasans-webfont.eot');
|
||||
src: url('amerikasans-webfont.eot?#iefix') format('embedded-opentype'),
|
||||
url('amerikasans-webfont.woff') format('woff'),
|
||||
url('amerikasans-webfont.ttf') format('truetype'),
|
||||
url('amerikasans-webfont.svg#AmerikaSansRegular') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 81 KiB |
BIN
kasu/static/img/navigation-mobile.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 260 B |
|
Before Width: | Height: | Size: 251 B |
|
Before Width: | Height: | Size: 178 B |
|
Before Width: | Height: | Size: 104 B |
|
Before Width: | Height: | Size: 125 B |
|
Before Width: | Height: | Size: 105 B |
|
Before Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 90 B |
|
Before Width: | Height: | Size: 129 B |
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 4.3 KiB |
18
kasu/static/js/jquery-1.6.2.min.js
vendored
227
kasu/static/js/jquery-ui-1.8.16.custom.min.js
vendored
@@ -1,227 +0,0 @@
|
||||
/*!
|
||||
* jQuery UI 1.8.16
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI
|
||||
*/
|
||||
(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.16",
|
||||
keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({propAttr:c.fn.prop||c.fn.attr,_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=
|
||||
this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,
|
||||
"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":
|
||||
"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,
|
||||
outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a,
|
||||
"tabindex"),d=isNaN(b);return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&
|
||||
a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&
|
||||
c.ui.isOverAxis(b,e,i)}})}})(jQuery);
|
||||
;/*!
|
||||
* jQuery UI Widget 1.8.16
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Widget
|
||||
*/
|
||||
(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)try{b(d).triggerHandler("remove")}catch(e){}k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(d){}});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=
|
||||
function(h){return!!b.data(h,a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):
|
||||
d;if(e&&d.charAt(0)==="_")return h;e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=
|
||||
b.extend(true,{},this.options,this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+
|
||||
"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",
|
||||
c);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
|
||||
;/*
|
||||
* jQuery UI Button 1.8.16
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Button
|
||||
*
|
||||
* Depends:
|
||||
* jquery.ui.core.js
|
||||
* jquery.ui.widget.js
|
||||
*/
|
||||
(function(b){var h,i,j,g,l=function(){var a=b(this).find(":ui-button");setTimeout(function(){a.button("refresh")},1)},k=function(a){var c=a.name,e=a.form,f=b([]);if(c)f=e?b(e).find("[name='"+c+"']"):b("[name='"+c+"']",a.ownerDocument).filter(function(){return!this.form});return f};b.widget("ui.button",{options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",l);if(typeof this.options.disabled!==
|
||||
"boolean")this.options.disabled=this.element.propAttr("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var a=this,c=this.options,e=this.type==="checkbox"||this.type==="radio",f="ui-state-hover"+(!e?" ui-state-active":"");if(c.label===null)c.label=this.buttonElement.html();if(this.element.is(":disabled"))c.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",function(){if(!c.disabled){b(this).addClass("ui-state-hover");
|
||||
this===h&&b(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){c.disabled||b(this).removeClass(f)}).bind("click.button",function(d){if(c.disabled){d.preventDefault();d.stopImmediatePropagation()}});this.element.bind("focus.button",function(){a.buttonElement.addClass("ui-state-focus")}).bind("blur.button",function(){a.buttonElement.removeClass("ui-state-focus")});if(e){this.element.bind("change.button",function(){g||a.refresh()});this.buttonElement.bind("mousedown.button",function(d){if(!c.disabled){g=
|
||||
false;i=d.pageX;j=d.pageY}}).bind("mouseup.button",function(d){if(!c.disabled)if(i!==d.pageX||j!==d.pageY)g=true})}if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(c.disabled||g)return false;b(this).toggleClass("ui-state-active");a.buttonElement.attr("aria-pressed",a.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(c.disabled||g)return false;b(this).addClass("ui-state-active");a.buttonElement.attr("aria-pressed","true");
|
||||
var d=a.element[0];k(d).not(d).map(function(){return b(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")});else{this.buttonElement.bind("mousedown.button",function(){if(c.disabled)return false;b(this).addClass("ui-state-active");h=this;b(document).one("mouseup",function(){h=null})}).bind("mouseup.button",function(){if(c.disabled)return false;b(this).removeClass("ui-state-active")}).bind("keydown.button",function(d){if(c.disabled)return false;if(d.keyCode==b.ui.keyCode.SPACE||
|
||||
d.keyCode==b.ui.keyCode.ENTER)b(this).addClass("ui-state-active")}).bind("keyup.button",function(){b(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(d){d.keyCode===b.ui.keyCode.SPACE&&b(this).click()})}this._setOption("disabled",c.disabled);this._resetButton()},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type===
|
||||
"radio"){var a=this.element.parents().filter(":last"),c="label[for='"+this.element.attr("id")+"']";this.buttonElement=a.find(c);if(!this.buttonElement.length){a=a.length?a.siblings():this.element.siblings();this.buttonElement=a.filter(c);if(!this.buttonElement.length)this.buttonElement=a.find(c)}this.element.addClass("ui-helper-hidden-accessible");(a=this.element.is(":checked"))&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",a)}else this.buttonElement=this.element},
|
||||
widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());this.hasTitle||this.buttonElement.removeAttr("title");
|
||||
b.Widget.prototype.destroy.call(this)},_setOption:function(a,c){b.Widget.prototype._setOption.apply(this,arguments);if(a==="disabled")c?this.element.propAttr("disabled",true):this.element.propAttr("disabled",false);else this._resetButton()},refresh:function(){var a=this.element.is(":disabled");a!==this.options.disabled&&this._setOption("disabled",a);if(this.type==="radio")k(this.element[0]).each(function(){b(this).is(":checked")?b(this).button("widget").addClass("ui-state-active").attr("aria-pressed",
|
||||
"true"):b(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false")},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var a=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"),
|
||||
c=b("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(a.empty()).text(),e=this.options.icons,f=e.primary&&e.secondary,d=[];if(e.primary||e.secondary){if(this.options.text)d.push("ui-button-text-icon"+(f?"s":e.primary?"-primary":"-secondary"));e.primary&&a.prepend("<span class='ui-button-icon-primary ui-icon "+e.primary+"'></span>");e.secondary&&a.append("<span class='ui-button-icon-secondary ui-icon "+e.secondary+"'></span>");if(!this.options.text){d.push(f?"ui-button-icons-only":
|
||||
"ui-button-icon-only");this.hasTitle||a.attr("title",c)}}else d.push("ui-button-text-only");a.addClass(d.join(" "))}}});b.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(a,c){a==="disabled"&&this.buttons.button("option",a,c);b.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var a=this.element.css("direction")===
|
||||
"ltr";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(a?"ui-corner-left":"ui-corner-right").end().filter(":last").addClass(a?"ui-corner-right":"ui-corner-left").end().end()},destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");
|
||||
b.Widget.prototype.destroy.call(this)}})})(jQuery);
|
||||
;/*
|
||||
* jQuery UI Tabs 1.8.16
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Tabs
|
||||
*
|
||||
* Depends:
|
||||
* jquery.ui.core.js
|
||||
* jquery.ui.widget.js
|
||||
*/
|
||||
(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading…</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&&
|
||||
e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=
|
||||
d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]||
|
||||
(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");
|
||||
this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected=
|
||||
this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");
|
||||
if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));
|
||||
this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+
|
||||
g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",
|
||||
function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")};
|
||||
this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected=
|
||||
-1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";
|
||||
d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e=
|
||||
d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b,
|
||||
e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]);
|
||||
j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();
|
||||
if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=b}),function(h){return h>=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null,
|
||||
this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this},
|
||||
load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c,
|
||||
"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},
|
||||
url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.16"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k<a.anchors.length?k:0)},b);j&&j.stopPropagation()});e=a._unrotate||(a._unrotate=!e?function(j){j.clientX&&
|
||||
a.rotate(null)}:function(){t=c.selected;h()});if(b){this.element.bind("tabsshow",h);this.anchors.bind(c.event+".tabs",e);h()}else{clearTimeout(a.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(c.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery);
|
||||
;/*
|
||||
* jQuery UI Datepicker 1.8.16
|
||||
*
|
||||
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://docs.jquery.com/UI/Datepicker
|
||||
*
|
||||
* Depends:
|
||||
* jquery.ui.core.js
|
||||
*/
|
||||
(function(d,C){function M(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass=
|
||||
"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su",
|
||||
"Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",
|
||||
minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false,disabled:false};d.extend(this._defaults,this.regional[""]);this.dpDiv=N(d('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}function N(a){return a.bind("mouseout",
|
||||
function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");b.length&&b.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");if(!(d.datepicker._isDisabledDatepicker(J.inline?a.parent()[0]:J.input[0])||!b.length)){b.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");
|
||||
b.addClass("ui-state-hover");b.hasClass("ui-datepicker-prev")&&b.addClass("ui-datepicker-prev-hover");b.hasClass("ui-datepicker-next")&&b.addClass("ui-datepicker-next-hover")}})}function H(a,b){d.extend(a,b);for(var c in b)if(b[c]==null||b[c]==C)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.16"}});var B=(new Date).getTime(),J;d.extend(M.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},
|
||||
setDefaults:function(a){H(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,
|
||||
"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:N(d('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}},_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",
|
||||
function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b);b.settings.disabled&&this._disableDatepicker(a)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&b.append.remove();if(c){b.append=d('<span class="'+this._appendClass+'">'+c+"</span>");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c==
|
||||
"focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("<img/>").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('<button type="button"></button>').addClass(this._triggerClass).html(f==""?c:d("<img/>").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():
|
||||
d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;g<f.length;g++)if(f[g].length>h){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,
|
||||
b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),true);this._updateDatepicker(b);this._updateAlternate(b);b.settings.disabled&&this._disableDatepicker(a);b.dpDiv.css("display","block")}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=
|
||||
1;this._dialogInput=d('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}H(a.settings,e||{});b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/
|
||||
2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=
|
||||
d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=
|
||||
a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().removeClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,
|
||||
"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().addClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==
|
||||
a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return true;return false},_getInst:function(a){try{return d.data(a,"datepicker")}catch(b){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(a,b,c){var e=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?d.extend({},d.datepicker._defaults):e?b=="all"?
|
||||
d.extend({},e.settings):this._get(e,b):null;var f=b||{};if(typeof b=="string"){f={};f[b]=c}if(e){this._curInst==e&&this._hideDatepicker();var h=this._getDateDatepicker(a,true),i=this._getMinMaxDate(e,"min"),g=this._getMinMaxDate(e,"max");H(e.settings,f);if(i!==null&&f.dateFormat!==C&&f.minDate===C)e.settings.minDate=this._formatDate(e,i);if(g!==null&&f.dateFormat!==C&&f.maxDate===C)e.settings.maxDate=this._formatDate(e,g);this._attachments(d(a),e);this._autoSize(e);this._setDate(e,h);this._updateAlternate(e);
|
||||
this._updateDatepicker(e)}},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){(a=this._getInst(a))&&this._updateDatepicker(a)},_setDateDatepicker:function(a,b){if(a=this._getInst(a)){this._setDate(a,b);this._updateDatepicker(a);this._updateAlternate(a)}},_getDateDatepicker:function(a,b){(a=this._getInst(a))&&!a.inline&&this._setDateFromField(a,b);return a?this._getDate(a):null},_doKeyDown:function(a){var b=d.datepicker._getInst(a.target),c=true,e=b.dpDiv.is(".ui-datepicker-rtl");
|
||||
b._keyEvent=true;if(d.datepicker._datepickerShowing)switch(a.keyCode){case 9:d.datepicker._hideDatepicker();c=false;break;case 13:c=d("td."+d.datepicker._dayOverClass+":not(."+d.datepicker._currentClass+")",b.dpDiv);c[0]&&d.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,c[0]);if(a=d.datepicker._get(b,"onSelect")){c=d.datepicker._formatDate(b);a.apply(b.input?b.input[0]:null,[c,b])}else d.datepicker._hideDatepicker();return false;case 27:d.datepicker._hideDatepicker();break;case 33:d.datepicker._adjustDate(a.target,
|
||||
a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 34:d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 35:if(a.ctrlKey||a.metaKey)d.datepicker._clearDate(a.target);c=a.ctrlKey||a.metaKey;break;case 36:if(a.ctrlKey||a.metaKey)d.datepicker._gotoToday(a.target);c=a.ctrlKey||a.metaKey;break;case 37:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?+1:-1,"D");c=
|
||||
a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 38:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,-7,"D");c=a.ctrlKey||a.metaKey;break;case 39:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?-1:+1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,
|
||||
"stepMonths"),"M");break;case 40:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,+7,"D");c=a.ctrlKey||a.metaKey;break;default:c=false}else if(a.keyCode==36&&a.ctrlKey)d.datepicker._showDatepicker(this);else c=false;if(c){a.preventDefault();a.stopPropagation()}},_doKeyPress:function(a){var b=d.datepicker._getInst(a.target);if(d.datepicker._get(b,"constrainInput")){b=d.datepicker._possibleChars(d.datepicker._get(b,"dateFormat"));var c=String.fromCharCode(a.charCode==C?a.keyCode:a.charCode);
|
||||
return a.ctrlKey||a.metaKey||c<" "||!b||b.indexOf(c)>-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",
|
||||
a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);if(d.datepicker._curInst&&d.datepicker._curInst!=b){d.datepicker._datepickerShowing&&d.datepicker._triggerOnClose(d.datepicker._curInst);d.datepicker._curInst.dpDiv.stop(true,true)}var c=d.datepicker._get(b,"beforeShow");c=c?c.apply(a,[a,b]):{};if(c!==false){H(b.settings,c);b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value=
|
||||
"";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);
|
||||
c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.datepicker._datepickerShowing=
|
||||
true;d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}}},_updateDatepicker:function(a){this.maxRows=4;var b=d.datepicker._getBorders(a.dpDiv);J=a;a.dpDiv.empty().append(this._generateHTML(a));var c=a.dpDiv.find("iframe.ui-datepicker-cover");c.length&&c.css({left:-b[0],top:-b[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});
|
||||
a.dpDiv.find("."+this._dayOverClass+" a").mouseover();b=this._getNumberOfMonths(a);c=b[1];a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");c>1&&a.dpDiv.addClass("ui-datepicker-multi-"+c).css("width",17*c+"em");a.dpDiv[(b[0]!=1||b[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&
|
||||
!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var e=a.yearshtml;setTimeout(function(){e===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);e=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),
|
||||
h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=
|
||||
this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_triggerOnClose:function(a){var b=this._get(a,"onClose");if(b)b.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a])},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);
|
||||
this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();d.datepicker._triggerOnClose(b);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},
|
||||
_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):
|
||||
0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e["selected"+(c=="M"?
|
||||
"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);
|
||||
this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");
|
||||
if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?
|
||||
b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=A+1<a.length&&a.charAt(A+1)==p)&&A++;return p},m=function(p){var D=
|
||||
o(p);p=new RegExp("^\\d{1,"+(p=="@"?14:p=="!"?20:p=="y"&&D?4:p=="o"?3:2)+"}");p=b.substring(q).match(p);if(!p)throw"Missing number at position "+q;q+=p[0].length;return parseInt(p[0],10)},n=function(p,D,K){p=d.map(o(p)?K:D,function(w,x){return[[x,w]]}).sort(function(w,x){return-(w[1].length-x[1].length)});var E=-1;d.each(p,function(w,x){w=x[1];if(b.substr(q,w.length).toLowerCase()==w.toLowerCase()){E=x[0];q+=w.length;return false}});if(E!=-1)return E+1;else throw"Unknown name at position "+q;},s=
|
||||
function(){if(b.charAt(q)!=a.charAt(A))throw"Unexpected literal at position "+q;q++},q=0,A=0;A<a.length;A++)if(k)if(a.charAt(A)=="'"&&!o("'"))k=false;else s();else switch(a.charAt(A)){case "d":l=m("d");break;case "D":n("D",f,h);break;case "o":u=m("o");break;case "m":j=m("m");break;case "M":j=n("M",i,g);break;case "y":c=m("y");break;case "@":var v=new Date(m("@"));c=v.getFullYear();j=v.getMonth()+1;l=v.getDate();break;case "!":v=new Date((m("!")-this._ticksTo1970)/1E4);c=v.getFullYear();j=v.getMonth()+
|
||||
1;l=v.getDate();break;case "'":if(o("'"))s();else k=true;break;default:s()}if(q<b.length)throw"Extra/unparsed characters found in date: "+b.substring(q);if(c==-1)c=(new Date).getFullYear();else if(c<100)c+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c<=e?0:-100);if(u>-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c,j-1,l));if(v.getFullYear()!=c||v.getMonth()+1!=j||v.getDate()!=l)throw"Invalid date";return v},ATOM:"yy-mm-dd",
|
||||
COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:
|
||||
null)||this._defaults.monthNames;var i=function(o){(o=k+1<a.length&&a.charAt(k+1)==o)&&k++;return o},g=function(o,m,n){m=""+m;if(i(o))for(;m.length<n;)m="0"+m;return m},j=function(o,m,n,s){return i(o)?s[m]:n[m]},l="",u=false;if(b)for(var k=0;k<a.length;k++)if(u)if(a.charAt(k)=="'"&&!i("'"))u=false;else l+=a.charAt(k);else switch(a.charAt(k)){case "d":l+=g("d",b.getDate(),2);break;case "D":l+=j("D",b.getDay(),e,f);break;case "o":l+=g("o",Math.round(((new Date(b.getFullYear(),b.getMonth(),b.getDate())).getTime()-
|
||||
(new Date(b.getFullYear(),0,0)).getTime())/864E5),3);break;case "m":l+=g("m",b.getMonth()+1,2);break;case "M":l+=j("M",b.getMonth(),h,c);break;case "y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case "@":l+=b.getTime();break;case "!":l+=b.getTime()*1E4+this._ticksTo1970;break;case "'":if(i("'"))l+="'";else u=true;break;default:l+=a.charAt(k)}return l},_possibleChars:function(a){for(var b="",c=false,e=function(h){(h=f+1<a.length&&a.charAt(f+1)==h)&&f++;return h},f=
|
||||
0;f<a.length;f++)if(c)if(a.charAt(f)=="'"&&!e("'"))c=false;else b+=a.charAt(f);else switch(a.charAt(f)){case "d":case "m":case "y":case "@":b+="0123456789";break;case "D":case "M":return null;case "'":if(e("'"))b+="'";else c=true;break;default:b+=a.charAt(f)}return b},_get:function(a,b){return a.settings[b]!==C?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var c=this._get(a,"dateFormat"),e=a.lastVal=a.input?a.input.val():null,f,h;f=h=this._getDefaultDate(a);
|
||||
var i=this._getFormatConfig(a);try{f=this.parseDate(c,e,i)||h}catch(g){this.log(g);e=b?"":e}a.selectedDay=f.getDate();a.drawMonth=a.selectedMonth=f.getMonth();a.drawYear=a.selectedYear=f.getFullYear();a.currentDay=e?f.getDate():0;a.currentMonth=e?f.getMonth():0;a.currentYear=e?f.getFullYear():0;this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var e=function(h){var i=new Date;
|
||||
i.setDate(i.getDate()+h);return i},f=function(h){try{return d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),h,d.datepicker._getFormatConfig(a))}catch(i){}var g=(h.toLowerCase().match(/^c/)?d.datepicker._getDate(a):null)||new Date,j=g.getFullYear(),l=g.getMonth();g=g.getDate();for(var u=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,k=u.exec(h);k;){switch(k[2]||"d"){case "d":case "D":g+=parseInt(k[1],10);break;case "w":case "W":g+=parseInt(k[1],10)*7;break;case "m":case "M":l+=parseInt(k[1],10);g=
|
||||
Math.min(g,d.datepicker._getDaysInMonth(j,l));break;case "y":case "Y":j+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break}k=u.exec(h)}return new Date(j,l,g)};if(b=(b=b==null||b===""?c:typeof b=="string"?f(b):typeof b=="number"?isNaN(b)?c:e(b):new Date(b.getTime()))&&b.toString()=="Invalid Date"?c:b){b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0)}return this._daylightSavingAdjust(b)},_daylightSavingAdjust:function(a){if(!a)return null;a.setHours(a.getHours()>
|
||||
12?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&
|
||||
a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?
|
||||
new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&n<k?k:n;this._daylightSavingAdjust(new Date(m,g,1))>n;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));
|
||||
n=this._canAdjustMonth(a,-1,m,g)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+B+".datepicker._adjustDate('#"+a.id+"', -"+j+", 'M');\" title=\""+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>":f?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>";var s=this._get(a,"nextText");s=!h?s:this.formatDate(s,this._daylightSavingAdjust(new Date(m,
|
||||
g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+B+".datepicker._adjustDate('#"+a.id+"', +"+j+", 'M');\" title=\""+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>":f?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>";j=this._get(a,"currentText");s=this._get(a,"gotoCurrent")&&
|
||||
a.currentDay?u:b;j=!h?j:this.formatDate(j,s,this._getFormatConfig(a));h=!a.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+B+'.datepicker._hideDatepicker();">'+this._get(a,"closeText")+"</button>":"";e=e?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?h:"")+(this._isInRange(a,s)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+
|
||||
B+".datepicker._gotoToday('#"+a.id+"');\">"+j+"</button>":"")+(c?"":h)+"</div>":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");s=this._get(a,"dayNames");this._get(a,"dayNamesShort");var q=this._get(a,"dayNamesMin"),A=this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),D=this._get(a,"showOtherMonths"),K=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var E=this._getDefaultDate(a),w="",x=0;x<i[0];x++){var O=
|
||||
"";this.maxRows=4;for(var G=0;G<i[1];G++){var P=this._daylightSavingAdjust(new Date(m,g,a.selectedDay)),t=" ui-corner-all",y="";if(l){y+='<div class="ui-datepicker-group';if(i[1]>1)switch(G){case 0:y+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-1:y+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:y+=" ui-datepicker-group-middle";t="";break}y+='">'}y+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+t+'">'+(/all|left/.test(t)&&
|
||||
x==0?c?f:n:"")+(/all|right/.test(t)&&x==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,x>0||G>0,A,v)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var z=j?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(t=0;t<7;t++){var r=(t+h)%7;z+="<th"+((t+h+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+s[r]+'">'+q[r]+"</span></th>"}y+=z+"</tr></thead><tbody>";z=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,
|
||||
z);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;z=Math.ceil((t+z)/7);this.maxRows=z=l?this.maxRows>z?this.maxRows:z:z;r=this._daylightSavingAdjust(new Date(m,g,1-t));for(var Q=0;Q<z;Q++){y+="<tr>";var R=!j?"":'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(r)+"</td>";for(t=0;t<7;t++){var I=p?p.apply(a.input?a.input[0]:null,[r]):[true,""],F=r.getMonth()!=g,L=F&&!K||!I[0]||k&&r<k||o&&r>o;R+='<td class="'+((t+h+6)%7>=5?" ui-datepicker-week-end":"")+(F?" ui-datepicker-other-month":"")+(r.getTime()==
|
||||
P.getTime()&&g==a.selectedMonth&&a._keyEvent||E.getTime()==r.getTime()&&E.getTime()==P.getTime()?" "+this._dayOverClass:"")+(L?" "+this._unselectableClass+" ui-state-disabled":"")+(F&&!D?"":" "+I[1]+(r.getTime()==u.getTime()?" "+this._currentClass:"")+(r.getTime()==b.getTime()?" ui-datepicker-today":""))+'"'+((!F||D)&&I[2]?' title="'+I[2]+'"':"")+(L?"":' onclick="DP_jQuery_'+B+".datepicker._selectDay('#"+a.id+"',"+r.getMonth()+","+r.getFullYear()+', this);return false;"')+">"+(F&&!D?" ":L?'<span class="ui-state-default">'+
|
||||
r.getDate()+"</span>":'<a class="ui-state-default'+(r.getTime()==b.getTime()?" ui-state-highlight":"")+(r.getTime()==u.getTime()?" ui-state-active":"")+(F?" ui-priority-secondary":"")+'" href="#">'+r.getDate()+"</a>")+"</td>";r.setDate(r.getDate()+1);r=this._daylightSavingAdjust(r)}y+=R+"</tr>"}g++;if(g>11){g=0;m++}y+="</tbody></table>"+(l?"</div>"+(i[0]>0&&G==i[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");O+=y}w+=O}w+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':
|
||||
"");a._keyEvent=false;return w},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='<div class="ui-datepicker-title">',o="";if(h||!j)o+='<span class="ui-datepicker-month">'+i[b]+"</span>";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+B+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" >";for(var n=0;n<12;n++)if((!i||n>=e.getMonth())&&
|
||||
(!m||n<=f.getMonth()))o+='<option value="'+n+'"'+(n==b?' selected="selected"':"")+">"+g[n]+"</option>";o+="</select>"}u||(k+=o+(h||!(j&&l)?" ":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+='<span class="ui-datepicker-year">'+c+"</span>";else{g=this._get(a,"yearRange").split(":");var s=(new Date).getFullYear();i=function(q){q=q.match(/c[+-].*/)?c+parseInt(q.substring(1),10):q.match(/[+-].*/)?s+parseInt(q,10):parseInt(q,10);return isNaN(q)?s:q};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,
|
||||
e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+B+".datepicker._selectMonthYear('#"+a.id+"', this, 'Y');\" >";b<=g;b++)a.yearshtml+='<option value="'+b+'"'+(b==c?' selected="selected"':"")+">"+b+"</option>";a.yearshtml+="</select>";k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?" ":"")+o;k+="</div>";return k},_adjustInstDate:function(a,b,c){var e=a.drawYear+(c=="Y"?b:0),f=a.drawMonth+
|
||||
(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&b<c?c:b;return b=a&&b>a?a:b},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");if(b)b.apply(a.input?
|
||||
a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);c=this._daylightSavingAdjust(new Date(c,
|
||||
e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,
|
||||
"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=function(a){if(!this.length)return this;
|
||||
if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));return this.each(function(){typeof a==
|
||||
"string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new M;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.16";window["DP_jQuery_"+B]=d})(jQuery);
|
||||
;
|
||||
|
||||
/* German initialisation for the jQuery UI date picker plugin. */
|
||||
/* Written by Milian Wolff (mail@milianw.de). */
|
||||
jQuery(function($){
|
||||
$.datepicker.regional['de'] = {
|
||||
closeText: 'schließen',
|
||||
prevText: '<zurück',
|
||||
nextText: 'Vor>',
|
||||
currentText: 'heute',
|
||||
monthNames: ['Januar','Februar','März','April','Mai','Juni',
|
||||
'Juli','August','September','Oktober','November','Dezember'],
|
||||
monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
|
||||
'Jul','Aug','Sep','Okt','Nov','Dez'],
|
||||
dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
|
||||
dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
|
||||
dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
|
||||
weekHeader: 'Wo',
|
||||
dateFormat: 'dd.mm.yy',
|
||||
firstDay: 1,
|
||||
isRTL: false,
|
||||
showMonthAfterYear: false,
|
||||
yearSuffix: ''};
|
||||
$.datepicker.setDefaults($.datepicker.regional['de']);
|
||||
});
|
||||
|
||||
/* English/UK initialisation for the jQuery UI date picker plugin. */
|
||||
/* Written by Stuart. */
|
||||
jQuery(function($){
|
||||
$.datepicker.regional['en'] = {
|
||||
closeText: 'Done',
|
||||
prevText: 'Prev',
|
||||
nextText: 'Next',
|
||||
currentText: 'Today',
|
||||
monthNames: ['January','February','March','April','May','June',
|
||||
'July','August','September','October','November','December'],
|
||||
monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
|
||||
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
||||
dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
||||
dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
||||
dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
|
||||
weekHeader: 'Wk',
|
||||
dateFormat: 'yyyy-mm-dd',
|
||||
firstDay: 1,
|
||||
isRTL: false,
|
||||
showMonthAfterYear: false,
|
||||
yearSuffix: ''};
|
||||
$.datepicker.setDefaults($.datepicker.regional['en']);
|
||||
});
|
||||
23
kasu/static/js/jquery.ui.datepicker-de.js
vendored
@@ -1,23 +0,0 @@
|
||||
/* German initialisation for the jQuery UI date picker plugin. */
|
||||
/* Written by Milian Wolff (mail@milianw.de). */
|
||||
jQuery(function($){
|
||||
$.datepicker.regional['de'] = {
|
||||
closeText: 'schließen',
|
||||
prevText: '<zurück',
|
||||
nextText: 'Vor>',
|
||||
currentText: 'heute',
|
||||
monthNames: ['Januar','Februar','März','April','Mai','Juni',
|
||||
'Juli','August','September','Oktober','November','Dezember'],
|
||||
monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
|
||||
'Jul','Aug','Sep','Okt','Nov','Dez'],
|
||||
dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
|
||||
dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
|
||||
dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
|
||||
weekHeader: 'Wo',
|
||||
dateFormat: 'dd.mm.yy',
|
||||
firstDay: 1,
|
||||
isRTL: false,
|
||||
showMonthAfterYear: false,
|
||||
yearSuffix: ''};
|
||||
$.datepicker.setDefaults($.datepicker.regional['de']);
|
||||
});
|
||||
23
kasu/static/js/jquery.ui.datepicker-en.js
vendored
@@ -1,23 +0,0 @@
|
||||
/* English/UK initialisation for the jQuery UI date picker plugin. */
|
||||
/* Written by Stuart. */
|
||||
jQuery(function($){
|
||||
$.datepicker.regional['en'] = {
|
||||
closeText: 'Done',
|
||||
prevText: 'Prev',
|
||||
nextText: 'Next',
|
||||
currentText: 'Today',
|
||||
monthNames: ['January','February','March','April','May','June',
|
||||
'July','August','September','October','November','December'],
|
||||
monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
|
||||
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
||||
dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
||||
dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
||||
dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
|
||||
weekHeader: 'Wk',
|
||||
dateFormat: 'dd/mm/yy',
|
||||
firstDay: 1,
|
||||
isRTL: false,
|
||||
showMonthAfterYear: false,
|
||||
yearSuffix: ''};
|
||||
$.datepicker.setDefaults($.datepicker.regional['en-GB']);
|
||||
});
|
||||
@@ -1,19 +1,15 @@
|
||||
{% load i18n %}
|
||||
<!doctype html>
|
||||
{% load compress %}
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Kasu - {% block title %}{{ current_top_page.menu_name|default:"traditionelle asiatische Spielkultur"}}{% endblock %}</title>
|
||||
<meta name="keywords" content="{% block keywords %}{% endblock %}"/>
|
||||
<title>Kasu - {% block title %}{{ current_page.menu_name|default:current_top_page.menu_name|default:"traditionelle asiatische Spielkultur"}}{% endblock %}</title>
|
||||
<meta name="description" content="{% block description %}{% endblock %}"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="shortcut icon" href="{{STATIC_URL}}img/favicon.ico">
|
||||
<link rel="stylesheet" media="all" href="{{STATIC_URL}}css/common.css" type="text/css">
|
||||
<link rel="stylesheet" media="print" href="{{STATIC_URL}}css/print.css" type="text/css">
|
||||
<link rel="stylesheet" media="screen and (min-width: 701px)" href="{{STATIC_URL}}css/desktop.css" type="text/css">
|
||||
<link rel="stylesheet" media="screen and (max-width: 700px)" href="{{STATIC_URL}}css/mobile.css" type="text/css">
|
||||
<link rel="stylesheet" href="{{STATIC_URL}}css/kasu.css" type="text/css">
|
||||
<!--[if lt IE 9]>
|
||||
<link rel="stylesheet" media="screen" href="{{STATIC_URL}}css/desktop.css" type="text/css">
|
||||
<script type="text/javascript">
|
||||
document.createElement('header');
|
||||
document.createElement('nav');
|
||||
@@ -53,37 +49,27 @@
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<section id="jumbotron"
|
||||
style="background-image: url('{% block jumbotron_background %}{{STATIC_URL}}img/teaser/{{current_top_page.slug}}.jpg{% endblock %}')">
|
||||
{% block teaser %}
|
||||
<h2>{{page.title}} {{title}}</h2>
|
||||
{% endblock %}
|
||||
<section id="jumbotron" style="background-image: url('{% block jumbotron_background %}{{STATIC_URL}}img/teaser/{{current_top_page.slug}}.jpg{% endblock %}')">
|
||||
{% block teaser %}<h1>{{title|default:current_page.title}}</h1>{% endblock %}
|
||||
<aside id="redbox">
|
||||
{% block redbox %}
|
||||
{% if current_event %}
|
||||
<h2>{% trans "Current Event" %}</h2>
|
||||
|
||||
<h3>{{ current_event.name}}</h3>
|
||||
|
||||
<p><img src="{{ STATIC_URL }}icons/date.png"/> {% trans "since" %}
|
||||
<time datetime="{{current_event.start|date:'c'}}">{{current_event.start|timesince}}</time>
|
||||
</p>
|
||||
<ul class="list">
|
||||
<li class="event"><strong>{% trans "Start" %}:</strong> {{current_event.start|date:'DATETIME_FORMAT'}}</li>
|
||||
<li class="time"><strong>{% trans "Since" %}:</strong> {{current_event.start|timesince}}</li>
|
||||
<li class="event"><strong>{% trans "Start" %}:</strong> <time datetime="{{current_event.start|date:'c'}}">{{current_event.start|date:'DATETIME_FORMAT'}}</time></li>
|
||||
<li class="location"><strong>{% trans "Location" %}:</strong> {{ current_event.location }}</li>
|
||||
</ul>
|
||||
<div style="text-align:right"><a class="button" href="{{current_event.get_absolute_url}}">{% trans "More Details" %}
|
||||
<img src="{{ STATIC_URL }}icons/date_go.png" alt="»" width="16" height="16"/></a></div>
|
||||
{% else %}
|
||||
<h2>{% trans "Next Event" %}</h2>
|
||||
|
||||
<h3>{{ next_event.name}}</h3>
|
||||
|
||||
<p><img src="{{ STATIC_URL }}icons/date.png" alt="" width="16" height="16"/> {% trans "in" %}
|
||||
<time datetime="{{next_event.start|date:'c'}}">{{next_event.start|timeuntil}}</time>
|
||||
</p>
|
||||
<ul class="list">
|
||||
<li class="event"><strong>{% trans "Start" %}:</strong> {{next_event.start|date:'DATETIME_FORMAT' }}</li>
|
||||
<li class="time"><strong>{% trans "in" %}:</strong> {{next_event.start|timeuntil}}</li>
|
||||
<li class="event"><strong>{% trans "Start" %}:</strong> <time datetime="{{next_event.start|date:'c'}}">{{next_event.start|date:'DATETIME_FORMAT' }}</time></li>
|
||||
<li class="location"><strong>{% trans "Location" %}:</strong> {{ next_event.location }}</li>
|
||||
</ul>
|
||||
<div style="text-align:right"><a class="button" href="{{next_event.get_absolute_url}}">{% trans "More Details" %}
|
||||
@@ -188,18 +174,23 @@
|
||||
width="26" height="26"/></a>
|
||||
{% endif %}
|
||||
</nav>
|
||||
<script type="text/javascript">{% block javascript %}{% endblock %}</script>
|
||||
<!-- Piwik -->
|
||||
<script type="text/javascript">
|
||||
{% block javascript %}{% endblock %}
|
||||
var pkBaseURL = (("https:" == document.location.protocol) ? "https://admin.animanga.at/tools/piwik/" : "http://admin.animanga.at/tools/piwik/");
|
||||
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
try {
|
||||
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 5);
|
||||
piwikTracker.trackPageView();
|
||||
piwikTracker.enableLinkTracking();
|
||||
} catch (err) {
|
||||
|
||||
}
|
||||
var _paq = _paq || [];
|
||||
_paq.push(["setCookieDomain", "*.kasu.at"]);
|
||||
_paq.push(['trackPageView']);
|
||||
_paq.push(['enableLinkTracking']);
|
||||
(function() {
|
||||
var u="//admin.animanga.at/tools/piwik/";
|
||||
_paq.push(['setTrackerUrl', u+'piwik.php']);
|
||||
_paq.push(['setSiteId', 5]);
|
||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
|
||||
})();
|
||||
</script>
|
||||
<noscript><p><img src="http://admin.animanga.at/tools/piwik/piwik.php?idsite=5" style="border:0" alt=""/></p></noscript>
|
||||
<noscript><p><img src="//admin.animanga.at/tools/piwik/piwik.php?idsite=5" style="border:0;" alt="" /></p></noscript>
|
||||
<!-- End Piwik Code -->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -4,44 +4,11 @@
|
||||
|
||||
{% block jumbotron_background %}{{ random_photo.url }}{% endblock %}
|
||||
|
||||
{% block teaser %}
|
||||
<h2>{{title}}</h2>
|
||||
<div id="teaser_text">{{content}}</div>
|
||||
{% endblock %}
|
||||
{% block title %}{% trans 'traditional Asian game culture' %}{% endblock %}
|
||||
|
||||
{% block redbox %}
|
||||
{% if current_event %}
|
||||
<h2>{% trans "Current Event" %}</h2>
|
||||
<h3>{{ current_event.name}}</h3>
|
||||
<p><img src="{{ STATIC_URL }}icons/date.png"/> {% trans "since" %}
|
||||
<time datetime="{{current_event.start|date:'Y-m-d H:i'}}">{{current_event.start|timesince}}</time>
|
||||
</p>
|
||||
<ul class="list">
|
||||
<li class="event"><strong>{% trans "Start" %}:</strong> {{current_event.start|date:'DATETIME_FORMAT'}}</li>
|
||||
<li class="location"><strong>{% trans "Location" %}:</strong> {{ current_event.location }}</li>
|
||||
</ul>
|
||||
<div style="text-align:right"><a class="button" href="{{current_event.get_absolute_url}}">{% trans "More Details" %}
|
||||
<img src="{{ STATIC_URL }}icons/date_go.png" alt="»" width="16" height="16"/></a></div>
|
||||
{% else %}
|
||||
<h2>{% trans "Next Event" %}</h2>
|
||||
<h3>{{ next_event.name}}</h3>
|
||||
<p><img src="{{ STATIC_URL }}icons/date.png" alt="" width="16" height="16"/> {% trans "in" %}
|
||||
<time datetime="{{next_event.start|date:'Y-m-d H:i'}}">{{next_event.start|timeuntil}}</time>
|
||||
</p>
|
||||
<ul class="list">
|
||||
<li class="event"><strong>{% trans "Start" %}:</strong> {{next_event.start|date:'DATETIME_FORMAT' }}</li>
|
||||
<li class="location"><strong>{% trans "Location" %}:</strong> {{ next_event.location }}</li>
|
||||
</ul>
|
||||
<div style="text-align:right"><a class="button" href="{{next_event.get_absolute_url}}">{% trans "More Details" %}
|
||||
<img src="{{ STATIC_URL }}icons/date_go.png" alt="»" width="16" height="16"/></a></div>
|
||||
{% endif %}
|
||||
<h3 class="clearfix">{% trans "Upcoming events" %} <a href="{% url 'events-ical' %}"><img
|
||||
src="{{STATIC_URL}}img/ical_feed.gif" alt="iCal Feed" title="iCal Feed" width="16" height="16"/></a></h3>
|
||||
<ul class="list">
|
||||
{% for event in upcoming_events %}
|
||||
<li class="event">{{event.start|date:'d. M:'}} <a href="{{ event.get_absolute_url}}">{{event.name}}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% block teaser %}
|
||||
<h1>{{title}}</h1>
|
||||
<div id="teaser_text">{{content}}</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block maincontent %}
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kasu.mahjong_ranking\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-09 20:35+0100\n"
|
||||
"POT-Creation-Date: 2014-12-14 01:12+0100\n"
|
||||
"PO-Revision-Date: 2014-12-08 16:18+0100\n"
|
||||
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
||||
"Language-Team: Kasu <verein@kasu.at>\n"
|
||||
@@ -120,7 +120,7 @@ msgstr "Veranstaltung existiert nicht"
|
||||
msgid "Season does not exist"
|
||||
msgstr "Saison existiert nicht"
|
||||
|
||||
#: views.py:301
|
||||
#: views.py:300
|
||||
#, python-format
|
||||
msgid "No user found matching the name %s"
|
||||
msgstr "Kein Benutzer mit dem Namen %s gefunden"
|
||||
|
||||
@@ -294,8 +294,7 @@ class PlayerScore(LoginRequiredMixin, generic.ListView):
|
||||
try:
|
||||
self.user = auth.get_user_model().objects.get(
|
||||
username=self.kwargs.get('username'))
|
||||
self.membership = Membership.objects.get_or_create(user=self.user)[
|
||||
0]
|
||||
self.membership = Membership.objects.get(user=self.user)
|
||||
except auth.get_user_model().DoesNotExist:
|
||||
raise django.http.Http404(
|
||||
_("No user found matching the name %s") % self.kwargs.get(
|
||||
|
||||
0
maistar_ranking/__init__.py
Normal file
64
maistar_ranking/admin.py
Normal file
@@ -0,0 +1,64 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
"""
|
||||
Created on 19.09.2011
|
||||
|
||||
@author: christian
|
||||
"""
|
||||
|
||||
from django.contrib import admin
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from . import forms, models
|
||||
|
||||
|
||||
def recalculate(modeladmin, request, queryset): # @UnusedVariable
|
||||
if isinstance(modeladmin, RankingAdmin):
|
||||
seasons = set()
|
||||
for ranking in queryset:
|
||||
ranking.recalculate()
|
||||
seasons.add(ranking.season)
|
||||
for season in seasons:
|
||||
models.Ranking.objects.calculate_rankings(season)
|
||||
|
||||
|
||||
recalculate.short_description = _("Recalculate")
|
||||
|
||||
|
||||
class RankingAdmin(admin.ModelAdmin):
|
||||
actions = [recalculate]
|
||||
list_display = (
|
||||
'season', 'placement', 'user', 'avg_placement', 'avg_score',
|
||||
'games_count', 'games_good', 'games_won'
|
||||
)
|
||||
list_display_links = ('user',)
|
||||
list_filter = ['season']
|
||||
|
||||
|
||||
class GameAdmin(admin.ModelAdmin):
|
||||
actions = [recalculate]
|
||||
# date_hierarchy = 'event__start'
|
||||
fields = (
|
||||
'event',
|
||||
('player1', 'player1_score', 'player1_placement'),
|
||||
('player2', 'player2_score', 'player2_placement'),
|
||||
('player3', 'player3_score', 'player3_placement'),
|
||||
('player4', 'player4_score', 'player4_placement'),
|
||||
('player5', 'player5_score', 'player5_placement'),
|
||||
('player6', 'player6_score', 'player6_placement'),
|
||||
'comment',
|
||||
'confirmed'
|
||||
)
|
||||
form = forms.GameForm
|
||||
list_display = ('event', 'season', 'player_names', 'comment', 'confirmed')
|
||||
readonly_fields = (
|
||||
'player1_placement', 'player2_placement', 'player3_placement',
|
||||
'player4_placement', 'player5_placement', 'player6_placement'
|
||||
)
|
||||
search_fields = [
|
||||
'player1__username', 'player2__username', 'player3__username',
|
||||
'player4__username', 'player5__username', 'player6__username'
|
||||
]
|
||||
|
||||
|
||||
admin.site.register(models.Game, GameAdmin)
|
||||
admin.site.register(models.Ranking, RankingAdmin)
|
||||
37
maistar_ranking/forms.py
Normal file
@@ -0,0 +1,37 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
__author__ = 'christian'
|
||||
|
||||
from django import forms
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from . import models
|
||||
|
||||
|
||||
class GameForm(forms.ModelForm):
|
||||
error_css_class = 'error'
|
||||
required_css_class = 'required'
|
||||
|
||||
class Meta(object):
|
||||
fields = [
|
||||
'player1', 'player1_score',
|
||||
'player2', 'player2_score',
|
||||
'player3', 'player3_score',
|
||||
'player4', 'player4_score',
|
||||
'player5', 'player5_score',
|
||||
'player6', 'player6_score',
|
||||
'comment'
|
||||
]
|
||||
model = models.Game
|
||||
|
||||
def clean(self):
|
||||
cleaned_data = super(GameForm, self).clean()
|
||||
players_in_game = set()
|
||||
for player_nr in (
|
||||
'player1', 'player2', 'player3', 'player4', 'player5', 'player6'):
|
||||
current_player = cleaned_data.get(player_nr)
|
||||
if current_player and current_player in players_in_game:
|
||||
msg = _("%s may only participate once." % current_player)
|
||||
self._errors[player_nr] = self.error_class([msg])
|
||||
del cleaned_data[player_nr]
|
||||
players_in_game.add(current_player)
|
||||
return cleaned_data
|
||||
BIN
maistar_ranking/locale/de/LC_MESSAGES/django.mo
Normal file
272
maistar_ranking/locale/de/LC_MESSAGES/django.po
Normal file
@@ -0,0 +1,272 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kasu.mahjong_ranking\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-14 01:12+0100\n"
|
||||
"PO-Revision-Date: 2014-12-11 22:47+0100\n"
|
||||
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
||||
"Language-Team: Kasu <verein@kasu.at>\n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 1.6.11\n"
|
||||
"X-Translated-Using: django-rosetta 0.7.2\n"
|
||||
|
||||
#: admin.py:24
|
||||
msgid "Recalculate"
|
||||
msgstr "Neuberechnen"
|
||||
|
||||
#: forms.py:33
|
||||
#, python-format
|
||||
msgid "%s may only participate once."
|
||||
msgstr "%s darf nur einmal teilnehmen."
|
||||
|
||||
#: models.py:20
|
||||
msgid "Comment"
|
||||
msgstr "Kommentar"
|
||||
|
||||
#: models.py:22
|
||||
msgid "Player 1"
|
||||
msgstr "Spieler 1"
|
||||
|
||||
#: models.py:24 models.py:30 models.py:36 models.py:42 models.py:48
|
||||
#: models.py:54 templates/maistar_ranking/ranking_list.html:20
|
||||
msgid "Score"
|
||||
msgstr "Punkte"
|
||||
|
||||
#: models.py:28
|
||||
msgid "Player 2"
|
||||
msgstr "Spieler 2"
|
||||
|
||||
#: models.py:34
|
||||
msgid "Player 3"
|
||||
msgstr "Spieler 3"
|
||||
|
||||
#: models.py:40
|
||||
msgid "Player 4"
|
||||
msgstr "Spieler 4"
|
||||
|
||||
#: models.py:46
|
||||
msgid "Player 5"
|
||||
msgstr "Spieler 5"
|
||||
|
||||
#: models.py:52
|
||||
msgid "Player 6"
|
||||
msgstr "Spieler 6"
|
||||
|
||||
#: models.py:58
|
||||
msgid "Has been confirmed"
|
||||
msgstr "Wurde bestätigt"
|
||||
|
||||
#: models.py:60
|
||||
msgid "the game only counts whe it has been confirmed"
|
||||
msgstr "das Spiel zählt nur wenn es bestätigt wurde"
|
||||
|
||||
#: models.py:63 models.py:151
|
||||
#: templates/maistar_ranking/player_game_list.html:6
|
||||
#: templates/maistar_ranking/ranking_list.html:4
|
||||
#: templates/maistar_ranking/ranking_list.html:71
|
||||
msgid "Season"
|
||||
msgstr "Saison"
|
||||
|
||||
#: models.py:69
|
||||
msgid "Mai-Star Game with {0} from {1:%Y-%m-%d}"
|
||||
msgstr "Mai-Star Spiel mit {0} vom {1:%Y-%m-%d}"
|
||||
|
||||
#: templates/maistar_ranking/game_form.html:5
|
||||
#: templates/maistar_ranking/game_form.html:16
|
||||
#: templates/maistar_ranking/game_list.html:27
|
||||
#: templates/maistar_ranking/player_game_list.html:46
|
||||
msgid "Edit Game"
|
||||
msgstr "Spiel bearbeiten"
|
||||
|
||||
#: templates/maistar_ranking/game_form.html:5
|
||||
#: templates/maistar_ranking/game_form.html:16
|
||||
#: templates/maistar_ranking/game_list.html:42
|
||||
msgid "Add Game"
|
||||
msgstr "Spiel hinzufügen"
|
||||
|
||||
#: templates/maistar_ranking/game_form.html:78
|
||||
msgid "Back"
|
||||
msgstr "Zurück"
|
||||
|
||||
#: templates/maistar_ranking/game_form.html:80
|
||||
msgid "Save"
|
||||
msgstr "Speichern"
|
||||
|
||||
#: templates/maistar_ranking/game_list.html:4
|
||||
#: templates/maistar_ranking/player_game_list.html:6
|
||||
msgid "Mai-Star Games"
|
||||
msgstr "Mai-Star Spiele"
|
||||
|
||||
#: templates/maistar_ranking/game_list.html:7
|
||||
msgid "Played Mai-Star Games"
|
||||
msgstr "Gespielte Mai-Star Spiele"
|
||||
|
||||
#: templates/maistar_ranking/game_list.html:12
|
||||
msgid "Game"
|
||||
msgstr "Spiel"
|
||||
|
||||
#: templates/maistar_ranking/game_list.html:15
|
||||
msgid "Place"
|
||||
msgstr "Platz"
|
||||
|
||||
#: templates/maistar_ranking/game_list.html:19
|
||||
#: templates/maistar_ranking/player_game_list.html:38
|
||||
msgid "Points"
|
||||
msgstr "Punkte"
|
||||
|
||||
#: templates/maistar_ranking/game_list.html:24
|
||||
#: templates/maistar_ranking/hanchan_confirm_delete.html:18
|
||||
#: templates/maistar_ranking/hanchan_confirm_delete.html:19
|
||||
#: templates/maistar_ranking/player_game_list.html:43
|
||||
msgid "Delete"
|
||||
msgstr "Löschen"
|
||||
|
||||
#: templates/maistar_ranking/game_list.html:24
|
||||
#: templates/maistar_ranking/player_game_list.html:43
|
||||
msgid "Delete Game"
|
||||
msgstr "Spiel löschen"
|
||||
|
||||
#: templates/maistar_ranking/game_list.html:27
|
||||
#: templates/maistar_ranking/player_game_list.html:46
|
||||
msgid "Edit"
|
||||
msgstr "Bearbeiten"
|
||||
|
||||
#: templates/maistar_ranking/game_list.html:32
|
||||
msgid "No Mai-Star games have been added to this event yet."
|
||||
msgstr "Für diese Veranstaltung wurden noch keine Mai-Star Spiele erfasst."
|
||||
|
||||
#: templates/maistar_ranking/game_list.html:40
|
||||
#: templates/maistar_ranking/game_list.html:42
|
||||
msgid "Add"
|
||||
msgstr "Hinzufügen"
|
||||
|
||||
#: templates/maistar_ranking/game_list.html:40
|
||||
msgid "Edit Event"
|
||||
msgstr "Veranstaltung bearbeiten"
|
||||
|
||||
#: templates/maistar_ranking/hanchan_confirm_delete.html:4
|
||||
#: templates/maistar_ranking/hanchan_confirm_delete.html:10
|
||||
msgid "Delete game"
|
||||
msgstr "Spiel löschen"
|
||||
|
||||
#: templates/maistar_ranking/hanchan_confirm_delete.html:14
|
||||
#: templates/maistar_ranking/hanchan_confirm_delete.html:15
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
|
||||
#: templates/maistar_ranking/page.html:5
|
||||
msgid "Archive"
|
||||
msgstr "Archiv"
|
||||
|
||||
#: templates/maistar_ranking/page.html:7
|
||||
msgid "Add Event"
|
||||
msgstr "Veranstaltung hinzufügen"
|
||||
|
||||
#: templates/maistar_ranking/player_game_list.html:4
|
||||
msgid "Ladder Score for"
|
||||
msgstr "Ladder Wertung für"
|
||||
|
||||
#: templates/maistar_ranking/player_game_list.html:10
|
||||
msgid "Mai-Star Games with"
|
||||
msgstr "Mai-Star Spiele mit"
|
||||
|
||||
#: templates/maistar_ranking/player_game_list.html:15
|
||||
msgid "Date"
|
||||
msgstr "Datum"
|
||||
|
||||
#: templates/maistar_ranking/player_game_list.html:16
|
||||
msgid "Event"
|
||||
msgstr "Veranstaltung"
|
||||
|
||||
#: templates/maistar_ranking/player_game_list.html:17
|
||||
msgid "Players"
|
||||
msgstr "Spieler"
|
||||
|
||||
#: templates/maistar_ranking/ranking_list.html:4
|
||||
msgid "Mai-Star Ranking"
|
||||
msgstr "Mai-Star Platzierung"
|
||||
|
||||
#: templates/maistar_ranking/ranking_list.html:11
|
||||
#: templates/maistar_ranking/ranking_list.html:19
|
||||
msgid "Placement"
|
||||
msgstr "Platzierung"
|
||||
|
||||
#: templates/maistar_ranking/ranking_list.html:12
|
||||
msgid "Avatar"
|
||||
msgstr "Avatar"
|
||||
|
||||
#: templates/maistar_ranking/ranking_list.html:13
|
||||
msgid "Nickname"
|
||||
msgstr "Spitzname"
|
||||
|
||||
#: templates/maistar_ranking/ranking_list.html:14
|
||||
msgid "Name"
|
||||
msgstr "Name"
|
||||
|
||||
#: templates/maistar_ranking/ranking_list.html:15
|
||||
msgid "Average"
|
||||
msgstr "Durchschnitt"
|
||||
|
||||
#: templates/maistar_ranking/ranking_list.html:16
|
||||
msgid "Games"
|
||||
msgstr "Spiele"
|
||||
|
||||
#: templates/maistar_ranking/ranking_list.html:21
|
||||
msgid "count"
|
||||
msgstr "Anzahl"
|
||||
|
||||
#: templates/maistar_ranking/ranking_list.html:22
|
||||
msgid "good"
|
||||
msgstr "Gut"
|
||||
|
||||
#: templates/maistar_ranking/ranking_list.html:23
|
||||
msgid "won"
|
||||
msgstr "Gewonnen"
|
||||
|
||||
#: templates/maistar_ranking/ranking_list.html:42
|
||||
msgid ""
|
||||
"Unfortunately, nobody has it been done in the ranking.\n"
|
||||
" A player must have 6 games done, to be added to the ranking."
|
||||
msgstr ""
|
||||
"Leider hat es noch niemand in die Wertung geschafft. Spieler, die weniger "
|
||||
"als 6 Spiele innerhalb einer Saison absolviert haben, werden für das "
|
||||
"Endergebnis nicht gewertet."
|
||||
|
||||
#: templates/maistar_ranking/ranking_list.html:52
|
||||
msgid "Latest Games"
|
||||
msgstr "Letzten Spiele"
|
||||
|
||||
#: templates/maistar_ranking/ranking_list.html:62
|
||||
msgid "Latest Events"
|
||||
msgstr "Letzten Veranstaltungen"
|
||||
|
||||
#: templates/maistar_ranking/ranking_list.html:69
|
||||
msgid "Ladder Archive"
|
||||
msgstr "Archiv"
|
||||
|
||||
#~ msgid "Player List"
|
||||
#~ msgstr "Spieler Liste"
|
||||
|
||||
#~ msgid "Full Name"
|
||||
#~ msgstr "Voller Name"
|
||||
|
||||
#~ msgid "Rank"
|
||||
#~ msgstr "Rang"
|
||||
|
||||
#~ msgid "Games Total"
|
||||
#~ msgstr "Spiele Gesamt"
|
||||
|
||||
#~ msgid "Event does not exist"
|
||||
#~ msgstr "Termin existiert nicht."
|
||||
|
||||
#~ msgid "No user found matching the name %s"
|
||||
#~ msgstr "Kein Benutzer mit dem Namen %s gefunden."
|
||||
60
maistar_ranking/managers.py
Normal file
@@ -0,0 +1,60 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
"""
|
||||
Created on 22.11.2014
|
||||
|
||||
@author: christian
|
||||
"""
|
||||
from django.db import models
|
||||
|
||||
from . import settings
|
||||
|
||||
|
||||
class GameManager(models.Manager):
|
||||
use_for_related_fields = True
|
||||
|
||||
def player_games(self, player, season=None, **kwargs):
|
||||
queryset = self.filter(
|
||||
models.Q(player1=player) | models.Q(player2=player) |
|
||||
models.Q(player3=player) | models.Q(player4=player) |
|
||||
models.Q(player5=player) | models.Q(player6=player)
|
||||
)
|
||||
if season:
|
||||
queryset = queryset.filter(season=season)
|
||||
if kwargs:
|
||||
queryset = queryset.filter(**kwargs)
|
||||
return queryset
|
||||
|
||||
|
||||
class LadderManager(models.Manager):
|
||||
use_for_related_fields = True
|
||||
|
||||
def calculate_rankings(self, season):
|
||||
"""
|
||||
Berechnet die Jahresrankings für die Spieler neu.
|
||||
@param season: Das Jahr das neu berechnet werden soll
|
||||
@type season: Integer
|
||||
"""
|
||||
rankings = self.filter(season=season)
|
||||
rankings.update(placement=None)
|
||||
rankings = rankings.filter(
|
||||
games_count__gte=settings.MAISTAR_GAMES_FOR_LADDERRANKING) # @IgnorePep8
|
||||
rankings = rankings.order_by('avg_placement', '-avg_score')
|
||||
placement = 1
|
||||
previous_avg_placement = None
|
||||
previous_avg_score = None
|
||||
previous_placement = None
|
||||
for ranking in rankings:
|
||||
if ranking.avg_placement == previous_avg_placement \
|
||||
and ranking.avg_score == previous_avg_score:
|
||||
ranking.placement = previous_placement
|
||||
else:
|
||||
ranking.placement = placement
|
||||
ranking.save(force_update=True)
|
||||
previous_avg_placement = ranking.avg_placement
|
||||
previous_avg_score = ranking.avg_score
|
||||
previous_placement = ranking.placement
|
||||
placement += 1
|
||||
|
||||
def get_seasons(self):
|
||||
return self.values_list('season', flat=True).order_by(
|
||||
'season').distinct()
|
||||
221
maistar_ranking/models.py
Normal file
@@ -0,0 +1,221 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
|
||||
import logging
|
||||
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.db import models
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from events.models import Event
|
||||
from membership.models import Membership
|
||||
from . import settings, managers
|
||||
|
||||
|
||||
class Game(models.Model):
|
||||
"""
|
||||
Ein kompettes Spiel Mai-Star bestehend aus 6 Spielern
|
||||
"""
|
||||
|
||||
event = models.ForeignKey(Event, related_name='maistargame_set')
|
||||
comment = models.TextField(_('Comment'), blank=True)
|
||||
player1 = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL, verbose_name=_("Player 1"), related_name='+'
|
||||
)
|
||||
player1_score = models.SmallIntegerField(_("Score"))
|
||||
player1_placement = models.PositiveSmallIntegerField(editable=False)
|
||||
|
||||
player2 = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL, verbose_name=_("Player 2"), related_name='+'
|
||||
)
|
||||
player2_score = models.SmallIntegerField(_("Score"))
|
||||
player2_placement = models.PositiveSmallIntegerField(editable=False)
|
||||
|
||||
player3 = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL, verbose_name=_("Player 3"), related_name='+'
|
||||
)
|
||||
player3_score = models.SmallIntegerField(_("Score"))
|
||||
player3_placement = models.PositiveSmallIntegerField(editable=False)
|
||||
|
||||
player4 = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL, verbose_name=_("Player 4"), related_name='+'
|
||||
)
|
||||
player4_score = models.SmallIntegerField(_("Score"))
|
||||
player4_placement = models.PositiveSmallIntegerField(editable=False)
|
||||
|
||||
player5 = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL, verbose_name=_("Player 5"), related_name='+'
|
||||
)
|
||||
player5_score = models.SmallIntegerField(_("Score"))
|
||||
player5_placement = models.PositiveSmallIntegerField(editable=False)
|
||||
|
||||
player6 = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL, verbose_name=_("Player 6"), related_name='+'
|
||||
)
|
||||
player6_score = models.SmallIntegerField(_("Score"))
|
||||
player6_placement = models.PositiveSmallIntegerField(editable=False)
|
||||
|
||||
confirmed = models.BooleanField(
|
||||
_('Has been confirmed'),
|
||||
default=True,
|
||||
help_text=_('the game only counts whe it has been confirmed')
|
||||
)
|
||||
player_names = models.CharField(max_length=255, editable=False)
|
||||
season = models.PositiveSmallIntegerField(_('Season'), editable=False,
|
||||
db_index=True)
|
||||
|
||||
objects = managers.GameManager()
|
||||
|
||||
def __str__(self):
|
||||
return _("Mai-Star Game with {0} from {1:%Y-%m-%d}").format(
|
||||
self.player_names, self.event.start
|
||||
)
|
||||
|
||||
def get_absolute_url(self):
|
||||
"""
|
||||
URL zur Hanchanliste des Events wo diese Hanchan gelistet wurde.
|
||||
"""
|
||||
url = reverse('maistar-game-list',
|
||||
kwargs={'event': self.event.pk})
|
||||
return u'%(url)s#%(pk)d' % {'url': url, 'pk': self.pk}
|
||||
|
||||
@property
|
||||
def player_list(self):
|
||||
try:
|
||||
return self._player_list
|
||||
except AttributeError:
|
||||
self._player_list = list()
|
||||
for nr in range(1, 7):
|
||||
self._player_list.append({
|
||||
'user': getattr(self, 'player%d' % nr),
|
||||
'membership': Membership.objects.get(
|
||||
user=getattr(self, 'player%d' % nr)
|
||||
),
|
||||
'score': getattr(self, 'player%d_score' % nr),
|
||||
'placement': getattr(self, 'player%d_placement' % nr),
|
||||
})
|
||||
return self._player_list
|
||||
|
||||
def save(self, force_insert=False, force_update=False, using=None,
|
||||
update_fields=None):
|
||||
u"""
|
||||
Bestimmt die Platzierung eines jeden Spielers noch vor dem speichern.
|
||||
Außerdem wird eine Kommasperierte Liste der Spiele mitgespeichert.
|
||||
"""
|
||||
logging.debug("Berechne die Platzierungen neu...")
|
||||
game_date = self.event.start.date()
|
||||
player_tuples = [
|
||||
(self.player1.id, self.player1.username, self.player1_score),
|
||||
(self.player2.id, self.player2.username, self.player2_score),
|
||||
(self.player3.id, self.player3.username, self.player3_score),
|
||||
(self.player4.id, self.player4.username, self.player4_score),
|
||||
(self.player5.id, self.player5.username, self.player5_score),
|
||||
(self.player6.id, self.player6.username, self.player6_score),
|
||||
]
|
||||
season_start = settings.MAISTAR_SEASON_START.replace(
|
||||
year=game_date.year)
|
||||
|
||||
# sort player by Score:
|
||||
player_tuples = sorted(player_tuples, key=lambda player: player[2],
|
||||
reverse=True)
|
||||
logging.debug(player_tuples)
|
||||
other_player_ranking = 1
|
||||
other_player_score = 0
|
||||
player_names = []
|
||||
ranking = 1
|
||||
player_nr = 1
|
||||
for player_id, player_name, player_score in player_tuples:
|
||||
if player_score == other_player_score:
|
||||
player_ranking = other_player_ranking
|
||||
else:
|
||||
player_ranking = ranking
|
||||
setattr(self, "player%d_id" % player_nr, player_id)
|
||||
setattr(self, "player%d_score" % player_nr, player_score)
|
||||
setattr(self, "player%d_placement" % player_nr, player_ranking)
|
||||
other_player_ranking = player_ranking
|
||||
other_player_score = player_score
|
||||
player_names.append(player_name)
|
||||
player_nr += 1
|
||||
ranking += 1
|
||||
self.player_names = ', '.join(player_names)
|
||||
if game_date >= season_start:
|
||||
self.season = season_start.year
|
||||
else:
|
||||
self.season = season_start.year - 1
|
||||
super(Game, self).save(force_insert=force_insert,
|
||||
force_update=force_update, using=using,
|
||||
update_fields=update_fields)
|
||||
|
||||
|
||||
class Ranking(models.Model):
|
||||
user = models.ForeignKey(settings.AUTH_USER_MODEL)
|
||||
season = models.PositiveSmallIntegerField(_("Season"))
|
||||
placement = models.PositiveIntegerField(blank=True, null=True)
|
||||
avg_placement = models.PositiveSmallIntegerField(blank=True, null=True)
|
||||
avg_score = models.SmallIntegerField(blank=True, null=True)
|
||||
games_count = models.PositiveSmallIntegerField(default=0)
|
||||
games_good = models.PositiveSmallIntegerField(default=0)
|
||||
games_won = models.PositiveSmallIntegerField(default=0)
|
||||
objects = managers.LadderManager()
|
||||
|
||||
class Meta(object):
|
||||
ordering = ('-season', 'placement', 'avg_placement', '-avg_score',)
|
||||
|
||||
def __str__(self):
|
||||
return "Mai-Star Ranking: %s, Season: %d" % (self.user, self.season)
|
||||
|
||||
def get_absolute_url(self):
|
||||
return reverse('maistar-player-games', kwargs={
|
||||
'username': self.user.username,
|
||||
'season': self.season
|
||||
})
|
||||
|
||||
def recalculate(self):
|
||||
logging.info(
|
||||
u'Recalculate Mai-Star Ranking for Player %s in Season %s',
|
||||
self.user, self.season
|
||||
)
|
||||
self.placement = None
|
||||
self.avg_placement = None
|
||||
self.avg_score = None
|
||||
self.games_count = 0
|
||||
self.games_good = 0
|
||||
self.games_won = 0
|
||||
player_score = 0
|
||||
player_placement = 0
|
||||
for game in Game.objects.player_games(self.user, self.season):
|
||||
placement = 0
|
||||
score = 0
|
||||
for player in ('player1', 'player2', 'player3', 'player4',
|
||||
'player5', 'player6'):
|
||||
if getattr(game, player) == self.user:
|
||||
placement = getattr(game, "%s_placement" % player)
|
||||
score = getattr(game, "%s_score" % player)
|
||||
player_placement += placement
|
||||
player_score += score
|
||||
self.games_count += 1
|
||||
self.games_good += 1 if placement <= 3 else 0
|
||||
self.games_won += 1 if placement == 1 else 0
|
||||
if self.games_count > 0:
|
||||
self.avg_placement = round(player_placement / self.games_count)
|
||||
self.avg_score = round(player_score / self.games_count)
|
||||
self.save()
|
||||
|
||||
|
||||
def update_maistar_ranking(sender, instance, **kwargs):
|
||||
for player in instance.player_list:
|
||||
ranking, created = Ranking.objects.get_or_create(
|
||||
user=player['user'],
|
||||
season=instance.season
|
||||
)
|
||||
if created:
|
||||
logging.debug('Created ranking for %s in Season %d',
|
||||
player['user'].username, instance.season)
|
||||
else:
|
||||
logging.debug('Updating ranking for %s in Season %d',
|
||||
player['user'].username, instance.season)
|
||||
ranking.recalculate()
|
||||
Ranking.objects.calculate_rankings(instance.season)
|
||||
|
||||
|
||||
models.signals.post_delete.connect(update_maistar_ranking, sender=Game)
|
||||
models.signals.post_save.connect(update_maistar_ranking, sender=Game)
|
||||
24
maistar_ranking/settings.py
Normal file
@@ -0,0 +1,24 @@
|
||||
"""
|
||||
Global Settings for the Maistar Ranking System
|
||||
|
||||
Created on 22.11.2014
|
||||
|
||||
@author: christian
|
||||
"""
|
||||
|
||||
from datetime import date
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
|
||||
AUTH_USER_MODEL = settings.AUTH_USER_MODEL
|
||||
|
||||
MAISTAR_GAMES_FOR_LADDERRANKING = getattr(
|
||||
settings, 'MAISTAR_GAMES_FOR_LADDERRANKING', 6
|
||||
)
|
||||
|
||||
MAISTAR_SEASON_START = getattr(
|
||||
settings, 'MAISTAR_SEASON_START', date(year=1, month=8, day=1)
|
||||
)
|
||||
|
||||
|
||||
87
maistar_ranking/templates/maistar_ranking/game_form.html
Normal file
@@ -0,0 +1,87 @@
|
||||
{% extends "events/event_detail.html" %}
|
||||
{% load i18n comments fieldset_extras %}
|
||||
|
||||
{% block title %}
|
||||
{% if game.id %}{% trans "Edit Game" %}{% else %}{% trans "Add Game" %}{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block maincontent %}
|
||||
{% for error in form.errors %}<p class="error">{{error}}</p>{% endfor %}
|
||||
|
||||
{% for error in form.non_field_errors %}<p class="error">{{error}}</p>{% endfor %}
|
||||
|
||||
<form class="grid_12" method="post">
|
||||
{% csrf_token %}
|
||||
<fieldset>
|
||||
<legend>{% if game.id %}{% trans "Edit Game" %}{% else %} {% trans "Add Game" %}{% endif %}</legend>
|
||||
|
||||
<p>
|
||||
<label for="id_player1" class="field_name {{ form.player1.css_classes }}">{{ form.player1.label }}</label>
|
||||
{{ form.player1 }}
|
||||
<label for="id_player1_score" class="{{ form.player1_score.css_classes }}">{{ form.player1_score.label }}</label>
|
||||
{{ form.player1_score}}
|
||||
</p>
|
||||
{% if form.player1.errors %}{{ form.player1.errors }}{% endif %}
|
||||
{% if form.player1_score.errors %}{{ form.player1_score.errors }}{% endif %}
|
||||
<p>
|
||||
<label for="id_player2" class="field_name {{ form.player2.css_classes }}">{{ form.player2.label }}</label>
|
||||
{{ form.player2 }}
|
||||
<label for="id_player2_score" class="{{ form.player2_score.css_classes }}">{{ form.player2_score.label }}</label>
|
||||
{{ form.player2_score}}
|
||||
</p>
|
||||
{% if form.player2.errors %}{{ form.player2.errors }}{% endif %}
|
||||
{% if form.player2_score.errors %}{{ form.player2_score.errors }}{% endif %}
|
||||
|
||||
<p>
|
||||
<label for="id_player3" class="field_name {{ form.player3.css_classes }}">{{ form.player3.label }}</label>
|
||||
{{ form.player3 }}
|
||||
<label for="id_player3_score" class="{{ form.player3_score.css_classes }}">{{ form.player3_score.label }}</label>
|
||||
{{ form.player3_score}}
|
||||
</p>
|
||||
{% if form.player3.errors %}{{ form.player3.errors }}{% endif %}
|
||||
{% if form.player3_score.errors %}{{ form.player3_score.errors }}{% endif %}
|
||||
|
||||
<p>
|
||||
<label for="id_player4" class="field_name {{ form.player4.css_classes }}">{{ form.player4.label }}</label>
|
||||
{{ form.player4 }}
|
||||
<label for="id_player4_score" class="{{ form.player4_score.css_classes }}">{{ form.player4_score.label }}</label>
|
||||
{{ form.player4_score}}
|
||||
</p>
|
||||
{% if form.player4.errors %}{{ form.player4.errors }}{% endif %}
|
||||
{% if form.player4_score.errors %}{{ form.player4_score.errors }}{% endif %}
|
||||
|
||||
<p>
|
||||
<label for="id_player5" class="field_name {{ form.player5.css_classes }}">{{ form.player5.label }}</label>
|
||||
{{ form.player5 }}
|
||||
<label for="id_player5_score" class="{{ form.player5_score.css_classes }}">{{ form.player5_score.label }}</label>
|
||||
{{ form.player5_score}}
|
||||
</p>
|
||||
{% if form.player5.errors %}{{ form.player5.errors }}{% endif %}
|
||||
{% if form.player5_score.errors %}{{ form.player5_score.errors }}{% endif %}
|
||||
|
||||
<p>
|
||||
<label for="id_player6" class="field_name {{ form.player6.css_classes }}">{{ form.player6.label }}</label>
|
||||
{{ form.player6 }}
|
||||
<label for="id_player6_score" class="{{ form.player6_score.css_classes }}">{{ form.player6_score.label }}</label>
|
||||
{{ form.player6_score}}
|
||||
</p>
|
||||
{% if form.player6.errors %}{{ form.player6.errors }}{% endif %}
|
||||
{% if form.player6_score.errors %}{{ form.player6_score.errors }}{% endif %}
|
||||
|
||||
<p>
|
||||
<label for="id_comment" class="field_name {{ form.comment.css_classes }}">{{ form.comment.label }}</label>
|
||||
{{ form.comment }}
|
||||
</p>
|
||||
<p class="buttonbar">
|
||||
<a href="{{game.get_absolute_url}}" class="button"><img
|
||||
src="{{STATIC_URL}}icons/arrow_undo.png"
|
||||
alt="{% trans 'Back' %}"/> {% trans 'Back' %}</a>
|
||||
<button type="submit"><img src="{{STATIC_URL}}icons/table_save.png"
|
||||
alt="{% trans 'Save' %}"/> {% trans 'Save' %}
|
||||
</button>
|
||||
</p>
|
||||
</fieldset>
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
{% block buttonbar %}{% endblock %}
|
||||
44
maistar_ranking/templates/maistar_ranking/game_list.html
Normal file
@@ -0,0 +1,44 @@
|
||||
{% extends "events/event_detail.html" %}
|
||||
{% load i18n humanize %}
|
||||
|
||||
{% block title %}{% trans 'Mai-Star Games' %} - {{ event.name }}{% endblock %}
|
||||
|
||||
{% block maincontent %}
|
||||
<h2 class="grid_12">{% trans 'Played Mai-Star Games' %}</h2>
|
||||
<p> </p>
|
||||
{% for game in game_list %}
|
||||
<article id="{{ game.pk }}">
|
||||
|
||||
<h3 class="grid_12">{{ forloop.counter|ordinal }} {% trans 'Game' %}</h3>
|
||||
{% for player in game.player_list %}
|
||||
<div class="grid_2 center">
|
||||
<h4>{{ player.placement|ordinal }} {% trans 'Place' %}</h4>
|
||||
<a href="{% url 'maistar-player-games' username=player.user.username season=game.season %}"><img
|
||||
src="{% if player.membership.thumbnail %}{{player.membership.thumbnail.url}}{% else %}{{STATIC_URL}}img/unknown_thumbnail.png{% endif %}" alt=""/></a>
|
||||
<p><a href="{% url 'maistar-player-games' username=player.user.username season=game.season %}">{{player.user.username}}</a><br/>
|
||||
{{player.score}} {% trans 'Points' %}</p>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<div class="grid_12 buttonbar">
|
||||
{% if perms.maistar_ranking.delete_dame %}
|
||||
<a class="button" href="{% url 'maistar-delete-game' game.pk %}"><img src="{{STATIC_URL}}icons/table_delete.png" alt="{% trans 'Delete' %}"/> {% trans 'Delete Game' %}</a>
|
||||
{% endif %}
|
||||
{% if perms.maistar_ranking.change_game %}
|
||||
<a class="button" href="{% url 'maistar-edit-game' game.pk %}"><img src="{{STATIC_URL}}icons/table_edit.png" alt="{% trans 'Edit' %}" /> {% trans 'Edit Game' %}</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</article>
|
||||
{% empty %}
|
||||
<p class="grid_12">{% trans 'No Mai-Star games have been added to this event yet.'%}</p>
|
||||
{% endfor %}
|
||||
<p> </p>
|
||||
{% endblock %}
|
||||
|
||||
{% block buttonbar %}
|
||||
{% if perms.maistar_ranking.add_game %}
|
||||
<a class="button" href="{{event.get_edit_url}}"><img src="{{STATIC_URL}}icons/calendar_edit.png"
|
||||
alt="{% trans 'Add' %}"/> {% trans 'Edit Event' %}</a>
|
||||
<a class="button" href="{% url 'maistar-add-game' event.id %}"><img src="{{STATIC_URL}}icons/add.png"
|
||||
alt="{% trans 'Add' %}"/> {% trans 'Add Game' %}</a>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,26 @@
|
||||
{% extends "base.html" %}
|
||||
{% load i18n comments %}
|
||||
|
||||
{% block meta_title %}{% trans 'Delete game' %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
<fieldset>
|
||||
<legend>{% trans "Delete game" %}</legend>
|
||||
{% include 'form.html' %}
|
||||
<p class="buttonbar">
|
||||
<button type="button" onclick="window.history.back()">
|
||||
<img src="{{STATIC_URL}}icons/cancel.png" alt="{% trans 'Cancel' %}"/>
|
||||
{% trans 'Cancel' %}
|
||||
</button>
|
||||
<button type="submit">
|
||||
<img src="{{STATIC_URL}}icons/table_delete.png" alt="{% trans 'Delete' %}"/>
|
||||
{% trans 'Delete' %}
|
||||
</button>
|
||||
</p>
|
||||
</fieldset>
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
{% block buttonbar %}{% endblock %}
|
||||
9
maistar_ranking/templates/maistar_ranking/page.html
Normal file
@@ -0,0 +1,9 @@
|
||||
{% extends "base.html" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block additional_nav_elements %}
|
||||
<a href="{% url 'season_ranking-archive' %}" class="{% if is_archive %}active{% endif %}">{% trans 'Archive' %}</a>
|
||||
{% if perms.events.add_event %}
|
||||
<a href="{% url 'event-form' %}" class="{% ifequal request.path '/events/add/' %}active{% endifequal %}">{% trans 'Add Event' %}</a>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,55 @@
|
||||
{% extends "membership/membership_detail.html" %}
|
||||
{% load i18n humanize %}
|
||||
|
||||
{% block title %} {% trans 'Ladder Score for' %} {{membership.user.username}} {% endblock %}
|
||||
|
||||
{% block teaser %} <h2>{% trans 'Mai-Star Games' %}: {{membership.user.username}} <br/> {% trans 'Season' %} {{season}}</h2> {% endblock %}
|
||||
|
||||
{% block score_list %}
|
||||
<div class="grid_12">
|
||||
<h2>{% trans 'Mai-Star Games with' %} {{ membership.user.username }} - {{season}}</h2>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th rowspan="2">{% trans 'Date' %}</th>
|
||||
<th rowspan="2">{% trans 'Event' %}</th>
|
||||
<th colspan="6">{% trans 'Players' %}</th>
|
||||
<th rowspan="2"></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{ '1'|ordinal }}</th>
|
||||
<th>{{ '2'|ordinal }}</th>
|
||||
<th>{{ '3'|ordinal }}</th>
|
||||
<th>{{ '4'|ordinal }}</th>
|
||||
<th>{{ '5'|ordinal }}</th>
|
||||
<th>{{ '6'|ordinal }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for game in game_list %}
|
||||
<tr>
|
||||
<td class="center">{{ game.event.start|date:'SHORT_DATE_FORMAT' }}</td>
|
||||
<td><a href="{{ game.get_absolute_url }}">{{ game.event.name }}</a></td>
|
||||
</td>
|
||||
{% for player in game.player_list %}
|
||||
<td class="center">
|
||||
<a href="{% url 'maistar-player-games' username=player.user.username season=season %}">{{ player.user.username }}</a>
|
||||
<br/>{{player.score}} {% trans 'Points' %}
|
||||
</td>
|
||||
{% endfor %}
|
||||
<td>
|
||||
{% if perms.maistar_ranking.delete_game %}
|
||||
<a href="{% url 'maistar-delete-game' game.pk %}"><img src="{{STATIC_URL}}icons/table_delete.png" alt="{% trans 'Delete' %}" title="{% trans 'Delete Game' %}"/></a>
|
||||
{% endif %}
|
||||
{% if perms.maistar_ranking.change_game %}
|
||||
<a href="{% url 'maistar-edit-game' game.pk %}"><img src="{{STATIC_URL}}icons/table_edit.png" alt="{% trans 'Edit' %}" title="{% trans 'Edit Game' %}"/></a>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
{% endblock %}
|
||||
79
maistar_ranking/templates/maistar_ranking/ranking_list.html
Normal file
@@ -0,0 +1,79 @@
|
||||
{% extends "base.html" %}
|
||||
{% load i18n comments humanize %}
|
||||
|
||||
{% block teaser %} <h2>{% trans 'Mai-Star Ranking' %} - {% trans 'Season' %} {{season}}</h2> {% endblock %}
|
||||
|
||||
{% block maincontent %}
|
||||
<main class="grid_12">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th rowspan="2">{% trans "Placement" %}</th>
|
||||
<th rowspan="2">{% trans "Avatar" %}</th>
|
||||
<th rowspan="2">{% trans "Nickname" %}</th>
|
||||
<th rowspan="2">{% trans "Name" %}</th>
|
||||
<th colspan="2">{% trans 'Average' %}</th>
|
||||
<th colspan="3">{% trans 'Games' %}</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{% trans 'Placement' %}</th>
|
||||
<th>{% trans "Score" %}</th>
|
||||
<th>{% trans "count" %}</th>
|
||||
<th>{% trans "good" %}</th>
|
||||
<th>{% trans "won" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
{% for player in ranking_list %}
|
||||
{% with player.user.get_profile as profile %}
|
||||
<tr>
|
||||
<td class="center">{{ player.placement|ordinal }}</td>
|
||||
<td><a href="{{ player.get_absolute_url }}"><img src="{% if profile.thumbnail %}{{profile.thumbnail.url}}{% else %}{{STATIC_URL}}img/unknown_thumbnail.png{% endif %}" class="avatar" alt="{{ player.user }}"/></a></td>
|
||||
<td><a href="{{ player.get_absolute_url }}">{{player.user}}</a></td>
|
||||
<td>{% if user.is_authenticated %}{{profile.last_name}} {{profile.first_name}}{% else %} ---{% endif %}</td>
|
||||
<td class="right">{{player.avg_placement|floatformat:0 }}</td>
|
||||
<td class="right">{{player.avg_score|intcomma }}</td>
|
||||
<td class="right">{{player.games_count}}</td>
|
||||
<td class="right">{{player.games_good}}</td>
|
||||
<td class="right">{{player.games_won}}</td>
|
||||
</tr>
|
||||
{% endwith %}
|
||||
{% empty %}
|
||||
<tr>
|
||||
<td colspan="8">{% blocktrans %}Unfortunately, nobody has it been done in the ranking.
|
||||
A player must have 6 games done, to be added to the ranking.{% endblocktrans %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</main>
|
||||
{% endblock %}
|
||||
|
||||
{% block redbox %}
|
||||
<h2>{% trans 'Latest Games' %}</h2>
|
||||
<ul class="list">
|
||||
{% for game in latest_games %}
|
||||
<li class="hanchan">
|
||||
<a href="{% url 'maistar-game-list' game.event.pk %}">{{game.event.start|date:'SHORT_DATE_FORMAT'}}:</a>
|
||||
<small>{{game.player_names}}</small>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
<h3>{% trans 'Latest Events' %}</h3>
|
||||
<ul class="list">
|
||||
{% for event in latest_events %}
|
||||
<li class="event"><a href="{% url 'maistar-game-list' event.pk %}">{{event.name}}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
<h3>{% trans 'Ladder Archive' %}</h3>
|
||||
<form name="season_select">
|
||||
<label for="season">{% trans 'Season' %}</label>
|
||||
<select id="season" name="season" size="1" onChange="window.location.href = document.season_select.season.options[document.season_select.season.selectedIndex].value;">
|
||||
{% for season_link in season_list%}
|
||||
<option value="{% url 'maistar-ranking' season=season_link %}" {% ifequal season season_link %}selected="selected"{% endifequal %}>{{ season_link }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
32
maistar_ranking/urls.py
Normal file
@@ -0,0 +1,32 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
"""
|
||||
Created on 03.10.2011
|
||||
|
||||
@author: christian
|
||||
"""
|
||||
from django.conf.urls import * # @UnusedWildImport
|
||||
from django.views.generic import RedirectView
|
||||
from .views import DeleteGame, ListGames, ListPlayerGames, \
|
||||
ListRankings, GameForm
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
'maistar_ranking.views',
|
||||
url('^$', RedirectView.as_view(pattern_name='maistar-ranking')),
|
||||
url(r'ranking/$', ListRankings.as_view(), name="maistar-ranking"),
|
||||
url(r'ranking/(?P<season>[\d]+)/$', ListRankings.as_view(),
|
||||
name="maistar-ranking"), # @IgnorePep8
|
||||
url(r'event/(?P<event>[\d]+)/$', ListGames.as_view(),
|
||||
name="maistar-game-list"), # @IgnorePep8
|
||||
url(r'event/(?P<event>[\d]+)/add/$', GameForm.as_view(),
|
||||
name="maistar-add-game"), # @IgnorePep8
|
||||
url(r'game/(?P<game>[\d]+)/edit/$', GameForm.as_view(),
|
||||
name="maistar-edit-game"), # @IgnorePep8
|
||||
url(r'game/(?P<game>[\d]+)/delete/$', DeleteGame.as_view(),
|
||||
name="maistar-delete-game"), # @IgnorePep8
|
||||
url(r'player/(?P<username>[\-\.\d\w]+)/$', ListPlayerGames.as_view(),
|
||||
name="maistar-player-games"), # @IgnorePep8
|
||||
url(r'player/(?P<username>[\-\.\d\w]+)/(?P<season>[\d]+)/$',
|
||||
ListPlayerGames.as_view(), name="maistar-player-games"), # @IgnorePep8
|
||||
|
||||
)
|
||||
121
maistar_ranking/views.py
Normal file
@@ -0,0 +1,121 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
|
||||
from datetime import date
|
||||
|
||||
from django.contrib import auth
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.shortcuts import get_object_or_404
|
||||
from django.utils.translation import gettext as _
|
||||
from django.views import generic
|
||||
|
||||
from events.models import Event
|
||||
from events.views import EventDetailMixin
|
||||
from membership.models import Membership
|
||||
from utils.mixins import LoginRequiredMixin, PermissionRequiredMixin
|
||||
from mahjong_ranking.views import PlayerScore
|
||||
from . import forms, models
|
||||
|
||||
|
||||
class GameForm(EventDetailMixin, PermissionRequiredMixin, generic.UpdateView):
|
||||
model = models.Game
|
||||
permission_required = 'maistar_ranking.add_game'
|
||||
form_class = forms.GameForm
|
||||
|
||||
def get_object(self, queryset=None):
|
||||
if 'game' in self.kwargs:
|
||||
game = get_object_or_404(models.Game, pk=self.kwargs['game'])
|
||||
elif 'event' in self.kwargs:
|
||||
self.event = get_object_or_404(Event, pk=self.kwargs['event'])
|
||||
game = models.Game(event=self.event)
|
||||
return game
|
||||
|
||||
|
||||
class DeleteGame(EventDetailMixin, PermissionRequiredMixin, generic.DeleteView):
|
||||
"""
|
||||
Fragt zuerst nach, ob die Hanchan wirklich gelöscht werden soll.
|
||||
Wir die Frage mit "Ja" beantwortet, wird die die Hanchan gelöscht.
|
||||
"""
|
||||
model = models.Game
|
||||
permission_required = 'maistar_ranking.delete_game'
|
||||
pk_url_kwarg = 'hanchan'
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse(
|
||||
'maistar_ranking-game-list',
|
||||
kwargs={'event': self.object.event.pk}
|
||||
)
|
||||
|
||||
|
||||
class UpdateGame(EventDetailMixin, PermissionRequiredMixin, generic.UpdateView):
|
||||
"""
|
||||
Ein Formular um eine neues Spiel anzulegen, bzw. eine bestehendes zu
|
||||
bearbeiten.
|
||||
"""
|
||||
model = models.Game
|
||||
permission_required = 'maistar_ranking.update_game'
|
||||
|
||||
def get_object(self, queryset=None): # @UnusedVariable
|
||||
game = models.Game.objects.get(id=self.kwargs['game'])
|
||||
self.event = game.event
|
||||
return game
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = generic.UpdateView.get_context_data(self, **kwargs)
|
||||
context['event'] = self.event
|
||||
return context
|
||||
|
||||
|
||||
class ListGames(EventDetailMixin, generic.ListView):
|
||||
"""
|
||||
Auflistung aller Spiele welche während einer Veranstaltung gespielt wurden.
|
||||
"""
|
||||
model = models.Game
|
||||
|
||||
def get_queryset(self):
|
||||
self.event = get_object_or_404(models.Event, pk=self.kwargs['event'])
|
||||
return models.Game.objects.filter(event=self.event).select_related()
|
||||
|
||||
|
||||
class ListPlayerGames(PlayerScore):
|
||||
template_name = 'maistar_ranking/player_game_list.html'
|
||||
paginate_by = 25
|
||||
context_object_name = 'game_list'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(ListPlayerGames, self).get_context_data()
|
||||
context['membership'] = Membership.objects.get(user=self.user)
|
||||
context['season_list'] = models.Ranking.objects.filter(user=self.user).values_list('season', flat=True)
|
||||
context['season'] = self.season
|
||||
return context
|
||||
|
||||
def get_queryset(self, **kwargs):
|
||||
self.user = get_object_or_404(auth.get_user_model(),
|
||||
username=self.kwargs.get('username'))
|
||||
self.season = self.kwargs.get('season', date.today().year)
|
||||
return models.Game.objects.player_games(player=self.user,
|
||||
season=self.season)
|
||||
|
||||
|
||||
class ListRankings(generic.ListView):
|
||||
model = models.Ranking
|
||||
paginate_by = 50
|
||||
season = None
|
||||
is_archive = False
|
||||
|
||||
def get_queryset(self):
|
||||
self.season = int(self.kwargs.get('season', date.today().year))
|
||||
queryset = models.Ranking.objects.filter(
|
||||
season=self.season,
|
||||
placement__isnull=False
|
||||
)
|
||||
queryset = queryset.select_related()
|
||||
return queryset
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = generic.ListView.get_context_data(self, **kwargs)
|
||||
context['is_archive'] = self.is_archive
|
||||
context['season'] = self.season
|
||||
context['season_list'] = models.Ranking.objects.get_seasons()
|
||||
context['latest_games'] = models.Game.objects.filter(confirmed=True)[:3]
|
||||
context['latest_events'] = Event.objects.archive()[:3]
|
||||
return context
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kasu.membership\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-09 20:35+0100\n"
|
||||
"POT-Creation-Date: 2014-12-14 01:12+0100\n"
|
||||
"PO-Revision-Date: 2014-12-08 16:18+0100\n"
|
||||
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
||||
"Language-Team: Kasu <verein@kasu.at>\n"
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
pillow
|
||||
BeautifulSoup
|
||||
django < 1.7
|
||||
django-appconf
|
||||
django-compressor
|
||||
django-grappelli
|
||||
django-social-auth
|
||||
django-imagekit
|
||||
django-markdown
|
||||
MySQL-python
|
||||
# django-markdown
|
||||
django-social-auth
|
||||
feedparser
|
||||
icalendar
|
||||
jsmin
|
||||
xlwt
|
||||
MySQL-python
|
||||
pillow
|
||||
python-social-auth
|
||||
pytz==2013d
|
||||
scss
|
||||
xlwt
|
||||
markdown < 2.5
|
||||
#bzr+https://code.launchpad.net/~adam.russell/pyexiv2/pyexiv2-0.3
|
||||
bzr+https://code.launchpad.net/~adam.russell/pyexiv2/pyexiv2-0.3
|
||||
|
||||
2
requirements/development.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
django-debugbar
|
||||
rosetta
|
||||
12
sync.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
|
||||
./cleanup.sh
|
||||
|
||||
while read dir; do
|
||||
echo "Syncing Files in $dir..."
|
||||
rsync -av --delete $dir vu2004@www.kasu.at:~/
|
||||
done < files_to_sync.txt
|
||||
|
||||
echo "Force Django reload..."
|
||||
ssh vu2004@www.kasu.at "touch kasu/wsgi.py"
|
||||
echo "done."
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: kasu.utils\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-12-09 20:35+0100\n"
|
||||
"POT-Creation-Date: 2014-12-14 01:12+0100\n"
|
||||
"PO-Revision-Date: 2014-12-08 16:18+0100\n"
|
||||
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
||||
"Language-Team: Kasu <verein@kasu.at>\n"
|
||||
|
||||