Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • infrastruktur/warpinfra
  • dray/warpinfra
  • HoelShare/warpinfra
3 results
Show changes
Commits on Source (124)
Showing
with 2349 additions and 2654 deletions
.idea
www/web/.idea/
*.pyc
\ No newline at end of file
*.pyc
config.ini
\ No newline at end of file
# Version 1.1 Funny Luigi
Date: 12.10.2016
- WarpAPI Prototyp
- Mattermost Benachrichtigungen
- PizzaSheet öffnen
- News erstellen
- Übersetzung und Texte ausgebessert
- Kleinere Verbesserungen
# Version 1.0 Black Toad
Date: 11.10.2016
This diff is collapsed.
WarpAuth
========
# Projektbeschreibung
Token for API: 880d450db6e8848248d7b24efad7a42d92ffa3b5
\ No newline at end of file
s. Wiki: https://wiki.warpzone.ms/infrastruktur:warpinfra
\ No newline at end of file
version: '2'
services:
warpinfra-app:
build: ./www/
ports:
- 8000:80
- 8001:443
- 8080:8080
volumes:
- ./www/web:/opt/warpinfra
- ./www/nginx:/opt/nginx
- ./www/conf/config.ini:/etc/warpinfra/config.ini
- ./www/web/warpzone.db:/opt/database/warpzone.db
entrypoint: /opt/entrypoint_dev.sh
depends_on:
- ldap
- mysql
links:
- ldap
- mysql
mysql:
image: mariadb:latest
environment:
- "MYSQL_DATABASE=warpinfra"
- "MYSQL_USER=warpinfra"
- "MYSQL_PASSWORD=3HJJfad232sTGeKEex"
- "MYSQL_ROOT_PASSWORD=toor"
ldap:
image: osixia/openldap:latest
hostname: ldap-service
environment:
- "LDAP_ORGANISATION=Warpzone"
- "LDAP_DOMAIN=warpzone.ms"
- "LDAP_ADMIN_PASSWORD=k7dAw8j2"
volumes:
- /opt/warpzone/ldap/database:/var/lib/ldap
- /opt/warpzone/ldap/config:/etc/ldap/slapd.d
ldapadmin:
image: osixia/phpldapadmin:latest
hostname: phpldapadmin-service
ports:
- 6443:443
environment:
- "PHPLDAPADMIN_LDAP_HOSTS=ldap"
depends_on:
- ldap
links:
- ldap
From debian:jessie
From debian:buster
# Common Packages
RUN apt-get update && apt-get install -y \
debconf-utils apt-utils rsyslog less nano \
ldap-utils \
build-essential \
libfreetype6-dev \
libjpeg-dev \
libsasl2-dev \
libldap2-dev \
libssl-dev
debconf-utils apt-utils rsyslog less nano \
ldap-utils \
build-essential \
libfreetype6-dev \
libjpeg-dev \
libsasl2-dev \
libldap2-dev \
libssl-dev \
gettext \
git \
nginx \
libmariadb-dev
# Python Packages
RUN apt-get update && apt-get install -y \
python3 \
python3-pip \
python3-dev \
python3-bootstrapform
python3-bootstrapform
RUN pip3 install --upgrade pip
RUN pip3 install \
django==1.9 \
django==1.10 \
django-ldapdb \
django-auth-ldap \
reportlab \
djangorestframework \
ldap3 \
uwsgi \
django-two-factor-auth \
matterhook \
markdown \
django-mysql \
mysqlclient \
bcrypt \
--upgrade
RUN pip3 install git+https://github.com/nkunihiko/django-bootstrap3-datetimepicker.git
RUN ln -s /opt/nginx/nginx_warpinfra.conf /etc/nginx/sites-enabled/
RUN rm /etc/nginx/sites-enabled/default
RUN mkdir /opt/socket/
COPY misc/ldapdb_base.py /usr/local/lib/python3.4/dist-packages/ldapdb/backends/ldap/base.py
#COPY misc/ldapdb_base.py /usr/local/lib/python3.4/dist-packages/ldapdb/backends/ldap/base.py
COPY misc/entrypoint.sh /opt/entrypoint.sh
COPY misc/entrypoint_dev.sh /opt/entrypoint_dev.sh
RUN chmod +x /opt/entrypoint*
ADD web /opt/warpinfra/
ADD nginx /opt/nginx/
ADD nginx /opt/nginx
EXPOSE 8000 443 80
VOLUME ["/opt/warpinfra"]
VOLUME ["/opt/nginx", "/opt/warpinfra"]
ENTRYPOINT sh /opt/entrypoint.sh
......
[common]
# Possible Apps: warpmain, warpauth, warpfood, warpapi, warppay
APPS = warpmain, warpauth, warpfood, warppay, warpapi
INSTANCE_NAME = 'EXTERN-TEST'
GIT_COMMIT = 'fa684d694f5c7bdd915511d3e486ceaf076646af'
DEPLOY_DATE = '28.03.2017'
[debug]
DEBUG = true
[security]
SECRET_KEY = '4m4c(_$ubwued9p-insp!950g&r0yu851bp287$2a3ydj^y=0='
PW_RESET_TOKEN_LIFETIME = 5
ALLOWED_HOSTS = infra.warpzone.ms
[mattermost]
API_KEY = bohtwe6zy7y43p5n36skph7ejy
[ldap]
LDAP_HOST = ldap
......
#!/bin/bash
#service rsyslog restart
cd /opt/warpinfra;
#python3 manage.py makemigrations --merge
#python3 manage.py migrate
python3 manage.py migrate
python3 manage.py compilemessages
python3 manage.py collectstatic --noinput
cp -r /opt/warpinfra/static /opt/socket/
uwsgi --ini /opt/nginx/uwsgi.ini --py-autoreload 1
bash
\ No newline at end of file
tail -f /var/log/uwsgi.log
#!/bin/bash
#service rsyslog restart
cd /opt/warpinfra;
python3 manage.py migrate
python3 manage.py compilemessages
python3 manage.py collectstatic --noinput
python3 manage.py runserver 0.0.0.0:80
......@@ -4,7 +4,7 @@ module=warpzone.wsgi:application
master=True
pidfile=/tmp/warpinfra.pid
vacuum=True
socket=/opt/socket/warpinfra.sock
http=0.0.0.0:8080
max-requests=5000
daemonize=/var/log/uwsgi.log
processes = 10
# 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.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-10-13 16:56+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: templates/base.html:65
msgid "logout"
msgstr "Logout"
#: templates/base.html:66 warpauth/templates/warpauth/profile.html.py:7
msgid "profile_settings"
msgstr "Profil Einstellungen"
#: templates/base.html:69
msgid "admin"
msgstr "Administration"
#: templates/base.html:74 warpfood/templates/warpfood/edit_sheet.html.py:6
#: warpfood/templates/warpfood/main.html:6
#: warpfood/templates/warpfood/view.html:6 warpzone/util.py:8
msgid "pizza_sheet"
msgstr "PizzaSheet"
#: templates/base.html:79
#, fuzzy
#| msgid "pizza_service"
msgid "services"
msgstr "Services"
#: templates/base.html:88
msgid "mailinglists"
msgstr "Mailinglisten"
#: templates/base.html:92
msgid "internal"
msgstr "Intern"
#: templates/base.html:96
#, fuzzy
#| msgid "registration"
msgid "administration"
msgstr "Registrierung"
#: templates/base.html:97
#, fuzzy
#| msgid "admin"
msgid "ldap_admin"
msgstr "LDAP Admin"
#: templates/base.html:98
msgid "postfix_admin"
msgstr "Postfix Admin"
#: templates/two_factor/core/login.html:5
msgid "login"
msgstr "Login"
#: templates/two_factor/core/login.html:8
msgid "Enter your credentials."
msgstr "Anmeldeinformationen eingeben"
#: templates/two_factor/core/login.html:11
msgid ""
"We are calling your phone right now, please enter the\n"
" digits you hear."
msgstr ""
#: templates/two_factor/core/login.html:14
msgid ""
"We sent you a text message, please enter the tokens we\n"
" sent."
msgstr ""
#: templates/two_factor/core/login.html:17
msgid ""
"Please enter the tokens generated by your token\n"
" generator."
msgstr ""
#: templates/two_factor/core/login.html:21
msgid ""
"Use this form for entering backup tokens for logging in.\n"
" These tokens have been generated for you to print and keep safe. "
"Please\n"
" enter one of these backup tokens to login to your account."
msgstr ""
#: templates/two_factor/core/login.html:34
msgid "Or, alternatively, use one of your backup phones:"
msgstr ""
#: templates/two_factor/core/login.html:44
msgid "As a last resort, you can use a backup token:"
msgstr ""
#: templates/two_factor/core/login.html:47
msgid "Use Backup Token"
msgstr ""
#: templates/two_factor/core/login.html:54
msgid "Forgot Password?"
msgstr ""
#: templates/two_factor/core/login.html:55
msgid "Register"
msgstr ""
#: templates/two_factor/core/login.html:56
msgid "Resend Activation Link"
msgstr ""
#: templates/two_factor/profile/disable.html:5
msgid "Disable Two-factor Authentication"
msgstr ""
#: templates/two_factor/profile/disable.html:6
msgid ""
"You are about to disable two-factor authentication. This\n"
" compromises your account security, are you sure?"
msgstr ""
#: templates/two_factor/profile/disable.html:12
msgid "Disable"
msgstr ""
#: templates/two_factor/profile/profile.html:5
msgid "Account Security"
msgstr ""
#: templates/two_factor/profile/profile.html:9
msgid "Tokens will be generated by your token generator."
msgstr ""
#: templates/two_factor/profile/profile.html:11
#, python-format
msgid "Primary method: %(primary)s"
msgstr ""
#: templates/two_factor/profile/profile.html:13
msgid "Tokens will be generated by your YubiKey."
msgstr ""
#: templates/two_factor/profile/profile.html:16
msgid "Backup Tokens"
msgstr ""
#: templates/two_factor/profile/profile.html:18
msgid ""
"If you don't have any device with you, you can access\n"
" your account using backup tokens."
msgstr ""
#: templates/two_factor/profile/profile.html:20
#, python-format
msgid ""
"\n"
" You have only one backup token remaining.\n"
" "
msgid_plural ""
"\n"
" You have %(counter)s backup tokens remaining.\n"
" "
msgstr[0] ""
msgstr[1] ""
#: templates/two_factor/profile/profile.html:27
msgid "Show Codes"
msgstr ""
#: templates/two_factor/profile/profile.html:29
#: templates/two_factor/profile/profile.html:33
msgid "Disable Two-Factor Authentication"
msgstr ""
#: templates/two_factor/profile/profile.html:30
msgid ""
"However we strongly discourage you to do so, you can\n"
" also disable two-factor authentication for your account."
msgstr ""
#: templates/two_factor/profile/profile.html:35
msgid ""
"Two-factor authentication is not enabled for your\n"
" account. Enable two-factor authentication for enhanced account\n"
" security."
msgstr ""
#: templates/two_factor/profile/profile.html:39
msgid "Enable Two-Factor Authentication"
msgstr ""
#: warpauth/templates/warpauth/profile.html:13
msgid "information"
msgstr "Informationen"
#: warpauth/templates/warpauth/profile.html:16
#: warpauth/templates/warpauth/profile/change_password.html:34
msgid "change_password"
msgstr "Passwort ändern"
#: warpauth/templates/warpauth/profile.html:19
msgid "two_factor_authentication"
msgstr "Zwei Wege Authentifizierungszeugs"
#: warpauth/templates/warpauth/profile/change_password.html:9
#: warpauth/templates/warpauth/reset_password/change_password.html:9
msgid "password_change_successful"
msgstr "Passwort wurde erfogreich geändert"
#: warpauth/templates/warpauth/profile/change_password.html:15
msgid "current_password"
msgstr "Aktuelles Passwort"
#: warpauth/templates/warpauth/profile/change_password.html:21
msgid "new_password"
msgstr "Neues Paswort"
#: warpauth/templates/warpauth/profile/change_password.html:27
#: warpauth/templates/warpauth/register/register.html:31
#: warpauth/templates/warpauth/register/register.html:32
#: warpauth/templates/warpauth/reset_password/change_password.html:21
#: warpauth/templates/warpauth/reset_password/change_password.html:22
msgid "confirm_password"
msgstr "Eingabe wiederholen"
#: warpauth/templates/warpauth/profile/information.html:5
msgid "user_data"
msgstr "Benutzerinformationen"
#: warpauth/templates/warpauth/profile/information.html:13
msgid "information_changed_successfully"
msgstr "Daten wurden gespeichert"
#: warpauth/templates/warpauth/profile/information.html:20
#: warpfood/templates/warpfood/edit_sheet.html:15
#: warpfood/templates/warpfood/food_service.html:15
msgid "submit"
msgstr "Speichern"
#: warpauth/templates/warpauth/profile/information.html:29
msgid "groups"
msgstr "Gruppen"
#: warpauth/templates/warpauth/register/activate.html:3
msgid "activation"
msgstr "Aktivierung"
#: warpauth/templates/warpauth/register/activate.html:11
#: warpfood/templates/warpfood/food_service.html:21
msgid "back"
msgstr "Zurück"
#: warpauth/templates/warpauth/register/activate.html:14
msgid "msg_account_successfully_activated"
msgstr "Dein Account wurde erfolgreich aktiviert"
#: warpauth/templates/warpauth/register/activate.html:17
msgid "ok"
msgstr "Ok"
#: warpauth/templates/warpauth/register/register.html:3
#: warpauth/templates/warpauth/register/resend_token.html:3
msgid "registration"
msgstr "Registrierung"
#: warpauth/templates/warpauth/register/register.html:7
msgid "msg_account_successfully_created"
msgstr "Account erfolgreich erstellt"
#: warpauth/templates/warpauth/register/register.html:10
msgid "Back"
msgstr "Zurück"
#: warpauth/templates/warpauth/register/register.html:15
msgid "please_register"
msgstr "Bitte registrieren"
#: warpauth/templates/warpauth/register/register.html:25
#: warpauth/templates/warpauth/register/register.html:26
#: warpauth/templates/warpauth/register/resend_token.html:18
#: warpauth/templates/warpauth/register/resend_token.html:19
#: warpauth/templates/warpauth/reset_password/token_gen.html:15
#: warpauth/templates/warpauth/reset_password/token_gen.html:16
#: warpfood/templates/warpfood/view.html:83
msgid "username"
msgstr "Benutzername"
#: warpauth/templates/warpauth/register/register.html:27
#: warpauth/templates/warpauth/register/register.html:28
#: warpauth/templates/warpauth/register/resend_token.html:20
#: warpauth/templates/warpauth/register/resend_token.html:21
#: warpauth/templates/warpauth/reset_password/token_gen.html:17
#: warpauth/templates/warpauth/reset_password/token_gen.html:18
msgid "email"
msgstr "E-mail"
#: warpauth/templates/warpauth/register/register.html:29
#: warpauth/templates/warpauth/register/register.html:30
#: warpauth/templates/warpauth/reset_password/change_password.html:18
#: warpauth/templates/warpauth/reset_password/change_password.html:19
msgid "password"
msgstr "Passwort"
#: warpauth/templates/warpauth/register/register.html:33
msgid "register"
msgstr "Registrieren"
#: warpauth/templates/warpauth/register/resend_token.html:7
msgid "error_processing_request"
msgstr "Fehler bei der Verarbeitung"
#: warpauth/templates/warpauth/register/resend_token.html:11
msgid "resend_token_successful"
msgstr "Der Token wurde erfolgreich gesendet oder auch nicht"
#: warpauth/templates/warpauth/register/resend_token.html:16
msgid "resend_token"
msgstr "Token noch einmal senden"
#: warpauth/templates/warpauth/register/resend_token.html:22
msgid "proceed"
msgstr "Weiter"
#: warpauth/templates/warpauth/reset_password/change_password.html:3
#: warpauth/templates/warpauth/reset_password/change_password.html:24
#: warpauth/templates/warpauth/reset_password/token_gen.html:3
msgid "reset_password"
msgstr "Dem Password mal zurücksetzen"
#: warpauth/templates/warpauth/reset_password/change_password.html:9
msgid "redirect_within_5_sec_if_not_click"
msgstr "Weiterleiten in 5 Sekunden oder auch nicht .. aber Klicken geht auch"
#: warpauth/templates/warpauth/reset_password/change_password.html:10
msgid "here"
msgstr "hier"
#: warpauth/templates/warpauth/reset_password/change_password.html:16
msgid "enter_new_password_for_user"
msgstr "Neues Passswort für"
#: warpauth/templates/warpauth/reset_password/token_gen.html:9
msgid "msg_reset_email_sent"
msgstr "E-mail gesendet"
#: warpauth/templates/warpauth/reset_password/token_gen.html:14
msgid "enter_email_address"
msgstr "E-mail Adresse eingeben"
#: warpauth/templates/warpauth/reset_password/token_gen.html:22
#: warpauth/views/register.py:34
msgid "err_invalid_email_format"
msgstr "E-mail Adresse ungültig"
#: warpauth/templates/warpauth/reset_password/token_gen.html:27
msgid "Reset Password"
msgstr "Passwort zurücksetzen"
#: warpauth/util.py:5
msgid "mail_subj_password_changed_recently"
msgstr "Dein Passwort wurde kürzlich geändert"
#: warpauth/util.py:5
msgid "mail_content_password_changed_recently"
msgstr ""
"Hallo, \n"
"\n"
"du hast gerade dein Passwort geändert. Wenn dies nicht der Fall ist, wende "
"dich bitte an das WarpInfra-Team. \n"
"\n"
"\n"
"Mit freundlichen Grüßen \n"
"\n"
"Das WarpInfra-Team"
#: warpauth/views/register.py:16
#, python-format
msgid "https://infra.warpzone.ms/account/registration/activate/%(token)s"
msgstr ""
"Hallo, \n"
"\n"
"bitte klicke auf den folgenden Link um deinen Account zu aktivieren:\n"
"\n"
" https://infra.warpzone.ms/account/registration/activate/%(token)s \n"
"\n"
"\n"
"Mit freundlichen Grüßen \n"
"\n"
"Das WarpInfra-Team"
#: warpauth/views/register.py:17
msgid "Your registration for WarpInfra"
msgstr "Deine Registrierung für WarpInfra"
#: warpauth/views/register.py:39
msgid "err_fill_all_fields"
msgstr "Bitte alle Felder ausfüllen"
#: warpauth/views/register.py:41
msgid "err_invalid_username"
msgstr "Benutzername ist ungültig"
#: warpauth/views/register.py:43 warpauth/views/reset_password.py:57
msgid "err_passwords_not_matching"
msgstr "Die eingegebenen Passwörter stimmen nicht überein"
#: warpauth/views/register.py:66
msgid "err_sending_mail"
msgstr "E-mail konnt enicht gesendet werden"
#: warpauth/views/register.py:70
msgid "err_username_not_available"
msgstr "Der Benutzername ist bereits registriert"
#: warpauth/views/register.py:83
msgid "err_token_invalid"
msgstr "Der Token ist ungültig"
#: warpauth/views/register.py:94 warpauth/views/register.py:97
msgid "err_processing_request"
msgstr "Fehler bei der Verarbeitung"
#: warpauth/views/reset_password.py:34
msgid "mail_subj_reset_password_token"
msgstr "Reset Password"
#: warpauth/views/reset_password.py:34
#, python-format
msgid "mail_content_reset_password_token %(link)s"
msgstr "Reset Password Token: %(link)s"
#: warpauth/views/reset_password.py:36
msgid "err_sending_email"
msgstr "Error sending mail"
#: warpauth/views/reset_password.py:68
msgid "err_invalid_token"
msgstr "Der Token ist kapott"
#: warpfood/templates/warpfood/food_service.html:6
#, fuzzy
#| msgid "create_food_service"
msgid "food_service"
msgstr "Neuen Food Service erstellen"
#: warpfood/templates/warpfood/main.html:16
msgid "create_food_sheet"
msgstr "Neues Sheet erstellen"
#: warpfood/templates/warpfood/main.html:17
#, fuzzy
#| msgid "create_food_service"
msgid "add_food_service"
msgstr "Neuen Food Service erstellen"
#: warpfood/templates/warpfood/main.html:26
#: warpfood/templates/warpfood/view.html:17
msgid "estimated_order_time"
msgstr "Eventuell beabsichtigte Bestellzeit"
#: warpfood/templates/warpfood/main.html:26
msgid "pizza_service"
msgstr "Pizza Service"
#: warpfood/templates/warpfood/main.html:26
msgid "status"
msgstr "Status"
#: warpfood/templates/warpfood/view.html:15
msgid "homepage"
msgstr "Homepage / Karte"
#: warpfood/templates/warpfood/view.html:16
msgid "phone_number"
msgstr "Telefon"
#: warpfood/templates/warpfood/view.html:19
msgid "real_order_time"
msgstr "Bestellzeit"
#: warpfood/templates/warpfood/view.html:24
msgid "edit"
msgstr "Bearbeiten"
#: warpfood/templates/warpfood/view.html:26
msgid "close"
msgstr "Schließen"
#: warpfood/templates/warpfood/view.html:28
msgid "open"
msgstr "Öffnen"
#: warpfood/templates/warpfood/view.html:32
msgid "ordered"
msgstr "Bestellt"
#: warpfood/templates/warpfood/view.html:34
msgid "confirm"
msgstr "Bestätigen"
#: warpfood/templates/warpfood/view.html:41
msgid "order_sum"
msgstr "Summe"
#: warpfood/templates/warpfood/view.html:57
msgid "choose_from_products"
msgstr "Aus Produkten auswählen"
#: warpfood/templates/warpfood/view.html:65
msgid "order"
msgstr "Bestellen"
#: warpfood/templates/warpfood/view.html:73
#, fuzzy, python-format
#| msgid ""
#| "this_sheet_was_ordered %(sheet.order_time | naturaltime)s by "
#| "%(sheet.order_user)s"
msgid ""
" this_sheet_was_ordered %(sheet.order_time | naturaltime)s by "
"%(sheet.order_user)s"
msgstr ""
"Dieses Sheet wurde %(sheet.order_time | naturaltime)s von "
"%(sheet.order_user)s bestellt."
#: warpfood/templates/warpfood/view.html:84
msgid "article"
msgstr "Produkt"
#: warpfood/templates/warpfood/view.html:85
msgid "size"
msgstr "Größe"
#: warpfood/templates/warpfood/view.html:86
msgid "price"
msgstr "Preis"
#: warpfood/templates/warpfood/view.html:87
msgid "comment"
msgstr "Kommentar"
#: warpfood/templates/warpfood/view.html:88
msgid "paid"
msgstr "bezahlt"
#: warpfood/templates/warpfood/view.html:132
msgid "product_list"
msgstr "Produkt Liste"
#: warpfood/templates/warpfood/view.html:168
#: warpfood/templates/warpfood/view.html:178
msgid "are_you_sure"
msgstr "Bist du sicher ?"
#: warpfood/views.py:30
#, python-format
msgid ""
"pizza_sheet_opened_for_%(est_order_time)s_at_%(pizza_service)s_%(sheet_id)s_"
"%(link)s"
msgstr ""
"[PizzaSheet #%(sheet_id)s](%(link)s) bei %(pizza_service)s mit vorraussichtlicher Bestellzeit "
"%(est_order_time)s geöffnet"
#: warpfood/views.py:119
#, python-format
msgid "pizza_sheet_closed_%(sheet_id)s_%(link)s"
msgstr ""
"[PizzaSheet #%(sheet_id)s](%(link)s) wurde geschlossen."
#: warpfood/views.py:121
#, python-format
msgid "pizza_sheet_opened_again_%(sheet_id)s_%(link)s"
msgstr ""
"[PizzaSheet #%(sheet_id)s](%(link)s) wurde erneut geöffnet"
#: warpfood/views.py:142
#, python-format
msgid ""
"pizza_sheet_ordered_at_%(order_time)s_by_%(username)s_%(sheet_id)s_%(link)s"
msgstr ""
"[PizzaSheet #%(sheet_id)s](%(link)s) wurde um %(order_time)s Uhr von %(username)s bestellt"
#: warpmain/templates/warpmain/about.html:5 warpzone/util.py:9
msgid "about"
msgstr "Über"
#: warpmain/templates/warpmain/about.html:7
msgid "welcome_to_wz_internal"
msgstr "Willkommen bei WarpAuth"
#: warpmain/templates/warpmain/about.html:10
msgid "about_text"
msgstr "Den scheiß hier liest doch keiner"
#: warpmain/templates/warpmain/about.html:14
msgid "visit_us!"
msgstr "Homepage"
#: warpmain/templates/warpmain/about.html:17
msgid "license"
msgstr "Lizenz"
#: warpmain/templates/warpmain/about.html:19
msgid "licenses"
msgstr "GNU GPL v3"
#: warpmain/templates/warpmain/about.html:22
msgid "support"
msgstr "Support"
#: warpmain/templates/warpmain/about.html:23
msgid "support_text"
msgstr "WTF? Support?"
#: warpmain/templates/warpmain/about.html:26
msgid "mattermost_channel"
msgstr "Mattermost Channel"
#: warpmain/templates/warpmain/about.html:37
msgid "issue_tracker"
msgstr "Einen Bug melden"
#: warpmain/templates/warpmain/about.html:52
msgid "open_source_licenses"
msgstr "Lizenzen"
#: warpmain/templates/warpmain/main.html:7
msgid "news"
msgstr "Neuigkeiten"
#: warpmain/templates/warpmain/main.html:11
msgid "add_news"
msgstr "News"
#: warpmain/templates/warpmain/main.html:20
msgid "create"
msgstr "Erstellen"
#: warpmain/templates/warpmain/main.html:25
#, fuzzy
#| msgid "support"
msgid "markdown_support"
msgstr "Support"
#: warpmain/templates/warpmain/main.html:56
msgid "created_by"
msgstr "Erstellt von"
#: warppay/templates/warppay/main.html:6
msgid "News"
msgstr "News"
#: warppay/templates/warppay/main.html:17
#, fuzzy
#| msgid "created_by"
msgid "created by"
msgstr "Erstellt von"
#~ msgid "project_home"
#~ msgstr "GitLab Projekt"
# 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.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-10-13 17:01+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: templates/base.html:65
msgid "logout"
msgstr ""
#: templates/base.html:66 warpauth/templates/warpauth/profile.html.py:7
msgid "profile_settings"
msgstr "Profile Settings"
#: templates/base.html:69
msgid "admin"
msgstr "Admin"
#: templates/base.html:74 warpfood/templates/warpfood/edit_sheet.html.py:6
#: warpfood/templates/warpfood/main.html:6
#: warpfood/templates/warpfood/view.html:6 warpzone/util.py:8
msgid "pizza_sheet"
msgstr "PizzaSheet"
#: templates/base.html:79
#, fuzzy
#| msgid "pizza_service"
msgid "services"
msgstr "Services"
#: templates/base.html:88
msgid "mailinglists"
msgstr "Mailinglists"
#: templates/base.html:92
msgid "internal"
msgstr "Internal"
#: templates/base.html:96
#, fuzzy
#| msgid "registration"
msgid "administration"
msgstr "Registration"
#: templates/base.html:97
#, fuzzy
#| msgid "admin"
msgid "ldap_admin"
msgstr "Admin"
#: templates/base.html:98
msgid "postfix_admin"
msgstr "Postfix Admin"
#: templates/two_factor/core/login.html:5
msgid "login"
msgstr "Login"
#: templates/two_factor/core/login.html:8
msgid "Enter your credentials."
msgstr "Enter your credentials."
#: templates/two_factor/core/login.html:11
msgid ""
"We are calling your phone right now, please enter the\n"
" digits you hear."
msgstr ""
#: templates/two_factor/core/login.html:14
msgid ""
"We sent you a text message, please enter the tokens we\n"
" sent."
msgstr ""
#: templates/two_factor/core/login.html:17
msgid ""
"Please enter the tokens generated by your token\n"
" generator."
msgstr ""
#: templates/two_factor/core/login.html:21
msgid ""
"Use this form for entering backup tokens for logging in.\n"
" These tokens have been generated for you to print and keep safe. "
"Please\n"
" enter one of these backup tokens to login to your account."
msgstr ""
#: templates/two_factor/core/login.html:34
msgid "Or, alternatively, use one of your backup phones:"
msgstr ""
#: templates/two_factor/core/login.html:44
msgid "As a last resort, you can use a backup token:"
msgstr ""
#: templates/two_factor/core/login.html:47
msgid "Use Backup Token"
msgstr ""
#: templates/two_factor/core/login.html:54
msgid "Forgot Password?"
msgstr ""
#: templates/two_factor/core/login.html:55
msgid "Register"
msgstr ""
#: templates/two_factor/core/login.html:56
msgid "Resend Activation Link"
msgstr ""
#: templates/two_factor/profile/disable.html:5
msgid "Disable Two-factor Authentication"
msgstr ""
#: templates/two_factor/profile/disable.html:6
msgid ""
"You are about to disable two-factor authentication. This\n"
" compromises your account security, are you sure?"
msgstr ""
#: templates/two_factor/profile/disable.html:12
msgid "Disable"
msgstr ""
#: templates/two_factor/profile/profile.html:5
msgid "Account Security"
msgstr ""
#: templates/two_factor/profile/profile.html:9
msgid "Tokens will be generated by your token generator."
msgstr ""
#: templates/two_factor/profile/profile.html:11
#, python-format
msgid "Primary method: %(primary)s"
msgstr ""
#: templates/two_factor/profile/profile.html:13
msgid "Tokens will be generated by your YubiKey."
msgstr ""
#: templates/two_factor/profile/profile.html:16
msgid "Backup Tokens"
msgstr ""
#: templates/two_factor/profile/profile.html:18
msgid ""
"If you don't have any device with you, you can access\n"
" your account using backup tokens."
msgstr ""
#: templates/two_factor/profile/profile.html:20
#, python-format
msgid ""
"\n"
" You have only one backup token remaining.\n"
" "
msgid_plural ""
"\n"
" You have %(counter)s backup tokens remaining.\n"
" "
msgstr[0] ""
msgstr[1] ""
#: templates/two_factor/profile/profile.html:27
msgid "Show Codes"
msgstr ""
#: templates/two_factor/profile/profile.html:29
#: templates/two_factor/profile/profile.html:33
msgid "Disable Two-Factor Authentication"
msgstr ""
#: templates/two_factor/profile/profile.html:30
msgid ""
"However we strongly discourage you to do so, you can\n"
" also disable two-factor authentication for your account."
msgstr ""
#: templates/two_factor/profile/profile.html:35
msgid ""
"Two-factor authentication is not enabled for your\n"
" account. Enable two-factor authentication for enhanced account\n"
" security."
msgstr ""
#: templates/two_factor/profile/profile.html:39
msgid "Enable Two-Factor Authentication"
msgstr ""
#: warpauth/templates/warpauth/profile.html:13
msgid "information"
msgstr "Information"
#: warpauth/templates/warpauth/profile.html:16
#: warpauth/templates/warpauth/profile/change_password.html:34
msgid "change_password"
msgstr "Change Password"
#: warpauth/templates/warpauth/profile.html:19
msgid "two_factor_authentication"
msgstr "Two Factor Authentication"
#: warpauth/templates/warpauth/profile/change_password.html:9
#: warpauth/templates/warpauth/reset_password/change_password.html:9
msgid "password_change_successful"
msgstr "password change successful"
#: warpauth/templates/warpauth/profile/change_password.html:15
msgid "current_password"
msgstr "Current Password"
#: warpauth/templates/warpauth/profile/change_password.html:21
msgid "new_password"
msgstr "New Password"
#: warpauth/templates/warpauth/profile/change_password.html:27
#: warpauth/templates/warpauth/register/register.html:31
#: warpauth/templates/warpauth/register/register.html:32
#: warpauth/templates/warpauth/reset_password/change_password.html:21
#: warpauth/templates/warpauth/reset_password/change_password.html:22
msgid "confirm_password"
msgstr "Confirm Password"
#: warpauth/templates/warpauth/profile/information.html:5
msgid "user_data"
msgstr "User Data"
#: warpauth/templates/warpauth/profile/information.html:13
msgid "information_changed_successfully"
msgstr "Information Changed Successfully"
#: warpauth/templates/warpauth/profile/information.html:20
#: warpfood/templates/warpfood/edit_sheet.html:15
#: warpfood/templates/warpfood/food_service.html:15
msgid "submit"
msgstr "Submit"
#: warpauth/templates/warpauth/profile/information.html:29
msgid "groups"
msgstr "Groups"
#: warpauth/templates/warpauth/register/activate.html:3
msgid "activation"
msgstr "Activation"
#: warpauth/templates/warpauth/register/activate.html:11
#: warpfood/templates/warpfood/food_service.html:21
msgid "back"
msgstr "Back"
#: warpauth/templates/warpauth/register/activate.html:14
msgid "msg_account_successfully_activated"
msgstr "Account Successfully Activated"
#: warpauth/templates/warpauth/register/activate.html:17
msgid "ok"
msgstr "Ok"
#: warpauth/templates/warpauth/register/register.html:3
#: warpauth/templates/warpauth/register/resend_token.html:3
msgid "registration"
msgstr "Registration"
#: warpauth/templates/warpauth/register/register.html:7
msgid "msg_account_successfully_created"
msgstr "Account Successfully Created"
#: warpauth/templates/warpauth/register/register.html:10
msgid "Back"
msgstr "Back"
#: warpauth/templates/warpauth/register/register.html:15
msgid "please_register"
msgstr "Please Register"
#: warpauth/templates/warpauth/register/register.html:25
#: warpauth/templates/warpauth/register/register.html:26
#: warpauth/templates/warpauth/register/resend_token.html:18
#: warpauth/templates/warpauth/register/resend_token.html:19
#: warpauth/templates/warpauth/reset_password/token_gen.html:15
#: warpauth/templates/warpauth/reset_password/token_gen.html:16
#: warpfood/templates/warpfood/view.html:83
msgid "username"
msgstr "Username"
#: warpauth/templates/warpauth/register/register.html:27
#: warpauth/templates/warpauth/register/register.html:28
#: warpauth/templates/warpauth/register/resend_token.html:20
#: warpauth/templates/warpauth/register/resend_token.html:21
#: warpauth/templates/warpauth/reset_password/token_gen.html:17
#: warpauth/templates/warpauth/reset_password/token_gen.html:18
msgid "email"
msgstr "E-mail"
#: warpauth/templates/warpauth/register/register.html:29
#: warpauth/templates/warpauth/register/register.html:30
#: warpauth/templates/warpauth/reset_password/change_password.html:18
#: warpauth/templates/warpauth/reset_password/change_password.html:19
msgid "password"
msgstr "Password"
#: warpauth/templates/warpauth/register/register.html:33
msgid "register"
msgstr "Register"
#: warpauth/templates/warpauth/register/resend_token.html:7
msgid "error_processing_request"
msgstr "Error Processing your Request"
#: warpauth/templates/warpauth/register/resend_token.html:11
msgid "resend_token_successful"
msgstr "Token sent Successfully "
#: warpauth/templates/warpauth/register/resend_token.html:16
msgid "resend_token"
msgstr "Resent Token"
#: warpauth/templates/warpauth/register/resend_token.html:22
msgid "proceed"
msgstr "Poceed"
#: warpauth/templates/warpauth/reset_password/change_password.html:3
#: warpauth/templates/warpauth/reset_password/change_password.html:24
#: warpauth/templates/warpauth/reset_password/token_gen.html:3
msgid "reset_password"
msgstr "Reset Password"
#: warpauth/templates/warpauth/reset_password/change_password.html:9
msgid "redirect_within_5_sec_if_not_click"
msgstr "You will be redirected within 5 seconds. If not, click "
#: warpauth/templates/warpauth/reset_password/change_password.html:10
msgid "here"
msgstr "here"
#: warpauth/templates/warpauth/reset_password/change_password.html:16
msgid "enter_new_password_for_user"
msgstr "Enter new password for user"
#: warpauth/templates/warpauth/reset_password/token_gen.html:9
msgid "msg_reset_email_sent"
msgstr "E-mail Sent"
#: warpauth/templates/warpauth/reset_password/token_gen.html:14
msgid "enter_email_address"
msgstr "Enter your E-mail Address"
#: warpauth/templates/warpauth/reset_password/token_gen.html:22
#: warpauth/views/register.py:34
msgid "err_invalid_email_format"
msgstr "invalid Email Format"
#: warpauth/templates/warpauth/reset_password/token_gen.html:27
msgid "Reset Password"
msgstr "Reset Password"
#: warpauth/util.py:5
msgid "mail_subj_password_changed_recently"
msgstr "Password Changed Recently"
#: warpauth/util.py:5
msgid "mail_content_password_changed_recently"
msgstr ""
"Hello, \n"
"\n"
" Your password was changed recently. \n"
" \n"
" Yours, \n"
" WarpInfra Team"
#: warpauth/views/register.py:16
#, python-format
msgid "https://infra.warpzone.ms/account/registration/activate/%(token)s"
msgstr ""
"Hello, \n"
"\n"
" Thank you for your registration. To activate your account, please click on "
"the following Link:\n"
" \n"
" https://infra.warpzone.ms/account/registration/activate/%(token)s \n"
"\n"
" Yours, \n"
" WarpInfra Team"
#: warpauth/views/register.py:17
msgid "Your registration for WarpInfra"
msgstr "Your registration for WarpInfra"
#: warpauth/views/register.py:39
msgid "err_fill_all_fields"
msgstr "Required fields are empty"
#: warpauth/views/register.py:41
msgid "err_invalid_username"
msgstr "Invalid username"
#: warpauth/views/register.py:43 warpauth/views/reset_password.py:57
msgid "err_passwords_not_matching"
msgstr "Passwords do not match"
#: warpauth/views/register.py:66
msgid "err_sending_mail"
msgstr "Error sending Mail"
#: warpauth/views/register.py:70
msgid "err_username_not_available"
msgstr "The username is not available"
#: warpauth/views/register.py:83
msgid "err_token_invalid"
msgstr "Invalid Token"
#: warpauth/views/register.py:94 warpauth/views/register.py:97
msgid "err_processing_request"
msgstr "Error processing your request"
#: warpauth/views/reset_password.py:34
msgid "mail_subj_reset_password_token"
msgstr "Reset Password"
#: warpauth/views/reset_password.py:34
#, python-format
msgid "mail_content_reset_password_token %(link)s"
msgstr "Reset Password Token: %(link)s"
#: warpauth/views/reset_password.py:36
msgid "err_sending_email"
msgstr "Error sending mail"
#: warpauth/views/reset_password.py:68
msgid "err_invalid_token"
msgstr "invalid token"
#: warpfood/templates/warpfood/food_service.html:6
#, fuzzy
#| msgid "create_food_service"
msgid "food_service"
msgstr "Create food service"
#: warpfood/templates/warpfood/main.html:16
msgid "create_food_sheet"
msgstr "Create sheet"
#: warpfood/templates/warpfood/main.html:17
#, fuzzy
#| msgid "create_food_service"
msgid "add_food_service"
msgstr "Create food service"
#: warpfood/templates/warpfood/main.html:26
#: warpfood/templates/warpfood/view.html:17
msgid "estimated_order_time"
msgstr "estimated order time"
#: warpfood/templates/warpfood/main.html:26
msgid "pizza_service"
msgstr "pizza service"
#: warpfood/templates/warpfood/main.html:26
msgid "status"
msgstr "Status"
#: warpfood/templates/warpfood/view.html:15
msgid "homepage"
msgstr "Homepage"
#: warpfood/templates/warpfood/view.html:16
msgid "phone_number"
msgstr "Phone"
#: warpfood/templates/warpfood/view.html:19
msgid "real_order_time"
msgstr "order time"
#: warpfood/templates/warpfood/view.html:24
msgid "edit"
msgstr "Edit"
#: warpfood/templates/warpfood/view.html:26
msgid "close"
msgstr "Close"
#: warpfood/templates/warpfood/view.html:28
msgid "open"
msgstr "Open"
#: warpfood/templates/warpfood/view.html:32
msgid "ordered"
msgstr "ordered"
#: warpfood/templates/warpfood/view.html:34
msgid "confirm"
msgstr "Confirm"
#: warpfood/templates/warpfood/view.html:41
msgid "order_sum"
msgstr "Sum"
#: warpfood/templates/warpfood/view.html:57
msgid "choose_from_products"
msgstr "choose from product list"
#: warpfood/templates/warpfood/view.html:65
msgid "order"
msgstr "order"
#: warpfood/templates/warpfood/view.html:73
#, python-format
msgid ""
" this_sheet_was_ordered %(sheet.order_time | naturaltime)s by "
"%(sheet.order_user)s"
msgstr ""
"This sheed was ordered %(sheet.order_time | naturaltime)s by "
"%(sheet.order_user)s"
#: warpfood/templates/warpfood/view.html:84
msgid "article"
msgstr "Article"
#: warpfood/templates/warpfood/view.html:85
msgid "size"
msgstr "Size"
#: warpfood/templates/warpfood/view.html:86
msgid "price"
msgstr "Price"
#: warpfood/templates/warpfood/view.html:87
msgid "comment"
msgstr "Comment"
#: warpfood/templates/warpfood/view.html:88
msgid "paid"
msgstr "Paid"
#: warpfood/templates/warpfood/view.html:132
msgid "product_list"
msgstr "Product List"
#: warpfood/templates/warpfood/view.html:168
#: warpfood/templates/warpfood/view.html:178
msgid "are_you_sure"
msgstr "Are you sure?"
#: warpfood/views.py:30
#, python-format
msgid ""
"pizza_sheet_opened_for_%(est_order_time)s_at_%(pizza_service)s_%(sheet_id)s_"
"%(link)s"
msgstr ""
"[PizzaSheet #%(sheet_id)s](%(link)s) bei %(pizza_service)s mit vorraussichtlicher Bestellzeit "
"%(est_order_time)s geöffnet"
#: warpfood/views.py:119
#, python-format
msgid "pizza_sheet_closed_%(sheet_id)s_%(link)s"
msgstr ""
"[PizzaSheet #%(sheet_id)s](%(link)s) wurde geschlossen."
#: warpfood/views.py:121
#, python-format
msgid "pizza_sheet_opened_again_%(sheet_id)s_%(link)s"
msgstr ""
"[PizzaSheet #%(sheet_id)s](%(link)s) wurde erneut geöffnet"
#: warpfood/views.py:142
#, python-format
msgid ""
"pizza_sheet_ordered_at_%(order_time)s_by_%(username)s_%(sheet_id)s_%(link)s"
msgstr ""
"[PizzaSheet #%(sheet_id)s](%(link)s) wurde um %(order_time)s Uhr von %(username)s "
"bestellt"
#: warpmain/templates/warpmain/about.html:5 warpzone/util.py:9
msgid "about"
msgstr "About"
#: warpmain/templates/warpmain/about.html:7
msgid "welcome_to_wz_internal"
msgstr "Welcome to WarpAutch"
#: warpmain/templates/warpmain/about.html:10
msgid "about_text"
msgstr ""
#: warpmain/templates/warpmain/about.html:14
msgid "visit_us!"
msgstr ""
#: warpmain/templates/warpmain/about.html:17
msgid "license"
msgstr "License"
#: warpmain/templates/warpmain/about.html:19
msgid "licenses"
msgstr "GNU GPL v3"
#: warpmain/templates/warpmain/about.html:22
msgid "support"
msgstr "Support"
#: warpmain/templates/warpmain/about.html:23
msgid "support_text"
msgstr "WTF? Support?"
#: warpmain/templates/warpmain/about.html:26
msgid "mattermost_channel"
msgstr "Mattermost Channel"
#: warpmain/templates/warpmain/about.html:37
msgid "issue_tracker"
msgstr "Issue Tracker"
#: warpmain/templates/warpmain/about.html:52
msgid "open_source_licenses"
msgstr "Licenses"
#: warpmain/templates/warpmain/main.html:7
msgid "news"
msgstr "News"
#: warpmain/templates/warpmain/main.html:11
msgid "add_news"
msgstr "Add"
#: warpmain/templates/warpmain/main.html:20
msgid "create"
msgstr "Create"
#: warpmain/templates/warpmain/main.html:25
#, fuzzy
#| msgid "support"
msgid "markdown_support"
msgstr "Support"
#: warpmain/templates/warpmain/main.html:56
msgid "created_by"
msgstr "Created by"
#: warppay/templates/warppay/main.html:6
msgid "News"
msgstr "News"
#: warppay/templates/warppay/main.html:17
#, fuzzy
#| msgid "created_by"
msgid "created by"
msgstr "Created by"
#~ msgid "project_home"
#~ msgstr "GitLab Project"
/*
DJANGO Admin styles
*/
@import url(fonts.css);
body {
margin: 0;
padding: 0;
font-size: 14px;
font-family: "Roboto","Lucida Grande","DejaVu Sans","Bitstream Vera Sans",Verdana,Arial,sans-serif;
color: #333;
background: #fff;
}
/* LINKS */
a:link, a:visited {
color: #447e9b;
text-decoration: none;
}
a:focus, a:hover {
color: #036;
}
a:focus {
text-decoration: underline;
}
a img {
border: none;
}
a.section:link, a.section:visited {
color: #fff;
text-decoration: none;
}
a.section:focus, a.section:hover {
text-decoration: underline;
}
/* GLOBAL DEFAULTS */
p, ol, ul, dl {
margin: .2em 0 .8em 0;
}
p {
padding: 0;
line-height: 140%;
}
h1,h2,h3,h4,h5 {
font-weight: bold;
}
h1 {
margin: 0 0 20px;
font-weight: 300;
font-size: 20px;
color: #666;
}
h2 {
font-size: 16px;
margin: 1em 0 .5em 0;
}
h2.subhead {
font-weight: normal;
margin-top: 0;
}
h3 {
font-size: 14px;
margin: .8em 0 .3em 0;
color: #666;
font-weight: bold;
}
h4 {
font-size: 12px;
margin: 1em 0 .8em 0;
padding-bottom: 3px;
}
h5 {
font-size: 10px;
margin: 1.5em 0 .5em 0;
color: #666;
text-transform: uppercase;
letter-spacing: 1px;
}
ul li {
list-style-type: square;
padding: 1px 0;
}
li ul {
margin-bottom: 0;
}
li, dt, dd {
font-size: 13px;
line-height: 20px;
}
dt {
font-weight: bold;
margin-top: 4px;
}
dd {
margin-left: 0;
}
form {
margin: 0;
padding: 0;
}
fieldset {
margin: 0;
padding: 0;
border: none;
border-top: 1px solid #eee;
}
blockquote {
font-size: 11px;
color: #777;
margin-left: 2px;
padding-left: 10px;
border-left: 5px solid #ddd;
}
code, pre {
font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace;
color: #666;
font-size: 12px;
}
pre.literal-block {
margin: 10px;
background: #eee;
padding: 6px 8px;
}
code strong {
color: #930;
}
hr {
clear: both;
color: #eee;
background-color: #eee;
height: 1px;
border: none;
margin: 0;
padding: 0;
font-size: 1px;
line-height: 1px;
}
/* TEXT STYLES & MODIFIERS */
.small {
font-size: 11px;
}
.tiny {
font-size: 10px;
}
p.tiny {
margin-top: -2px;
}
.mini {
font-size: 10px;
}
p.mini {
margin-top: -3px;
}
.help, p.help, form p.help {
font-size: 11px;
color: #999;
}
.help-tooltip {
cursor: help;
}
p img, h1 img, h2 img, h3 img, h4 img, td img {
vertical-align: middle;
}
.quiet, a.quiet:link, a.quiet:visited {
color: #999;
font-weight: normal;
}
.float-right {
float: right;
}
.float-left {
float: left;
}
.clear {
clear: both;
}
.align-left {
text-align: left;
}
.align-right {
text-align: right;
}
.example {
margin: 10px 0;
padding: 5px 10px;
background: #efefef;
}
.nowrap {
white-space: nowrap;
}
/* TABLES */
table {
border-collapse: collapse;
border-color: #ccc;
}
td, th {
font-size: 13px;
line-height: 16px;
border-bottom: 1px solid #eee;
vertical-align: top;
padding: 8px;
font-family: "Roboto", "Lucida Grande", Verdana, Arial, sans-serif;
}
th {
font-weight: 600;
text-align: left;
}
thead th,
tfoot td {
color: #666;
padding: 5px 10px;
font-size: 11px;
background: #fff;
border: none;
border-top: 1px solid #eee;
border-bottom: 1px solid #eee;
}
tfoot td {
border-bottom: none;
border-top: 1px solid #eee;
}
tr.alt {
background: #f6f6f6;
}
.row1 {
background: #fff;
}
.row2 {
background: #f9f9f9;
}
/* SORTABLE TABLES */
thead th {
padding: 5px 10px;
line-height: normal;
text-transform: uppercase;
background: #f6f6f6;
}
thead th a:link, thead th a:visited {
color: #666;
}
thead th.sorted {
background: #eee;
}
thead th.sorted .text {
padding-right: 42px;
}
table thead th .text span {
padding: 8px 10px;
display: block;
}
table thead th .text a {
display: block;
cursor: pointer;
padding: 8px 10px;
}
table thead th .text a:focus, table thead th .text a:hover {
background: #eee;
}
thead th.sorted a.sortremove {
visibility: hidden;
}
table thead th.sorted:hover a.sortremove {
visibility: visible;
}
table thead th.sorted .sortoptions {
display: block;
padding: 9px 5px 0 5px;
float: right;
text-align: right;
}
table thead th.sorted .sortpriority {
font-size: .8em;
min-width: 12px;
text-align: center;
vertical-align: 3px;
margin-left: 2px;
margin-right: 2px;
}
table thead th.sorted .sortoptions a {
position: relative;
width: 14px;
height: 14px;
display: inline-block;
background: url(../img/sorting-icons.svg) 0 0 no-repeat;
background-size: 14px auto;
}
table thead th.sorted .sortoptions a.sortremove {
background-position: 0 0;
}
table thead th.sorted .sortoptions a.sortremove:after {
content: '\\';
position: absolute;
top: -6px;
left: 3px;
font-weight: 200;
font-size: 18px;
color: #999;
}
table thead th.sorted .sortoptions a.sortremove:focus:after,
table thead th.sorted .sortoptions a.sortremove:hover:after {
color: #447e9b;
}
table thead th.sorted .sortoptions a.sortremove:focus,
table thead th.sorted .sortoptions a.sortremove:hover {
background-position: 0 -14px;
}
table thead th.sorted .sortoptions a.ascending {
background-position: 0 -28px;
}
table thead th.sorted .sortoptions a.ascending:focus,
table thead th.sorted .sortoptions a.ascending:hover {
background-position: 0 -42px;
}
table thead th.sorted .sortoptions a.descending {
top: 1px;
background-position: 0 -56px;
}
table thead th.sorted .sortoptions a.descending:focus,
table thead th.sorted .sortoptions a.descending:hover {
background-position: 0 -70px;
}
/* FORM DEFAULTS */
input, textarea, select, .form-row p, form .button {
margin: 2px 0;
padding: 2px 3px;
vertical-align: middle;
font-family: "Roboto", "Lucida Grande", Verdana, Arial, sans-serif;
font-weight: normal;
font-size: 13px;
}
textarea {
vertical-align: top;
}
input[type=text], input[type=password], input[type=email], input[type=url],
input[type=number], textarea, select, .vTextField {
border: 1px solid #ccc;
border-radius: 4px;
padding: 5px 6px;
margin-top: 0;
}
input[type=text]:focus, input[type=password]:focus, input[type=email]:focus,
input[type=url]:focus, input[type=number]:focus, textarea:focus, select:focus,
.vTextField:focus {
border-color: #999;
}
select {
height: 30px;
}
select[multiple] {
min-height: 150px;
}
/* FORM BUTTONS */
.button, input[type=submit], input[type=button], .submit-row input, a.button {
background: #79aec8;
padding: 10px 15px;
border: none;
border-radius: 4px;
color: #fff;
cursor: pointer;
}
a.button {
padding: 4px 5px;
}
.button:active, input[type=submit]:active, input[type=button]:active,
.button:focus, input[type=submit]:focus, input[type=button]:focus,
.button:hover, input[type=submit]:hover, input[type=button]:hover {
background: #609ab6;
}
.button[disabled], input[type=submit][disabled], input[type=button][disabled] {
opacity: 0.4;
}
.button.default, input[type=submit].default, .submit-row input.default {
float: right;
border: none;
font-weight: 400;
background: #417690;
}
.button.default:active, input[type=submit].default:active,
.button.default:focus, input[type=submit].default:focus,
.button.default:hover, input[type=submit].default:hover {
background: #205067;
}
.button[disabled].default,
input[type=submit][disabled].default,
input[type=button][disabled].default {
opacity: 0.4;
}
/* MODULES */
.module {
border: none;
margin-bottom: 30px;
background: #fff;
}
.module p, .module ul, .module h3, .module h4, .module dl, .module pre {
padding-left: 10px;
padding-right: 10px;
}
.module blockquote {
margin-left: 12px;
}
.module ul, .module ol {
margin-left: 1.5em;
}
.module h3 {
margin-top: .6em;
}
.module h2, .module caption, .inline-group h2 {
margin: 0;
padding: 8px;
font-weight: 400;
font-size: 13px;
text-align: left;
background: #79aec8;
color: #fff;
}
.module caption,
.inline-group h2 {
font-size: 12px;
letter-spacing: 0.5px;
text-transform: uppercase;
}
.module table {
border-collapse: collapse;
}
/* MESSAGES & ERRORS */
ul.messagelist {
padding: 0;
margin: 0;
}
ul.messagelist li {
display: block;
font-weight: 400;
font-size: 13px;
padding: 10px 10px 10px 65px;
margin: 0 0 10px 0;
background: #dfd url(../img/icon-yes.svg) 40px 12px no-repeat;
background-size: 16px auto;
color: #333;
}
ul.messagelist li.warning {
background: #ffc url(../img/icon-alert.svg) 40px 14px no-repeat;
background-size: 14px auto;
}
ul.messagelist li.error {
background: #ffefef url(../img/icon-no.svg) 40px 12px no-repeat;
background-size: 16px auto;
}
.errornote {
font-size: 14px;
font-weight: 700;
display: block;
padding: 10px 12px;
margin: 0 0 10px 0;
color: #ba2121;
border: 1px solid #ba2121;
border-radius: 4px;
background-color: #fff;
background-position: 5px 12px;
}
ul.errorlist {
margin: 0 0 4px;
padding: 0;
color: #ba2121;
background: #fff;
}
ul.errorlist li {
font-size: 13px;
display: block;
margin-bottom: 4px;
}
ul.errorlist li:first-child {
margin-top: 0;
}
ul.errorlist li a {
color: inherit;
text-decoration: underline;
}
td ul.errorlist {
margin: 0;
padding: 0;
}
td ul.errorlist li {
margin: 0;
}
.form-row.errors {
margin: 0;
border: none;
border-bottom: 1px solid #eee;
background: none;
}
.form-row.errors ul.errorlist li {
padding-left: 0;
}
.errors input, .errors select, .errors textarea {
border: 1px solid #ba2121;
}
div.system-message {
background: #ffc;
margin: 10px;
padding: 6px 8px;
font-size: .8em;
}
div.system-message p.system-message-title {
padding: 4px 5px 4px 25px;
margin: 0;
color: #c11;
background: #ffefef url(../img/icon-no.svg) 5px 5px no-repeat;
}
.description {
font-size: 12px;
padding: 5px 0 0 12px;
}
/* BREADCRUMBS */
div.breadcrumbs {
background: #79aec8;
padding: 10px 40px;
border: none;
font-size: 14px;
color: #c4dce8;
text-align: left;
}
div.breadcrumbs a {
color: #fff;
}
div.breadcrumbs a:focus, div.breadcrumbs a:hover {
color: #c4dce8;
}
/* ACTION ICONS */
.addlink {
padding-left: 16px;
background: url(../img/icon-addlink.svg) 0 1px no-repeat;
}
.changelink, .inlinechangelink {
padding-left: 16px;
background: url(../img/icon-changelink.svg) 0 1px no-repeat;
}
.deletelink {
padding-left: 16px;
background: url(../img/icon-deletelink.svg) 0 1px no-repeat;
}
a.deletelink:link, a.deletelink:visited {
color: #CC3434;
}
a.deletelink:focus, a.deletelink:hover {
color: #993333;
text-decoration: none;
}
/* OBJECT TOOLS */
.object-tools {
font-size: 10px;
font-weight: bold;
padding-left: 0;
float: right;
position: relative;
margin-top: -48px;
}
.form-row .object-tools {
margin-top: 5px;
margin-bottom: 5px;
float: none;
height: 2em;
padding-left: 3.5em;
}
.object-tools li {
display: block;
float: left;
margin-left: 5px;
height: 16px;
}
.object-tools a {
border-radius: 15px;
}
.object-tools a:link, .object-tools a:visited {
display: block;
float: left;
padding: 3px 12px;
background: #999;
font-weight: 400;
font-size: 11px;
text-transform: uppercase;
letter-spacing: 0.5px;
color: #fff;
}
.object-tools a:focus, .object-tools a:hover {
background-color: #417690;
}
.object-tools a:focus{
text-decoration: none;
}
.object-tools a.viewsitelink, .object-tools a.golink,.object-tools a.addlink {
background-repeat: no-repeat;
background-position: 93% center;
padding-right: 26px;
}
.object-tools a.viewsitelink, .object-tools a.golink {
background-image: url(../img/tooltag-arrowright.svg);
}
.object-tools a.addlink {
background-image: url(../img/tooltag-add.svg);
}
/* OBJECT HISTORY */
table#change-history {
width: 100%;
}
table#change-history tbody th {
width: 16em;
}
/* PAGE STRUCTURE */
#container {
position: relative;
width: 100%;
min-width: 980px;
padding: 0;
}
#content {
padding: 20px 40px;
}
.dashboard #content {
width: 600px;
}
#content-main {
float: left;
width: 100%;
}
#content-related {
float: right;
width: 260px;
position: relative;
margin-right: -300px;
}
#footer {
clear: both;
padding: 10px;
}
/* COLUMN TYPES */
.colMS {
margin-right: 300px;
}
.colSM {
margin-left: 300px;
}
.colSM #content-related {
float: left;
margin-right: 0;
margin-left: -300px;
}
.colSM #content-main {
float: right;
}
.popup .colM {
width: auto;
}
/* HEADER */
#header {
width: auto;
height: 40px;
padding: 10px 40px;
background: #417690;
line-height: 40px;
color: #ffc;
overflow: hidden;
}
#header a:link, #header a:visited {
color: #fff;
}
#header a:focus , #header a:hover {
text-decoration: underline;
}
#branding {
float: left;
}
#branding h1 {
padding: 0;
margin: 0 20px 0 0;
font-weight: 300;
font-size: 24px;
color: #f5dd5d;
}
#branding h1, #branding h1 a:link, #branding h1 a:visited {
color: #f5dd5d;
}
#branding h2 {
padding: 0 10px;
font-size: 14px;
margin: -8px 0 8px 0;
font-weight: normal;
color: #ffc;
}
#branding a:hover {
text-decoration: none;
}
#user-tools {
float: right;
padding: 0;
margin: 0 0 0 20px;
font-weight: 300;
font-size: 11px;
letter-spacing: 0.5px;
text-transform: uppercase;
text-align: right;
}
#user-tools a {
border-bottom: 1px solid rgba(255, 255, 255, 0.25);
}
#user-tools a:focus, #user-tools a:hover {
text-decoration: none;
border-bottom-color: #79aec8;
color: #79aec8;
}
/* SIDEBAR */
#content-related {
background: #f8f8f8;
}
#content-related .module {
background: none;
}
#content-related h3 {
font-size: 14px;
color: #666;
padding: 0 16px;
margin: 0 0 16px;
}
#content-related h4 {
font-size: 13px;
}
#content-related p {
padding-left: 16px;
padding-right: 16px;
}
#content-related .actionlist {
padding: 0;
margin: 16px;
}
#content-related .actionlist li {
line-height: 1.2;
margin-bottom: 10px;
padding-left: 18px;
}
#content-related .module h2 {
background: none;
padding: 16px;
margin-bottom: 16px;
border-bottom: 1px solid #eaeaea;
font-size: 18px;
color: #333;
}
.delete-confirmation form input[type="submit"] {
background: #ba2121;
border-radius: 4px;
padding: 10px 15px;
color: #fff;
}
.delete-confirmation form input[type="submit"]:active,
.delete-confirmation form input[type="submit"]:focus,
.delete-confirmation form input[type="submit"]:hover {
background: #a41515;
}
.delete-confirmation form .cancel-link {
display: inline-block;
vertical-align: middle;
height: 15px;
line-height: 15px;
background: #ddd;
border-radius: 4px;
padding: 10px 15px;
color: #333;
margin: 0 0 0 10px;
}
.delete-confirmation form .cancel-link:active,
.delete-confirmation form .cancel-link:focus,
.delete-confirmation form .cancel-link:hover {
background: #ccc;
}
/* POPUP */
.popup #content {
padding: 20px;
}
.popup #container {
min-width: 0;
}
.popup #header {
padding: 10px 20px;
}
/* CHANGELISTS */
#changelist {
position: relative;
width: 100%;
}
#changelist table {
width: 100%;
}
.change-list .hiddenfields { display:none; }
.change-list .filtered table {
border-right: none;
}
.change-list .filtered {
min-height: 400px;
}
.change-list .filtered .results, .change-list .filtered .paginator,
.filtered #toolbar, .filtered div.xfull {
margin-right: 280px;
width: auto;
}
.change-list .filtered table tbody th {
padding-right: 1em;
}
#changelist-form .results {
overflow-x: auto;
}
#changelist .toplinks {
border-bottom: 1px solid #ddd;
}
#changelist .paginator {
color: #666;
border-bottom: 1px solid #eee;
background: #fff;
overflow: hidden;
}
/* CHANGELIST TABLES */
#changelist table thead th {
padding: 0;
white-space: nowrap;
vertical-align: middle;
}
#changelist table thead th.action-checkbox-column {
width: 1.5em;
text-align: center;
}
#changelist table tbody td.action-checkbox {
text-align: center;
}
#changelist table tfoot {
color: #666;
}
/* TOOLBAR */
#changelist #toolbar {
padding: 8px 10px;
margin-bottom: 15px;
border-top: 1px solid #eee;
border-bottom: 1px solid #eee;
background: #f8f8f8;
color: #666;
}
#changelist #toolbar form input {
border-radius: 4px;
font-size: 14px;
padding: 5px;
color: #333;
}
#changelist #toolbar form #searchbar {
height: 19px;
border: 1px solid #ccc;
padding: 2px 5px;
margin: 0;
vertical-align: top;
font-size: 13px;
}
#changelist #toolbar form #searchbar:focus {
border-color: #999;
}
#changelist #toolbar form input[type="submit"] {
border: 1px solid #ccc;
padding: 2px 10px;
margin: 0;
vertical-align: middle;
background: #fff;
box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset;
cursor: pointer;
color: #333;
}
#changelist #toolbar form input[type="submit"]:focus,
#changelist #toolbar form input[type="submit"]:hover {
border-color: #999;
}
#changelist #changelist-search img {
vertical-align: middle;
margin-right: 4px;
}
/* FILTER COLUMN */
#changelist-filter {
position: absolute;
top: 0;
right: 0;
z-index: 1000;
width: 240px;
background: #f8f8f8;
border-left: none;
margin: 0;
}
#changelist-filter h2 {
font-size: 14px;
text-transform: uppercase;
letter-spacing: 0.5px;
padding: 5px 15px;
margin-bottom: 12px;
border-bottom: none;
}
#changelist-filter h3 {
font-weight: 400;
font-size: 14px;
padding: 0 15px;
margin-bottom: 10px;
}
#changelist-filter ul {
margin: 5px 0;
padding: 0 15px 15px;
border-bottom: 1px solid #eaeaea;
}
#changelist-filter ul:last-child {
border-bottom: none;
padding-bottom: none;
}
#changelist-filter li {
list-style-type: none;
margin-left: 0;
padding-left: 0;
}
#changelist-filter a {
display: block;
color: #999;
}
#changelist-filter li.selected {
border-left: 5px solid #eaeaea;
padding-left: 10px;
margin-left: -15px;
}
#changelist-filter li.selected a {
color: #5b80b2;
}
#changelist-filter a:focus, #changelist-filter a:hover,
#changelist-filter li.selected a:focus,
#changelist-filter li.selected a:hover {
color: #036;
}
/* DATE DRILLDOWN */
.change-list ul.toplinks {
display: block;
float: left;
padding: 0;
margin: 0;
width: 100%;
}
.change-list ul.toplinks li {
padding: 3px 6px;
font-weight: bold;
list-style-type: none;
display: inline-block;
}
.change-list ul.toplinks .date-back a {
color: #999;
}
.change-list ul.toplinks .date-back a:focus,
.change-list ul.toplinks .date-back a:hover {
color: #036;
}
/* PAGINATOR */
.paginator {
font-size: 13px;
padding-top: 10px;
padding-bottom: 10px;
line-height: 22px;
margin: 0;
border-top: 1px solid #ddd;
}
.paginator a:link, .paginator a:visited {
padding: 2px 6px;
background: #79aec8;
text-decoration: none;
color: #fff;
}
.paginator a.showall {
padding: 0;
border: none;
background: none;
color: #5b80b2;
}
.paginator a.showall:focus, .paginator a.showall:hover {
background: none;
color: #036;
}
.paginator .end {
margin-right: 6px;
}
.paginator .this-page {
padding: 2px 6px;
font-weight: bold;
font-size: 13px;
vertical-align: top;
}
.paginator a:focus, .paginator a:hover {
color: white;
background: #036;
}
/* ACTIONS */
.filtered .actions {
margin-right: 280px;
border-right: none;
}
#changelist table input {
margin: 0;
vertical-align: baseline;
}
#changelist table tbody tr.selected {
background-color: #FFFFCC;
}
#changelist .actions {
padding: 10px;
background: #fff;
border-top: none;
border-bottom: none;
line-height: 24px;
color: #999;
}
#changelist .actions.selected {
background: #fffccf;
border-top: 1px solid #fffee8;
border-bottom: 1px solid #edecd6;
}
#changelist .actions span.all,
#changelist .actions span.action-counter,
#changelist .actions span.clear,
#changelist .actions span.question {
font-size: 13px;
margin: 0 0.5em;
display: none;
}
#changelist .actions:last-child {
border-bottom: none;
}
#changelist .actions select {
vertical-align: top;
height: 24px;
background: none;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 14px;
padding: 0 0 0 4px;
margin: 0;
margin-left: 10px;
}
#changelist .actions select:focus {
border-color: #999;
}
#changelist .actions label {
display: inline-block;
vertical-align: middle;
font-size: 13px;
}
#changelist .actions .button {
font-size: 13px;
border: 1px solid #ccc;
border-radius: 4px;
background: #fff;
box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset;
cursor: pointer;
height: 24px;
line-height: 1;
padding: 4px 8px;
margin: 0;
color: #333;
}
#changelist .actions .button:focus, #changelist .actions .button:hover {
border-color: #999;
}
/* DASHBOARD */
.dashboard .module table th {
width: 100%;
}
.dashboard .module table td {
white-space: nowrap;
}
.dashboard .module table td a {
display: block;
padding-right: .6em;
}
/* RECENT ACTIONS MODULE */
.module ul.actionlist {
margin-left: 0;
}
ul.actionlist li {
list-style-type: none;
}
ul.actionlist li {
overflow: hidden;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
}
@import url('widgets.css');
/* FORM ROWS */
.form-row {
overflow: hidden;
padding: 10px;
font-size: 13px;
border-bottom: 1px solid #eee;
}
.form-row img, .form-row input {
vertical-align: middle;
}
.form-row label input[type="checkbox"] {
margin-top: 0;
vertical-align: 0;
}
form .form-row p {
padding-left: 0;
}
.hidden {
display: none;
}
/* FORM LABELS */
label {
font-weight: normal;
color: #666;
font-size: 13px;
}
.required label, label.required {
font-weight: bold;
color: #333;
}
/* RADIO BUTTONS */
form ul.radiolist li {
list-style-type: none;
}
form ul.radiolist label {
float: none;
display: inline;
}
form ul.radiolist input[type="radio"] {
margin: -2px 4px 0 0;
padding: 0;
}
form ul.inline {
margin-left: 0;
padding: 0;
}
form ul.inline li {
float: left;
padding-right: 7px;
}
/* ALIGNED FIELDSETS */
.aligned label {
display: block;
padding: 4px 10px 0 0;
float: left;
width: 160px;
word-wrap: break-word;
line-height: 1;
}
.aligned label:not(.vCheckboxLabel):after {
content: '';
display: inline-block;
vertical-align: middle;
height: 26px;
}
.aligned label + p {
padding: 6px 0;
margin-top: 0;
margin-bottom: 0;
margin-left: 170px;
}
.aligned ul label {
display: inline;
float: none;
width: auto;
}
.aligned .form-row input {
margin-bottom: 0;
}
.colMS .aligned .vLargeTextField, .colMS .aligned .vXMLLargeTextField {
width: 350px;
}
form .aligned ul {
margin-left: 160px;
padding-left: 10px;
}
form .aligned ul.radiolist {
display: inline-block;
margin: 0;
padding: 0;
}
form .aligned p.help {
clear: left;
margin-top: 0;
margin-left: 160px;
padding-left: 10px;
}
form .aligned label + p.help {
margin-left: 0;
padding-left: 0;
}
form .aligned p.help:last-child {
margin-bottom: 0;
padding-bottom: 0;
}
form .aligned input + p.help,
form .aligned textarea + p.help,
form .aligned select + p.help {
margin-left: 160px;
padding-left: 10px;
}
form .aligned ul li {
list-style: none;
}
form .aligned table p {
margin-left: 0;
padding-left: 0;
}
.aligned .vCheckboxLabel {
float: none;
width: auto;
display: inline-block;
vertical-align: -3px;
padding: 0 0 5px 5px;
}
.aligned .vCheckboxLabel + p.help {
margin-top: -4px;
}
.colM .aligned .vLargeTextField, .colM .aligned .vXMLLargeTextField {
width: 610px;
}
.checkbox-row p.help {
margin-left: 0;
padding-left: 0;
}
fieldset .field-box {
float: left;
margin-right: 20px;
}
/* WIDE FIELDSETS */
.wide label {
width: 200px;
}
form .wide p, form .wide input + p.help {
margin-left: 200px;
}
form .wide p.help {
padding-left: 38px;
}
.colM fieldset.wide .vLargeTextField, .colM fieldset.wide .vXMLLargeTextField {
width: 450px;
}
/* COLLAPSED FIELDSETS */
fieldset.collapsed * {
display: none;
}
fieldset.collapsed h2, fieldset.collapsed {
display: block;
}
fieldset.collapsed {
border: 1px solid #eee;
border-radius: 4px;
overflow: hidden;
}
fieldset.collapsed h2 {
background: #f8f8f8;
color: #666;
}
fieldset .collapse-toggle {
color: #fff;
}
fieldset.collapsed .collapse-toggle {
background: transparent;
display: inline;
color: #447e9b;
}
/* MONOSPACE TEXTAREAS */
fieldset.monospace textarea {
font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace;
}
/* SUBMIT ROW */
.submit-row {
padding: 12px 14px;
margin: 0 0 20px;
background: #f8f8f8;
border: 1px solid #eee;
border-radius: 4px;
text-align: right;
overflow: hidden;
}
body.popup .submit-row {
overflow: auto;
}
.submit-row input {
height: 35px;
line-height: 15px;
margin: 0 0 0 5px;
}
.submit-row input.default {
margin: 0 0 0 8px;
text-transform: uppercase;
}
.submit-row p {
margin: 0.3em;
}
.submit-row p.deletelink-box {
float: left;
margin: 0;
}
.submit-row a.deletelink {
display: block;
background: #ba2121;
border-radius: 4px;
padding: 10px 15px;
height: 15px;
line-height: 15px;
color: #fff;
}
.submit-row a.deletelink:focus,
.submit-row a.deletelink:hover,
.submit-row a.deletelink:active {
background: #a41515;
}
/* CUSTOM FORM FIELDS */
.vSelectMultipleField {
vertical-align: top;
}
.vCheckboxField {
border: none;
}
.vDateField, .vTimeField {
margin-right: 2px;
margin-bottom: 4px;
}
.vDateField {
min-width: 6.85em;
}
.vTimeField {
min-width: 4.7em;
}
.vURLField {
width: 30em;
}
.vLargeTextField, .vXMLLargeTextField {
width: 48em;
}
.flatpages-flatpage #id_content {
height: 40.2em;
}
.module table .vPositiveSmallIntegerField {
width: 2.2em;
}
.vTextField {
width: 20em;
}
.vIntegerField {
width: 5em;
}
.vBigIntegerField {
width: 10em;
}
.vForeignKeyRawIdAdminField {
width: 5em;
}
/* INLINES */
.inline-group {
padding: 0;
margin: 0 0 30px;
}
.inline-group thead th {
padding: 8px 10px;
}
.inline-group .aligned label {
width: 160px;
}
.inline-related {
position: relative;
}
.inline-related h3 {
margin: 0;
color: #666;
padding: 5px;
font-size: 13px;
background: #f8f8f8;
border-top: 1px solid #eee;
border-bottom: 1px solid #eee;
}
.inline-related h3 span.delete {
float: right;
}
.inline-related h3 span.delete label {
margin-left: 2px;
font-size: 11px;
}
.inline-related fieldset {
margin: 0;
background: #fff;
border: none;
width: 100%;
}
.inline-related fieldset.module h3 {
margin: 0;
padding: 2px 5px 3px 5px;
font-size: 11px;
text-align: left;
font-weight: bold;
background: #bcd;
color: #fff;
}
.inline-group .tabular fieldset.module {
border: none;
}
.inline-related.tabular fieldset.module table {
width: 100%;
}
.last-related fieldset {
border: none;
}
.inline-group .tabular tr.has_original td {
padding-top: 2em;
}
.inline-group .tabular tr td.original {
padding: 2px 0 0 0;
width: 0;
_position: relative;
}
.inline-group .tabular th.original {
width: 0px;
padding: 0;
}
.inline-group .tabular td.original p {
position: absolute;
left: 0;
height: 1.1em;
padding: 2px 9px;
overflow: hidden;
font-size: 9px;
font-weight: bold;
color: #666;
_width: 700px;
}
.inline-group ul.tools {
padding: 0;
margin: 0;
list-style: none;
}
.inline-group ul.tools li {
display: inline;
padding: 0 5px;
}
.inline-group div.add-row,
.inline-group .tabular tr.add-row td {
color: #666;
background: #f8f8f8;
padding: 8px 10px;
border-bottom: 1px solid #eee;
}
.inline-group .tabular tr.add-row td {
padding: 8px 10px;
border-bottom: 1px solid #eee;
}
.inline-group ul.tools a.add,
.inline-group div.add-row a,
.inline-group .tabular tr.add-row td a {
background: url(../img/icon-addlink.svg) 0 1px no-repeat;
padding-left: 16px;
font-size: 12px;
}
.empty-form {
display: none;
}
/* RELATED FIELD ADD ONE / LOOKUP */
.add-another, .related-lookup {
margin-left: 5px;
display: inline-block;
vertical-align: middle;
background-repeat: no-repeat;
background-size: 14px;
}
.add-another {
width: 16px;
height: 16px;
background-image: url(../img/icon-addlink.svg);
}
.related-lookup {
width: 16px;
height: 16px;
background-image: url(../img/search.svg);
}
form .related-widget-wrapper ul {
display: inline-block;
margin-left: 0;
padding-left: 0;
}
.clearable-file-input input {
margin-top: 0;
}
body {
direction: rtl;
}
/* LOGIN */
.login .form-row {
float: right;
}
.login .form-row label {
float: right;
padding-left: 0.5em;
padding-right: 0;
text-align: left;
}
.login .submit-row {
clear: both;
padding: 1em 9.4em 0 0;
}
/* GLOBAL */
th {
text-align: right;
}
.module h2, .module caption {
text-align: right;
}
.module ul, .module ol {
margin-left: 0;
margin-right: 1.5em;
}
.addlink, .changelink {
padding-left: 0;
padding-right: 16px;
background-position: 100% 1px;
}
.deletelink {
padding-left: 0;
padding-right: 16px;
background-position: 100% 1px;
}
.object-tools {
float: left;
}
thead th:first-child,
tfoot td:first-child {
border-left: none;
}
/* LAYOUT */
#user-tools {
right: auto;
left: 0;
text-align: left;
}
div.breadcrumbs {
text-align: right;
}
#content-main {
float: right;
}
#content-related {
float: left;
margin-left: -300px;
margin-right: auto;
}
.colMS {
margin-left: 300px;
margin-right: 0;
}
/* SORTABLE TABLES */
table thead th.sorted .sortoptions {
float: left;
}
thead th.sorted .text {
padding-right: 0;
padding-left: 42px;
}
/* dashboard styles */
.dashboard .module table td a {
padding-left: .6em;
padding-right: 16px;
}
/* changelists styles */
.change-list .filtered table {
border-left: none;
border-right: 0px none;
}
#changelist-filter {
right: auto;
left: 0;
border-left: none;
border-right: none;
}
.change-list .filtered .results, .change-list .filtered .paginator, .filtered #toolbar, .filtered div.xfull {
margin-right: 0;
margin-left: 280px;
}
#changelist-filter li.selected {
border-left: none;
padding-left: 10px;
margin-left: 0;
border-right: 5px solid #eaeaea;
padding-right: 10px;
margin-right: -15px;
}
.filtered .actions {
margin-left: 280px;
margin-right: 0;
}
#changelist table tbody td:first-child, #changelist table tbody th:first-child {
border-right: none;
border-left: none;
}
/* FORMS */
.aligned label {
padding: 0 0 3px 1em;
float: right;
}
.submit-row {
text-align: left
}
.submit-row p.deletelink-box {
float: right;
}
.submit-row input.default {
margin-left: 0;
}
.vDateField, .vTimeField {
margin-left: 2px;
}
.aligned .form-row input {
margin-left: 5px;
}
form ul.inline li {
float: right;
padding-right: 0;
padding-left: 7px;
}
input[type=submit].default, .submit-row input.default {
float: left;
}
fieldset .field-box {
float: right;
margin-left: 20px;
margin-right: 0;
}
.errorlist li {
background-position: 100% 12px;
padding: 0;
}
.errornote {
background-position: 100% 12px;
padding: 10px 12px;
}
/* WIDGETS */
.calendarnav-previous {
top: 0;
left: auto;
right: 10px;
}
.calendarnav-next {
top: 0;
right: auto;
left: 10px;
}
.calendar caption, .calendarbox h2 {
text-align: center;
}
.selector {
float: right;
}
.selector .selector-filter {
text-align: right;
}
.inline-deletelink {
float: left;
}
form .form-row p.datetime {
overflow: hidden;
}
/* MISC */
.inline-related h2, .inline-group h2 {
text-align: right
}
.inline-related h3 span.delete {
padding-right: 20px;
padding-left: inherit;
left: 10px;
right: inherit;
float:left;
}
.inline-related h3 span.delete label {
margin-left: inherit;
margin-right: 2px;
}
/* IE7 specific bug fixes */
div.colM {
position: relative;
}
.submit-row input {
float: left;
}
This diff is collapsed.
(function() {
'use strict';
var SelectBox = {
cache: {},
init: function(id) {
var box = document.getElementById(id);
var node;
SelectBox.cache[id] = [];
var cache = SelectBox.cache[id];
for (var i = 0, j = box.options.length; i < j; i++) {
node = box.options[i];
cache.push({value: node.value, text: node.text, displayed: 1});
}
},
redisplay: function(id) {
// Repopulate HTML select box from cache
var box = document.getElementById(id);
var node;
box.options.length = 0; // clear all options
var cache = SelectBox.cache[id];
for (var i = 0, j = cache.length; i < j; i++) {
node = cache[i];
if (node.displayed) {
var new_option = new Option(node.text, node.value, false, false);
// Shows a tooltip when hovering over the option
new_option.setAttribute("title", node.text);
box.options[box.options.length] = new_option;
}
}
},
filter: function(id, text) {
// Redisplay the HTML select box, displaying only the choices containing ALL
// the words in text. (It's an AND search.)
var tokens = text.toLowerCase().split(/\s+/);
var node, token;
var cache = SelectBox.cache[id];
for (var i = 0, j = cache.length; i < j; i++) {
node = cache[i];
node.displayed = 1;
var numTokens = tokens.length;
for (var k = 0; k < numTokens; k++) {
token = tokens[k];
if (node.text.toLowerCase().indexOf(token) === -1) {
node.displayed = 0;
}
}
}
SelectBox.redisplay(id);
},
delete_from_cache: function(id, value) {
var node, delete_index = null;
var cache = SelectBox.cache[id];
for (var i = 0, j = cache.length; i < j; i++) {
node = cache[i];
if (node.value === value) {
delete_index = i;
break;
}
}
var k = cache.length - 1;
for (i = delete_index; i < k; i++) {
cache[i] = cache[i + 1];
}
cache.length--;
},
add_to_cache: function(id, option) {
SelectBox.cache[id].push({value: option.value, text: option.text, displayed: 1});
},
cache_contains: function(id, value) {
// Check if an item is contained in the cache
var node;
var cache = SelectBox.cache[id];
for (var i = 0, j = cache.length; i < j; i++) {
node = cache[i];
if (node.value === value) {
return true;
}
}
return false;
},
move: function(from, to) {
var from_box = document.getElementById(from);
var option;
var boxOptions = from_box.options;
for (var i = 0, j = boxOptions.length; i < j; i++) {
option = boxOptions[i];
if (option.selected && SelectBox.cache_contains(from, option.value)) {
SelectBox.add_to_cache(to, {value: option.value, text: option.text, displayed: 1});
SelectBox.delete_from_cache(from, option.value);
}
}
SelectBox.redisplay(from);
SelectBox.redisplay(to);
},
move_all: function(from, to) {
var from_box = document.getElementById(from);
var option;
var boxOptions = from_box.options;
for (var i = 0, j = boxOptions.length; i < j; i++) {
option = boxOptions[i];
if (SelectBox.cache_contains(from, option.value)) {
SelectBox.add_to_cache(to, {value: option.value, text: option.text, displayed: 1});
SelectBox.delete_from_cache(from, option.value);
}
}
SelectBox.redisplay(from);
SelectBox.redisplay(to);
},
sort: function(id) {
SelectBox.cache[id].sort(function(a, b) {
a = a.text.toLowerCase();
b = b.text.toLowerCase();
try {
if (a > b) {
return 1;
}
if (a < b) {
return -1;
}
}
catch (e) {
// silently fail on IE 'unknown' exception
}
return 0;
} );
},
select_all: function(id) {
var box = document.getElementById(id);
for (var i = 0; i < box.options.length; i++) {
box.options[i].selected = 'selected';
}
}
};
window.SelectBox = SelectBox;
})();
This diff is collapsed.