This commit is contained in:
silas 2018-09-18 13:22:20 +02:00
parent 013783322f
commit d029ea130b
28 changed files with 23291 additions and 5339 deletions

3
.idea/php.xml generated
View File

@ -74,6 +74,9 @@
<path value="$PROJECT_DIR$/vendor/zendframework/zend-mvc-plugin-prg" /> <path value="$PROJECT_DIR$/vendor/zendframework/zend-mvc-plugin-prg" />
<path value="$PROJECT_DIR$/vendor/zendframework/zend-permissions-acl" /> <path value="$PROJECT_DIR$/vendor/zendframework/zend-permissions-acl" />
<path value="$PROJECT_DIR$/vendor/true/punycode" /> <path value="$PROJECT_DIR$/vendor/true/punycode" />
<path value="$PROJECT_DIR$/vendor/doctrine/reflection" />
<path value="$PROJECT_DIR$/vendor/doctrine/event-manager" />
<path value="$PROJECT_DIR$/vendor/doctrine/persistence" />
</include_path> </include_path>
</component> </component>
</project> </project>

6
.idea/vcs.xml generated
View File

@ -2,5 +2,11 @@
<project version="4"> <project version="4">
<component name="VcsDirectoryMappings"> <component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" /> <mapping directory="$PROJECT_DIR$" vcs="Git" />
<mapping directory="$PROJECT_DIR$/vendor/ainias/pwa-assets" vcs="Git" />
<mapping directory="$PROJECT_DIR$/vendor/ainias/pwa-lib" vcs="Git" />
<mapping directory="$PROJECT_DIR$/vendor/ainias/pwa-zf-code-management" vcs="Git" />
<mapping directory="$PROJECT_DIR$/vendor/ainias/pwa-zf-core" vcs="Git" />
<mapping directory="$PROJECT_DIR$/vendor/ainias/pwa-zf-cronjob" vcs="Git" />
<mapping directory="$PROJECT_DIR$/vendor/ainias/pwa-zf-user-management" vcs="Git" />
</component> </component>
</project> </project>

View File

@ -2,7 +2,7 @@
<project version="4"> <project version="4">
<component name="ProjectTasksOptions"> <component name="ProjectTasksOptions">
<TaskOptions isEnabled="true"> <TaskOptions isEnabled="true">
<option name="arguments" value="--no-cache --update --sourcemap=none $FileName$:$FileNameWithoutExtension$.css" /> <option name="arguments" value="--update --no-source-map $FileName$:$FileNameWithoutExtension$.css" />
<option name="checkSyntaxErrors" value="true" /> <option name="checkSyntaxErrors" value="true" />
<option name="description" /> <option name="description" />
<option name="exitCodeBehavior" value="ERROR" /> <option name="exitCodeBehavior" value="ERROR" />

3
.idea/wordRotator.iml generated
View File

@ -3,6 +3,9 @@
<component name="NewModuleRootManager"> <component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$"> <content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/module/Application/src" isTestSource="false" packagePrefix="Application\" /> <sourceFolder url="file://$MODULE_DIR$/src/module/Application/src" isTestSource="false" packagePrefix="Application\" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/event-manager" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/persistence" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/reflection" />
<excludeFolder url="file://$MODULE_DIR$/vendor/true/punycode" /> <excludeFolder url="file://$MODULE_DIR$/vendor/true/punycode" />
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />

View File

@ -11,6 +11,14 @@
* credentials from accidentally being committed into version control. * credentials from accidentally being committed into version control.
*/ */
if (!is_null($_SERVER) && isset($_SERVER["REQUEST_URI"]))
{
$uri = explode("/", $_SERVER["REQUEST_URI"]);
if ($uri[3] === "publicTest")
return include "test.local.php";
}
return [ return [
'doctrine' => [ 'doctrine' => [
'connection' => array( 'connection' => array(

View File

@ -0,0 +1,43 @@
<?php
return [
'doctrine' => [
'connection' => array(
'default' => array(
'params' => [
'user' => 'root',
'password' => '123456',
'host' => '127.0.0.1',
'dbname' => 'silas_wordRotatorTest',
'driverOptions' => array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
),
'useStrict' => true,
],
),
),
],
'mailEinstellungen' => array(
'options' => array(
'name' => 'test.wordrotator',
'host' => 'eltanin.uberspace.de',
'port' => '587',
'connection_class' => 'plain', // plain oder login
'connection_config' => array(
'username' => 'silas',
'password' => 'l$?%u<M4j)|>sN\\Oj\\/l0VQ%IF',
'ssl' => 'tls',
),
),
'sender' => 'test.framework@silas.link',
),
'systemVariables' => array(
'passwordHash' => 'sdvsdg',
'websiteName' => 'Test.WordRotator',
'maxAgeOfUserCodes' => 2 //In Tagen
),
'view_manager' => [
'display_exceptions' => true,
],
];

View File

@ -1,7 +0,0 @@
2018-05-23T08:28:45+02:00 ERR (3): Unable to resolve service "Application\Model\Manager\LevelManager" to a factory; are you certain you provided it during configuration? - ErrorCode: 0 File: /var/www/pwa/wordRotator/vendor/zendframework/zend-servicemanager/src/ServiceManager.php Line: 687
2018-05-23T08:29:01+02:00 ERR (3): Unable to resolve service "Application\Model\Manager\LevelManager" to a factory; are you certain you provided it during configuration? - ErrorCode: 0 File: /var/www/pwa/wordRotator/vendor/zendframework/zend-servicemanager/src/ServiceManager.php Line: 687
2018-05-23T08:29:12+02:00 ERR (3): Unable to resolve service "Application\Model\Manager\LevelManager" to a factory; are you certain you provided it during configuration? - ErrorCode: 0 File: /var/www/pwa/wordRotator/vendor/zendframework/zend-servicemanager/src/ServiceManager.php Line: 687
2018-05-23T08:29:19+02:00 ERR (3): Unable to resolve service "Application\Model\Manager\LevelManager" to a factory; are you certain you provided it during configuration? - ErrorCode: 0 File: /var/www/pwa/wordRotator/vendor/zendframework/zend-servicemanager/src/ServiceManager.php Line: 687
2018-05-23T08:29:41+02:00 ERR (3): Unable to resolve service "Application\Model\Manager\LevelManager" to a factory; are you certain you provided it during configuration? - ErrorCode: 0 File: /var/www/pwa/wordRotator/vendor/zendframework/zend-servicemanager/src/ServiceManager.php Line: 687
2018-05-23T08:43:12+02:00 ERR (3): Unable to resolve service "Application\Model\Manager\LevelManager" to a factory; are you certain you provided it during configuration? - ErrorCode: 0 File: /var/www/pwa/wordRotator/vendor/zendframework/zend-servicemanager/src/ServiceManager.php Line: 687
2018-07-11T20:46:07+02:00 ERR (3): Your proxy directory "data/DoctrineORMModule/Proxy" must be writable - ErrorCode: 0 File: /var/www/pwa/wordRotator/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Exception/UnexpectedValueException.php Line: 40

View File

@ -1,7 +0,0 @@
2018-05-23T08:28:45+02:00 ERR (3): Unable to resolve service "Application\Model\Manager\LevelManager" to a factory; are you certain you provided it during configuration? - ErrorCode: 0 File: /var/www/pwa/wordRotator/vendor/zendframework/zend-servicemanager/src/ServiceManager.php Line: 687
2018-05-23T08:29:01+02:00 ERR (3): Unable to resolve service "Application\Model\Manager\LevelManager" to a factory; are you certain you provided it during configuration? - ErrorCode: 0 File: /var/www/pwa/wordRotator/vendor/zendframework/zend-servicemanager/src/ServiceManager.php Line: 687
2018-05-23T08:29:12+02:00 ERR (3): Unable to resolve service "Application\Model\Manager\LevelManager" to a factory; are you certain you provided it during configuration? - ErrorCode: 0 File: /var/www/pwa/wordRotator/vendor/zendframework/zend-servicemanager/src/ServiceManager.php Line: 687
2018-05-23T08:29:19+02:00 ERR (3): Unable to resolve service "Application\Model\Manager\LevelManager" to a factory; are you certain you provided it during configuration? - ErrorCode: 0 File: /var/www/pwa/wordRotator/vendor/zendframework/zend-servicemanager/src/ServiceManager.php Line: 687
2018-05-23T08:29:41+02:00 ERR (3): Unable to resolve service "Application\Model\Manager\LevelManager" to a factory; are you certain you provided it during configuration? - ErrorCode: 0 File: /var/www/pwa/wordRotator/vendor/zendframework/zend-servicemanager/src/ServiceManager.php Line: 687
2018-05-23T08:43:12+02:00 ERR (3): Unable to resolve service "Application\Model\Manager\LevelManager" to a factory; are you certain you provided it during configuration? - ErrorCode: 0 File: /var/www/pwa/wordRotator/vendor/zendframework/zend-servicemanager/src/ServiceManager.php Line: 687
2018-07-11T20:46:07+02:00 ERR (3): Your proxy directory "data/DoctrineORMModule/Proxy" must be writable - ErrorCode: 0 File: /var/www/pwa/wordRotator/vendor/doctrine/common/lib/Doctrine/Common/Proxy/Exception/UnexpectedValueException.php Line: 40

387
orga/Level.sql Normal file
View File

@ -0,0 +1,387 @@
-- phpMyAdmin SQL Dump
-- version 4.0.10.15
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Erstellungszeit: 17. Sep 2018 um 20:02
-- Server Version: 5.1.73-log
-- PHP-Version: 5.6.3
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Datenbank: `silas_WordRotator`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `Level`
--
CREATE TABLE IF NOT EXISTS `Level` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`words` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`positions` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`renderer` int(11) NOT NULL,
`lastUpdated` datetime NOT NULL,
`lang` int(11) NOT NULL,
`deleted` tinyint(1) NOT NULL,
`difficulty` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `levelCore` (`words`,`positions`,`renderer`,`lang`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=433 ;
--
-- Daten für Tabelle `Level`
--
INSERT INTO `Level` (`id`, `words`, `positions`, `renderer`, `lastUpdated`, `lang`, `deleted`, `difficulty`) VALUES
(15, '["ARCHIV","CHARME"]', '[1,1,3]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(17, '["ARTIST","BIKINI"]', '[0,0,2]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(18, '["BRUDER","ÄRZTIN"]', '[2,0,1]', 20, '2018-07-14 17:01:18', 1, 1, 1),
(20, '["KAPSEL","AUFRUF"]', '[0,1,0]', 20, '2018-07-14 17:01:18', 1, 1, 1),
(22, '["AHNUNG","AUSBAU"]', '[3,3,1]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(24, '["BETONUNG","ANBETUNG","ALLERGIE","BAUMHAUS"]', '[0,3,1,1,3,1,2,0,0,0]', 120, '2018-07-14 17:01:18', 1, 0, 3),
(26, '["BODENSEE","ALARMRUF"]', '[3,2,0,3]', 40, '2018-07-14 17:01:18', 1, 0, 2),
(28, '["BIERKRUG","BERATUNG"]', '[1,2,2,0]', 40, '2018-07-14 17:01:18', 1, 0, 2),
(30, '["ZYPRESSE","THRILLER"]', '[2,2,0,3]', 40, '2018-07-14 17:01:18', 1, 0, 2),
(32, '["ABGLEICH","REAKTION"]', '[3,3,2,0]', 40, '2018-07-14 17:01:18', 1, 0, 2),
(34, '["ABGLEICH","BAKTERIE"]', '[3,3,1,3]', 40, '2018-07-14 17:01:18', 1, 0, 2),
(36, '["CHANCE","BEAMER"]', '[3,3,0]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(38, '["BLÄSSE","BIZEPS"]', '[2,0,3]', 20, '2018-07-14 17:01:18', 1, 1, 1),
(40, '["REKORD","ARTIST"]', '[1,0,1]', 20, '2018-07-14 17:01:18', 1, 1, 1),
(42, '["WIESEL","PATENT"]', '[2,3,3]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(44, '["AMEISE","ABHANG"]', '[3,2,0]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(46, '["VERZUG","BALLON"]', '[1,3,0]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(48, '["BESTIE","ABSATZ"]', '[0,1,2]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(50, '["ACKERBAU","REAKTION"]', '[2,2,2,2]', 40, '2018-07-14 17:01:18', 1, 0, 2),
(52, '["BROTKORB","BEISTAND"]', '[3,2,3,1]', 40, '2018-07-14 17:01:18', 1, 1, 2),
(54, '["ANSPRUCH","ANHÄNGER"]', '[3,1,2,0]', 40, '2018-07-14 17:01:18', 1, 1, 2),
(56, '["ANALYTIK","AUSFAHRT"]', '[0,2,3,3]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(57, '["BUFFET","BRUDER"]', '[0,3,2]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(58, '["AKTION","KUCHEN"]', '[3,1,1]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(59, '["ABHANG","BRAUCH"]', '[1,1,3]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(60, '["TERMIN","BRAUCH"]', '[0,3,0]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(61, '["BREMSWEG","ANDENKEN","RÜCKPASS","ATTENTAT"]', '[2,0,0,0,0,2,3,1,0,2]', 120, '2018-07-14 17:01:18', 1, 1, 3),
(62, '["FEHLPROGNOSE","GEISTESKRAFT","ARBEITSPAUSE","BEREITSCHAFT","MOSAIKARBEIT","INFRAROTFILM"]', '[0,3,0,1,0,3,2,3,1,2,3,1,2,2,0,2,3,0,2,1,1]', 140, '2018-07-14 17:01:18', 1, 0, 4),
(63, '["BROTKORB","BEISTAND"]', '[0,2,3,1]', 40, '2018-07-14 17:01:18', 1, 0, 2),
(64, '["FAMILIENGRAB","MAGENSCHMERZ","KULTURBEUTEL","GEBURTSDATUM","GETREIDEKORN","GEHEIMDIENST"]', '[0,0,0,0,0,0,0,0,0,0,0,1,3,0,0,0,0,0,0,0,0]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(65, '["FÄHRTE","TERMIN"]', '[2,3,2]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(66, '["APOTHEKE","WOHNLAGE","ABSCHIED","ANWOHNER"]', '[2,0,0,1,2,0,1,0,1,2]', 120, '2018-07-14 17:01:18', 1, 0, 3),
(67, '["AHNUNG","AUSBAU"]', '[0,0,1]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(68, '["REKORD","ARTIST"]', '[2,0,3]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(69, '["GEDULD","ANTEIL"]', '[3,1,0]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(70, '["FORMAT","AUFZUG"]', '[2,2,3]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(71, '["WEICHE","GERÜST"]', '[0,0,0]', 20, '2018-07-14 17:01:18', 1, 1, 1),
(72, '["BECKEN","ABGABE"]', '[3,3,3]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(73, '["REVIER","BUTTER"]', '[2,3,1]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(74, '["BODENSEE","PERSONAL","ADOPTION","ABSTRICH"]', '[3,1,2,3,1,3,0,2,2,0]', 120, '2018-07-14 17:01:18', 1, 0, 3),
(75, '["FORMAT","AIRBAG"]', '[2,1,1]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(76, '["ALTBAU","BLÄSSE"]', '[0,2,2]', 20, '2018-07-14 17:01:18', 1, 1, 1),
(77, '["ANWALT","HACKEN"]', '[3,2,0]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(78, '["BALLON","GERÜST"]', '[2,3,2]', 20, '2018-07-14 17:01:18', 1, 1, 1),
(79, '["ARTIST","AUSWEG"]', '[3,3,3]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(80, '["BRONZE","BESUCH"]', '[1,0,3]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(83, '["BIKINI","SALAMI"]', '[3,0,1]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(84, '["BESITZ","BEGINN"]', '[0,1,1]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(85, '["BEZIRK","SOLDAT"]', '[3,1,0]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(86, '["PROFIL","ANREIZ"]', '[3,2,1]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(87, '["ABSCHLAG","THRILLER","BIERDOSE","RADSPORT"]', '[0,1,0,1,0,0,3,3,0,3]', 120, '2018-07-14 17:01:18', 1, 0, 3),
(88, '["WOHNLAGE","ATLANTIK"]', '[1,3,1,3]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(89, '["AMBOSS","WEICHE"]', '[1,0,2]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(90, '["AUFZUG","WEICHE"]', '[1,0,3]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(91, '["BUTLER","AMBOSS"]', '[1,2,2]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(92, '["SINGLE","ABLAUF"]', '[2,2,0]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(93, '["BESITZ","BEGINN"]', '[0,2,3]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(94, '["BROCCOLI","WESTWIND"]', '[0,3,0,2]', 40, '2018-07-14 17:01:18', 1, 1, 2),
(95, '["BRAUEREI","THERAPIE"]', '[3,2,0,1]', 40, '2018-07-14 17:01:18', 1, 0, 2),
(96, '["AUTOKINO","ALTSTADT"]', '[0,2,2,1]', 40, '2018-07-14 17:01:18', 1, 0, 2),
(98, '["ATOMTEST","BUSREISE"]', '[0,1,3,0]', 40, '2018-07-14 17:01:18', 1, 0, 2),
(100, '["REVIER","ABGANG"]', '[3,3,3]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(102, '["ANREDE","BILANZ"]', '[1,0,3]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(104, '["AIRBAG","BANANE"]', '[0,0,1]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(106, '["GLUTEN","ABFALL"]', '[1,1,1]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(108, '["ABGABE","BETRAG"]', '[2,1,3]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(110, '["BENZIN","GERÜST"]', '[0,1,1]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(112, '["KURIER","VORRAT"]', '[1,0,1]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(114, '["DIADEM","AUGUST"]', '[0,1,2]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(116, '["BENGEL","BEZIRK"]', '[1,0,3]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(118, '["ZYKLON","ABLAUF"]', '[2,0,0]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(120, '["ABLAGE","ANTEIL"]', '[3,0,1]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(122, '["ANLASS","DISPUT"]', '[1,0,3]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(124, '["AMBIENTE","LAUFWERK"]', '[1,2,1,3]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(125, '["PROTON","ANZAHL"]', '[0,1,2]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(126, '["AUSZUG","SALAMI"]', '[3,1,2]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(127, '["ANKAUF","ORAKEL"]', '[0,2,1]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(129, '["KAFFEE","ALTBAU"]', '[0,0,3]', 20, '2018-07-14 17:01:18', 1, 1, 1),
(131, '["AUSLUG","BUNKER"]', '[0,3,2]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(133, '["PAROLE","WEICHE"]', '[3,3,3]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(135, '["KUCHEN","ANLASS"]', '[0,2,0]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(137, '["LESUNG","ATMUNG"]', '[3,2,3]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(139, '["ZYKLON","BETRAG"]', '[1,1,3]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(140, '["BRÜCKE","CHARME"]', '[1,1,1]', 20, '2018-07-14 17:01:18', 1, 1, 1),
(142, '["LÖSUNG","ADVENT"]', '[3,3,2]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(143, '["BANKSCHALTER","WISSENSCHAFT","GARTENPFLEGE","FACKELSCHEIN","KETTENHANDEL","SCHLEICHPFAD"]', '[2,1,0,0,1,0,1,0,0,3,0,3,0,3,0,0,0,0,1,3,0]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(145, '["MITTELSCHULE","SERVOLENKUNG","ANDREASKREUZ","NOTARZTWAGEN","SCHMUTZFLECK","NEUJAHRSREDE"]', '[0,0,3,1,0,0,0,0,0,0,3,0,0,1,0,0,2,0,0,0,0]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(147, '["TISCHNACHBAR","GARTENPFLEGE","ANKLEIDERAUM","ANSCHLUSSZUG","NAMENSVETTER","SCHRITTFOLGE"]', '[3,3,3,3,0,1,2,0,2,2,0,1,1,0,2,3,0,3,3,0,1]', 140, '2018-07-14 17:01:18', 1, 0, 4),
(149, '["EINARBEITUNG","SCHLEICHPFAD","EINZELWISSEN","STARTZEICHEN","VOLLBREMSUNG","UMKLEIDERAUM"]', '[2,2,2,1,3,1,2,3,0,1,0,0,3,2,2,2,2,0,2,2,0]', 140, '2018-07-14 17:01:18', 1, 1, 4),
(151, '["ANFANGSSTUFE","ALTERSKLASSE","AKTENSCHRANK","SCHIMMELPILZ","PREISELBEERE","SPRINGFRUCHT"]', '[0,0,0,0,0,0,0,3,1,0,0,0,0,0,3,3,3,1,3,3,1]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(153, '["SCHIFFSREISE","OZEANDAMPFER","LAUFRICHTUNG","STANDARDFORM","SPRUNGGELENK","WISSENSCHAFT"]', '[3,2,1,0,1,0,3,3,0,3,2,0,3,0,2,1,2,0,2,1,3]', 140, '2018-07-14 17:01:18', 1, 0, 4),
(155, '["ANNAHMEFRIST","FARBAUFNAHME","LEASINGFIRMA","ZWISCHENHIRN","ZETTELKASTEN","WAFFENKAMMER"]', '[0,2,0,0,0,0,0,2,2,0,0,0,0,0,0,3,2,0,0,0,0]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(157, '["EINARBEITUNG","SCHLEICHPFAD","EINZELWISSEN","STARTZEICHEN","VOLLBREMSUNG","UMKLEIDERAUM"]', '[0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0]', 140, '2018-07-14 17:01:18', 1, 0, 4),
(159, '["INGENIEURBAU","ABSPERRKETTE","ACHTELFINALE","ERGOTHERAPIE","KLEBSTREIFEN","SCHRITTFOLGE"]', '[0,1,3,3,1,3,1,2,0,0,2,3,2,2,3,3,0,0,3,0,1]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(161, '["ARBEITSMARKT","GEMEINSCHAFT","ARBEITSSTROM","ORGELKONZERT","SPORTZENTRUM","ADVENTSKRANZ"]', '[2,0,2,3,1,2,2,2,1,2,1,3,0,2,2,1,2,3,1,3,2]', 140, '2018-07-14 17:01:18', 1, 1, 4),
(163, '["SCHAFFLEISCH","HUBSCHRAUBER","NOTARZTWAGEN","KLEINANZEIGE","DURCHBLUTUNG","DRUCKANSTIEG"]', '[2,2,1,2,3,0,0,1,3,0,2,0,0,2,0,0,1,0,0,0,0]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(165, '["ANFANGSPHASE","ARBEITSMARKT","AUFSCHIEBUNG","INVESTIERUNG","KRISTALLVASE","WASSERSPEIER"]', '[2,0,3,3,3,2,1,1,0,2,3,2,0,3,1,1,3,0,2,3,0]', 140, '2018-07-14 17:01:18', 1, 0, 4),
(167, '["KABELLEITUNG","GLASSPLITTER","INGENIEURBAU","ARBEITSWOCHE","MINUSZEICHEN","SCHLEICHPFAD"]', '[1,3,1,1,0,0,0,1,1,3,2,1,0,3,1,0,0,0,3,0,0]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(169, '["ABSCHREIBUNG","SCHULMEDIZIN","GEBURTENRATE","ANHALTSPUNKT","ANSTANDSDAME","HUNGERSTREIK"]', '[3,3,1,2,1,1,2,1,1,3,0,2,0,2,2,1,0,0,3,1,2]', 140, '2018-07-14 17:01:18', 1, 1, 4),
(171, '["SPORTZENTRUM","KOPIERSCHUTZ","DRUCKANSTIEG","SCHINDELDACH","ABFAHRTSZEIT","ORGELKONZERT"]', '[0,0,0,0,0,2,0,0,0,0,0,2,2,0,0,0,3,0,0,0,1]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(173, '["SCHAFFLEISCH","SCHRITTFOLGE","FORTBEWEGUNG","ACHSELZUCKEN","GESANGSTUNDE","KABELLEITUNG"]', '[2,3,0,1,1,2,3,2,2,0,3,3,3,3,3,3,1,3,2,0,1]', 140, '2018-07-14 17:01:18', 1, 1, 4),
(175, '["ZWISCHENHIRN","SPEISEZIMMER","STANDLEUCHTE","ANTEILSRECHT","ARBEITSPAUSE","BAUMWOLLTUCH"]', '[0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,3,0,0,2,0,0]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(177, '["INNENSPIEGEL","SPRINGFRUCHT","LICHTEINFALL","SCHULDENBERG","AUTOFRIEDHOF","GRUPPENZWANG"]', '[2,2,3,2,3,1,2,1,0,3,0,1,1,0,3,2,3,2,3,0,2]', 140, '2018-07-14 17:01:18', 1, 1, 4),
(179, '["NACHHOLSPIEL","WISSENSCHAFT","JACKENTASCHE","FORTBEWEGUNG","ABFAHRTGLEIS","ANLEGESTELLE"]', '[2,1,3,0,0,3,1,0,2,1,0,2,3,2,1,1,0,1,1,3,0]', 140, '2018-07-14 17:01:18', 1, 1, 4),
(181, '["KOPIERSCHUTZ","SPRINGFRUCHT","HUNGERSTREIK","SACHKENNTNIS","ZAUBERFORMEL","ANGEWOHNHEIT"]', '[3,3,0,1,2,0,2,3,1,0,3,3,1,1,1,1,0,2,2,3,0]', 140, '2018-07-14 17:01:18', 1, 1, 4),
(183, '["WISSENSCHAFT","MEERESSTRAND","KEULENSCHLAG","SCHNEEFLOCKE","ADVENTSKRANZ","UMKLEIDERAUM"]', '[2,1,0,2,0,3,3,2,3,0,3,3,3,3,3,1,0,0,0,3,2]', 140, '2018-07-14 17:01:18', 1, 1, 4),
(185, '["FACHAUSDRUCK","ANTEILSRECHT","ZETTELKASTEN","SCHULDENBERG","WISSENSCHAFT","SOMMERREIFEN"]', '[0,1,3,1,3,0,3,3,0,1,0,3,3,1,3,3,0,0,0,1,1]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(187, '["BEFALL","BENGEL"]', '[2,0,3]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(188, '["ACHSEL","BECHER"]', '[0,3,3]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(189, '["BANNER","EILAND"]', '[3,2,0]', 20, '2018-07-14 17:01:18', 1, 1, 1),
(190, '["ANTEIL","BRAUCH"]', '[2,2,0]', 20, '2018-07-14 17:01:18', 1, 1, 1),
(191, '["ANKAUF","GLOCKE"]', '[1,1,3]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(192, '["BECKEN","BALLON"]', '[2,2,0]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(193, '["PAROLE","AKZENT"]', '[3,3,3]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(194, '["REKORD","DISPUT"]', '[3,0,3]', 20, '2018-07-14 17:01:18', 1, 1, 1),
(195, '["KABELLEITUNG","SPEISEKAMMER","ANFAHRTSZEIT","HANDELSKETTE","WEINSCHLAUCH","ROHBAUMWOLLE"]', '[0,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(197, '["ARBEITSMARKT","GEMEINSCHAFT","ARBEITSSTROM","ORGELKONZERT","SPORTZENTRUM","ADVENTSKRANZ"]', '[2,0,2,3,1,0,0,0,0,0,0,0,0,2,0,0,2,3,0,0,0]', 140, '2018-07-14 17:01:18', 1, 1, 4),
(198, '["REKORD","ARTIST"]', '[2,0,1]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(200, '["KOPIERSCHUTZ","SPRINGFRUCHT","HUNGERSTREIK","SACHKENNTNIS","ZAUBERFORMEL","ANGEWOHNHEIT"]', '[0,0,0,0,0,0,2,0,0,0,0,3,1,1,0,0,0,2,0,3,0]', 140, '2018-07-14 17:01:18', 1, 1, 4),
(202, '["AUFSCHUB","NUTZTIER","ARMLEHNE","ABSENDER"]', '[0,2,1,3,1,0,3,3,0,0]', 120, '2018-07-14 17:01:18', 1, 0, 3),
(204, '["BRUDER","\\u00c4RZTIN"]', '[2,0,1]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(205, '["F\\u00c4HRTE","TERMIN"]', '[2,3,2]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(206, '["BETONUNG","ANBETUNG","ALLERGIE","BAUMHAUS"]', '[0,3,1,1,3,1,2,0,0,0]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(207, '["APOTHEKE","WOHNLAGE","ABSCHIED","ANWOHNER"]', '[2,0,0,1,2,0,1,0,1,2]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(208, '["BL\\u00c4SSE","BIZEPS"]', '[2,0,3]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(209, '["WEICHE","GER\\u00dcST"]', '[0,0,0]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(210, '["BODENSEE","PERSONAL","ADOPTION","ABSTRICH"]', '[3,1,2,3,1,3,0,2,2,0]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(211, '["ALTBAU","BL\\u00c4SSE"]', '[0,2,2]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(212, '["BALLON","GER\\u00dcST"]', '[2,3,2]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(213, '["BREMSWEG","ANDENKEN","R\\u00dcCKPASS","ATTENTAT"]', '[2,0,0,0,0,2,3,1,0,2]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(214, '["FEHLPROGNOSE","GEISTESKRAFT","ARBEITSPAUSE","BEREITSCHAFT","MOSAIKARBEIT","INFRAROTFILM"]', '[0,3,0,1,0,0,1,3,1,0,2,2,2,2,3,2,0,3,2,0,0]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(215, '["BR\\u00dcCKE","CHARME"]', '[1,1,1]', 20, '2018-07-14 17:01:18', 1, 0, 1),
(217, '["ZEITSTRAFE","HOCHSAISON"]', '[1,0,3,3,1]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(218, '["WOCHENGELD","LANDFLUCHT"]', '[2,3,1,1,0]', 60, '2018-07-14 17:01:18', 1, 1, 0),
(219, '["UNTERSEITE","SPEISEPLAN"]', '[3,0,3,3,1]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(220, '["FEINGUSS","R\\u00dcCKFALL","PHYSIKER","RESIDENZ","BERATUNG","HERZLAND"]', '[2,0,0,1,2,2,3,3,2,1,1,2,0,0]', 100, '2018-07-14 17:01:18', 1, 0, 0),
(221, '["VERSTECK","SAATZEIT","ADOPTION","AALSUPPE","ANOMALIE","DREIZACK"]', '[3,3,1,0,2,3,2,2,1,0,2,0,3,3]', 100, '2018-07-14 17:01:18', 1, 0, 0),
(222, '["BREMSWEG","ANDENKEN","R\\u00dcCKPASS","ATTENTAT"]', '[2,0,0,0,0,2,3,1,0,2]', 120, '2018-07-14 17:01:18', 1, 1, 3),
(223, '["L\\u00d6SUNG","ADVENT"]', '[3,3,2]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(225, '["WEINGARTEN","ANGELHAKEN"]', '[3,1,2,0,3]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(226, '["GEP\\u00c4CKNETZ","HEMDZIPFEL"]', '[0,0,0,2,0]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(227, '["KOMPROMISS","EXPEDITION"]', '[3,3,1,2,1]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(228, '["BENZIN","GER\\u00dcST"]', '[0,1,1]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(229, '["ANSPRUCH","ANH\\u00c4NGER"]', '[3,1,2,0]', 40, '2018-07-14 17:01:18', 1, 0, 2),
(231, '["ACHSLAST","ANOMALIE"]', '[1,3,0,1]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(232, '["ANHEBUNG","BANKFACH"]', '[0,3,2,0]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(233, '["BADEZEUG","AUFTRITT"]', '[2,0,0,0]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(234, '["R\\u00dcCKFALL","BEFUGNIS"]', '[2,1,1,3]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(235, '["HAUSFLUR","FORSCHER"]', '[0,3,2,1]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(236, '["ANWOHNER","ERDRINDE"]', '[1,2,3,2]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(237, '["PRUNKBAU","ALTSTADT"]', '[2,1,1,2]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(238, '["SCHMINKE","LAKRITZE"]', '[0,0,3,2]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(239, '["SOFTWARE","ANAGRAMM"]', '[1,2,2,2]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(240, '["HEIMKEHR","DIESEL\\u00d6L"]', '[0,2,1,1]', 40, '2018-07-14 17:01:18', 1, 1, 0),
(241, '["GRIPPEZEIT","KUNSTST\\u00dcCK"]', '[2,3,2,2,1]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(242, '["DUNKELHEIT","BAUMWURZEL"]', '[1,0,0,0,1]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(243, '["WASSERSCHI","STECHM\\u00dcCKE"]', '[2,3,2,3,3]', 60, '2018-07-14 17:01:18', 1, 1, 0),
(244, '["ROSTBEFALL","\\u00d6LPIPELINE"]', '[2,2,3,0,1]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(245, '["DIENSTAG","MODEHAUS"]', '[0,2,1,2]', 40, '2018-07-14 17:01:18', 1, 1, 0),
(246, '["ANHALTER","ABSTRICH"]', '[1,1,3,0]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(247, '["ABRIEB","ACHSEL"]', '[0,2,3]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(248, '["ABFALL","ABWURF"]', '[3,3,2]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(249, '["ERSATZMANN","EINLEITUNG"]', '[2,1,1,3,1]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(250, '["FISCHGR\\u00c4TE","BEKLEIDUNG"]', '[3,1,2,2,1]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(251, '["BREMSSCHUH","HARTWEIZEN"]', '[0,2,2,2,1]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(252, '["ANSPIELUNG","ABZWEIGUNG"]', '[3,3,0,3,3]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(253, '["ST\\u00dcCKLISTE","ATOMBUNKER"]', '[1,2,3,1,3]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(254, '["PARTYKLEID","SAHNEQUARK"]', '[1,2,3,0,1]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(255, '["STECKKARTE","AMTSDIENER"]', '[1,3,1,3,0]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(256, '["GARTENHAUS","FAHRWASSER"]', '[1,1,3,0,1]', 60, '2018-07-14 17:01:18', 1, 1, 0),
(257, '["JAGDREVIER","G\\u00dcTEKLASSE"]', '[0,2,0,2,3]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(258, '["ABSTAMMUNG","SAUERMILCH"]', '[2,0,2,3,2]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(259, '["RUNDFUNK","SCHNALLE"]', '[1,2,1,1]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(260, '["SCHREIBTISCH","URHEBERRECHT","PFLANZENKOST","OPERNKONZERT"]', '[1,3,2,1,3,0,1,2,3,0,2,0,1,0,0]', 160, '2018-07-14 17:01:18', 1, 0, 0),
(261, '["MOBILTELEFON","VOLKSSCHICHT","FAMILIENPASS","BRIEFWECHSEL"]', '[1,1,0,2,1,2,1,2,1,2,2,3,0,2,0]', 160, '2018-07-14 17:01:18', 1, 0, 0),
(262, '["TANKFAHRZEUG","JAHRESBEGINN","SCHMUCKSTEIN","FANTASYROMAN"]', '[1,0,2,0,2,0,0,1,0,1,2,1,1,0,0]', 160, '2018-07-14 17:01:18', 1, 0, 0),
(263, '["SOMMERREIFEN","GEMEINSCHAFT","ANTIBIOTIKUM","LUXUSWOHNUNG"]', '[2,2,1,0,3,1,1,2,0,2,0,0,0,0,2]', 160, '2018-07-14 17:01:18', 1, 0, 0),
(264, '["INHAFTIERUNG","RECHENANLAGE","BILDUNGSGANG","FORTBEWEGUNG"]', '[1,3,2,1,1,3,2,2,3,0,2,3,3,3,2]', 160, '2018-07-14 17:01:18', 1, 0, 0),
(265, '["LABORVERSUCH","PFLICHTTREUE","ZUGFAHRKARTE","PREISVORTEIL"]', '[2,3,3,3,0,3,2,1,3,2,0,3,2,1,3]', 160, '2018-07-14 17:01:18', 1, 0, 0),
(266, '["ABFAHRTSZEIT","ZEICHENSTIFT","GLASSPLITTER","IRRENANSTALT"]', '[2,3,3,0,1,0,3,2,0,1,3,0,3,2,0]', 160, '2018-07-14 17:01:18', 1, 1, 0),
(267, '["FEHLWURF","WAHLSIEG"]', '[0,3,2,2]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(268, '["NEUERWERBUNG","PRIVATSCHULE","LANDESWAPPEN","ANSCHLUSSZUG"]', '[3,3,2,2,1,3,3,3,2,2,1,2,0,0,1]', 160, '2018-07-14 17:01:18', 1, 0, 0),
(269, '["FRUCHTPRESSE","ABGABETERMIN","WERBEFELDZUG","ALTERSKLASSE"]', '[1,3,2,3,0,1,2,1,2,1,2,1,2,0,3]', 160, '2018-07-14 17:01:18', 1, 0, 0),
(270, '["FILTERKAFFEE","SCHOKORIEGEL","KETTENHANDEL","STAATSSCHULD"]', '[1,3,1,1,3,3,3,1,3,2,2,3,1,2,2]', 160, '2018-07-14 17:01:18', 1, 0, 0),
(271, '["FRUCHTKUCHEN","FANTASYROMAN","INVESTIERUNG","SCHREIKRAMPF"]', '[0,0,2,3,3,3,3,0,1,2,3,0,0,2,2]', 160, '2018-07-14 17:01:18', 1, 1, 0),
(272, '["SCHALLSCHUTZ","KOPIERSCHUTZ","REIFENPROFIL","GLAUBENSSATZ"]', '[2,2,0,1,0,1,1,3,0,1,2,0,0,0,0]', 160, '2018-07-14 17:01:18', 1, 1, 0),
(273, '["SCHLAFMITTEL","ZETTELKASTEN","MINERALWOLLE","ANZEIGETAFEL"]', '[0,3,0,1,1,2,2,3,1,1,0,3,2,0,0]', 160, '2018-07-14 17:01:18', 1, 0, 0),
(274, '["PREISAGENTUR","KAFFEEPULVER","ARBEITSWEISE","ELTERNBEIRAT"]', '[3,3,3,2,0,2,0,0,2,0,3,2,0,1,1]', 160, '2018-07-14 17:01:18', 1, 0, 0),
(275, '["ACHTELFINALE","MINUSZEICHEN","STATUSSYMBOL","FACKELSCHEIN"]', '[2,3,0,1,2,1,3,0,2,3,0,0,1,0,2]', 160, '2018-07-14 17:01:18', 1, 0, 0),
(277, '["FACHKONGRESS","NOTENZEICHEN","INSEKTENGIFT","PFEFFERSPRAY"]', '[3,0,2,0,2,2,1,2,3,1,1,0,1,0,0]', 160, '2018-07-14 17:01:18', 1, 0, 0),
(278, '["SONNENSCHUTZ","HEIMATMUSEUM","RECHTSGEBIET","STAATSSCHUTZ"]', '[3,2,2,1,0,1,2,0,2,1,3,3,1,1,1]', 160, '2018-07-14 17:01:18', 1, 0, 0),
(279, '["KOORDINATION","LAUGENBREZEL","FLASCHENWEIN","FINANZGRUPPE"]', '[1,3,3,1,0,1,0,0,2,0,0,0,3,3,1]', 160, '2018-07-14 17:01:18', 1, 0, 0),
(280, '["ALLTAGSLEBEN","ANFANGSPHASE","FILMAUFNAHME","ANTEILSRECHT"]', '[3,0,3,2,3,3,3,0,2,0,3,0,1,0,1]', 160, '2018-07-14 17:01:18', 1, 0, 0),
(282, '["DACHGESCHOSS","EHRENTREFFER","KERZENSCHEIN","ZYLINDERKOPF"]', '[0,1,0,3,0,3,1,2,1,1,3,0,0,1,1]', 160, '2018-07-14 17:01:18', 1, 0, 0),
(283, '["MENGENRABATT","GEBURTSDATUM","FEINSTRUKTUR","SPAZIERSTOCK"]', '[3,0,0,0,3,3,1,3,0,2,1,2,0,3,2]', 160, '2018-07-14 17:01:18', 1, 0, 0),
(284, '["STOFFWECHSEL","WINDSCHATTEN","NETTOGEWICHT","HUNGERSTREIK"]', '[2,3,0,1,1,3,1,1,2,3,0,3,0,3,0]', 160, '2018-07-14 17:01:18', 1, 0, 0),
(285, '["STAATSSCHATZ","SCHROTLADUNG","GEISTERSTADT","DUNKELKAMMER"]', '[1,1,2,1,3,3,0,2,1,3,0,0,0,2,0]', 160, '2018-07-14 17:01:18', 1, 1, 0),
(286, '["ERL\\u00d6SUNG","\\u00dcBERHANG","HAUPTZUG","WELTMEER"]', '[0,0,1,3,1,1,0,1,3,3]', 120, '2018-07-14 17:01:18', 1, 0, 0),
(288, '["ANBETUNG","RHYTHMUS","GLASEREI","DIKTATOR"]', '[0,0,3,2,3,2,2,2,3,3]', 120, '2018-07-14 17:01:18', 1, 0, 0),
(289, '["ATOMPILZ","ENDSTAND","BUCHCLUB","POSITION"]', '[1,0,3,0,2,0,2,0,0,0]', 120, '2018-07-14 17:01:18', 1, 0, 0),
(291, '["DOWNLOAD","ABSTRICH","KOHLRABI","KUHSTALL"]', '[0,0,1,3,3,2,3,0,3,1]', 120, '2018-07-14 17:01:18', 1, 0, 0),
(292, '["KRAWATTE","TANZSAAL","RUFWEITE","KOHLKOPF"]', '[3,0,1,2,3,1,2,2,3,0]', 120, '2018-07-14 17:01:18', 1, 1, 0),
(294, '["STADTTOR","ABWASSER","ALBTRAUM","AUGENLID"]', '[0,1,0,1,1,0,2,3,0,0]', 120, '2018-07-14 17:01:18', 1, 0, 0),
(295, '["TOILETTE","KALTLUFT","ANDENKEN","WILDFANG"]', '[1,0,0,1,1,1,3,2,2,3]', 120, '2018-07-14 17:01:18', 1, 0, 0),
(297, '["SPACHTEL","R\\u00dcCKFALL"]', '[1,1,1,3]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(299, '["GR\\u00dcNZEUG","LUTSCHER","PUTZFRAU","BENUTZER","HAARREIF","SPEICHEL"]', '[1,3,0,2,0,1,2,1,2,3,3,3,0,0]', 100, '2018-07-14 17:01:18', 1, 0, 0),
(301, '["JENSEITS","SETZLING","BAGUETTE","FRITEUSE","WILDGANS","UMTAUSCH"]', '[0,2,0,2,0,3,1,1,2,2,0,2,1,2]', 100, '2018-07-14 17:01:18', 1, 0, 0),
(302, '["WOHNSITZ","WESTWIND","REEDEREI","TESTFLUG","FACHMANN","GL\\u00dcHWEIN"]', '[2,2,3,0,3,2,0,0,1,2,1,0,1,0]', 100, '2018-07-14 17:01:18', 1, 0, 0),
(303, '["MUTATION","AMBULANZ","GASDRUCK","ALPHABET","KAUGUMMI","GYROSKOP"]', '[1,0,3,0,3,0,2,1,2,0,3,3,3,0]', 100, '2018-07-14 17:01:18', 1, 0, 0),
(304, '["FREIWURF","BANKFACH"]', '[2,0,1,2]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(305, '["NEBENWEG","ANH\\u00d6RUNG"]', '[0,2,0,2]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(306, '["HANDBUCH","WASCHB\\u00c4R"]', '[0,2,2,3]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(307, '["ZWANGSKURS","ROSTBEFALL"]', '[0,0,2,3,0]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(308, '["HIERARCHIE","FISCHGR\\u00c4TE"]', '[0,0,2,0,3]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(309, '["AUSBAU","AUFBAU"]', '[2,2,0]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(310, '["EIGELB","\\u00d6DLAND"]', '[3,2,3]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(311, '["B\\u00dcRGER","PUFFER"]', '[2,1,0]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(312, '["INGWER","DESIGN"]', '[3,3,2]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(313, '["\\u00d6LTANK","BETRUG"]', '[3,1,1]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(314, '["KLINIK","LIZENZ"]', '[2,0,1]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(315, '["ABHANG","DYNAMO"]', '[1,2,2]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(316, '["R\\u00d6TUNG","KAPSEL"]', '[0,0,2]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(317, '["ORAKEL","ZYKLUS"]', '[1,2,0]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(318, '["TR\\u00d6DEL","BESUCH"]', '[3,0,2]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(320, '["BIKINI","B\\u00dcRGER"]', '[0,0,3]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(321, '["HACKEN","VEKTOR"]', '[2,2,3]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(322, '["PRACHT","ADVENT"]', '[3,3,0]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(323, '["L\\u00d6SUNG","MOMENT"]', '[2,0,2]', 20, '2018-07-14 17:01:18', 1, 1, 0),
(324, '["KUPPLUNG","ARMBRUCH"]', '[2,1,1,0]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(325, '["EINM\\u00dcNDUNG","KOMBIZANGE"]', '[1,2,1,2,2]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(326, '["WASCHSALON","NAGELZANGE"]', '[2,2,3,3,3]', 60, '2018-07-14 17:01:18', 1, 0, 0),
(327, '["FALLOBST","BERATUNG","SEEBLICK","WACHBOOT","BETONUNG","BRAUHAUS"]', '[2,0,1,2,3,0,3,0,3,3,3,2,2,2]', 100, '2018-07-14 17:01:18', 1, 0, 0),
(328, '["SPEISE\\u00d6L","FACHTEXT","KRISTALL","EINSICHT","BUNGALOW","EISCREME"]', '[1,3,3,1,1,0,1,0,0,0,3,0,3,0]', 100, '2018-07-14 17:01:18', 1, 0, 0),
(329, '["LOTTERIE","FREQUENZ","HEIMKEHR","FRITEUSE","EINTRITT","DUMMHEIT"]', '[1,3,1,2,0,3,1,3,1,3,3,3,0,1]', 100, '2018-07-14 17:01:18', 1, 0, 0),
(330, '["FACHMANN","ROULETTE","VOR\\u00dcBUNG","KOCHBUCH","TESTFLUG","ROMANTIK"]', '[1,3,3,3,1,1,1,3,3,1,3,0,1,3]', 100, '2018-07-14 17:01:18', 1, 0, 0),
(331, '["HAUPTTOR","MUTATION","ENDSTAND","IMPEDANZ","HEFTCHEN","EPIDEMIE"]', '[1,2,0,0,0,1,0,3,0,2,1,3,0,0]', 100, '2018-07-14 17:01:18', 1, 0, 0),
(332, '["FISCHZUG","EISDIELE","INVENTAR","WAHNSINN","KONTRAST","BERGPFAD"]', '[1,0,0,1,1,0,3,3,3,1,3,3,1,1]', 100, '2018-07-14 17:01:18', 1, 0, 0),
(333, '["SCHUPPEN","ERZ\\u00c4HLER","AUFNAHME","TOILETTE","BLUTADER","ROULETTE"]', '[0,3,1,3,1,2,0,0,3,1,2,0,3,1]', 100, '2018-07-14 17:01:18', 1, 0, 0),
(334, '["EXFREUND","EINBLICK","R\\u00dcCKFALL","PULSADER","LEITBILD","VERDACHT"]', '[0,2,1,2,0,0,2,2,0,0,2,1,1,2]', 100, '2018-07-14 17:01:18', 1, 0, 0),
(335, '["WEISHEIT","GELDSACK","KREATION","AUSFAHRT","HOCHWALD","APFELMUS"]', '[1,2,3,0,0,2,2,2,0,2,2,2,0,1]', 100, '2018-07-14 17:01:18', 1, 1, 0),
(336, '["SCHLUCHT","BERGPFAD","AUTOBAHN","GOLFBALL"]', '[3,0,2,3,0,2,2,1,2,3]', 120, '2018-07-14 17:01:18', 1, 0, 0),
(337, '["SPEICHEL","VORSTAND","M\\u00dcLLMANN","STRAFTAT"]', '[0,0,1,2,3,3,0,2,1,0]', 120, '2018-07-14 17:01:18', 1, 0, 0),
(338, '["MESSERSPITZE","STATUSSYMBOL","VOLKSBILDUNG","SCHLEICHPFAD","WASSERVORRAT","HAMMELBRATEN"]', '[0,1,1,1,1,2,0,1,0,1,2,3,0,3,0,1,3,3,3,0,1]', 140, '2018-07-14 17:01:18', 1, 0, 0),
(339, '["GRUPPENZWANG","BRUTTOGEHALT","INNENSPIEGEL","ANSTANDSDAME","ANTIBIOTIKUM","ZUCKERWASSER"]', '[0,3,2,0,0,2,3,2,0,0,3,1,3,2,1,0,2,3,3,3,2]', 140, '2018-07-14 17:01:18', 1, 0, 0),
(340, '["SCHRIFTROLLE","ZELLENGEWEBE","HEFTPFLASTER","ABFAHRTSZEIT","SATTELKISSEN","PRIVATSCHULE"]', '[2,0,3,2,3,0,1,1,0,1,0,1,0,0,2,2,0,1,0,1,2]', 140, '2018-07-14 17:01:18', 1, 0, 0),
(341, '["NACHLASS","BUSLINIE","REITBAHN","LAUFGANG","KASCHMIR","BADETUCH"]', '[1,3,0,2,3,0,1,0,0,0,3,1,0,0]', 100, '2018-07-14 17:01:18', 1, 0, 0),
(342, '["ATHLETIN","BAUSTAHL"]', '[2,1,1,0]', 40, '2018-07-14 17:01:18', 1, 0, 0),
(343, '["VULKAN","BECKEN"]', '[3,2,2]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(344, '["PROFIT","ADVENT"]', '[1,1,2]', 20, '2018-07-14 17:01:18', 1, 0, 0),
(345, '["STRAFE","SCHACH"]', '[2,0,3]', 20, '2018-07-14 17:02:15', 1, 0, 0),
(346, '["PROFIT","FUTTER"]', '[0,0,2]', 20, '2018-07-15 14:15:13', 1, 0, 0),
(347, '["UMLUFT","GRANIT"]', '[0,0,2]', 20, '2018-07-15 14:15:13', 1, 0, 0),
(348, '["LEBENSFORM","KINDERBUCH"]', '[2,3,0,2,1]', 60, '2018-07-15 16:28:13', 1, 0, 0),
(349, '["KALKGEHALT","ZUSTIMMUNG"]', '[0,1,0,2,0]', 60, '2018-07-15 16:28:13', 1, 0, 0),
(350, '["KABRIOLETT","NAHVERKEHR"]', '[2,2,0,3,3]', 60, '2018-07-15 16:28:13', 1, 0, 0),
(351, '["MUNDDUSCHE","BERUFSWAHL"]', '[2,2,1,3,2]', 60, '2018-07-15 16:28:13', 1, 0, 0),
(352, '["PREISLIMIT","ANTIK\\u00d6RPER"]', '[0,2,3,1,1]', 60, '2018-07-15 16:36:21', 1, 0, 0),
(353, '["DRUCKWELLE","RADIOMUSIK"]', '[1,2,3,3,0]', 60, '2018-07-15 16:36:21', 1, 0, 0),
(354, '["SINGSTUNDE","ERNTEMONAT"]', '[0,2,0,0,0]', 60, '2018-07-15 16:36:21', 1, 1, 0),
(355, '["ABHANDLUNG","LADENPREIS"]', '[2,1,2,1,0]', 60, '2018-07-15 16:36:21', 1, 0, 0),
(356, '["SCHULANGST","BLITZLICHT"]', '[0,3,3,0,1]', 60, '2018-07-15 16:36:21', 1, 1, 0),
(357, '["\\u00dcBERSTUNDE","AUGENH\\u00d6HLE"]', '[0,1,2,0,2]', 60, '2018-07-15 16:36:21', 1, 0, 0),
(358, '["WARENLAGER","AMEISENB\\u00c4R"]', '[3,1,1,1,3]', 60, '2018-07-16 12:14:50', 1, 0, 0),
(359, '["KRATER","\\u00d6LBAUM"]', '[2,3,0]', 20, '2018-07-16 12:14:50', 1, 0, 0),
(360, '["GETRIEBE","WALDMAUS","ANMUTUNG","KRAWATTE","KOPFENDE","HEFTCHEN"]', '[2,0,0,1,3,2,0,2,0,0,3,0,2,0]', 100, '2018-07-16 12:14:50', 1, 0, 0),
(361, '["HAUTARZT","\\u00dcBELKEIT","ALBATROS","BOXKAMPF","DREHBUCH","GEWINNER"]', '[0,1,2,3,2,0,0,2,3,2,0,0,1,0]', 100, '2018-07-16 12:14:50', 1, 0, 0),
(362, '["NACHLASS","LUFTRAUM","BEWEGUNG","AUFDRUCK","BADETUCH","TRAGKORB"]', '[2,0,3,3,3,3,3,1,2,0,1,0,1,2]', 100, '2018-07-16 12:14:50', 1, 0, 0),
(363, '["ADRESSAT","FELDHASE","ERZFEIND","BANKFACH","MITTWOCH","LESEECKE"]', '[2,2,3,0,1,0,1,2,3,2,1,1,0,0]', 100, '2018-07-16 12:14:50', 1, 0, 0),
(364, '["RUNDFUNK","LUFTLOCH","F\\u00dcRSORGE","KREATION","STANDGAS","BR\\u00c4UNUNG"]', '[0,1,0,2,3,2,0,0,2,2,3,1,0,1]', 100, '2018-07-16 12:14:50', 1, 0, 0),
(365, '["ARMBRUCH","ANSCHLAG","HERZBLUT","NETZWERK","INVENTUR","WILDGANS"]', '[2,1,1,1,3,2,0,1,3,3,3,2,3,0]', 100, '2018-07-16 12:14:50', 1, 0, 0),
(366, '["FEHLWURF","GESCHIRR","VORMACHT","CHAMPION","ABGLEICH","AUSHILFE"]', '[0,3,2,3,2,0,1,0,0,0,1,1,2,1]', 100, '2018-07-16 12:14:50', 1, 0, 0),
(367, '["BOUTIQUE","BERGPFAD","PIERCING","SPUKHAUS","LACROSSE","RELIQUIE"]', '[3,0,0,3,1,2,3,0,1,2,2,0,1,1]', 100, '2018-07-16 12:14:50', 1, 0, 0),
(368, '["LEICHNAM","LEITBILD","NEBENWEG","H\\u00d6RWEITE","R\\u00dcCKFALL","LICHTUNG"]', '[3,1,1,2,0,0,1,2,2,2,0,2,3,1]', 100, '2018-07-16 15:12:47', 1, 0, 0),
(369, '["KERNFACH","ABENDROT","ERL\\u00d6SUNG","WINDPARK","BUNGALOW","BACKOFEN"]', '[1,2,3,1,3,2,3,2,3,2,1,3,1,1]', 100, '2018-07-16 15:32:38', 1, 0, 0),
(370, '["SPIONAGE","DUMMHEIT","PR\\u00c4PARAT","LAUFGANG","RANDZONE","SEKTGLAS"]', '[0,1,3,3,0,1,2,1,0,1,0,3,1,0]', 100, '2018-07-17 13:34:33', 1, 0, 0),
(371, '["LAUFBAHN","STAHLBAU","TIERPARK","STRAFTAT","SCHULWEG","SKIH\\u00dcTTE"]', '[1,2,0,2,2,2,2,0,1,2,1,2,1,0]', 100, '2018-07-17 19:43:16', 1, 0, 0),
(372, '["MESSROHR","BADEGAST","STRIEMEN","GESCH\\u00dcTZ","BAUSTOFF","EHEGATTE"]', '[1,2,2,2,2,3,0,3,1,1,0,2,1,1]', 100, '2018-07-22 20:16:56', 1, 0, 0),
(373, '["HAUSBANK","KONFETTI","MUNITION","MUNDWERK","VOR\\u00dcBUNG","EISCREME"]', '[1,3,2,2,2,2,1,1,1,0,3,3,3,1]', 100, '2018-07-22 20:16:56', 1, 0, 0),
(374, '["BLUTEGEL","GLASEREI","BEGABUNG","FIREWALL","BAHNNETZ","ARGUMENT"]', '[0,0,1,0,3,0,1,3,2,1,0,0,2,3]', 100, '2018-07-22 20:16:56', 1, 0, 0),
(375, '["MAJON\\u00c4SE","STADTRAT","FR\\u00dcHLING","SPIELART"]', '[2,1,2,3,1,0,0,0,0,0]', 120, '2018-07-22 20:16:56', 1, 0, 0),
(376, '["SCHIMMEL","WEGEGELD","WURMLOCH","BREMSWEG"]', '[1,2,0,3,3,3,0,1,0,3]', 120, '2018-07-22 20:16:56', 1, 0, 0),
(377, '["KUHMILCH","GANGSTER","RESULTAT","FISCHZUG"]', '[3,0,1,2,0,3,1,3,2,0]', 120, '2018-07-22 20:16:56', 1, 0, 0),
(378, '["ORIGINAL","ENDRUNDE","BEISTAND","ABTRETER"]', '[1,0,2,1,0,1,0,0,0,1]', 120, '2018-07-23 01:11:46', 1, 0, 0),
(379, '["RECHNUNG","SEEBLICK","PANORAMA","AUFSICHT"]', '[2,0,1,1,0,1,0,3,0,2]', 120, '2018-07-23 01:11:46', 1, 0, 0),
(380, '["SPACHTEL","ERDAPFEL","EIABLAGE","BERGLUFT"]', '[3,0,2,2,3,0,2,3,0,1]', 120, '2018-07-23 17:22:09', 1, 0, 0),
(381, '["GIPSBEIN","IMPEDANZ","BUSFAHRT","RACHEAKT"]', '[1,0,0,3,2,2,0,0,3,0]', 120, '2018-07-23 17:22:10', 1, 0, 0),
(382, '["LEITZAHL","FESTNETZ","TELESKOP","EWIGKEIT"]', '[2,2,3,0,2,2,0,2,3,3]', 120, '2018-07-23 17:22:10', 1, 0, 0),
(383, '["STADTTOR","ECKSTEIN","TOILETTE","SCHNEIDE"]', '[0,1,1,1,0,1,0,3,3,3]', 120, '2018-07-23 17:22:10', 1, 0, 0),
(384, '["HEUGABEL","BERGWERK","AUFPREIS","NUTZHOLZ"]', '[3,0,2,1,3,0,2,2,3,3]', 120, '2018-07-23 17:22:10', 1, 0, 0),
(385, '["LUXUSGUT","KOCHSALZ","STEINBAU","FREIWURF"]', '[1,1,2,1,3,0,0,1,1,1]', 120, '2018-07-23 17:26:38', 1, 0, 0),
(386, '["WALDEULE","EINTRITT","SCHLEIFE","SANKTION"]', '[2,2,3,1,2,3,0,0,0,3]', 120, '2018-07-23 17:26:38', 1, 0, 0),
(387, '["HILFERUF","ANEKDOTE","HOCHOFEN","K\\u00c4TZCHEN"]', '[3,0,1,2,0,3,3,1,0,1]', 120, '2018-07-25 10:04:54', 1, 0, 0),
(388, '["ISOLATOR","APOTHEKE","SCHATTEN","MESSGLAS"]', '[2,3,3,3,0,0,1,3,2,0]', 120, '2018-07-25 10:04:54', 1, 0, 0),
(389, '["PASSFOTO","GESPENST","ERGEBNIS","REITBAHN"]', '[0,1,3,3,1,3,1,2,1,3]', 120, '2018-07-25 10:04:54', 1, 0, 0),
(390, '["ORTSTEIL","GLUTR\\u00d6TE","FAHRZEIT","MOTORRAD"]', '[0,1,1,0,1,0,0,0,1,0]', 120, '2018-07-25 10:04:54', 1, 0, 0),
(391, '["REVOLVER","ESELSOHR","ZUGFAHRT","\\u00d6LEXPORT"]', '[1,1,3,3,2,0,2,1,2,2]', 120, '2018-07-25 10:04:54', 1, 0, 0),
(392, '["OZONLOCH","TERMINAL","TRAINING","BIERZELT"]', '[0,0,0,3,3,1,2,2,2,1]', 120, '2018-07-25 10:04:54', 1, 0, 0),
(393, '["STACHELBEERE","GRIECHENLAND","BESCHICHTUNG","REIFEPROZESS","LANDESKIRCHE","TEILPROTHESE"]', '[2,2,0,2,1,1,2,2,0,2,3,0,1,1,1,3,2,2,0,0,3]', 140, '2018-07-25 10:04:54', 1, 0, 0),
(394, '["SCHUTZANLAGE","LANDESWAPPEN","BOHRWERKZEUG","BOHNENSTANGE","ABSCHRECKUNG","PHASENMESSER"]', '[0,0,2,0,2,2,1,1,1,1,3,0,0,2,2,1,3,2,1,3,1]', 140, '2018-07-25 10:04:54', 1, 0, 0),
(395, '["POLIZEIWACHE","BILLARDTISCH","BUCHUMSCHLAG","KARTELLWESEN","REITERSTATUE","STRUKTURPLAN"]', '[1,2,1,0,3,1,0,0,3,1,2,1,3,2,3,0,2,1,1,3,1]', 140, '2018-07-25 10:04:54', 1, 0, 0),
(396, '["SATTELKISSEN","SCHMUCKSTEIN","PFLEGESTELLE","RECHTSGEBIET","WARENVERKEHR","ROHBAUMWOLLE"]', '[2,2,3,3,3,2,3,1,3,0,0,0,1,1,2,2,0,0,0,3,3]', 140, '2018-07-26 01:41:46', 1, 0, 0),
(397, '["FACHPERSONAL","AUSFLUGSZIEL","WOHNSIEDLUNG","EINSATZWAGEN","ANTRITTSREDE","SCHUTZGITTER"]', '[0,3,1,3,2,2,1,2,0,1,3,0,0,0,3,0,1,1,2,2,2]', 140, '2018-07-26 01:41:47', 1, 0, 0),
(398, '["LABORATORIUM","WARENAUTOMAT","WASSERWERFER","SPORTBERICHT","STAFFELPREIS","HOCHSEEJACHT"]', '[0,1,2,0,3,2,1,0,0,0,2,1,0,3,3,1,0,0,2,2,2]', 140, '2018-07-26 09:54:57', 1, 0, 0),
(399, '["EIGENBETRIEB","ZUNGENKRAMPF","KALIBRIERUNG","AUTOFRIEDHOF","KULTURBEUTEL","SCHREIKRAMPF"]', '[3,0,2,3,3,2,0,2,0,0,2,1,2,2,1,3,0,0,0,2,3]', 140, '2018-07-26 09:54:57', 1, 0, 0),
(400, '["PREISAGENTUR","KULTURSCHOCK","BEISPIELSATZ","BAUMWOLLTUCH","GEWERKSCHAFT","NEUERWERBUNG"]', '[3,3,3,3,2,3,3,0,1,3,1,2,0,2,3,0,0,1,2,0,1]', 140, '2018-07-26 19:23:30', 1, 0, 0),
(401, '["HINTERTREPPE","GLETSCHEREIS","DOPPELZIMMER","DIAPROJEKTOR","HAUPTLEITUNG","BRIEFWECHSEL"]', '[0,3,3,3,0,0,1,1,2,1,0,0,2,0,1,1,2,3,2,3,3]', 140, '2018-07-26 19:23:30', 1, 0, 0),
(402, '["KARATESCHLAG","MESSERSPITZE","SCHALLQUELLE","AUSSTECHFORM","PAPIERSTAPEL","GALGENSTRICK"]', '[1,3,0,1,3,2,0,3,1,2,1,3,2,2,2,0,3,3,1,3,3]', 140, '2018-07-28 15:49:16', 1, 0, 0),
(403, '["PERSONALCHEF","GAMMAZERFALL","MAGENSCHMERZ","FAHRERFLUCHT","ZITRUSFRUCHT","TROCKENRASUR"]', '[0,3,2,2,1,0,3,1,1,1,0,3,2,3,0,0,0,1,0,0,3]', 140, '2018-07-28 15:49:16', 1, 0, 0),
(404, '["KRISTALLVASE","PERLENSCHNUR","HERBSTWETTER","LUXUSWOHNUNG","KLAVIERMUSIK","SCHULAUFGABE"]', '[0,3,0,3,3,3,0,3,3,3,2,2,2,3,3,1,0,1,1,0,1]', 140, '2018-07-28 15:49:16', 1, 0, 0),
(405, '["SCHRIFTROLLE","STRAFPROZESS","PERSONALAKTE","DACHSCHIEFER","KUNDENBESUCH","NACHHOLSPIEL"]', '[1,3,3,0,2,3,1,0,1,3,1,3,2,2,2,3,2,1,3,1,3]', 140, '2018-07-28 18:03:45', 1, 0, 0),
(406, '["MORSEAPPARAT","OBERAUFSICHT","EINZELSTIMME","PARTEISPENDE","BAUSPARKASSE","STRICKARBEIT"]', '[2,0,2,0,1,1,3,2,3,2,2,3,3,2,0,1,3,1,2,3,2]', 140, '2018-07-29 00:59:36', 1, 0, 0),
(407, '["PLATZPATRONE","FEUERSBRUNST","PARTNERSTADT","NACKENSCHUTZ","ARBEITSSTROM","PRODUKTREIHE"]', '[2,2,0,3,2,2,2,2,1,0,0,3,2,2,0,0,0,0,0,0,2]', 140, '2018-07-29 00:59:36', 1, 0, 0),
(408, '["SAISONARBEIT","LORBEERBLATT","KRANKENTRAGE","PREISTABELLE","KLEBESCHICHT","FINGERGELENK"]', '[1,0,3,0,0,0,2,1,2,2,3,2,2,0,0,2,2,3,3,3,1]', 140, '2018-07-30 22:43:05', 1, 0, 0),
(409, '["PFLANZENFETT","KABELLEITUNG","KUNSTGALERIE","FESTPROGRAMM","LEHRERZIMMER","BANKSCHALTER"]', '[2,1,0,0,3,0,0,3,1,2,2,3,3,3,3,1,2,2,3,0,3]', 140, '2018-07-31 10:17:00', 1, 0, 0),
(410, '["PFLICHTTREUE","FILTERKAFFEE","GARTENPFLEGE","INFRAROTFILM","WILDWESTFILM","PROGRAMMCODE"]', '[0,3,3,1,2,2,1,2,0,2,0,3,3,2,0,0,0,0,0,2,1]', 140, '2018-07-31 10:17:00', 1, 0, 0),
(411, '["INSEKTENGIFT","SCHULDBEWEIS","SERVIERWAGEN","MITTELSCHULE","ZEICHENSTIFT","REPRODUKTION"]', '[3,3,2,0,2,1,0,0,3,1,1,1,3,2,3,3,0,2,0,0,0]', 140, '2018-07-31 10:17:00', 1, 0, 0),
(412, '["REGIONALLIGA","AUSGANGSLAGE","FORSTSCHADEN","HERZRHYTHMUS","GABELSTAPLER","LANDESHOHEIT"]', '[3,0,2,3,2,3,0,3,3,2,2,3,2,0,2,2,2,0,0,3,1]', 140, '2018-07-31 10:17:00', 1, 0, 0),
(413, '["MINERALWOLLE","ZWISCHENHIRN","FLASCHENPOST","STEUERERLASS","GEMEINSCHAFT","ALTERSKLASSE"]', '[0,0,3,0,3,3,2,2,0,2,2,1,2,2,1,2,2,0,0,3,1]', 140, '2018-08-01 13:12:07', 1, 0, 0),
(414, '["FLEISCHMARKT","RECHENANLAGE","STAMMKAPITAL","CHOREOGRAFIE","NEBENEINGANG","MUSIKTHEORIE"]', '[0,2,2,3,2,0,0,1,1,2,0,3,1,2,0,3,2,0,3,0,3]', 140, '2018-08-01 13:12:07', 1, 0, 0),
(415, '["FLEISCHWUNDE","ZEMENTFABRIK","WALDSCHNEISE","SERVOLENKUNG"]', '[3,3,2,1,1,3,0,3,3,1,0,0,1,1,1]', 160, '2018-08-01 13:12:07', 1, 0, 0),
(416, '["MOBILTELEFON","WOLKENFETZEN","SCHLUSSPFIFF","ARBEITSMARKT"]', '[3,1,0,2,2,2,2,1,3,2,1,3,1,2,1]', 160, '2018-08-01 13:12:07', 1, 0, 0),
(417, '["WINTERSAISON","WAFFENDIENST","SAMMELSTELLE","SCHULBILDUNG"]', '[2,3,3,3,2,1,3,2,2,3,2,3,0,3,2]', 160, '2018-08-01 14:10:48', 1, 0, 0),
(418, '["SCHALLSCHUTZ","ANSCHLUSSZUG","KONFIRMATION","TELEFONKARTE"]', '[1,1,3,3,1,2,0,3,1,2,1,1,1,1,1]', 160, '2018-08-01 14:10:48', 1, 0, 0),
(419, '["KRIEGSFLOTTE","STAATSPAPIER","KNOCHENZELLE","ENGLISCHKURS"]', '[3,1,1,3,2,1,3,1,1,3,2,2,2,1,0]', 160, '2018-08-01 18:26:23', 1, 0, 0),
(420, '["BERUFSGRUPPE","ABSTELLGLEIS","GENERALPROBE","NUDELGERICHT"]', '[3,0,1,1,2,1,0,3,2,2,0,2,2,1,3]', 160, '2018-08-01 22:37:53', 1, 0, 0),
(421, '["GESANGSTUNDE","WIRKUNGSGRAD","KUNSTEISBAHN","FRAUENVEREIN"]', '[0,0,3,1,0,1,3,3,0,2,0,0,2,1,2]', 160, '2018-08-03 11:22:51', 1, 0, 0),
(422, '["BAUCHLANDUNG","ZWANGSARBEIT","SPRACHSCHATZ","ZUCKERSTANGE"]', '[3,0,3,0,1,3,1,0,0,2,3,2,0,2,0]', 160, '2018-08-03 11:22:52', 1, 0, 0),
(423, '["GRENZSTATION","LINKSVERKEHR","STRAFPREDIGT","KRIMINALFILM"]', '[1,0,3,3,0,1,3,0,1,0,1,3,2,1,1]', 160, '2018-08-03 11:22:52', 1, 0, 0),
(424, '["RETTUNGSBOJE","WORTKREUZUNG","WAPPENSCHILD","FABRIKARBEIT"]', '[2,3,1,1,0,2,2,1,3,0,3,3,0,2,0]', 160, '2018-08-03 11:22:52', 1, 0, 0),
(425, '["BETONMISCHER","GEFRIERTRUHE","NAMENSVETTER","TAGESGERICHT"]', '[2,1,2,3,0,2,1,2,2,1,1,0,0,2,2]', 160, '2018-08-03 11:22:52', 1, 0, 0),
(426, '["SEEKARTE","HOFFNUNG","REFERENT","ARROGANZ","BOHRTURM","ZEITLAUF"]', '[3,2,1,0,0,1,3,1,1,1,3,2,3,2]', 100, '2018-08-03 11:22:52', 1, 0, 0),
(427, '["JAHRBUCH","WELTRUHM","TEEWURST","REINIGER","PHOSPHOR","MARKTTAG"]', '[2,1,1,2,3,1,0,1,2,2,1,1,0,0]', 100, '2018-08-03 18:00:54', 1, 0, 0),
(428, '["M\\u00dcLLMANN","HAUSHALT","PEITSCHE","DETEKTIV"]', '[2,1,3,0,1,3,2,0,0,1]', 120, '2018-08-03 18:00:54', 1, 0, 0),
(429, '["UNSICHERHEIT","BODENANALYSE","WADENSTRUMPF","JAHRESANFANG","ERGOTHERAPIE","WINTERDIENST"]', '[1,2,0,2,1,3,1,3,1,3,0,2,3,2,2,1,2,3,0,0,1]', 140, '2018-08-03 18:00:54', 1, 0, 0),
(430, '["RETUSCHIEREN","LUXUSARTIKEL","NATIONALBANK","BERECHTIGUNG","SILBERREIHER","MEERESSTRAND"]', '[1,2,0,0,0,3,1,0,2,0,2,1,3,1,3,1,3,2,2,1,2]', 140, '2018-08-04 00:08:37', 1, 0, 0),
(431, '["SEEKRANKHEIT","ALLESFRESSER","ENTZAUBERUNG","BILDUNGSGRAD"]', '[1,2,2,2,0,2,2,1,3,1,0,3,1,2,1]', 160, '2018-08-04 23:24:50', 1, 0, 0),
(432, '["PREISVERFALL","MARATHONLAUF","WISSENSCHAFT","SPIONAGENETZ"]', '[2,0,2,2,3,2,1,1,0,2,2,0,3,2,3]', 160, '2018-08-04 23:24:50', 1, 0, 0);
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

61
orga/test.sql Normal file
View File

@ -0,0 +1,61 @@
CREATE TABLE Cronjob (id INT AUTO_INCREMENT NOT NULL, intervalInMinutes INT NOT NULL, lastRun DATETIME NOT NULL, className LONGTEXT NOT NULL, lastSuccess DATETIME NOT NULL, errorMessage LONGTEXT NOT NULL, active TINYINT(1) NOT NULL, version INT DEFAULT 1 NOT NULL, discr VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE Code (id INT AUTO_INCREMENT NOT NULL, code VARCHAR(255) NOT NULL, creationDate DATETIME NOT NULL, isCacheable TINYINT(1) NOT NULL, version INT DEFAULT 1 NOT NULL, discriminator VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_817996E977153098 (code), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE UserCode (id INT NOT NULL, userId INT DEFAULT NULL, INDEX IDX_E2BA727E64B64DCC (userId), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE ChangeEmailCode (id INT NOT NULL, newEmail VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE Access (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(75) NOT NULL, beschreibung VARCHAR(255) NOT NULL, version INT DEFAULT 1 NOT NULL, UNIQUE INDEX UNIQ_FF893525E237E06 (name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE RegistrationCode (id INT NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE Role (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(75) NOT NULL, beschreibung VARCHAR(255) NOT NULL, version INT DEFAULT 1 NOT NULL, UNIQUE INDEX UNIQ_A1052C1B5E237E06 (name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE RoleUser (RoleId INT NOT NULL, UserId INT NOT NULL, INDEX IDX_2DDE86A9BF6EF8BE (RoleId), INDEX IDX_2DDE86A9631A48FA (UserId), PRIMARY KEY(RoleId, UserId)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE RoleAccess (RoleId INT NOT NULL, AccessId INT NOT NULL, INDEX IDX_337C2901BF6EF8BE (RoleId), INDEX IDX_337C2901A1A046DD (AccessId), PRIMARY KEY(RoleId, AccessId)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE RoleChildren (ParentId INT NOT NULL, ChildId INT NOT NULL, INDEX IDX_88554C92E9982EB8 (ParentId), INDEX IDX_88554C92CD4052DB (ChildId), PRIMARY KEY(ParentId, ChildId)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE UserSetting (id INT AUTO_INCREMENT NOT NULL, userId INT NOT NULL, name VARCHAR(255) NOT NULL, value LONGTEXT NOT NULL, lastUpdated BIGINT NOT NULL, version INT DEFAULT 1 NOT NULL, INDEX IDX_B63D87E164B64DCC (userId), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE User (id INT AUTO_INCREMENT NOT NULL, username VARCHAR(255) NOT NULL, password VARCHAR(128) NOT NULL, email VARCHAR(255) NOT NULL, activated TINYINT(1) NOT NULL, blocked TINYINT(1) NOT NULL, version INT DEFAULT 1 NOT NULL, UNIQUE INDEX UNIQ_7BFF7038F85E0677 (username), UNIQUE INDEX UNIQ_7BFF7038E7927C74 (email), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE UserAccess (UserId INT NOT NULL, AccessId INT NOT NULL, INDEX IDX_26623A76631A48FA (UserId), INDEX IDX_26623A76A1A046DD (AccessId), PRIMARY KEY(UserId, AccessId)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE RequestNewPasswordCode (id INT NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE Level (id INT AUTO_INCREMENT NOT NULL, words VARCHAR(255) NOT NULL, positions VARCHAR(255) NOT NULL, renderer INT NOT NULL, lastUpdated DATETIME NOT NULL, lang INT NOT NULL, deleted TINYINT(1) NOT NULL, difficulty INT NOT NULL, version INT DEFAULT 1 NOT NULL, UNIQUE INDEX levelCore (words, positions, renderer, lang), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE Word (id INT AUTO_INCREMENT NOT NULL, word LONGTEXT NOT NULL, created DATETIME NOT NULL, lastUpdated DATETIME NOT NULL, deleted TINYINT(1) NOT NULL, lang INT NOT NULL, checked INT NOT NULL, version INT DEFAULT 1 NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE Rating (id INT AUTO_INCREMENT NOT NULL, rating INT NOT NULL, version INT DEFAULT 1 NOT NULL, levelId INT DEFAULT NULL, authTokenId INT DEFAULT NULL, INDEX IDX_D1189E24D9801611 (levelId), INDEX IDX_D1189E24A1F3197E (authTokenId), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE AuthToken (id INT AUTO_INCREMENT NOT NULL, token LONGTEXT NOT NULL, name LONGTEXT NOT NULL, creationDate DATETIME DEFAULT NULL, version INT DEFAULT 1 NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
ALTER TABLE UserCode ADD CONSTRAINT FK_E2BA727E64B64DCC FOREIGN KEY (userId) REFERENCES User (id);
ALTER TABLE UserCode ADD CONSTRAINT FK_E2BA727EBF396750 FOREIGN KEY (id) REFERENCES Code (id) ON DELETE CASCADE;
ALTER TABLE ChangeEmailCode ADD CONSTRAINT FK_8FAE5EFBF396750 FOREIGN KEY (id) REFERENCES Code (id) ON DELETE CASCADE;
ALTER TABLE RegistrationCode ADD CONSTRAINT FK_96DE2014BF396750 FOREIGN KEY (id) REFERENCES Code (id) ON DELETE CASCADE;
ALTER TABLE RoleUser ADD CONSTRAINT FK_2DDE86A9BF6EF8BE FOREIGN KEY (RoleId) REFERENCES Role (id);
ALTER TABLE RoleUser ADD CONSTRAINT FK_2DDE86A9631A48FA FOREIGN KEY (UserId) REFERENCES User (id);
ALTER TABLE RoleAccess ADD CONSTRAINT FK_337C2901BF6EF8BE FOREIGN KEY (RoleId) REFERENCES Role (id);
ALTER TABLE RoleAccess ADD CONSTRAINT FK_337C2901A1A046DD FOREIGN KEY (AccessId) REFERENCES Access (id);
ALTER TABLE RoleChildren ADD CONSTRAINT FK_88554C92E9982EB8 FOREIGN KEY (ParentId) REFERENCES Role (id);
ALTER TABLE RoleChildren ADD CONSTRAINT FK_88554C92CD4052DB FOREIGN KEY (ChildId) REFERENCES Role (id);
ALTER TABLE UserSetting ADD CONSTRAINT FK_B63D87E164B64DCC FOREIGN KEY (userId) REFERENCES User (id);
ALTER TABLE UserAccess ADD CONSTRAINT FK_26623A76631A48FA FOREIGN KEY (UserId) REFERENCES User (id);
ALTER TABLE UserAccess ADD CONSTRAINT FK_26623A76A1A046DD FOREIGN KEY (AccessId) REFERENCES Access (id);
ALTER TABLE RequestNewPasswordCode ADD CONSTRAINT FK_27CF9C8BBF396750 FOREIGN KEY (id) REFERENCES Code (id) ON DELETE CASCADE;
ALTER TABLE Rating ADD CONSTRAINT FK_D1189E24D9801611 FOREIGN KEY (levelId) REFERENCES Level (id);
ALTER TABLE Rating ADD CONSTRAINT FK_D1189E24A1F3197E FOREIGN KEY (authTokenId) REFERENCES AuthToken (id);
INSERT INTO Role (name, beschreibung) VALUES ('gast', 'Kein aktives oder eingeloggtes Mitglied'); -- 1
INSERT INTO Role (name, beschreibung) VALUES ('user', 'Normales Mitglied'); -- 2
INSERT INTO Role (name, beschreibung) VALUES ('admin', 'Admin, darf alles'); -- 3
INSERT INTO RoleChildren (ParentId, ChildId) VALUES (2, 3);
INSERT INTO Access (name, beschreibung) VALUES ('offline', 'alles, was ein nicht eingeloggter User sehen darf'); -- 1
INSERT INTO Access (name, beschreibung) VALUES ('online', 'alles, was ein eingeloggter User sehen darf'); -- 2
INSERT INTO Access (name, beschreibung) VALUES ('default', 'darf jeder'); -- 3
INSERT INTO `Access` (`name`, `beschreibung`) VALUES ('admin', 'darf nur ein Admin'); -- 4
INSERT INTO RoleAccess (RoleId, AccessId) VALUES (1,1); -- gast - offline
INSERT INTO RoleAccess(RoleId, AccessId) VALUES (1,3); -- gast - default
INSERT INTO RoleAccess(RoleId, AccessId) VALUES (2,2); -- user - online
INSERT INTO RoleAccess(RoleId, AccessId) VALUES (2,3); -- user - default
INSERT INTO `RoleAccess` (`RoleId`, `AccessId`) VALUES (3, 4); -- admin - admin
INSERT INTO `Level` (`id`, `words`, `positions`, `renderer`, `lastUpdated`, `lang`, `deleted`, `difficulty`) VALUES
(15, '["ARCHIV","CHARME"]', '[1,1,3]', 20, '2018-07-14 17:01:18', 1, 0, 20),
(26, '["BODENSEE","ALARMRUF"]', '[3,2,0,3]', 40, '2018-07-14 17:01:18', 1, 0, 40),
(217, '["ZEITSTRAFE","HOCHSAISON"]', '[1,0,3,3,1]', 60, '2018-07-14 17:01:18', 1, 0, 60),
(220, '["FEINGUSS","R\\u00dcCKFALL","PHYSIKER","RESIDENZ","BERATUNG","HERZLAND"]', '[2,0,0,1,2,2,3,3,2,1,1,2,0,0]', 100, '2018-07-14 17:01:18', 1, 0, 100),
(24, '["BETONUNG","ANBETUNG","ALLERGIE","BAUMHAUS"]', '[0,3,1,1,3,1,2,0,0,0]', 120, '2018-07-14 17:01:18', 1, 0, 120),
(62, '["FEHLPROGNOSE","GEISTESKRAFT","ARBEITSPAUSE","BEREITSCHAFT","MOSAIKARBEIT","INFRAROTFILM"]', '[0,3,0,1,0,3,2,3,1,2,3,1,2,2,0,2,3,0,2,1,1]', 140, '2018-07-14 17:01:18', 1, 0, 140),
(260, '["SCHREIBTISCH","URHEBERRECHT","PFLANZENKOST","OPERNKONZERT"]', '[1,3,2,1,3,0,1,2,3,0,2,0,1,0,0]', 160, '2018-07-14 17:01:18', 1, 0, 160);

View File

@ -5,7 +5,8 @@
* Licensed under MIT Open Source * Licensed under MIT Open Source
*/ */
.top-bar-title { .top-bar-title {
white-space: nowrap; } white-space: nowrap;
}
#action-bar .close-listener { #action-bar .close-listener {
position: fixed; position: fixed;
@ -14,136 +15,197 @@
right: 0; right: 0;
bottom: 0; bottom: 0;
background: transparent; background: transparent;
z-index: 9000; } z-index: 9000;
}
#action-bar #responsive-menu .top-bar-right { #action-bar #responsive-menu .top-bar-right {
position: relative; position: relative;
text-align: right; text-align: right;
width: 100%; } width: 100%;
}
#action-bar .top-bar-right { #action-bar .top-bar-right {
width: auto; } width: auto;
#action-bar .top-bar-right .menu.action-bar a img + span { }
display: none; } #action-bar .top-bar-right .menu.action-bar a img + span {
#action-bar .top-bar-right .menu.action-bar .action { display: none;
position: relative; }
z-index: 9000; } #action-bar .top-bar-right .menu.action-bar .action {
#action-bar .top-bar-right .menu.action-bar .action.is-dropdown-submenu-parent { position: relative;
z-index: 9001; } z-index: 9000;
#action-bar .top-bar-right .menu.action-bar .action.hidden { }
display: none; } #action-bar .top-bar-right .menu.action-bar .action.is-dropdown-submenu-parent {
@media screen and (max-width: 24.9375em) { z-index: 9001;
#action-bar .top-bar-right .menu.action-bar .action.smedium { }
display: none; } } #action-bar .top-bar-right .menu.action-bar .action.hidden {
@media screen and (max-width: 39.9375em) { display: none;
#action-bar .top-bar-right .menu.action-bar .action li { }
display: table-cell; } @media screen and (max-width: 24.9375em) {
#action-bar .top-bar-right .menu.action-bar .action.medium { #action-bar .top-bar-right .menu.action-bar .action.smedium {
display: none; } } display: none;
@media screen and (max-width: 63.9375em) { }
#action-bar .top-bar-right .menu.action-bar .action.large { }
display: none; } } @media screen and (max-width: 39.9375em) {
#action-bar .top-bar-right .menu.action-bar .action.never { #action-bar .top-bar-right .menu.action-bar .action li {
display: none; } display: table-cell;
#action-bar .top-bar-right .menu.action-bar.hidden { }
display: inline-block; #action-bar .top-bar-right .menu.action-bar .action.medium {
position: absolute; display: none;
z-index: 9000; }
border: 1px solid #cacaca; }
padding: 0.2rem; @media screen and (max-width: 63.9375em) {
transform: translateX(-100%); #action-bar .top-bar-right .menu.action-bar .action.large {
text-align: left; } display: none;
#action-bar .top-bar-right .menu.action-bar.hidden .action.hidden { }
display: none; } }
#action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent { #action-bar .top-bar-right .menu.action-bar .action.never {
z-index: 9001; } display: none;
#action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent ul.is-dropdown-submenu { }
top: auto; } #action-bar .top-bar-right .menu.action-bar.hidden {
#action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent ul.is-dropdown-submenu > li.action, #action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent ul.is-dropdown-submenu > .close-listener { display: inline-block;
z-index: 9001; } position: absolute;
#action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent > a:after { z-index: 9000;
display: block; border: 1px solid #cacaca;
width: 0; padding: 0.2rem;
height: 0; transform: translateX(-100%);
border: 6px inset; text-align: left;
content: ""; }
border-bottom-width: 0; #action-bar .top-bar-right .menu.action-bar.hidden .action.hidden {
border-top-style: solid; display: none;
border-color: #ffffff transparent transparent; }
right: 5px; #action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent {
left: auto; z-index: 9001;
margin-top: -3px; } }
#action-bar .top-bar-right .menu.action-bar.hidden .action a { #action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent ul.is-dropdown-submenu {
white-space: nowrap; } top: auto;
#action-bar .top-bar-right .menu.action-bar.hidden .action a img { }
display: none; } #action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent ul.is-dropdown-submenu > li.action, #action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent ul.is-dropdown-submenu > .close-listener {
#action-bar .top-bar-right .menu.action-bar.hidden .action a img + span { z-index: 9001;
display: inherit; } }
@media print, screen and (min-width: 40em) { #action-bar .top-bar-right .menu.action-bar.hidden .action.is-dropdown-submenu-parent > a:after {
#action-bar .top-bar-right .menu.action-bar.hidden .action.medium { display: block;
display: none; } } width: 0;
@media print, screen and (min-width: 25em) { height: 0;
#action-bar .top-bar-right .menu.action-bar.hidden .action.smedium { border: 6px inset;
display: none; } } content: "";
@media print, screen and (min-width: 64em) { border-bottom-width: 0;
#action-bar .top-bar-right .menu.action-bar.hidden .action.large { border-top-style: solid;
display: none; } } border-color: #ffffff transparent transparent;
@media screen and (max-width: 24.9375em) { right: 5px;
#action-bar .top-bar-right .menu.action-bar.hidden .action.smedium { left: auto;
display: block; } margin-top: -3px;
#action-bar .top-bar-right .menu.action-bar.hidden .action.smedium.hidden { }
display: none; } } #action-bar .top-bar-right .menu.action-bar.hidden .action a {
@media screen and (max-width: 39.9375em) { white-space: nowrap;
#action-bar .top-bar-right .menu.action-bar.hidden .action.medium { }
display: block; } #action-bar .top-bar-right .menu.action-bar.hidden .action a img {
#action-bar .top-bar-right .menu.action-bar.hidden .action.medium.hidden { display: none;
display: none; } } }
@media screen and (max-width: 63.9375em) { #action-bar .top-bar-right .menu.action-bar.hidden .action a img + span {
#action-bar .top-bar-right .menu.action-bar.hidden .action.large { display: inherit;
display: block; } }
#action-bar .top-bar-right .menu.action-bar.hidden .action.large.hidden { @media print, screen and (min-width: 40em) {
display: none; } } #action-bar .top-bar-right .menu.action-bar.hidden .action.medium {
#action-bar .top-bar-right .menu.action-bar.hidden .action.never { display: none;
display: block; } }
#action-bar .top-bar-right .menu.action-bar.hidden .action.never.hidden { }
display: none; } @media print, screen and (min-width: 25em) {
#action-bar .top-bar-right .menu.action-bar.hidden .action.always { #action-bar .top-bar-right .menu.action-bar.hidden .action.smedium {
display: none; } display: none;
#action-bar .top-bar-right .menu .action { }
z-index: 100; } }
@media screen and (max-width: 39.9375em) { @media print, screen and (min-width: 64em) {
#action-bar .top-bar-right .menu .action a { #action-bar .top-bar-right .menu.action-bar.hidden .action.large {
width: 100%; } } display: none;
@media screen and (max-width: 39.9375em) { }
#action-bar .top-bar-right .menu .action a { }
padding-left: 0.68rem; } } @media screen and (max-width: 24.9375em) {
@media screen and (max-width: 24.9375em) { #action-bar .top-bar-right .menu.action-bar.hidden .action.smedium {
#action-bar .top-bar-right .menu .action a { display: block;
padding-left: 0.236rem; } } }
@media screen and (max-width: 39.9375em) { #action-bar .top-bar-right .menu.action-bar.hidden .action.smedium.hidden {
#action-bar .top-bar-right .menu .action:not(.is-dropdown-submenu-parent) a { display: none;
padding-right: 0.68rem; } } }
@media screen and (max-width: 24.9375em) { }
#action-bar .top-bar-right .menu .action:not(.is-dropdown-submenu-parent) a { @media screen and (max-width: 39.9375em) {
padding-right: 0.236rem; } } #action-bar .top-bar-right .menu.action-bar.hidden .action.medium {
#action-bar .top-bar-right .menu .action.img a { display: block;
padding-top: 0; } }
#action-bar .top-bar-right .menu .action.img a img { #action-bar .top-bar-right .menu.action-bar.hidden .action.medium.hidden {
vertical-align: inherit; display: none;
max-height: 1.4rem; } }
#action-bar .top-bar-right .menu > li > ul.is-dropdown-submenu { }
min-width: 0; } @media screen and (max-width: 63.9375em) {
#action-bar .top-bar-right .menu > li > ul.is-dropdown-submenu .action { #action-bar .top-bar-right .menu.action-bar.hidden .action.large {
display: inherit; } display: block;
#action-bar .top-bar-right .menu > li.opens-right > ul.is-dropdown-submenu { }
right: auto; #action-bar .top-bar-right .menu.action-bar.hidden .action.large.hidden {
left: auto; } display: none;
#action-bar .top-bar-right .menu > li.opens-right > ul.is-dropdown-submenu a { }
text-align: left; } }
#action-bar .top-bar-right .menu.action-bar.hidden .action.never {
display: block;
}
#action-bar .top-bar-right .menu.action-bar.hidden .action.never.hidden {
display: none;
}
#action-bar .top-bar-right .menu.action-bar.hidden .action.always {
display: none;
}
#action-bar .top-bar-right .menu .action {
z-index: 100;
}
@media screen and (max-width: 39.9375em) {
#action-bar .top-bar-right .menu .action a {
width: 100%;
}
}
@media screen and (max-width: 39.9375em) {
#action-bar .top-bar-right .menu .action a {
padding-left: 0.68rem;
}
}
@media screen and (max-width: 24.9375em) {
#action-bar .top-bar-right .menu .action a {
padding-left: 0.236rem;
}
}
@media screen and (max-width: 39.9375em) {
#action-bar .top-bar-right .menu .action:not(.is-dropdown-submenu-parent) a {
padding-right: 0.68rem;
}
}
@media screen and (max-width: 24.9375em) {
#action-bar .top-bar-right .menu .action:not(.is-dropdown-submenu-parent) a {
padding-right: 0.236rem;
}
}
#action-bar .top-bar-right .menu .action.img a {
padding-top: 0;
}
#action-bar .top-bar-right .menu .action.img a img {
vertical-align: inherit;
max-height: 1.4rem;
}
#action-bar .top-bar-right .menu > li > ul.is-dropdown-submenu {
min-width: 0;
}
#action-bar .top-bar-right .menu > li > ul.is-dropdown-submenu .action {
display: inherit;
}
#action-bar .top-bar-right .menu > li.opens-right > ul.is-dropdown-submenu {
right: auto;
left: auto;
}
#action-bar .top-bar-right .menu > li.opens-right > ul.is-dropdown-submenu a {
text-align: left;
}
.dropdown.menu > li.is-dropdown-submenu-parent > a:after { .dropdown.menu > li.is-dropdown-submenu-parent > a:after {
border-color: #ffffff transparent transparent; } border-color: #ffffff transparent transparent;
}
form { form {
position: relative; } position: relative;
}
.sending .sending-loader { .sending .sending-loader {
position: absolute; position: absolute;
@ -157,80 +219,103 @@ form {
bottom: 0; bottom: 0;
right: 0; right: 0;
z-index: 10; z-index: 10;
border-radius: 2px; } border-radius: 2px;
.sending .sending-loader .loader { }
position: absolute; } .sending .sending-loader .loader {
position: absolute;
}
.sending-loader { .sending-loader {
display: none; } display: none;
}
input.notEmpty:invalid {
background-color: lightcoral;
}
label { label {
position: relative; } position: relative;
label [type='text'], label [type='password'], label [type='date'], label [type='datetime'], label [type='datetime-local'], label [type='month'], label [type='week'], label [type='email'], label [type='number'], label [type='search'], label [type='tel'], label [type='time'], label [type='url'], label [type='color'], label textarea, label input[type=text], label input:not([type]) { }
display: block; label [type=text], label [type=password], label [type=date], label [type=datetime], label [type=datetime-local], label [type=month], label [type=week], label [type=email], label [type=number], label [type=search], label [type=tel], label [type=time], label [type=url], label [type=color], label textarea, label input[type=text], label input:not([type]) {
width: 100%; display: block;
height: 2.4375rem; width: 100%;
margin: 0 0 1rem; height: 2.4375rem;
padding: 0.5rem; margin: 0 0 1rem;
box-shadow: none !important; padding: 0.5rem;
font-size: 1rem; box-shadow: none !important;
font-weight: normal; font-size: 1rem;
line-height: 1.5; font-weight: normal;
border: none; line-height: 1.5;
border-bottom: solid black; border: none;
outline: 0; border-bottom: solid black;
margin-bottom: 15px; } outline: 0;
label [type='text']:focus, label [type='password']:focus, label [type='date']:focus, label [type='datetime']:focus, label [type='datetime-local']:focus, label [type='month']:focus, label [type='week']:focus, label [type='email']:focus, label [type='number']:focus, label [type='search']:focus, label [type='tel']:focus, label [type='time']:focus, label [type='url']:focus, label [type='color']:focus, label textarea:focus, label input[type=text]:focus, label input:not([type]):focus { margin-bottom: 15px;
border: none; }
box-shadow: none !important; label [type=text]:focus, label [type=password]:focus, label [type=date]:focus, label [type=datetime]:focus, label [type=datetime-local]:focus, label [type=month]:focus, label [type=week]:focus, label [type=email]:focus, label [type=number]:focus, label [type=search]:focus, label [type=tel]:focus, label [type=time]:focus, label [type=url]:focus, label [type=color]:focus, label textarea:focus, label input[type=text]:focus, label input:not([type]):focus {
border-bottom: solid black; } border: none;
label [type='text']:focus ~ span, label [type='text'].notEmpty:not(:focus) ~ span, label [type='password']:focus ~ span, label [type='password'].notEmpty:not(:focus) ~ span, label [type='date']:focus ~ span, label [type='date'].notEmpty:not(:focus) ~ span, label [type='datetime']:focus ~ span, label [type='datetime'].notEmpty:not(:focus) ~ span, label [type='datetime-local']:focus ~ span, label [type='datetime-local'].notEmpty:not(:focus) ~ span, label [type='month']:focus ~ span, label [type='month'].notEmpty:not(:focus) ~ span, label [type='week']:focus ~ span, label [type='week'].notEmpty:not(:focus) ~ span, label [type='email']:focus ~ span, label [type='email'].notEmpty:not(:focus) ~ span, label [type='number']:focus ~ span, label [type='number'].notEmpty:not(:focus) ~ span, label [type='search']:focus ~ span, label [type='search'].notEmpty:not(:focus) ~ span, label [type='tel']:focus ~ span, label [type='tel'].notEmpty:not(:focus) ~ span, label [type='time']:focus ~ span, label [type='time'].notEmpty:not(:focus) ~ span, label [type='url']:focus ~ span, label [type='url'].notEmpty:not(:focus) ~ span, label [type='color']:focus ~ span, label [type='color'].notEmpty:not(:focus) ~ span, label textarea:focus ~ span, label textarea.notEmpty:not(:focus) ~ span, label input[type=text]:focus ~ span, label input[type=text].notEmpty:not(:focus) ~ span, label input:not([type]):focus ~ span, label input:not([type]).notEmpty:not(:focus) ~ span { box-shadow: none !important;
top: -11px; border-bottom: solid black;
left: 0; }
bottom: 0; label [type=text]:focus ~ span, label [type=text].notEmpty:not(:focus) ~ span, label [type=password]:focus ~ span, label [type=password].notEmpty:not(:focus) ~ span, label [type=date]:focus ~ span, label [type=date].notEmpty:not(:focus) ~ span, label [type=datetime]:focus ~ span, label [type=datetime].notEmpty:not(:focus) ~ span, label [type=datetime-local]:focus ~ span, label [type=datetime-local].notEmpty:not(:focus) ~ span, label [type=month]:focus ~ span, label [type=month].notEmpty:not(:focus) ~ span, label [type=week]:focus ~ span, label [type=week].notEmpty:not(:focus) ~ span, label [type=email]:focus ~ span, label [type=email].notEmpty:not(:focus) ~ span, label [type=number]:focus ~ span, label [type=number].notEmpty:not(:focus) ~ span, label [type=search]:focus ~ span, label [type=search].notEmpty:not(:focus) ~ span, label [type=tel]:focus ~ span, label [type=tel].notEmpty:not(:focus) ~ span, label [type=time]:focus ~ span, label [type=time].notEmpty:not(:focus) ~ span, label [type=url]:focus ~ span, label [type=url].notEmpty:not(:focus) ~ span, label [type=color]:focus ~ span, label [type=color].notEmpty:not(:focus) ~ span, label textarea:focus ~ span, label textarea.notEmpty:not(:focus) ~ span, label input[type=text]:focus ~ span, label input[type=text].notEmpty:not(:focus) ~ span, label input:not([type]):focus ~ span, label input:not([type]).notEmpty:not(:focus) ~ span {
font-size: 11px; top: -11px;
opacity: 1; left: 0;
color: black; } bottom: 0;
label [type='text'] ~ span, label [type='password'] ~ span, label [type='date'] ~ span, label [type='datetime'] ~ span, label [type='datetime-local'] ~ span, label [type='month'] ~ span, label [type='week'] ~ span, label [type='email'] ~ span, label [type='number'] ~ span, label [type='search'] ~ span, label [type='tel'] ~ span, label [type='time'] ~ span, label [type='url'] ~ span, label [type='color'] ~ span, label textarea ~ span, label input[type=text] ~ span, label input:not([type]) ~ span { font-size: 11px;
position: absolute; opacity: 1;
pointer-events: none; color: black;
left: 10px; }
bottom: 10px; label [type=text] ~ span, label [type=password] ~ span, label [type=date] ~ span, label [type=datetime] ~ span, label [type=datetime-local] ~ span, label [type=month] ~ span, label [type=week] ~ span, label [type=email] ~ span, label [type=number] ~ span, label [type=search] ~ span, label [type=tel] ~ span, label [type=time] ~ span, label [type=url] ~ span, label [type=color] ~ span, label textarea ~ span, label input[type=text] ~ span, label input:not([type]) ~ span {
top: 7px; position: absolute;
transition: 0.2s ease all; pointer-events: none;
color: #626262; } left: 10px;
bottom: 10px;
top: 7px;
transition: 0.2s ease all;
color: #626262;
}
.listjs { .listjs {
position: relative; } position: relative;
.listjs label { }
display: inline-block; } .listjs label {
.listjs label input { display: inline-block;
margin-bottom: 0; } }
.listjs table { .listjs label input {
border-collapse: collapse; } margin-bottom: 0;
.listjs table thead tr th, .listjs table tfoot tr th { }
text-align: left; } .listjs table {
.listjs table thead tr th.sort, .listjs table tfoot tr th.sort { border-collapse: collapse;
cursor: pointer; } }
.listjs table tbody.list tr:first-child td { .listjs table thead tr th, .listjs table tfoot tr th {
border-top: solid 1px #696969; } text-align: left;
.listjs table tbody.list tr:last-child td { }
border-bottom: solid 1px #696969; } .listjs table thead tr th.sort, .listjs table tfoot tr th.sort {
.listjs table tbody.list tr td { cursor: pointer;
border-top: solid 1px #c8c8c8; }
padding: 0.3rem; } .listjs table tbody.list tr:first-child td {
.listjs ul.pagination { border-top: solid 1px #696969;
float: right; }
display: inline-block; .listjs table tbody.list tr:last-child td {
margin: 0; } border-bottom: solid 1px #696969;
.listjs ul.pagination li { }
display: inline-block; .listjs table tbody.list tr td {
padding-left: 5px; border-top: solid 1px #c8c8c8;
padding-right: 5px; padding: 0.3rem;
text-decoration: underline; } }
.listjs ul.pagination li.active, .listjs ul.pagination li.disabled { .listjs ul.pagination {
text-decoration: none; } float: right;
display: inline-block;
margin: 0;
}
.listjs ul.pagination li {
display: inline-block;
padding-left: 5px;
padding-right: 5px;
text-decoration: underline;
}
.listjs ul.pagination li.active, .listjs ul.pagination li.disabled {
text-decoration: none;
}
/** /**
* Foundation for Sites by ZURB * Foundation for Sites by ZURB
* Version 6.4.3 * Version 6.4.3
@ -238,18 +323,21 @@ label {
* Licensed under MIT Open Source * Licensed under MIT Open Source
*/ */
*, :after, :before { *, :after, :before {
box-sizing: inherit; } box-sizing: inherit;
}
html { html {
min-height: 100%; min-height: 100%;
width: 100%; width: 100%;
height: 100%; height: 100%;
font-size: 18px; font-size: 18px;
letter-spacing: 1px; } letter-spacing: 1px;
}
.max-height { .max-height {
height: 100%; height: 100%;
min-height: 100%; } min-height: 100%;
}
body { body {
margin: 0; margin: 0;
@ -262,16 +350,19 @@ body {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
background: #fefefe; background: #fefefe;
color: #0a0a0a; } color: #0a0a0a;
}
footer { footer {
border-top: #d8d8d8 solid 1px; border-top: #d8d8d8 solid 1px;
text-align: center; } text-align: center;
}
.top-bar .top-bar-title strong { .top-bar .top-bar-title strong {
vertical-align: middle; vertical-align: middle;
display: inline-block; display: inline-block;
/*margin-left: 8px;*/ } /*margin-left: 8px;*/
}
nav.top-bar { nav.top-bar {
color: #FFF; color: #FFF;
@ -279,40 +370,52 @@ nav.top-bar {
font-size: 20px; font-size: 20px;
box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 2px 9px 1px rgba(0, 0, 0, 0.12), 0 4px 2px -2px rgba(0, 0, 0, 0.2); box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 2px 9px 1px rgba(0, 0, 0, 0.12), 0 4px 2px -2px rgba(0, 0, 0, 0.2);
padding: 0.6rem; padding: 0.6rem;
display: block; } display: block;
}
.top-bar ul { .top-bar ul {
background: red !important; } background: red !important;
}
button.button, a.button { button.button, a.button {
border-radius: 2px; border-radius: 2px;
background-color: red; } background-color: red;
button.button.disabled, button.button.disabled:hover, button.button.disabled:focus, a.button.disabled, a.button.disabled:hover, a.button.disabled:focus { }
background-color: red; } button.button.disabled, button.button.disabled:hover, button.button.disabled:focus, a.button.disabled, a.button.disabled:hover, a.button.disabled:focus {
button.button:focus, button.button:hover, a.button:focus, a.button:hover { background-color: red;
background-color: #e00000; } }
button.button:focus, button.button:hover, a.button:focus, a.button:hover {
background-color: #e00000;
}
.fill-me { .fill-me {
display: flex; display: flex;
flex-direction: column; } flex-direction: column;
.fill-me.vertical { }
flex-direction: row; } .fill-me.vertical {
.fill-me .grow { flex-direction: row;
flex: 1; } }
.fill-me .grow {
flex: 1;
}
.flex-center { .flex-center {
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
display: flex; display: flex;
align-items: center; } align-items: center;
.flex-center > * { }
max-height: 100%; } .flex-center > * {
max-height: 100%;
}
.menu a, .dropdown.menu a { .menu a, .dropdown.menu a {
padding: 0.4rem 0.5rem; } padding: 0.4rem 0.5rem;
}
svg path { svg path {
fill: currentColor; } fill: currentColor;
}
div.mainContainer { div.mainContainer {
position: relative; position: relative;
@ -320,42 +423,52 @@ div.mainContainer {
max-width: 100%; max-width: 100%;
overflow: auto; overflow: auto;
flex: 1; flex: 1;
margin: 0.5rem; } margin: 0.5rem;
div.mainContainer > .row, div.mainContainer #main-content, div.mainContainer #site-content { }
position: absolute; div.mainContainer > .row, div.mainContainer #main-content, div.mainContainer #site-content {
width: 100%; position: absolute;
height: 100%; width: 100%;
top: 0; height: 100%;
bottom: 0; top: 0;
left: 0; bottom: 0;
right: 0; } left: 0;
right: 0;
}
.inline-block { .inline-block {
display: inline-block; } display: inline-block;
}
.right { .right {
float: right; } float: right;
}
#logo-img { #logo-img {
max-height: 2.2rem; } max-height: 2.2rem;
}
a { a {
text-decoration: none; text-decoration: none;
cursor: pointer; cursor: pointer;
color: inherit; } color: inherit;
}
a.hidden-link { a.hidden-link {
text-decoration: none; text-decoration: none;
color: inherit; } color: inherit;
}
label { label {
cursor: pointer; } cursor: pointer;
}
.align-right { .align-right {
text-align: right; } text-align: right;
}
.view-panel { .view-panel {
display: none; } display: none;
}
.loader { .loader {
left: 50%; left: 50%;
@ -363,150 +476,212 @@ label {
position: fixed; position: fixed;
-webkit-transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
text-align: center; } text-align: center;
.loader #spinner { }
box-sizing: border-box; .loader.inline {
stroke: #b71c1a; left: initial;
stroke-width: 3px; top: initial;
transform-origin: 50%; position: initial;
animation: line 1.6s cubic-bezier(0.4, 0, 0.2, 1) infinite, rotate 1.6s linear infinite; } -webkit-transform: initial;
transform: initial;
text-align: center;
display: inline;
}
.loader.small #spinner {
transform: scale(0.5);
}
.loader #spinner {
box-sizing: border-box;
stroke: #b71c1a;
stroke-width: 3px;
transform-origin: 50%;
animation: line 1.6s cubic-bezier(0.4, 0, 0.2, 1) infinite, rotate 1.6s linear infinite;
}
@keyframes rotate { @keyframes rotate {
from { from {
transform: rotate(0); } transform: rotate(0);
}
to { to {
transform: rotate(450deg); } } transform: rotate(450deg);
}
}
@keyframes line { @keyframes line {
0% { 0% {
stroke-dasharray: 2, 85.964; stroke-dasharray: 2, 85.964;
transform: rotate(0); } transform: rotate(0);
}
50% { 50% {
stroke-dasharray: 65.973, 21.9911; stroke-dasharray: 65.973, 21.9911;
stroke-dashoffset: 0; } stroke-dashoffset: 0;
}
100% { 100% {
stroke-dasharray: 2, 85.964; stroke-dasharray: 2, 85.964;
stroke-dashoffset: -65.973; stroke-dashoffset: -65.973;
transform: rotate(90deg); } } transform: rotate(90deg);
}
}
#print-content { #print-content {
display: none; } display: none;
}
.action-button { .action-button {
max-height: 1.7rem; max-height: 1.7rem;
margin-left: 0.4rem; margin-left: 0.4rem;
margin-right: 0.4rem; } margin-right: 0.4rem;
.action-button:hover { }
background: #e8e8e8; } .action-button:hover {
background: #e8e8e8;
}
.vcenter-container { .vcenter-container {
width: 100%; width: 100%;
height: 100%; height: 100%;
display: table; } display: table;
.vcenter-container .vcenter { }
vertical-align: middle; .vcenter-container .vcenter {
display: table-cell; vertical-align: middle;
flex-direction: column; display: table-cell;
justify-content: center; } flex-direction: column;
justify-content: center;
}
.max-width { .max-width {
width: 100%; } width: 100%;
}
input, button { input, button {
letter-spacing: 1px !important; } letter-spacing: 1px !important;
}
.no-padding { .no-padding {
padding: 0; padding: 0;
border: 0; } border: 0;
}
.center { .center {
text-align: center; } text-align: center;
}
@media print { @media print {
nav, .mainContainer, footer, #styles { nav, .mainContainer, footer, #styles {
display: none !important; } display: none !important;
}
#print-content { #print-content {
display: block !important; } } display: block !important;
}
}
.overflow-y-auto { .overflow-y-auto {
overflow-y: auto !important; } overflow-y: auto !important;
}
.row.no-after:after { .row.no-after:after {
content: initial; } content: initial;
}
.margin-bottom { .margin-bottom {
margin-bottom: 1rem; } margin-bottom: 1rem;
@media print, screen and (min-width: 25em) { }
.margin-bottom { @media print, screen and (min-width: 25em) {
margin-bottom: 2rem; } } .margin-bottom {
@media print, screen and (min-width: 40em) { margin-bottom: 2rem;
.margin-bottom { }
margin-bottom: 3rem; } } }
@media print, screen and (min-width: 64em) { @media print, screen and (min-width: 40em) {
.margin-bottom { .margin-bottom {
margin-bottom: 4rem; } } margin-bottom: 3rem;
@media screen and (min-width: 75em) { }
.margin-bottom { }
margin-bottom: 5rem; } } @media print, screen and (min-width: 64em) {
.margin-bottom {
margin-bottom: 4rem;
}
}
@media screen and (min-width: 75em) {
.margin-bottom {
margin-bottom: 5rem;
}
}
.font-small { .font-small {
font-size: 0.7em; } font-size: 0.7em;
}
.border-bottom { .border-bottom {
border-bottom: 1px solid #cacaca; } border-bottom: 1px solid #cacaca;
}
.border-right { .border-right {
border-right: 1px solid #cacaca; } border-right: 1px solid #cacaca;
}
.border-left { .border-left {
border-left: 1px solid #cacaca; } border-left: 1px solid #cacaca;
}
img.logo { img.logo {
vertical-align: inherit; vertical-align: inherit;
display: inline-block; display: inline-block;
height: auto; height: auto;
max-width: 1.1rem; max-width: 1.1rem;
margin-right: 2px; } margin-right: 2px;
}
.align-center { .align-center {
text-align: center; } text-align: center;
}
hr.separator { hr.separator {
margin: 1rem 0; } margin: 1rem 0;
}
.button-line { .button-line {
display: flex; } display: flex;
.button-line .button { }
flex: 1; .button-line .button {
margin-left: 1px; flex: 1;
margin-right: 1px; margin-left: 1px;
padding: 0.5rem 0.77rem; } margin-right: 1px;
padding: 0.5rem 0.77rem;
}
@media screen and (max-width: 24.9375em) { @media screen and (max-width: 24.9375em) {
.small-small { .small-small {
font-size: small; } } font-size: small;
}
}
select { select {
border: 0; border: 0;
padding: 0.3rem 0.3rem; } padding: 0.3rem 0.3rem;
}
.share-icon { .share-icon {
max-width: 1.5rem; max-width: 1.5rem;
margin: 0.1rem; } margin: 0.1rem;
}
.hidden { .hidden {
display: none; } display: none;
}
.no-transition { .no-transition {
transition: none !important; } transition: none !important;
}
img.action-image { img.action-image {
max-height: 1.4rem; max-height: 1.4rem;
cursor: pointer; } cursor: pointer;
}
img.back-button { img.back-button {
max-height: 0.6rem; max-height: 0.6rem;
margin-right: 0.2rem; margin-right: 0.2rem;
cursor: pointer; cursor: pointer;
vertical-align: inherit; } vertical-align: inherit;
}
.no-margin-bottom { .no-margin-bottom {
margin-bottom: 0; } margin-bottom: 0;
}

File diff suppressed because it is too large Load Diff

View File

@ -8,64 +8,85 @@
overflow: auto; overflow: auto;
background-color: black; background-color: black;
/* Fallback color */ /* Fallback color */
background-color: rgba(0, 0, 0, 0.56); } background-color: rgba(0, 0, 0, 0.56);
.background .modal { }
position: relative; .background .modal {
top: 50%; position: relative;
margin: auto; top: 50%;
width: 80%; margin: auto;
background-color: #fefefe; width: 80%;
transform: translateY(-50%); background-color: #fefefe;
padding: 0.5rem; transform: translateY(-50%);
display: flex; padding: 0.5rem;
flex-direction: column; display: flex;
max-height: 80%; flex-direction: column;
max-width: 1024px; } max-height: 80%;
@media screen and (max-width: 63.9375em) { max-width: 1024px;
.background .modal.small-margin { }
width: 90%; } } @media screen and (max-width: 63.9375em) {
@media screen and (max-width: 24.9375em) { .background .modal.small-margin {
.background .modal.small-margin { width: 90%;
width: 95%; } } }
.background .modal.max-small { }
max-width: 0px; } @media screen and (max-width: 24.9375em) {
.background .modal.max-smedium { .background .modal.small-margin {
max-width: 400px; } width: 95%;
.background .modal.max-medium { }
max-width: 640px; } }
.background .modal.max-large { .background .modal.max-small {
max-width: 1024px; } max-width: 0;
.background .modal.max-xlarge { }
max-width: 1200px; } .background .modal.max-smedium {
.background .modal.max-xxlarge { max-width: 400px;
max-width: 1440px; } }
.background .modal .title { .background .modal.max-medium {
font-weight: bold; max-width: 640px;
padding-bottom: 0.5rem; } }
.background .modal .content-container { .background .modal.max-large {
overflow-y: auto; max-width: 1024px;
max-height: 100%; } }
.background .modal .content-container .loader { .background .modal.max-xlarge {
position: static; max-width: 1200px;
transform: none; } }
.background .modal .close { .background .modal.max-xxlarge {
text-align: right; max-width: 1440px;
color: #aaa; }
float: right; .background .modal .title {
font-size: 28px; font-weight: bold;
font-weight: bold; padding-bottom: 0.5rem;
line-height: 1; } }
.background .modal .close:hover, .background .modal .close:focus { .background .modal .content-container {
color: black; overflow-y: auto;
text-decoration: none; max-height: 100%;
cursor: pointer; } }
.background .modal .modal-button-container { .background .modal .content-container .loader {
padding-top: 0.5rem; } position: static;
.background .modal .modal-button-container .button { transform: none;
margin-left: 0.2rem; }
margin-bottom: 0 !important; .background .modal .close {
padding: 0.6em 0.8em; } text-align: right;
@media screen and (max-width: 24.9375em) { color: #aaa;
.background .modal .modal-button-container .button { float: right;
margin-left: 0.1rem; font-size: 28px;
padding: 0.3em 0.5em; } } font-weight: bold;
line-height: 1;
}
.background .modal .close:hover, .background .modal .close:focus {
color: black;
text-decoration: none;
cursor: pointer;
}
.background .modal .modal-button-container {
padding-top: 0.5rem;
}
.background .modal .modal-button-container .button {
margin-left: 0.2rem;
margin-bottom: 0 !important;
padding: 0.6em 0.8em;
}
@media screen and (max-width: 24.9375em) {
.background .modal .modal-button-container .button {
margin-left: 0.1rem;
padding: 0.3em 0.5em;
}
}

View File

@ -7,11 +7,16 @@
.settings-container { .settings-container {
border: 1px solid black; border: 1px solid black;
border-radius: 2px; border-radius: 2px;
padding: 0.3rem; } padding: 0.3rem;
@media print, screen and (min-width: 40em) { }
.settings-container #settings-fragments-container { @media print, screen and (min-width: 40em) {
border-left: 1px solid #cacaca; } } .settings-container #settings-fragments-container {
.settings-container #settings-fragments-container #settings-fragments > * { border-left: 1px solid #cacaca;
display: none; } }
.settings-container #settings-fragments-container #settings-fragments > *.active { }
display: block; } .settings-container #settings-fragments-container #settings-fragments > * {
display: none;
}
.settings-container #settings-fragments-container #settings-fragments > *.active {
display: block;
}

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
<div class="max-height overflow-hidden"><div id=segment-leaf-template class="segment segment-leaf"><div class=leaf-element></div></div><div id=segment-parent-template class="segment segment-parent"><div class=child-container></div></div><div id=segment-row-template class="segment segment-row"><div class=child-container></div></div><div id=segment-triangle-template class="segment segment-triangle"><div class=child-container></div></div><div class=max-height><div class="show-when-won height-20 center flex-center"><b data-translation=won id=won-text></b></div><div class="flex-center height-60"><div id=level></div></div><div class="show-when-won flex-center height-20"><button class=button id=continue-button data-translation=continue></button></div></div></div> <div class="max-height overflow-hidden"><div id=segment-leaf-template class="segment segment-leaf"><div class=leaf-element></div></div><div id=segment-parent-template class="segment segment-parent"><div class=child-container></div></div><div id=segment-row-template class="segment segment-row"><div class=child-container></div></div><div id=segment-triangle-template class="segment segment-triangle"><div class=child-container></div></div><div class=max-height><div class="show-when-won height-20 center flex-center"><b data-translation=won id=won-text></b></div><div class="flex-center height-60"><div id=level></div></div><div class="show-when-won flex-center height-20"><button class="button max-width" id=continue-button data-translation=continue></button></div></div></div>

File diff suppressed because it is too large Load Diff

View File

@ -10,6 +10,8 @@ class DelayPromise extends Promise {
class ScaleHelper { class ScaleHelper {
scaleTo(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight) { scaleTo(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight) {
console.log("test");
margin = Helper.nonNull(margin, 10); margin = Helper.nonNull(margin, 10);
ignoreHeight = Helper.nonNull(ignoreHeight, false); ignoreHeight = Helper.nonNull(ignoreHeight, false);
ignoreWidth = Helper.nonNull(ignoreWidth, false); ignoreWidth = Helper.nonNull(ignoreWidth, false);

View File

@ -103,13 +103,14 @@ class Form {
let self = this; let self = this;
this.submitCallback = null; this.submitCallback = null;
this.errorCallback = function (errors) { this.errorCallback = async function (errors) {
self.setErrors(errors); await self.setErrors(errors);
}; };
formElem.addEventListener("submit", function (e) { formElem.addEventListener("submit", async function (e) {
console.log("submitting!", e);
e.preventDefault(); e.preventDefault();
self.doSubmit(e); await self.doSubmit(e);
}); });
for (let i = 0, n = formElem.elements.length; i < n; i++) { for (let i = 0, n = formElem.elements.length; i < n; i++) {
@ -187,6 +188,18 @@ class Form {
self.setIsBusy(false); self.setIsBusy(false);
for (let k in values) { for (let k in values) {
if (Helper.isNotNull(self.formElem.elements[k])) { if (Helper.isNotNull(self.formElem.elements[k])) {
if (Helper.isNotNull(self.formElem.elements[k].options) && Helper.isNotNull(values[k+"Options"]))
{
let options = self.formElem.elements[k].options;
for (let val in values[k+"Options"])
{
let option = document.createElement("option");
option.value = val;
option.innerText = values[k+"Options"][val];
options.add(option);
}
}
self.formElem.elements[k].value = Helper.htmlspecialcharsDecode(values[k]); self.formElem.elements[k].value = Helper.htmlspecialcharsDecode(values[k]);
if (Helper.isNotNull(values[k]) && (""+values[k]).trim() !== "") { if (Helper.isNotNull(values[k]) && (""+values[k]).trim() !== "") {
self.formElem.elements[k].classList.add("notEmpty"); self.formElem.elements[k].classList.add("notEmpty");
@ -200,7 +213,7 @@ class Form {
}); });
} }
setErrors(errors) { async setErrors(errors) {
let hasElem = false; let hasElem = false;
let firstError = null; let firstError = null;
@ -225,6 +238,7 @@ class Form {
} }
} }
} }
if (hasElem) { if (hasElem) {
this.formElem.querySelector("input[type=submit]").click(); this.formElem.querySelector("input[type=submit]").click();
} }
@ -279,6 +293,7 @@ class SettingsManager {
getSetting(name, defaultValue) { getSetting(name, defaultValue) {
const settings = this.getSettings(); const settings = this.getSettings();
if (Helper.isNotNull(settings[name])) { if (Helper.isNotNull(settings[name])) {
return settings[name].value; return settings[name].value;
} }
@ -310,6 +325,11 @@ class SettingsManager {
this._saveSettings(); this._saveSettings();
} }
hasSetting(name)
{
return Helper.nonNull(this._settings[name]);
}
_loadSettings() { _loadSettings() {
this._settings = localStorage.getItem(this._localStorageKey); this._settings = localStorage.getItem(this._localStorageKey);
if (this._settings === null) { if (this._settings === null) {
@ -334,15 +354,17 @@ class LocalStorageSettingsFragment extends Fragment {
let res = super.onFirstStart(); let res = super.onFirstStart();
let settings = this.findBy(".setting", true); let settings = this.findBy(".setting", true);
const settingsManager = SettingsManager.getInstance(); const settingsManager = SettingsManager.getInstance();
for (let i = 0, n = settings.length; i < n; i++) {
for (let i = 0; i < settings.length; i++) {
let setting = settings[i]; let setting = settings[i];
const name = setting.name; const name = setting.name;
let value = settingsManager.getSetting(name); let value = settingsManager.getSetting(name);
let isCheckable = false; let isCheckable = false;
if (setting instanceof HTMLInputElement && (setting.type === 'checkbox' || setting.type === 'radio')) { if (setting instanceof HTMLInputElement && (setting.type === 'checkbox' || setting.type === 'radio')) {
isCheckable = true; isCheckable = true;
} }
if (Helper.isNull(value) && Helper.isNotNull(settings[i]["dataset"]["default"])) { if (!settingsManager.hasSetting(name) && Helper.isNotNull(settings[i]["dataset"]["default"])) {
value = setting["dataset"]["default"]; value = setting["dataset"]["default"];
if (Helper.isNotNull(setting["dataset"]["defaultTranslateable"])) { if (Helper.isNotNull(setting["dataset"]["defaultTranslateable"])) {
@ -383,7 +405,6 @@ class LocalStorageSettingsFragment extends Fragment {
delete setting["dataset"]["translation"]; delete setting["dataset"]["translation"];
}); });
} }
return res; return res;
} }
} }
@ -709,7 +730,7 @@ class ListHelper {
class SettingsSite extends AbstractSite { class SettingsSite extends AbstractSite {
constructor(siteManager) { constructor(siteManager) {
super(siteManager, 'public/html/settings.html', "settings"); super(siteManager, 'core/html/settings.html', "settings");
for (let k in SettingsSite.settingsFragments) { for (let k in SettingsSite.settingsFragments) {
this.addSettingsFragment(k, new SettingsSite.settingsFragments[k](this)); this.addSettingsFragment(k, new SettingsSite.settingsFragments[k](this));
} }
@ -785,10 +806,10 @@ SettingsSite.shouldAddSettingsSite = true;
InitPromise.addPromise(function (app) { InitPromise.addPromise(function (app) {
if (SettingsSite.shouldAddSettingsSite) { if (SettingsSite.shouldAddSettingsSite) {
app.addDeepLink("settings", SettingsSite.name); app.addDeepLink("settings", SettingsSite);
let settingsAction = new MenuAction("settings", function () { let settingsAction = new MenuAction("settings", function () {
app.startSite(SettingsSite.name); app.startSite(SettingsSite);
}, MenuAction.SHOW_FOR_LARGE, 10000); }, MenuAction.SHOW_FOR_LARGE, 10000);
settingsAction.setIcon("img/settings.png"); settingsAction.setIcon("img/settings.png");
app.addDefaultAction(settingsAction); app.addDefaultAction(settingsAction);

View File

@ -36,6 +36,10 @@ class MenuAction {
this._shouldTranslate = shouldTranslate; this._shouldTranslate = shouldTranslate;
} }
getShowFor(){
return this.showFor;
}
getTitle() getTitle()
{ {
return this.title; return this.title;
@ -55,7 +59,7 @@ class MenuAction {
} }
if (removeCopies) if (removeCopies)
{ {
for (let i = 0, n = this._copies.length; i < n; i++) { for (let i = 0; i < this._copies.length; i++) {
this._copies[i].remove(); this._copies[i].remove();
} }
} }
@ -203,7 +207,7 @@ class Menu {
this.sortActions(); this.sortActions();
let actionElements = []; let actionElements = [];
for (let i = 0, n = this.actions.length; i < n; i++) { for (let i = 0; i < this.actions.length; i++) {
let element = this.renderAction(this.actions[i]); let element = this.renderAction(this.actions[i]);
this.actions[i]._htmlElement = element; this.actions[i]._htmlElement = element;
actionElements.push(element); actionElements.push(element);
@ -310,7 +314,7 @@ class Menu {
_getElementsForAction(action){ _getElementsForAction(action){
let elements = []; let elements = [];
for (let i = 0, n = this.parentElements.length; i < n; i++) { for (let i = 0; i < this.parentElements.length; i++) {
let elem = this.parentElements[i].querySelector("[data-id=\""+action.getId()+"\"]"); let elem = this.parentElements[i].querySelector("[data-id=\""+action.getId()+"\"]");
Helper.isNull(elem) || elements.push(elem); Helper.isNull(elem) || elements.push(elem);
} }
@ -319,6 +323,7 @@ class Menu {
updateAction(action) updateAction(action)
{ {
console.log("update action here!");
let oldElements = this._getElementsForAction(action); let oldElements = this._getElementsForAction(action);
if (oldElements.length === 0) if (oldElements.length === 0)
{ {
@ -328,7 +333,7 @@ class Menu {
let element = this.renderAction(action); let element = this.renderAction(action);
action._htmlElement = element; action._htmlElement = element;
for (let i = 0, n = oldElements.length; i < n; i++) { for (let i = 0; i < oldElements.length; i++) {
oldElements[i].replaceWith(Helper.cloneNode(element)); oldElements[i].replaceWith(Helper.cloneNode(element));
} }
} }
@ -402,7 +407,7 @@ class Submenu extends Menu
if (Helper.isNotNull(this.parentElements)) if (Helper.isNotNull(this.parentElements))
{ {
let self = this; let self = this;
for (let i = 0, n = this.parentElements.length; i < n; i++) { for (let i = 0; i < this.parentElements.length; i++) {
let closeListener = document.createElement("div"); let closeListener = document.createElement("div");
closeListener.classList.add("close-listener"); closeListener.classList.add("close-listener");
closeListener.onclick = function(e){ closeListener.onclick = function(e){
@ -973,7 +978,7 @@ class Helper {
static encodeToBase(stringToEncode, base) { static encodeToBase(stringToEncode, base) {
let encodedString = ""; let encodedString = "";
let charlength = Math.floor(Math.log(265) / Math.log(base)); let charlength = Math.floor(Math.log(265) / Math.log(base));
for (let i = 0, n = stringToEncode.length; i < n; i++) { for (let i = 0; i < stringToEncode.length; i++) {
let value = stringToEncode.charCodeAt(i).toString(base); let value = stringToEncode.charCodeAt(i).toString(base);
let joinLength = value.length % charlength; let joinLength = value.length % charlength;
if (joinLength > 0) { if (joinLength > 0) {
@ -1494,7 +1499,6 @@ class ActionBarMenu extends Menu {
responsiveMenu.firstElementChild.addEventListener("click", function (e) { responsiveMenu.firstElementChild.addEventListener("click", function (e) {
if (e.target === responsiveMenu.firstElementChild && Helper.isNotNull(ActionBarMenu.currentMenu)) { if (e.target === responsiveMenu.firstElementChild && Helper.isNotNull(ActionBarMenu.currentMenu)) {
ActionBarMenu.currentMenu.close(); ActionBarMenu.currentMenu.close();
} }
} }
); );
@ -1504,7 +1508,7 @@ class ActionBarMenu extends Menu {
static _getCurrentSize() { static _getCurrentSize() {
let matched; let matched;
for (let i = 0, n = ActionBarMenu.queries.length; i < n; i++) { for (let i = 0; i < ActionBarMenu.queries.length; i++) {
let query = ActionBarMenu.queries[i]; let query = ActionBarMenu.queries[i];
if (matchMedia(query.value).matches) { if (matchMedia(query.value).matches) {
@ -1519,12 +1523,6 @@ class ActionBarMenu extends Menu {
} }
} }
renderLiElement(aElement, action) {
let liElement = super.renderLiElement(aElement, action);
liElement.classList.add(action.showFor);
return liElement;
}
static filterVisibleElements(elements) { static filterVisibleElements(elements) {
let visibleElements = []; let visibleElements = [];
for (let i = 0, n = elements.length; i < n; i++) { for (let i = 0, n = elements.length; i < n; i++) {
@ -1535,12 +1533,18 @@ class ActionBarMenu extends Menu {
return visibleElements; return visibleElements;
} }
renderLiElement(aElement, action) {
let liElement = super.renderLiElement(aElement, action);
liElement.classList.add(action.getShowFor());
return liElement;
}
updateToggleButton() { updateToggleButton() {
let size = ActionBarMenu._getCurrentSize(); let size = ActionBarMenu._getCurrentSize();
let firstParentElement = this.parentElements[0]; let firstParentElement = this.parentElements[0];
if (ActionBarMenu.filterVisibleElements(firstParentElement.getElementsByClassName(Menu.SHOW_FOR_LARGE)).length > 0 && (size === "medium" || size === "smedium" || size === "small") || if ((size === "medium" || size === "smedium" || size === "small") && ActionBarMenu.filterVisibleElements(firstParentElement.getElementsByClassName(Menu.SHOW_FOR_LARGE)).length > 0 ||
ActionBarMenu.filterVisibleElements(firstParentElement.getElementsByClassName(Menu.SHOW_FOR_MEDIUM)).length > 0 && (size === "smedium" || size === "small") || (size === "smedium" || size === "small") && ActionBarMenu.filterVisibleElements(firstParentElement.getElementsByClassName(Menu.SHOW_FOR_MEDIUM)).length > 0 ||
ActionBarMenu.filterVisibleElements(firstParentElement.getElementsByClassName(Menu.SHOW_FOR_SMEDIUM)).length > 0 && (size === "small") || (size === "small") && ActionBarMenu.filterVisibleElements(firstParentElement.getElementsByClassName(Menu.SHOW_FOR_SMEDIUM)).length > 0 ||
ActionBarMenu.filterVisibleElements(firstParentElement.getElementsByClassName(Menu.SHOW_NEVER)).length > 0) { ActionBarMenu.filterVisibleElements(firstParentElement.getElementsByClassName(Menu.SHOW_NEVER)).length > 0) {
document.getElementById("responsive-menu-toggle").style.display = 'block'; document.getElementById("responsive-menu-toggle").style.display = 'block';
} else { } else {
@ -1576,7 +1580,6 @@ class ActionBarMenu extends Menu {
} }
} }
removeAction(action) { removeAction(action) {
let res = super.removeAction(action); let res = super.removeAction(action);
this.updateToggleButton(); this.updateToggleButton();
@ -1744,7 +1747,7 @@ class Context {
} }
} }
class AbstractSite$1 extends Context { class AbstractSite extends Context {
constructor(siteManager, view, deepLink) { constructor(siteManager, view, deepLink) {
super(view); super(view);
@ -1987,7 +1990,7 @@ class SiteManager {
} }
startSite(siteConstructor, paramsPromise) { startSite(siteConstructor, paramsPromise) {
if (!(siteConstructor.prototype instanceof AbstractSite$1)) if (!(siteConstructor.prototype instanceof AbstractSite))
{ {
throw { throw {
"error": "wrong class given! Expected AbstractSite, given "+siteConstructor.name "error": "wrong class given! Expected AbstractSite, given "+siteConstructor.name
@ -2171,7 +2174,7 @@ class SiteManager {
} }
} }
class PauseSite extends AbstractSite$1 { class PauseSite extends AbstractSite {
onConstruct(args) { onConstruct(args) {
let pausedElement = null; let pausedElement = null;
@ -3522,22 +3525,31 @@ class Prioritised {
this.prioResult = -1; this.prioResult = -1;
this.callback = null; this.callback = null;
this.hasResult = false; this.hasResult = false;
this.highestPrio = -1;
let self = this; let self = this;
this.callbackCalledPromise = new Promise(function (resolver) { this.callbackCalledPromise = new Promise(function (resolver) {
self.callbackCalledPromiseResolver = resolver; self.callbackCalledPromiseResolver = resolver;
}); });
this.endPromise = new Promise(function (resolver) {
self.endPromiseResolver = resolver;
});
this.setCallback(callback); this.setCallback(callback);
for (let k in resultPromises) { for (let k in resultPromises) {
resultPromises[k].then(function (res) { this.registerResultPromise(k, resultPromises[k]);
self.setResult(k, res);
});
} }
} }
setResult(prio, result) { async registerResultPromise(prio, promise) {
this.highestPrio = Math.max(prio, this.highestPrio);
let res = await Promise.resolve(promise);
this._setResult(prio, res);
}
_setResult(prio, result) {
if (this.prioResult <= prio || !this.hasResult) { if (this.prioResult <= prio || !this.hasResult) {
this.hasResult = true; this.hasResult = true;
@ -3547,6 +3559,12 @@ class Prioritised {
this.callback(result, prio, this); this.callback(result, prio, this);
this.callbackCalledPromiseResolver(); this.callbackCalledPromiseResolver();
} }
if (prio == this.highestPrio) {
console.log("endPromise resolved!");
this.endPromiseResolver();
}
} }
} }
@ -3561,6 +3579,10 @@ class Prioritised {
getCallbackCalledPromise() { getCallbackCalledPromise() {
return this.callbackCalledPromise; return this.callbackCalledPromise;
} }
getEndPromise() {
return this.endPromise;
}
} }
class ScriptLoader { class ScriptLoader {
@ -4033,7 +4055,7 @@ class DBTranslator extends Translator {
function applyPolyfills(){ function applyPolyfills(){
if (!String.prototype.format) { if (!String.prototype.format) {
String.prototype.format = function (args) { String.prototype["format"] = function (args) {
return this.replace(/{(\d+)}/g, function (match, number) { return this.replace(/{(\d+)}/g, function (match, number) {
return args[number] !== undefined return args[number] !== undefined
? args[number] ? args[number]
@ -4042,7 +4064,7 @@ function applyPolyfills(){
}); });
}; };
} }
Object.assign = Helper.nonNull(Object.assign, function (base, obj) { Object["assign"] = Helper.nonNull(Object["assign"], function (base, obj) {
base = Helper.nonNull(base, {}); base = Helper.nonNull(base, {});
if (obj === null || typeof(obj) !== 'object' || 'isActiveClone' in obj) if (obj === null || typeof(obj) !== 'object' || 'isActiveClone' in obj)
return base; return base;
@ -4076,7 +4098,6 @@ function applyPolyfills(){
} }
if (HTMLElement) { if (HTMLElement) {
HTMLElement.prototype["fadeOut"] = Helper.nonNull(HTMLElement.prototype["fadeOut"], HTMLElement.prototype["fadeOut"] = Helper.nonNull(HTMLElement.prototype["fadeOut"],
function (time, effect, delay) { function (time, effect, delay) {
time = Helper.nonNull(time, 0.5); time = Helper.nonNull(time, 0.5);
@ -4212,7 +4233,7 @@ function applyPolyfills(){
}); });
var fetch = Helper.nonNull(fetch, function (url) { window["fetch"] = Helper.nonNull(window["fetch"], function (url) {
console.log("customFetch", url); console.log("customFetch", url);
let request = null; let request = null;
if (window.XMLHttpRequest) { // Mozilla, Safari, ... if (window.XMLHttpRequest) { // Mozilla, Safari, ...
@ -4253,4 +4274,4 @@ function applyPolyfills(){
}); });
} }
export { App, ChainAble, CookieCompliance, ConfirmDialog, Dialog, FlashMessenger, AbstractService, AbstractGapiResponse, Achievement, AchievementList, GameService, GapiPlayer, Leaderboard, Score, GapiHandler, Helper, InitPromise, ActionBarMenu, Menu, MenuAction, OpenSubmenuAction, Submenu, MyDb, Prioritised, ScriptLoader, CopyShareButton, ShareButton, ShareManager, SmsShareButton, TelegramShareButton, WhatsappShareButton, SimpleWS, AbstractSite$1 as AbstractSite, Context, Fragment, PauseSite, SiteContainer, SiteManager, SystemSettings, Theme, ThemeManager, DBTranslator, Translator, TranslatorDB, ViewInflater, applyPolyfills }; export { App, ChainAble, CookieCompliance, ConfirmDialog, Dialog, FlashMessenger, AbstractService, AbstractGapiResponse, Achievement, AchievementList, GameService, GapiPlayer, Leaderboard, Score, GapiHandler, Helper, InitPromise, ActionBarMenu, Menu, MenuAction, OpenSubmenuAction, Submenu, MyDb, Prioritised, ScriptLoader, CopyShareButton, ShareButton, ShareManager, SmsShareButton, TelegramShareButton, WhatsappShareButton, SimpleWS, AbstractSite, Context, Fragment, PauseSite, SiteContainer, SiteManager, SystemSettings, Theme, ThemeManager, DBTranslator, Translator, TranslatorDB, ViewInflater, applyPolyfills };

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,13 @@
import {SystemSettings, Translator} from "./lib/pwa-lib"; import {SystemSettings, Translator} from "./lib/pwa-lib";
SystemSettings.setBasePath("/pwa/wordRotator/public/");
let basePath = "/pwa/wordRotator/public/";
if (window.location.pathname.endsWith("publicTest/"))
{
basePath = "/pwa/wordRotator/publicTest/";
}
SystemSettings.setBasePath(basePath);
Translator.supportedLanguages = ["de", "en"]; Translator.supportedLanguages = ["de", "en"];
Translator.markTranslations = false; Translator.markTranslations = false;

View File

@ -22,7 +22,7 @@
</div> </div>
</div> </div>
<div class='show-when-won flex-center height-20'> <div class='show-when-won flex-center height-20'>
<button class='button' id='continue-button' data-translation="continue"></button> <button class='button max-width' id='continue-button' data-translation="continue"></button>
</div> </div>
</div> </div>
</div> </div>

View File

@ -56,7 +56,7 @@ export class LevelSite extends AbstractSite {
let wonText = this.findBy("#won-text"); let wonText = this.findBy("#won-text");
let scaleHelper = new ScaleHelper(); let scaleHelper = new ScaleHelper();
scaleHelper.scaleToFull(continueButton, continueButton.parentElement); scaleHelper.scaleToFull(continueButton, continueButton.parentElement, false, true);
scaleHelper.scaleToFull(wonText, wonText.parentElement); scaleHelper.scaleToFull(wonText, wonText.parentElement);
this.levelCounterAction.setTitle(this.levelCounter); this.levelCounterAction.setTitle(this.levelCounter);
@ -70,6 +70,7 @@ export class LevelSite extends AbstractSite {
let currentLevelInfo = localStorage.getItem("currentLevel"); let currentLevelInfo = localStorage.getItem("currentLevel");
if (currentLevelInfo !== null) { if (currentLevelInfo !== null) {
currentLevelInfo = JSON.parse(currentLevelInfo); currentLevelInfo = JSON.parse(currentLevelInfo);
console.log("LevelID: ", currentLevelInfo["id"]);
const db = WordRotatorDb.getInstance(); const db = WordRotatorDb.getInstance();
const levelJson = await db.loadLevel(currentLevelInfo["id"]); const levelJson = await db.loadLevel(currentLevelInfo["id"]);

View File

@ -9,7 +9,6 @@ export class SynchronizeSite extends AbstractSite {
super(siteManager, "html/application/sync.html"); super(siteManager, "html/application/sync.html");
} }
async onConstruct(args) { async onConstruct(args) {
let res = await super.onConstruct(args); let res = await super.onConstruct(args);
await this.loadLevels(); await this.loadLevels();
@ -22,7 +21,6 @@ export class SynchronizeSite extends AbstractSite {
} }
async loadLevels() { async loadLevels() {
const dateLastSync = Helper.nonNull(localStorage.getItem("date-last-sync"), 0); const dateLastSync = Helper.nonNull(localStorage.getItem("date-last-sync"), 0);
const db = WordRotatorDb.getInstance(); const db = WordRotatorDb.getInstance();
@ -53,6 +51,9 @@ export class SynchronizeSite extends AbstractSite {
let levels = await Promise.all(levelPromises); let levels = await Promise.all(levelPromises);
await db.saveManyLevels(levels); await db.saveManyLevels(levels);
localStorage.setItem("date-last-sync", newLastSync); if (newLastSync != null && newLastSync !== "null")
{
localStorage.setItem("date-last-sync", newLastSync);
}
} }
} }

View File

@ -4,7 +4,8 @@ import {DelayPromise} from "../../../../../../js/lib/pwa-assets";
export class ParentSegment extends Segment { export class ParentSegment extends Segment {
static initListener(){ static initListener(){
window.addEventListener("mousedown", (e) => { window.addEventListener("mousedown", (e) => {
ParentSegment.mouseDownTarget = e.originalTarget; ParentSegment.mouseDownTarget = e.target;
// ParentSegment.mouseDownTarget = e.originalTarget;
}); });
window.addEventListener("mouseup", (e) => { window.addEventListener("mouseup", (e) => {
ParentSegment.mouseDownTarget = null; ParentSegment.mouseDownTarget = null;
@ -38,7 +39,9 @@ export class ParentSegment extends Segment {
} }
}; };
this.mouseupListener = function(e){ this.mouseupListener = function(e){
if (ParentSegment.mouseDownTarget !== null && self.element.contains(ParentSegment.mouseDownTarget) && self.element.contains(e.originalTarget)) console.log("mouseup", e);
// if (ParentSegment.mouseDownTarget !== null && self.element.contains(ParentSegment.mouseDownTarget) && self.element.contains(e.originalTarget))
if (ParentSegment.mouseDownTarget !== null && self.element.contains(ParentSegment.mouseDownTarget) && self.element.contains(e.target))
{ {
self.rotate(); self.rotate();
e.stopPropagation(); e.stopPropagation();
@ -134,12 +137,19 @@ export class ParentSegment extends Segment {
} }
_updateElement() { _updateElement() {
let layer = this._getLayer();
if (layer >= 2)
{
this.element.classList.add("layer-"+layer);
}
const childContainer = this.element.querySelector(".child-container"); const childContainer = this.element.querySelector(".child-container");
childContainer.removeAllChildren(); childContainer.removeAllChildren();
this._updateRotationClass(); this._updateRotationClass();
const self = this; // const self = this;
// this.element.onclick = function (e) { // this.element.onclick = function (e) {
// self.rotate(); // self.rotate();
// e.stopPropagation(); // e.stopPropagation();
@ -159,5 +169,13 @@ export class ParentSegment extends Segment {
} }
} }
} }
_getLayer(){
if (this.children.length >= 1 && this.children[0] && this.children[0] instanceof ParentSegment)
{
return this.children[0]._getLayer()+1;
}
return 1;
}
} }
ParentSegment.initListener(); ParentSegment.initListener();

View File

@ -28,7 +28,7 @@ $animationDuration: 0.25s;
&.rotating { &.rotating {
z-index: 10 !important; z-index: 10 !important;
overflow: hidden; overflow: hidden;
vertical-align:top; vertical-align: top;
@for $i from 1 through length($rotationDegrees) { @for $i from 1 through length($rotationDegrees) {
&.rotate-#{nth($rotationDegrees, $i)} { &.rotate-#{nth($rotationDegrees, $i)} {
@ -98,7 +98,7 @@ $animationDuration: 0.25s;
white-space: nowrap; white-space: nowrap;
transition: none; transition: none;
max-width: 100%; max-width: 100%;
-webkit-tap-highlight-color: rgba(255,255,255,0); -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
//width: 100%; //width: 100%;
* { * {
@ -149,13 +149,16 @@ $animationDuration: 0.25s;
border: solid 1px #a9a9a9; border: solid 1px #a9a9a9;
border-radius: 3px; border-radius: 3px;
padding: 1px; padding: 1px;
&.layer-2 {
border: solid 3px #000000;
}
} }
&.segment-triangle { &.segment-triangle {
> .child-container { > .child-container {
> .segment-parent { > .segment-parent {
border: solid 3px #000000; //border: solid 3px #000000;
position: relative; //position: relative;
} }
} }
} }

19589
test/play.testcafe Normal file

File diff suppressed because it is too large Load Diff