Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
464bd71542 | ||
|
|
f3c7233f67 | ||
|
|
afc8a6e1f5 | ||
|
|
8ace316cbf |
No files matched your search
@@ -1,12 +1,69 @@
|
||||
# ==========================================
|
||||
# TYPO3 v11.4 .gitignore für Extension-Entwicklung
|
||||
# ==========================================
|
||||
|
||||
# --- Core- und Systemordner ---
|
||||
/var/
|
||||
/vendor/
|
||||
/public/typo3/
|
||||
/public/index.php
|
||||
|
||||
# --- Temporäre Dateien und Caches ---
|
||||
/public/typo3temp/
|
||||
|
||||
# --- Benutzer-Uploads und Medien ---
|
||||
/public/uploads/
|
||||
/public/fileadmin/
|
||||
|
||||
# --- Konfigurationen ---
|
||||
/public/typo3conf/LocalConfiguration.php
|
||||
/public/typo3conf/AdditionalConfiguration.php
|
||||
/public/typo3conf/PackageStates.php
|
||||
|
||||
# ==========================================
|
||||
# EXTENSION-ENTWICKLUNG SEKTION
|
||||
# ==========================================
|
||||
|
||||
# FALL A: Sie entwickeln über den empfohlenen "packages/" Ordner
|
||||
# Wir ignorieren standardmäßig nichts im packages-Ordner,
|
||||
# damit Ihre eigenen Extensions committet werden.
|
||||
!/packages/
|
||||
|
||||
# FALL B: Sie entwickeln direkt unter "public/typo3conf/ext/"
|
||||
# Ignoriere alle Extensions (z.B. Core-Reste oder Drittanbieter-Extensions)
|
||||
/public/typo3conf/ext/*
|
||||
|
||||
# AUSNAHMEN: Tragen Sie hier die Keys Ihrer eigenen Extensions ein,
|
||||
# damit Git diese trotz der obigen Regel trackt.
|
||||
!/public/typo3conf/ext/wapp/
|
||||
!/public/typo3conf/ext/watten/
|
||||
|
||||
# ==========================================
|
||||
# Entwicklungstools & Umgebung
|
||||
# ==========================================
|
||||
|
||||
# DDEV lokale Entwicklungsumgebung (falls genutzt)
|
||||
/.ddev/db/
|
||||
/.ddev/.import-db*
|
||||
|
||||
# Umgebungsvariablen & Zugangsdaten
|
||||
.env
|
||||
.env.local
|
||||
auth.json
|
||||
|
||||
# --- IDEs und Editoren ---
|
||||
.idea/
|
||||
.vscode/
|
||||
*.swp
|
||||
*.bak
|
||||
*~
|
||||
|
||||
# --- OS-spezifische Dateien ---
|
||||
.DS_Store
|
||||
.idea
|
||||
nbproject
|
||||
/var/*
|
||||
!/var/labels
|
||||
/vendor
|
||||
/public/*
|
||||
!/public/.htaccess
|
||||
!/public/typo3conf
|
||||
/public/typo3conf/*
|
||||
!/public/typo3conf/LocalConfiguration.php
|
||||
!/public/typo3conf/AdditionalConfiguration.php
|
||||
Thumbs.db
|
||||
|
||||
# --- Frontend-Build-Tools (falls in Extensions genutzt) ---
|
||||
node_modules/
|
||||
/dist/
|
||||
.sass-cache/
|
||||
npm-debug.log*
|
||||
@@ -1,29 +0,0 @@
|
||||
{
|
||||
"workbench.colorCustomizations": {
|
||||
"activityBar.activeBackground": "#fec8c2",
|
||||
"activityBar.background": "#fec8c2",
|
||||
"activityBar.foreground": "#15202b",
|
||||
"activityBar.inactiveForeground": "#15202b99",
|
||||
"activityBarBadge.background": "#039d12",
|
||||
"activityBarBadge.foreground": "#e7e7e7",
|
||||
"activityBarTop.activeBackground": "#fec8c2",
|
||||
"activityBarTop.background": "#fec8c2",
|
||||
"activityBarTop.foreground": "#15202b",
|
||||
"activityBarTop.inactiveForeground": "#15202b99",
|
||||
"commandCenter.border": "#15202b99",
|
||||
"commandCenter.foreground": "#15202b",
|
||||
"sash.hoverBorder": "#fec8c2",
|
||||
"statusBar.background": "#fd9a90",
|
||||
"statusBar.debuggingBackground": "#fd9a90",
|
||||
"statusBar.debuggingForeground": "#15202b",
|
||||
"statusBar.foreground": "#15202b",
|
||||
"statusBarItem.hoverBackground": "#fc6c5e",
|
||||
"statusBarItem.remoteBackground": "#027d0e",
|
||||
"statusBarItem.remoteForeground": "#15202b",
|
||||
"titleBar.activeBackground": "#fd9a90",
|
||||
"titleBar.activeForeground": "#15202b",
|
||||
"titleBar.inactiveBackground": "#fd9a9099",
|
||||
"titleBar.inactiveForeground": "#15202b99"
|
||||
},
|
||||
"peacock.remoteColor": "#fd9a90"
|
||||
}
|
||||
@@ -18,13 +18,12 @@
|
||||
"typo3/cms-composer-installers": true
|
||||
},
|
||||
"platform": {
|
||||
"php": "7.4.1"
|
||||
"php": "8.3"
|
||||
},
|
||||
"sort-packages": true
|
||||
},
|
||||
"require": {
|
||||
"bk2k/bootstrap-package": "^12.0",
|
||||
"brotkrueml/typo3-matomo-widgets": "^1.6",
|
||||
"codingms/poll": "^4.0",
|
||||
"fixpunkt/fp-masterquiz": "^3.7",
|
||||
"friendsoftypo3/extension-builder": "^11.0",
|
||||
@@ -32,7 +31,6 @@
|
||||
"helhum/typo3-console": "^7.0.2",
|
||||
"hermanntelser/watten": "@dev",
|
||||
"mediadreams/md_newsfrontend": "^3.0",
|
||||
"t3/pw_comments": "^5.2",
|
||||
"typo3/cms-backend": "^11.5.0",
|
||||
"typo3/cms-belog": "^11.5.0",
|
||||
"typo3/cms-beuser": "^11.5.0",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "7a66ef3e175b943f753b4a8f104533de",
|
||||
"content-hash": "3aa64506152d3e21677418490064266b",
|
||||
"packages": [
|
||||
{
|
||||
"name": "bacon/bacon-qr-code",
|
||||
@@ -169,87 +169,6 @@
|
||||
],
|
||||
"time": "2023-06-30T13:47:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "brotkrueml/typo3-matomo-widgets",
|
||||
"version": "v1.7.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/brotkrueml/typo3-matomo-widgets.git",
|
||||
"reference": "1b3eb49c489ac02311e29ecd2da66f7de97765e5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/brotkrueml/typo3-matomo-widgets/zipball/1b3eb49c489ac02311e29ecd2da66f7de97765e5",
|
||||
"reference": "1b3eb49c489ac02311e29ecd2da66f7de97765e5",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"php": ">=7.4",
|
||||
"symfony/finder": "^4.4 || ^5.0 || ^6.0",
|
||||
"symfony/polyfill-php80": "^1.17",
|
||||
"typo3/cms-core": "^10.4.15 || ^11.5",
|
||||
"typo3/cms-dashboard": "^10.4.15 || ^11.5",
|
||||
"typo3/cms-install": "^10.4.15 || ^11.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"brotkrueml/coding-standards": "~2.0.2",
|
||||
"brotkrueml/typo3-matomo-integration": "^1.0",
|
||||
"donatj/mock-webserver": "^2.4",
|
||||
"ergebnis/composer-normalize": "~2.28.0",
|
||||
"php-coveralls/php-coveralls": "^2.5",
|
||||
"phpstan/extension-installer": "^1.1",
|
||||
"phpstan/phpstan": "1.9.7",
|
||||
"phpunit/phpunit": "^9.5.23",
|
||||
"rector/rector": "0.15.2",
|
||||
"saschaegerer/phpstan-typo3": "^1.1",
|
||||
"symfony/yaml": "^5.4 || ^6.0",
|
||||
"symplify/phpstan-rules": "^10.1"
|
||||
},
|
||||
"suggest": {
|
||||
"brotkrueml/typo3-matomo-integration": "Matomo integration for TYPO3"
|
||||
},
|
||||
"type": "typo3-cms-extension",
|
||||
"extra": {
|
||||
"typo3/cms": {
|
||||
"web-dir": ".Build/web",
|
||||
"extension-key": "matomo_widgets",
|
||||
"cms-package-dir": "{$vendor-dir}/typo3/cms"
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-main": "1.7.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Brotkrueml\\MatomoWidgets\\": "Classes"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"GPL-2.0-or-later"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Chris Müller",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "TYPO3 Dashboard widgets with Matomo reports",
|
||||
"keywords": [
|
||||
"TYPO3 CMS",
|
||||
"TYPO3 Extension",
|
||||
"dashboard",
|
||||
"matomo",
|
||||
"widgets"
|
||||
],
|
||||
"support": {
|
||||
"docs": "https://docs.typo3.org/p/brotkrueml/typo3-matomo-widgets/main/en-us/",
|
||||
"issues": "https://github.com/brotkrueml/typo3-matomo-widgets/issues",
|
||||
"source": "https://github.com/brotkrueml/typo3-matomo-widgets"
|
||||
},
|
||||
"time": "2023-01-07T13:55:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "christian-riesen/base32",
|
||||
"version": "1.6.1",
|
||||
@@ -1521,22 +1440,22 @@
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/guzzle",
|
||||
"version": "7.15.5",
|
||||
"version": "7.16.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/guzzle.git",
|
||||
"reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a"
|
||||
"reference": "ffb62ec787050ae4fa9449cdd6b80335db69bda2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee80339fd9177ba44c49cdb653ff02a4d1106b9a",
|
||||
"reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/ffb62ec787050ae4fa9449cdd6b80335db69bda2",
|
||||
"reference": "ffb62ec787050ae4fa9449cdd6b80335db69bda2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"guzzlehttp/promises": "^2.5.3",
|
||||
"guzzlehttp/psr7": "^2.13.1",
|
||||
"guzzlehttp/promises": "^2.6",
|
||||
"guzzlehttp/psr7": "^2.13.2",
|
||||
"php": "^7.2.5 || ^8.0",
|
||||
"psr/http-client": "^1.0",
|
||||
"symfony/deprecation-contracts": "^2.5 || ^3.0",
|
||||
@@ -1629,7 +1548,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/guzzle/issues",
|
||||
"source": "https://github.com/guzzle/guzzle/tree/7.15.5"
|
||||
"source": "https://github.com/guzzle/guzzle/tree/7.16.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1645,20 +1564,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2026-08-24T09:21:06+00:00"
|
||||
"time": "2026-10-18T13:38:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/promises",
|
||||
"version": "2.5.3",
|
||||
"version": "2.6.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/promises.git",
|
||||
"reference": "cde49999552d185d64715fe9c1f77a2aadd2f9f1"
|
||||
"reference": "3d88c829bd5f13d13847b39067dbf09a60af2154"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/cde49999552d185d64715fe9c1f77a2aadd2f9f1",
|
||||
"reference": "cde49999552d185d64715fe9c1f77a2aadd2f9f1",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/3d88c829bd5f13d13847b39067dbf09a60af2154",
|
||||
"reference": "3d88c829bd5f13d13847b39067dbf09a60af2154",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1713,7 +1632,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/promises/issues",
|
||||
"source": "https://github.com/guzzle/promises/tree/2.5.3"
|
||||
"source": "https://github.com/guzzle/promises/tree/2.6.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1729,7 +1648,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2026-08-24T09:11:28+00:00"
|
||||
"time": "2026-10-18T12:46:59+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
@@ -2072,7 +1991,7 @@
|
||||
"dist": {
|
||||
"type": "path",
|
||||
"url": "packages/watten",
|
||||
"reference": "b8c6a2eba01f08d1479bf9b503894dfa51d2f944"
|
||||
"reference": "de7be741e38c818aec3849dca9b20d35b08c5478"
|
||||
},
|
||||
"require": {
|
||||
"typo3/cms-core": "^11.5"
|
||||
@@ -2102,29 +2021,29 @@
|
||||
},
|
||||
{
|
||||
"name": "lolli42/finediff",
|
||||
"version": "1.0.4",
|
||||
"version": "1.1.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/lolli42/FineDiff.git",
|
||||
"reference": "807deaf7aa119cf47b58e90ba7bf37c8c8264c7a"
|
||||
"reference": "38a03ca581ee72d7b20bbb1d89d47c5ecf8b11ba"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/lolli42/FineDiff/zipball/807deaf7aa119cf47b58e90ba7bf37c8c8264c7a",
|
||||
"reference": "807deaf7aa119cf47b58e90ba7bf37c8c8264c7a",
|
||||
"url": "https://api.github.com/repos/lolli42/FineDiff/zipball/38a03ca581ee72d7b20bbb1d89d47c5ecf8b11ba",
|
||||
"reference": "38a03ca581ee72d7b20bbb1d89d47c5ecf8b11ba",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.0",
|
||||
"symfony/polyfill-mbstring": "^1.23"
|
||||
"ext-mbstring": "*",
|
||||
"php": ">=8.2"
|
||||
},
|
||||
"replace": {
|
||||
"cogpowered/finediff": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^3.4",
|
||||
"phpstan/phpstan": "^1.9.14",
|
||||
"phpunit/phpunit": "^8.5.33 || ^9.6.11 || ^10.3.2"
|
||||
"friendsofphp/php-cs-fixer": "^3.89.1",
|
||||
"phpstan/phpstan": "^2.1.31",
|
||||
"phpunit/phpunit": "^11.5.43 || ^12.4.2"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -2161,9 +2080,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/lolli42/FineDiff/issues",
|
||||
"source": "https://github.com/lolli42/FineDiff/tree/1.0.4"
|
||||
"source": "https://github.com/lolli42/FineDiff/tree/1.1.2"
|
||||
},
|
||||
"time": "2024-07-09T14:52:10+00:00"
|
||||
"time": "2025-10-31T12:28:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "masterminds/html5",
|
||||
@@ -2568,20 +2487,20 @@
|
||||
},
|
||||
{
|
||||
"name": "psr/cache",
|
||||
"version": "1.0.1",
|
||||
"version": "3.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/cache.git",
|
||||
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
|
||||
"reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
|
||||
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
|
||||
"url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
|
||||
"reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
"php": ">=8.0.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@@ -2601,7 +2520,7 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
"homepage": "https://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for caching libraries",
|
||||
@@ -2611,9 +2530,9 @@
|
||||
"psr-6"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/php-fig/cache/tree/master"
|
||||
"source": "https://github.com/php-fig/cache/tree/3.0.0"
|
||||
},
|
||||
"time": "2016-08-06T20:24:11+00:00"
|
||||
"time": "2021-02-03T23:26:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/container",
|
||||
@@ -3162,58 +3081,57 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/cache",
|
||||
"version": "v5.4.54",
|
||||
"version": "v6.4.47",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/cache.git",
|
||||
"reference": "c025df9d14208da976fa84a481f2f2a6e090500a"
|
||||
"reference": "7ce0de35c828d29a5602134cdcf82b9c301b198f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/cache/zipball/c025df9d14208da976fa84a481f2f2a6e090500a",
|
||||
"reference": "c025df9d14208da976fa84a481f2f2a6e090500a",
|
||||
"url": "https://api.github.com/repos/symfony/cache/zipball/7ce0de35c828d29a5602134cdcf82b9c301b198f",
|
||||
"reference": "7ce0de35c828d29a5602134cdcf82b9c301b198f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.5",
|
||||
"psr/cache": "^1.0|^2.0",
|
||||
"php": ">=8.1",
|
||||
"psr/cache": "^2.0|^3.0",
|
||||
"psr/log": "^1.1|^2|^3",
|
||||
"symfony/cache-contracts": "^1.1.7|^2",
|
||||
"symfony/deprecation-contracts": "^2.1|^3",
|
||||
"symfony/polyfill-php73": "^1.9",
|
||||
"symfony/polyfill-php80": "^1.16",
|
||||
"symfony/service-contracts": "^1.1|^2|^3",
|
||||
"symfony/var-exporter": "^4.4|^5.0|^6.0"
|
||||
"symfony/cache-contracts": "^2.5|^3",
|
||||
"symfony/service-contracts": "^2.5|^3",
|
||||
"symfony/var-exporter": "^6.3.6|^7.0"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/dbal": "<2.13.1",
|
||||
"symfony/dependency-injection": "<4.4",
|
||||
"symfony/http-kernel": "<4.4",
|
||||
"symfony/var-dumper": "<4.4"
|
||||
"symfony/dependency-injection": "<5.4",
|
||||
"symfony/http-kernel": "<5.4",
|
||||
"symfony/var-dumper": "<5.4"
|
||||
},
|
||||
"provide": {
|
||||
"psr/cache-implementation": "1.0|2.0",
|
||||
"psr/simple-cache-implementation": "1.0|2.0",
|
||||
"symfony/cache-implementation": "1.0|2.0"
|
||||
"psr/cache-implementation": "2.0|3.0",
|
||||
"psr/simple-cache-implementation": "1.0|2.0|3.0",
|
||||
"symfony/cache-implementation": "1.1|2.0|3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"cache/integration-tests": "^0.18",
|
||||
"doctrine/cache": "^1.6|^2.0",
|
||||
"doctrine/dbal": "^2.13.1|^3|^4",
|
||||
"predis/predis": "^1.1|^2.0",
|
||||
"psr/simple-cache": "^1.0|^2.0",
|
||||
"symfony/config": "^4.4|^5.0|^6.0",
|
||||
"symfony/dependency-injection": "^4.4|^5.0|^6.0",
|
||||
"symfony/filesystem": "^4.4|^5.0|^6.0",
|
||||
"symfony/http-kernel": "^4.4|^5.0|^6.0",
|
||||
"symfony/messenger": "^4.4|^5.0|^6.0",
|
||||
"symfony/var-dumper": "^4.4|^5.0|^6.0"
|
||||
"psr/simple-cache": "^1.0|^2.0|^3.0",
|
||||
"symfony/config": "^5.4|^6.0|^7.0",
|
||||
"symfony/dependency-injection": "^5.4|^6.0|^7.0",
|
||||
"symfony/filesystem": "^5.4|^6.0|^7.0",
|
||||
"symfony/http-kernel": "^5.4|^6.0|^7.0",
|
||||
"symfony/messenger": "^5.4|^6.0|^7.0",
|
||||
"symfony/var-dumper": "^5.4|^6.0|^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Cache\\": ""
|
||||
},
|
||||
"classmap": [
|
||||
"Traits/ValueWrapper.php"
|
||||
],
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
@@ -3239,7 +3157,7 @@
|
||||
"psr6"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/cache/tree/v5.4.54"
|
||||
"source": "https://github.com/symfony/cache/tree/v6.4.47"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -3259,28 +3177,25 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2026-08-30T20:10:04+00:00"
|
||||
"time": "2026-09-29T12:25:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/cache-contracts",
|
||||
"version": "v2.5.4",
|
||||
"version": "v3.7.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/cache-contracts.git",
|
||||
"reference": "517c3a3619dadfa6952c4651767fcadffb4df65e"
|
||||
"reference": "9789738bc19af1106dc54d6afba9a0b467516cf2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/cache-contracts/zipball/517c3a3619dadfa6952c4651767fcadffb4df65e",
|
||||
"reference": "517c3a3619dadfa6952c4651767fcadffb4df65e",
|
||||
"url": "https://api.github.com/repos/symfony/cache-contracts/zipball/9789738bc19af1106dc54d6afba9a0b467516cf2",
|
||||
"reference": "9789738bc19af1106dc54d6afba9a0b467516cf2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.5",
|
||||
"psr/cache": "^1.0|^2.0|^3.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/cache-implementation": ""
|
||||
"php": ">=8.1",
|
||||
"psr/cache": "^3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@@ -3289,7 +3204,7 @@
|
||||
"name": "symfony/contracts"
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-main": "2.5-dev"
|
||||
"dev-main": "3.7-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -3322,7 +3237,7 @@
|
||||
"standards"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/cache-contracts/tree/v2.5.4"
|
||||
"source": "https://github.com/symfony/cache-contracts/tree/v3.7.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -3333,12 +3248,16 @@
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/nicolas-grekas",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-09-25T14:11:13+00:00"
|
||||
"time": "2026-06-05T06:23:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/config",
|
||||
@@ -3613,20 +3532,20 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/deprecation-contracts",
|
||||
"version": "v2.5.4",
|
||||
"version": "v3.7.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/deprecation-contracts.git",
|
||||
"reference": "605389f2a7e5625f273b53960dc46aeaf9c62918"
|
||||
"reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/605389f2a7e5625f273b53960dc46aeaf9c62918",
|
||||
"reference": "605389f2a7e5625f273b53960dc46aeaf9c62918",
|
||||
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d",
|
||||
"reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
"php": ">=8.1"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@@ -3635,7 +3554,7 @@
|
||||
"name": "symfony/contracts"
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-main": "2.5-dev"
|
||||
"dev-main": "3.7-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -3660,7 +3579,7 @@
|
||||
"description": "A generic function and convention to trigger deprecation notices",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.4"
|
||||
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -3671,53 +3590,52 @@
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/nicolas-grekas",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-09-25T14:11:13+00:00"
|
||||
"time": "2026-06-05T06:23:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher",
|
||||
"version": "v5.4.45",
|
||||
"version": "v6.4.44",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/event-dispatcher.git",
|
||||
"reference": "72982eb416f61003e9bb6e91f8b3213600dcf9e9"
|
||||
"reference": "d7110a878e7e7cbd8aaebe9f55da8af885b8c0af"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/72982eb416f61003e9bb6e91f8b3213600dcf9e9",
|
||||
"reference": "72982eb416f61003e9bb6e91f8b3213600dcf9e9",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d7110a878e7e7cbd8aaebe9f55da8af885b8c0af",
|
||||
"reference": "d7110a878e7e7cbd8aaebe9f55da8af885b8c0af",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.5",
|
||||
"symfony/deprecation-contracts": "^2.1|^3",
|
||||
"symfony/event-dispatcher-contracts": "^2|^3",
|
||||
"symfony/polyfill-php80": "^1.16"
|
||||
"php": ">=8.1",
|
||||
"symfony/event-dispatcher-contracts": "^2.5|^3"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/dependency-injection": "<4.4"
|
||||
"symfony/dependency-injection": "<5.4",
|
||||
"symfony/service-contracts": "<2.5"
|
||||
},
|
||||
"provide": {
|
||||
"psr/event-dispatcher-implementation": "1.0",
|
||||
"symfony/event-dispatcher-implementation": "2.0"
|
||||
"symfony/event-dispatcher-implementation": "2.0|3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/log": "^1|^2|^3",
|
||||
"symfony/config": "^4.4|^5.0|^6.0",
|
||||
"symfony/dependency-injection": "^4.4|^5.0|^6.0",
|
||||
"symfony/error-handler": "^4.4|^5.0|^6.0",
|
||||
"symfony/expression-language": "^4.4|^5.0|^6.0",
|
||||
"symfony/http-foundation": "^4.4|^5.0|^6.0",
|
||||
"symfony/service-contracts": "^1.1|^2|^3",
|
||||
"symfony/stopwatch": "^4.4|^5.0|^6.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/dependency-injection": "",
|
||||
"symfony/http-kernel": ""
|
||||
"symfony/config": "^5.4|^6.0|^7.0",
|
||||
"symfony/dependency-injection": "^5.4|^6.0|^7.0",
|
||||
"symfony/error-handler": "^5.4|^6.0|^7.0",
|
||||
"symfony/expression-language": "^5.4|^6.0|^7.0",
|
||||
"symfony/http-foundation": "^5.4|^6.0|^7.0",
|
||||
"symfony/service-contracts": "^2.5|^3",
|
||||
"symfony/stopwatch": "^5.4|^6.0|^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -3745,7 +3663,7 @@
|
||||
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/event-dispatcher/tree/v5.4.45"
|
||||
"source": "https://github.com/symfony/event-dispatcher/tree/v6.4.44"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -3756,12 +3674,16 @@
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/nicolas-grekas",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-09-25T14:11:13+00:00"
|
||||
"time": "2026-08-21T14:01:40+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher-contracts",
|
||||
@@ -4126,30 +4048,30 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/lock",
|
||||
"version": "v5.4.54",
|
||||
"version": "v6.4.48",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/lock.git",
|
||||
"reference": "1ed040bccdf75281b237206c87b8ef4289c23b88"
|
||||
"reference": "bb18c2ad3b61bcddb4385b50f1c86e17a7dac035"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/lock/zipball/1ed040bccdf75281b237206c87b8ef4289c23b88",
|
||||
"reference": "1ed040bccdf75281b237206c87b8ef4289c23b88",
|
||||
"url": "https://api.github.com/repos/symfony/lock/zipball/bb18c2ad3b61bcddb4385b50f1c86e17a7dac035",
|
||||
"reference": "bb18c2ad3b61bcddb4385b50f1c86e17a7dac035",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.5",
|
||||
"php": ">=8.1",
|
||||
"psr/log": "^1|^2|^3",
|
||||
"symfony/deprecation-contracts": "^2.1|^3",
|
||||
"symfony/polyfill-php80": "^1.16"
|
||||
"symfony/deprecation-contracts": "^2.5|^3"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/dbal": "<2.13"
|
||||
"doctrine/dbal": "<2.13.1",
|
||||
"symfony/cache": "<6.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/dbal": "^2.13|^3|^4",
|
||||
"predis/predis": "^1.0|^2.0"
|
||||
"doctrine/dbal": "^2.13.1|^3|^4",
|
||||
"predis/predis": "^1.1|^2.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -4185,7 +4107,7 @@
|
||||
"semaphore"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/lock/tree/v5.4.54"
|
||||
"source": "https://github.com/symfony/lock/tree/v6.4.48"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -4205,7 +4127,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2026-08-30T20:10:04+00:00"
|
||||
"time": "2026-10-04T13:21:49+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/mailer",
|
||||
@@ -5281,21 +5203,20 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/process",
|
||||
"version": "v5.4.54",
|
||||
"version": "v6.4.48",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/process.git",
|
||||
"reference": "485d7b3f15ae329058d2407c9772c57ed4f564de"
|
||||
"reference": "2a0cb83994a4b8a5f92fc91b8b4527e6e227c6f5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/process/zipball/485d7b3f15ae329058d2407c9772c57ed4f564de",
|
||||
"reference": "485d7b3f15ae329058d2407c9772c57ed4f564de",
|
||||
"url": "https://api.github.com/repos/symfony/process/zipball/2a0cb83994a4b8a5f92fc91b8b4527e6e227c6f5",
|
||||
"reference": "2a0cb83994a4b8a5f92fc91b8b4527e6e227c6f5",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.5",
|
||||
"symfony/polyfill-php80": "^1.16"
|
||||
"php": ">=8.1"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -5323,7 +5244,7 @@
|
||||
"description": "Executes commands in sub-processes",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/process/tree/v5.4.54"
|
||||
"source": "https://github.com/symfony/process/tree/v6.4.48"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -5343,7 +5264,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2026-09-01T06:19:14+00:00"
|
||||
"time": "2026-10-08T05:06:07+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/property-access",
|
||||
@@ -5770,34 +5691,33 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/string",
|
||||
"version": "v5.4.47",
|
||||
"version": "v6.4.48",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/string.git",
|
||||
"reference": "136ca7d72f72b599f2631aca474a4f8e26719799"
|
||||
"reference": "9459a27a00b1f0fec1954e9eb362d00aedcfe048"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/string/zipball/136ca7d72f72b599f2631aca474a4f8e26719799",
|
||||
"reference": "136ca7d72f72b599f2631aca474a4f8e26719799",
|
||||
"url": "https://api.github.com/repos/symfony/string/zipball/9459a27a00b1f0fec1954e9eb362d00aedcfe048",
|
||||
"reference": "9459a27a00b1f0fec1954e9eb362d00aedcfe048",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.5",
|
||||
"php": ">=8.1",
|
||||
"symfony/polyfill-ctype": "~1.8",
|
||||
"symfony/polyfill-intl-grapheme": "~1.0",
|
||||
"symfony/polyfill-intl-normalizer": "~1.0",
|
||||
"symfony/polyfill-mbstring": "~1.0",
|
||||
"symfony/polyfill-php80": "~1.15"
|
||||
"symfony/polyfill-mbstring": "~1.0"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/translation-contracts": ">=3.0"
|
||||
"symfony/translation-contracts": "<2.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/error-handler": "^4.4|^5.0|^6.0",
|
||||
"symfony/http-client": "^4.4|^5.0|^6.0",
|
||||
"symfony/translation-contracts": "^1.1|^2",
|
||||
"symfony/var-exporter": "^4.4|^5.0|^6.0"
|
||||
"symfony/http-client": "^5.4|^6.0|^7.0",
|
||||
"symfony/intl": "^6.2|^7.0",
|
||||
"symfony/translation-contracts": "^2.5|^3.0",
|
||||
"symfony/var-exporter": "^5.4|^6.0|^7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -5836,7 +5756,7 @@
|
||||
"utf8"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/string/tree/v5.4.47"
|
||||
"source": "https://github.com/symfony/string/tree/v6.4.48"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -5847,33 +5767,39 @@
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/nicolas-grekas",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-11-10T20:33:58+00:00"
|
||||
"time": "2026-10-03T14:51:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/var-exporter",
|
||||
"version": "v5.4.45",
|
||||
"version": "v7.4.18",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/var-exporter.git",
|
||||
"reference": "862700068db0ddfd8c5b850671e029a90246ec75"
|
||||
"reference": "d6a87acbe48cbc707b9aba7f1a6c2215aab02603"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/var-exporter/zipball/862700068db0ddfd8c5b850671e029a90246ec75",
|
||||
"reference": "862700068db0ddfd8c5b850671e029a90246ec75",
|
||||
"url": "https://api.github.com/repos/symfony/var-exporter/zipball/d6a87acbe48cbc707b9aba7f1a6c2215aab02603",
|
||||
"reference": "d6a87acbe48cbc707b9aba7f1a6c2215aab02603",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2.5",
|
||||
"symfony/polyfill-php80": "^1.16"
|
||||
"php": ">=8.2",
|
||||
"symfony/deprecation-contracts": "^2.5|^3"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/var-dumper": "^4.4.9|^5.0.9|^6.0"
|
||||
"symfony/property-access": "^6.4|^7.0|^8.0",
|
||||
"symfony/serializer": "^6.4|^7.0|^8.0",
|
||||
"symfony/var-dumper": "^6.4|^7.0|^8.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -5906,10 +5832,12 @@
|
||||
"export",
|
||||
"hydrate",
|
||||
"instantiate",
|
||||
"lazy-loading",
|
||||
"proxy",
|
||||
"serialize"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/var-exporter/tree/v5.4.45"
|
||||
"source": "https://github.com/symfony/var-exporter/tree/v7.4.18"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -5920,12 +5848,16 @@
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/nicolas-grekas",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-09-25T14:11:13+00:00"
|
||||
"time": "2026-08-23T10:03:40+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/yaml",
|
||||
@@ -6006,65 +5938,6 @@
|
||||
],
|
||||
"time": "2026-08-30T06:09:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "t3/pw_comments",
|
||||
"version": "5.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/a-r-m-i-n/pw_comments.git",
|
||||
"reference": "ebe1d7a7e4e3046a62c1e090ad49b2a17eef8867"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/a-r-m-i-n/pw_comments/zipball/ebe1d7a7e4e3046a62c1e090ad49b2a17eef8867",
|
||||
"reference": "ebe1d7a7e4e3046a62c1e090ad49b2a17eef8867",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2 || ^8.0",
|
||||
"typo3/cms-core": "^10.4 || ^11.5"
|
||||
},
|
||||
"replace": {
|
||||
"instituteweb/pw_comments": "*"
|
||||
},
|
||||
"type": "typo3-cms-extension",
|
||||
"extra": {
|
||||
"typo3/cms": {
|
||||
"extension-key": "pw_comments"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"T3\\PwComments\\": "Classes"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"GPL-2.0+"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Armin Vieweg",
|
||||
"email": "armin@v.ieweg.de",
|
||||
"homepage": "https://v.ieweg.de/",
|
||||
"role": "Lead Developer"
|
||||
}
|
||||
],
|
||||
"description": "Powerful TYPO3 CMS extension for providing comments, including replies on comments and votings, as well as mail notifications.",
|
||||
"homepage": "http://v.ieweg.de/",
|
||||
"keywords": [
|
||||
"comment",
|
||||
"extension",
|
||||
"typo3",
|
||||
"voting"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/a-r-m-i-n/pw_comments/issues",
|
||||
"source": "https://github.com/a-r-m-i-n/pw_comments/tree/5.2.0"
|
||||
},
|
||||
"abandoned": "teamneusta/pw_comments",
|
||||
"time": "2022-08-03T16:46:35+00:00"
|
||||
},
|
||||
{
|
||||
"name": "typo3/class-alias-loader",
|
||||
"version": "v1.2.2",
|
||||
@@ -7999,31 +7872,33 @@
|
||||
},
|
||||
{
|
||||
"name": "typo3fluid/fluid",
|
||||
"version": "2.7.4",
|
||||
"version": "2.15.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/TYPO3/Fluid.git",
|
||||
"reference": "24f4494083c8d304680e4c9c38667dff33720dd4"
|
||||
"reference": "0a8ebdb9bab1510380f18bef6395fbb4754c01b7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/TYPO3/Fluid/zipball/24f4494083c8d304680e4c9c38667dff33720dd4",
|
||||
"reference": "24f4494083c8d304680e4c9c38667dff33720dd4",
|
||||
"url": "https://api.github.com/repos/TYPO3/Fluid/zipball/0a8ebdb9bab1510380f18bef6395fbb4754c01b7",
|
||||
"reference": "0a8ebdb9bab1510380f18bef6395fbb4754c01b7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2 || ^8.0"
|
||||
"ext-mbstring": "*",
|
||||
"php": "^8.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-json": "*",
|
||||
"ext-mbstring": "*",
|
||||
"friendsofphp/php-cs-fixer": "^3.4",
|
||||
"phpstan/phpstan": "^1.7",
|
||||
"phpstan/phpstan-phpunit": "^1.1",
|
||||
"phpunit/phpunit": "^8.5.33 || ^9.5.28 || ^10.0.16"
|
||||
"ext-simplexml": "*",
|
||||
"friendsofphp/php-cs-fixer": "^3.59.3",
|
||||
"phpstan/phpstan": "^1.10.14",
|
||||
"phpstan/phpstan-phpunit": "^1.3.11",
|
||||
"phpunit/phpunit": "^10.2.6"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-json": "PHP JSON is needed when using JSONVariableProvider: A relatively rare use case"
|
||||
"ext-json": "PHP JSON is needed when using JSONVariableProvider: A relatively rare use case",
|
||||
"ext-simplexml": "SimpleXML is required for the XSD schema generator"
|
||||
},
|
||||
"bin": [
|
||||
"bin/fluid"
|
||||
@@ -8045,27 +7920,27 @@
|
||||
"issues": "https://github.com/TYPO3/Fluid/issues",
|
||||
"source": "https://github.com/TYPO3/Fluid"
|
||||
},
|
||||
"time": "2023-03-23T12:04:09+00:00"
|
||||
"time": "2024-08-30T21:24:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "webmozart/assert",
|
||||
"version": "1.12.1",
|
||||
"version": "2.5.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/webmozarts/assert.git",
|
||||
"reference": "9be6926d8b485f55b9229203f962b51ed377ba68"
|
||||
"reference": "8a163706bbcac613733dba03f51e13b5eb1bb819"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68",
|
||||
"reference": "9be6926d8b485f55b9229203f962b51ed377ba68",
|
||||
"url": "https://api.github.com/repos/webmozarts/assert/zipball/8a163706bbcac613733dba03f51e13b5eb1bb819",
|
||||
"reference": "8a163706bbcac613733dba03f51e13b5eb1bb819",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-ctype": "*",
|
||||
"ext-date": "*",
|
||||
"ext-filter": "*",
|
||||
"php": "^7.2 || ^8.0"
|
||||
"php": "^8.2"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "",
|
||||
@@ -8074,8 +7949,12 @@
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"psalm": {
|
||||
"pluginClass": "Webmozart\\Assert\\PsalmPlugin"
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-master": "1.10-dev"
|
||||
"dev-master": "2.0-dev",
|
||||
"dev-feature/2-0": "2.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -8091,6 +7970,10 @@
|
||||
{
|
||||
"name": "Bernhard Schussek",
|
||||
"email": "bschussek@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Woody Gilk",
|
||||
"email": "woody.gilk@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Assertions to validate method input/output with nice error messages.",
|
||||
@@ -8101,9 +7984,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/webmozarts/assert/issues",
|
||||
"source": "https://github.com/webmozarts/assert/tree/1.12.1"
|
||||
"source": "https://github.com/webmozarts/assert/tree/2.5.0"
|
||||
},
|
||||
"time": "2025-10-29T15:56:20+00:00"
|
||||
"time": "2026-10-05T23:14:19+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
@@ -8114,10 +7997,10 @@
|
||||
},
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": {},
|
||||
"platform-dev": {},
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"platform-overrides": {
|
||||
"php": "7.4.1"
|
||||
"php": "8.3"
|
||||
},
|
||||
"plugin-api-version": "2.6.0"
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
base: 'https://www.xn--dotterbhel-geb.com/'
|
||||
base: 'https://dotter.test/'
|
||||
errorHandling:
|
||||
-
|
||||
errorCode: 404
|
||||
@@ -22,11 +22,5 @@ languages:
|
||||
direction: ltr
|
||||
flag: at
|
||||
websiteTitle: ''
|
||||
matomoWidgetsActiveWidgets: 'actionsPerDay,actionsPerMonth,annotations,createAnnotation,bounceRate,browserPlugins,browsers,campaigns,contentNames,contentPieces,countries,javaScriptErrors,linkMatomo,osFamilies,pagesNotFound,siteSearchKeywords,siteSearchNoResultKeywords,visitsPerDay,visitsPerMonth'
|
||||
matomoWidgetsIdSite: 1
|
||||
matomoWidgetsPagesNotFoundTemplate: '404/URL = {path}/From = {referrer}'
|
||||
matomoWidgetsTitle: 'FC Dotterbühel'
|
||||
matomoWidgetsTokenAuth: 7b47a9c62448e14d0db1cf19ecffa087
|
||||
matomoWidgetsUrl: 'https://matomo.nuhodds.com/'
|
||||
rootPageId: 1
|
||||
websiteTitle: 'FC Dotterbühel'
|
||||
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace HermannTelser\Watten\Controller;
|
||||
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use Psr\Http\Server\MiddlewareInterface;
|
||||
use Psr\Http\Server\RequestHandlerInterface;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use HermannTelser\Watten\Domain\Repository\SpieltageRepository;
|
||||
use HermannTelser\Watten\Domain\Repository\ErgebnisseRepository;
|
||||
use HermannTelser\Watten\Domain\Repository\RanglisteRepository;
|
||||
use HermannTelser\Watten\Domain\Repository\StatistikRepository;
|
||||
use HermannTelser\Watten\Domain\Repository\GstrichenRepository;
|
||||
use HermannTelser\Watten\Domain\Repository\AthletenRepository;
|
||||
|
||||
class EidController implements MiddlewareInterface
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
date_default_timezone_set('Europe/Vienna');
|
||||
}
|
||||
|
||||
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
||||
{
|
||||
$response = $handler->handle($request);
|
||||
if (!isset($request->getQueryParams()['application'])) {
|
||||
return $response;
|
||||
}
|
||||
|
||||
switch (GeneralUtility::_GP('application')) {
|
||||
case 'loadspieltag':
|
||||
$arr = SpieltageRepository::loadSpieltag();
|
||||
break;
|
||||
case 'loadrangliste':
|
||||
$activeTournament = GeneralUtility::_GP('tournament') ?? ErgebnisseRepository::getActiveTournament();
|
||||
$arr = RanglisteRepository::loadRangliste($activeTournament);
|
||||
break;
|
||||
case 'loadgstrichenliste':
|
||||
$activeTournament = GeneralUtility::_GP('tournament') ?? ErgebnisseRepository::getActiveTournament();
|
||||
$arr = GstrichenRepository::loadGstrichenliste($activeTournament);
|
||||
break;
|
||||
case 'loadstatistik':
|
||||
$event_id = GeneralUtility::_GP('event_id') ?? ErgebnisseRepository::getLastEventId();
|
||||
$arr = StatistikRepository::loadStatistik($event_id);
|
||||
break;
|
||||
case 'loadstatistiktangliste':
|
||||
$activeTournament = GeneralUtility::_GP('tournament') ?? ErgebnisseRepository::getActiveTournament();
|
||||
$arr = StatistikRepository::loadStatistikRangliste($activeTournament);
|
||||
break;
|
||||
case 'loadtournamentathleten':
|
||||
$activeTournament = GeneralUtility::_GP('tournament') ?? ErgebnisseRepository::getActiveTournament();
|
||||
$arr = AthletenRepository::loadTournamentAthleten($activeTournament);
|
||||
break;
|
||||
case 'loadpaarlaufer';
|
||||
$activeTournament = GeneralUtility::_GP('tournament') ?? ErgebnisseRepository::getActiveTournament();
|
||||
$teilnehmer_id = GeneralUtility::_GP('teilnehmer_id');
|
||||
$arr = StatistikRepository::loadPaarlauf($activeTournament, $teilnehmer_id);
|
||||
break;
|
||||
}
|
||||
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode((array) $arr);
|
||||
exit();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Controller;
|
||||
|
||||
use HermannTelser\Watten\Domain\Repository\ErgebnisseRepository;
|
||||
use HermannTelser\Watten\Domain\Repository\AthletenRepository;
|
||||
use HermannTelser\Watten\Domain\Repository\SpieltageRepository;
|
||||
use HermannTelser\Watten\Domain\Repository\RanglisteRepository;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
class WattenController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController
|
||||
{
|
||||
private $athletenRepository;
|
||||
|
||||
private $spieltageRepository;
|
||||
|
||||
private $ergebnisseRepository;
|
||||
|
||||
private $ranglisteRepository;
|
||||
|
||||
private $activeTournament;
|
||||
|
||||
private $event_id;
|
||||
|
||||
/**
|
||||
* Inject the Athleten repository
|
||||
*
|
||||
* @param \HermannTelser\Watten\Domain\Repository\AthletenRepository $athletenRepository
|
||||
* @param \HermannTelser\Watten\Domain\Repository\SpieltageRepository $spieltageRepository
|
||||
* @param \HermannTelser\Watten\Domain\Repository\ErgebnisseRepository $ergebnisseRepository
|
||||
* @param \HermannTelser\Watten\Domain\Repository\RanglisteRepository $ranglisteRepository
|
||||
*/
|
||||
|
||||
public function __construct(AthletenRepository $athletenRepository, SpieltageRepository $spieltageRepository, ErgebnisseRepository $ergebnisseRepository, RanglisteRepository $ranglisteRepository)
|
||||
{
|
||||
$this->athletenRepository = $athletenRepository;
|
||||
$this->ergebnisseRepository = $ergebnisseRepository;
|
||||
$this->spieltageRepository = $spieltageRepository;
|
||||
$this->ranglisteRepository = $ranglisteRepository;
|
||||
|
||||
$this->activeTournament = GeneralUtility::_GP('tournament') ?? $this->ergebnisseRepository->getActiveTournament();
|
||||
$this->event_id = GeneralUtility::_GP('event_id') ?? $this->ergebnisseRepository->getLastEventId();
|
||||
}
|
||||
|
||||
public function ergebnisseAction()
|
||||
{
|
||||
$tournaments = $this->ergebnisseRepository->findTournaments(false);
|
||||
$this->view->assign('tournaments', $tournaments);
|
||||
$this->view->assign('active_tournaments', $this->activeTournament);
|
||||
|
||||
$spieltage = $this->spieltageRepository->loadSpieltage();
|
||||
$this->view->assign('spieltage', $spieltage);
|
||||
$this->view->assign('active_event_id', $this->event_id);
|
||||
}
|
||||
|
||||
public function ranglisteAction()
|
||||
{
|
||||
$tournaments = $this->ergebnisseRepository->findTournaments(true);
|
||||
$this->view->assign('tournaments', $tournaments);
|
||||
$this->view->assign('active', $this->activeTournament);
|
||||
}
|
||||
|
||||
public function statistikAction()
|
||||
{
|
||||
$tournaments = $this->ergebnisseRepository->findTournaments(true);
|
||||
$this->view->assign('tournaments', $tournaments);
|
||||
$this->view->assign('active', $this->activeTournament);
|
||||
$teilnehmer = $this->athletenRepository->loadTournamentAthleten($this->activeTournament);
|
||||
$this->view->assign('teilnehmer', $teilnehmer);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,191 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Daten;
|
||||
|
||||
// use Doctrine\DBAL\DBALException;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Database\Connection;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
class Berechnung
|
||||
{
|
||||
public static function run()
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_athleten')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'athlet')
|
||||
->from('tx_watten_domain_model_athleten')
|
||||
->execute();
|
||||
|
||||
$user = [];
|
||||
foreach ($res as $key => $value) {
|
||||
$user[$value['uid']] = $value['athlet'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_tournaments')->createQueryBuilder();
|
||||
$tournaments = $queryBuilder
|
||||
->select('uid', 'tournament', 'active', 'king')
|
||||
->from('tx_watten_tournaments')
|
||||
->execute();
|
||||
|
||||
// TRUNCATE `tx_watten_tournaments_ergebnisse`
|
||||
GeneralUtility::makeInstance(ConnectionPool::class)
|
||||
->getConnectionForTable('tx_watten_tournaments_ergebnisse')
|
||||
->truncate('tx_watten_tournaments_ergebnisse');
|
||||
|
||||
self::calcolate_data($user, ['uid' => 0, 'tournament' => 'Gesamt']);
|
||||
foreach ($tournaments as $key => $row) {
|
||||
self::calcolate_data($user, $row);
|
||||
}
|
||||
}
|
||||
|
||||
public static function calcolate_data($user, $row)
|
||||
{
|
||||
$tournamentid = $row['uid'];
|
||||
$tournament = $row['tournament'];
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder();
|
||||
if ($tournamentid == 0) {
|
||||
// Gesamt
|
||||
$_tournament = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'bumid')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->executeQuery()
|
||||
->fetchAllAssociative();
|
||||
} else {
|
||||
$_tournament = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'bumid')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('tournaments_id', (int) $tournamentid)
|
||||
)
|
||||
->executeQuery()
|
||||
->fetchAllAssociative();
|
||||
}
|
||||
$arr = [];
|
||||
foreach ($_tournament as $key => $value) {
|
||||
$bum = $value['bumid'];
|
||||
$s1 = $value['s1'];
|
||||
$s2 = $value['s2'];
|
||||
$v1 = $value['v1'];
|
||||
$v2 = $value['v2'];
|
||||
|
||||
if (!isset($arr[$s1]['s'][$bum])) {
|
||||
$arr[$s1]['s'][$bum] = 0;
|
||||
}
|
||||
if (!isset($arr[$s2]['s'][$bum])) {
|
||||
$arr[$s2]['s'][$bum] = 0;
|
||||
}
|
||||
if (!isset($arr[$v1]['v'][$bum])) {
|
||||
$arr[$v1]['v'][$bum] = 0;
|
||||
}
|
||||
if (!isset($arr[$v2]['v'][$bum])) {
|
||||
$arr[$v2]['v'][$bum] = 0;
|
||||
}
|
||||
if (!isset($arr[$s1]['p'])) {
|
||||
$arr[$s1]['p'] = 0;
|
||||
}
|
||||
if (!isset($arr[$s2]['p'])) {
|
||||
$arr[$s2]['p'] = 0;
|
||||
}
|
||||
if (!isset($arr[$v1]['p'])) {
|
||||
$arr[$v1]['p'] = 0;
|
||||
}
|
||||
if (!isset($arr[$v2]['p'])) {
|
||||
$arr[$v2]['p'] = 0;
|
||||
}
|
||||
$arr[$s1]['s'][$bum]++;
|
||||
$arr[$s2]['s'][$bum]++;
|
||||
$arr[$v1]['v'][$bum]++;
|
||||
$arr[$v2]['v'][$bum]++;
|
||||
$arr[$s1]['p']++;
|
||||
$arr[$s2]['p']++;
|
||||
$arr[$v1]['p']++;
|
||||
$arr[$v2]['p']++;
|
||||
}
|
||||
|
||||
foreach ($arr as $userid => $value) {
|
||||
$punkte = 0;
|
||||
if (isset($value['s'][1])) {
|
||||
$punkte = $value['s'][1] * 1.1;
|
||||
}
|
||||
if (isset($value['s'][2])) {
|
||||
$punkte += $value['s'][2] * 2.1;
|
||||
}
|
||||
if (isset($value['s'][4])) {
|
||||
$punkte += $value['s'][4] * 4.1;
|
||||
}
|
||||
if (isset($value['v'][1])) {
|
||||
$punkte -= $value['v'][1];
|
||||
}
|
||||
if (isset($value['v'][2])) {
|
||||
$punkte -= $value['v'][2] * 2;
|
||||
}
|
||||
if (isset($value['v'][4])) {
|
||||
$punkte -= $value['v'][4] * 4;
|
||||
}
|
||||
$arr[$userid]['punkte'] = round($punkte, 2);
|
||||
$arr[$userid]['spiele'] = $value['p'];
|
||||
$arr[$userid]['userid'] = $userid;
|
||||
$arr[$userid]['name'] = $user[$userid];
|
||||
$arr[$userid]['userid'] = $userid;
|
||||
}
|
||||
|
||||
$punkte = array_column($arr, 'punkte');
|
||||
array_multisort($punkte, SORT_NUMERIC, SORT_DESC, $arr);
|
||||
|
||||
$winner = $arr[0];
|
||||
$looser = $arr[array_key_last($arr)];
|
||||
|
||||
foreach ($arr as $key => $value) {
|
||||
$arr[$key]['platz'] = $key + 1;
|
||||
$arr[$key]['s1'] = isset($value['s'][1]) ? $value['s'][1] : '';
|
||||
$arr[$key]['s1'] = isset($value['s'][1]) ? $value['s'][1] : '';
|
||||
$arr[$key]['s2'] = isset($value['s'][2]) ? $value['s'][2] : '';
|
||||
$arr[$key]['s4'] = isset($value['s'][4]) ? $value['s'][4] : '';
|
||||
unset($arr[$key]['s']);
|
||||
|
||||
$arr[$key]['v1'] = isset($value['v'][1]) ? $value['v'][1] : '';
|
||||
$arr[$key]['v2'] = isset($value['v'][2]) ? $value['v'][2] : '';
|
||||
$arr[$key]['v4'] = isset($value['v'][4]) ? $value['v'][4] : '';
|
||||
unset($arr[$key]['v']);
|
||||
}
|
||||
|
||||
$insert_value = [];
|
||||
$insert_value['crdate'] = time();
|
||||
$insert_value['tournament_id'] = $tournamentid;
|
||||
$insert_value['tournament'] = (string)$tournament;
|
||||
if ($tournamentid == 0) {
|
||||
$insert_value['type'] = 'gesamt';
|
||||
} elseif ($row['king'] == 1) {
|
||||
$insert_value['type'] = 'king';
|
||||
} elseif ($row['active'] == 1) {
|
||||
$insert_value['type'] = 'active';
|
||||
}
|
||||
$insert_value['koenig'] = (string)$winner['name'];
|
||||
$insert_value['koenig_id'] = (int)$winner['userid'];
|
||||
$insert_value['koenig_spiele'] = isset($winner['spiele']) ? $winner['spiele'] : 0;
|
||||
$insert_value['koenig_punkte'] = isset($winner['punkte']) ? (float) $winner['punkte'] : 0;
|
||||
$insert_value['koenig_siege'] = isset($winner['s'][1]) ? $winner['s'][1] : 0;
|
||||
$insert_value['koenig_niederlagen'] = isset($winner['v'][1]) ? $winner['v'][1] : 0;
|
||||
$insert_value['koenig_schneider'] = isset($winner['s'][2]) ? $winner['s'][2] : 0;
|
||||
$insert_value['koenig_schneider_niederlage'] = isset($winner['v'][2]) ? $winner['v'][2] : 0;
|
||||
$insert_value['koenig_retour_schneider'] = isset($winner['s'][4]) ? $winner['s'][4] : 0;
|
||||
$insert_value['koenig_retour_schneider_niederlage'] = isset($winner['v'][4]) ? $winner['v'][4] : 0;
|
||||
|
||||
$insert_value['schneewatter'] = (string)$looser['name'];
|
||||
$insert_value['schneewatter_id'] = (int)$looser['userid'];
|
||||
$insert_value['schneewatter_spiele'] = isset($looser['spiele']) ? $looser['spiele'] : 0;
|
||||
$insert_value['schneewatter_punkte'] = isset($looser['punkte']) ? (float) $looser['punkte'] : 0;
|
||||
$insert_value['schneewatter_siege'] = isset($looser['s'][1]) ? $looser['s'][1] : 0;
|
||||
$insert_value['schneewatter_niederlagen'] = isset($looser['v'][1]) ? $looser['v'][1] : 0;
|
||||
$insert_value['schneewatter_schneider'] = isset($looser['s'][2]) ? $looser['s'][2] : 0;
|
||||
$insert_value['schneewatter_schneider_niederlage'] = isset($looser['v'][2]) ? $looser['v'][2] : 0;
|
||||
$insert_value['schneewatter_retour_schneider'] = isset($looser['s'][4]) ? $looser['s'][4] : 0;
|
||||
$insert_value['schneewatter_retour_schneider_niederlage'] = isset($looser['v'][4]) ? $looser['v'][4] : 0;
|
||||
|
||||
$insert_value['result_json'] = json_encode($arr);
|
||||
|
||||
GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_tournaments_ergebnisse')
|
||||
->insert('tx_watten_tournaments_ergebnisse', $insert_value);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Domain\Model;
|
||||
|
||||
use TYPO3\CMS\Extbase\DomainObject\AbstractEntity;
|
||||
|
||||
class Athleten extends AbstractEntity
|
||||
{
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $gender = 0;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $name = '';
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $image = '';
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $isactive = 0;
|
||||
|
||||
|
||||
public function __construct(int $gender = 0, string $name = '', string $image = '', int $isactive = 0)
|
||||
{
|
||||
$this->setGender($gender);
|
||||
$this->setName($name);
|
||||
$this->setImage($image);
|
||||
$this->setIsactive($isactive);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $gender
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setGender(int $gender): void
|
||||
{
|
||||
$this->gender = $gender;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getGender(): int
|
||||
{
|
||||
return $this->gender;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string $name
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setName(string $name): void
|
||||
{
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getName(): string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string $image
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setImage(string $image): void
|
||||
{
|
||||
$this->image = $image;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getImage(): string
|
||||
{
|
||||
return $this->image;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $isactive
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setIsactive(int $isactive): void
|
||||
{
|
||||
$this->isactive = $isactive;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getIsactive(): int
|
||||
{
|
||||
return $this->isactive;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,170 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Domain\Model;
|
||||
|
||||
use DateTime;
|
||||
use TYPO3\CMS\Extbase\DomainObject\AbstractEntity;
|
||||
|
||||
class Ergebnisse extends AbstractEntity
|
||||
{
|
||||
/**
|
||||
* @var DateTime
|
||||
*/
|
||||
protected $datum = 0;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $s1 = 0;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $s2 = 0;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $v1 = 0;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $v2 = 0;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $bumid = 0;
|
||||
|
||||
public function __construct(int $datum = 0, int $s1 = 0, int $s2 = 0, int $v1 = 0, int $v2 = 0, int $bumid = 0)
|
||||
{
|
||||
$this->setDatum($datum);
|
||||
$this->setS1($s1);
|
||||
$this->setS2($s2);
|
||||
$this->setV1($v1);
|
||||
$this->setV2($v2);
|
||||
$this->setBumid($bumid);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param DateTime $datum time stamp
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setDatum(int $datum): void
|
||||
{
|
||||
$this->datum = $datum;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return DateTime
|
||||
*/
|
||||
public function getDatum(): int
|
||||
{
|
||||
return $this->datum;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $s1
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setS1(int $s1): void
|
||||
{
|
||||
$this->s1 = $s1;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Int
|
||||
*/
|
||||
public function getS1(): int
|
||||
{
|
||||
return $this->s1;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $s2
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setS2(int $s2): void
|
||||
{
|
||||
$this->s2 = $s2;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Int
|
||||
*/
|
||||
public function getS2(): int
|
||||
{
|
||||
return $this->s2;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $v1
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setV1(int $v1): void
|
||||
{
|
||||
$this->v1 = $v1;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Int
|
||||
*/
|
||||
public function getV1(): int
|
||||
{
|
||||
return $this->v1;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $v1
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setV2(int $v2): void
|
||||
{
|
||||
$this->v2 = $v2;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Int
|
||||
*/
|
||||
public function getV2(): int
|
||||
{
|
||||
return $this->v2;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $bumid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setBumid(int $bumid): void
|
||||
{
|
||||
$this->bumid = $bumid;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Int
|
||||
*/
|
||||
public function getBumid(): int
|
||||
{
|
||||
return $this->bumid;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Domain\Model;
|
||||
|
||||
use \DateTime;
|
||||
use TYPO3\CMS\Extbase\DomainObject\AbstractEntity;
|
||||
|
||||
class Events extends AbstractEntity
|
||||
{
|
||||
/**
|
||||
* @var DateTime
|
||||
*/
|
||||
protected $datum = 0;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $tournaments_id = 0;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $event = 0;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $isactive = 0;
|
||||
|
||||
|
||||
public function __construct(int $datum = 0, int $tournaments_id = 0, string $event = '', int $isactive = 0)
|
||||
{
|
||||
$this->setDatum($datum);
|
||||
$this->setTournamentId($tournaments_id);
|
||||
$this->setEvent($event);
|
||||
$this->setIsactive($isactive);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param DateTime $datum
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setDatum(int $datum): void
|
||||
{
|
||||
$this->datum = $datum;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return DateTime
|
||||
*/
|
||||
public function getDatum(): int
|
||||
{
|
||||
return $this->datum;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $tournaments_id
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setTournamentId(int $tournaments_id): void
|
||||
{
|
||||
$this->s1 = $tournaments_id;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Int
|
||||
*/
|
||||
public function getTournamentId(): int
|
||||
{
|
||||
return $this->tournaments_id;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param String $event
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setEvent(string $event): void
|
||||
{
|
||||
$this->event = $event;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return String
|
||||
*/
|
||||
public function getEvent(): string
|
||||
{
|
||||
return $this->event;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $isactive
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setIsactive(int $isactive): void
|
||||
{
|
||||
$this->s1 = $isactive;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Int
|
||||
*/
|
||||
public function getIsactive(): int
|
||||
{
|
||||
return $this->isactive;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Domain\Repository;
|
||||
|
||||
use TYPO3\CMS\Extbase\Persistence\Repository;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
class AthletenRepository extends Repository
|
||||
{
|
||||
public static function loadTournamentAthleten($activeTournament)
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_athleten')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'name')
|
||||
->from('tx_watten_domain_model_athleten')
|
||||
->execute();
|
||||
$athleten = [];
|
||||
foreach ($res as $value) {
|
||||
$athleten[$value['uid']] = $value['name'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('tournaments_id', (int) $activeTournament)
|
||||
)
|
||||
->execute();
|
||||
$active = [];
|
||||
foreach ($res as $value) {
|
||||
$active[] = $value['s1'];
|
||||
$active[] = $value['s2'];
|
||||
$active[] = $value['v1'];
|
||||
$active[] = $value['v2'];
|
||||
}
|
||||
$active = array_unique($active);
|
||||
|
||||
$return = [];
|
||||
$return[] = ['id' => 0, 'name' => 'Athleten'];
|
||||
foreach ($athleten as $key => $name) {
|
||||
if (in_array($key, $active)) {
|
||||
$return[] = ['id' => $key, 'name' => $name];
|
||||
}
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Domain\Repository;
|
||||
|
||||
use TYPO3\CMS\Extbase\Persistence\Repository;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use stdClass;
|
||||
|
||||
class ErgebnisseRepository extends Repository
|
||||
{
|
||||
public static function loadStatistik()
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_tournaments')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid')
|
||||
->from('tx_watten_tournaments')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('active', (int) 1)
|
||||
)
|
||||
->execute();
|
||||
foreach ($res as $key => $value) {
|
||||
return (int) $value['uid'];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static function getActiveTournament()
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_tournaments')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid')
|
||||
->from('tx_watten_tournaments')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('active', (int) 1)
|
||||
)
|
||||
->execute();
|
||||
foreach ($res as $key => $value) {
|
||||
return (int) $value['uid'];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function getLastEventId()
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_events')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid')
|
||||
->from('tx_watten_domain_model_events')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('isactive', (int) 1)
|
||||
)
|
||||
->execute();
|
||||
foreach ($res as $key => $value) {
|
||||
return (int) $value['uid'];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function findTournaments($mitGesammt)
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_tournaments')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'tournament', 'active')
|
||||
->from('tx_watten_tournaments')
|
||||
->execute();
|
||||
|
||||
$tournaments = [];
|
||||
foreach ($res as $key => $value) {
|
||||
$tmp = new stdClass();
|
||||
$tmp->id = (int) $value['uid'];
|
||||
$tmp->name = $value['tournament'];
|
||||
$tmp->active = $value['active'];
|
||||
$tournaments[] = $tmp;
|
||||
}
|
||||
if ($mitGesammt == true) {
|
||||
$tmp = new stdClass();
|
||||
$tmp->id = -1;
|
||||
$tmp->name = "Gesamt";
|
||||
$tournaments[] = $tmp;
|
||||
}
|
||||
return $tournaments;
|
||||
}
|
||||
|
||||
public function findByEventId(int $event_id)
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_athleten')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'name')
|
||||
->from('tx_watten_domain_model_athleten')
|
||||
->execute();
|
||||
$athleten = [];
|
||||
foreach ($res as $key => $value) {
|
||||
$athleten[$value['uid']] = $value['name'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder();
|
||||
$ergebnisse = $queryBuilder
|
||||
->select('uid', 'datum', 's1', 's2', 'v1', 'v2', 'bumid')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('event_id', (int) $event_id)
|
||||
)
|
||||
->execute();
|
||||
|
||||
$return = [];
|
||||
foreach ($ergebnisse as $key => $value) {
|
||||
$tmp = [];
|
||||
$tmp['uid'] = $value['uid'];
|
||||
$tmp['s1'] = $athleten[$value['s1']];
|
||||
$tmp['s2'] = $athleten[$value['s2']];
|
||||
$tmp['v1'] = $athleten[$value['v1']];
|
||||
$tmp['v2'] = $athleten[$value['v2']];
|
||||
$tmp['bumid'] = $value['bumid'];
|
||||
$return[] = $tmp;
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Domain\Repository;
|
||||
|
||||
use TYPO3\CMS\Extbase\Persistence\Repository;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use stdClass;
|
||||
|
||||
class GstrichenRepository extends Repository
|
||||
{
|
||||
public static function loadGstrichenliste($activeTournament)
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_athleten')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'name')
|
||||
->from('tx_watten_domain_model_athleten')
|
||||
->execute();
|
||||
$user = [];
|
||||
foreach ($res as $key => $value) {
|
||||
$user[$value['uid']] = $value['name'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder();
|
||||
if ($activeTournament < 0) {
|
||||
$ergebnisse = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'gstrichen')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->execute();
|
||||
} else {
|
||||
$ergebnisse = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'gstrichen')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->where($queryBuilder->expr()->eq('tournaments_id', (int) $activeTournament))
|
||||
->execute();
|
||||
}
|
||||
|
||||
$arr = [];
|
||||
foreach ($ergebnisse as $key => $value) {
|
||||
$s1 = $value['s1'];
|
||||
$s2 = $value['s2'];
|
||||
$v1 = $value['v1'];
|
||||
$v2 = $value['v2'];
|
||||
$gs = $value['gstrichen'];
|
||||
|
||||
if (!isset($arr[$s1]['s'])) {
|
||||
$arr[$s1]['s'] = 0;
|
||||
$arr[$s1]['v'] = 0;
|
||||
}
|
||||
if (!isset($arr[$s2]['s'])) {
|
||||
$arr[$s2]['s'] = 0;
|
||||
$arr[$s2]['v'] = 0;
|
||||
}
|
||||
if (!isset($arr[$v1]['v'])) {
|
||||
$arr[$v1]['v'] = 0;
|
||||
$arr[$v1]['s'] = 0;
|
||||
}
|
||||
if (!isset($arrv[$v2]['v'])) {
|
||||
$arr[$v2]['v'] = 0;
|
||||
$arr[$v2]['s'] = 0;
|
||||
}
|
||||
if ($gs) {
|
||||
$arr[$s1]['s']++;
|
||||
$arr[$s2]['s']++;
|
||||
$arr[$v1]['v']++;
|
||||
$arr[$v2]['v']++;
|
||||
}
|
||||
}
|
||||
|
||||
$sieger = [];
|
||||
$verlierer = [];
|
||||
$i = 1;
|
||||
foreach ($arr as $userid => $value) {
|
||||
$sieger[$i]['sieger'] = $user[$userid];
|
||||
$sieger[$i]['gewonnen'] = $value['s'];
|
||||
|
||||
$verlierer[$i]['verlierer'] = $user[$userid];
|
||||
$verlierer[$i]['verloren'] = $value['v'];
|
||||
|
||||
$i++;
|
||||
}
|
||||
$gewonnen = array_column($sieger, 'gewonnen');
|
||||
array_multisort($gewonnen, SORT_NUMERIC, SORT_DESC, $sieger);
|
||||
$verloren = array_column($verlierer, 'verloren');
|
||||
array_multisort($verloren, SORT_NUMERIC, SORT_DESC, $verlierer);
|
||||
|
||||
$return = [];
|
||||
$s = 0;
|
||||
$v = 0;
|
||||
foreach ($gewonnen as $key => $value) {
|
||||
$return[$key] = array_merge($sieger[$key], $verlierer[$key]);
|
||||
$return[$key]['platz'] = $key + 1;
|
||||
|
||||
if ($return[$key]['gewonnen'] == 0) {
|
||||
$return[$key]['sieger'] = '';
|
||||
$return[$key]['gewonnen'] = '';
|
||||
$s = 1;
|
||||
}
|
||||
if ($return[$key]['verloren'] == 0) {
|
||||
$return[$key]['verloren'] = '';
|
||||
$return[$key]['verlierer'] = '';
|
||||
$v = 1;
|
||||
}
|
||||
if ($s and $v) {
|
||||
unset($return[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,149 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Domain\Repository;
|
||||
|
||||
use TYPO3\CMS\Extbase\Persistence\Repository;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use stdClass;
|
||||
|
||||
class RanglisteRepository extends Repository
|
||||
{
|
||||
public static function loadRangliste($activeTournament)
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_athleten')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'name')
|
||||
->from('tx_watten_domain_model_athleten')
|
||||
->execute();
|
||||
$user = [];
|
||||
foreach ($res as $key => $value) {
|
||||
$user[$value['uid']] = $value['name'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder();
|
||||
if ($activeTournament < 0) {
|
||||
$ergebnisse = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'bumid', 'gstrichen')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->execute();
|
||||
} else {
|
||||
$ergebnisse = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'bumid', 'gstrichen')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->where($queryBuilder->expr()->eq('tournaments_id', (int) $activeTournament))
|
||||
->execute();
|
||||
}
|
||||
// debug($queryBuilder->getSQL());
|
||||
|
||||
$arr = [];
|
||||
foreach ($ergebnisse as $key => $value) {
|
||||
$bum = $value['bumid'];
|
||||
$s1 = $value['s1'];
|
||||
$s2 = $value['s2'];
|
||||
$v1 = $value['v1'];
|
||||
$v2 = $value['v2'];
|
||||
$ge = $value['gstrichen'];
|
||||
|
||||
if (!isset($arr[$s1]['s'][$bum])) {
|
||||
$arr[$s1]['s'][$bum] = 0;
|
||||
}
|
||||
if (!isset($arr[$s2]['s'][$bum])) {
|
||||
$arr[$s2]['s'][$bum] = 0;
|
||||
}
|
||||
if (!isset($arr[$v1]['v'][$bum])) {
|
||||
$arr[$v1]['v'][$bum] = 0;
|
||||
}
|
||||
if (!isset($arr[$v2]['v'][$bum])) {
|
||||
$arr[$v2]['v'][$bum] = 0;
|
||||
}
|
||||
if (!isset($arr[$s1]['p'])) {
|
||||
$arr[$s1]['p'] = 0;
|
||||
}
|
||||
if (!isset($arr[$s2]['p'])) {
|
||||
$arr[$s2]['p'] = 0;
|
||||
}
|
||||
if (!isset($arr[$v1]['p'])) {
|
||||
$arr[$v1]['p'] = 0;
|
||||
}
|
||||
if (!isset($arr[$v2]['p'])) {
|
||||
$arr[$v2]['p'] = 0;
|
||||
}
|
||||
if (!isset($arr[$s1]['sg'])) {
|
||||
$arr[$s1]['sg'] = 0;
|
||||
}
|
||||
if (!isset($arr[$s2]['sg'])) {
|
||||
$arr[$s2]['sg'] = 0;
|
||||
}
|
||||
if (!isset($arr[$v1]['vg'])) {
|
||||
$arr[$v1]['vg'] = 0;
|
||||
}
|
||||
if (!isset($arr[$v2]['vg'])) {
|
||||
$arr[$v2]['vg'] = 0;
|
||||
}
|
||||
$arr[$s1]['s'][$bum]++;
|
||||
$arr[$s2]['s'][$bum]++;
|
||||
$arr[$v1]['v'][$bum]++;
|
||||
$arr[$v2]['v'][$bum]++;
|
||||
$arr[$s1]['p']++;
|
||||
$arr[$s2]['p']++;
|
||||
$arr[$v1]['p']++;
|
||||
$arr[$v2]['p']++;
|
||||
if ($ge) {
|
||||
$arr[$s1]['sg']++;
|
||||
$arr[$s2]['sg']++;
|
||||
$arr[$v1]['vg']++;
|
||||
$arr[$v2]['vg']++;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($arr as $userid => $value) {
|
||||
$punkte = 0;
|
||||
if (isset($value['s'][1])) {
|
||||
$punkte += $value['s'][1] * 1.1;
|
||||
}
|
||||
if (isset($value['s'][2])) {
|
||||
$punkte += $value['s'][2] * 2.1;
|
||||
}
|
||||
if (isset($value['s'][4])) {
|
||||
$punkte += $value['s'][4] * 4.1;
|
||||
}
|
||||
if (isset($value['v'][1])) {
|
||||
$punkte -= $value['v'][1];
|
||||
}
|
||||
if (isset($value['v'][2])) {
|
||||
$punkte -= $value['v'][2] * 2;
|
||||
}
|
||||
if (isset($value['v'][4])) {
|
||||
$punkte -= $value['v'][4] * 4;
|
||||
}
|
||||
$arr[$userid]['punkte'] = round($punkte, 2);
|
||||
$arr[$userid]['spiele'] = $value['p'];
|
||||
$arr[$userid]['name'] = $user[$userid];
|
||||
unset($arr[$userid]['p']);
|
||||
}
|
||||
|
||||
$punkte = array_column($arr, 'punkte');
|
||||
array_multisort($punkte, SORT_NUMERIC, SORT_DESC, $arr);
|
||||
|
||||
// $winner = $arr[0];
|
||||
// $looser = $arr[array_key_last($arr)];
|
||||
|
||||
foreach ($arr as $key => $value) {
|
||||
$arr[$key]['platz'] = $key + 1;
|
||||
$arr[$key]['s1'] = isset($value['s'][1]) ?? '';
|
||||
$arr[$key]['s1'] = isset($value['s'][1]) ? $value['s'][1] : '';
|
||||
$arr[$key]['s2'] = isset($value['s'][2]) ? $value['s'][2] : '';
|
||||
$arr[$key]['s4'] = isset($value['s'][4]) ? $value['s'][4] : '';
|
||||
$arr[$key]['sg'] = isset($value['sg']) && $value['sg'] != 0 ? $value['sg'] : '';
|
||||
unset($arr[$key]['s']);
|
||||
|
||||
$arr[$key]['v1'] = isset($value['v'][1]) ? $value['v'][1] : '';
|
||||
$arr[$key]['v2'] = isset($value['v'][2]) ? $value['v'][2] : '';
|
||||
$arr[$key]['v4'] = isset($value['v'][4]) ? $value['v'][4] : '';
|
||||
$arr[$key]['vg'] = isset($value['vg']) && $value['vg'] != 0 ? $value['vg'] : '';
|
||||
unset($arr[$key]['v']);
|
||||
}
|
||||
return $arr;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Domain\Repository;
|
||||
|
||||
use TYPO3\CMS\Extbase\Persistence\Repository;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use HermannTelser\Watten\Domain\Repository\ErgebnisseRepository;
|
||||
use stdClass;
|
||||
|
||||
class SpieltageRepository extends Repository
|
||||
{
|
||||
public static function loadSpieltage()
|
||||
{
|
||||
$activeTournament = GeneralUtility::_GP('tournament') ?? ErgebnisseRepository::getActiveTournament();
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_events')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'datum', 'event', 'isactive')
|
||||
->from('tx_watten_domain_model_events')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('tournaments_id', (int) $activeTournament)
|
||||
)
|
||||
->addOrderBy('datum', 'DESC')
|
||||
->execute();
|
||||
|
||||
$spieltage = [];
|
||||
$tmp = new stdClass();
|
||||
$tmp->id = 0;
|
||||
$tmp->name = 'Spieltag';
|
||||
$spieltage[] = $tmp;
|
||||
foreach ($res as $key => $value) {
|
||||
$tmp = new stdClass();
|
||||
$tmp->id = (int) $value['uid'];
|
||||
// $tmp->selected = (int) $value['isactive'];
|
||||
$tmp->name = date("d. M. Y", $value['datum']);
|
||||
if ($value['event']) {
|
||||
$tmp->name .= ' - ' . $value['event'];
|
||||
}
|
||||
$spieltage[] = $tmp;
|
||||
}
|
||||
|
||||
return $spieltage;
|
||||
}
|
||||
|
||||
public static function loadSpieltag()
|
||||
{
|
||||
$event_id = (int) GeneralUtility::_GP('event_id');
|
||||
if (!$event_id) {
|
||||
exit;
|
||||
}
|
||||
|
||||
$return = [];
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_events')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('story')
|
||||
->from('tx_watten_domain_model_events')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('uid', (int) $event_id)
|
||||
)
|
||||
->execute();
|
||||
foreach ($res as $key => $value) {
|
||||
$return['story'] = $value['story'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_athleten')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'name')
|
||||
->from('tx_watten_domain_model_athleten')
|
||||
->execute();
|
||||
$athleten = [];
|
||||
foreach ($res as $key => $value) {
|
||||
$athleten[$value['uid']] = $value['name'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder();
|
||||
$ergebnisse = $queryBuilder
|
||||
->select('uid', 'datum', 's1', 's2', 'v1', 'v2', 'bumid', 'gstrichen')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('event_id', (int) $event_id)
|
||||
)
|
||||
->execute();
|
||||
|
||||
$data = [];
|
||||
foreach ($ergebnisse as $key => $value) {
|
||||
$tmp = [];
|
||||
$tmp['uid'] = (int) $value['uid'];
|
||||
$tmp['s1'] = $athleten[$value['s1']];
|
||||
$tmp['s2'] = $athleten[$value['s2']];
|
||||
$tmp['v1'] = $athleten[$value['v1']];
|
||||
$tmp['v2'] = $athleten[$value['v2']];
|
||||
$tmp['gs'] = $value['gstrichen'] ? '||' : '';
|
||||
$tmp['bumid'] = (int) $value['bumid'];
|
||||
$tmp['datum'] = (int) $value['datum'];
|
||||
$data[] = $tmp;
|
||||
}
|
||||
$return['data'] = $data;
|
||||
$return['punkte'] = self::punkte($data);
|
||||
return $return;
|
||||
}
|
||||
|
||||
private static function punkte(array $data)
|
||||
{
|
||||
$punkte = [];
|
||||
foreach ($data as $value) {
|
||||
$s1 = $value['s1'];
|
||||
$s2 = $value['s2'];
|
||||
$v1 = $value['v1'];
|
||||
$v2 = $value['v2'];
|
||||
if (!isset($punkte[$s1])) {
|
||||
$punkte[$s1] = $value['bumid'] + 0.1;
|
||||
} else {
|
||||
$punkte[$s1] = $punkte[$s1] + $value['bumid'] + 0.1;
|
||||
}
|
||||
if (!isset($punkte[$s2])) {
|
||||
$punkte[$s2] = $value['bumid'] + 0.1;
|
||||
} else {
|
||||
$punkte[$s2] = $punkte[$s2] + $value['bumid'] + 0.1;
|
||||
}
|
||||
if (!isset($punkte[$v1])) {
|
||||
$punkte[$v1] = - ($value['bumid']);
|
||||
} else {
|
||||
$punkte[$v1] = $punkte[$v1] - $value['bumid'];
|
||||
}
|
||||
if (!isset($punkte[$v2])) {
|
||||
$punkte[$v2] = - ($value['bumid']);
|
||||
} else {
|
||||
$punkte[$v2] = $punkte[$v2] - $value['bumid'];
|
||||
}
|
||||
}
|
||||
$return = [];
|
||||
arsort($punkte);
|
||||
$i = 1;
|
||||
foreach ($punkte as $name => $value) {
|
||||
$tmp = [];
|
||||
$tmp['rang'] = $i;
|
||||
$tmp['name'] = $name;
|
||||
$tmp['punkte'] = round($value, 1);
|
||||
$return[] = $tmp;
|
||||
$i++;
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,395 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Domain\Repository;
|
||||
|
||||
use TYPO3\CMS\Extbase\Persistence\Repository;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use stdClass;
|
||||
|
||||
class StatistikRepository extends Repository
|
||||
{
|
||||
public static function loadStatistikRangliste($activeTournament)
|
||||
{
|
||||
/*
|
||||
[punkte] => 5.9
|
||||
[spiele] => 13
|
||||
[name] => Gerhard
|
||||
[platz] => 1
|
||||
[s1] => 9
|
||||
[s2] =>
|
||||
[s4] =>
|
||||
[v1] => 4
|
||||
[v2] =>
|
||||
[v4] =>
|
||||
*/
|
||||
$arr = RanglisteRepository::loadRangliste($activeTournament);
|
||||
$return = [];
|
||||
$tmp = [];
|
||||
foreach ($arr as $key => $value) {
|
||||
$return['labels'][] = $value['name'] . " " . $value['platz'] . ". Platz";
|
||||
$tmp['s1']['label'] = "Gewonnen";
|
||||
$tmp['s1']['data'][] = $value['s1'] ? $value['s1'] : 0;
|
||||
$tmp['s2']['label'] = "Schneider";
|
||||
$tmp['s2']['data'][] = $value['s2'] ? $value['s2'] : 0;
|
||||
$tmp['s4']['label'] = "Retour Schneider";
|
||||
$tmp['s4']['data'][] = $value['s4'] ? $value['s4'] : 0;
|
||||
$tmp['v1']['label'] = "Verloren";
|
||||
$tmp['v1']['data'][] = $value['v1'] ? $value['v1'] * -1 : 0;
|
||||
$tmp['v2']['label'] = "Schneider Verloren";
|
||||
$tmp['v2']['data'][] = $value['v2'] ? $value['v2'] * -1 : 0;
|
||||
$tmp['v4']['label'] = "Retour Schneider Verloren";
|
||||
$tmp['v4']['data'][] = $value['v4'] ? $value['v4'] * -1 : 0;
|
||||
}
|
||||
$datasets = [];
|
||||
foreach ($tmp as $key => $value) {
|
||||
if (array_sum($value['data']) != false) {
|
||||
$value['borderWidth'] = 1;
|
||||
$datasets[] = $value;
|
||||
}
|
||||
}
|
||||
$return['datasets'] = $datasets;
|
||||
// print_r($return);
|
||||
return $return;
|
||||
}
|
||||
|
||||
|
||||
public static function loadStatistik($event_id)
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_athleten')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'name')
|
||||
->from('tx_watten_domain_model_athleten')
|
||||
->execute();
|
||||
$user = [];
|
||||
foreach ($res as $key => $value) {
|
||||
$user[$value['uid']] = $value['name'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder();
|
||||
$ergebnisse = $queryBuilder
|
||||
->select('uid', 's1', 's2', 'v1', 'v2', 'bumid')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->where($queryBuilder->expr()->eq('event_id', (int) $event_id))
|
||||
->execute();
|
||||
|
||||
$usr = [];
|
||||
$data = [];
|
||||
foreach ($ergebnisse as $value) {
|
||||
$usr[] = $value['s1'];
|
||||
$usr[] = $value['s2'];
|
||||
$usr[] = $value['v1'];
|
||||
$usr[] = $value['v2'];
|
||||
$data[] = $value;
|
||||
}
|
||||
$usr = array_unique($usr);
|
||||
|
||||
$arr = [];
|
||||
$datasets = [];
|
||||
foreach ($data as $value) {
|
||||
$arr['labels'][] = $value['uid'];
|
||||
$bum = $value['bumid'];
|
||||
$s1 = $value['s1'];
|
||||
$s2 = $value['s2'];
|
||||
$v1 = $value['v1'];
|
||||
$v2 = $value['v2'];
|
||||
|
||||
foreach ($usr as $key => $uid) {
|
||||
if (isset($datasets[$uid])) {
|
||||
$punkte = 0;
|
||||
if ($s1 == $uid or $s2 == $uid) {
|
||||
switch ($bum) {
|
||||
case 1:
|
||||
$punkte = 1.1;
|
||||
break;
|
||||
case 2:
|
||||
$punkte = 2.1;
|
||||
break;
|
||||
case 4:
|
||||
$punkte = 4.1;
|
||||
break;
|
||||
}
|
||||
} elseif ($v1 == $uid or $v2 == $uid) {
|
||||
switch ($bum) {
|
||||
case 1:
|
||||
$punkte = -1;
|
||||
break;
|
||||
case 2:
|
||||
$punkte = -2;
|
||||
break;
|
||||
case 4:
|
||||
$punkte = -4;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$datasets[$uid]['stand'] = round($datasets[$uid]['stand'] + $punkte, 2);
|
||||
$datasets[$uid]['data'][] = $datasets[$uid]['stand'];
|
||||
} else {
|
||||
$datasets[$uid]['label'] = $user[$uid];
|
||||
|
||||
$punkte = 0;
|
||||
if ($s1 == $uid or $s2 == $uid) {
|
||||
switch ($bum) {
|
||||
case 1:
|
||||
$punkte = 1.1;
|
||||
break;
|
||||
case 2:
|
||||
$punkte = 2.1;
|
||||
break;
|
||||
case 4:
|
||||
$punkte = 4.1;
|
||||
break;
|
||||
}
|
||||
} elseif ($v1 == $uid or $v2 == $uid) {
|
||||
switch ($bum) {
|
||||
case 1:
|
||||
$punkte = -1;
|
||||
break;
|
||||
case 2:
|
||||
$punkte = -2;
|
||||
break;
|
||||
case 4:
|
||||
$punkte = -4;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$datasets[$uid]['stand'] = $punkte;
|
||||
$datasets[$uid]['data'][] = $punkte;
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach ($datasets as $value) {
|
||||
unset($value['stand']);
|
||||
$value['pointRadius'] = 2;
|
||||
$value['tension'] = 0;
|
||||
$value['borderWidth'] = 0.5;
|
||||
$arr['datasets'][] = $value;
|
||||
}
|
||||
return $arr;
|
||||
}
|
||||
|
||||
public static function loadPaarlauf($activeTournament, $athlet_1)
|
||||
{
|
||||
$athlet_1 = (int) $athlet_1;
|
||||
$athlet_2 = 3;
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_athleten')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'name')
|
||||
->from('tx_watten_domain_model_athleten')
|
||||
->execute();
|
||||
$user = [];
|
||||
foreach ($res as $key => $value) {
|
||||
$user[$value['uid']] = $value['name'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder();
|
||||
if ($activeTournament < 0) {
|
||||
$res = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'bumid', 'gstrichen')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->execute();
|
||||
} else {
|
||||
$res = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'bumid', 'gstrichen')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->where($queryBuilder->expr()->eq('tournaments_id', (int) $activeTournament))
|
||||
->execute();
|
||||
}
|
||||
|
||||
$_names = [
|
||||
'spiele' => 0,
|
||||
'siege' => 0,
|
||||
'verloren' => 0,
|
||||
'sn' => 0,
|
||||
'ss' => 0,
|
||||
'srs' => 0,
|
||||
'sg' => 0,
|
||||
'vn' => 0,
|
||||
'vs' => 0,
|
||||
'vrs' => 0,
|
||||
'vg' => 0,
|
||||
];
|
||||
$_data = [];
|
||||
foreach ($res as $row) {
|
||||
if ($row['s1'] == $athlet_1 or $row['s2'] == $athlet_1) {
|
||||
if ($row['s1'] == $athlet_1)
|
||||
$partner = (int) $row['s2'];
|
||||
else
|
||||
$partner = (int) $row['s1'];
|
||||
$gegner1 = (int) $row['v1'];
|
||||
$gegner2 = (int) $row['v2'];
|
||||
$bummalen = (int) $row['bumid'];
|
||||
$gstrichen = (int) $row['gstrichen'];
|
||||
|
||||
if (!isset($_data[$partner])) {
|
||||
$_data[$partner] = $_names;
|
||||
}
|
||||
$_data[$partner]['spiele']++;
|
||||
$_data[$partner]['siege']++;
|
||||
if ($bummalen == 1)
|
||||
$_data[$partner]['sn']++;
|
||||
else if ($bummalen == 2)
|
||||
$_data[$partner]['ss']++;
|
||||
else if ($bummalen == 4)
|
||||
$_data[$partner]['srs']++;
|
||||
if ($gstrichen == 1)
|
||||
$_data[$partner]['sg']++;
|
||||
|
||||
|
||||
if ($gegner1 < $gegner2) {
|
||||
$team = "$gegner1:$gegner2";
|
||||
} else {
|
||||
$team = "$gegner2:$gegner1";
|
||||
}
|
||||
if (!isset($_data[$partner]['gegner'][$team])) {
|
||||
$_data[$partner]['gegner'][$team] = $_names;
|
||||
}
|
||||
$_data[$partner]['gegner'][$team]['spiele']++;
|
||||
$_data[$partner]['gegner'][$team]['siege']++;
|
||||
|
||||
if ($bummalen == 1)
|
||||
$_data[$partner]['gegner'][$team]['sn']++;
|
||||
else if ($bummalen == 2)
|
||||
$_data[$partner]['gegner'][$team]['ss']++;
|
||||
else if ($bummalen == 4)
|
||||
$_data[$partner]['gegner'][$team]['srs']++;
|
||||
|
||||
if ($gstrichen == 1)
|
||||
$_data[$partner]['gegner'][$team]['sg']++;
|
||||
|
||||
} else if ($row['v1'] == $athlet_1 or $row['v2'] == $athlet_1) {
|
||||
if ($row['v1'] == $athlet_1)
|
||||
$partner = $row['v2'];
|
||||
else
|
||||
$partner = (int) $row['v1'];
|
||||
$gegner1 = (int) $row['s1'];
|
||||
$gegner2 = (int) $row['s2'];
|
||||
$bummalen = (int) $row['bumid'];
|
||||
$gstrichen = (int) $row['gstrichen'];
|
||||
|
||||
if (!isset($_data[$partner])) {
|
||||
$_data[$partner] = $_names;
|
||||
}
|
||||
$_data[$partner]['spiele']++;
|
||||
$_data[$partner]['verloren']++;
|
||||
if ($bummalen == 1)
|
||||
$_data[$partner]['vn']++;
|
||||
if ($bummalen == 2)
|
||||
$_data[$partner]['vs']++;
|
||||
if ($bummalen == 4)
|
||||
$_data[$partner]['vrs']++;
|
||||
if ($gstrichen == 1)
|
||||
$_data[$partner]['vg']++;
|
||||
|
||||
if ($gegner1 < $gegner2) {
|
||||
$team = "$gegner1:$gegner2";
|
||||
} else {
|
||||
$team = "$gegner2:$gegner1";
|
||||
}
|
||||
if (!isset($_data[$partner]['gegner'][$team])) {
|
||||
$_data[$partner]['gegner'][$team] = $_names;
|
||||
}
|
||||
$_data[$partner]['gegner'][$team]['spiele']++;
|
||||
$_data[$partner]['gegner'][$team]['verloren']++;
|
||||
if ($bummalen == 1)
|
||||
$_data[$partner]['gegner'][$team]['vn']++;
|
||||
if ($bummalen == 2)
|
||||
$_data[$partner]['gegner'][$team]['vs']++;
|
||||
if ($bummalen == 4)
|
||||
$_data[$partner]['gegner'][$team]['vrs']++;
|
||||
if ($gstrichen == 1)
|
||||
$_data[$partner]['gegner'][$team]['vg']++;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$return = [];
|
||||
if(isset($user[$athlet_1])){
|
||||
$athlet = $user[$athlet_1];
|
||||
foreach ($_data as $partnerid => $row) {
|
||||
$tmp = [];
|
||||
$partner = $user[$partnerid];
|
||||
$tmp['head'] = 1;
|
||||
$tmp['teams'] = $athlet . ' & ' . $partner . ' ';
|
||||
$tmp['spiele'] = $row['spiele'];
|
||||
$tmp['siege'] = $row['siege'];
|
||||
$tmp['verloren'] = $row['verloren'];
|
||||
$tmp['sn'] = $row['sn'];
|
||||
$tmp['ss'] = $row['ss'];
|
||||
$tmp['srs'] = $row['srs'];
|
||||
$tmp['sg'] = $row['sg'];
|
||||
$tmp['vn'] = $row['vn'];
|
||||
$tmp['vs'] = $row['vs'];
|
||||
$tmp['vrs'] = $row['vrs'];
|
||||
$tmp['vg'] = $row['vg'];
|
||||
$return[] = $tmp;
|
||||
|
||||
foreach ($row['gegner'] as $team => $value) {
|
||||
$tmp = [];
|
||||
$tmp['head'] = 0;
|
||||
$tmp['teams'] = $athlet . ' & ' . $partner . ' <img src="/typo3conf/ext/watten/Resources/Public/Icons/Degen.svg" class="iconsizesm"> ' . self::getnames($user, $team);
|
||||
$tmp['spiele'] = $value['spiele'];
|
||||
$tmp['siege'] = $value['siege'];
|
||||
$tmp['verloren'] = $value['verloren'];
|
||||
$tmp['sn'] = $value['sn'];
|
||||
$tmp['ss'] = $value['ss'];
|
||||
$tmp['srs'] = $value['srs'];
|
||||
$tmp['sg'] = $value['sg'];
|
||||
$tmp['vn'] = $value['vn'];
|
||||
$tmp['vs'] = $value['vs'];
|
||||
$tmp['vrs'] = $value['vrs'];
|
||||
$tmp['vg'] = $value['vg'];
|
||||
$return[] = $tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($return as $key1 => $row) {
|
||||
foreach ($row as $key2 => $value) {
|
||||
if ($key2 != 'teams' and $value == 0)
|
||||
$return[$key1][$key2] = '';
|
||||
}
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
public function getnames(&$user, $team)
|
||||
{
|
||||
$_gegner = explode(':', $team);
|
||||
$g1 = $_gegner[0];
|
||||
$g2 = $_gegner[1];
|
||||
return $user[$g1] . " & " . $user[$g2];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Array
|
||||
// (
|
||||
// [26] => Array
|
||||
// (
|
||||
// [spiele] => 11
|
||||
// [siege] => 6
|
||||
// [verloren] => 5
|
||||
// [sn] => 0
|
||||
// [ss] => 0
|
||||
// [srs] => 0
|
||||
// [gs] => 0
|
||||
// [vn] => 0
|
||||
// [vs] => 0
|
||||
// [vrs] => 0
|
||||
// [vg] => 0
|
||||
// [6:31] => Array
|
||||
// (
|
||||
// [spiele] => 1
|
||||
// [siege] => 1
|
||||
// [verloren] => 0
|
||||
// [sn] => 1
|
||||
// [ss] => 0
|
||||
// [srs] => 0
|
||||
// [gs] => 0
|
||||
// [vn] => 0
|
||||
// [vs] => 0
|
||||
// [vrs] => 0
|
||||
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Hooks;
|
||||
|
||||
/**
|
||||
* This file is part of the "news" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*/
|
||||
use TYPO3\CMS\Backend\Utility\BackendUtility as BackendUtilityCore;
|
||||
use TYPO3\CMS\Core\SingletonInterface;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Session\SessionManager;
|
||||
|
||||
/**
|
||||
* Hook into tcemain which is used to show preview of news item
|
||||
*/
|
||||
class DataHandler implements SingletonInterface
|
||||
{
|
||||
/**
|
||||
* Prevent saving of a news record if the editor doesn't have access to all categories of the news record
|
||||
*
|
||||
* @param array $fieldArray
|
||||
* @param string $table
|
||||
* @param int $id
|
||||
* @param $parentObject \TYPO3\CMS\Core\DataHandling\DataHandler
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function processDatamap_preProcessFieldArray(&$fieldArray, $table, $id, $parentObject): void
|
||||
{
|
||||
if ($table === 'tx_watten_domain_model_ergebnisse') {
|
||||
|
||||
// print_r($fieldArray);
|
||||
// print_r($table);
|
||||
// print_r($id);
|
||||
|
||||
$tmp = [];
|
||||
$tmp[] = $fieldArray['s1'];
|
||||
$tmp[] = $fieldArray['s2'];
|
||||
$tmp[] = $fieldArray['v1'];
|
||||
$tmp[] = $fieldArray['v2'];
|
||||
$tmp = array_unique($tmp);
|
||||
if (\array_sum($tmp) < 4) {
|
||||
$parentObject->log(
|
||||
$table,
|
||||
$id,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
"Sichern des Eintrags misslang. Grund: Athleten müssen vollständig ausgefüllt werden.",
|
||||
1,
|
||||
[$table]
|
||||
);
|
||||
// unset table to prevent saving
|
||||
$table = '';
|
||||
} elseif (\count($tmp) != 4) {
|
||||
$parentObject->log(
|
||||
$table,
|
||||
$id,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
"Sichern des Eintrags misslang. Grund: Athleten dürfen nicht doppelt vorkommen.",
|
||||
1,
|
||||
[$table]
|
||||
);
|
||||
// unset table to prevent saving
|
||||
$table = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace HermannTelser\Watten\Scheduler;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Scheduler\Task\AbstractTask;
|
||||
use HermannTelser\Watten\Daten\Berechnung;
|
||||
|
||||
class CronTask extends AbstractTask
|
||||
{
|
||||
public function execute()
|
||||
{
|
||||
$businessLogic = GeneralUtility::makeInstance(Berechnung::class);
|
||||
$businessLogic->run();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace HermannTelser\Watten\Tca;
|
||||
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Database\Connection;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
class Configuration
|
||||
{
|
||||
/*
|
||||
* @param string $type
|
||||
* @return integer
|
||||
*/
|
||||
public static function eingabedatum(): int
|
||||
{
|
||||
// use last entry in ergebnisse as default
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('datum')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->addOrderBy('uid', 'DESC')
|
||||
->setMaxResults(1)
|
||||
->setFirstResult(0)
|
||||
->execute();
|
||||
$spieltag = 0;
|
||||
foreach ($res as $key => $value) {
|
||||
$spieltag = (int) $value['datum'];
|
||||
}
|
||||
return $spieltag;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace HermannTelser\Watten\Utilities;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "mindshape Cookie Consent" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2021 Daniel Dorndorf <dorndorf@mindshape.de>, mindshape GmbH
|
||||
*
|
||||
***/
|
||||
|
||||
/**
|
||||
* @package HermannTelser\Watten\Utility
|
||||
*/
|
||||
class CookieUtility
|
||||
{
|
||||
public const DEFAULT_COOKIE_NAME = 'watten';
|
||||
|
||||
/**
|
||||
|
||||
* @param string $name
|
||||
* @return array|null
|
||||
*/
|
||||
public static function getCookieValue(string $name = self::DEFAULT_COOKIE_NAME): ?array
|
||||
{
|
||||
if (false === self::hasCookie($name)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return json_decode($_COOKIE[$name], true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $named
|
||||
* @return bool
|
||||
*/
|
||||
public static function hasCookie(string $name = self::DEFAULT_COOKIE_NAME): bool
|
||||
{
|
||||
return true === array_key_exists($name, $_COOKIE);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
*/
|
||||
public static function deleteCookie(string $name = self::DEFAULT_COOKIE_NAME): void
|
||||
{
|
||||
unset($_COOKIE[$name]);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<T3DataStructure>
|
||||
<sheets>
|
||||
<sDEF>
|
||||
<ROOT>
|
||||
<TCEforms>
|
||||
<sheetTitle>Statistik Konfiguration</sheetTitle>
|
||||
</TCEforms>
|
||||
<type>array</type>
|
||||
<el>
|
||||
<!-- Add settings here ... -->
|
||||
|
||||
<settings.statistik_mode>
|
||||
<TCEforms>
|
||||
<label>Select Statistik</label>
|
||||
<config>
|
||||
<type>select</type>
|
||||
<renderType>selectSingle</renderType>
|
||||
<items>
|
||||
<numIndex index="0">
|
||||
<numIndex index="0">Spieltag Chart</numIndex>
|
||||
<numIndex index="1">line</numIndex>
|
||||
</numIndex>
|
||||
<numIndex index="1">
|
||||
<numIndex index="0">Ranglisten Bar</numIndex>
|
||||
<numIndex index="1">bar</numIndex>
|
||||
</numIndex>
|
||||
</items>
|
||||
</config>
|
||||
</TCEforms>
|
||||
</settings.statistik_mode>
|
||||
|
||||
<!-- end of settings -->
|
||||
</el>
|
||||
</ROOT>
|
||||
</sDEF>
|
||||
</sheets>
|
||||
</T3DataStructure>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'watten-plugin-ergebnisse' => [
|
||||
'provider' => \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
|
||||
'source' => 'EXT:watten/Resources/Public/Icons/user_plugin_ergebnisse.svg'
|
||||
],
|
||||
];
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'frontend' => [
|
||||
'hermanntelser/watten/wattenajax' => [
|
||||
'target' => \HermannTelser\Watten\Controller\EidController::class,
|
||||
'after' => [
|
||||
'typo3/cms-frontend/prepare-tsfe-rendering'
|
||||
]
|
||||
],
|
||||
],
|
||||
];
|
||||
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
defined('TYPO3') || die();
|
||||
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile('watten', 'Configuration/TypoScript', 'Watten');
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
defined('TYPO3') || die();
|
||||
|
||||
// 1 extension key
|
||||
// 2 the name of the plugin
|
||||
// 3 title of the plugin used in the select box of the content element
|
||||
// 4 icon
|
||||
|
||||
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
|
||||
'Watten',
|
||||
'Ergebnisse',
|
||||
'Watten Ergebnisse',
|
||||
'EXT:watten/Resources/Public/Icons/Extension.svg'
|
||||
);
|
||||
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
|
||||
'Watten',
|
||||
'Rangliste',
|
||||
'Watten Rangliste',
|
||||
'EXT:watten/Resources/Public/Icons/Extension.svg'
|
||||
);
|
||||
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
|
||||
'Watten',
|
||||
'Statistik',
|
||||
'Watten Statistik',
|
||||
'EXT:watten/Resources/Public/Icons/Extension.svg'
|
||||
);
|
||||
|
||||
// $GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist']['watten_statistik'] = 'pi_flexform';
|
||||
// \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue(
|
||||
// 'watten_statistik',
|
||||
// 'FILE:EXT:watten/Configuration/FlexForms/flexform_watten.xml'
|
||||
// );
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
defined('TYPO3_MODE') || die();
|
||||
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr(
|
||||
'tx_watten_domain_model_athleten',
|
||||
'Watten Athleten'
|
||||
);
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_watten_domain_model_athleten');
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
defined('TYPO3_MODE') || die();
|
||||
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr(
|
||||
'tx_watten_domain_model_ergebnisse',
|
||||
'Watten Ergebnisse'
|
||||
);
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_watten_domain_model_ergebnisse');
|
||||
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
defined('TYPO3_MODE') || die();
|
||||
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr(
|
||||
'tx_watten_domain_model_events',
|
||||
'Watten Spieltage'
|
||||
);
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_watten_domain_model_events');
|
||||
@@ -0,0 +1,107 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'ctrl' => [
|
||||
'title' => 'Watten Athleten',
|
||||
'label' => 'name',
|
||||
'tstamp' => 'tstamp',
|
||||
'crdate' => 'crdate',
|
||||
'dividers2tabs' => true,
|
||||
'versioningWS' => false,
|
||||
'iconfile' => 'EXT:watten/Resources/Public/Icons/User.svg',
|
||||
'sortby' => 'uid',
|
||||
],
|
||||
'interface' => [
|
||||
'showRecordFieldList' => 'gender, name, image, isactive',
|
||||
],
|
||||
'types' => [
|
||||
'0' => ['showitem' => '
|
||||
--div--;Teilnehmer, gender, name, isactive, image'
|
||||
],
|
||||
],
|
||||
'palettes' => [
|
||||
'1' => ['showitem' => 'name, isactive'],
|
||||
],
|
||||
'columns' => [
|
||||
'gender' => [
|
||||
'exclude' => 1,
|
||||
'label' => 'Gender',
|
||||
'config' => [
|
||||
'type' => 'select',
|
||||
'renderType' => 'selectSingle',
|
||||
'items' => [
|
||||
['Herr', 0],
|
||||
['Frau', 1],
|
||||
],
|
||||
],
|
||||
],
|
||||
'name' => [
|
||||
'exclude' => 1,
|
||||
'label' => 'Athleten',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'max' => 50,
|
||||
],
|
||||
],
|
||||
'isactive' => [
|
||||
'exclude' => 0,
|
||||
'label' => 'Ist Aktiv',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
],
|
||||
],
|
||||
'image' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Avatar',
|
||||
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
|
||||
'image',
|
||||
[
|
||||
'appearance' => [
|
||||
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
|
||||
],
|
||||
'overrideChildTca' => [
|
||||
'types' => [
|
||||
\TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [
|
||||
'showitem' => '
|
||||
--palette--;;filePalette
|
||||
'
|
||||
],
|
||||
\TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
|
||||
'showitem' => '
|
||||
--palette--;;filePalette
|
||||
'
|
||||
],
|
||||
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
|
||||
'showitem' => '
|
||||
title,
|
||||
alternative,
|
||||
crop,
|
||||
--palette--;;filePalette
|
||||
'
|
||||
],
|
||||
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
|
||||
'showitem' => '
|
||||
--palette--;;filePalette
|
||||
'
|
||||
],
|
||||
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
|
||||
'showitem' => '
|
||||
--palette--;;filePalette
|
||||
'
|
||||
],
|
||||
\TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
|
||||
'showitem' => '
|
||||
--palette--;;filePalette
|
||||
'
|
||||
],
|
||||
],
|
||||
],
|
||||
'minitems' => 0,
|
||||
'maxitems' => 1,
|
||||
],
|
||||
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
|
||||
),
|
||||
],
|
||||
],
|
||||
];
|
||||
@@ -0,0 +1,169 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'ctrl' => [
|
||||
'title' => 'Watten Ergebnisse',
|
||||
'label' => 'uid',
|
||||
'tstamp' => 'tstamp',
|
||||
'crdate' => 'crdate',
|
||||
'dividers2tabs' => true,
|
||||
'versioningWS' => false,
|
||||
'searchFields' => 'uid',
|
||||
'iconfile' => 'EXT:watten/Resources/Public/Icons/List.svg',
|
||||
'default_sortby' => 'uid DESC',
|
||||
],
|
||||
'interface' => [
|
||||
'showRecordFieldList' => 'event_id, s1, s2, v1, v2, bumid, gstrichen',
|
||||
],
|
||||
'types' => [
|
||||
'1' => ['showitem' => '
|
||||
--div--;Spieltag, tournaments_id, event_id, s1, s2, v1, v2, bumid, gstrichen'
|
||||
],
|
||||
],
|
||||
'palettes' => [
|
||||
'1' => ['showitem' => 'datum'],
|
||||
],
|
||||
'columns' => [
|
||||
// 'datum' => [
|
||||
// 'exclude' => 1,
|
||||
// 'label' => 'Spieltag',
|
||||
// 'config' => [
|
||||
// 'type' => 'input',
|
||||
// 'renderType' => 'inputDateTime',
|
||||
// 'disableAgeDisplay' => 1,
|
||||
// 'size' => 13,
|
||||
// 'eval' => 'date',
|
||||
// 'checkbox' => 0,
|
||||
// 'default' => time(),
|
||||
// 'behaviour' => ['allowLanguageSynchronization' => false ],
|
||||
// 'range' => ['lower' => mktime(0, 0, 0, date('m'), date('d'), date('Y'))]
|
||||
// ],
|
||||
// ],
|
||||
'tournaments_id' => [
|
||||
'exclude' => 0,
|
||||
'label' => 'Tournament',
|
||||
'config' => [
|
||||
'fieldWizard' => [
|
||||
'selectIcons' => [
|
||||
'disabled' => true
|
||||
]
|
||||
],
|
||||
"type" => "select",
|
||||
'renderType' => 'selectSingle',
|
||||
"foreign_table" => "tx_watten_tournaments",
|
||||
// 'foreign_table_where' => 'AND active = 1 ORDER BY tournament',
|
||||
"size" => 1,
|
||||
"minitems" => 1,
|
||||
"maxitems" => 1,
|
||||
],
|
||||
],
|
||||
'event_id' => [
|
||||
'exclude' => 0,
|
||||
'label' => 'Event',
|
||||
'config' => [
|
||||
'fieldWizard' => [
|
||||
'selectIcons' => [
|
||||
'disabled' => true
|
||||
]
|
||||
],
|
||||
"type" => "select",
|
||||
'renderType' => 'selectSingle',
|
||||
"foreign_table" => "tx_watten_domain_model_events",
|
||||
// 'foreign_table_where' => 'AND isactive = 1',
|
||||
"size" => 1,
|
||||
"minitems" => 1,
|
||||
"maxitems" => 1,
|
||||
],
|
||||
],
|
||||
's1' => [
|
||||
'exclude' => 0,
|
||||
'label' => 'Sieger 1',
|
||||
'config' => [
|
||||
"type" => "select",
|
||||
"default" => "0",
|
||||
'items' => [
|
||||
['Bitte wählen', 0],
|
||||
],
|
||||
'renderType' => 'selectSingle',
|
||||
"foreign_table" => "tx_watten_domain_model_athleten",
|
||||
'foreign_table_where' => 'AND isactive = 1 ORDER BY name',
|
||||
"size" => 1,
|
||||
"minitems" => 1,
|
||||
"maxitems" => 1,
|
||||
],
|
||||
],
|
||||
's2' => [
|
||||
'exclude' => 0,
|
||||
'label' => 'Sieger 2',
|
||||
'config' => [
|
||||
"type" => "select",
|
||||
'items' => [
|
||||
['Bitte wählen', 0],
|
||||
],
|
||||
"default" => "0",
|
||||
'renderType' => 'selectSingle',
|
||||
"foreign_table" => "tx_watten_domain_model_athleten",
|
||||
'foreign_table_where' => 'AND isactive = 1 ORDER BY name',
|
||||
"size" => 1,
|
||||
"minitems" => 1,
|
||||
"maxitems" => 1,
|
||||
],
|
||||
],
|
||||
'v1' => [
|
||||
'exclude' => 0,
|
||||
'label' => 'Verlierer 1',
|
||||
'config' => [
|
||||
"type" => "select",
|
||||
'items' => [
|
||||
['Bitte wählen', 0],
|
||||
],
|
||||
"default" => "0",
|
||||
'renderType' => 'selectSingle',
|
||||
"foreign_table" => "tx_watten_domain_model_athleten",
|
||||
'foreign_table_where' => 'AND isactive = 1 ORDER BY name',
|
||||
"size" => 1,
|
||||
"minitems" => 1,
|
||||
"maxitems" => 1,
|
||||
],
|
||||
],
|
||||
'v2' => [
|
||||
'exclude' => 0,
|
||||
'label' => 'Verlierer 2',
|
||||
'config' => [
|
||||
"type" => "select",
|
||||
'items' => [
|
||||
['Bitte wählen', 0],
|
||||
],
|
||||
"default" => "0",
|
||||
'renderType' => 'selectSingle',
|
||||
"foreign_table" => "tx_watten_domain_model_athleten",
|
||||
'foreign_table_where' => 'AND isactive = 1 ORDER BY name',
|
||||
"size" => 1,
|
||||
"minitems" => 1,
|
||||
"maxitems" => 1,
|
||||
],
|
||||
],
|
||||
'bumid' => [
|
||||
'label' => 'Bummalen',
|
||||
'config' => [
|
||||
'type' => 'select',
|
||||
'renderType' => 'selectSingle',
|
||||
'items' => [
|
||||
['Sieg', 1],
|
||||
['Schneider', 2],
|
||||
['Retour Schneider', 4],
|
||||
],
|
||||
"size" => 1,
|
||||
"minitems" => 1,
|
||||
"maxitems" => 1,
|
||||
],
|
||||
],
|
||||
'gstrichen' => [
|
||||
'exclude' => 0,
|
||||
'label' => 'Gstrichen/Gstrichen',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
@@ -0,0 +1,84 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'ctrl' => [
|
||||
'title' => 'Watten Spieltage',
|
||||
'label' => 'datum',
|
||||
'tstamp' => 'tstamp',
|
||||
'crdate' => 'crdate',
|
||||
'dividers2tabs' => true,
|
||||
'versioningWS' => false,
|
||||
'iconfile' => 'EXT:watten/Resources/Public/Icons/Calender.svg',
|
||||
'default_sortby' => 'datum DESC',
|
||||
],
|
||||
'interface' => [
|
||||
'showRecordFieldList' => 'tournaments_id, datum, isactive, event, story',
|
||||
],
|
||||
'types' => [
|
||||
'1' => ['showitem' => '
|
||||
--div--;Spieltag, tournaments_id, datum, isactive, event, story'
|
||||
],
|
||||
],
|
||||
'palettes' => [
|
||||
'1' => ['showitem' => 'datum'],
|
||||
],
|
||||
'columns' => [
|
||||
'tournaments_id' => [
|
||||
'exclude' => 0,
|
||||
'label' => 'Tournament/Saison',
|
||||
'config' =>[
|
||||
'fieldWizard' => [
|
||||
'selectIcons' => [
|
||||
'disabled' => true
|
||||
]
|
||||
],
|
||||
"type" => "select",
|
||||
'renderType' => 'selectSingle',
|
||||
"foreign_table" => "tx_watten_tournaments",
|
||||
"size" => 1,
|
||||
"minitems" => 1,
|
||||
"maxitems" => 1,
|
||||
],
|
||||
],
|
||||
'datum' => [
|
||||
'exclude' => 1,
|
||||
'label' => 'Spieltag',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'renderType' => 'inputDateTime',
|
||||
'disableAgeDisplay' => 1,
|
||||
'size' => 13,
|
||||
'eval' => 'date',
|
||||
'checkbox' => 0,
|
||||
'default' => time(),
|
||||
'behaviour' => ['allowLanguageSynchronization' => false ]
|
||||
],
|
||||
],
|
||||
'isactive' => [
|
||||
'exclude' => 0,
|
||||
'label' => 'Ist Aktiv',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
],
|
||||
],
|
||||
'event' => [
|
||||
'exclude' => 1,
|
||||
'label' => 'Select Anhang',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'max' => 50,
|
||||
],
|
||||
],
|
||||
'story' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Spieltag Beschreibung',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'cols' => 60,
|
||||
'rows' => 5,
|
||||
'enableRichtext' => true
|
||||
]
|
||||
],
|
||||
],
|
||||
];
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'ctrl' => [
|
||||
'title' => 'Saisonen / Tournaments',
|
||||
'label' => 'tournament',
|
||||
'tstamp' => 'tstamp',
|
||||
'crdate' => 'crdate',
|
||||
'dividers2tabs' => true,
|
||||
'versioningWS' => false,
|
||||
'iconfile' => 'EXT:watten/Resources/Public/Icons/Sun.svg',
|
||||
'default_sortby' => 'tournament DESC',
|
||||
],
|
||||
'interface' => [
|
||||
'showRecordFieldList' => 'tournament, active, king',
|
||||
],
|
||||
'types' => [
|
||||
'0' => ['showitem' => '
|
||||
--div--;Tournaments, tournament, active, king'
|
||||
],
|
||||
],
|
||||
'palettes' => [
|
||||
'1' => ['showitem' => 'Tournaments'],
|
||||
],
|
||||
'columns' => [
|
||||
'tournament' => [
|
||||
'exclude' => 0,
|
||||
'label' => 'Tournaments',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'max' => 50,
|
||||
],
|
||||
],
|
||||
'active' => [
|
||||
'exclude' => 0,
|
||||
'label' => 'Ist Aktiv',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
],
|
||||
],
|
||||
'king' => [
|
||||
'exclude' => 0,
|
||||
'label' => 'Aktiver König',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
@@ -0,0 +1,14 @@
|
||||
plugin.tx_watten_domain_model_ergebnisse {
|
||||
view {
|
||||
# cat=plugin.tx_watten_domain_model_ergebnisse/file; type=string; label=Path to template root (FE)
|
||||
templateRootPath = EXT:watten/Resources/Private/Templates/
|
||||
# cat=plugin.tx_watten_domain_model_ergebnisse/file; type=string; label=Path to template partials (FE)
|
||||
partialRootPath = EXT:watten/Resources/Private/Partials/
|
||||
# cat=plugin.tx_watten_domain_model_ergebnisse/file; type=string; label=Path to template layouts (FE)
|
||||
layoutRootPath = EXT:watten/Resources/Private/Layouts/
|
||||
}
|
||||
persistence {
|
||||
# cat=plugin.tx_watten_domain_model_ergebnisse//a; type=string; label=Default storage PID
|
||||
storagePid =
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
plugin.tx_watten_domain_model_ergebnisse {
|
||||
view {
|
||||
templateRootPaths.0 = EXT:watten/Resources/Private/Templates/
|
||||
templateRootPaths.1 = {$plugin.tx_watten_domain_model_ergebnisse.view.templateRootPath}
|
||||
partialRootPaths.0 = EXT:watten/Resources/Private/Partials/
|
||||
partialRootPaths.1 = {$plugin.tx_watten_domain_model_ergebnisse.view.partialRootPath}
|
||||
layoutRootPaths.0 = EXT:watten/Resources/Private/Layouts/
|
||||
layoutRootPaths.1 = {$plugin.tx_watten_domain_model_ergebnisse.view.layoutRootPath}
|
||||
}
|
||||
persistence {
|
||||
storagePid = {$plugin.tx_watten_domain_model_ergebnisse.persistence.storagePid}
|
||||
#recursive = 1
|
||||
}
|
||||
features {
|
||||
#skipDefaultArguments = 1
|
||||
# if set to 1, the enable fields are ignored in BE context
|
||||
ignoreAllEnableFieldsInBe = 0
|
||||
}
|
||||
mvc {
|
||||
#callDefaultActionIfActionCantBeResolved = 1
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
tx_watten_domain_model_ergebnisse = PAGE
|
||||
tx_watten_domain_model_ergebnisse {
|
||||
typeNum < 1234
|
||||
config {
|
||||
disableAllHeaderCode = 1
|
||||
additionalHeaders = Content-type:text/html
|
||||
xhtml_cleaning = 0
|
||||
admPanel = 0
|
||||
debug = 0
|
||||
no_cache = 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
# Dotterbühel Watten
|
||||
|
||||
Typo3 Erweiterung zur Verwaltung der der Watterergebnisse des FC Dotterbühel
|
||||
Verion TYPO3 CMS 11.5.19
|
||||
|
||||
### Installing
|
||||
|
||||
```
|
||||
* git clone http://gitea.nuhodds.com:3000/salam/watten_t3.git
|
||||
```
|
||||
|
||||
## Authors
|
||||
|
||||
Hermann Telser
|
||||
|
||||
## Version History
|
||||
|
||||
* 0.1
|
||||
* Create Repository
|
||||
|
||||
## License
|
||||
|
||||
This project is privat
|
||||
|
||||
## Acknowledgments
|
||||
|
||||
Website Produktion
|
||||
* [Dotterbühel Homepage](https://www.xn--dotterbhel-geb.com/)
|
||||
* [Dotterbühel Typo3 Administration](https://www.xn--dotterbhel-geb.com/typo3)
|
||||
|
||||
Latest
|
||||
@@ -0,0 +1,11 @@
|
||||
# Apache < 2.3
|
||||
<IfModule !mod_authz_core.c>
|
||||
Order allow,deny
|
||||
Deny from all
|
||||
Satisfy All
|
||||
</IfModule>
|
||||
|
||||
# Apache >= 2.3
|
||||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
@@ -0,0 +1,99 @@
|
||||
<style>
|
||||
#grid_ergebnisse td,
|
||||
#grid_ergebnisse th {
|
||||
width: 100px !important
|
||||
}
|
||||
</style>
|
||||
<f:asset.script identifier="watterergebnisse">
|
||||
|
||||
var bum1 = '<td><img src="typo3conf/ext/watten/Resources/Public/Icons/Bum.svg" class="iconsizesm"></td>';
|
||||
var bum2 = '<td><img src="typo3conf/ext/watten/Resources/Public/Icons/Bum.svg" class="iconsizesm"><img src="typo3conf/ext/watten/Resources/Public/Icons/Bum.svg" class="iconsizesm"></td>';
|
||||
var bum4 = '<td><img src="typo3conf/ext/watten/Resources/Public/Icons/Bum.svg" class="iconsizesm"><img src="typo3conf/ext/watten/Resources/Public/Icons/Bum.svg" class="iconsizesm"><img src="typo3conf/ext/watten/Resources/Public/Icons/Bum.svg" class="iconsizesm"><img src="typo3conf/ext/watten/Resources/Public/Icons/Bum.svg" class="iconsizesm"></td>';
|
||||
|
||||
function markName(classname) {
|
||||
$('.athlet ').css('color', '#ddd');
|
||||
$('.athlet ').css('font-weight', 'normal');
|
||||
$('td.'+classname).css('color', '#CC7B2E');
|
||||
$('td.'+classname).css('font-weight', 'bold');
|
||||
}
|
||||
|
||||
$("#grid_ergebnisse").jsGrid({
|
||||
height: "auto",
|
||||
width: "100%",
|
||||
|
||||
heading: true,
|
||||
filtering: false,
|
||||
inserting: false,
|
||||
editing: false,
|
||||
selecting: true,
|
||||
sorting: true,
|
||||
paging: false,
|
||||
pageLoading: false,
|
||||
|
||||
noDataContent: ' Spieltag wählen ',
|
||||
|
||||
loadIndication: true,
|
||||
loadIndicationDelay: 500,
|
||||
loadMessage: " Bitte, warten... ",
|
||||
loadShading: true,
|
||||
|
||||
fields: [
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Hashtag.svg" class="iconsize"><div class="xsmall">Spiel Nummer</div>', name: "uid", type: "text" },
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Thump-up.svg" class="iconsize"><div class="xsmall">Sieger</div>', name: "s1", type: "text", css:"pointer", cellRenderer: function (item, value) { let v = value.s1; return '<td class="athlet ' + v + '" onClick="markName(\'' + v + '\')">' + v + '</td>'; }},
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Thump-up.svg" class="iconsize"><div class="xsmall">Sieger</div>', name: "s2", type: "text", css:"pointer", cellRenderer: function (item, value) { let v = value.s2; return '<td class="athlet ' + v + '" onClick="markName(\'' + v + '\')">' + v + '</td>'; }},
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Thump-down.svg" class="iconsize"><div class="xsmall">Verlierer</div>', name: "v1", type: "text", css:"pointer", cellRenderer: function (item, value) { let v = value.v1; return '<td class="athlet ' + v + '" onClick="markName(\'' + v + '\')">' + v + '</td>'; }},
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Thump-down.svg" class="iconsize"><div class="xsmall">Verlierer</div>', name: "v2", type: "text", css:"pointer", cellRenderer: function (item, value) { let v = value.v2; return '<td class="athlet ' + v + '" onClick="markName(\'' + v + '\')">' + v + '</td>'; }},
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Bold.svg" class="iconsize"><div class="xsmall">Bummale</div>', name: "bumid", type: "text", cellRenderer: function(item, value){ if(item==1) return bum1; else if(item==2) return bum2; else return bum4; }},
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Gstrichen.svg" class="iconsize"><div class="xsmall">Gstr/Gstr</div>', name: "gs", type: "text"}
|
||||
]
|
||||
});
|
||||
|
||||
$("#grid_punkte").jsGrid({
|
||||
height: "auto",
|
||||
width: "50%",
|
||||
|
||||
heading: true,
|
||||
filtering: false,
|
||||
inserting: false,
|
||||
editing: false,
|
||||
selecting: true,
|
||||
sorting: true,
|
||||
paging: false,
|
||||
pageLoading: false,
|
||||
|
||||
noDataContent: ' Spieltag wählen ',
|
||||
|
||||
loadIndication: true,
|
||||
loadIndicationDelay: 500,
|
||||
loadMessage: " Bitte, warten... ",
|
||||
loadShading: true,
|
||||
|
||||
fields: [
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Rank.svg" class="iconsize"><div class="xsmall">Platzierung</div>', name: "rang", type: "text", width: "100" },
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/User.svg" class="iconsize"><div class="xsmall">Athlet</div>', name: "name", type: "text", width: "200" },
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Hashtag.svg" class="iconsize"><div class="xsmall">Punkte</div>', name: "punkte", type: "text", width: "100" },
|
||||
]
|
||||
});
|
||||
|
||||
$(function() {
|
||||
$.ajax({
|
||||
url: "../index.php",
|
||||
type: "GET",
|
||||
data: {
|
||||
application: "loadspieltag",
|
||||
event_id: $( "#spieltagselect" ).val()
|
||||
},
|
||||
dataType : "json"
|
||||
})
|
||||
.done(function( response ) {
|
||||
$('#story_text').html(response.story);
|
||||
$("#grid_ergebnisse").jsGrid({ data: response.data });
|
||||
$("#grid_punkte").jsGrid({ data: response.punkte });
|
||||
})
|
||||
});
|
||||
</f:asset.script>
|
||||
<div id="story_text" style="padding:1rem 5rem;"></div>
|
||||
<div id="grid_ergebnisse" class="pure-table"></div>
|
||||
<br><br>
|
||||
<h1 class="element-header text-center"><span>Punkte Spieltag</span></h1>
|
||||
<div id="grid_punkte" class="pure-table" style="margin:auto;"></div>
|
||||
@@ -0,0 +1,54 @@
|
||||
<f:asset.script identifier="wattergstrichen">
|
||||
|
||||
|
||||
$("#grid_gstrichen").jsGrid({
|
||||
height: "auto",
|
||||
width: "100%",
|
||||
|
||||
heading: true,
|
||||
filtering: false,
|
||||
inserting: false,
|
||||
editing: false,
|
||||
selecting: true,
|
||||
sorting: true,
|
||||
paging: false,
|
||||
pageLoading: false,
|
||||
|
||||
noDataContent: ' Turnier wählen ',
|
||||
|
||||
loadIndication: true,
|
||||
loadIndicationDelay: 500,
|
||||
loadMessage: " Bitte, warten... ",
|
||||
loadShading: true,
|
||||
|
||||
fields: [
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Rank.svg" class="iconsize"><div class="xsmall bg-green">Platzierungen</div>', name: "platz", type: "text", width: "100" },
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/User.svg" class="iconsize"><div class="xsmall bg-green">Athlet</div>', name: "sieger", type: "text", width: "200" },
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Gstrichen-win.svg" class="iconsize"><div class="xsmall bg-green">Gewonnen</div>', name: "gewonnen", type: "text", width: "100" },
|
||||
{ title: '<div class="xsmall"> </div>', name: "", type: "text", width: "100", css: "transparent" },
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Rank.svg" class="iconsize"><div class="xsmall bg-red">Platzierungen</div>', name: "platz", type: "text", width: "100" },
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/User.svg" class="iconsize"><div class="xsmall bg-red">Athlet</div>', name: "verlierer", type: "text", width: "200" },
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Gstrichen-lose.svg" class="iconsize"><div class="xsmall bg-red">Verloren</div>', name: "verloren", type: "text", width: "100" },
|
||||
]
|
||||
});
|
||||
$(function() {
|
||||
$.ajax({
|
||||
url: "../index.php",
|
||||
type: "GET",
|
||||
data: {
|
||||
application: "loadgstrichenliste",
|
||||
tournament: $( "#tournament_rangliste" ).val()
|
||||
},
|
||||
dataType : "json"
|
||||
})
|
||||
.done(function( response ) {
|
||||
$("#grid_gstrichen").jsGrid({ data: response });
|
||||
})
|
||||
});
|
||||
</f:asset.script>
|
||||
|
||||
<br><br>
|
||||
<h1 class="element-header text-center"><span>Gstrichen || Gstrichen</span></h1>
|
||||
<br>
|
||||
<div id="grid_gstrichen"
|
||||
class="pure-table"></div>
|
||||
@@ -0,0 +1,136 @@
|
||||
<f:asset.script identifier="watterrangliste">
|
||||
|
||||
function render_gesamt(data, row) {
|
||||
if(row.head == 1)
|
||||
return '<td class="paarlaufheader">'+ data+ '</td>'
|
||||
else
|
||||
return '<td>'+ data+ '</td>'
|
||||
}
|
||||
$("#grid_paarlauf").jsGrid({
|
||||
height: "auto",
|
||||
width: "100%",
|
||||
|
||||
heading: true,
|
||||
filtering: false,
|
||||
inserting: false,
|
||||
editing: false,
|
||||
selecting: true,
|
||||
sorting: true,
|
||||
paging: false,
|
||||
pageLoading: false,
|
||||
|
||||
noDataContent: ' Athleten wählen ',
|
||||
|
||||
loadIndication: true,
|
||||
loadIndicationDelay: 500,
|
||||
loadMessage: " Bitte, warten... ",
|
||||
loadShading: true,
|
||||
|
||||
fields: [
|
||||
{
|
||||
title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/User.svg" class="iconsize"><div class="xsmall">Kontrahenten</div>',
|
||||
name: "teams",
|
||||
type: "text",
|
||||
width: "30%",
|
||||
css: "firstcolumn",
|
||||
cellRenderer: render_gesamt,
|
||||
},
|
||||
{
|
||||
title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Hashtag.svg" class="iconsize"><div class="xsmall">Spiele</div>',
|
||||
name: "spiele",
|
||||
type: "text",
|
||||
width: "6.5%",
|
||||
css: "bold",
|
||||
cellRenderer: render_gesamt
|
||||
},
|
||||
{
|
||||
title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Thump-up.svg" class="iconsize"><div class="xsmall">Gesamt</div>',
|
||||
name: "siege",
|
||||
type: "text",
|
||||
width: "6.5%",
|
||||
css:"greenbold",
|
||||
cellRenderer: render_gesamt
|
||||
},
|
||||
{
|
||||
title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Thump-down.svg" class="iconsize"><div class="xsmall">Gesamt</div>',
|
||||
name: "verloren",
|
||||
type: "text",
|
||||
width: "6.5%",
|
||||
css:"rotbold",
|
||||
cellRenderer: render_gesamt
|
||||
},
|
||||
{
|
||||
title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Thump-up.svg" class="iconsize"><div class="xsmall">Siege</div>',
|
||||
name: "sn",
|
||||
type: "text",
|
||||
width: "6.5%",
|
||||
cellRenderer: render_gesamt
|
||||
},
|
||||
{
|
||||
title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Thump-up.svg" class="iconsize"><div class="xsmall">Schneider</div>',
|
||||
name: "ss",
|
||||
type: "text",
|
||||
width: "6.5%",
|
||||
cellRenderer: render_gesamt
|
||||
},
|
||||
{
|
||||
title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Thump-up.svg" class="iconsize"><div class="xsmall">R-Schneider</div>',
|
||||
name: "srs",
|
||||
type: "text",
|
||||
width: "6.5%",
|
||||
cellRenderer: render_gesamt
|
||||
},
|
||||
{
|
||||
title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Gstrichen-win.svg" class="iconsize"><div class="xsmall">Gstrichen</div>',
|
||||
name: "sg",
|
||||
type: "text",
|
||||
width: "6.5%",
|
||||
cellRenderer: render_gesamt
|
||||
},
|
||||
{
|
||||
title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Thump-down.svg" class="iconsize"><div class="xsmall">Verloren</div>',
|
||||
name: "vn",
|
||||
type: "text",
|
||||
width: "6.5%",
|
||||
cellRenderer: render_gesamt
|
||||
},
|
||||
{
|
||||
title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Thump-down.svg" class="iconsize"><div class="xsmall">Schneider</div>',
|
||||
name: "vs",
|
||||
type: "text",
|
||||
width: "6.5%",
|
||||
cellRenderer: render_gesamt
|
||||
},
|
||||
{
|
||||
title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Thump-down.svg" class="iconsize"><div class="xsmall">R-Schneider</div>',
|
||||
name: "vrs",
|
||||
type: "text",
|
||||
width: "6.5%",
|
||||
cellRenderer: render_gesamt
|
||||
},
|
||||
{
|
||||
title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Gstrichen-lose.svg" class="iconsize"><div class="xsmall">Gstrichen</div>',
|
||||
name: "vg",
|
||||
type: "text",
|
||||
width: "6.5%",
|
||||
cellRenderer: render_gesamt },
|
||||
]
|
||||
});
|
||||
$(function() {
|
||||
$.ajax({
|
||||
url: "../index.php",
|
||||
type: "GET",
|
||||
data: {
|
||||
application: "loadpaarlaufer",
|
||||
tournament: $( "#tournament_paarlauf" ).val(),
|
||||
teilnehmer_id: $( "#tournament_teilnehmer" ).val()
|
||||
},
|
||||
dataType : "json"
|
||||
})
|
||||
.done(function( response ) {
|
||||
$("#grid_paarlauf").jsGrid({ data: response });
|
||||
})
|
||||
});
|
||||
</f:asset.script>
|
||||
<div id="grid_paarlauf"
|
||||
class="pure-table"></div>
|
||||
@@ -0,0 +1,55 @@
|
||||
<f:asset.script identifier="watterrangliste">
|
||||
|
||||
|
||||
$("#grid_rangliste").jsGrid({
|
||||
height: "auto",
|
||||
width: "100%",
|
||||
|
||||
heading: true,
|
||||
filtering: false,
|
||||
inserting: false,
|
||||
editing: false,
|
||||
selecting: true,
|
||||
sorting: true,
|
||||
paging: false,
|
||||
pageLoading: false,
|
||||
|
||||
noDataContent: ' Turnier wählen ',
|
||||
|
||||
loadIndication: true,
|
||||
loadIndicationDelay: 500,
|
||||
loadMessage: " Bitte, warten... ",
|
||||
loadShading: true,
|
||||
|
||||
fields: [
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Rank.svg" class="iconsize"><div class="xsmall">Platzierungen</div>', name: "platz", type: "text", width: "100" },
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/User.svg" class="iconsize"><div class="xsmall">Athlet</div>', name: "name", type: "text", width: "200" },
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Hashtag.svg" class="iconsize"><div class="xsmall">Spiele</div>', name: "spiele", type: "text", width: "100" },
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Bowling.svg" class="iconsize"><div class="xsmall">Punkte</div>', name: "punkte", type: "text", width: "100", css: "bold" },
|
||||
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Thump-up.svg" class="iconsize"><div class="xsmall">Siege</div>', name: "s1", type: "text", width: "100" },
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Thump-up.svg" class="iconsize"><div class="xsmall">Schneider</div>', name: "s2", type: "text", width: "100" },
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Thump-up.svg" class="iconsize"><div class="xsmall">R-Schneider</div>', name: "s4", type: "text", width: "100" },
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Gstrichen-win.svg" class="iconsize"><div class="xsmall">Gstrichen</div>', name: "sg", type: "text", width: "100" },
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Thump-down.svg" class="iconsize"><div class="xsmall">Niederlagen</div>', name: "v1", type: "text", width: "100" },
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Thump-down.svg" class="iconsize"><div class="xsmall">Schneider</div>', name: "v2", type: "text", width: "100" },
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Thump-down.svg" class="iconsize"><div class="xsmall">R-Schneider</div>', name: "v4", type: "text", width: "100" },
|
||||
{ title: '<img src="typo3conf/ext/watten/Resources/Public/Icons/Gstrichen-lose.svg" class="iconsize"><div class="xsmall">Gstrichen</div>', name: "vg", type: "text", width: "100" },
|
||||
]
|
||||
});
|
||||
$(function() {
|
||||
$.ajax({
|
||||
url: "../index.php",
|
||||
type: "GET",
|
||||
data: {
|
||||
application: "loadrangliste",
|
||||
},
|
||||
dataType : "json"
|
||||
})
|
||||
.done(function( response ) {
|
||||
$("#grid_rangliste").jsGrid({ data: response });
|
||||
})
|
||||
});
|
||||
</f:asset.script>
|
||||
<div id="grid_rangliste"
|
||||
class="pure-table"></div>
|
||||
@@ -0,0 +1,31 @@
|
||||
<f:asset.script identifier="laderangliste">
|
||||
|
||||
function loadTournamentAthleten(){
|
||||
$.ajax({
|
||||
url: "../index.php",
|
||||
type: "GET",
|
||||
data: {
|
||||
application: "loadtournamentathleten",
|
||||
tournament: $( "#tournament_paarlauf" ).val()
|
||||
},
|
||||
dataType : "json"
|
||||
})
|
||||
.done(function( response ) {
|
||||
$("#grid_paarlauf").jsGrid({ data: '' });
|
||||
var $select = $('#tournament_teilnehmer');
|
||||
$select.find('option').remove();
|
||||
$.each(response, function(key, value) {
|
||||
$select.append(`<option value="${value.id}">${value.name}</option>`);
|
||||
});
|
||||
$select.options[0].selected = true
|
||||
});
|
||||
}
|
||||
</f:asset.script>
|
||||
|
||||
<f:form.select id="tournament_paarlauf"
|
||||
name="tournament_paarlauf"
|
||||
options="{tournament_paarlauf}"
|
||||
optionValueField="id"
|
||||
optionLabelField="name"
|
||||
additionalAttributes="{onchange: 'loadTournamentAthleten();'}"
|
||||
value="{active}" />
|
||||
@@ -0,0 +1,25 @@
|
||||
<f:asset.script identifier="laderangliste">
|
||||
|
||||
function ladeRangliste(){
|
||||
$.ajax({
|
||||
url: "../index.php",
|
||||
type: "GET",
|
||||
data: {
|
||||
application: "loadrangliste",
|
||||
tournament: $( "#tournament_rangliste" ).val()
|
||||
},
|
||||
dataType : "json"
|
||||
})
|
||||
.done(function( response ) {
|
||||
$("#grid_rangliste").jsGrid({ data: response });
|
||||
});
|
||||
}
|
||||
</f:asset.script>
|
||||
|
||||
<f:form.select id="tournament_rangliste"
|
||||
name="tournament_rangliste"
|
||||
options="{tournament_rangliste}"
|
||||
optionValueField="id"
|
||||
optionLabelField="name"
|
||||
additionalAttributes="{onchange: 'ladeRangliste(); ladeStatistikRangliste();'}"
|
||||
value="{active}" />
|
||||
@@ -0,0 +1,26 @@
|
||||
<f:asset.script identifier="loadspieltag">
|
||||
function ladeSpieltag(){
|
||||
$.ajax({
|
||||
url: "../index.php",
|
||||
type: "GET",
|
||||
data: {
|
||||
application: "loadspieltag",
|
||||
event_id: $( "#spieltagselect" ).val()
|
||||
},
|
||||
dataType : "json"
|
||||
})
|
||||
.done(function( response ) {
|
||||
$('#story_text').html(response.story);
|
||||
$("#grid_ergebnisse").jsGrid({ data: response.data });
|
||||
$("#grid_punkte").jsGrid({ data: response.punkte });
|
||||
})
|
||||
}
|
||||
</f:asset.script>
|
||||
|
||||
<f:form.select name="spieltagselect"
|
||||
id="spieltagselect"
|
||||
options="{spieltage}"
|
||||
additionalAttributes="{onchange: 'ladeSpieltag(); ladeStatistik();'}"
|
||||
optionValueField="id"
|
||||
optionLabelField="name"
|
||||
value="{active_event_id}" />
|
||||
@@ -0,0 +1,25 @@
|
||||
<f:asset.script identifier="loadpaarlaufer">
|
||||
function ladePaarlaufer(){
|
||||
$.ajax({
|
||||
url: "../index.php",
|
||||
type: "GET",
|
||||
data: {
|
||||
application: "loadpaarlaufer",
|
||||
tournament: $( "#tournament_paarlauf" ).val(),
|
||||
teilnehmer_id: $( "#tournament_teilnehmer" ).val()
|
||||
},
|
||||
dataType : "json"
|
||||
})
|
||||
.done(function( response ) {
|
||||
$("#grid_paarlauf").jsGrid({ data: response });
|
||||
})
|
||||
}
|
||||
</f:asset.script>
|
||||
|
||||
<f:form.select name="tournament_teilnehmer"
|
||||
id="tournament_teilnehmer"
|
||||
options="{tournament_teilnehmer}"
|
||||
additionalAttributes="{onchange: 'ladePaarlaufer();'}"
|
||||
optionValueField="id"
|
||||
optionLabelField="name"
|
||||
value="{active_teilnehmer_id}" />
|
||||
@@ -0,0 +1,37 @@
|
||||
<f:asset.script identifier="loadspieltage">
|
||||
|
||||
function ladeSpieltage(){
|
||||
$.ajax({
|
||||
url: "../index.php",
|
||||
type: "GET",
|
||||
data: {
|
||||
application: "loadspieltage",
|
||||
tournament: $( "#tournament" ).val()
|
||||
},
|
||||
dataType : "json"
|
||||
})
|
||||
.done(function( response ) {
|
||||
$("#grid_ergebnisse").jsGrid({ data: '' });
|
||||
$("#grid_punkte").jsGrid({ data: '' });
|
||||
$('#story_text').html('');
|
||||
|
||||
|
||||
myChart.data = [];
|
||||
myChart.update();
|
||||
|
||||
var $select = $('#spieltagselect');
|
||||
$select.find('option').remove();
|
||||
$.each(response, function(key, value) {
|
||||
$select.append(`<option value="${value.id}">${value.name}</option>`);
|
||||
});
|
||||
})
|
||||
}
|
||||
</f:asset.script>
|
||||
|
||||
<f:form.select id="tournament"
|
||||
name="tournament"
|
||||
options="{tournaments}"
|
||||
optionValueField="id"
|
||||
optionLabelField="name"
|
||||
additionalAttributes="{onchange: 'ladeSpieltage();'}"
|
||||
value="{active_tournaments}" />
|
||||
@@ -0,0 +1,6 @@
|
||||
<br><br>
|
||||
<h1 class="element-header text-center"><span>Liniendiagramm Spieltag</span></h1>
|
||||
<br>
|
||||
<div>
|
||||
<canvas id="dotterStatistikErgebnisse"></canvas>
|
||||
</div>
|
||||
@@ -0,0 +1,6 @@
|
||||
<br><br>
|
||||
<h1 class="element-header text-center"><span>Ergebnisse Balkendiagram</span></h1>
|
||||
<br>
|
||||
<div>
|
||||
<canvas id="dotterStatistikRangliste"></canvas>
|
||||
</div>
|
||||
@@ -0,0 +1,26 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers">
|
||||
<f:asset.script identifier="chart"
|
||||
type="module"
|
||||
src="EXT:watten/Resources/Public/node_modules/chart.js/dist/chart.umd.js" />
|
||||
<f:asset.script identifier="statistikjahr"
|
||||
src="EXT:watten/Resources/Public/Javascript/statistik_line.js" />
|
||||
|
||||
<table style="width: 100%">
|
||||
<tr>
|
||||
<td class="right"
|
||||
style="width:47%;">
|
||||
<f:render partial="selectTournament"
|
||||
arguments="{tournaments: tournaments, active_tournaments: active_tournaments}" />
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<f:render partial="selectSpieltag"
|
||||
arguments="{spieltage: spieltage, active_event_id: active_event_id }" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<f:render partial="GridErgebnisse" />
|
||||
|
||||
<f:render partial="StatistikErgebnisse" />
|
||||
@@ -0,0 +1,24 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers">
|
||||
|
||||
<f:asset.script identifier="chart"
|
||||
type="module"
|
||||
src="EXT:watten/Resources/Public/node_modules/chart.js/dist/chart.umd.js" />
|
||||
<f:asset.script identifier="statistikjahr"
|
||||
src="EXT:watten/Resources/Public/Javascript/statistik_bar.js" />
|
||||
|
||||
<table style="width: 100%">
|
||||
<tr>
|
||||
<td class="center"
|
||||
style="width:47%;">
|
||||
<f:render partial="SelectRangliste"
|
||||
arguments="{tournament_rangliste: tournaments, active: active}" />
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<f:render partial="GridRangliste" />
|
||||
|
||||
<f:render partial="GridGstrichen" />
|
||||
|
||||
<f:render partial="StatistikRangliste" />
|
||||
@@ -0,0 +1,25 @@
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers">
|
||||
|
||||
<h1 class="element-header text-center"><span>Paarlauf</span></h1>
|
||||
<br>
|
||||
|
||||
<table style="width: 100%">
|
||||
<tr>
|
||||
<td class="center"
|
||||
style="width:47%;">
|
||||
<f:render partial="SelectPaarlauf"
|
||||
arguments="{tournament_paarlauf: tournaments, active: active}" />
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="center"
|
||||
style="width:47%;">
|
||||
<f:render partial="SelectTeilnehmer"
|
||||
arguments="{tournament_teilnehmer: teilnehmer, active: active}" />
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<f:render partial="GridPaarlauf" />
|
||||
@@ -0,0 +1 @@
|
||||
https://www.chartjs.org/docs/latest/samples/line/line.html
|
||||
@@ -0,0 +1 @@
|
||||
/var/www/html/dotter_t3/public/fileadmin/templates/css/base.css
|
||||
|
After Width: | Height: | Size: 6.4 KiB |
@@ -0,0 +1,326 @@
|
||||
/*
|
||||
* jsGrid v1.5.3 (http://js-grid.com)
|
||||
* (c) 2016 Artem Tabalin
|
||||
* Licensed under MIT (https://github.com/tabalinas/jsgrid/blob/master/LICENSE)
|
||||
*/
|
||||
.jsgrid-table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.jsgrid-grid-header,
|
||||
.jsgrid-grid-body,
|
||||
.jsgrid-header-row>.jsgrid-header-cell,
|
||||
.jsgrid-filter-row>.jsgrid-cell,
|
||||
.jsgrid-insert-row>.jsgrid-cell,
|
||||
.jsgrid-edit-row>.jsgrid-cell {
|
||||
border: 1px solid #333;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.jsgrid-header-row>.jsgrid-header-cell {
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
.jsgrid-header-row>.jsgrid-header-cell,
|
||||
.jsgrid-filter-row>.jsgrid-cell,
|
||||
.jsgrid-insert-row>.jsgrid-cell {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.jsgrid-header-row>.jsgrid-header-cell:first-child,
|
||||
.jsgrid-filter-row>.jsgrid-cell:first-child,
|
||||
.jsgrid-insert-row>.jsgrid-cell:first-child {
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.jsgrid-header-row>.jsgrid-header-cell:last-child,
|
||||
.jsgrid-filter-row>.jsgrid-cell:last-child,
|
||||
.jsgrid-insert-row>.jsgrid-cell:last-child {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.jsgrid-header-row .jsgrid-align-right,
|
||||
.jsgrid-header-row .jsgrid-align-left {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.jsgrid-grid-header {
|
||||
background: #313131;
|
||||
}
|
||||
|
||||
.jsgrid-header-scrollbar {
|
||||
scrollbar-arrow-color: #242424;
|
||||
scrollbar-base-color: #242424;
|
||||
scrollbar-3dlight-color: #242424;
|
||||
scrollbar-highlight-color: #242424;
|
||||
scrollbar-track-color: #242424;
|
||||
scrollbar-shadow-color: #242424;
|
||||
scrollbar-dark-shadow-color: #242424;
|
||||
}
|
||||
|
||||
.jsgrid-header-scrollbar::-webkit-scrollbar {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.jsgrid-header-scrollbar::-webkit-scrollbar-track {
|
||||
background: #242424;
|
||||
}
|
||||
|
||||
.jsgrid-header-sortable:hover {
|
||||
cursor: pointer;
|
||||
background: #000;
|
||||
}
|
||||
|
||||
.jsgrid-header-row .jsgrid-header-sort {
|
||||
background: #3d3d3d;
|
||||
}
|
||||
|
||||
.jsgrid-header-sort:before {
|
||||
content: " ";
|
||||
display: block;
|
||||
float: left;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-style: solid;
|
||||
}
|
||||
|
||||
.jsgrid-header-sort-asc:before {
|
||||
border-width: 0 5px 5px 5px;
|
||||
border-color: transparent transparent #aaa transparent;
|
||||
margin: 3px;
|
||||
}
|
||||
|
||||
.jsgrid-header-sort-desc:before {
|
||||
border-width: 5px 5px 0 5px;
|
||||
border-color: #aaa transparent transparent transparent;
|
||||
margin: 3px;
|
||||
}
|
||||
|
||||
.jsgrid-grid-body {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.jsgrid-cell {
|
||||
border: #777 1px solid;
|
||||
}
|
||||
|
||||
.jsgrid-grid-body .jsgrid-row:first-child .jsgrid-cell,
|
||||
.jsgrid-grid-body .jsgrid-alt-row:first-child .jsgrid-cell {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.jsgrid-grid-body .jsgrid-cell:first-child {
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.jsgrid-grid-body .jsgrid-cell:last-child {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.jsgrid-row>.jsgrid-cell {
|
||||
background: #0C0A09;
|
||||
}
|
||||
|
||||
.jsgrid-alt-row>.jsgrid-cell {
|
||||
background: #313131;
|
||||
}
|
||||
|
||||
.jsgrid-header-row>.jsgrid-header-cell {
|
||||
background: #313131;
|
||||
}
|
||||
|
||||
.jsgrid-filter-row>.jsgrid-cell {
|
||||
background: #313131;
|
||||
}
|
||||
|
||||
.jsgrid-insert-row>.jsgrid-cell {
|
||||
background: #313131;
|
||||
}
|
||||
|
||||
.jsgrid-edit-row>.jsgrid-cell {
|
||||
background: #3a3a3a;
|
||||
}
|
||||
|
||||
.jsgrid-selected-row>.jsgrid-cell {
|
||||
background: #D97706;
|
||||
color:#000;
|
||||
border-color: #3d3d3d;
|
||||
}
|
||||
|
||||
.jsgrid-nodata-row>.jsgrid-cell {
|
||||
background: #000;
|
||||
}
|
||||
|
||||
.jsgrid-invalid input,
|
||||
.jsgrid-invalid select,
|
||||
.jsgrid-invalid textarea {
|
||||
background: #313131;
|
||||
color: #d3d3d3;
|
||||
border: 1px solid #800;
|
||||
}
|
||||
|
||||
.jsgrid-pager-current-page {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.jsgrid-pager-nav-inactive-button a {
|
||||
color: #d3d3d3;
|
||||
}
|
||||
|
||||
.jsgrid-button+.jsgrid-button {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.jsgrid-button:hover {
|
||||
opacity: .5;
|
||||
transition: opacity 200ms linear;
|
||||
}
|
||||
|
||||
.jsgrid .jsgrid-button {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
background-image: url(data:image/png;base64,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 truncated
|
||||
background-repeat: no-repeat;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
@media only screen and (-webkit-min-device-pixel-ratio: 2),
|
||||
only screen and (min-device-pixel-ratio: 2) {
|
||||
.jsgrid .jsgrid-button {
|
||||
background-image: url(data:image/png;base64,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 truncated
|
||||
background-size: 24px 352px;
|
||||
}
|
||||
}
|
||||
|
||||
.jsgrid .jsgrid-mode-button {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.jsgrid-mode-on-button {
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
.jsgrid-cancel-edit-button {
|
||||
background-position: 0 0;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.jsgrid-clear-filter-button {
|
||||
background-position: 0 -40px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.jsgrid-delete-button {
|
||||
background-position: 0 -80px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.jsgrid-edit-button {
|
||||
background-position: 0 -120px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.jsgrid-insert-mode-button {
|
||||
background-position: 0 -160px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.jsgrid-insert-button {
|
||||
background-position: 0 -208px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.jsgrid-search-mode-button {
|
||||
background-position: 0 -248px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.jsgrid-search-button {
|
||||
background-position: 0 -296px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.jsgrid-update-button {
|
||||
background-position: 0 -336px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
|
||||
.jsgrid-load-shader {
|
||||
background: #3d3d3d;
|
||||
opacity: .5;
|
||||
filter: alpha(opacity=50);
|
||||
}
|
||||
|
||||
.jsgrid-load-panel {
|
||||
width: 15em;
|
||||
height: 5em;
|
||||
background: #000;
|
||||
border: 1px solid #333;
|
||||
padding-top: 3em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.jsgrid-load-panel:before {
|
||||
content: ' ';
|
||||
position: absolute;
|
||||
top: .5em;
|
||||
left: 50%;
|
||||
margin-left: -1em;
|
||||
width: 2em;
|
||||
height: 2em;
|
||||
border: 2px solid #009a67;
|
||||
border-right-color: transparent;
|
||||
border-radius: 50%;
|
||||
-webkit-animation: indicator 1s linear infinite;
|
||||
animation: indicator 1s linear infinite;
|
||||
}
|
||||
|
||||
@-webkit-keyframes indicator {
|
||||
from {
|
||||
-webkit-transform: rotate(0deg);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: rotate(180deg);
|
||||
}
|
||||
|
||||
to {
|
||||
-webkit-transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes indicator {
|
||||
from {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
/* old IE */
|
||||
.jsgrid-load-panel {
|
||||
padding-top: 1.5em\9;
|
||||
}
|
||||
|
||||
.jsgrid-load-panel:before {
|
||||
display: none\9;
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. -->
|
||||
<path fill="#CC7B2E" d="M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288H175.5L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7H272.5L349.4 44.6z"/></svg>
|
||||
|
After Width: | Height: | Size: 509 B |
@@ -0,0 +1,4 @@
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. -->
|
||||
|
||||
<path fill="#9A9A9A" d="M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512zM240 144c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32zm32 64c0 17.7-14.3 32-32 32s-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32zm-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z"/></svg>
|
||||
|
After Width: | Height: | Size: 568 B |
@@ -0,0 +1,4 @@
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
||||
<path fill="#9A9A9A" d="M256 512c141.4 0 256-114.6 256-256S397.4 0 256 0S0 114.6 0 256S114.6 512 256 512z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 184 B |
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
|
||||
<path
|
||||
fill="#CC7B2E"
|
||||
d="M224 232C237.3 232 248 242.7 248 256V304H296C309.3 304 320 314.7 320 328C320 341.3 309.3 352 296 352H248V400C248 413.3 237.3 424 224 424C210.7 424 200 413.3 200 400V352H152C138.7 352 128 341.3 128 328C128 314.7 138.7 304 152 304H200V256C200 242.7 210.7 232 224 232zM152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192H48V448z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 693 B |
@@ -0,0 +1,25 @@
|
||||
<svg height="800px" width="800px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
viewBox="0 0 30.875 32.045" xml:space="preserve">
|
||||
<g id="Layer_36">
|
||||
<path style="fill:#D6D3D1;" d="M30.582,0.293c-0.39-0.391-1.024-0.391-1.414,0l-13.73,13.731L1.707,0.293
|
||||
c-0.391-0.391-1.024-0.391-1.414,0c-0.391,0.391-0.391,1.024,0,1.414l13.73,13.73l-3.182,3.182
|
||||
c-1.238-0.926-2.713-1.398-4.186-1.397c-1.788-0.001-3.587,0.684-4.95,2.048c-0.391,0.39-0.391,1.024,0,1.414l3.535,3.536
|
||||
l-4.243,4.243c-0.001,0.001-0.303,0.303-0.709,0.713c-0.386,0.39-0.385,1.023,0.004,1.411c1.028,1.026,2.381,1.461,3.662,1.458
|
||||
c1.269-0.001,2.486-0.541,3.406-1.461c0.798-0.797,1.253-1.806,1.397-2.846l1.431,1.432c0.186,0.186,0.444,0.293,0.707,0.293
|
||||
c0.263,0,0.521-0.107,0.707-0.293c1.364-1.363,2.049-3.161,2.048-4.95c0.001-1.473-0.471-2.948-1.397-4.186l3.182-3.182
|
||||
l3.182,3.182c-0.926,1.238-1.398,2.713-1.397,4.186c-0.001,1.788,0.684,3.587,2.048,4.95c0.186,0.186,0.444,0.293,0.707,0.293
|
||||
s0.521-0.107,0.707-0.293l1.431-1.432c0.144,1.04,0.599,2.048,1.397,2.846c0.92,0.92,2.137,1.46,3.406,1.461
|
||||
c1.282,0.002,2.635-0.432,3.662-1.458c0.389-0.388,0.39-1.021,0.004-1.411c-0.406-0.41-0.708-0.712-0.709-0.713l-4.243-4.243
|
||||
l3.535-3.536c0.186-0.186,0.293-0.444,0.293-0.707c0-0.263-0.107-0.521-0.293-0.707c-1.363-1.364-3.161-2.049-4.95-2.048
|
||||
c-1.473-0.001-2.948,0.471-4.186,1.397l-3.182-3.182l13.73-13.73C30.973,1.317,30.973,0.683,30.582,0.293z M5.948,29.17
|
||||
c-0.575,0.575-1.3,0.876-1.992,0.875c-0.498-0.001-0.972-0.109-1.405-0.306l3.974-3.974c0.192,0.405,0.299,0.841,0.3,1.284
|
||||
C6.824,27.821,6.534,28.583,5.948,29.17z M10.826,26.977l-3.464-3.464c0,0,0,0,0,0l0,0l-3.464-3.464
|
||||
c0.832-0.551,1.792-0.825,2.757-0.826c1.284,0.001,2.559,0.486,3.535,1.462c0.976,0.976,1.461,2.251,1.462,3.536
|
||||
C11.651,25.186,11.377,26.145,10.826,26.977z M28.324,29.739c-0.433,0.198-0.907,0.305-1.405,0.306
|
||||
c-0.692,0.001-1.417-0.3-1.992-0.875c-0.586-0.587-0.876-1.349-0.877-2.121c0.001-0.443,0.108-0.879,0.3-1.284L28.324,29.739z
|
||||
M20.685,20.685c0.976-0.976,2.251-1.461,3.535-1.462c0.965,0.001,1.925,0.275,2.757,0.826l-3.464,3.464v0l0,0l-3.464,3.464
|
||||
c-0.55-0.832-0.825-1.792-0.826-2.757C19.224,22.936,19.709,21.661,20.685,20.685z"/>
|
||||
</g>
|
||||
<g id="Layer_1">
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512">
|
||||
<path fill="#CC7B2E" d="M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6H426.6c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 562 B |
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512">
|
||||
<path
|
||||
fill="#800"
|
||||
d="M48 64C21.5 64 0 85.5 0 112V400c0 26.5 21.5 48 48 48H80c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zm192 0c-26.5 0-48 21.5-48 48V400c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H240z"/></svg>
|
||||
|
After Width: | Height: | Size: 317 B |
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512">
|
||||
<path
|
||||
fill="#062"
|
||||
d="M48 64C21.5 64 0 85.5 0 112V400c0 26.5 21.5 48 48 48H80c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zm192 0c-26.5 0-48 21.5-48 48V400c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H240z"/></svg>
|
||||
|
After Width: | Height: | Size: 317 B |
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512">
|
||||
<path
|
||||
fill="#9A9A9A"
|
||||
d="M48 64C21.5 64 0 85.5 0 112V400c0 26.5 21.5 48 48 48H80c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H48zm192 0c-26.5 0-48 21.5-48 48V400c0 26.5 21.5 48 48 48h32c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48H240z"/></svg>
|
||||
|
After Width: | Height: | Size: 320 B |
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
|
||||
<!--! Font Awesome Pro 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. -->
|
||||
<path
|
||||
fill="#9A9A9A"
|
||||
d="M181.3 32.4c17.4 2.9 29.2 19.4 26.3 36.8L197.8 128h95.1l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3s29.2 19.4 26.3 36.8L357.8 128H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H347.1L325.8 320H384c17.7 0 32 14.3 32 32s-14.3 32-32 32H315.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l9.8-58.7H155.1l-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8L90.2 384H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l21.3-128H64c-17.7 0-32-14.3-32-32s14.3-32 32-32h68.9l11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3zM187.1 192L165.8 320h95.1l21.3-128H187.1z"/></svg>
|
||||
|
After Width: | Height: | Size: 830 B |
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512">
|
||||
<!--! Font Awesome Pro 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. -->
|
||||
<path
|
||||
fill="#CC7B2E"
|
||||
d="M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6H426.6c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z"/></svg>
|
||||
|
After Width: | Height: | Size: 701 B |
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
||||
<path fill="#CC7B2E" d="M24 56c0-13.3 10.7-24 24-24H80c13.3 0 24 10.7 24 24V176h16c13.3 0 24 10.7 24 24s-10.7 24-24 24H40c-13.3 0-24-10.7-24-24s10.7-24 24-24H56V80H48C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432H120c13.3 0 24 10.7 24 24s-10.7 24-24 24H32c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H224c-17.7 0-32-14.3-32-32s14.3-32 32-32z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 818 B |
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
||||
<path fill="#CC7B2E" d="M313.4 479.1c26-5.2 42.9-30.5 37.7-56.5l-2.3-11.4c-5.3-26.7-15.1-52.1-28.8-75.2H464c26.5 0 48-21.5 48-48c0-25.3-19.5-46-44.3-47.9c7.7-8.5 12.3-19.8 12.3-32.1c0-23.4-16.8-42.9-38.9-47.1c4.4-7.3 6.9-15.8 6.9-24.9c0-21.3-13.9-39.4-33.1-45.6c.7-3.3 1.1-6.8 1.1-10.4c0-26.5-21.5-48-48-48H294.5c-19 0-37.5 5.6-53.3 16.1L202.7 73.8C176 91.6 160 121.6 160 153.7V192v48 24.9c0 29.2 13.3 56.7 36 75l7.4 5.9c26.5 21.2 44.6 51 51.2 84.2l2.3 11.4c5.2 26 30.5 42.9 56.5 37.7zM32 320H96c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64V288c0 17.7 14.3 32 32 32z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 665 B |
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512">
|
||||
<path fill="#CA8A04" d="M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 440 B |
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512">
|
||||
<path fill="#2563EB" d="M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V256.9L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6h29.7c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9V480c0 17.7-14.3 32-32 32s-32-14.3-32-32V352H152z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 440 B |
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
|
||||
<path
|
||||
fill="#9A9A9A"
|
||||
d="M353.8 54.1L330.2 6.3c-3.9-8.3-16.1-8.6-20.4 0L286.2 54.1l-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H384c17.7 0 32-14.3 32-32V288c0-17.7-14.3-32-32-32H256zM32 320c-17.7 0-32 14.3-32 32V480c0 17.7 14.3 32 32 32H160c17.7 0 32-14.3 32-32V352c0-17.7-14.3-32-32-32H32zm416 96v64c0 17.7 14.3 32 32 32H608c17.7 0 32-14.3 32-32V416c0-17.7-14.3-32-32-32H480c-17.7 0-32 14.3-32 32z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 670 B |
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
||||
<path fill="#CC7B2E" d="M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM352 256c0 53-43 96-96 96s-96-43-96-96s43-96 96-96s96 43 96 96zm32 0c0-70.7-57.3-128-128-128s-128 57.3-128 128s57.3 128 128 128s128-57.3 128-128z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 762 B |
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
|
||||
<path fill="#2563EB" d="M72 88a56 56 0 1 1 112 0A56 56 0 1 1 72 88zM64 245.7C54 256.9 48 271.8 48 288s6 31.1 16 42.3V245.7zm144.4-49.3C178.7 222.7 160 261.2 160 304c0 34.3 12 65.8 32 90.5V416c0 17.7-14.3 32-32 32H96c-17.7 0-32-14.3-32-32V389.2C26.2 371.2 0 332.7 0 288c0-61.9 50.1-112 112-112h32c24 0 46.2 7.5 64.4 20.3zM448 416V394.5c20-24.7 32-56.2 32-90.5c0-42.8-18.7-81.3-48.4-107.7C449.8 183.5 472 176 496 176h32c61.9 0 112 50.1 112 112c0 44.7-26.2 83.2-64 101.2V416c0 17.7-14.3 32-32 32H480c-17.7 0-32-14.3-32-32zm8-328a56 56 0 1 1 112 0A56 56 0 1 1 456 88zM576 245.7v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM320 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM240 304c0 16.2 6 31 16 42.3V261.7c-10 11.3-16 26.1-16 42.3zm144-42.3v84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM448 304c0 44.7-26.2 83.2-64 101.2V448c0 17.7-14.3 32-32 32H288c-17.7 0-32-14.3-32-32V405.2c-37.8-18-64-56.5-64-101.2c0-61.9 50.1-112 112-112h32c61.9 0 112 50.1 112 112z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
@@ -0,0 +1,2 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path
|
||||
fill="#800" d="M313.4 479.1c26-5.2 42.9-30.5 37.7-56.5l-2.3-11.4c-5.3-26.7-15.1-52.1-28.8-75.2H464c26.5 0 48-21.5 48-48c0-25.3-19.5-46-44.3-47.9c7.7-8.5 12.3-19.8 12.3-32.1c0-23.4-16.8-42.9-38.9-47.1c4.4-7.3 6.9-15.8 6.9-24.9c0-21.3-13.9-39.4-33.1-45.6c.7-3.3 1.1-6.8 1.1-10.4c0-26.5-21.5-48-48-48H294.5c-19 0-37.5 5.6-53.3 16.1L202.7 73.8C176 91.6 160 121.6 160 153.7V192v48 24.9c0 29.2 13.3 56.7 36 75l7.4 5.9c26.5 21.2 44.6 51 51.2 84.2l2.3 11.4c5.2 26 30.5 42.9 56.5 37.7zM32 320H96c17.7 0 32-14.3 32-32V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64V288c0 17.7 14.3 32 32 32z"/></svg>
|
||||
|
After Width: | Height: | Size: 829 B |
@@ -0,0 +1,2 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path
|
||||
fill="#062" d="M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2H464c26.5 0 48 21.5 48 48c0 25.3-19.5 46-44.3 47.9c7.7 8.5 12.3 19.8 12.3 32.1c0 23.4-16.8 42.9-38.9 47.1c4.4 7.2 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48H294.5c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3V320 272 247.1c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192H96c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32z"/></svg>
|
||||
|
After Width: | Height: | Size: 833 B |
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
|
||||
<path fill="#CC7B2E" d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0S96 57.3 96 128s57.3 128 128 128zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 309 B |
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
|
||||
<!--! Font Awesome Pro 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. -->
|
||||
<path
|
||||
fill="#CC7B2E"
|
||||
d="M219.3 .5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9V160c0 70.7-57.3 128-128 128s-128-57.3-128-128V102.9L48 93.3v65.1l15.7 78.4c.9 4.7-.3 9.6-3.3 13.3s-7.6 5.9-12.4 5.9H16c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4V86.6C6.5 83.3 0 74.3 0 64C0 52.6 8.1 42.7 19.3 40.5l200-40zM129.1 323.2l83.2 88.4c6.3 6.7 17 6.7 23.3 0l83.2-88.4c73.7 14.9 129.1 80 129.1 158.1c0 17-13.8 30.7-30.7 30.7H30.7C13.8 512 0 498.2 0 481.3c0-78.1 55.5-143.2 129.1-158.1z"/></svg>
|
||||
|
After Width: | Height: | Size: 773 B |
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. -->
|
||||
<path fill="#CC7B2E" d="M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2H464c26.5 0 48 21.5 48 48c0 25.3-19.5 46-44.3 47.9c7.7 8.5 12.3 19.8 12.3 32.1c0 23.4-16.8 42.9-38.9 47.1c4.4 7.2 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48H294.5c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3V320 272 247.1c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192H96c17.7 0 32 14.3 32 32V448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32V224c0-17.7 14.3-32 32-32z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 838 B |
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512">
|
||||
<path fill="#CC7B2E" d="M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6H426.6c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 562 B |
@@ -0,0 +1,305 @@
|
||||
/*
|
||||
* jsGrid v1.5.3 (http://js-grid.com)
|
||||
* (c) 2016 Artem Tabalin
|
||||
* Licensed under MIT (https://github.com/tabalinas/jsgrid/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
.jsgrid-grid-header,
|
||||
.jsgrid-grid-body,
|
||||
.jsgrid-header-row>.jsgrid-header-cell,
|
||||
.jsgrid-filter-row>.jsgrid-cell,
|
||||
.jsgrid-insert-row>.jsgrid-cell,
|
||||
.jsgrid-edit-row>.jsgrid-cell {
|
||||
border: 1px solid #e9e9e9;
|
||||
}
|
||||
|
||||
.jsgrid-header-row>.jsgrid-header-cell {
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
.jsgrid-header-row>.jsgrid-header-cell,
|
||||
.jsgrid-filter-row>.jsgrid-cell,
|
||||
.jsgrid-insert-row>.jsgrid-cell {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.jsgrid-header-row>.jsgrid-header-cell:first-child,
|
||||
.jsgrid-filter-row>.jsgrid-cell:first-child,
|
||||
.jsgrid-insert-row>.jsgrid-cell:first-child {
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.jsgrid-header-row>.jsgrid-header-cell:last-child,
|
||||
.jsgrid-filter-row>.jsgrid-cell:last-child,
|
||||
.jsgrid-insert-row>.jsgrid-cell:last-child {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.jsgrid-header-row .jsgrid-align-right,
|
||||
.jsgrid-header-row .jsgrid-align-left {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.jsgrid-grid-header {
|
||||
background: #f9f9f9;
|
||||
}
|
||||
|
||||
.jsgrid-header-scrollbar {
|
||||
scrollbar-arrow-color: #f1f1f1;
|
||||
scrollbar-base-color: #f1f1f1;
|
||||
scrollbar-3dlight-color: #f1f1f1;
|
||||
scrollbar-highlight-color: #f1f1f1;
|
||||
scrollbar-track-color: #f1f1f1;
|
||||
scrollbar-shadow-color: #f1f1f1;
|
||||
scrollbar-dark-shadow-color: #f1f1f1;
|
||||
}
|
||||
|
||||
.jsgrid-header-scrollbar::-webkit-scrollbar {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.jsgrid-header-scrollbar::-webkit-scrollbar-track {
|
||||
background: #f1f1f1;
|
||||
}
|
||||
|
||||
.jsgrid-header-sortable:hover {
|
||||
cursor: pointer;
|
||||
background: #fcfcfc;
|
||||
}
|
||||
|
||||
.jsgrid-header-row .jsgrid-header-sort {
|
||||
background: #c4e2ff;
|
||||
}
|
||||
|
||||
.jsgrid-header-sort:before {
|
||||
content: " ";
|
||||
display: block;
|
||||
float: left;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-style: solid;
|
||||
}
|
||||
|
||||
.jsgrid-header-sort-asc:before {
|
||||
border-width: 0 5px 5px 5px;
|
||||
border-color: transparent transparent #fff transparent;
|
||||
}
|
||||
|
||||
.jsgrid-header-sort-desc:before {
|
||||
border-width: 5px 5px 0 5px;
|
||||
border-color: #fff transparent transparent transparent;
|
||||
}
|
||||
|
||||
.jsgrid-grid-body {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.jsgrid-cell {
|
||||
border: #f3f3f3 1px solid;
|
||||
}
|
||||
|
||||
.jsgrid-grid-body .jsgrid-row:first-child .jsgrid-cell,
|
||||
.jsgrid-grid-body .jsgrid-alt-row:first-child .jsgrid-cell {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.jsgrid-grid-body .jsgrid-cell:first-child {
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
.jsgrid-grid-body .jsgrid-cell:last-child {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.jsgrid-row>.jsgrid-cell {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.jsgrid-alt-row>.jsgrid-cell {
|
||||
background: #fcfcfc;
|
||||
}
|
||||
|
||||
.jsgrid-header-row>.jsgrid-header-cell {
|
||||
background: #f9f9f9;
|
||||
}
|
||||
|
||||
.jsgrid-filter-row>.jsgrid-cell {
|
||||
background: #fcfcfc;
|
||||
}
|
||||
|
||||
.jsgrid-insert-row>.jsgrid-cell {
|
||||
background: #e3ffe5;
|
||||
}
|
||||
|
||||
.jsgrid-edit-row>.jsgrid-cell {
|
||||
background: #fdffe3;
|
||||
}
|
||||
|
||||
.jsgrid-selected-row>.jsgrid-cell {
|
||||
background: #c4e2ff;
|
||||
border-color: #c4e2ff;
|
||||
}
|
||||
|
||||
.jsgrid-nodata-row>.jsgrid-cell {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.jsgrid-invalid input,
|
||||
.jsgrid-invalid select,
|
||||
.jsgrid-invalid textarea {
|
||||
background: #ffe3e5;
|
||||
border: 1px solid #ff808a;
|
||||
}
|
||||
|
||||
.jsgrid-pager-current-page {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.jsgrid-pager-nav-inactive-button a {
|
||||
color: #d3d3d3;
|
||||
}
|
||||
|
||||
.jsgrid-button+.jsgrid-button {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.jsgrid-button:hover {
|
||||
opacity: .5;
|
||||
transition: opacity 200ms linear;
|
||||
}
|
||||
|
||||
.jsgrid .jsgrid-button {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAFgEAYAAADx4WWjAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAZjElEQVR42u2deVyU1f7HzzyzDzCA7MgihCsY7uYOiZIamebVFl/Wy8zSxLTQuld/lmIuCGIu9cruLa9lXlNTUQsVUgQRNBbZF5F9lWEbZpj9/P74doQZ87LMDHjvPe9/vj7MPOf5fp6zjc/3e86D0H8rNTVRUd988/rrxpZTV3f48PHjixb1m+N5eVOmvP76hQtXryKEEMYVFWFhERG7dvW2nIKC4OBVq/71L1JOWdk774SHb9tmcoc1mpaWtjYLi6Ki+fPff/+f/7x2DS6YlobQpEkYJyQgxOViXFGxYUNExN693ZVXWDh//urV339/8yZCQiGUM3EixqTcqqq//e3gwQ8+MJkAnU6tVqvZbKk0KSkj47nnfv/d2nrcOInk1i2EHBw6HSBCyss3btyz53Eh4PiJEwkJCAkEGKenIzRlCsaJiQhZW2OcmentHRhYUCCX5+Tcv+/nZ/KaIKjVlZUSibPz3bu2tv7+jY1JSQjZ22P8++8ITZiA8c2bCIlEGNfU7Njx9dcbN5aXv/fe55/v2kXueFfHrawwzsjw8po1Kz9fp5PJVCoOx9T+sp4spLq6qcnJKTPTzy8wMDtbpWpurqlxcBAIEPL2RkihQKi8HCEWCyEOByGBACEPD4RkMoSysxGyshoxYtKkvLxnn83IiI3192cYoZDL1WjMduefhEbT2Njebm2dnT1x4sKFt26lpCDk7Q01Mm5cp719GyEPD4zz8+fNe/PNixcx1moxZhhz+9ftBTgce3tLy9ZWodDT08enqEirRUguh89YrE6r1SLU3o6QWDx27HPP3bjBYrHZLJZO1+933JDCwnnzVq8+eZJ0xvR0hKZNwzg5GSF3d4xJjXRt+2IxxpWVYWFRUX/964A5npc3e/aKFT/+aNg5k5IQsrPDOC9v/PjXX09Nzcpyc3vhhbKy5GSEXFygSY0fD6MWj4dxRcWmTZGRW7b0m+P5+dOnr1jx00+Gw+HNmwhZWmKcmTliRFBQdjb5vlrd1NTSYm2dmsrnDx0qlycnI+TsrC9EIMC4ouKDDyIitm41ucNqtUTS3GxlVVQ0f/66dZ0TWUYGQjNmQJPo6rhOp1RqtWy2YTkKRUFBVdXQoampPN7QoR0dt26BkPR0hCZPxpjMyDCRbdxoMgE6nUqlVnO5UmlSUmbmtGl374rFY8c2NcXFwQXv3RsxIigoKwtjpVKr7X5UUSgKCiorfXxSU0Wi4cOl0vh4KCcz08srMPD+fbk8O7u4+NlnTV4ThI6OrKzS0qFDc3JCQpYuPX1ap+vo0Ggev+PdIZPduVNY6O+flRUUFBLyyy9arVSqUAiFZnPcEI2mrq611cbG2HJUqrKyhgZX135znEKhUCgUCoVCoVAoFAqFQvlP4FGIyd//wIGYGPL0eOFCsOSRooWF/jHG3RT7R7kkwNHeDpY8W7106d69DRteesn4p9UGQbdZs8BOmAD26FGwajVYS8veFd/RAZbExtatA6tUgjW5gFdfBXv4MFhnZ7hTpEZ6D9TsiRNwFBsL9u23jXWc8FiUEi5IwqFlZWBLSkAIqaGeOn7uHBzNnAl2yBAoRyo1lYDHnvfDBUiV+/qCfeYZcOjs2Z45/s03cBQQAHbUKFM7TmB19wVwyNMTjlJSwCYlgW1tBUtqjM8HGxwMdsYMcDw319SOE7qNuIAD5eVwtGwZ2CVLwFpbgyU1RvrQypXmdrzHAvQhTaCoCOzy5eDoqlVwnJEBtqnJ3I73UQAJEQkEYG1t9T8nf++/UJKRqQBsNvSR3sfQBkiASPTHaX+cV1sLTUirhWNWt4PCAAuorQU7aBDYpUv1P5fJwJo+rcZoAfqjyvvvgz18GJpQXh4cjxkD1vTjvdEC9IUcOwZHZDglwyyEtREqLu4vARQKhUKhUCgUCoVCoVAoFMp/JL1+GAuLe0isbM8esCScum/fhAkIpaWdP9/vAsCxyEg4mjsX7MOHYA2XEE6ZAtbKSv/vJBx786b+eVwuWEdHsHFxINT4xUAGT5G9vMA6O4NtbgZrbw+WPJVOTARLHrMTS+LC48aBbWsD29gI1sFB/zrGYyCAhIpIXJgE927fBktCSCtXgv31V/07v3gx2DVrwA4dCjYwEOzp02DPnDGTAJJSQCLq48eDhdVlCB05Apa0fdKESFxg506wOTlgSVDwtdfAkiaZkAC2vt5YAQaP10kA4949/b8/KcWARGQMAxrk76TJEFJTwVZWGuv4YwKgU5FQEYn/EkjwjrRxQwyTP8ioRM4j1NTAdQzLN4EAfVpa9I9JDSgUYEmb77ogtyvkcxL4Jpg+cvMEASTiQiBtndQQEWIogNQE+Zz0KYLp48dPEFBSon9MhlUS/yXDIhk+iQDSxFQqsGKxfjkkQG52AWT8N1yRTZYmks8N5wHSREjc2MlJ/3zTdd5uBJBF54Zt1s4OLJmgyJ0nAkjNkBwKMgOTpkfOM7sAMkoYdmYyqvzZqvquDhKhBJJy9qRRzIQCYJgjna2qSv9TMk+QpkCakkSi/33iMIFMWGQiMx3dRNQNL0gi825uYEeNAks6rYsL2Dfe0D+PjP9kxu43Afn5YOfNAxsSApYMk6SzkiZE/u7tDZb8GjWc2SkUCoVCoVAoFAqFQqFQKBTjMNuiHViaMmQIHJFNgqOjYQVIRcVTKwAcJ2swydJFEuEhi0sDAvRXCPYdk20pC46TQAiJIxgG/0iN/PILfN/DY8AF6C8WTU8Hu3YtWPIQ2HBNJXko/MMPxl6/z+u9wHGSOhATA5Y8nSZbnhcWgiXLch88AEtibl9/bayAXvcBcHzwYDgiKQfdpQ6Q9cW//AKWy4U+QCL3/SAAHCc5EyRyTxa+9RQfH3DcMIjYd7ptQvqdjaQIkM7YHSQ2tmSJqR3vVgA4TqKMpI331HHCokXg+MWLpnb8iQL0R5UbN/rm+MKF5nacYLAxBgkVVVeDJaNKT1m8GBwnuxmYH7b+cEi21ScB7qlT//3ppI2TO06aWv/xx0Tm7g72wgWwZCOLjz7689NITgS545cu9bfjBI6+Q6TTkt8wpEZIqtknn4B95ZWBuuOG/FEDZC8VAo8HliRnkJ8IU6eC46SmBp4/aoC0ebKnyq1bYElKQWEhOE5+GlAoFAqFQqFQKBQKhUKhUCgDi8nCrKdOFRffuTN+/LJlMTEREdevIyQUkuAqPPPu6JBKEbp6ddmy7dtDQubOdXPz9SUBk75jsk0dWSwWi8Xi8xFiGDbbygpsVwFwzGIhxGIZLpB7CgQAGg1CGMOjYmIJXY/JmhvjMfu7U80NFTDQUAEEnc6w0/6HCfDyEovt7auru442+oJ0Oq0WITc3CwtbW7Kk0Xg4P/10//6dO7D4n8Uiq097/mJkPp/N5nC02t9+q6rKzx89GiGBgIzyMP6zWGB5PKEQoZMni4tTUwMCLl4sLc3MFAg6OrRatbrn2z5DTTMMl8swDKNUshCKilqyBOPOiae3TYE4yGZDdpBAALkoGOvfBhYLFu12dMCaV6iR3l+PnMflCgQdHRyY8lUqEMDj9b5A8m0ixNDxzu/B36EmOq/T272qQQCbzeUKhUolB4oATX3b9rr3Z5Gm1Sm99+fDOVotB35kCYXGNyFyvlBImhD5BrnT0IRUKlhtbFwT0mi0Wo1m0CDWtWuVlbm5s2aBI2TRf8/fJ8/lMgybrVbn5zc319b6+a1Zc/36t98ePtzZJ4jjSqVcjlBExKxZK1Zs3jxpkqOjl9edO2q1TqfVksGjezDGGGMOh81msRhGJuPMmePuboqftZmZjY3l5QUFCKlUCsXhw11HI7jDarVKhVBIiKenv39MzMiRtrYuLsbHnU02D+TmNjXV1np6du2c+m2bYRgGoaoqmay5meRmGI/JBEBT+jPHzQv9LTTQUAEDjcn+Tww/srjczgmKWDJrwjHGCGFM8pGeIgHw61Au5/G4XIGgoYFhuFyBoPPXjk6n0ajVLBZMQP33hggKhUKhUCgUCoVCoVAoFAoFIYTQhx8mJHz//dq1CO3b9/LLLS0IRUQsXNjSsm3b7ds//fThh/3tT6+fzEFekK0t/Ivsbkw+M9ws2Pz04eEuxhgrlX+eF0S2rH2qBTxd9FrAk5I6GKZ/Q0uEXvcBFxdLSxuburquj9ExRsjBgc+3sGho6HcBH32UkHD8eGgoxHOFQmjThlkOGNvYCARCYXt7XFx1dUHBCy8gJBTC1vBQH2fPlpZmZISE7NiRknLmDIvV2qpSKRQWFlBeZ91AnJdhWCyGYRiZLCpq5szly8mbJXoPC6F9+xYuxBghFotE6v8810Gng78LBJBOKRLpj0FyOWx4rlBAJB7Cqo9DymcYCG+HhZ092/fGx3k8v+dJof/HR50/vyxxsOt9//flGANn27bp05cv37wZxnUSWyepBp0vRrCzEwgsLEgTCgq6eLGkJC1twQIiPDjY03PMmCtX5s718Bg16sqVtjalsqNDJAInSV3AkU7H4bBYLBab3d6+fTtCP/9svJAeExWVlnbx4vLlCO3Z8+KLGCO0e/eCBRgfOZKRERv77rv96ArUQG9PKC9va5NInJ07kzmgKdTXKxRSKdmfov/o9TzA4zFM/72F3gwCIEw60G530ut7CeO4QNB1tOkcVQzfO/MUCmCzGYbNbmyEcby1lQhgGIZhsfp/JqZQKBQKhUKhUCgUCoVCofxv0uPAQmNjW1tbm5NTfX1ra3Pzyy9LJFKpVDp9Oiy/cnXV6XQ6na69ncfj8bjcjAw7O0tLK6vz5729nZ1dXDIzzSWg2ydzKSlFRfn5lpbNzTKZVLpwYUtLe3t7+xtvqFQajUYzdqxWi5BOZ2mJMUTN1GqdTqcjb0cXiUpL6+vLine truncated
|
||||
background-repeat: no-repeat;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
@media only screen and (-webkit-min-device-pixel-ratio: 2),
|
||||
only screen and (min-device-pixel-ratio: 2) {
|
||||
.jsgrid .jsgrid-button {
|
||||
background-image: url(data:image/png;base64,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 truncated
|
||||
background-size: 24px 352px;
|
||||
}
|
||||
}
|
||||
|
||||
.jsgrid .jsgrid-mode-button {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.jsgrid-mode-on-button {
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
.jsgrid-cancel-edit-button {
|
||||
background-position: 0 0;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
.jsgrid-clear-filter-button {
|
||||
background-position: 0 -40px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
.jsgrid-delete-button {
|
||||
background-position: 0 -80px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
.jsgrid-edit-button {
|
||||
background-position: 0 -120px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
.jsgrid-insert-mode-button {
|
||||
background-position: 0 -160px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
.jsgrid-insert-button {
|
||||
background-position: 0 -208px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
.jsgrid-search-mode-button {
|
||||
background-position: 0 -248px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
.jsgrid-search-button {
|
||||
background-position: 0 -296px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
.jsgrid-update-button {
|
||||
background-position: 0 -336px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
|
||||
.jsgrid-load-shader {
|
||||
background: #ddd;
|
||||
opacity: .5;
|
||||
filter: alpha(opacity=50);
|
||||
}
|
||||
|
||||
.jsgrid-load-panel {
|
||||
width: 15em;
|
||||
height: 5em;
|
||||
background: #fff;
|
||||
border: 1px solid #e9e9e9;
|
||||
padding-top: 3em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.jsgrid-load-panel:before {
|
||||
content: ' ';
|
||||
position: absolute;
|
||||
top: .5em;
|
||||
left: 50%;
|
||||
margin-left: -1em;
|
||||
width: 2em;
|
||||
height: 2em;
|
||||
border: 2px solid #009a67;
|
||||
border-right-color: transparent;
|
||||
border-radius: 50%;
|
||||
-webkit-animation: indicator 1s linear infinite;
|
||||
animation: indicator 1s linear infinite;
|
||||
}
|
||||
|
||||
@-webkit-keyframes indicator {
|
||||
from {
|
||||
-webkit-transform: rotate(0deg);
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: rotate(180deg);
|
||||
}
|
||||
to {
|
||||
-webkit-transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes indicator {
|
||||
from {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
50% {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
/* old IE */
|
||||
.jsgrid-load-panel {
|
||||
padding-top: 1.5em\9;
|
||||
}
|
||||
.jsgrid-load-panel:before {
|
||||
display: none\9;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
/*
|
||||
* jsGrid v1.5.3 (http://js-grid.com)
|
||||
* (c) 2016 Artem Tabalin
|
||||
* Licensed under MIT (https://github.com/tabalinas/jsgrid/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
.jsgrid-edit-row>.jsgrid-cell,.jsgrid-filter-row>.jsgrid-cell,.jsgrid-grid-body,.jsgrid-grid-header,.jsgrid-header-row>.jsgrid-header-cell,.jsgrid-insert-row>.jsgrid-cell{border:1px solid #e9e9e9}.jsgrid-header-row>.jsgrid-header-cell{border-top:0}.jsgrid-filter-row>.jsgrid-cell,.jsgrid-header-row>.jsgrid-header-cell,.jsgrid-insert-row>.jsgrid-cell{border-bottom:0}.jsgrid-filter-row>.jsgrid-cell:first-child,.jsgrid-header-row>.jsgrid-header-cell:first-child,.jsgrid-insert-row>.jsgrid-cell:first-child{border-left:none}.jsgrid-filter-row>.jsgrid-cell:last-child,.jsgrid-header-row>.jsgrid-header-cell:last-child,.jsgrid-insert-row>.jsgrid-cell:last-child{border-right:none}.jsgrid-header-row .jsgrid-align-left,.jsgrid-header-row .jsgrid-align-right{text-align:center}.jsgrid-grid-header{background:#f9f9f9}.jsgrid-header-scrollbar{scrollbar-arrow-color:#f1f1f1;scrollbar-base-color:#f1f1f1;scrollbar-3dlight-color:#f1f1f1;scrollbar-highlight-color:#f1f1f1;scrollbar-track-color:#f1f1f1;scrollbar-shadow-color:#f1f1f1;scrollbar-dark-shadow-color:#f1f1f1}.jsgrid-header-scrollbar::-webkit-scrollbar{visibility:hidden}.jsgrid-header-scrollbar::-webkit-scrollbar-track{background:#f1f1f1}.jsgrid-header-sortable:hover{cursor:pointer;background:#fcfcfc}.jsgrid-header-row .jsgrid-header-sort{background:#c4e2ff}.jsgrid-header-sort:before{content:" ";display:block;float:left;width:0;height:0;border-style:solid}.jsgrid-header-sort-asc:before{border-width:0 5px 5px;border-color:transparent transparent #009a67}.jsgrid-header-sort-desc:before{border-width:5px 5px 0;border-color:#009a67 transparent transparent}.jsgrid-grid-body{border-top:none}.jsgrid-cell{border:1px solid #f3f3f3}.jsgrid-grid-body .jsgrid-alt-row:first-child .jsgrid-cell,.jsgrid-grid-body .jsgrid-row:first-child .jsgrid-cell{border-top:none}.jsgrid-grid-body .jsgrid-cell:first-child{border-left:none}.jsgrid-grid-body .jsgrid-cell:last-child{border-right:none}.jsgrid-row>.jsgrid-cell{background:#fff}.jsgrid-alt-row>.jsgrid-cell{background:#fcfcfc}.jsgrid-header-row>.jsgrid-header-cell{background:#f9f9f9}.jsgrid-filter-row>.jsgrid-cell{background:#fcfcfc}.jsgrid-insert-row>.jsgrid-cell{background:#e3ffe5}.jsgrid-edit-row>.jsgrid-cell{background:#fdffe3}.jsgrid-selected-row>.jsgrid-cell{background:#c4e2ff;border-color:#c4e2ff}.jsgrid-nodata-row>.jsgrid-cell{background:#fff}.jsgrid-invalid input,.jsgrid-invalid select,.jsgrid-invalid textarea{background:#ffe3e5;border:1px solid #ff808a}.jsgrid-pager-current-page{font-weight:700}.jsgrid-pager-nav-inactive-button a{color:#d3d3d3}.jsgrid-button+.jsgrid-button{margin-left:5px}.jsgrid-button:hover{opacity:.5;transition:opacity 200ms linear}.jsgrid .jsgrid-button{width:16px;height:16px;border:none;cursor:pointer;background-image:url(data:image/png;base64,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 truncated
|
||||
@@ -0,0 +1,126 @@
|
||||
/*
|
||||
* jsGrid v1.5.3 (http://js-grid.com)
|
||||
* (c) 2016 Artem Tabalin
|
||||
* Licensed under MIT (https://github.com/tabalinas/jsgrid/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
.jsgrid {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.jsgrid, .jsgrid *, .jsgrid *:before, .jsgrid *:after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.jsgrid input,
|
||||
.jsgrid textarea,
|
||||
.jsgrid select {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.jsgrid-grid-header {
|
||||
overflow-x: hidden;
|
||||
overflow-y: scroll;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
-o-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.jsgrid-grid-body {
|
||||
overflow-x: auto;
|
||||
overflow-y: scroll;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
.jsgrid-table {
|
||||
width: 100%;
|
||||
table-layout: fixed;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
.jsgrid-cell {
|
||||
padding: 0.5em 0.5em;
|
||||
}
|
||||
|
||||
.jsgrid-сell,
|
||||
.jsgrid-header-cell {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.jsgrid-align-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.jsgrid-align-center,
|
||||
.jsgrid-align-center input,
|
||||
.jsgrid-align-center textarea,
|
||||
.jsgrid-align-center select {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.jsgrid-align-right,
|
||||
.jsgrid-align-right input,
|
||||
.jsgrid-align-right textarea,
|
||||
.jsgrid-align-right select {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.jsgrid-header-cell {
|
||||
padding: .5em .5em;
|
||||
}
|
||||
|
||||
.jsgrid-filter-row input,
|
||||
.jsgrid-filter-row textarea,
|
||||
.jsgrid-filter-row select,
|
||||
.jsgrid-edit-row input,
|
||||
.jsgrid-edit-row textarea,
|
||||
.jsgrid-edit-row select,
|
||||
.jsgrid-insert-row input,
|
||||
.jsgrid-insert-row textarea,
|
||||
.jsgrid-insert-row select {
|
||||
width: 100%;
|
||||
padding: .3em .5em;
|
||||
}
|
||||
|
||||
.jsgrid-filter-row input[type='checkbox'],
|
||||
.jsgrid-edit-row input[type='checkbox'],
|
||||
.jsgrid-insert-row input[type='checkbox'] {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
|
||||
.jsgrid-selected-row .jsgrid-cell {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.jsgrid-nodata-row .jsgrid-cell {
|
||||
padding: .5em 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.jsgrid-header-sort {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.jsgrid-pager {
|
||||
padding: .5em 0;
|
||||
}
|
||||
|
||||
.jsgrid-pager-nav-button {
|
||||
padding: .2em .6em;
|
||||
}
|
||||
|
||||
.jsgrid-pager-nav-inactive-button {
|
||||
display: none;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.jsgrid-pager-page {
|
||||
padding: .2em .6em;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
/*
|
||||
* jsGrid v1.5.3 (http://js-grid.com)
|
||||
* (c) 2016 Artem Tabalin
|
||||
* Licensed under MIT (https://github.com/tabalinas/jsgrid/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
.jsgrid{position:relative;overflow:hidden;font-size:1em}.jsgrid,.jsgrid *,.jsgrid :after,.jsgrid :before{box-sizing:border-box}.jsgrid input,.jsgrid select,.jsgrid textarea{font-size:1em}.jsgrid-grid-header{overflow-x:hidden;overflow-y:scroll;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.jsgrid-grid-body{overflow-x:auto;overflow-y:scroll;-webkit-overflow-scrolling:touch}.jsgrid-table{width:100%;table-layout:fixed;border-collapse:collapse;border-spacing:0}.jsgrid-cell{padding:.5em}.jsgrid-header-cell,.jsgrid-сell{box-sizing:border-box}.jsgrid-align-left{text-align:left}.jsgrid-align-center,.jsgrid-align-center input,.jsgrid-align-center select,.jsgrid-align-center textarea{text-align:center}.jsgrid-align-right,.jsgrid-align-right input,.jsgrid-align-right select,.jsgrid-align-right textarea{text-align:right}.jsgrid-header-cell{padding:.5em}.jsgrid-edit-row input,.jsgrid-edit-row select,.jsgrid-edit-row textarea,.jsgrid-filter-row input,.jsgrid-filter-row select,.jsgrid-filter-row textarea,.jsgrid-insert-row input,.jsgrid-insert-row select,.jsgrid-insert-row textarea{width:100%;padding:.3em .5em}.jsgrid-edit-row input[type=checkbox],.jsgrid-filter-row input[type=checkbox],.jsgrid-insert-row input[type=checkbox]{width:auto}.jsgrid-selected-row .jsgrid-cell{cursor:pointer}.jsgrid-nodata-row .jsgrid-cell{padding:.5em 0;text-align:center}.jsgrid-header-sort{cursor:pointer}.jsgrid-pager{padding:.5em 0}.jsgrid-pager-nav-button{padding:.2em .6em}.jsgrid-pager-nav-inactive-button{display:none;pointer-events:none}.jsgrid-pager-page{padding:.2em .6em}
|
||||
@@ -0,0 +1,8 @@
|
||||
/*
|
||||
* jsGrid v1.5.3 (http://js-grid.com)
|
||||
* (c) 2016 Artem Tabalin
|
||||
* Licensed under MIT (https://github.com/tabalinas/jsgrid/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
!function(a,b,c){function d(a,c){var d=b(a);d.data(f,this),this._container=d,this.data=[],this.fields=[],this._editingRow=null,this._sortField=null,this._sortOrder=i,this._firstDisplayingPage=1,this._init(c),this.render()}var e="JSGrid",f=e,g="JSGridItem",h="JSGridEditRow",i="asc",j="desc",k="{first}",l="{pages}",m="{prev}",n="{next}",o="{last}",p="{pageIndex}",q="{pageCount}",r="{itemCount}",s="javascript:void(0);",t=function(a,c){return b.isFunction(a)?a.apply(c,b.makeArray(arguments).slice(2)):a},u=function(a){var c=b.Deferred();return a&&a.then?a.then(function(){c.resolve.apply(c,arguments)},function(){c.reject.apply(c,arguments)}):c.resolve(a),c.promise()},v={loadData:b.noop,insertItem:b.noop,updateItem:b.noop,deleteItem:b.noop};d.prototype={width:"auto",height:"auto",updateOnResize:!0,rowClass:b.noop,rowRenderer:null,rowClick:function(a){this.editing&&this.editItem(b(a.event.target).closest("tr"))},rowDoubleClick:b.noop,noDataContent:"Not found",noDataRowClass:"jsgrid-nodata-row",heading:!0,headerRowRenderer:null,headerRowClass:"jsgrid-header-row",headerCellClass:"jsgrid-header-cell",filtering:!1,filterRowRenderer:null,filterRowClass:"jsgrid-filter-row",inserting:!1,insertRowRenderer:null,insertRowClass:"jsgrid-insert-row",editing:!1,editRowRenderer:null,editRowClass:"jsgrid-edit-row",confirmDeleting:!0,deleteConfirm:"Are you sure?",selecting:!0,selectedRowClass:"jsgrid-selected-row",oddRowClass:"jsgrid-row",evenRowClass:"jsgrid-alt-row",cellClass:"jsgrid-cell",sorting:!1,sortableClass:"jsgrid-header-sortable",sortAscClass:"jsgrid-header-sort jsgrid-header-sort-asc",sortDescClass:"jsgrid-header-sort jsgrid-header-sort-desc",paging:!1,pagerContainer:null,pageIndex:1,pageSize:20,pageButtonCount:15,pagerFormat:"Pages: {first} {prev} {pages} {next} {last} {pageIndex} of {pageCount}",pagePrevText:"Prev",pageNextText:"Next",pageFirstText:"First",pageLastText:"Last",pageNavigatorNextText:"...",pageNavigatorPrevText:"...",pagerContainerClass:"jsgrid-pager-container",pagerClass:"jsgrid-pager",pagerNavButtonClass:"jsgrid-pager-nav-button",pagerNavButtonInactiveClass:"jsgrid-pager-nav-inactive-button",pageClass:"jsgrid-pager-page",currentPageClass:"jsgrid-pager-current-page",customLoading:!1,pageLoading:!1,autoload:!1,controller:v,loadIndication:!0,loadIndicationDelay:500,loadMessage:"Please, wait...",loadShading:!0,invalidMessage:"Invalid data entered!",invalidNotify:function(c){var d=b.map(c.errors,function(a){return a.message||null});a.alert([this.invalidMessage].concat(d).join("\n"))},onInit:b.noop,onRefreshing:b.noop,onRefreshed:b.noop,onPageChanged:b.noop,onItemDeleting:b.noop,onItemDeleted:b.noop,onItemInserting:b.noop,onItemInserted:b.noop,onItemEditing:b.noop,onItemUpdating:b.noop,onItemUpdated:b.noop,onItemInvalid:b.noop,onDataLoading:b.noop,onDataLoaded:b.noop,onOptionChanging:b.noop,onOptionChanged:b.noop,onError:b.noop,invalidClass:"jsgrid-invalid",containerClass:"jsgrid",tableClass:"jsgrid-table",gridHeaderClass:"jsgrid-grid-header",gridBodyClass:"jsgrid-grid-body",_init:function(a){b.extend(this,a),this._initLoadStrategy(),this._initController(),this._initFields(),this._attachWindowLoadResize(),this._attachWindowResizeCallback(),this._callEventHandler(this.onInit)},loadStrategy:function(){return this.pageLoading?new jsGrid.loadStrategies.PageLoadingStrategy(this):new jsGrid.loadStrategies.DirectLoadingStrategy(this)},_initLoadStrategy:function(){this._loadStrategy=t(this.loadStrategy,this)},_initController:function(){this._controller=b.extend({},v,t(this.controller,this))},renderTemplate:function(a,b,d){args=[];for(var e in d)args.push(d[e]);return args.unshift(a,b),a=t.apply(null,args),a===c||null===a?"":a},loadIndicator:function(a){return new jsGrid.LoadIndicator(a)},validation:function(a){return jsGrid.Validation&&new jsGrid.Validation(a)},_initFields:function(){var a=this;a.fields=b.map(a.fields,function(c){if(b.isPlainObject(c)){var d=c.type&&jsGrid.fields[c.type]||jsGrid.Field;c=new d(c)}return c._grid=a,c})},_attachWindowLoadResize:function(){b(a).on("load",b.proxy(this._refreshSize,this))},_attachWindowResizeCallback:function(){this.updateOnResize&&b(a).on("resize",b.proxy(this._refreshSize,this))},_detachWindowResizeCallback:function(){b(a).off("resize",this._refreshSize)},option:function(a,b){var c,d;return 1===arguments.length?this[a]:(c={option:a,oldValue:this[a],newValue:b},this._callEventHandler(this.onOptionChanging,c),this._handleOptionChange(c.option,c.newValue),d={option:c.option,value:c.newValue},void this._callEventHandler(this.onOptionChanged,d))},fieldOption:function(a,b,c){return a=this._normalizeField(a),2===arguments.length?a[b]:(a[b]=c,void this._renderGrid())},_handleOptionChange:function(a,b){switch(this[a]=b,a){case"width":case"height":this._refreshSize();break;case"rowClass":case"rowRenderer":case"rowClick":case"rowDoubleClick":case"noDataRowClass":case"noDataContent":case"selecting":case"selectedRowClass":case"oddRowClass":case"evenRowClass":this._refreLine truncated
|
||||
a.prop("readOnly")?a.prop({checked:!1,readOnly:!1}):a.prop("checked")||a.prop({readOnly:!0,indeterminate:!0})}),this.autosearch&&c.on("click",function(){a.search()}),c},insertTemplate:function(){return this.inserting?this.insertControl=this._createCheckbox():""},editTemplate:function(a){if(!this.editing)return this.itemTemplate.apply(this,arguments);var b=this.editControl=this._createCheckbox();return b.prop("checked",a),b},filterValue:function(){return this.filterControl.get(0).indeterminate?c:this.filterControl.is(":checked")},insertValue:function(){return this.insertControl.is(":checked")},editValue:function(){return this.editControl.is(":checked")},_createCheckbox:function(){return b("<input>").attr("type","checkbox")}}),a.fields.checkbox=a.CheckboxField=d}(jsGrid,jQuery),function(a,b){function c(a){d.call(this,a),this._configInitialized=!1}var d=a.Field;c.prototype=new d({css:"jsgrid-control-field",align:"center",width:50,filtering:!1,inserting:!1,editing:!1,sorting:!1,buttonClass:"jsgrid-button",modeButtonClass:"jsgrid-mode-button",modeOnButtonClass:"jsgrid-mode-on-button",searchModeButtonClass:"jsgrid-search-mode-button",insertModeButtonClass:"jsgrid-insert-mode-button",editButtonClass:"jsgrid-edit-button",deleteButtonClass:"jsgrid-delete-button",searchButtonClass:"jsgrid-search-button",clearFilterButtonClass:"jsgrid-clear-filter-button",insertButtonClass:"jsgrid-insert-button",updateButtonClass:"jsgrid-update-button",cancelEditButtonClass:"jsgrid-cancel-edit-button",searchModeButtonTooltip:"Switch to searching",insertModeButtonTooltip:"Switch to inserting",editButtonTooltip:"Edit",deleteButtonTooltip:"Delete",searchButtonTooltip:"Search",clearFilterButtonTooltip:"Clear filter",insertButtonTooltip:"Insert",updateButtonTooltip:"Update",cancelEditButtonTooltip:"Cancel edit",editButton:!0,deleteButton:!0,clearFilterButton:!0,modeSwitchButton:!0,_initConfig:function(){this._hasFiltering=this._grid.filtering,this._hasInserting=this._grid.inserting,this._hasInserting&&this.modeSwitchButton&&(this._grid.inserting=!1),this._configInitialized=!0},headerTemplate:function(){this._configInitialized||this._initConfig();var a=this._hasFiltering,b=this._hasInserting;return this.modeSwitchButton&&(a||b)?a&&!b?this._createFilterSwitchButton():b&&!a?this._createInsertSwitchButton():this._createModeSwitchButton():""},itemTemplate:function(a,c){var d=b([]);return this.editButton&&(d=d.add(this._createEditButton(c))),this.deleteButton&&(d=d.add(this._createDeleteButton(c))),d},filterTemplate:function(){var a=this._createSearchButton();return this.clearFilterButton?a.add(this._createClearFilterButton()):a},insertTemplate:function(){return this._createInsertButton()},editTemplate:function(){return this._createUpdateButton().add(this._createCancelEditButton())},_createFilterSwitchButton:function(){return this._createOnOffSwitchButton("filtering",this.searchModeButtonClass,!0)},_createInsertSwitchButton:function(){return this._createOnOffSwitchButton("inserting",this.insertModeButtonClass,!1)},_createOnOffSwitchButton:function(a,c,d){var e=d,f=b.proxy(function(){g.toggleClass(this.modeOnButtonClass,e)},this),g=this._createGridButton(this.modeButtonClass+" "+c,"",function(b){e=!e,b.option(a,e),f()});return f(),g},_createModeSwitchButton:function(){var a=!1,c=b.proxy(function(){d.attr("title",a?this.searchModeButtonTooltip:this.insertModeButtonTooltip).toggleClass(this.insertModeButtonClass,!a).toggleClass(this.searchModeButtonClass,a)},this),d=this._createGridButton(this.modeButtonClass,"",function(b){a=!a,b.option("inserting",a),b.option("filtering",!a),c()});return c(),d},_createEditButton:function(a){return this._createGridButton(this.editButtonClass,this.editButtonTooltip,function(b,c){b.editItem(a),c.stopPropagation()})},_createDeleteButton:function(a){return this._createGridButton(this.deleteButtonClass,this.deleteButtonTooltip,function(b,c){b.deleteItem(a),c.stopPropagation()})},_createSearchButton:function(){return this._createGridButton(this.searchButtonClass,this.searchButtonTooltip,function(a){a.search()})},_createClearFilterButton:function(){return this._createGridButton(this.clearFilterButtonClass,this.clearFilterButtonTooltip,function(a){a.clearFilter()})},_createInsertButton:function(){return this._createGridButton(this.insertButtonClass,this.insertButtonTooltip,function(a){a.insertItem().done(function(){a.clearInsert()})})},_createUpdateButton:function(){return this._createGridButton(this.updateButtonClass,this.updateButtonTooltip,function(a,b){a.updateItem(),b.stopPropagation()})},_createCancelEditButton:function(){return this._createGridButton(this.cancelEditButtonClass,this.cancelEditButtonTooltip,function(a,b){a.cancelEdit(),b.stopPropagation()})},_createGridButton:function(a,c,d){var e=this._grid;return b("<input>").addClass(this.buttonClass).addClass(a).attr({type:"button",title:c}).on("click",function(a){d(e,a)})},editValue:function(){return""}}),a.fields.control=a.ControlField=c}(jsGrid,jQuery);
|
||||
@@ -0,0 +1,67 @@
|
||||
document.barChart
|
||||
function ladeStatistikRangliste () {
|
||||
$.ajax({
|
||||
url: '../index.php',
|
||||
type: 'GET',
|
||||
data: {
|
||||
application: 'loadstatistiktangliste',
|
||||
tournament: $('#tournament_rangliste').val()
|
||||
},
|
||||
dataType: 'json'
|
||||
}).done(function (response) {
|
||||
barChart.data = response
|
||||
barChart.update()
|
||||
})
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
const ctx = document.getElementById('dotterStatistikRangliste')
|
||||
barChart = new Chart(ctx, {
|
||||
type: 'bar',
|
||||
data: [],
|
||||
options: {
|
||||
animation: {
|
||||
y: {
|
||||
duration: 2000,
|
||||
from: 500
|
||||
}
|
||||
},
|
||||
indexAxis: 'y',
|
||||
maintainAspectRatio: true,
|
||||
scaleShowValues: true,
|
||||
responsive: true,
|
||||
elements: {
|
||||
bar: {
|
||||
borderWidth: 2
|
||||
}
|
||||
},
|
||||
plugins: {
|
||||
legend: {
|
||||
display: true,
|
||||
position: 'right',
|
||||
color: '#cecece'
|
||||
}
|
||||
},
|
||||
scales: {
|
||||
x: {
|
||||
title: {
|
||||
display: true,
|
||||
text: 'Punkte',
|
||||
color: '#cecece'
|
||||
}
|
||||
},
|
||||
y: {
|
||||
title: {
|
||||
display: true,
|
||||
text: 'Athlet:innen',
|
||||
color: '#cecece'
|
||||
},
|
||||
ticks: {
|
||||
autoSkip: false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
ladeStatistikRangliste()
|
||||
})
|
||||
@@ -0,0 +1,45 @@
|
||||
document.myChart;
|
||||
function ladeStatistik() {
|
||||
$.ajax({
|
||||
url: "../index.php",
|
||||
type: "GET",
|
||||
data: {
|
||||
application: "loadstatistik",
|
||||
event_id: $("#spieltagselect").val()
|
||||
},
|
||||
dataType: "json"
|
||||
}).done(function(response) {
|
||||
myChart.data = response;
|
||||
myChart.update();
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
const ctx = document.getElementById("dotterStatistikErgebnisse");
|
||||
myChart = new Chart(ctx, {
|
||||
type: "line",
|
||||
data: [],
|
||||
options: {
|
||||
animations: {
|
||||
tension: {
|
||||
duration: 2000,
|
||||
easing: "linear",
|
||||
from: 0.5,
|
||||
to: 0,
|
||||
loop: true
|
||||
}
|
||||
},
|
||||
responsive: true,
|
||||
plugins: {
|
||||
legend: {
|
||||
position: "top"
|
||||
},
|
||||
title: {
|
||||
display: false,
|
||||
text: "FC Dotterbühel"
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
ladeStatistik();
|
||||
});
|
||||
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"name": "Public",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-free": "^6.2.0",
|
||||
"chart.js": "^4.1.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@fortawesome/fontawesome-free": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.2.0.tgz",
|
||||
"integrity": "sha512-CNR7qRIfCwWHNN7FnKUniva94edPdyQzil/zCwk3v6k4R6rR2Fr8i4s3PM7n/lyfPA6Zfko9z5WDzFxG9SW1uQ==",
|
||||
"hasInstallScript": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/@kurkle/color": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.1.tgz",
|
||||
"integrity": "sha512-hW0GwZj06z/ZFUW2Espl7toVDjghJN+EKqyXzPSV8NV89d5BYp5rRMBJoc+aUN0x5OXDMeRQHazejr2Xmqj2tw=="
|
||||
},
|
||||
"node_modules/chart.js": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.1.1.tgz",
|
||||
"integrity": "sha512-P0pCosNXp+LR8zO/QTkZKT6Hb7p0DPFtypEeVOf+6x06hX13NIb75R0DXUA4Ksx/+48chDQKtCCmRCviQRTqsA==",
|
||||
"dependencies": {
|
||||
"@kurkle/color": "^0.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"pnpm": "^7.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-free": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.2.0.tgz",
|
||||
"integrity": "sha512-CNR7qRIfCwWHNN7FnKUniva94edPdyQzil/zCwk3v6k4R6rR2Fr8i4s3PM7n/lyfPA6Zfko9z5WDzFxG9SW1uQ=="
|
||||
},
|
||||
"@kurkle/color": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.1.tgz",
|
||||
"integrity": "sha512-hW0GwZj06z/ZFUW2Espl7toVDjghJN+EKqyXzPSV8NV89d5BYp5rRMBJoc+aUN0x5OXDMeRQHazejr2Xmqj2tw=="
|
||||
},
|
||||
"chart.js": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.1.1.tgz",
|
||||
"integrity": "sha512-P0pCosNXp+LR8zO/QTkZKT6Hb7p0DPFtypEeVOf+6x06hX13NIb75R0DXUA4Ksx/+48chDQKtCCmRCviQRTqsA==",
|
||||
"requires": {
|
||||
"@kurkle/color": "^0.3.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-free": "^6.2.0",
|
||||
"chart.js": "^4.1.1"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "hermanntelser/watten",
|
||||
"type": "typo3-cms-extension",
|
||||
"description": "Verwaltet die Ergebnisse der Dotterb\u00fchel Wattergemeinschaft",
|
||||
"authors": [{
|
||||
"name": "Hermann Telser",
|
||||
"role": "Developer"
|
||||
}],
|
||||
"license": "GPL-2.0-or-later",
|
||||
"require": {
|
||||
"typo3/cms-core": "^11.5"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"HermannTelser\\Watten\\": "Classes"
|
||||
}
|
||||
},
|
||||
"replace": {
|
||||
"typo3-ter/watten": "self.version"
|
||||
},
|
||||
"config": {
|
||||
"allow-plugins": {
|
||||
"typo3/class-alias-loader": false
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
$EM_CONF[(string) $_EXTKEY] = [
|
||||
'title' => 'Watten',
|
||||
'description' => 'Verwaltet die Ergebnisse der Dotterbühel Wattergemeinschaft',
|
||||
'category' => 'plugin',
|
||||
'author' => 'Hermann Telser',
|
||||
'author_email' => 'hermann.telser@gmail.com',
|
||||
'state' => 'alpha',
|
||||
'clearCacheOnLoad' => 0,
|
||||
'version' => '1.0.0',
|
||||
'constraints' => [
|
||||
'depends' => [
|
||||
'typo3' => '11.5.0-11.5.99',
|
||||
],
|
||||
'conflicts' => [],
|
||||
'suggests' => [],
|
||||
],
|
||||
];
|
||||
@@ -0,0 +1,92 @@
|
||||
<?php
|
||||
|
||||
defined('TYPO3') || die();
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['watten_cache'] ??= [];
|
||||
|
||||
# controll eingabe ergebnisse
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processCmdmapClass']['watten'] =
|
||||
\HermannTelser\Watten\Hooks\DataHandler::class;
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass']['watten'] =
|
||||
\HermannTelser\Watten\Hooks\DataHandler::class;
|
||||
|
||||
|
||||
/* ===========================================================================
|
||||
cron
|
||||
=========================================================================== */
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\HermannTelser\Watten\Scheduler\CronTask::class] = array(
|
||||
'extension' => 'watten',
|
||||
'title' => 'Watten Ergebnisse berechnen',
|
||||
'description' => 'Mit diesem Aufruf werden die Ergebnisse für Statistiken und Auflistungen vorberechnet.'
|
||||
);
|
||||
|
||||
/* ===========================================================================
|
||||
jquery grid
|
||||
=========================================================================== */
|
||||
$assetCollector = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Page\AssetCollector::class);
|
||||
$scriptPath = 'EXT:watten/Resources/Public/Javascript/jsgrid/jsgrid.min.js';
|
||||
$assetCollector->addJavaScript('jsgrid', $scriptPath);
|
||||
/* ===========================================================================
|
||||
jquery grid css
|
||||
=========================================================================== */
|
||||
$cssPath = 'EXT:watten/Resources/Public/Css/jsgrid-dark.css';
|
||||
$assetCollector->addStyleSheet('jsgrid-dark', $cssPath);
|
||||
$cssPath = 'EXT:watten/Resources/Public/node_modules/@fortawesome/fontawesome-free/css/all.min.css';
|
||||
$assetCollector->addStyleSheet('fontawesome', $cssPath);
|
||||
/* ===========================================================================
|
||||
plugins
|
||||
=========================================================================== */
|
||||
(static function () {
|
||||
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
|
||||
'Watten',
|
||||
'Ergebnisse',
|
||||
[
|
||||
\HermannTelser\Watten\Controller\WattenController::class => 'ergebnisse',
|
||||
],
|
||||
[
|
||||
\HermannTelser\Watten\Controller\WattenController::class => '',
|
||||
]
|
||||
);
|
||||
|
||||
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
|
||||
'Watten',
|
||||
'Rangliste',
|
||||
[
|
||||
\HermannTelser\Watten\Controller\WattenController::class => 'rangliste',
|
||||
],
|
||||
[
|
||||
\HermannTelser\Watten\Controller\WattenController::class => '',
|
||||
]
|
||||
);
|
||||
|
||||
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
|
||||
'Watten',
|
||||
'Statistik',
|
||||
[
|
||||
\HermannTelser\Watten\Controller\WattenController::class => 'statistik',
|
||||
],
|
||||
[
|
||||
\HermannTelser\Watten\Controller\WattenController::class => '',
|
||||
]
|
||||
);
|
||||
|
||||
// wizards
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig(
|
||||
'mod {
|
||||
wizards.newContentElement.wizardItems.plugins {
|
||||
elements {
|
||||
tx_watten_domain_model_ergebnisse {
|
||||
iconIdentifier = watten-plugin-ergebnisse
|
||||
title = Watten Spieleverwaltung
|
||||
description = Watter Spieleverwaltung
|
||||
tt_content_defValues {
|
||||
CType = watten_ergebnisse
|
||||
list_type = watten_ergebnisse
|
||||
}
|
||||
}
|
||||
}
|
||||
show = *
|
||||
}
|
||||
}'
|
||||
);
|
||||
})();
|
||||
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
defined('TYPO3') || die();
|
||||
|
||||
(static function() {})();
|
||||
@@ -0,0 +1,85 @@
|
||||
CREATE TABLE tx_watten_domain_model_athleten (
|
||||
uid int(11) NOT NULL auto_increment,
|
||||
pid int(11) DEFAULT '0' NOT NULL,
|
||||
tstamp int(11) DEFAULT '0' NOT NULL,
|
||||
crdate int(11) DEFAULT '0' NOT NULL,
|
||||
gender int(4) DEFAULT '0' NOT NULL,
|
||||
isactive int(4) DEFAULT '0' NOT NULL,
|
||||
name varchar(50) NOT NULL DEFAULT '',
|
||||
image varchar(50) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (uid)
|
||||
);
|
||||
|
||||
CREATE TABLE tx_watten_domain_model_ergebnisse (
|
||||
uid int(11) NOT NULL auto_increment,
|
||||
pid int(11) DEFAULT '0' NOT NULL,
|
||||
tstamp int(11) DEFAULT '0' NOT NULL,
|
||||
crdate int(11) DEFAULT '0' NOT NULL,
|
||||
hidden tinyint(4) DEFAULT '0' NOT NULL,
|
||||
event_id int(11) DEFAULT '0' NOT NULL,
|
||||
datum int(11) DEFAULT '0' NOT NULL,
|
||||
s1 int(11) DEFAULT '0' NOT NULL,
|
||||
s2 int(11) DEFAULT '0' NOT NULL,
|
||||
v1 int(11) DEFAULT '0' NOT NULL,
|
||||
v2 int(11) DEFAULT '0' NOT NULL,
|
||||
bumid int(11) DEFAULT '0' NOT NULL,
|
||||
gstrichen int(11) DEFAULT '0' NOT NULL,
|
||||
tournaments_id int(11) DEFAULT '0' NOT NULL,
|
||||
PRIMARY KEY (uid)
|
||||
);
|
||||
|
||||
CREATE TABLE tx_watten_domain_model_events (
|
||||
uid int(11) NOT NULL auto_increment,
|
||||
pid int(11) DEFAULT '0' NOT NULL,
|
||||
tstamp int(11) DEFAULT '0' NOT NULL,
|
||||
crdate int(11) DEFAULT '0' NOT NULL,
|
||||
tournaments_id int(11) DEFAULT '0' NOT NULL,
|
||||
datum int(11) DEFAULT '0' NOT NULL,
|
||||
event varchar(50) NOT NULL DEFAULT '',
|
||||
story text,
|
||||
isactive tinyint(4) DEFAULT '0' NOT NULL,
|
||||
PRIMARY KEY (uid)
|
||||
);
|
||||
|
||||
CREATE TABLE tx_watten_tournaments (
|
||||
uid int(11) NOT NULL auto_increment,
|
||||
pid int(11) DEFAULT '0' NOT NULL,
|
||||
tstamp int(11) DEFAULT '0' NOT NULL,
|
||||
crdate int(11) DEFAULT '0' NOT NULL,
|
||||
tournament varchar(50) NOT NULL DEFAULT '',
|
||||
active tinyint(4) DEFAULT '0' NOT NULL,
|
||||
king tinyint(4) DEFAULT '0' NOT NULL,
|
||||
PRIMARY KEY (uid)
|
||||
);
|
||||
|
||||
CREATE TABLE tx_watten_tournaments_ergebnisse (
|
||||
uid int(11) NOT NULL auto_increment,
|
||||
pid int(11) DEFAULT '0' NOT NULL,
|
||||
crdate int(11) DEFAULT '0' NOT NULL,
|
||||
tstamp int(11) DEFAULT '0' NOT NULL,
|
||||
tournament_id int(11) DEFAULT '0' NOT NULL,
|
||||
type varchar(20) DEFAULT '0' NOT NULL,
|
||||
tournament varchar(30) DEFAULT '0' NOT NULL,
|
||||
koenig_id int(11) DEFAULT '0' NOT NULL,
|
||||
koenig varchar(120) DEFAULT '0' NOT NULL,
|
||||
schneewatter_id int(11) DEFAULT '0' NOT NULL,
|
||||
schneewatter varchar(120) DEFAULT '0' NOT NULL,
|
||||
koenig_spiele int(11) DEFAULT '0' NOT NULL,
|
||||
koenig_punkte double(5, 1) DEFAULT '0' NOT NULL,
|
||||
koenig_siege int(11) DEFAULT '0' NOT NULL,
|
||||
koenig_niederlagen int(11) DEFAULT '0' NOT NULL,
|
||||
koenig_schneider int(11) DEFAULT '0' NOT NULL,
|
||||
koenig_schneider_niederlage int(11) DEFAULT '0' NOT NULL,
|
||||
koenig_retour_schneider int(11) DEFAULT '0' NOT NULL,
|
||||
koenig_retour_schneider_niederlage int(11) DEFAULT '0' NOT NULL,
|
||||
schneewatter_spiele int(11) DEFAULT '0' NOT NULL,
|
||||
schneewatter_punkte double(5, 1) DEFAULT '0' NOT NULL,
|
||||
schneewatter_siege int(11) DEFAULT '0' NOT NULL,
|
||||
schneewatter_niederlagen int(11) DEFAULT '0' NOT NULL,
|
||||
schneewatter_schneider int(11) DEFAULT '0' NOT NULL,
|
||||
schneewatter_schneider_niederlage int(11) DEFAULT '0' NOT NULL,
|
||||
schneewatter_retour_schneider int(11) DEFAULT '0' NOT NULL,
|
||||
schneewatter_retour_schneider_niederlage int(11) DEFAULT '0' NOT NULL,
|
||||
result_json text DEFAULT NULL,
|
||||
PRIMARY KEY (uid)
|
||||
);
|
||||
@@ -96,22 +96,10 @@
|
||||
text/x-cross-domain-policy \
|
||||
text/xml
|
||||
</IfModule>
|
||||
<IfModule mod_mime.c>
|
||||
# Verhindert, dass Dateien mit der Endung .wrong als HTML ausgeliefert werden
|
||||
RemoveType .html .htm
|
||||
<FilesMatch ".+\\.html?$">
|
||||
AddType text/html .html
|
||||
AddType text/html .htm
|
||||
</FilesMatch>
|
||||
|
||||
# Falls der Fehler gleich auch für SVG-Testdateien auftaucht:
|
||||
RemoveType .svg .svgz
|
||||
<FilesMatch ".+\\.svgz?$">
|
||||
AddType image/svg+xml .svg
|
||||
AddType image/svg+xml .svgz
|
||||
</FilesMatch>
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_mime.c>
|
||||
AddEncoding gzip svgz
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
|
||||
### End: Compression ###
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
<?php
|
||||
|
||||
phpinfo();
|
||||