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
|
*.pyc
|
||||||
htdocs/
|
htdocs/
|
||||||
static/
|
/static/
|
||||||
media/
|
media/
|
||||||
.idea
|
virtenv/
|
||||||
.gitignore
|
|
||||||
.idea/
|
.idea/
|
||||||
|
.gitignore
|
||||||
.project
|
.project
|
||||||
.pydevproject
|
.pydevproject
|
||||||
.settings/
|
.settings/
|
||||||
*~
|
*~
|
||||||
maistar_ranking
|
/kasu/static/css/kasu.css
|
||||||
|
|||||||
1
.idea/encodings.xml
generated
@@ -1,6 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false">
|
<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" />
|
<file url="PROJECT" charset="UTF-8" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
34
.idea/kasu.iml
generated
@@ -11,8 +11,38 @@
|
|||||||
</facet>
|
</facet>
|
||||||
</component>
|
</component>
|
||||||
<component name="NewModuleRootManager">
|
<component name="NewModuleRootManager">
|
||||||
<content url="file://$MODULE_DIR$" />
|
<content url="file://$MODULE_DIR$">
|
||||||
<orderEntry type="inheritedJdk" />
|
<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" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
</component>
|
</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>
|
</module>
|
||||||
2
.idea/misc.xml
generated
@@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<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>
|
</project>
|
||||||
@@ -18,6 +18,6 @@ export DJANGO_SETTINGS_MODULE="kasu.settings.production"
|
|||||||
echo "lösche den Python Compiler Cache..."
|
echo "lösche den Python Compiler Cache..."
|
||||||
find . -name "*.pyc" -exec rm -rf {} \;
|
find . -name "*.pyc" -exec rm -rf {} \;
|
||||||
|
|
||||||
./manage.py collectstatic --noinput
|
./manage.py collectstatic --noinput -c
|
||||||
./manage.py generateimages
|
./manage.py generateimages
|
||||||
touch kasu/wsgi.py
|
touch kasu/wsgi.py
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: kasu.content\n"
|
"Project-Id-Version: kasu.content\n"
|
||||||
"Report-Msgid-Bugs-To: \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"
|
"PO-Revision-Date: 2014-12-08 16:15+0100\n"
|
||||||
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
||||||
"Language-Team: Kasu <verein@kasu.at>\n"
|
"Language-Team: Kasu <verein@kasu.at>\n"
|
||||||
@@ -135,12 +135,21 @@ msgstr "Kategorien"
|
|||||||
msgid "This Category does not exist."
|
msgid "This Category does not exist."
|
||||||
msgstr "Diese Kategorie existiert nicht."
|
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
|
#, python-format
|
||||||
msgid "No Page found matching the Path %s"
|
msgid "No Page found matching the Path %s"
|
||||||
msgstr "Keine Seite unter dem Pfad %s gefunden"
|
msgstr "Keine Seite unter dem Pfad %s gefunden"
|
||||||
|
|
||||||
#: views.py:166
|
#: views.py:174
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "No PDF Document found matching the Path %s"
|
msgid "No PDF Document found matching the Path %s"
|
||||||
msgstr "Kein PDF Dokument unter dem Pfad %s gefunden."
|
msgstr "Kein PDF Dokument unter dem Pfad %s gefunden."
|
||||||
@@ -205,39 +214,24 @@ msgstr "Auf Twitter teilen"
|
|||||||
msgid "Share on Facebook"
|
msgid "Share on Facebook"
|
||||||
msgstr "Auf Facebook teilen"
|
msgstr "Auf Facebook teilen"
|
||||||
|
|
||||||
#: templates/content/article_detail.html:52
|
#: templates/content/article_form.html:22 templates/content/page_form.html:29
|
||||||
#: 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/page_form.html:35
|
#: templates/content/page_form.html:35
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Deutsch"
|
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
|
#: templates/content/page_form.html:39
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr "Englisch"
|
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"
|
msgid "reset"
|
||||||
msgstr "Zurücksetzen"
|
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"
|
msgid "save"
|
||||||
msgstr "Speichern"
|
msgstr "Speichern"
|
||||||
|
|
||||||
#: templates/content/page.html:23
|
|
||||||
msgid "Subpages"
|
|
||||||
msgstr "Unterseiten"
|
|
||||||
|
|
||||||
#: templates/content/page_form.html:4 templates/content/page_form.html:24
|
#: templates/content/page_form.html:4 templates/content/page_form.html:24
|
||||||
msgid "Edit Page"
|
msgid "Edit Page"
|
||||||
msgstr "Seite bearbeiten"
|
msgstr "Seite bearbeiten"
|
||||||
@@ -249,3 +243,6 @@ msgstr "Seite hinzufügen"
|
|||||||
#: templates/content/page_form.html:45
|
#: templates/content/page_form.html:45
|
||||||
msgid "HTML Specific"
|
msgid "HTML Specific"
|
||||||
msgstr "HTML spezifisch"
|
msgstr "HTML spezifisch"
|
||||||
|
|
||||||
|
#~ msgid "Subpages"
|
||||||
|
#~ msgstr "Unterseiten"
|
||||||
|
|||||||
@@ -1,10 +1,6 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% load i18n fieldset_extras %}
|
{% load i18n fieldset_extras %}
|
||||||
|
|
||||||
{% block title %}
|
|
||||||
{% if object.pk %}{% trans "Edit Article" %}{% else %}{% trans "Create Article" %}{% endif %}
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block extra_head %}
|
{% 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/jquery-1.6.2.min.js"></script>
|
||||||
<script type="text/javascript" src="{{ STATIC_URL }}js/language_tabs.js" ></script>
|
<script type="text/javascript" src="{{ STATIC_URL }}js/language_tabs.js" ></script>
|
||||||
|
|||||||
@@ -14,18 +14,20 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h2>{{ page.title }}</h2>
|
{{ page.content }}
|
||||||
{{ page.content }}
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block sidebar %}
|
{% block sidebar %}
|
||||||
{% if current_top_page.subpages %}
|
{% if current_top_page.subpages %}
|
||||||
<h2>{% trans "Subpages" %}</h2>
|
|
||||||
{% for subpage in current_top_page.subpages.all %}
|
{% for subpage in current_top_page.subpages.all %}
|
||||||
<h3><a href="{{ subpage.get_absolute_url }}">{{subpage.menu_name}}</a></h3>
|
{% if subpage.content_type > 0 %}
|
||||||
<ul class="list">
|
<h2><a href="{{ subpage.get_absolute_url }}">{{subpage.menu_name}}</a></h2>
|
||||||
{% for subpage in subpage.subpages.all %}<li class="{{subpage.css_class}}"><a href="{{ subpage.get_absolute_url }}">{{ subpage.menu_name }}</a></li>{% endfor %}
|
<ul class="list">
|
||||||
</ul>
|
{% 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 %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -87,6 +87,14 @@ class ArticleForm(PermissionRequiredMixin, generic.UpdateView):
|
|||||||
form_class = forms.ArticleForm
|
form_class = forms.ArticleForm
|
||||||
permission_required = 'content.change_article'
|
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):
|
def get_object(self, **kwargs):
|
||||||
if self.kwargs.get('pk', None):
|
if self.kwargs.get('pk', None):
|
||||||
return models.Article.objects.get(pk=self.kwargs['pk'])
|
return models.Article.objects.get(pk=self.kwargs['pk'])
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: kasu.events\n"
|
"Project-Id-Version: kasu.events\n"
|
||||||
"Report-Msgid-Bugs-To: \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"
|
"PO-Revision-Date: 2014-12-08 16:06+0100\n"
|
||||||
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
||||||
"Language-Team: Kasu <verein@kasu.at>\n"
|
"Language-Team: Kasu <verein@kasu.at>\n"
|
||||||
@@ -116,7 +116,17 @@ msgstr "Veranstaltungsort"
|
|||||||
msgid "Venues"
|
msgid "Venues"
|
||||||
msgstr "Veranstaltungsorte"
|
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"
|
msgid "Event does not exist"
|
||||||
msgstr "Veranstaltung gibt es nicht"
|
msgstr "Veranstaltung gibt es nicht"
|
||||||
|
|
||||||
@@ -205,19 +215,11 @@ msgstr "Auf Facebook teilen"
|
|||||||
msgid "Show on Google Maps"
|
msgid "Show on Google Maps"
|
||||||
msgstr "Auf Google Maps zeigen"
|
msgstr "Auf Google Maps zeigen"
|
||||||
|
|
||||||
#: templates/events/event_detail.html:110 templates/events/event_form.html:13
|
#: templates/events/event_form.html:19
|
||||||
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
|
|
||||||
msgid "reset"
|
msgid "reset"
|
||||||
msgstr "Zurücksetzen"
|
msgstr "Zurücksetzen"
|
||||||
|
|
||||||
#: templates/events/event_form.html:24
|
#: templates/events/event_form.html:20
|
||||||
msgid "save"
|
msgid "save"
|
||||||
msgstr "Speichern"
|
msgstr "Speichern"
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,6 @@
|
|||||||
{% extends "events/page.html" %}
|
{% extends "events/page.html" %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
|
{% block title %}{{ title }}{% endblock %}
|
||||||
{% 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 maincontent %}
|
{% block maincontent %}
|
||||||
<form method="post" enctype="multipart/form-data" class="grid_12">
|
<form method="post" enctype="multipart/form-data" class="grid_12">
|
||||||
@@ -29,21 +25,4 @@
|
|||||||
</form>
|
</form>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block buttonbar %}{% 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 %}
|
|
||||||
@@ -88,8 +88,6 @@ class EventDetailMixin(object):
|
|||||||
context['event'] = self.event
|
context['event'] = self.event
|
||||||
else:
|
else:
|
||||||
context['event'] = self.object.event
|
context['event'] = self.object.event
|
||||||
print "EventDetailMixin"
|
|
||||||
print dir(context['event'])
|
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
||||||
@@ -97,6 +95,14 @@ class EventForm(PermissionRequiredMixin, generic.UpdateView):
|
|||||||
form_class = forms.EventForm
|
form_class = forms.EventForm
|
||||||
permission_required = 'events.add_event'
|
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):
|
def get_object(self, queryset=None):
|
||||||
"""
|
"""
|
||||||
If an id has been submitted, try return the existing Event for an update,
|
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" %}
|
{% extends "base.html" %}
|
||||||
{% load i18n %}
|
{% 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 %}
|
{% block maincontent %}
|
||||||
{% for event in event_list %}
|
{% for event in event_list %}
|
||||||
<div class="gallery grid_4">
|
<div class="gallery grid_4">
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
{% extends "events/event_detail.html" %}
|
{% extends "base.html" %}
|
||||||
{% load i18n comments %}
|
{% load i18n comments %}
|
||||||
|
|
||||||
{% block maincontent %}
|
{% 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 %}
|
{% get_comment_count for event as comment_count %}
|
||||||
{% ifchanged %}<h3 class="grid_12">{{ event.start|date:'F Y' }}</h3>{% endifchanged %}
|
{% ifchanged %}<h3 class="grid_12">{{ event.start|date:'F Y' }}</h3>{% endifchanged %}
|
||||||
<div style="float:left">
|
<div style="float:left">
|
||||||
|
|||||||
@@ -25,9 +25,9 @@ CHOICES_VERTICAL = (
|
|||||||
|
|
||||||
class ArticleImage(imagekit.ImageSpec):
|
class ArticleImage(imagekit.ImageSpec):
|
||||||
format = 'PNG'
|
format = 'PNG'
|
||||||
width = 210
|
width = 200
|
||||||
height = 130
|
height = 120
|
||||||
processors = [SmartResize(width=210, height=130)]
|
processors = [SmartResize(width=200, height=120)]
|
||||||
|
|
||||||
|
|
||||||
class CalloutImage(imagekit.ImageSpec):
|
class CalloutImage(imagekit.ImageSpec):
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: kasu.utils\n"
|
"Project-Id-Version: kasu.utils\n"
|
||||||
"Report-Msgid-Bugs-To: \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 19:20+0100\n"
|
"PO-Revision-Date: 2014-12-14 01:11+0100\n"
|
||||||
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
||||||
"Language-Team: Kasu <verein@kasu.at>\n"
|
"Language-Team: Kasu <verein@kasu.at>\n"
|
||||||
"Language: de\n"
|
"Language: de\n"
|
||||||
@@ -1039,134 +1039,136 @@ msgstr "Wartend..."
|
|||||||
msgid "Published"
|
msgid "Published"
|
||||||
msgstr "Veröffentlicht"
|
msgstr "Veröffentlicht"
|
||||||
|
|
||||||
#: settings/base.py:84
|
#: settings/base.py:85
|
||||||
msgid "German"
|
msgid "German"
|
||||||
msgstr "Deutsch"
|
msgstr "Deutsch"
|
||||||
|
|
||||||
#: settings/base.py:85
|
#: settings/base.py:86
|
||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr "Englisch"
|
msgstr "Englisch"
|
||||||
|
|
||||||
#: templates/base.html:27
|
#: templates/base.html:23
|
||||||
msgid "Current News"
|
msgid "Current News"
|
||||||
msgstr "Aktuelle Neuigkeiten"
|
msgstr "Aktuelle Neuigkeiten"
|
||||||
|
|
||||||
#: templates/base.html:29 templates/index.html:77
|
#: templates/base.html:25 templates/index.html:44
|
||||||
msgid "Recent Comments"
|
msgid "Recent Comments"
|
||||||
msgstr "Kürzliche Kommentare"
|
msgstr "Kürzliche Kommentare"
|
||||||
|
|
||||||
#: templates/base.html:46
|
#: templates/base.html:42
|
||||||
msgid "Menu"
|
msgid "Menu"
|
||||||
msgstr "Menü"
|
msgstr "Menü"
|
||||||
|
|
||||||
#: templates/base.html:64 templates/index.html:14
|
#: templates/base.html:57
|
||||||
msgid "Current Event"
|
msgid "Current Event"
|
||||||
msgstr "Aktuelle Veranstaltung"
|
msgstr "Aktuelle Veranstaltung"
|
||||||
|
|
||||||
#: templates/base.html:68 templates/index.html:16
|
#: templates/base.html:60
|
||||||
msgid "since"
|
#, fuzzy
|
||||||
|
msgid "Since"
|
||||||
msgstr "seit"
|
msgstr "seit"
|
||||||
|
|
||||||
#: templates/base.html:72 templates/base.html.py:86 templates/index.html:20
|
#: templates/base.html:61 templates/base.html.py:72
|
||||||
#: templates/index.html.py:32
|
|
||||||
msgid "Start"
|
msgid "Start"
|
||||||
msgstr "Beginn"
|
msgstr "Beginn"
|
||||||
|
|
||||||
#: templates/base.html:73 templates/base.html.py:87 templates/index.html:21
|
#: templates/base.html:62 templates/base.html.py:73
|
||||||
#: templates/index.html.py:33
|
|
||||||
msgid "Location"
|
msgid "Location"
|
||||||
msgstr "Ort"
|
msgstr "Ort"
|
||||||
|
|
||||||
#: templates/base.html:75 templates/base.html.py:89 templates/index.html:23
|
#: templates/base.html:64 templates/base.html.py:75
|
||||||
#: templates/index.html.py:35
|
|
||||||
msgid "More Details"
|
msgid "More Details"
|
||||||
msgstr "Mehr Details"
|
msgstr "Mehr Details"
|
||||||
|
|
||||||
#: templates/base.html:78 templates/index.html:26
|
#: templates/base.html:67
|
||||||
msgid "Next Event"
|
msgid "Next Event"
|
||||||
msgstr "Nächste Veranstaltung"
|
msgstr "Nächste Veranstaltung"
|
||||||
|
|
||||||
#: templates/base.html:82 templates/index.html:28
|
#: templates/base.html:71
|
||||||
msgid "in"
|
msgid "in"
|
||||||
msgstr "in"
|
msgstr "in"
|
||||||
|
|
||||||
#: templates/base.html:92 templates/index.html:38
|
#: templates/base.html:78
|
||||||
msgid "Upcoming events"
|
msgid "Upcoming events"
|
||||||
msgstr "Bevorstehende Veranstaltungen"
|
msgstr "Bevorstehende Veranstaltungen"
|
||||||
|
|
||||||
#: templates/base.html:141
|
#: templates/base.html:127
|
||||||
msgid "Edit Page"
|
msgid "Edit Page"
|
||||||
msgstr "Seite bearbeiten"
|
msgstr "Seite bearbeiten"
|
||||||
|
|
||||||
#: templates/base.html:143
|
#: templates/base.html:129
|
||||||
msgid "Add Subpage"
|
msgid "Add Subpage"
|
||||||
msgstr "Unterseite Hinzufügen"
|
msgstr "Unterseite Hinzufügen"
|
||||||
|
|
||||||
#: templates/base.html:152
|
#: templates/base.html:138
|
||||||
msgid "Imprint"
|
msgid "Imprint"
|
||||||
msgstr "Impressum"
|
msgstr "Impressum"
|
||||||
|
|
||||||
#: templates/base.html:153
|
#: templates/base.html:139
|
||||||
msgid "contact"
|
msgid "contact"
|
||||||
msgstr "Kontakt"
|
msgstr "Kontakt"
|
||||||
|
|
||||||
#: templates/base.html:158
|
#: templates/base.html:144
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Sprache"
|
msgstr "Sprache"
|
||||||
|
|
||||||
#: templates/base.html:167
|
#: templates/base.html:153
|
||||||
msgid "Go"
|
msgid "Go"
|
||||||
msgstr "Los"
|
msgstr "Los"
|
||||||
|
|
||||||
#: templates/base.html:172
|
#: templates/base.html:158
|
||||||
msgid "Logged in as"
|
msgid "Logged in as"
|
||||||
msgstr "Angemeldet als"
|
msgstr "Angemeldet als"
|
||||||
|
|
||||||
#: templates/base.html:174
|
#: templates/base.html:160
|
||||||
msgid "Admin"
|
msgid "Admin"
|
||||||
msgstr "Admin"
|
msgstr "Admin"
|
||||||
|
|
||||||
#: templates/base.html:175
|
#: templates/base.html:161
|
||||||
msgid "Logout"
|
msgid "Logout"
|
||||||
msgstr "Abmelden"
|
msgstr "Abmelden"
|
||||||
|
|
||||||
#: templates/base.html:177
|
#: templates/base.html:163
|
||||||
msgid "no user logged in"
|
msgid "no user logged in"
|
||||||
msgstr "Niemand angemeldet"
|
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
|
#: templates/registration/login.html:32 templates/registration/login.html:33
|
||||||
msgid "register"
|
msgid "register"
|
||||||
msgstr "Registrieren"
|
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:6 templates/registration/login.html:8
|
||||||
#: templates/registration/login.html:39
|
#: templates/registration/login.html:39
|
||||||
msgid "login"
|
msgid "login"
|
||||||
msgstr "anmelden"
|
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"
|
msgid "Created on"
|
||||||
msgstr "Erstellt am"
|
msgstr "Erstellt am"
|
||||||
|
|
||||||
#: templates/index.html:58 templates/index.html.py:59
|
#: templates/index.html:25 templates/index.html.py:26
|
||||||
msgid "Author"
|
msgid "Author"
|
||||||
msgstr "Autor"
|
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
|
#: templates/comments/list.html:2
|
||||||
msgid "Comments"
|
msgid "Comments"
|
||||||
msgstr "Kommentare"
|
msgstr "Kommentare"
|
||||||
|
|
||||||
#: templates/index.html:62
|
#: templates/index.html:29
|
||||||
msgid "comments"
|
msgid "comments"
|
||||||
msgstr "Kommentare"
|
msgstr "Kommentare"
|
||||||
|
|
||||||
#: templates/index.html:69
|
#: templates/index.html:36
|
||||||
msgid "Read More"
|
msgid "Read More"
|
||||||
msgstr "Mehr lesen"
|
msgstr "Mehr lesen"
|
||||||
|
|
||||||
#: templates/index.html:83
|
#: templates/index.html:50
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\n"
|
"\n"
|
||||||
@@ -1183,20 +1185,23 @@ msgstr ""
|
|||||||
" <time datetime=\"%(submit_date)s\">%(since)s</time>\n"
|
" <time datetime=\"%(submit_date)s\">%(since)s</time>\n"
|
||||||
" "
|
" "
|
||||||
|
|
||||||
#: templates/index.html:95
|
#: templates/index.html:62
|
||||||
msgid "Kasu in the social network"
|
msgid "Kasu in the social network"
|
||||||
msgstr "Kasu im sozialem Netzwerk"
|
msgstr "Kasu im sozialem Netzwerk"
|
||||||
|
|
||||||
#: templates/index.html:99 templates/index.html.py:101
|
#: templates/index.html:66 templates/index.html.py:68 templates/index.html:71
|
||||||
#: templates/index.html:104
|
|
||||||
msgid "Visit us on"
|
msgid "Visit us on"
|
||||||
msgstr "Besuche uns auf"
|
msgstr "Besuche uns auf"
|
||||||
|
|
||||||
#: templates/index.html:114
|
#: templates/index.html:81
|
||||||
msgid "Add Article"
|
msgid "Add Article"
|
||||||
msgstr "Artikel hinzufügen"
|
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"
|
msgid "Prev"
|
||||||
msgstr "Vorherige"
|
msgstr "Vorherige"
|
||||||
|
|
||||||
@@ -1218,7 +1223,7 @@ msgstr "Vorschau"
|
|||||||
|
|
||||||
#: templates/comments/form.html:28
|
#: templates/comments/form.html:28
|
||||||
msgid "Post"
|
msgid "Post"
|
||||||
msgstr ""
|
msgstr "Schreiben"
|
||||||
|
|
||||||
#: templates/comments/form.html:37
|
#: templates/comments/form.html:37
|
||||||
msgid "not logged in"
|
msgid "not logged in"
|
||||||
@@ -1257,6 +1262,14 @@ msgid ""
|
|||||||
" <li>club-members have access to our ranking-system</li>\n"
|
" <li>club-members have access to our ranking-system</li>\n"
|
||||||
"</ul>\n"
|
"</ul>\n"
|
||||||
msgstr ""
|
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
|
#: templates/registration/login.html:25
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -1266,10 +1279,16 @@ msgid ""
|
|||||||
"authentication,\n"
|
"authentication,\n"
|
||||||
"you can fill out our registration form.</p>\n"
|
"you can fill out our registration form.</p>\n"
|
||||||
msgstr ""
|
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
|
#: templates/registration/login.html:43
|
||||||
msgid "Your username and password didn't match. Please try again."
|
msgid "Your username and password didn't match. Please try again."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Benutzername und Passwort haben nicht gepasst. Bitte noch einmal versuchen."
|
||||||
|
|
||||||
#: templates/registration/login.html:46
|
#: templates/registration/login.html:46
|
||||||
msgid "Forgot your Password?"
|
msgid "Forgot your Password?"
|
||||||
@@ -1319,6 +1338,9 @@ msgid ""
|
|||||||
"Please enter your old password, for security's sake, and then enter your new "
|
"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."
|
"password twice so we can verify you typed it in correctly."
|
||||||
msgstr ""
|
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
|
#: templates/registration/password_change_form.html:22
|
||||||
msgid "Change Password"
|
msgid "Change Password"
|
||||||
@@ -1331,7 +1353,7 @@ msgstr "Passwort fertig zurückgesetzt"
|
|||||||
|
|
||||||
#: templates/registration/password_reset_complete.html:8
|
#: templates/registration/password_reset_complete.html:8
|
||||||
msgid "Your password has been set. You may go ahead and log in now."
|
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
|
#: templates/registration/password_reset_complete.html:9
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
@@ -1352,6 +1374,8 @@ msgid ""
|
|||||||
"Please enter your new password twice so we can verify you typed it in "
|
"Please enter your new password twice so we can verify you typed it in "
|
||||||
"correctly."
|
"correctly."
|
||||||
msgstr ""
|
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:13
|
||||||
#: templates/registration/password_reset_confirm.html:22
|
#: templates/registration/password_reset_confirm.html:22
|
||||||
@@ -1367,6 +1391,8 @@ msgid ""
|
|||||||
"The password reset link was invalid, possibly because it has already been "
|
"The password reset link was invalid, possibly because it has already been "
|
||||||
"used. Please request a new password reset."
|
"used. Please request a new password reset."
|
||||||
msgstr ""
|
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:4
|
||||||
#: templates/registration/password_reset_done.html:9
|
#: templates/registration/password_reset_done.html:9
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ gettext = lambda s: s
|
|||||||
PROJECT_PATH = path.abspath(path.join(path.dirname(__file__), '..', '..'))
|
PROJECT_PATH = path.abspath(path.join(path.dirname(__file__), '..', '..'))
|
||||||
|
|
||||||
PREREQ_APPS = [
|
PREREQ_APPS = [
|
||||||
|
'compressor',
|
||||||
'grappelli',
|
'grappelli',
|
||||||
'django.contrib.admin',
|
'django.contrib.admin',
|
||||||
'django.contrib.admindocs',
|
'django.contrib.admindocs',
|
||||||
@@ -129,6 +130,7 @@ STATICFILES_DIRS = (
|
|||||||
STATICFILES_FINDERS = (
|
STATICFILES_FINDERS = (
|
||||||
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
|
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
|
||||||
'django.contrib.staticfiles.finders.FileSystemFinder',
|
'django.contrib.staticfiles.finders.FileSystemFinder',
|
||||||
|
'compressor.finders.CompressorFinder',
|
||||||
)
|
)
|
||||||
# Make this unique, and don't share it with anybody.
|
# Make this unique, and don't share it with anybody.
|
||||||
SECRET_KEY = 'uve7*2z2+2fs!ts80e(^2kxo^960!hl)cns@fpt_e%7qg52wy0'
|
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 {font: normal 12pt Philosopher, sans-serif;}
|
||||||
|
|
||||||
input[type=number] {text-align: right;}
|
input[type=number] {text-align: right;}
|
||||||
|
input[readonly="readonly"], input[readonly] {
|
||||||
|
border: none;
|
||||||
|
background: transparent;
|
||||||
|
color: #2e3436;
|
||||||
|
}
|
||||||
|
|
||||||
li {
|
li {
|
||||||
margin-bottom: .2em;
|
margin-bottom: .2em;
|
||||||
@@ -191,6 +196,11 @@ li.hanchan {
|
|||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
li.time {
|
||||||
|
background: url(../icons/time.png) left center no-repeat;
|
||||||
|
padding-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
li.django_view {
|
li.django_view {
|
||||||
background: url(../icons/page_white_lightning.png) left center no-repeat;
|
background: url(../icons/page_white_lightning.png) left center no-repeat;
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
@@ -251,14 +261,14 @@ table th a:link, table th a:visited {
|
|||||||
color: #FFF;
|
color: #FFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
table tr:hover {
|
|
||||||
background-color: #eedcdc;
|
|
||||||
}
|
|
||||||
|
|
||||||
table tr:nth-child(2n+1) {
|
table tr:nth-child(2n+1) {
|
||||||
background-color: #eeeeec;
|
background-color: #eeeeec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
table tr:hover {
|
||||||
|
background-color: #eedcdc;
|
||||||
|
}
|
||||||
|
|
||||||
ul {
|
ul {
|
||||||
list-style: circle outside;
|
list-style: circle outside;
|
||||||
padding-left: 30px;
|
padding-left: 30px;
|
||||||
@@ -365,7 +375,7 @@ ul.tabs {text-align: center}
|
|||||||
ul.tabs li {display: inline-block}
|
ul.tabs li {display: inline-block}
|
||||||
ul.tabs li:after {content: " | "}
|
ul.tabs li:after {content: " | "}
|
||||||
ul.tabs li:last-child: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}
|
ul.tabs li.active a {border-bottom: 3px solid #bc0a19; color: #bc0a19}
|
||||||
|
|
||||||
.comment {
|
.comment {
|
||||||
@@ -374,15 +384,8 @@ ul.tabs li.active a {border-bottom: 3px solid #bc0a19; color: #bc0a19}
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 0;
|
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 {padding: 0}
|
||||||
fieldset.comment legend {margin-left: 15px}
|
fieldset.comment legend {margin-left: 15px}
|
||||||
fieldset.comment .buttonbar {margin: 0; width: 100%}
|
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 %}
|
{% load i18n %}
|
||||||
<!doctype html>
|
{% load compress %}
|
||||||
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>Kasu - {% block title %}{{ current_top_page.menu_name|default:"traditionelle asiatische Spielkultur"}}{% endblock %}</title>
|
<title>Kasu - {% block title %}{{ current_page.menu_name|default:current_top_page.menu_name|default:"traditionelle asiatische Spielkultur"}}{% endblock %}</title>
|
||||||
<meta name="keywords" content="{% block keywords %}{% endblock %}"/>
|
|
||||||
<meta name="description" content="{% block description %}{% endblock %}"/>
|
<meta name="description" content="{% block description %}{% endblock %}"/>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<link rel="shortcut icon" href="{{STATIC_URL}}img/favicon.ico">
|
<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" href="{{STATIC_URL}}css/kasu.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">
|
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<link rel="stylesheet" media="screen" href="{{STATIC_URL}}css/desktop.css" type="text/css">
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
document.createElement('header');
|
document.createElement('header');
|
||||||
document.createElement('nav');
|
document.createElement('nav');
|
||||||
@@ -53,37 +49,27 @@
|
|||||||
</nav>
|
</nav>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<section id="jumbotron"
|
<section id="jumbotron" style="background-image: url('{% block jumbotron_background %}{{STATIC_URL}}img/teaser/{{current_top_page.slug}}.jpg{% endblock %}')">
|
||||||
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 %}
|
||||||
{% block teaser %}
|
|
||||||
<h2>{{page.title}} {{title}}</h2>
|
|
||||||
{% endblock %}
|
|
||||||
<aside id="redbox">
|
<aside id="redbox">
|
||||||
{% block redbox %}
|
{% block redbox %}
|
||||||
{% if current_event %}
|
{% if current_event %}
|
||||||
<h2>{% trans "Current Event" %}</h2>
|
<h2>{% trans "Current Event" %}</h2>
|
||||||
|
|
||||||
<h3>{{ current_event.name}}</h3>
|
<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">
|
<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>
|
<li class="location"><strong>{% trans "Location" %}:</strong> {{ current_event.location }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div style="text-align:right"><a class="button" href="{{current_event.get_absolute_url}}">{% trans "More Details" %}
|
<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>
|
<img src="{{ STATIC_URL }}icons/date_go.png" alt="»" width="16" height="16"/></a></div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<h2>{% trans "Next Event" %}</h2>
|
<h2>{% trans "Next Event" %}</h2>
|
||||||
|
|
||||||
<h3>{{ next_event.name}}</h3>
|
<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">
|
<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>
|
<li class="location"><strong>{% trans "Location" %}:</strong> {{ next_event.location }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div style="text-align:right"><a class="button" href="{{next_event.get_absolute_url}}">{% trans "More Details" %}
|
<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>
|
width="26" height="26"/></a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</nav>
|
</nav>
|
||||||
|
<script type="text/javascript">{% block javascript %}{% endblock %}</script>
|
||||||
|
<!-- Piwik -->
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
{% block javascript %}{% endblock %}
|
var _paq = _paq || [];
|
||||||
var pkBaseURL = (("https:" == document.location.protocol) ? "https://admin.animanga.at/tools/piwik/" : "http://admin.animanga.at/tools/piwik/");
|
_paq.push(["setCookieDomain", "*.kasu.at"]);
|
||||||
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
|
_paq.push(['trackPageView']);
|
||||||
try {
|
_paq.push(['enableLinkTracking']);
|
||||||
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 5);
|
(function() {
|
||||||
piwikTracker.trackPageView();
|
var u="//admin.animanga.at/tools/piwik/";
|
||||||
piwikTracker.enableLinkTracking();
|
_paq.push(['setTrackerUrl', u+'piwik.php']);
|
||||||
} catch (err) {
|
_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>
|
</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>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -4,44 +4,11 @@
|
|||||||
|
|
||||||
{% block jumbotron_background %}{{ random_photo.url }}{% endblock %}
|
{% block jumbotron_background %}{{ random_photo.url }}{% endblock %}
|
||||||
|
|
||||||
{% block teaser %}
|
{% block title %}{% trans 'traditional Asian game culture' %}{% endblock %}
|
||||||
<h2>{{title}}</h2>
|
|
||||||
<div id="teaser_text">{{content}}</div>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block redbox %}
|
{% block teaser %}
|
||||||
{% if current_event %}
|
<h1>{{title}}</h1>
|
||||||
<h2>{% trans "Current Event" %}</h2>
|
<div id="teaser_text">{{content}}</div>
|
||||||
<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>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block maincontent %}
|
{% block maincontent %}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: kasu.mahjong_ranking\n"
|
"Project-Id-Version: kasu.mahjong_ranking\n"
|
||||||
"Report-Msgid-Bugs-To: \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"
|
"PO-Revision-Date: 2014-12-08 16:18+0100\n"
|
||||||
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
||||||
"Language-Team: Kasu <verein@kasu.at>\n"
|
"Language-Team: Kasu <verein@kasu.at>\n"
|
||||||
@@ -120,7 +120,7 @@ msgstr "Veranstaltung existiert nicht"
|
|||||||
msgid "Season does not exist"
|
msgid "Season does not exist"
|
||||||
msgstr "Saison existiert nicht"
|
msgstr "Saison existiert nicht"
|
||||||
|
|
||||||
#: views.py:301
|
#: views.py:300
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "No user found matching the name %s"
|
msgid "No user found matching the name %s"
|
||||||
msgstr "Kein Benutzer mit dem Namen %s gefunden"
|
msgstr "Kein Benutzer mit dem Namen %s gefunden"
|
||||||
|
|||||||
@@ -294,8 +294,7 @@ class PlayerScore(LoginRequiredMixin, generic.ListView):
|
|||||||
try:
|
try:
|
||||||
self.user = auth.get_user_model().objects.get(
|
self.user = auth.get_user_model().objects.get(
|
||||||
username=self.kwargs.get('username'))
|
username=self.kwargs.get('username'))
|
||||||
self.membership = Membership.objects.get_or_create(user=self.user)[
|
self.membership = Membership.objects.get(user=self.user)
|
||||||
0]
|
|
||||||
except auth.get_user_model().DoesNotExist:
|
except auth.get_user_model().DoesNotExist:
|
||||||
raise django.http.Http404(
|
raise django.http.Http404(
|
||||||
_("No user found matching the name %s") % self.kwargs.get(
|
_("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 ""
|
msgstr ""
|
||||||
"Project-Id-Version: kasu.membership\n"
|
"Project-Id-Version: kasu.membership\n"
|
||||||
"Report-Msgid-Bugs-To: \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"
|
"PO-Revision-Date: 2014-12-08 16:18+0100\n"
|
||||||
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
||||||
"Language-Team: Kasu <verein@kasu.at>\n"
|
"Language-Team: Kasu <verein@kasu.at>\n"
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
pillow
|
|
||||||
BeautifulSoup
|
BeautifulSoup
|
||||||
django < 1.7
|
django < 1.7
|
||||||
|
django-appconf
|
||||||
|
django-compressor
|
||||||
django-grappelli
|
django-grappelli
|
||||||
django-social-auth
|
|
||||||
django-imagekit
|
django-imagekit
|
||||||
django-markdown
|
# django-markdown
|
||||||
MySQL-python
|
django-social-auth
|
||||||
feedparser
|
feedparser
|
||||||
icalendar
|
icalendar
|
||||||
jsmin
|
jsmin
|
||||||
xlwt
|
MySQL-python
|
||||||
|
pillow
|
||||||
|
python-social-auth
|
||||||
pytz==2013d
|
pytz==2013d
|
||||||
scss
|
xlwt
|
||||||
markdown < 2.5
|
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 ""
|
msgstr ""
|
||||||
"Project-Id-Version: kasu.utils\n"
|
"Project-Id-Version: kasu.utils\n"
|
||||||
"Report-Msgid-Bugs-To: \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"
|
"PO-Revision-Date: 2014-12-08 16:18+0100\n"
|
||||||
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
"Last-Translator: Christian Berg <xeniac.at@gmail.com>\n"
|
||||||
"Language-Team: Kasu <verein@kasu.at>\n"
|
"Language-Team: Kasu <verein@kasu.at>\n"
|
||||||
|
|||||||