A;adido Wotlk Futura Implementacion y Varios arreglos en js

This commit is contained in:
adevopg
2025-02-15 16:38:42 +01:00
parent 40f9b7b0a9
commit 4b83057131
247 changed files with 53731 additions and 5508 deletions
+2
View File
@@ -1 +1,3 @@
venv/
home/__pycache__
home/migrations/__pycache__
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+4 -2
View File
@@ -41,13 +41,15 @@
<link rel="shortcut icon" href="{{ URL_PRINCIPAL }}/static/favicon.ico" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://www.google.com/recaptcha/api.js"></script>
<!--
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js/power.js?lang=es"></script>
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js/nw-scripts.js"></script>
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/login_response.js"></script>
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/my_account_response.js"></script>
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/recruit-response.js"></script>
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/trade_points_response.js"></script>
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/change_email_response.js"></script>
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/register.js"></script>
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/security_token_response.js"></script>
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/change_password_response.js"></script>
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/rename_guild_response.js"></script>
@@ -63,8 +65,8 @@
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/transfer_character_response.js"></script>
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/store_response.js"></script>
<script src="https://js.stripe.com/v3/"></script>
-->
<script>var aowow_tooltips = { "colorlinks": true, "iconizelinks": true, "renamelinks": true }</script>
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js/nw-scripts.js"></script>
<!-- Cookies -->
+1
View File
@@ -22,6 +22,7 @@
</div>
<div class="box-content">
<div class="body-box-content centered">
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/login_response.js"></script>
<form action="{% url 'login' %}" method="POST" id="nw-login-form" accept-charset="utf-8" onsubmit="event.preventDefault(); submitLoginForm();">
{% csrf_token %}
<table class="middle-center-table">
+1
View File
@@ -5,6 +5,7 @@
<div class="box-content">
<div class="title-box-content"><h2>Información</h2></div>
<div class="body-box-content">
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/my_account_response.js"></script>
<fieldset class="account-fieldset">
<legend>Datos básicos</legend>
<div class="separate">
+1 -50
View File
@@ -1,31 +1,6 @@
{% if request.session.username %}
<div class="main-page">
<div class="middle-content">
<script>
function checkAdBlocker() {
let adBlockerDetected = false;
const testAdURL = "https://ultimowow.com/es/nw-js-handlers/openad.js";
const xhr = new XMLHttpRequest();
xhr.open("GET", testAdURL, false);
try {
xhr.send();
if (xhr.status === 0) {
adBlockerDetected = true;
}
} catch (e) {
adBlockerDetected = true;
}
return adBlockerDetected;
}
if (checkAdBlocker()) {
console.log("Ad blocker detectado");
} else {
console.log("No se detectó un ad blocker");
}
</script>
<div class="body-content">
<div class="title-content"><h1>Creación de cuenta</h1></div>
<div class="box-content" id="focus" tabindex="1">
@@ -58,31 +33,6 @@
{% else %}
<div class="main-page">
<div class="middle-content">
<script>
function checkAdBlocker() {
let adBlockerDetected = false;
const testAdURL = "https://ultimowow.com/es/nw-js-handlers/openad.js";
const xhr = new XMLHttpRequest();
xhr.open("GET", testAdURL, false);
try {
xhr.send();
if (xhr.status === 0) {
adBlockerDetected = true;
}
} catch (e) {
adBlockerDetected = true;
}
return adBlockerDetected;
}
if (checkAdBlocker()) {
console.log("Ad blocker detectado");
} else {
console.log("No se detectó un ad blocker");
}
</script>
<div class="body-content">
<div class="title-content"><h1>Creación de cuenta</h1></div>
<div class="box-content" id="focus" tabindex="1">
@@ -106,6 +56,7 @@
<div class="body-box-content centered">
<form action="" method="POST" id="nw-create-form" accept-charset="utf-8">
<table class="middle-center-table">
<script src="{{ URL_PRINCIPAL }}/static/nw-themes/nw-ryu/nw-js-handlers/register.js"></script>
<tbody><tr>
<td><input type="text" maxlength="17" name="username" id="username" placeholder="Nombre de usuario"></td>
</tr>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+29 -11
View File
@@ -11,6 +11,7 @@ https://docs.djangoproject.com/en/5.1/ref/settings/
"""
from pathlib import Path
import os
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
@@ -23,16 +24,27 @@ BASE_DIR = Path(__file__).resolve().parent.parent
SECRET_KEY = 'django-insecure-os9f6#@x_5*sfv2g6vyj*31$964_s%7(%&x0+m)crrbj^=0wus'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
DEBUG = True
ALLOWED_HOSTS = ['novawow.com', 'www.novawow.com', '95.216.107.200']
SECURE_SSL_REDIRECT = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
SECURE_HSTS_SECONDS = 31536000 # Habilita HSTS por 1 año
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_PRELOAD = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
if not DEBUG:
ALLOWED_HOSTS = ['novawow.com', 'www.novawow.com', '95.216.107.200', 'localhost', '127.0.0.1']
SECURE_SSL_REDIRECT = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
SECURE_HSTS_SECONDS = 31536000 # Habilita HSTS por 1 año
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_PRELOAD = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
else:
# Modo desarrollo, no se aplican configuraciones de seguridad
ALLOWED_HOSTS = ['localhost', '127.0.0.1']
SECURE_SSL_REDIRECT = False
SECURE_PROXY_SSL_HEADER = None
SECURE_HSTS_SECONDS = 0
SECURE_HSTS_INCLUDE_SUBDOMAINS = False
SECURE_HSTS_PRELOAD = False
SESSION_COOKIE_SECURE = False
CSRF_COOKIE_SECURE = False
# Application definition
@@ -46,6 +58,7 @@ INSTALLED_APPS = [
'home',
'django_ckeditor_5',
'django_extensions',
'wotlk_db',
]
# Configuración para AC SOAP
@@ -110,7 +123,7 @@ MIDDLEWARE = [
ROOT_URLCONF = 'novawow.urls'
URL_PRINCIPAL = 'http://novawow.com:8009'
URL_PRINCIPAL = 'http://127.0.0.1:8000'
# Nombre del servidor
NOMBRE_SERVIDOR = "Nova WoW"
@@ -233,7 +246,12 @@ USE_TZ = True
# https://docs.djangoproject.com/en/5.1/howto/static-files/
STATIC_URL = 'static/'
STATIC_ROOT = 'static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
# Directorios adicionales donde buscar archivos estáticos
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
# Default primary key field type
# https://docs.djangoproject.com/en/5.1/ref/settings/#default-auto-field
+5
View File
@@ -3,6 +3,7 @@ from django.conf.urls.i18n import i18n_patterns
from django.urls import path, include
from django.contrib import admin
from .views import redirect_to_spanish # Importamos la vista de redirección
from django.conf.urls.static import static
urlpatterns = [
path('', redirect_to_spanish), # Redirige la raíz a `/es/`
@@ -12,6 +13,10 @@ urlpatterns = [
urlpatterns += i18n_patterns(
path('admin/', admin.site.urls),
path('', include('home.urls')), # Incluye las URLs de la app `home`
path('wotlk/', include('wotlk_db.urls')),
path('ckeditor5/', include('django_ckeditor_5.urls')),
)
# Esto debe estar al final para que Django sirva archivos estáticos durante el desarrollo
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
+4
View File
@@ -273,3 +273,7 @@ select.admin-autocomplete {
display: block;
padding: 6px;
}
.errors .select2-selection {
border: 1px solid var(--error-fg);
}
+62 -28
View File
@@ -13,6 +13,7 @@ html[data-theme="light"],
--body-fg: #333;
--body-bg: #fff;
--body-quiet-color: #666;
--body-medium-color: #444;
--body-loud-color: #000;
--header-color: #ffc;
@@ -22,11 +23,11 @@ html[data-theme="light"],
--breadcrumbs-fg: #c4dce8;
--breadcrumbs-link-fg: var(--body-bg);
--breadcrumbs-bg: var(--primary);
--breadcrumbs-bg: #264b5d;
--link-fg: #417893;
--link-hover-color: #036;
--link-selected-fg: #5b80b2;
--link-selected-fg: var(--secondary);
--hairline-color: #e8e8e8;
--border-color: #ccc;
@@ -42,10 +43,10 @@ html[data-theme="light"],
--selected-row: #ffc;
--button-fg: #fff;
--button-bg: var(--primary);
--button-hover-bg: #609ab6;
--default-button-bg: var(--secondary);
--default-button-hover-bg: #205067;
--button-bg: var(--secondary);
--button-hover-bg: #205067;
--default-button-bg: #205067;
--default-button-hover-bg: var(--secondary);
--close-button-bg: #747474;
--close-button-hover-bg: #333;
--delete-button-bg: #ba2121;
@@ -56,8 +57,6 @@ html[data-theme="light"],
--object-tools-hover-bg: var(--close-button-hover-bg);
--font-family-primary:
-apple-system,
BlinkMacSystemFont,
"Segoe UI",
system-ui,
Roboto,
@@ -86,6 +85,8 @@ html[data-theme="light"],
"Segoe UI Emoji",
"Segoe UI Symbol",
"Noto Color Emoji";
color-scheme: light;
}
html, body {
@@ -149,7 +150,6 @@ h1 {
margin: 0 0 20px;
font-weight: 300;
font-size: 1.25rem;
color: var(--body-quiet-color);
}
h2 {
@@ -165,7 +165,7 @@ h2.subhead {
h3 {
font-size: 0.875rem;
margin: .8em 0 .3em 0;
color: var(--body-quiet-color);
color: var(--body-medium-color);
font-weight: bold;
}
@@ -173,6 +173,7 @@ h4 {
font-size: 0.75rem;
margin: 1em 0 .8em 0;
padding-bottom: 3px;
color: var(--body-medium-color);
}
h5 {
@@ -219,6 +220,10 @@ fieldset {
border-top: 1px solid var(--hairline-color);
}
details summary {
cursor: pointer;
}
blockquote {
font-size: 0.6875rem;
color: #777;
@@ -315,7 +320,7 @@ td, th {
}
th {
font-weight: 600;
font-weight: 500;
text-align: left;
}
@@ -336,7 +341,7 @@ tfoot td {
}
thead th.required {
color: var(--body-loud-color);
font-weight: bold;
}
tr.alt {
@@ -484,8 +489,13 @@ textarea {
vertical-align: top;
}
input[type=text], input[type=password], input[type=email], input[type=url],
input[type=number], input[type=tel], textarea, select, .vTextField {
/*
Minifiers remove the default (text) "type" attribute from "input" HTML tags.
Add input:not([type]) to make the CSS stylesheet work the same.
*/
input:not([type]), input[type=text], input[type=password], input[type=email],
input[type=url], input[type=number], input[type=tel], textarea, select,
.vTextField {
border: 1px solid var(--border-color);
border-radius: 4px;
padding: 5px 6px;
@@ -494,9 +504,13 @@ input[type=number], input[type=tel], textarea, select, .vTextField {
background-color: var(--body-bg);
}
input[type=text]:focus, input[type=password]:focus, input[type=email]:focus,
input[type=url]:focus, input[type=number]:focus, input[type=tel]:focus,
textarea:focus, select:focus, .vTextField:focus {
/*
Minifiers remove the default (text) "type" attribute from "input" HTML tags.
Add input:not([type]) to make the CSS stylesheet work the same.
*/
input:not([type]):focus, input[type=text]:focus, input[type=password]:focus,
input[type=email]:focus, input[type=url]:focus, input[type=number]:focus,
input[type=tel]:focus, textarea:focus, select:focus, .vTextField:focus {
border-color: var(--body-quiet-color);
}
@@ -586,7 +600,7 @@ input[type=button][disabled].default {
font-weight: 400;
font-size: 0.8125rem;
text-align: left;
background: var(--primary);
background: var(--header-bg);
color: var(--header-link-color);
}
@@ -722,6 +736,11 @@ div.breadcrumbs a:focus, div.breadcrumbs a:hover {
background: url(../img/icon-viewlink.svg) 0 1px no-repeat;
}
.hidelink {
padding-left: 16px;
background: url(../img/icon-hidelink.svg) 0 1px no-repeat;
}
.addlink {
padding-left: 16px;
background: url(../img/icon-addlink.svg) 0 1px no-repeat;
@@ -831,10 +850,6 @@ a.deletelink:focus, a.deletelink:hover {
height: 100%;
}
#container > div {
flex-shrink: 0;
}
#container > .main {
display: flex;
flex: 1 0 auto;
@@ -879,9 +894,10 @@ a.deletelink:focus, a.deletelink:hover {
margin-right: -300px;
}
#footer {
clear: both;
padding: 10px;
@media (forced-colors: active) {
#content-related {
border: 1px solid;
}
}
/* COLUMN TYPES */
@@ -919,7 +935,6 @@ a.deletelink:focus, a.deletelink:hover {
padding: 10px 40px;
background: var(--header-bg);
color: var(--header-color);
overflow: hidden;
}
#header a:link, #header a:visited, #logout-form button {
@@ -930,11 +945,17 @@ a.deletelink:focus, a.deletelink:hover {
text-decoration: underline;
}
@media (forced-colors: active) {
#header {
border-bottom: 1px solid;
}
}
#branding {
display: flex;
}
#branding h1 {
#site-name {
padding: 0;
margin: 0;
margin-inline-end: 20px;
@@ -943,7 +964,7 @@ a.deletelink:focus, a.deletelink:hover {
color: var(--header-branding-color);
}
#branding h1 a:link, #branding h1 a:visited {
#site-name a:link, #site-name a:visited {
color: var(--accent);
}
@@ -1143,3 +1164,16 @@ a.deletelink:focus, a.deletelink:hover {
.base-svgs {
display: none;
}
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
overflow: hidden;
clip: rect(0,0,0,0);
white-space: nowrap;
border: 0;
color: var(--body-fg);
background-color: var(--body-bg);
}
+17 -2
View File
@@ -139,6 +139,12 @@
margin: 0 0 0 30px;
}
@media (forced-colors: active) {
#changelist-filter {
border: 1px solid;
}
}
#changelist-filter h2 {
font-size: 0.875rem;
text-transform: uppercase;
@@ -215,9 +221,9 @@
color: var(--link-hover-color);
}
#changelist-filter #changelist-filter-clear a {
#changelist-filter #changelist-filter-extra-actions {
font-size: 0.8125rem;
padding-bottom: 10px;
margin-bottom: 10px;
border-bottom: 1px solid var(--hairline-color);
}
@@ -265,6 +271,15 @@
background-color: var(--selected-row);
}
@media (forced-colors: active) {
#changelist tbody tr.selected {
background-color: SelectedItem;
}
#changelist tbody tr:has(.action-select:checked) {
background-color: SelectedItem;
}
}
#changelist .actions {
padding: 10px;
background: var(--body-bg);
+8 -15
View File
@@ -5,7 +5,8 @@
--body-fg: #eeeeee;
--body-bg: #121212;
--body-quiet-color: #e0e0e0;
--body-quiet-color: #d0d0d0;
--body-medium-color: #e0e0e0;
--body-loud-color: #ffffff;
--breadcrumbs-link-fg: #e0e0e0;
@@ -29,6 +30,8 @@
--close-button-bg: #333333;
--close-button-hover-bg: #666666;
color-scheme: dark;
}
}
@@ -39,7 +42,8 @@ html[data-theme="dark"] {
--body-fg: #eeeeee;
--body-bg: #121212;
--body-quiet-color: #e0e0e0;
--body-quiet-color: #d0d0d0;
--body-medium-color: #e0e0e0;
--body-loud-color: #ffffff;
--breadcrumbs-link-fg: #e0e0e0;
@@ -63,6 +67,8 @@ html[data-theme="dark"] {
--close-button-bg: #333333;
--close-button-hover-bg: #666666;
color-scheme: dark;
}
/* THEME SWITCH */
@@ -122,16 +128,3 @@ html[data-theme="dark"] .theme-toggle svg.theme-icon-when-dark {
html[data-theme="light"] .theme-toggle svg.theme-icon-when-light {
display: block;
}
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
overflow: hidden;
clip: rect(0,0,0,0);
white-space: nowrap;
border: 0;
color: var(--body-fg);
background-color: var(--body-bg);
}
+33 -55
View File
@@ -44,7 +44,6 @@ label {
.required label, label.required {
font-weight: bold;
color: var(--body-fg);
}
/* RADIO BUTTONS */
@@ -76,6 +75,20 @@ form ul.inline li {
padding-right: 7px;
}
/* FIELDSETS */
fieldset .fieldset-heading,
fieldset .inline-heading,
:not(.inline-related) .collapse summary {
border: 1px solid var(--header-bg);
margin: 0;
padding: 8px;
font-weight: 400;
font-size: 0.8125rem;
background: var(--header-bg);
color: var(--header-link-color);
}
/* ALIGNED FIELDSETS */
.aligned label {
@@ -84,14 +97,12 @@ form ul.inline li {
min-width: 160px;
width: 160px;
word-wrap: break-word;
line-height: 1;
}
.aligned label:not(.vCheckboxLabel):after {
content: '';
display: inline-block;
vertical-align: middle;
height: 1.625rem;
}
.aligned label + p, .aligned .checkbox-row + div.help, .aligned label + div.readonly {
@@ -158,6 +169,10 @@ form .aligned select + div.help {
padding-left: 10px;
}
form .aligned select option:checked {
background-color: var(--selected-row);
}
form .aligned ul li {
list-style: none;
}
@@ -168,11 +183,7 @@ form .aligned table p {
}
.aligned .vCheckboxLabel {
float: none;
width: auto;
display: inline-block;
vertical-align: -3px;
padding: 0 0 5px 5px;
padding: 1px 0 0 5px;
}
.aligned .vCheckboxLabel + p.help,
@@ -194,14 +205,8 @@ fieldset .fieldBox {
width: 200px;
}
form .wide p,
form .wide ul.errorlist,
form .wide input + p.help,
form .wide input + div.help {
margin-left: 200px;
}
form .wide p.help,
form .wide ul.errorlist,
form .wide div.help {
padding-left: 50px;
}
@@ -215,35 +220,16 @@ form div.help ul {
width: 450px;
}
/* COLLAPSED FIELDSETS */
/* COLLAPSIBLE FIELDSETS */
fieldset.collapsed * {
display: none;
}
fieldset.collapsed h2, fieldset.collapsed {
display: block;
}
fieldset.collapsed {
border: 1px solid var(--hairline-color);
border-radius: 4px;
overflow: hidden;
}
fieldset.collapsed h2 {
background: var(--darkened-bg);
color: var(--body-quiet-color);
}
fieldset .collapse-toggle {
color: var(--header-link-color);
}
fieldset.collapsed .collapse-toggle {
.collapse summary .fieldset-heading,
.collapse summary .inline-heading {
background: transparent;
border: none;
color: currentColor;
display: inline;
color: var(--link-fg);
margin: 0;
padding: 0;
}
/* MONOSPACE TEXTAREAS */
@@ -395,14 +381,16 @@ body.popup .submit-row {
position: relative;
}
.inline-related h3 {
.inline-related h4,
.inline-related:not(.tabular) .collapse summary {
margin: 0;
color: var(--body-quiet-color);
color: var(--body-medium-color);
padding: 5px;
font-size: 0.8125rem;
background: var(--darkened-bg);
border-top: 1px solid var(--hairline-color);
border-bottom: 1px solid var(--hairline-color);
border: 1px solid var(--hairline-color);
border-left-color: var(--darkened-bg);
border-right-color: var(--darkened-bg);
}
.inline-related h3 span.delete {
@@ -421,16 +409,6 @@ body.popup .submit-row {
width: 100%;
}
.inline-related fieldset.module h3 {
margin: 0;
padding: 2px 5px 3px 5px;
font-size: 0.6875rem;
text-align: left;
font-weight: bold;
background: #bcd;
color: var(--body-bg);
}
.inline-group .tabular fieldset.module {
border: none;
}
+1 -1
View File
@@ -21,7 +21,7 @@
}
.login #content {
padding: 20px 20px 0;
padding: 20px;
}
.login #container {
+6
View File
@@ -102,6 +102,12 @@
background: var(--selected-row);
}
@media (forced-colors: active) {
#nav-sidebar .current-model {
background-color: SelectedItem;
}
}
.main > #nav-sidebar + .content {
max-width: calc(100% - 23px);
}
+12 -44
View File
@@ -43,7 +43,7 @@ input[type="submit"], button {
justify-content: flex-start;
}
#branding h1 {
#site-name {
margin: 0 0 8px;
line-height: 1.2;
}
@@ -171,9 +171,14 @@ input[type="submit"], button {
/* Forms */
label {
font-size: 0.875rem;
font-size: 1rem;
}
/*
Minifiers remove the default (text) "type" attribute from "input" HTML
tags. Add input:not([type]) to make the CSS stylesheet work the same.
*/
.form-row input:not([type]),
.form-row input[type=text],
.form-row input[type=password],
.form-row input[type=email],
@@ -187,7 +192,7 @@ input[type="submit"], button {
margin: 0;
padding: 6px 8px;
min-height: 2.25rem;
font-size: 0.875rem;
font-size: 1rem;
}
.form-row select {
@@ -237,22 +242,6 @@ input[type="submit"], button {
padding: 7px;
}
/* Related widget */
.related-widget-wrapper {
float: none;
}
.related-widget-wrapper-link + .selector {
max-width: calc(100% - 30px);
margin-right: 15px;
}
select + .related-widget-wrapper-link,
.related-widget-wrapper-link + .related-widget-wrapper-link {
margin-left: 10px;
}
/* Selector */
.selector {
@@ -270,7 +259,7 @@ input[type="submit"], button {
}
.selector .selector-filter input {
width: auto;
width: 100%;
min-height: 0;
flex: 1 1;
}
@@ -292,7 +281,6 @@ input[type="submit"], button {
width: 26px;
height: 52px;
padding: 2px 0;
margin: auto 15px;
border-radius: 20px;
transform: translateY(-10px);
}
@@ -336,7 +324,6 @@ input[type="submit"], button {
width: 52px;
height: 26px;
padding: 0 2px;
margin: 15px auto;
transform: none;
}
@@ -432,7 +419,7 @@ input[type="submit"], button {
padding: 15px 20px;
}
.login #branding h1 {
.login #site-name {
margin: 0;
}
@@ -464,14 +451,10 @@ input[type="submit"], button {
@media (max-width: 767px) {
/* Layout */
#header, #content, #footer {
#header, #content {
padding: 15px;
}
#footer:empty {
padding: 0;
}
div.breadcrumbs {
padding: 10px 15px;
}
@@ -582,10 +565,6 @@ input[type="submit"], button {
padding-top: 15px;
}
fieldset.collapsed .form-row {
display: none;
}
.aligned label {
width: 100%;
min-width: auto;
@@ -684,23 +663,14 @@ input[type="submit"], button {
align-self: center;
}
select + .related-widget-wrapper-link,
.related-widget-wrapper-link + .related-widget-wrapper-link {
margin-left: 15px;
}
/* Selector */
.selector {
flex-direction: column;
}
.selector > * {
float: none;
gap: 10px 0;
}
.selector-available, .selector-chosen {
margin-bottom: 0;
flex: 1 1 auto;
}
@@ -710,11 +680,9 @@ input[type="submit"], button {
.selector ul.selector-chooser {
display: block;
float: none;
width: 52px;
height: 26px;
padding: 0 2px;
margin: 15px auto 20px;
transform: none;
}
+32 -5
View File
@@ -35,11 +35,6 @@
background-position: calc(100% - 8px) 9px;
}
[dir="rtl"] .related-widget-wrapper-link + .selector {
margin-right: 0;
margin-left: 15px;
}
[dir="rtl"] .selector .selector-filter label {
margin-right: 0;
margin-left: 8px;
@@ -58,6 +53,22 @@
padding-left: 0;
padding-right: 16px;
}
[dir="rtl"] .selector-add {
background-position: 0 -80px;
}
[dir="rtl"] .selector-remove {
background-position: 0 -120px;
}
[dir="rtl"] .active.selector-add:focus, .active.selector-add:hover {
background-position: 0 -100px;
}
[dir="rtl"] .active.selector-remove:focus, .active.selector-remove:hover {
background-position: 0 -140px;
}
}
/* MOBILE */
@@ -81,4 +92,20 @@
[dir="rtl"] .aligned .vCheckboxLabel {
padding: 1px 5px 0 0;
}
[dir="rtl"] .selector-remove {
background-position: 0 0;
}
[dir="rtl"] .active.selector-remove:focus, .active.selector-remove:hover {
background-position: 0 -20px;
}
[dir="rtl"] .selector-add {
background-position: 0 -40px;
}
[dir="rtl"] .active.selector-add:focus, .active.selector-add:hover {
background-position: 0 -60px;
}
}
+14 -21
View File
@@ -13,7 +13,7 @@ th {
margin-right: 1.5em;
}
.viewlink, .addlink, .changelink {
.viewlink, .addlink, .changelink, .hidelink {
padding-left: 0;
padding-right: 16px;
background-position: 100% 1px;
@@ -151,6 +151,7 @@ form ul.inline li {
form .aligned p.help,
form .aligned div.help {
margin-left: 0;
margin-right: 160px;
padding-right: 10px;
}
@@ -164,19 +165,13 @@ form .aligned p.time div.help.timezonewarning {
padding-right: 0;
}
form .wide p.help, form .wide div.help {
form .wide p.help,
form .wide ul.errorlist,
form .wide div.help {
padding-left: 0;
padding-right: 50px;
}
form .wide p,
form .wide ul.errorlist,
form .wide input + p.help,
form .wide input + div.help {
margin-right: 200px;
margin-left: 0px;
}
.submit-row {
text-align: right;
}
@@ -202,12 +197,7 @@ fieldset .fieldBox {
top: 0;
left: auto;
right: 10px;
background: url(../img/calendar-icons.svg) 0 -30px no-repeat;
}
.calendarbox .calendarnav-previous:focus,
.calendarbox .calendarnav-previous:hover {
background-position: 0 -45px;
background: url(../img/calendar-icons.svg) 0 -15px no-repeat;
}
.calendarnav-next {
@@ -217,11 +207,6 @@ fieldset .fieldBox {
background: url(../img/calendar-icons.svg) 0 0 no-repeat;
}
.calendarbox .calendarnav-next:focus,
.calendarbox .calendarnav-next:hover {
background-position: 0 -15px;
}
.calendar caption, .calendarbox h2 {
text-align: center;
}
@@ -296,3 +281,11 @@ form .form-row p.datetime {
margin-left: inherit;
margin-right: 2px;
}
.inline-group .tabular td.original p {
right: 0;
}
.selector .selector-chooser {
margin: 0;
}
@@ -0,0 +1,19 @@
/* Hide warnings fields if usable password is selected */
form:has(#id_usable_password input[value="true"]:checked) .messagelist {
display: none;
}
/* Hide password fields if unusable password is selected */
form:has(#id_usable_password input[value="false"]:checked) .field-password1,
form:has(#id_usable_password input[value="false"]:checked) .field-password2 {
display: none;
}
/* Select appropriate submit button */
form:has(#id_usable_password input[value="true"]:checked) input[type="submit"].unset-password {
display: none;
}
form:has(#id_usable_password input[value="false"]:checked) input[type="submit"].set-password {
display: none;
}
+27 -38
View File
@@ -1,23 +1,23 @@
/* SELECTOR (FILTER INTERFACE) */
.selector {
width: 800px;
float: left;
display: flex;
flex-grow: 1;
gap: 0 10px;
}
.selector select {
width: 380px;
height: 17.2em;
flex: 1 0 auto;
overflow: scroll;
width: 100%;
}
.selector-available, .selector-chosen {
width: 380px;
text-align: center;
margin-bottom: 5px;
display: flex;
flex-direction: column;
flex: 1 1;
}
.selector-available h2, .selector-chosen h2 {
@@ -41,7 +41,7 @@
}
.selector-chosen h2 {
background: var(--primary);
background: var(--secondary);
color: var(--header-link-color);
}
@@ -58,6 +58,7 @@
font-size: 0.625rem;
margin: 0;
text-align: left;
display: flex;
}
.selector .selector-filter label,
@@ -72,9 +73,12 @@
min-width: auto;
}
.selector-filter input {
flex-grow: 1;
}
.selector .selector-available input,
.selector .selector-chosen input {
width: 320px;
margin-left: 8px;
}
@@ -83,7 +87,7 @@
width: 22px;
background-color: var(--selected-bg);
border-radius: 10px;
margin: 0 5px;
margin: 0;
padding: 0;
transform: translateY(-17px);
}
@@ -147,7 +151,7 @@ a.selector-chooseall, a.selector-clearall {
display: inline-block;
height: 16px;
text-align: left;
margin: 1px auto 3px;
margin: 0 auto;
overflow: hidden;
font-weight: bold;
line-height: 16px;
@@ -447,7 +451,7 @@ span.clearable-file-input label {
}
.calendar td.selected a {
background: var(--primary);
background: var(--secondary);
color: var(--button-fg);
}
@@ -515,36 +519,26 @@ span.clearable-file-input label {
background: url(../img/calendar-icons.svg) 0 0 no-repeat;
}
.calendarbox .calendarnav-previous:focus,
.calendarbox .calendarnav-previous:hover {
background-position: 0 -15px;
}
.calendarnav-next {
right: 10px;
background: url(../img/calendar-icons.svg) 0 -30px no-repeat;
}
.calendarbox .calendarnav-next:focus,
.calendarbox .calendarnav-next:hover {
background-position: 0 -45px;
background: url(../img/calendar-icons.svg) 0 -15px no-repeat;
}
.calendar-cancel {
margin: 0;
padding: 4px 0;
font-size: 0.75rem;
background: #eee;
background: var(--close-button-bg);
border-top: 1px solid var(--border-color);
color: var(--body-fg);
color: var(--button-fg);
}
.calendar-cancel:focus, .calendar-cancel:hover {
background: #ddd;
background: var(--close-button-hover-bg);
}
.calendar-cancel a {
color: black;
color: var(--button-fg);
display: block;
}
@@ -575,26 +569,21 @@ ul.timelist, .timelist li {
/* RELATED WIDGET WRAPPER */
.related-widget-wrapper {
float: left; /* display properly in form rows with multiple fields */
overflow: hidden; /* clear floated contents */
display: flex;
gap: 0 10px;
flex-grow: 1;
flex-wrap: wrap;
margin-bottom: 5px;
}
.related-widget-wrapper-link {
opacity: 0.3;
opacity: .6;
filter: grayscale(1);
}
.related-widget-wrapper-link:link {
opacity: .8;
}
.related-widget-wrapper-link:link:focus,
.related-widget-wrapper-link:link:hover {
opacity: 1;
}
select + .related-widget-wrapper-link,
.related-widget-wrapper-link + .related-widget-wrapper-link {
margin-left: 7px;
filter: grayscale(0);
}
/* GIS MAPS */
+1 -1
View File
@@ -1,4 +1,4 @@
All icons are taken from Font Awesome (http://fontawesome.io/) project.
All icons are taken from Font Awesome (https://fontawesome.com/) project.
The Font Awesome font is licensed under the SIL OFL 1.1:
- https://scripts.sil.org/OFL
+59 -10
View File
@@ -1,14 +1,63 @@
<svg width="15" height="60" viewBox="0 0 1792 7168" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<g id="previous">
<path d="M1037 1395l102-102q19-19 19-45t-19-45l-307-307 307-307q19-19 19-45t-19-45l-102-102q-19-19-45-19t-45 19l-454 454q-19 19-19 45t19 45l454 454q19 19 45 19t45-19zm627-499q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="15"
height="30"
viewBox="0 0 1792 3584"
version="1.1"
id="svg5"
sodipodi:docname="calendar-icons.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview5"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="13.3"
inkscape:cx="15.526316"
inkscape:cy="20.977444"
inkscape:window-width="1920"
inkscape:window-height="1011"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg5" />
<defs
id="defs2">
<g
id="previous">
<path
d="m 1037,1395 102,-102 q 19,-19 19,-45 0,-26 -19,-45 L 832,896 1139,589 q 19,-19 19,-45 0,-26 -19,-45 L 1037,397 q -19,-19 -45,-19 -26,0 -45,19 L 493,851 q -19,19 -19,45 0,26 19,45 l 454,454 q 19,19 45,19 26,0 45,-19 z m 627,-499 q 0,209 -103,385.5 Q 1458,1458 1281.5,1561 1105,1664 896,1664 687,1664 510.5,1561 334,1458 231,1281.5 128,1105 128,896 128,687 231,510.5 334,334 510.5,231 687,128 896,128 1105,128 1281.5,231 1458,334 1561,510.5 1664,687 1664,896 Z"
id="path1" />
</g>
<g id="next">
<path d="M845 1395l454-454q19-19 19-45t-19-45l-454-454q-19-19-45-19t-45 19l-102 102q-19 19-19 45t19 45l307 307-307 307q-19 19-19 45t19 45l102 102q19 19 45 19t45-19zm819-499q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/>
<g
id="next">
<path
d="m 845,1395 454,-454 q 19,-19 19,-45 0,-26 -19,-45 L 845,397 q -19,-19 -45,-19 -26,0 -45,19 L 653,499 q -19,19 -19,45 0,26 19,45 l 307,307 -307,307 q -19,19 -19,45 0,26 19,45 l 102,102 q 19,19 45,19 26,0 45,-19 z m 819,-499 q 0,209 -103,385.5 Q 1458,1458 1281.5,1561 1105,1664 896,1664 687,1664 510.5,1561 334,1458 231,1281.5 128,1105 128,896 128,687 231,510.5 334,334 510.5,231 687,128 896,128 1105,128 1281.5,231 1458,334 1561,510.5 1664,687 1664,896 Z"
id="path2" />
</g>
</defs>
<use xlink:href="#previous" x="0" y="0" fill="#333333" />
<use xlink:href="#previous" x="0" y="1792" fill="#000000" />
<use xlink:href="#next" x="0" y="3584" fill="#333333" />
<use xlink:href="#next" x="0" y="5376" fill="#000000" />
<use
xlink:href="#next"
x="0"
y="5376"
fill="#000000"
id="use5"
transform="translate(0,-3584)" />
<use
xlink:href="#previous"
x="0"
y="0"
fill="#333333"
id="use2"
style="fill:#000000;fill-opacity:1" />
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

+1 -1
View File
@@ -1,3 +1,3 @@
<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg">
<path fill="#70bf2b" d="M1600 796v192q0 40-28 68t-68 28h-416v416q0 40-28 68t-68 28h-192q-40 0-68-28t-28-68v-416h-416q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h416v-416q0-40 28-68t68-28h192q40 0 68 28t28 68v416h416q40 0 68 28t28 68z"/>
<path fill="#5fa225" d="M1600 796v192q0 40-28 68t-68 28h-416v416q0 40-28 68t-68 28h-192q-40 0-68-28t-28-68v-416h-416q-40 0-68-28t-28-68v-192q0-40 28-68t68-28h416v-416q0-40 28-68t68-28h192q40 0 68 28t28 68v416h416q40 0 68 28t28 68z"/>
</svg>

Before

Width:  |  Height:  |  Size: 331 B

After

Width:  |  Height:  |  Size: 331 B

+1 -1
View File
@@ -1,3 +1,3 @@
<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg">
<path fill="#efb80b" d="M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z"/>
<path fill="#b48c08" d="M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z"/>
</svg>

Before

Width:  |  Height:  |  Size: 380 B

After

Width:  |  Height:  |  Size: 380 B

+3
View File
@@ -0,0 +1,3 @@
<svg width="13" height="13" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg">
<path fill="#2b70bf" d="m555 1335 78-141q-87-63-136-159t-49-203q0-121 61-225-229 117-381 353 167 258 427 375zm389-759q0-20-14-34t-34-14q-125 0-214.5 89.5T592 832q0 20 14 34t34 14 34-14 14-34q0-86 61-147t147-61q20 0 34-14t14-34zm363-191q0 7-1 9-105 188-315 566t-316 567l-49 89q-10 16-28 16-12 0-134-70-16-10-16-28 0-12 44-87-143-65-263.5-173T20 1029Q0 998 0 960t20-69q153-235 380-371t496-136q89 0 180 17l54-97q10-16 28-16 5 0 18 6t31 15.5 33 18.5 31.5 18.5T1291 358q16 10 16 27zm37 447q0 139-79 253.5T1056 1250l280-502q8 45 8 84zm448 128q0 35-20 69-39 64-109 145-150 172-347.5 267T896 1536l74-132q212-18 392.5-137T1664 960q-115-179-282-294l63-112q95 64 182.5 153T1772 891q20 34 20 69z"/>
</svg>

After

Width:  |  Height:  |  Size: 784 B

+4 -1
View File
@@ -1,4 +1,4 @@
/*global SelectBox, gettext, interpolate, quickElement, SelectFilter*/
/*global SelectBox, gettext, ngettext, interpolate, quickElement, SelectFilter*/
/*
SelectFilter2 - Turns a multiple-select box into a filter interface.
@@ -30,6 +30,9 @@ Requires core.js and SelectBox.js.
// <div class="selector"> or <div class="selector stacked">
const selector_div = quickElement('div', from_box.parentNode);
// Make sure the selector div is at the beginning so that the
// add link would be displayed to the right of the widget.
from_box.parentNode.prepend(selector_div);
selector_div.className = is_stacked ? 'selector stacked' : 'selector';
// <div class="selector-available">
+4 -1
View File
@@ -1,4 +1,4 @@
/*global gettext, interpolate, ngettext*/
/*global gettext, interpolate, ngettext, Actions*/
'use strict';
{
function show(selector) {
@@ -179,6 +179,9 @@
}
});
}
// Sync counter when navigating to the page, such as through the back
// button.
window.addEventListener('pageshow', (event) => updateCounter(actionCheckboxes, options));
};
// Call function fn when the DOM is loaded and ready. If it is already
@@ -79,9 +79,11 @@
siblings.each(function() {
const elm = $(this);
elm.attr('href', elm.attr('data-href-template').replace('__fk__', value));
elm.removeAttr('aria-disabled');
});
} else {
siblings.removeAttr('href');
siblings.attr('aria-disabled', true);
}
}
@@ -94,8 +96,8 @@
// Extract the model from the popup url '.../<model>/add/' or
// '.../<model>/<id>/change/' depending the action (add or change).
const modelName = path.split('/')[path.split('/').length - (objId ? 4 : 3)];
// Exclude autocomplete selects.
const selectsRelated = document.querySelectorAll(`[data-model-ref="${modelName}"] select:not(.admin-autocomplete)`);
// Select elements with a specific model reference and context of "available-source".
const selectsRelated = document.querySelectorAll(`[data-model-ref="${modelName}"] [data-context="available-source"]`);
selectsRelated.forEach(function(select) {
if (currentSelect === select) {
+19 -1
View File
@@ -36,6 +36,24 @@ depends on core.js for utility functions like removeChildren or quickElement
pgettext('abbrev. month December', 'Dec')
],
daysOfWeek: [
gettext('Sunday'),
gettext('Monday'),
gettext('Tuesday'),
gettext('Wednesday'),
gettext('Thursday'),
gettext('Friday'),
gettext('Saturday')
],
daysOfWeekAbbrev: [
pgettext('abbrev. day Sunday', 'Sun'),
pgettext('abbrev. day Monday', 'Mon'),
pgettext('abbrev. day Tuesday', 'Tue'),
pgettext('abbrev. day Wednesday', 'Wed'),
pgettext('abbrev. day Thursday', 'Thur'),
pgettext('abbrev. day Friday', 'Fri'),
pgettext('abbrev. day Saturday', 'Sat')
],
daysOfWeekInitial: [
pgettext('one letter Sunday', 'S'),
pgettext('one letter Monday', 'M'),
pgettext('one letter Tuesday', 'T'),
@@ -98,7 +116,7 @@ depends on core.js for utility functions like removeChildren or quickElement
// Draw days-of-week header
let tableRow = quickElement('tr', tableBody);
for (let i = 0; i < 7; i++) {
quickElement('th', tableRow, CalendarNamespace.daysOfWeek[(i + CalendarNamespace.firstDayOfWeek) % 7]);
quickElement('th', tableRow, CalendarNamespace.daysOfWeekInitial[(i + CalendarNamespace.firstDayOfWeek) % 7]);
}
const startingPos = new Date(year, month - 1, 1 - CalendarNamespace.firstDayOfWeek).getDay();
+14
View File
@@ -85,6 +85,18 @@ function findPosY(obj) {
return (this.getSeconds() < 10) ? '0' + this.getSeconds() : this.getSeconds();
};
Date.prototype.getAbbrevDayName = function() {
return typeof window.CalendarNamespace === "undefined"
? '0' + this.getDay()
: window.CalendarNamespace.daysOfWeekAbbrev[this.getDay()];
};
Date.prototype.getFullDayName = function() {
return typeof window.CalendarNamespace === "undefined"
? '0' + this.getDay()
: window.CalendarNamespace.daysOfWeek[this.getDay()];
};
Date.prototype.getAbbrevMonthName = function() {
return typeof window.CalendarNamespace === "undefined"
? this.getTwoDigitMonth()
@@ -99,6 +111,8 @@ function findPosY(obj) {
Date.prototype.strftime = function(format) {
const fields = {
a: this.getAbbrevDayName(),
A: this.getFullDayName(),
b: this.getAbbrevMonthName(),
B: this.getFullMonthName(),
c: this.toString(),
-1
View File
@@ -1,4 +1,3 @@
/*global opener */
'use strict';
{
const initData = JSON.parse(document.getElementById('django-admin-popup-response-constants').dataset.popupResponse);
+39 -44
View File
@@ -1,56 +1,51 @@
'use strict';
{
window.addEventListener('load', function(e) {
function setTheme(mode) {
if (mode !== "light" && mode !== "dark" && mode !== "auto") {
console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`);
mode = "auto";
}
document.documentElement.dataset.theme = mode;
localStorage.setItem("theme", mode);
function setTheme(mode) {
if (mode !== "light" && mode !== "dark" && mode !== "auto") {
console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`);
mode = "auto";
}
document.documentElement.dataset.theme = mode;
localStorage.setItem("theme", mode);
}
function cycleTheme() {
const currentTheme = localStorage.getItem("theme") || "auto";
const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
function cycleTheme() {
const currentTheme = localStorage.getItem("theme") || "auto";
const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
if (prefersDark) {
// Auto (dark) -> Light -> Dark
if (currentTheme === "auto") {
setTheme("light");
} else if (currentTheme === "light") {
setTheme("dark");
} else {
setTheme("auto");
}
if (prefersDark) {
// Auto (dark) -> Light -> Dark
if (currentTheme === "auto") {
setTheme("light");
} else if (currentTheme === "light") {
setTheme("dark");
} else {
// Auto (light) -> Dark -> Light
if (currentTheme === "auto") {
setTheme("dark");
} else if (currentTheme === "dark") {
setTheme("light");
} else {
setTheme("auto");
}
setTheme("auto");
}
} else {
// Auto (light) -> Dark -> Light
if (currentTheme === "auto") {
setTheme("dark");
} else if (currentTheme === "dark") {
setTheme("light");
} else {
setTheme("auto");
}
}
}
function initTheme() {
// set theme defined in localStorage if there is one, or fallback to auto mode
const currentTheme = localStorage.getItem("theme");
currentTheme ? setTheme(currentTheme) : setTheme("auto");
}
function initTheme() {
// set theme defined in localStorage if there is one, or fallback to auto mode
const currentTheme = localStorage.getItem("theme");
currentTheme ? setTheme(currentTheme) : setTheme("auto");
}
function setupTheme() {
// Attach event handlers for toggling themes
const buttons = document.getElementsByClassName("theme-toggle");
Array.from(buttons).forEach((btn) => {
btn.addEventListener("click", cycleTheme);
});
initTheme();
}
setupTheme();
window.addEventListener('load', function(_) {
const buttons = document.getElementsByClassName("theme-toggle");
Array.from(buttons).forEach((btn) => {
btn.addEventListener("click", cycleTheme);
});
});
initTheme();
}
@@ -0,0 +1,29 @@
"use strict";
// Fallback JS for browsers which do not support :has selector used in
// admin/css/unusable_password_fields.css
// Remove file once all supported browsers support :has selector
try {
// If browser does not support :has selector this will raise an error
document.querySelector("form:has(input)");
} catch (error) {
console.log("Defaulting to javascript for usable password form management: " + error);
// JS replacement for unsupported :has selector
document.querySelectorAll('input[name="usable_password"]').forEach(option => {
option.addEventListener('change', function() {
const usablePassword = (this.value === "true" ? this.checked : !this.checked);
const submit1 = document.querySelector('input[type="submit"].set-password');
const submit2 = document.querySelector('input[type="submit"].unset-password');
const messages = document.querySelector('#id_unusable_warning');
document.getElementById('id_password1').closest('.form-row').hidden = !usablePassword;
document.getElementById('id_password2').closest('.form-row').hidden = !usablePassword;
if (messages) {
messages.hidden = usablePassword;
}
if (submit1 && submit2) {
submit1.hidden = !usablePassword;
submit2.hidden = usablePassword;
}
});
option.dispatchEvent(new Event('change'));
});
}
+817 -1066
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,6 +1,6 @@
The MIT License
Copyright (c) 2007-2017 Steven Levithan <http://xregexp.com/>
Copyright (c) 2007-present Steven Levithan <http://xregexp.com/>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+5317 -3843
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+206
View File
@@ -0,0 +1,206 @@
#layers {
text-align: left;
color: #ffffff;
font-family: "Arial", sans-serif;
font-size: 13px;
}
.wowhead-tooltip { visibility: hidden; z-index: 100000006; overflow: visible !important; }
.wowhead-tooltip a { text-decoration: none; }
.wowhead-tooltip a:hover { text-decoration: underline; }
.wowhead-tooltip table { border-spacing: 0; border-collapse: collapse; margin: 0; width: auto; } /*maybe remove width:auto*/
.wowhead-tooltip table, .wowhead-tooltip td, .wowhead-tooltip th, .wowhead-tooltip tbody { border: 0 !important; }
.wowhead-tooltip td table td table { width: 100% }
.wowhead-tooltip td, .wowhead-tooltip th { background: url(../images/wow/tooltip.png); font-family: Verdana, sans-serif; font-size: 12px; line-height: 17px; color: white; }
.wowhead-tooltip th { height: auto; padding: 3px; vertical-align: top; }
.wowhead-tooltip td { padding: 8px 4px 1px 9px; text-align: left; vertical-align: top; }
.wowhead-tooltip b { font-size: 14px; line-height: 19px; font-weight: normal; }
.wowhead-tooltip div.indent { padding-left: .6em; }
.wowhead-tooltip td th, .wowhead-tooltip td td { background: none; }
.wowhead-tooltip td th { padding: 0 0 0 4em; text-align: right; font-weight: normal; }
.wowhead-tooltip td td { padding: 0; text-align: left; }
.wowhead-tooltip p { position: absolute; left: -44px; top: -1px; width: 44px; height: 44px; background: 4px 4px no-repeat; margin: 0; padding: 0; }
.wowhead-tooltip p div { width: 44px; height: 44px; background-image: url(../images/Icon/medium/border/default.png); }
.wowhead-tooltip table.shrink b { font-size: 12px; line-height: 15px; }
.wowhead-tooltip table.shrink td, .wowhead-tooltip table.shrink th { font-size: 10px; line-height: 14px; }
.wowhead-tooltip .mapper { margin: 2px 0 3px 1px; border: none }
.wowhead-tooltip ins { color: #5DF644; text-decoration: none; border-bottom: 1px dotted; }
.wowhead-tooltip del { color: #FF8040; text-decoration: none; border-bottom: 1px dotted; }
.wowhead-tooltip-powered {
/* background: url(../images/powered.png) no-repeat; */
width: 53px;
height: 33px;
position: absolute;
right: -56px;
top: 2px;
display: none;
}
.wowhead-tooltip-npc-graphic td>div img {
display: block;
margin: -64px auto 0;
}
.wowhead-tooltip-npc-graphic td>div {
pointer-events: none;
position: relative;
text-align: center;
top: -3px;
}
.moneyitem, .moneygold, .moneysilver, .moneycopper, .moneyalliance, .moneyhorde, .moneyarena, .moneyachievement, .moneysocketmeta, .moneysocketred, .moneysocketyellow, .moneysocketblue, .moneysocketprismatic {
background: no-repeat right center;
color: white;
}
.moneyitem { padding-right: 18px; }
.moneygold { padding-right: 15px; background-image: url(../images/icons/money-gold.gif); }
.moneysilver { padding-right: 15px; background-image: url(../images/icons/money-silver.gif); }
.moneycopper { padding-right: 15px; background-image: url(../images/icons/money-copper.gif); }
.moneyalliance { padding-right: 12px; background-image: url(../images/icons/alliance.gif); }
.moneyhorde { padding-right: 17px; background-image: url(../images/icons/horde.gif); }
.moneyarena { padding-right: 18px; background-image: url(../images/icons/arena.gif); }
.moneyachievement { padding-right: 13px; background-image: url(../images/icons/achievement.gif); }
.moneysocketmeta { padding-right: 18px; background-image: url(../images/icons/socket-meta.gif); }
.moneysocketred { padding-right: 18px; background-image: url(../images/icons/socket-red.gif); }
.moneysocketyellow { padding-right: 18px; background-image: url(../images/icons/socket-yellow.gif); }
.moneysocketblue { padding-right: 18px; background-image: url(../images/icons/socket-blue.gif); }
.moneysocketprismatic { padding-right: 18px; background-image: url(../images/icons/socket-prismatic.gif); }
a.moneyitem, a.moneysocketmeta, a.moneysocketred, a.moneysocketyellow, a.moneysocketblue, a.moneysocketprismatic, a.moneyachievement{
text-decoration: none !important;
border-bottom: 1px solid transparent;
color: white !important;
}
a.moneyitem:hover, a.moneysocketmeta:hover, a.moneysocketred:hover, a.moneysocketyellow:hover, a.moneysocketblue:hover, a.moneysocketprismatic:hover, a.moneyachievement:hover {
border-bottom: 1px solid white;
}
a span.moneyitem, a span.moneysocketmeta, a span.moneysocketred, a span.moneysocketyellow, a span.moneysocketblue, a span.moneysocketprismatic, a span.moneyachievement {
color: white;
}
.blizzard-blue { color: #00C0FF !important; }
/***********************/
/* ITEM QUALITY COLORS */
/***********************/
.q, .q a, .color-q, .wowhead-tooltip .q a { color: #ffd100 !important } /* Default (yellow) */
.q0, .q0 a, .color-q0, .wowhead-tooltip .q0 a { color: #9d9d9d !important } /* Poor */
.q1, .q1 a, .color-q1, .wowhead-tooltip .q1 a { color: #ffffff !important } /* Common */
.q2, .q2 a, .color-q2, .wowhead-tooltip .q2 a { color: #1eff00 !important } /* Uncommon */
.q3, .q3 a, .color-q3, .wowhead-tooltip .q3 a { color: #0070dd !important } /* Rare */
.q4, .q4 a, .color-q4, .wowhead-tooltip .q4 a { color: #a335ee !important } /* Epic */
.q5, .q5 a, .color-q5, .wowhead-tooltip .q5 a { color: #ff8000 !important } /* Legendary */
.q6, .q6 a, .color-q6, .wowhead-tooltip .q6 a { color: #e5cc80 !important } /* Artifact */
.q7, .q7 a, .color-q7, .wowhead-tooltip .q7 a { color: #e5cc80 !important } /* Heirloom */
.q8, .q8 a, .color-q8, .wowhead-tooltip .q8 a { color: #ffff98 !important } /* Light yellow (item set bonuses) */
.q9, .q9 a, .color-q9, .wowhead-tooltip .q9 a { color: #71d5ff !important } /* Light blue (glyph type) */
.q10, .q10 a, .color-q10, .wowhead-tooltip .q10 a { color: #ff4040 !important } /* Red (requirement not met, error) */
.q13, .q13 a, .color-q13, .wowhead-tooltip .q13 a { color: #ffff98 !important }
/*********************/
/* DIFFICULTY COLORS */
/*********************/
.r1 { color: #FF8040 !important } /* Hard */
.r2 { color: #FFFF00 !important } /* Medium */
.r3 { color: #40BF40 !important } /* Easy */
.r4 { color: #808080 !important } /* Trivial */
/****************/
/* CLASS COLORS */
/****************/
.c1, .c1 a { color: #C69B6D !important } /* Warrior */
.c2, .c2 a { color: #F48CBA !important } /* Paladin */
.c3, .c3 a { color: #AAD372 !important } /* Hunter */
.c4, .c4 a { color: #FFF468 !important } /* Rogue */
.c5, .c5 a { color: #FFFFFF !important } /* Priest */
.c6, .c6 a { color: #C41E3B !important } /* Death Knight */
.c7, .c7 a { color: #2359FF !important } /* Shaman */
.c8, .c8 a { color: #68CCEF !important } /* Mage */
.c9, .c9 a { color: #9382C9 !important } /* Warlock */
.c11, .c11 a { color: #FF7C0A !important } /* Druid */
/**************/
/* GEM COLORS */
/**************/
.gem1 { color: #9D9D9D !important } /* Meta */
.gem2 { color: #e60c0b !important } /* Red */
.gem4 { color: #ffff35 !important } /* Yellow */
.gem6 { color: #f48905 !important } /* Orange */
.gem8 { color: #295df1 !important } /* Blue */
.gem10 { color: #b957fc !important } /* Purple */
.gem12 { color: #22c516 !important } /* Green */
.gem14 { color: #FFFFFF !important } /* Prismatic */
/****************/
/* NPC MESSAGES */
/****************/
.s1 { color: #ff3f40 !important } /* Yell */
.s2 { color: #fffb9f !important } /* Say */
.s3 { color: #ffb2eb !important } /* Whisper */
.s4 { color: #ff8040 !important } /* Emote */
/*****************/
/* SOCKETS ICONS */
/*****************/
.socket-meta { padding-left: 26px; background: url(../images/icons/socket-meta.gif) no-repeat left center; }
.socket-red { padding-left: 26px; background: url(../images/icons/socket-red.gif) no-repeat left center; }
.socket-yellow { padding-left: 26px; background: url(../images/icons/socket-yellow.gif) no-repeat left center; }
.socket-blue { padding-left: 26px; background: url(../images/icons/socket-blue.gif) no-repeat left center; }
.socket-prismatic { padding-left: 26px; background: url(../images/icons/socket-prismatic.gif) no-repeat left center; }
/***********/
/* WIDGETS */
/***********/
#wowhead-bluetip {
position: absolute;
z-index: 99999;
color: #fff;
font-size: 11px;
text-align: center;
padding: 6px 8px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
background: rgba(0, 0, 0, 0.8);
text-align: left;
max-width: 300px;
}
.message-box {
position: absolute;
z-index: 1000;
cursor: pointer;
border: 2px solid #666;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
padding: 15px;
background:url(../images/ui/blk.png) repeat;
}
.message-box .close {
text-indent: -9999px;
background:url(../images/icons/close.png) no-repeat;
width: 10px;
height: 10px;
position: absolute;
top: 5px;
right: 5px;
}
+847
View File
@@ -0,0 +1,847 @@
.nowrap {
white-space: nowrap;
overflow: visible;
}
.wsa-tbl {
border-spacing:0
}
.wsa-tbl th {
border-bottom:2px solid #333;
color:#fff;
font-size:15px;
padding:0 0 3px 0;
text-align:left
}
.wsa-tbl td {
padding:0 5px 0 0
}
.wsa-tbl td:last-child {
padding:0
}
.wsa-list {
color:#ccc
}
.wsa-list td {
vertical-align:text-top
}
.wsa-list td {
padding-right:25px
}
.wsa-list td.nopad {
padding-right:0
}
.wsa-list tr {
line-height:20px
}
.wsa-list .checkmark {
padding:0;
width:18px
}
.wsa-check {
background:url(../images/ui/check2.png) no-repeat 0 -11px;
height:20px;
width:15px
}
.wsa-earned {
color:#777
}
.wsa-earned .wsa-check {
background-position:-15px -11px
}
.wsa-earned .wsa-count {
background-color:#aaa;
color:#242424
}
/* Generic - Sprites */
.reply-detach, .reply-delete, .reply-report, .reply-edit {
background: url(../images/ui/sprite3.png);
text-indent: -10000px;
cursor: pointer;
}
.vote-column .upvote, .vote-column .downvote {
cursor: pointer;
}
.vote-column {
width: 60px;
vertical-align: top;
}
.main-body {
vertical-align: top;
}
.vote-column .upvote, .vote-column .downvote {
margin: 5px auto;
width: 30px;
text-align: center;
font-size: 30px;
}
.vote-column .upvote {
margin-top: 10px !important;
filter:alpha(opacity=60);
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
opacity:.2;
}
.vote-column .upvote:hover {
filter:alpha(opacity=100);
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
opacity:0.5;
}
.vote-column .upvote[data-hasvoted=true] {
background-position: 0 -16px;
filter:alpha(opacity=100);
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
opacity:0.5;
}
.vote-column .downvote {
background-position: 0 -48px;
filter:alpha(opacity=60);
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
opacity:.2;
}
.vote-column .downvote:hover {
filter:alpha(opacity=100);
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
opacity:1;
}
.vote-column .downvote[data-hasvoted=true] {
background-position: 0 -32px;
filter:alpha(opacity=100);
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
opacity:1;
}
.vote-column .rating, .vote-column .rating-up, .vote-column .rating-down {
color: #A8A8A8;
font-size: 18px;
margin: 3px 0;
text-align: center;
font-weight: bold;
}
.vote-column .rating-up {
color: Green;
}
.vote-column .rating-down {
color: #bb5b26;
}
.vote-column .rating-separator {
border-top: 1px solid silver;
width: 20px;
margin: 0 auto;
}
.vote-column .rating {
cursor: pointer;
}
.comment-controls {
text-align: right;
color: #DDDDDD;
font-size: 13px;
}
.comment-controls span, .comment-controls span a {
padding-left: 3px;
}
.comment-header .comment-author {
font-style: normal;
}
.comment-header .comment-author a {
font-weight: bold;
}
.comment-header .comment-author a.q0 {
color: #bbbbbb !important;
font-weight: normal;
text-decoration: none;
}
.comment-header .comment-author a.q0:hover {
text-decoration: underline;
}
.comment-replies-control {
margin: 10px 0 10px 10px !important;
font-size: 13px;
color: white;
cursor: pointer;
float: left;
background: #302521;
border: 1px solid #302521;
padding: 4px 8px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
text-transform: capitalize;
}
.comment-replies-control:hover {
background-color: #555;
}
.comment-sticky {
display: block;
background-color: green;
border-radius: 5px;
cursor: help;
font-family: Verdana;
font-size: 10px;
font-weight: bold;
margin-left: 5px;
margin-right: 5px;
margin-top: 10px;
text-align: center;
}
.comment-replies {
margin: 10px 0 0 10px;
padding: 10px 0;
background-color: #1d1d1d;
}
.comment-replies form .ajax-loader {
display: block;
margin-left: 13px;
margin-top: 10px;
display: none;
}
.comment-replies textarea {
width: 100%;
background-color: #121212;
border: 2px solid #302521;
color: #b1997f;
font-size: 14px;
}
.comment-replies textarea:focus-visible {
border-color: #302521;
outline: transparent;
}
.comment-replies form input {
display: block;
margin-left: 10px;
margin-top: 5px;
}
.comment-replies td {
vertical-align: top;
}
.comment-replies .q11 {
color: #AA8968 !important;
}
.comment-reply-row {
border-bottom: 2px solid #121212;
}
.comment-reply-row:last-child {
border: 0;
}
.reply-controls {
width: 30px;
padding-left: 10px;
white-space: nowrap;
}
.reply-text {
padding: 6px;
overflow:auto;
word-wrap:break-word;
}
.comment .reply-text {
overflow: auto;
overflow-wrap: break-word;
padding: 6px 16px 6px 6px;
}
.reply-rating {
font-size: 18px;
font-weight: bold;
width: 100%;
text-align: center;
margin: 3px 0;
color: #A8A8A8;
}
.q12 {
color: #BD5F00 !important;
}
.reply-rating-fair {
color: #008200;
}
.reply-rating-good {
color: #1EC000;
}
.reply-rating-great {
color: #1EFF00;
}
.comment-reply-author {
color: #888888;
white-space: nowrap;
font-size: 13px;
}
.comment-reply-author a.when, .comment-reply-author a.when:hover {
color: #888888;
white-space: nowrap;
text-decoration: none;
}
.comment-reply-author a.when:hover {
text-decoration: underline;
}
.comment-blue b {
color: White !important;
}
.reply-detach, .reply-delete, .reply-report, .reply-edit {
display: inline-block;
height: 13px;
width: 13px;
line-height: 12px;
opacity: 0.35;
visibility: hidden;
}
.comment .reply-upvote, .comment .reply-downvote {
width: 13px;
font-size: 18px;
text-align: center;
cursor: default;
margin: 0 auto;
opacity: 0.3;
}
.comment .reply-upvote[data-canvote=true], .comment .reply-downvote[data-canvote=true] {
cursor: pointer;
}
.reply-detach {
background-position: -30px -13px;
}
.reply-delete {
background-position: -30px 0;
}
.reply-report {
background-position: -30px -39px;
height: 10px;
width: 11px;
}
.reply-edit {
height: 14px;
width: 13px;
background-position: -30px -25px;
position: relative;
top: -1px;
}
.reply-upvote[data-hasvoted=true] {
background-position:-43px -6px;
}
.reply-downvote[data-hasvoted=true] {
background-position:-43px -12px;
}
.reply-detach[data-hover=true], .reply-delete[data-hover=true], .reply-report[data-hover=true], .reply-edit[data-hover=true] {
visibility: visible;
}
.reply-upvote[data-canvote=true]:hover, .reply-upvote[data-hasvoted=true], .reply-downvote[data-canvote=true]:hover, .reply-downvote[data-hasvoted=true], .reply-detach:hover, .reply-delete:hover, .reply-report:hover, .reply-edit:hover {
opacity: 1;
}
.dragged {
z-index: 1000 !important;
opacity: 0.35;
filter: alpha(opacity=35);
}
.dragged .iconsmall, .dragged .iconmedium {
float: left;
}
.stars {display:block;font-size:13px;margin:0 auto;white-space:normal;overflow:hidden;position:relative}
.infobox .stars {margin:0}
.stars.rated {padding-right:14px}
.stars.max-5 {width:66px}
.stars.max-10 {width:131px}
.stars b {background:url(../images/ui/stars-ondark.png) 0 -96px no-repeat;float:right;height:16px;line-height:16px}
.stars.ratable span {cursor:pointer}
.stars.ratable span:hover b, .stars.rated b {background-position:0 -32px} /* maybe remove 3rd? */
.stars i {padding:0 0 0 18px}
.stars i i {margin-left:-5px;padding:0;visibility:hidden}
.stars.ratable span:hover b, .stars.ratable span:hover b.half {background-position:0 -96px !important}
.stars.ratable span b:hover, .stars.ratable span b.half:hover {background-position:0 -32px !important}
.stars .clear {background:url(../images/ui/gray-x.png);display:block;height:10px;;position:absolute;right:0;top:4px;width:9px}
.stars .clear:hover {background-position:bottom}
.stars .info {clear:both;font-size:11px}
.stars.rated .info {margin-right:-14px}
.stars-1 b {background-position:0 0}
.stars-1 b b {background-position:0 -96px !important}
.stars-2 b {background-position:0 0}
.stars-2 b b b {background-position:0 -96px !important}
.stars-3 b {background-position:0 0}
.stars-3 b b b b {background-position:0 -96px !important}
.stars-4 b {background-position:0 0}
.stars-4 b b b b b {background-position:0 -96px !important}
.stars-5 b {background-position:0 0}
.stars-5 b b b b b b {background-position:0 -96px !important}
.stars-6 b {background-position:0 0}
.stars-6 b b b b b b b {background-position:0 -96px !important}
.stars-7 b {background-position:0 0}
.stars-7 b b b b b b b b {background-position:0 -96px !important}
.stars-8 b {background-position:0 0}
.stars-8 b b b b b b b b b {background-position:0 -96px !important}
.stars-9 b {background-position:0 0}
.stars-9 b b b b b b b b b b {background-position:0 -96px !important}
.stars-10 b {background-position:0 0}
.stars-10 b b b b b b b b b b b {background-position:0 -96px !important}
.stars b.half {background-position:0 -16px !important}
.stars.rated b.half {background-position:0 -48px !important}
.ie6 .stars {_margin-bottom:-2px;zoom:100%}
.ie6 .stars * {zoom:100%}
.ie7 .stars {_margin-bottom:-2px;zoom:100%}
.ie7 .stars * {zoom:100%}
.ie8 .stars {_margin-bottom:-2px;zoom:100%}
.ie8 .stars * {zoom:100%}
.guide-sticky {
background: url(../images/icons/sticky.gif) left center no-repeat;
padding-left: 21px;
}
.guide-new {
background: url(../images/icons/new.png) left center no-repeat;
padding-left: 21px;
}
.infobox .guide-sticky {
position: relative;
left: -6px;
}
#guiderating {
display: block;
margin: 0 auto;
width: 80px;
}
.iconlist-col {
float: left;
width: 31%;
margin-right: 2%;
}
.iconlist {
border-collapse: collapse;
margin-top: 4px;
}
.iconlist ul {
list-style-type: none;
margin: 0 !important;
padding: 0 !important;
}
.iconlist th {
padding: 0 !important;
}
.iconlist ul li {
list-style-position: inside;
list-style-type: square;
padding-left: 13px !important;
}
.iconlist td {
padding: 4px 0 6px 0 !important;
}
.iconlist var {
font-size: 1px !important;
}
.iconlist .iconsmall {
margin-right: 4px !important;
}
.iconlist a.disclosure-on, .iconlist a.disclosure-off {
font-weight: normal;
text-decoration: underline;
}
.iconlist .iconlist ul li {
padding-left: 10px !important;
}
.iconlist .iconlist th, .iconlist .iconlist td {
font-size: 11px !important;
}
.iconlist-col table th li {
list-style-position: outside;
padding: 0 !important;
margin-left: 20px !important;
}
/*
Note: For IE6, only include things that break/distort the site in a major way, as we're not supposed to support IE6 anymore.
*/
/*******/
/* IE6 */
/*******/
html.ie6 .layout {
width: 1240px;
}
html.ie6 .toptabs dt {
width: 1px;
}
html.ie6 .menu .menu-outer,
html.ie6 .home-featuredbox-links a {
background: url(../images/deprecated/pixel.gif) no-repeat;
}
html.ie6 .menu a {
position: relative;
}
/*******/
/* IE7 */
/*******/
/* html.ie7 ... */
/*******/
/* IE8 */
/*******/
/* html.ie8 ... */
/*************/
/* IE6 + IE7 */
/*************/
/* html.ie67 ... */
/*******************/
/* IE6 + IE7 + IE8 */
/*******************/
/* html.ie678 ... */
html.ie678 .line var {
margin-left: 0;
}
.line {
position: absolute;
display: block;
cursor: default;
}
.line var {
width: 100%;
height: 2px;
margin: -2px 0 0 2px;
display: block;
background: #FFFFFF;
border: 1px solid #181818;
border-left: none;
border-right: none;
-o-transform-origin: 0 0;
-moz-transform-origin: 0 0;
-webkit-transform-origin: 0 0;
-o-box-shadow: 0px 0px 3px black;
/*-moz-box-shadow: 0px 0px 3px black;*/
-webkit-box-shadow: 0px 0px 3px black;
}
.line.flipped {
-o-transform: scaleY(-1);
-moz-transform: scaleY(-1);
-webkit-transform: scaleY(-1);
-ms-filter: "FlipV";
filter: FlipV;
}
.mapper .line var { background: #C8B94C; }
.mapper .line-1 var { background: #73B85B; }
.mapper .line-2 var { background: #D7563C; }
.mapper .line-3 var { background: #47ACCD; }
.mapper .line-4 var { background: #C844D0; }
.message-box {
position: absolute;
z-index: 1000;
cursor: pointer;
border:2px solid #666;
-moz-border-radius:5px;
-webkit-border-radius:5px;
border-radius:5px;
padding:15px 15px 10px 15px;
background:url(../images/ui/blk.png) repeat;
}
.message-box .message {
margin-bottom: 5px;
}
#noscript-bg {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: black;
opacity: 0.8;
filter: alpha(opacity=80);
z-index: 9999;
}
#noscript-text {
position: absolute;
text-align: center;
left: 0;
width: 100%;
top: 30%;
font-size: 18px;
line-height: 1.5em;
z-index: 10000;
padding-top: 70px;
background: url(../images/logos/header.png) center top no-repeat;
}
#noscript-text b {
font-size: 22px;
}
/*
CSS tweaks for Premium users
*/
/*
body.premium ...
*/
body.premium-logo .home-logo, body.premium-logo .home-logo a {
background-image: url(../images/logos/special/premium/home.webp) !important;
width: 261px !important;
height: 139px !important;
margin: 0 auto 20px auto !important;
}
body.premium-logo .header-logo {
background-image: url(../images/logos/special/premium/header.gif) !important;
width: 179px !important;
height: 96px !important;
top: 5px !important;
}
.linklist .repcount {
color: #666666;
display: inline;
font-size: 11px;
margin: 0 0.8em 0 0;
}
.linklist .repcount a, .linklist .repcount a:hover {
color: #0C9722;
font-size: 11px;
margin: 0;
}
.linklist a.votecount, .linklist a.votecount:hover {
background: url(../images/ui/check3.png) no-repeat scroll left center transparent;
color: #FFFFFF;
font-size: 11px;
margin: 0;
padding-left: 15px;
}
.vote-comment .comment-body {
border-left: 14px solid #111111;
padding: 10px;
color: #999999;
margin-bottom: 5px;
}
.vote-comment {
margin-bottom: 1em;
}
.vote-comment .votes-left {
color: #AAAAAA;
margin-bottom: 5px;
font-size: 90%;
}
.vote-comment .vote-reason {
margin-bottom: 5px;
}
div.screenshotviewer {
padding: 10px 10px 0 10px;
background-color: #130c09;
}
div.screenshotviewer-screen {
background-color: #000;
position: relative;
text-align: center;
}
div.screenshotviewer-screen .screenshotviewer-page-wrapper a {
display: block;
font-size: 48px;
height: 100%;
position: absolute;
text-align: center;
top: 0;
width: 100px;
z-index: 100;
}
a.screenshotviewer-next {
left: 0;
padding-right: 1000px;
}
a.screenshotviewer-prev {
padding-left: 1000px;
right: 0;
}
div.screenshotviewer-page-wrapper.screenshotviewer-prev-wrapper {
left: 0;
}
div.screenshotviewer-page-wrapper.screenshotviewer-next-wrapper {
right: 0;
}
div.screenshotviewer-page-wrapper {
bottom: 0;
position: absolute;
top: 0;
width: 0;
}
a.screenshotviewer-cover {
left: 0;
width: 100%;
}
div.screenshotviewer-screen .screenshotviewer-page-wrapper a .fa:before {
display: block;
position: absolute;
top: calc(50% - 20px);
width: 100px;
}
div.screenshotviewer-screen .screenshotviewer-page-wrapper a .fa {
display: block;
}
div.screenshotviewer-screen .screenshotviewer-page-wrapper a {
color: #b1997f;
}
div.screenshotviewer-screen .screenshotviewer-page-wrapper a:hover {
color: #fff;
}
a.screenshotviewer-cover span {
position: static !important;
margin: 0 auto;
}
a.screenshotviewer-original {
float: right;
display: block;
padding: 10px 0 10px 10px;
margin-right: 10px;
}
a.screenshotviewer-close {
float: right;
display: block;
padding: 10px 0 10px 10px;
}
a.modelviewer-close {
float: right;
display: block;
padding: 10px 0 10px 10px;
}
div.screenshotviewer-from {
padding-top: 6px;
font-size: 13px;
color: #cccccc;
}
div.screenshotviewer-from a {
font-weight: bold;
}
div.screenshotviewer-caption {
font-size: 13px;
font-weight: bold;
padding: 5px 0 6px 0;
}
+199
View File
@@ -0,0 +1,199 @@
.home-wrapper {
height: 500px;
text-align:center;
padding-top: 225px;
background-position: top;
background-image: linear-gradient(transparent, #0f0f0f 75%), url(../images/logos/home-background.jpg);
}
.home-wrapper h1 {
position:absolute;
left:-2323px;
top:-2323px;
}
.home-logo a:visited,.home-logo a:link {
display:block;
cursor:default;
text-indent:-9000px;
cursor:pointer;
}
.home-logo {
display:block;
cursor:default;
width: 400px;
height: 128px;
margin: 0 auto 20px auto;
background:url(../images/logos/home.webp) no-repeat;
}
.home-menu {
padding-top:10px;
}
.home-search form {
display:block;
position:relative;
width:425px;
margin:0 auto;
}
.home-search input {
width:100%;
font: inherit;
font-size:20px;
color: #fff;
padding:3px;
margin:0;
outline:0;
border: 2px solid #302521;
-webkit-border-radius:3px;
-moz-border-radius:3px;
border-radius:3px;
}
.home-search a {
display:block;
position:absolute;
right: -6px;
top: 6px;
width:24px;
height:24px;
color: #ffcd55;
transition: color .5s;
}
.home-search a:hover {
color: #fff;
}
.home-search a .fa-search {
font-size: 18px;
}
.home-oneliner {
margin:0;
padding-top:35px;
color:#ccc;
line-height:1.75em;
font-size:12px;
}
.home-featuredbox {
font-size:14px;
position:relative;
text-align:left;
width:50%;
height:191px;
margin:10px auto 10px auto;
background:no-repeat;
background-color:transparent;
}
.home-featuredbox-extended {
width:515px;
}
.home-featuredbox-links a,.home-featuredbox-links var {
position:absolute;
display:block;
}
.home-featuredbox-links a {
z-index:5;
}
.home-featuredbox-links var.active {
background-color:white!important;
opacity:.075!important;
filter:alpha(opacity=7.5)!important;
-webkit-border-radius:6px;
-moz-border-radius:6px;
border-radius:6px;
}
.home-featuredbox-inner {
margin:0;
position:absolute;
left:0;
top:0;
z-index:2;
}
.home-featuredbox li {
line-height:2em;
}
.toplinks {
background:#0f0f0f;
padding:5px 2px;
position:absolute;
line-height:normal;
height:auto;
overflow:visible;
right:0;
top:0;
}
body, html {
height:100%;
}
.home-tc-p {
font-size: 26px;
color: #fff;
}
.home-class {
display: inline-block;
}
.home-classes-inner {
margin: 0 auto;
text-align: center;
}
.home-class a span {
width: 50%;
word-wrap: break-word;
}
.home-class img {
width: 75px;
padding: 2px 6px 4px 6px;
filter: brightness(0.7);
transition: .3s;
}
.home-class a {
filter: brightness(0.7);
}
.home-class img:hover, .home-class a:hover {
filter: brightness(1.35);
transform: scale(1.2);
}
.home-footer {
width:500px;
margin:0 auto;
text-align:center;
font-size:11px;
margin-top:40px;
}
.home-footer ul {
margin:0;
padding:0;
}
.home-footer li {
display:inline;
padding:0 6px;
border-right:1px solid #333;
background:none;
}
.home-footer li:last-child {
border:0;
}
+70
View File
@@ -0,0 +1,70 @@
/*
file reconstructed!
width, left, background-position values may need adjustment!
*/
div.modelviewer-model div {
margin-right: 5px;
float: left;
height: 22px;
}
a.modelviewer-help span {
display: block;
width: 50px;
height: 22px;
background: url(../images/eses/modelviewer-picshures.gif) -100px center no-repeat;
}
a:hover.modelviewer-help span {
background-position: -200px center;
}
a.modelviewer-close span {
display: block;
width: 79px;
height: 22px;
}
a:hover.modelviewer-close span {
background-position: -400px center;
}
a.screenshotviewer-cover span {
width: 76px;
height: 22px;
}
a.screenshotviewer-original span {
display: block;
height: 22px;
font-size: 15px;
color: #b1997f;
margin: 3px 0 0 10px;
}
a.screenshotviewer-original span:hover {
color: #fff;
}
a.screenshotviewer-close span, a.modelviewer-close {
display: block;
height: 22px;
font-size: 15px;
color: #b1997f;
margin: 3px 0 0 10px;
}
a:hover.screenshotviewer-close span, a.modelviewer-close:hover {
color: #fff;
}
#su_searchbox {
left: -68px !important;
}
/*
#su_weights {
width: 500px !important;
}
*/
File diff suppressed because it is too large Load Diff
+3 -2
View File
@@ -52,7 +52,7 @@ function createEditors(element = document.body) {
editorEl.id.indexOf('__prefix__') !== -1 ||
editorEl.getAttribute('data-processed') === '1'
) {
return
return;
}
const script_id = `${editorEl.id}_script`;
// remove next sibling if it is an empty text node
@@ -94,11 +94,12 @@ function createEditors(element = document.body) {
config.fileUploader = {
'fileTypes': upload_file_types
};
config.licenseKey = 'GPL';
ClassicEditor.create(
editorEl,
config
).then(editor => {
const textarea = document.querySelector(`#${editorEl.id}`);
editor.model.document.on('change:data', () => {
textarea.value = editor.getData();
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -21,5 +21,5 @@
/**
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
*/
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More