Added simpleLevel
This commit is contained in:
parent
1efcd2526b
commit
cae3ef29ea
78
.idea/php.xml
generated
Normal file
78
.idea/php.xml
generated
Normal file
@ -0,0 +1,78 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="PhpIncludePathManager">
|
||||
<include_path>
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-paginator" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-i18n" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-mvc-plugin-flashmessenger" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-mvc-plugin-fileprg" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-mime" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-mvc-console" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-log" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-mvc-plugin-identity" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-session" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-form" />
|
||||
<path value="$PROJECT_DIR$/vendor/ainias/pwa-assets" />
|
||||
<path value="$PROJECT_DIR$/vendor/ainias/pwa-zf-code-management" />
|
||||
<path value="$PROJECT_DIR$/vendor/ainias/pwa-zf-user-management" />
|
||||
<path value="$PROJECT_DIR$/vendor/ainias/pwa-zf-cronjob" />
|
||||
<path value="$PROJECT_DIR$/vendor/ainias/pwa-zf-core" />
|
||||
<path value="$PROJECT_DIR$/vendor/doctrine/doctrine-module" />
|
||||
<path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
|
||||
<path value="$PROJECT_DIR$/vendor/doctrine/annotations" />
|
||||
<path value="$PROJECT_DIR$/vendor/doctrine/orm" />
|
||||
<path value="$PROJECT_DIR$/vendor/doctrine/dbal" />
|
||||
<path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
|
||||
<path value="$PROJECT_DIR$/vendor/doctrine/collections" />
|
||||
<path value="$PROJECT_DIR$/vendor/doctrine/instantiator" />
|
||||
<path value="$PROJECT_DIR$/vendor/doctrine/doctrine-orm-module" />
|
||||
<path value="$PROJECT_DIR$/vendor/doctrine/common" />
|
||||
<path value="$PROJECT_DIR$/vendor/doctrine/cache" />
|
||||
<path value="$PROJECT_DIR$/vendor/container-interop/container-interop" />
|
||||
<path value="$PROJECT_DIR$/vendor/ainias/pwa-lib" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-mvc" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-psr7bridge" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-eventmanager" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-loader" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-router" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-stdlib" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-uri" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-diactoros" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-validator" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-modulemanager" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-hydrator" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-component-installer" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-escaper" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-config" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-http" />
|
||||
<path value="$PROJECT_DIR$/vendor/psr/http-message" />
|
||||
<path value="$PROJECT_DIR$/vendor/psr/container" />
|
||||
<path value="$PROJECT_DIR$/vendor/ccampbell/chromephp" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/debug" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-servicemanager" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/console" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-view" />
|
||||
<path value="$PROJECT_DIR$/vendor/composer" />
|
||||
<path value="$PROJECT_DIR$/vendor/zfcampus/zf-development-mode" />
|
||||
<path value="$PROJECT_DIR$/vendor/psr/log" />
|
||||
<path value="$PROJECT_DIR$/vendor/psr/cache" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-mvc-i18n" />
|
||||
<path value="$PROJECT_DIR$/vendor/psr/simple-cache" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-cache" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-authentication" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-servicemanager-di" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-inputfilter" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-filter" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-text" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-mail" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-code" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-navigation" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-json" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-console" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-di" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-mvc-plugin-prg" />
|
||||
<path value="$PROJECT_DIR$/vendor/zendframework/zend-permissions-acl" />
|
||||
</include_path>
|
||||
</component>
|
||||
</project>
|
||||
3
.idea/scopes/html.xml
generated
Normal file
3
.idea/scopes/html.xml
generated
Normal file
@ -0,0 +1,3 @@
|
||||
<component name="DependencyValidationManager">
|
||||
<scope name="html" pattern="file[wordRotator]:src/module/*/pwa/html//*" />
|
||||
</component>
|
||||
3
.idea/scopes/js.xml
generated
Normal file
3
.idea/scopes/js.xml
generated
Normal file
@ -0,0 +1,3 @@
|
||||
<component name="DependencyValidationManager">
|
||||
<scope name="js" pattern="file[wordRotator]:src//*" />
|
||||
</component>
|
||||
3
.idea/scopes/scss.xml
generated
Normal file
3
.idea/scopes/scss.xml
generated
Normal file
@ -0,0 +1,3 @@
|
||||
<component name="DependencyValidationManager">
|
||||
<scope name="scss" pattern="file[wordRotator]:src/scss//*" />
|
||||
</component>
|
||||
3
.idea/scopes/translator.xml
generated
Normal file
3
.idea/scopes/translator.xml
generated
Normal file
@ -0,0 +1,3 @@
|
||||
<component name="DependencyValidationManager">
|
||||
<scope name="translator" pattern="file[wordRotator]:src/module/*/pwa/translations//*" />
|
||||
</component>
|
||||
105
.idea/watcherTasks.xml
generated
Normal file
105
.idea/watcherTasks.xml
generated
Normal file
@ -0,0 +1,105 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectTasksOptions">
|
||||
<TaskOptions isEnabled="true">
|
||||
<option name="arguments" value="--no-cache --update --sourcemap=none $FileName$:$FileNameWithoutExtension$.css" />
|
||||
<option name="checkSyntaxErrors" value="true" />
|
||||
<option name="description" />
|
||||
<option name="exitCodeBehavior" value="ERROR" />
|
||||
<option name="fileExtension" value="scss" />
|
||||
<option name="immediateSync" value="true" />
|
||||
<option name="name" value="SCSS" />
|
||||
<option name="output" value="$FileNameWithoutExtension$.css:" />
|
||||
<option name="outputFilters">
|
||||
<array />
|
||||
</option>
|
||||
<option name="outputFromStdout" value="false" />
|
||||
<option name="program" value="sass" />
|
||||
<option name="runOnExternalChanges" value="true" />
|
||||
<option name="scopeName" value="scss" />
|
||||
<option name="trackOnlyRoot" value="true" />
|
||||
<option name="workingDir" value="$FileDir$" />
|
||||
<envs />
|
||||
</TaskOptions>
|
||||
<TaskOptions isEnabled="true">
|
||||
<option name="arguments" value="$FilePath$ --no-map true -d $ContentRoot$/public/css -c $ContentRoot$" />
|
||||
<option name="checkSyntaxErrors" value="true" />
|
||||
<option name="description" />
|
||||
<option name="exitCodeBehavior" value="ERROR" />
|
||||
<option name="fileExtension" value="css" />
|
||||
<option name="immediateSync" value="true" />
|
||||
<option name="name" value="Autoprefixer" />
|
||||
<option name="output" value="$ContentRoot$/public/css" />
|
||||
<option name="outputFilters">
|
||||
<array />
|
||||
</option>
|
||||
<option name="outputFromStdout" value="false" />
|
||||
<option name="program" value="postcss" />
|
||||
<option name="runOnExternalChanges" value="true" />
|
||||
<option name="scopeName" value="scss" />
|
||||
<option name="trackOnlyRoot" value="true" />
|
||||
<option name="workingDir" value="$FileDir$" />
|
||||
<envs />
|
||||
</TaskOptions>
|
||||
<TaskOptions isEnabled="true">
|
||||
<option name="arguments" value="--html5 --collapse-whitespace --remove-attribute-quotes --remove-empty-attributes --remove-comments --remove-optional-tags --remove-redundant-attributes $FilePath$ -o $ContentRoot$/public/html/$FileDirRelativeToSourcepath$/$FileName$" />
|
||||
<option name="checkSyntaxErrors" value="true" />
|
||||
<option name="description" />
|
||||
<option name="exitCodeBehavior" value="NEVER" />
|
||||
<option name="fileExtension" value="html" />
|
||||
<option name="immediateSync" value="true" />
|
||||
<option name="name" value="htmlminify" />
|
||||
<option name="output" value="$ContentRoot$/public/" />
|
||||
<option name="outputFilters">
|
||||
<array />
|
||||
</option>
|
||||
<option name="outputFromStdout" value="false" />
|
||||
<option name="program" value="html-minifier" />
|
||||
<option name="runOnExternalChanges" value="true" />
|
||||
<option name="scopeName" value="html" />
|
||||
<option name="trackOnlyRoot" value="false" />
|
||||
<option name="workingDir" value="" />
|
||||
<envs />
|
||||
</TaskOptions>
|
||||
<TaskOptions isEnabled="true">
|
||||
<option name="arguments" value="$ContentRoot$/bin/concatTranslator.js" />
|
||||
<option name="checkSyntaxErrors" value="true" />
|
||||
<option name="description" />
|
||||
<option name="exitCodeBehavior" value="NEVER" />
|
||||
<option name="fileExtension" value="json" />
|
||||
<option name="immediateSync" value="true" />
|
||||
<option name="name" value="translator" />
|
||||
<option name="output" value="$ContentRoot$/public/js/lang" />
|
||||
<option name="outputFilters">
|
||||
<array />
|
||||
</option>
|
||||
<option name="outputFromStdout" value="false" />
|
||||
<option name="program" value="node" />
|
||||
<option name="runOnExternalChanges" value="true" />
|
||||
<option name="scopeName" value="translator" />
|
||||
<option name="trackOnlyRoot" value="false" />
|
||||
<option name="workingDir" value="$PROJECT_DIR$/../stories" />
|
||||
<envs />
|
||||
</TaskOptions>
|
||||
<TaskOptions isEnabled="true">
|
||||
<option name="arguments" value="" />
|
||||
<option name="checkSyntaxErrors" value="true" />
|
||||
<option name="description" />
|
||||
<option name="exitCodeBehavior" value="ERROR" />
|
||||
<option name="fileExtension" value="js" />
|
||||
<option name="immediateSync" value="true" />
|
||||
<option name="name" value="build" />
|
||||
<option name="output" value="$ContentRoot$/public/js" />
|
||||
<option name="outputFilters">
|
||||
<array />
|
||||
</option>
|
||||
<option name="outputFromStdout" value="false" />
|
||||
<option name="program" value="$PROJECT_DIR$/bin/build.sh" />
|
||||
<option name="runOnExternalChanges" value="true" />
|
||||
<option name="scopeName" value="js" />
|
||||
<option name="trackOnlyRoot" value="false" />
|
||||
<option name="workingDir" value="$ContentRoot$" />
|
||||
<envs />
|
||||
</TaskOptions>
|
||||
</component>
|
||||
</project>
|
||||
0
bin/build.sh
Normal file → Executable file
0
bin/build.sh
Normal file → Executable file
@ -295,6 +295,8 @@ button.button, a.button {
|
||||
.fill-me {
|
||||
display: flex;
|
||||
flex-direction: column; }
|
||||
.fill-me.vertical {
|
||||
flex-direction: row; }
|
||||
.fill-me .grow {
|
||||
flex: 1; }
|
||||
|
||||
|
||||
280
public/core/css/foundation.css
vendored
280
public/core/css/foundation.css
vendored
@ -671,32 +671,32 @@ textarea {
|
||||
padding-left: 0; }
|
||||
|
||||
.small-1 {
|
||||
width: 8.33333%; }
|
||||
width: 8.3333333333%; }
|
||||
|
||||
.small-push-1 {
|
||||
position: relative;
|
||||
left: 8.33333%; }
|
||||
left: 8.3333333333%; }
|
||||
|
||||
.small-pull-1 {
|
||||
position: relative;
|
||||
left: -8.33333%; }
|
||||
left: -8.3333333333%; }
|
||||
|
||||
.small-offset-0 {
|
||||
margin-left: 0%; }
|
||||
|
||||
.small-2 {
|
||||
width: 16.66667%; }
|
||||
width: 16.6666666667%; }
|
||||
|
||||
.small-push-2 {
|
||||
position: relative;
|
||||
left: 16.66667%; }
|
||||
left: 16.6666666667%; }
|
||||
|
||||
.small-pull-2 {
|
||||
position: relative;
|
||||
left: -16.66667%; }
|
||||
left: -16.6666666667%; }
|
||||
|
||||
.small-offset-1 {
|
||||
margin-left: 8.33333%; }
|
||||
margin-left: 8.3333333333%; }
|
||||
|
||||
.small-3 {
|
||||
width: 25%; }
|
||||
@ -710,35 +710,35 @@ textarea {
|
||||
left: -25%; }
|
||||
|
||||
.small-offset-2 {
|
||||
margin-left: 16.66667%; }
|
||||
margin-left: 16.6666666667%; }
|
||||
|
||||
.small-4 {
|
||||
width: 33.33333%; }
|
||||
width: 33.3333333333%; }
|
||||
|
||||
.small-push-4 {
|
||||
position: relative;
|
||||
left: 33.33333%; }
|
||||
left: 33.3333333333%; }
|
||||
|
||||
.small-pull-4 {
|
||||
position: relative;
|
||||
left: -33.33333%; }
|
||||
left: -33.3333333333%; }
|
||||
|
||||
.small-offset-3 {
|
||||
margin-left: 25%; }
|
||||
|
||||
.small-5 {
|
||||
width: 41.66667%; }
|
||||
width: 41.6666666667%; }
|
||||
|
||||
.small-push-5 {
|
||||
position: relative;
|
||||
left: 41.66667%; }
|
||||
left: 41.6666666667%; }
|
||||
|
||||
.small-pull-5 {
|
||||
position: relative;
|
||||
left: -41.66667%; }
|
||||
left: -41.6666666667%; }
|
||||
|
||||
.small-offset-4 {
|
||||
margin-left: 33.33333%; }
|
||||
margin-left: 33.3333333333%; }
|
||||
|
||||
.small-6 {
|
||||
width: 50%; }
|
||||
@ -752,35 +752,35 @@ textarea {
|
||||
left: -50%; }
|
||||
|
||||
.small-offset-5 {
|
||||
margin-left: 41.66667%; }
|
||||
margin-left: 41.6666666667%; }
|
||||
|
||||
.small-7 {
|
||||
width: 58.33333%; }
|
||||
width: 58.3333333333%; }
|
||||
|
||||
.small-push-7 {
|
||||
position: relative;
|
||||
left: 58.33333%; }
|
||||
left: 58.3333333333%; }
|
||||
|
||||
.small-pull-7 {
|
||||
position: relative;
|
||||
left: -58.33333%; }
|
||||
left: -58.3333333333%; }
|
||||
|
||||
.small-offset-6 {
|
||||
margin-left: 50%; }
|
||||
|
||||
.small-8 {
|
||||
width: 66.66667%; }
|
||||
width: 66.6666666667%; }
|
||||
|
||||
.small-push-8 {
|
||||
position: relative;
|
||||
left: 66.66667%; }
|
||||
left: 66.6666666667%; }
|
||||
|
||||
.small-pull-8 {
|
||||
position: relative;
|
||||
left: -66.66667%; }
|
||||
left: -66.6666666667%; }
|
||||
|
||||
.small-offset-7 {
|
||||
margin-left: 58.33333%; }
|
||||
margin-left: 58.3333333333%; }
|
||||
|
||||
.small-9 {
|
||||
width: 75%; }
|
||||
@ -794,41 +794,41 @@ textarea {
|
||||
left: -75%; }
|
||||
|
||||
.small-offset-8 {
|
||||
margin-left: 66.66667%; }
|
||||
margin-left: 66.6666666667%; }
|
||||
|
||||
.small-10 {
|
||||
width: 83.33333%; }
|
||||
width: 83.3333333333%; }
|
||||
|
||||
.small-push-10 {
|
||||
position: relative;
|
||||
left: 83.33333%; }
|
||||
left: 83.3333333333%; }
|
||||
|
||||
.small-pull-10 {
|
||||
position: relative;
|
||||
left: -83.33333%; }
|
||||
left: -83.3333333333%; }
|
||||
|
||||
.small-offset-9 {
|
||||
margin-left: 75%; }
|
||||
|
||||
.small-11 {
|
||||
width: 91.66667%; }
|
||||
width: 91.6666666667%; }
|
||||
|
||||
.small-push-11 {
|
||||
position: relative;
|
||||
left: 91.66667%; }
|
||||
left: 91.6666666667%; }
|
||||
|
||||
.small-pull-11 {
|
||||
position: relative;
|
||||
left: -91.66667%; }
|
||||
left: -91.6666666667%; }
|
||||
|
||||
.small-offset-10 {
|
||||
margin-left: 83.33333%; }
|
||||
margin-left: 83.3333333333%; }
|
||||
|
||||
.small-12 {
|
||||
width: 100%; }
|
||||
|
||||
.small-offset-11 {
|
||||
margin-left: 91.66667%; }
|
||||
margin-left: 91.6666666667%; }
|
||||
|
||||
.small-up-1 > .column, .small-up-1 > .columns {
|
||||
float: left;
|
||||
@ -852,7 +852,7 @@ textarea {
|
||||
|
||||
.small-up-3 > .column, .small-up-3 > .columns {
|
||||
float: left;
|
||||
width: 33.33333%; }
|
||||
width: 33.3333333333%; }
|
||||
.small-up-3 > .column:nth-of-type(1n), .small-up-3 > .columns:nth-of-type(1n) {
|
||||
clear: none; }
|
||||
.small-up-3 > .column:nth-of-type(3n+1), .small-up-3 > .columns:nth-of-type(3n+1) {
|
||||
@ -882,7 +882,7 @@ textarea {
|
||||
|
||||
.small-up-6 > .column, .small-up-6 > .columns {
|
||||
float: left;
|
||||
width: 16.66667%; }
|
||||
width: 16.6666666667%; }
|
||||
.small-up-6 > .column:nth-of-type(1n), .small-up-6 > .columns:nth-of-type(1n) {
|
||||
clear: none; }
|
||||
.small-up-6 > .column:nth-of-type(6n+1), .small-up-6 > .columns:nth-of-type(6n+1) {
|
||||
@ -892,7 +892,7 @@ textarea {
|
||||
|
||||
.small-up-7 > .column, .small-up-7 > .columns {
|
||||
float: left;
|
||||
width: 14.28571%; }
|
||||
width: 14.2857142857%; }
|
||||
.small-up-7 > .column:nth-of-type(1n), .small-up-7 > .columns:nth-of-type(1n) {
|
||||
clear: none; }
|
||||
.small-up-7 > .column:nth-of-type(7n+1), .small-up-7 > .columns:nth-of-type(7n+1) {
|
||||
@ -942,32 +942,32 @@ textarea {
|
||||
|
||||
@media screen and (min-width: 25em) {
|
||||
.smedium-1 {
|
||||
width: 8.33333%; }
|
||||
width: 8.3333333333%; }
|
||||
|
||||
.smedium-push-1 {
|
||||
position: relative;
|
||||
left: 8.33333%; }
|
||||
left: 8.3333333333%; }
|
||||
|
||||
.smedium-pull-1 {
|
||||
position: relative;
|
||||
left: -8.33333%; }
|
||||
left: -8.3333333333%; }
|
||||
|
||||
.smedium-offset-0 {
|
||||
margin-left: 0%; }
|
||||
|
||||
.smedium-2 {
|
||||
width: 16.66667%; }
|
||||
width: 16.6666666667%; }
|
||||
|
||||
.smedium-push-2 {
|
||||
position: relative;
|
||||
left: 16.66667%; }
|
||||
left: 16.6666666667%; }
|
||||
|
||||
.smedium-pull-2 {
|
||||
position: relative;
|
||||
left: -16.66667%; }
|
||||
left: -16.6666666667%; }
|
||||
|
||||
.smedium-offset-1 {
|
||||
margin-left: 8.33333%; }
|
||||
margin-left: 8.3333333333%; }
|
||||
|
||||
.smedium-3 {
|
||||
width: 25%; }
|
||||
@ -981,35 +981,35 @@ textarea {
|
||||
left: -25%; }
|
||||
|
||||
.smedium-offset-2 {
|
||||
margin-left: 16.66667%; }
|
||||
margin-left: 16.6666666667%; }
|
||||
|
||||
.smedium-4 {
|
||||
width: 33.33333%; }
|
||||
width: 33.3333333333%; }
|
||||
|
||||
.smedium-push-4 {
|
||||
position: relative;
|
||||
left: 33.33333%; }
|
||||
left: 33.3333333333%; }
|
||||
|
||||
.smedium-pull-4 {
|
||||
position: relative;
|
||||
left: -33.33333%; }
|
||||
left: -33.3333333333%; }
|
||||
|
||||
.smedium-offset-3 {
|
||||
margin-left: 25%; }
|
||||
|
||||
.smedium-5 {
|
||||
width: 41.66667%; }
|
||||
width: 41.6666666667%; }
|
||||
|
||||
.smedium-push-5 {
|
||||
position: relative;
|
||||
left: 41.66667%; }
|
||||
left: 41.6666666667%; }
|
||||
|
||||
.smedium-pull-5 {
|
||||
position: relative;
|
||||
left: -41.66667%; }
|
||||
left: -41.6666666667%; }
|
||||
|
||||
.smedium-offset-4 {
|
||||
margin-left: 33.33333%; }
|
||||
margin-left: 33.3333333333%; }
|
||||
|
||||
.smedium-6 {
|
||||
width: 50%; }
|
||||
@ -1023,35 +1023,35 @@ textarea {
|
||||
left: -50%; }
|
||||
|
||||
.smedium-offset-5 {
|
||||
margin-left: 41.66667%; }
|
||||
margin-left: 41.6666666667%; }
|
||||
|
||||
.smedium-7 {
|
||||
width: 58.33333%; }
|
||||
width: 58.3333333333%; }
|
||||
|
||||
.smedium-push-7 {
|
||||
position: relative;
|
||||
left: 58.33333%; }
|
||||
left: 58.3333333333%; }
|
||||
|
||||
.smedium-pull-7 {
|
||||
position: relative;
|
||||
left: -58.33333%; }
|
||||
left: -58.3333333333%; }
|
||||
|
||||
.smedium-offset-6 {
|
||||
margin-left: 50%; }
|
||||
|
||||
.smedium-8 {
|
||||
width: 66.66667%; }
|
||||
width: 66.6666666667%; }
|
||||
|
||||
.smedium-push-8 {
|
||||
position: relative;
|
||||
left: 66.66667%; }
|
||||
left: 66.6666666667%; }
|
||||
|
||||
.smedium-pull-8 {
|
||||
position: relative;
|
||||
left: -66.66667%; }
|
||||
left: -66.6666666667%; }
|
||||
|
||||
.smedium-offset-7 {
|
||||
margin-left: 58.33333%; }
|
||||
margin-left: 58.3333333333%; }
|
||||
|
||||
.smedium-9 {
|
||||
width: 75%; }
|
||||
@ -1065,41 +1065,41 @@ textarea {
|
||||
left: -75%; }
|
||||
|
||||
.smedium-offset-8 {
|
||||
margin-left: 66.66667%; }
|
||||
margin-left: 66.6666666667%; }
|
||||
|
||||
.smedium-10 {
|
||||
width: 83.33333%; }
|
||||
width: 83.3333333333%; }
|
||||
|
||||
.smedium-push-10 {
|
||||
position: relative;
|
||||
left: 83.33333%; }
|
||||
left: 83.3333333333%; }
|
||||
|
||||
.smedium-pull-10 {
|
||||
position: relative;
|
||||
left: -83.33333%; }
|
||||
left: -83.3333333333%; }
|
||||
|
||||
.smedium-offset-9 {
|
||||
margin-left: 75%; }
|
||||
|
||||
.smedium-11 {
|
||||
width: 91.66667%; }
|
||||
width: 91.6666666667%; }
|
||||
|
||||
.smedium-push-11 {
|
||||
position: relative;
|
||||
left: 91.66667%; }
|
||||
left: 91.6666666667%; }
|
||||
|
||||
.smedium-pull-11 {
|
||||
position: relative;
|
||||
left: -91.66667%; }
|
||||
left: -91.6666666667%; }
|
||||
|
||||
.smedium-offset-10 {
|
||||
margin-left: 83.33333%; }
|
||||
margin-left: 83.3333333333%; }
|
||||
|
||||
.smedium-12 {
|
||||
width: 100%; }
|
||||
|
||||
.smedium-offset-11 {
|
||||
margin-left: 91.66667%; }
|
||||
margin-left: 91.6666666667%; }
|
||||
|
||||
.smedium-up-1 > .column, .smedium-up-1 > .columns {
|
||||
float: left;
|
||||
@ -1123,7 +1123,7 @@ textarea {
|
||||
|
||||
.smedium-up-3 > .column, .smedium-up-3 > .columns {
|
||||
float: left;
|
||||
width: 33.33333%; }
|
||||
width: 33.3333333333%; }
|
||||
.smedium-up-3 > .column:nth-of-type(1n), .smedium-up-3 > .columns:nth-of-type(1n) {
|
||||
clear: none; }
|
||||
.smedium-up-3 > .column:nth-of-type(3n+1), .smedium-up-3 > .columns:nth-of-type(3n+1) {
|
||||
@ -1153,7 +1153,7 @@ textarea {
|
||||
|
||||
.smedium-up-6 > .column, .smedium-up-6 > .columns {
|
||||
float: left;
|
||||
width: 16.66667%; }
|
||||
width: 16.6666666667%; }
|
||||
.smedium-up-6 > .column:nth-of-type(1n), .smedium-up-6 > .columns:nth-of-type(1n) {
|
||||
clear: none; }
|
||||
.smedium-up-6 > .column:nth-of-type(6n+1), .smedium-up-6 > .columns:nth-of-type(6n+1) {
|
||||
@ -1163,7 +1163,7 @@ textarea {
|
||||
|
||||
.smedium-up-7 > .column, .smedium-up-7 > .columns {
|
||||
float: left;
|
||||
width: 14.28571%; }
|
||||
width: 14.2857142857%; }
|
||||
.smedium-up-7 > .column:nth-of-type(1n), .smedium-up-7 > .columns:nth-of-type(1n) {
|
||||
clear: none; }
|
||||
.smedium-up-7 > .column:nth-of-type(7n+1), .smedium-up-7 > .columns:nth-of-type(7n+1) {
|
||||
@ -1212,32 +1212,32 @@ textarea {
|
||||
margin-left: 0; } }
|
||||
@media print, screen and (min-width: 40em) {
|
||||
.medium-1 {
|
||||
width: 8.33333%; }
|
||||
width: 8.3333333333%; }
|
||||
|
||||
.medium-push-1 {
|
||||
position: relative;
|
||||
left: 8.33333%; }
|
||||
left: 8.3333333333%; }
|
||||
|
||||
.medium-pull-1 {
|
||||
position: relative;
|
||||
left: -8.33333%; }
|
||||
left: -8.3333333333%; }
|
||||
|
||||
.medium-offset-0 {
|
||||
margin-left: 0%; }
|
||||
|
||||
.medium-2 {
|
||||
width: 16.66667%; }
|
||||
width: 16.6666666667%; }
|
||||
|
||||
.medium-push-2 {
|
||||
position: relative;
|
||||
left: 16.66667%; }
|
||||
left: 16.6666666667%; }
|
||||
|
||||
.medium-pull-2 {
|
||||
position: relative;
|
||||
left: -16.66667%; }
|
||||
left: -16.6666666667%; }
|
||||
|
||||
.medium-offset-1 {
|
||||
margin-left: 8.33333%; }
|
||||
margin-left: 8.3333333333%; }
|
||||
|
||||
.medium-3 {
|
||||
width: 25%; }
|
||||
@ -1251,35 +1251,35 @@ textarea {
|
||||
left: -25%; }
|
||||
|
||||
.medium-offset-2 {
|
||||
margin-left: 16.66667%; }
|
||||
margin-left: 16.6666666667%; }
|
||||
|
||||
.medium-4 {
|
||||
width: 33.33333%; }
|
||||
width: 33.3333333333%; }
|
||||
|
||||
.medium-push-4 {
|
||||
position: relative;
|
||||
left: 33.33333%; }
|
||||
left: 33.3333333333%; }
|
||||
|
||||
.medium-pull-4 {
|
||||
position: relative;
|
||||
left: -33.33333%; }
|
||||
left: -33.3333333333%; }
|
||||
|
||||
.medium-offset-3 {
|
||||
margin-left: 25%; }
|
||||
|
||||
.medium-5 {
|
||||
width: 41.66667%; }
|
||||
width: 41.6666666667%; }
|
||||
|
||||
.medium-push-5 {
|
||||
position: relative;
|
||||
left: 41.66667%; }
|
||||
left: 41.6666666667%; }
|
||||
|
||||
.medium-pull-5 {
|
||||
position: relative;
|
||||
left: -41.66667%; }
|
||||
left: -41.6666666667%; }
|
||||
|
||||
.medium-offset-4 {
|
||||
margin-left: 33.33333%; }
|
||||
margin-left: 33.3333333333%; }
|
||||
|
||||
.medium-6 {
|
||||
width: 50%; }
|
||||
@ -1293,35 +1293,35 @@ textarea {
|
||||
left: -50%; }
|
||||
|
||||
.medium-offset-5 {
|
||||
margin-left: 41.66667%; }
|
||||
margin-left: 41.6666666667%; }
|
||||
|
||||
.medium-7 {
|
||||
width: 58.33333%; }
|
||||
width: 58.3333333333%; }
|
||||
|
||||
.medium-push-7 {
|
||||
position: relative;
|
||||
left: 58.33333%; }
|
||||
left: 58.3333333333%; }
|
||||
|
||||
.medium-pull-7 {
|
||||
position: relative;
|
||||
left: -58.33333%; }
|
||||
left: -58.3333333333%; }
|
||||
|
||||
.medium-offset-6 {
|
||||
margin-left: 50%; }
|
||||
|
||||
.medium-8 {
|
||||
width: 66.66667%; }
|
||||
width: 66.6666666667%; }
|
||||
|
||||
.medium-push-8 {
|
||||
position: relative;
|
||||
left: 66.66667%; }
|
||||
left: 66.6666666667%; }
|
||||
|
||||
.medium-pull-8 {
|
||||
position: relative;
|
||||
left: -66.66667%; }
|
||||
left: -66.6666666667%; }
|
||||
|
||||
.medium-offset-7 {
|
||||
margin-left: 58.33333%; }
|
||||
margin-left: 58.3333333333%; }
|
||||
|
||||
.medium-9 {
|
||||
width: 75%; }
|
||||
@ -1335,41 +1335,41 @@ textarea {
|
||||
left: -75%; }
|
||||
|
||||
.medium-offset-8 {
|
||||
margin-left: 66.66667%; }
|
||||
margin-left: 66.6666666667%; }
|
||||
|
||||
.medium-10 {
|
||||
width: 83.33333%; }
|
||||
width: 83.3333333333%; }
|
||||
|
||||
.medium-push-10 {
|
||||
position: relative;
|
||||
left: 83.33333%; }
|
||||
left: 83.3333333333%; }
|
||||
|
||||
.medium-pull-10 {
|
||||
position: relative;
|
||||
left: -83.33333%; }
|
||||
left: -83.3333333333%; }
|
||||
|
||||
.medium-offset-9 {
|
||||
margin-left: 75%; }
|
||||
|
||||
.medium-11 {
|
||||
width: 91.66667%; }
|
||||
width: 91.6666666667%; }
|
||||
|
||||
.medium-push-11 {
|
||||
position: relative;
|
||||
left: 91.66667%; }
|
||||
left: 91.6666666667%; }
|
||||
|
||||
.medium-pull-11 {
|
||||
position: relative;
|
||||
left: -91.66667%; }
|
||||
left: -91.6666666667%; }
|
||||
|
||||
.medium-offset-10 {
|
||||
margin-left: 83.33333%; }
|
||||
margin-left: 83.3333333333%; }
|
||||
|
||||
.medium-12 {
|
||||
width: 100%; }
|
||||
|
||||
.medium-offset-11 {
|
||||
margin-left: 91.66667%; }
|
||||
margin-left: 91.6666666667%; }
|
||||
|
||||
.medium-up-1 > .column, .medium-up-1 > .columns {
|
||||
float: left;
|
||||
@ -1393,7 +1393,7 @@ textarea {
|
||||
|
||||
.medium-up-3 > .column, .medium-up-3 > .columns {
|
||||
float: left;
|
||||
width: 33.33333%; }
|
||||
width: 33.3333333333%; }
|
||||
.medium-up-3 > .column:nth-of-type(1n), .medium-up-3 > .columns:nth-of-type(1n) {
|
||||
clear: none; }
|
||||
.medium-up-3 > .column:nth-of-type(3n+1), .medium-up-3 > .columns:nth-of-type(3n+1) {
|
||||
@ -1423,7 +1423,7 @@ textarea {
|
||||
|
||||
.medium-up-6 > .column, .medium-up-6 > .columns {
|
||||
float: left;
|
||||
width: 16.66667%; }
|
||||
width: 16.6666666667%; }
|
||||
.medium-up-6 > .column:nth-of-type(1n), .medium-up-6 > .columns:nth-of-type(1n) {
|
||||
clear: none; }
|
||||
.medium-up-6 > .column:nth-of-type(6n+1), .medium-up-6 > .columns:nth-of-type(6n+1) {
|
||||
@ -1433,7 +1433,7 @@ textarea {
|
||||
|
||||
.medium-up-7 > .column, .medium-up-7 > .columns {
|
||||
float: left;
|
||||
width: 14.28571%; }
|
||||
width: 14.2857142857%; }
|
||||
.medium-up-7 > .column:nth-of-type(1n), .medium-up-7 > .columns:nth-of-type(1n) {
|
||||
clear: none; }
|
||||
.medium-up-7 > .column:nth-of-type(7n+1), .medium-up-7 > .columns:nth-of-type(7n+1) {
|
||||
@ -1482,32 +1482,32 @@ textarea {
|
||||
margin-left: 0; } }
|
||||
@media print, screen and (min-width: 64em) {
|
||||
.large-1 {
|
||||
width: 8.33333%; }
|
||||
width: 8.3333333333%; }
|
||||
|
||||
.large-push-1 {
|
||||
position: relative;
|
||||
left: 8.33333%; }
|
||||
left: 8.3333333333%; }
|
||||
|
||||
.large-pull-1 {
|
||||
position: relative;
|
||||
left: -8.33333%; }
|
||||
left: -8.3333333333%; }
|
||||
|
||||
.large-offset-0 {
|
||||
margin-left: 0%; }
|
||||
|
||||
.large-2 {
|
||||
width: 16.66667%; }
|
||||
width: 16.6666666667%; }
|
||||
|
||||
.large-push-2 {
|
||||
position: relative;
|
||||
left: 16.66667%; }
|
||||
left: 16.6666666667%; }
|
||||
|
||||
.large-pull-2 {
|
||||
position: relative;
|
||||
left: -16.66667%; }
|
||||
left: -16.6666666667%; }
|
||||
|
||||
.large-offset-1 {
|
||||
margin-left: 8.33333%; }
|
||||
margin-left: 8.3333333333%; }
|
||||
|
||||
.large-3 {
|
||||
width: 25%; }
|
||||
@ -1521,35 +1521,35 @@ textarea {
|
||||
left: -25%; }
|
||||
|
||||
.large-offset-2 {
|
||||
margin-left: 16.66667%; }
|
||||
margin-left: 16.6666666667%; }
|
||||
|
||||
.large-4 {
|
||||
width: 33.33333%; }
|
||||
width: 33.3333333333%; }
|
||||
|
||||
.large-push-4 {
|
||||
position: relative;
|
||||
left: 33.33333%; }
|
||||
left: 33.3333333333%; }
|
||||
|
||||
.large-pull-4 {
|
||||
position: relative;
|
||||
left: -33.33333%; }
|
||||
left: -33.3333333333%; }
|
||||
|
||||
.large-offset-3 {
|
||||
margin-left: 25%; }
|
||||
|
||||
.large-5 {
|
||||
width: 41.66667%; }
|
||||
width: 41.6666666667%; }
|
||||
|
||||
.large-push-5 {
|
||||
position: relative;
|
||||
left: 41.66667%; }
|
||||
left: 41.6666666667%; }
|
||||
|
||||
.large-pull-5 {
|
||||
position: relative;
|
||||
left: -41.66667%; }
|
||||
left: -41.6666666667%; }
|
||||
|
||||
.large-offset-4 {
|
||||
margin-left: 33.33333%; }
|
||||
margin-left: 33.3333333333%; }
|
||||
|
||||
.large-6 {
|
||||
width: 50%; }
|
||||
@ -1563,35 +1563,35 @@ textarea {
|
||||
left: -50%; }
|
||||
|
||||
.large-offset-5 {
|
||||
margin-left: 41.66667%; }
|
||||
margin-left: 41.6666666667%; }
|
||||
|
||||
.large-7 {
|
||||
width: 58.33333%; }
|
||||
width: 58.3333333333%; }
|
||||
|
||||
.large-push-7 {
|
||||
position: relative;
|
||||
left: 58.33333%; }
|
||||
left: 58.3333333333%; }
|
||||
|
||||
.large-pull-7 {
|
||||
position: relative;
|
||||
left: -58.33333%; }
|
||||
left: -58.3333333333%; }
|
||||
|
||||
.large-offset-6 {
|
||||
margin-left: 50%; }
|
||||
|
||||
.large-8 {
|
||||
width: 66.66667%; }
|
||||
width: 66.6666666667%; }
|
||||
|
||||
.large-push-8 {
|
||||
position: relative;
|
||||
left: 66.66667%; }
|
||||
left: 66.6666666667%; }
|
||||
|
||||
.large-pull-8 {
|
||||
position: relative;
|
||||
left: -66.66667%; }
|
||||
left: -66.6666666667%; }
|
||||
|
||||
.large-offset-7 {
|
||||
margin-left: 58.33333%; }
|
||||
margin-left: 58.3333333333%; }
|
||||
|
||||
.large-9 {
|
||||
width: 75%; }
|
||||
@ -1605,41 +1605,41 @@ textarea {
|
||||
left: -75%; }
|
||||
|
||||
.large-offset-8 {
|
||||
margin-left: 66.66667%; }
|
||||
margin-left: 66.6666666667%; }
|
||||
|
||||
.large-10 {
|
||||
width: 83.33333%; }
|
||||
width: 83.3333333333%; }
|
||||
|
||||
.large-push-10 {
|
||||
position: relative;
|
||||
left: 83.33333%; }
|
||||
left: 83.3333333333%; }
|
||||
|
||||
.large-pull-10 {
|
||||
position: relative;
|
||||
left: -83.33333%; }
|
||||
left: -83.3333333333%; }
|
||||
|
||||
.large-offset-9 {
|
||||
margin-left: 75%; }
|
||||
|
||||
.large-11 {
|
||||
width: 91.66667%; }
|
||||
width: 91.6666666667%; }
|
||||
|
||||
.large-push-11 {
|
||||
position: relative;
|
||||
left: 91.66667%; }
|
||||
left: 91.6666666667%; }
|
||||
|
||||
.large-pull-11 {
|
||||
position: relative;
|
||||
left: -91.66667%; }
|
||||
left: -91.6666666667%; }
|
||||
|
||||
.large-offset-10 {
|
||||
margin-left: 83.33333%; }
|
||||
margin-left: 83.3333333333%; }
|
||||
|
||||
.large-12 {
|
||||
width: 100%; }
|
||||
|
||||
.large-offset-11 {
|
||||
margin-left: 91.66667%; }
|
||||
margin-left: 91.6666666667%; }
|
||||
|
||||
.large-up-1 > .column, .large-up-1 > .columns {
|
||||
float: left;
|
||||
@ -1663,7 +1663,7 @@ textarea {
|
||||
|
||||
.large-up-3 > .column, .large-up-3 > .columns {
|
||||
float: left;
|
||||
width: 33.33333%; }
|
||||
width: 33.3333333333%; }
|
||||
.large-up-3 > .column:nth-of-type(1n), .large-up-3 > .columns:nth-of-type(1n) {
|
||||
clear: none; }
|
||||
.large-up-3 > .column:nth-of-type(3n+1), .large-up-3 > .columns:nth-of-type(3n+1) {
|
||||
@ -1693,7 +1693,7 @@ textarea {
|
||||
|
||||
.large-up-6 > .column, .large-up-6 > .columns {
|
||||
float: left;
|
||||
width: 16.66667%; }
|
||||
width: 16.6666666667%; }
|
||||
.large-up-6 > .column:nth-of-type(1n), .large-up-6 > .columns:nth-of-type(1n) {
|
||||
clear: none; }
|
||||
.large-up-6 > .column:nth-of-type(6n+1), .large-up-6 > .columns:nth-of-type(6n+1) {
|
||||
@ -1703,7 +1703,7 @@ textarea {
|
||||
|
||||
.large-up-7 > .column, .large-up-7 > .columns {
|
||||
float: left;
|
||||
width: 14.28571%; }
|
||||
width: 14.2857142857%; }
|
||||
.large-up-7 > .column:nth-of-type(1n), .large-up-7 > .columns:nth-of-type(1n) {
|
||||
clear: none; }
|
||||
.large-up-7 > .column:nth-of-type(7n+1), .large-up-7 > .columns:nth-of-type(7n+1) {
|
||||
|
||||
@ -1 +0,0 @@
|
||||
<div class=max-height><span id=chat-title class=chat><span class=chat-img-container><img class=chat-img></span><span class=chat-name></span></span><div id=date-template><div class=date></div></div><div id=message-template class="fill-me vertical message"><div class=author-image-container><img class=author-image></div><div class=grow><div class=bubble><div class=author></div><div class=message-text></div><div class=time></div></div></div></div><div class="fill-me max-height"><div class=grow id=message-container></div><div><div id=send-container class="fill-me vertical"><div class=answer-button-container><button id=previous-button class=answer-button><</button></div><div class=grow id=answer></div><div class=answer-button-container><button id=next-button class=answer-button>></button></div></div></div></div></div>
|
||||
@ -1 +0,0 @@
|
||||
<div><div id=tabs></div></div>
|
||||
@ -1 +0,0 @@
|
||||
<div><div id=author-template class="author-entry fill-me vertical"><div class=author-image-container><img class=author-image></div><div class="author-name grow"></div><div class=user-flag>1</div></div><div id=author-list></div></div>
|
||||
@ -1 +0,0 @@
|
||||
<div>chats</div>
|
||||
@ -1 +0,0 @@
|
||||
<div class="max-height fill-me"><div class="row max-width grow flex-center"><div class="columns small-centered small-12 smedium-9 medium-11 large-7"><h3 data-translation=ask-settings></h3><label class=row><span class="columns small-6" data-translation=ignore-card-always></span> <span class="columns small-6"><input type=checkbox class=setting name=ignore-card-always value=true></span></label><h5 data-translation=settings-ignore-buttons-heading></h5><p data-translation=settings-ignore-buttons-explanation><div class=row><div class="columns small-12 smedium-6"><label><input class=setting required name=ignore-button-1-text data-default=ignore-card-1 data-default-translateable=1> <span data-translation=settings-ignore-button-1-text></span></label></div><div class="columns small-12 smedium-6"><label><input type=number class=setting required name=ignore-button-1-time data-default=120> <span data-translation=settings-ignore-button-1-time></span></label></div></div><div class=row><div class="columns small-12 smedium-6"><label><input class=setting required name=ignore-button-2-text data-default=ignore-card-2 data-default-translateable=1> <span data-translation=settings-ignore-button-2-text></span></label></div><div class="columns small-12 smedium-6"><label><input type=number class=setting required name=ignore-button-2-time data-default=1440> <span data-translation=settings-ignore-button-2-time></span></label></div></div><div class=row><div class="columns small-12 smedium-6"><label><input class=setting required name=ignore-button-3-text data-default=ignore-card-3 data-default-translateable=1> <span data-translation=settings-ignore-button-3-text></span></label></div><div class="columns small-12 smedium-6"><label><input type=number class=setting required name=ignore-button-3-time data-default=7200> <span data-translation=settings-ignore-button-3-time></span></label></div></div><div class=row><div class="columns small-12 smedium-6"><label><input class=setting required name=ignore-button-4-text data-default=ignore-card-4 data-default-translateable=1> <span data-translation=settings-ignore-button-4-text></span></label></div><div class="columns small-12 smedium-6"><label><input type=number class=setting required name=ignore-button-4-time data-default=525600> <span data-translation=settings-ignore-button-4-time></span></label></div></div></div></div></div>
|
||||
1
public/html/application/level.html
Normal file
1
public/html/application/level.html
Normal file
@ -0,0 +1 @@
|
||||
<div><div id=segment-leaf-template class=segment><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=level></div></div>
|
||||
@ -1 +0,0 @@
|
||||
<div><div id=chat-template class="chat overview fill-me vertical"><div class=chat-img-container><img class=chat-img></div><div class=grow><div class="fill-me vertical"><div class="chat-name grow"></div><div class=unread-message-counter></div></div><div class="fill-me vertical"><div class="chat-last-message grow"></div><div class=chat-last-message-timestamp></div></div></div></div><div id=chat-container></div></div>
|
||||
@ -1 +0,0 @@
|
||||
<div><div id=author-template class="author-entry fill-me vertical"><div class=author-image-container><img class=author-image></div><div class="author-name grow"></div><div class=user-flag>1</div></div><div id=author-list></div></div>
|
||||
@ -1 +0,0 @@
|
||||
<div class=max-height><span id=chat-title class=chat><span class=chat-img-container><img class=chat-img></span><span class=chat-name></span></span><div id=date-template><div class=date></div></div><div id=message-template class="fill-me vertical message"><div class=author-image-container><img class=author-image></div><div class=grow><div class=bubble><div class=author></div><div class=message-text></div><div class=time></div></div></div></div><div class="fill-me max-height"><div class=grow id=message-container></div><div><div id=send-container class="fill-me vertical"><div class=answer-button-container><button id=previous-button class=answer-button><</button></div><div class=grow id=answer></div><div class=answer-button-container><button id=next-button class=answer-button>></button></div></div></div></div></div>
|
||||
@ -1 +0,0 @@
|
||||
<div>chats</div>
|
||||
@ -1 +0,0 @@
|
||||
<div><div id=tabs></div></div>
|
||||
@ -39,7 +39,7 @@
|
||||
<link href="core/css/theme.css" media="screen,print" rel="stylesheet" type="text/css">
|
||||
<link href="core/css/settingsSite.css" media="screen,print" rel="stylesheet" type="text/css">
|
||||
<link href="pwaAssets/css/pwaAssets.css" media="screen,print" rel="stylesheet" type="text/css">
|
||||
<link href="css/stories.css" media="screen,print" rel="stylesheet" type="text/css">
|
||||
<link href="css/wordRotator.css" media="screen,print" rel="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body class='blue'>
|
||||
|
||||
362
public/js/app.js
362
public/js/app.js
@ -2755,173 +2755,273 @@ function applyPolyfills(){
|
||||
});
|
||||
}
|
||||
|
||||
SystemSettings.setBasePath("/pwa/stories/public/");
|
||||
SystemSettings.setBasePath("/pwa/wordRotator/public/");
|
||||
Translator.supportedLanguages = ["de", "en"];
|
||||
Translator.markTranslations = false;
|
||||
|
||||
class DataManager {
|
||||
static load(url, isCachable, raw) {
|
||||
isCachable = Helper.nonNull(isCachable, false);
|
||||
raw = Helper.nonNull(raw, false);
|
||||
let fullUrl = (isCachable) ? Helper.basePath(DataManager.cachePath + url) : Helper.basePath(DataManager.dataPath + url);
|
||||
return fetch(fullUrl, {"credentials": "same-origin"}).then(function (res) {
|
||||
if (raw) {
|
||||
return res.text();
|
||||
}
|
||||
return res.json();
|
||||
}).catch(function (e) {
|
||||
console.error("error", e);
|
||||
if (!raw) {
|
||||
return {
|
||||
"success": false,
|
||||
"errors": [
|
||||
"not-online"
|
||||
]
|
||||
}
|
||||
}
|
||||
});
|
||||
class Segment{
|
||||
constructor(element){
|
||||
this.rotation = 0;
|
||||
this.element = element;
|
||||
}
|
||||
|
||||
static send(url, params) {
|
||||
let fullUrl = Helper.basePath(DataManager.dataPath + url);
|
||||
isSolved(){
|
||||
return this.rotation === 0;
|
||||
}
|
||||
|
||||
rotate(){};
|
||||
|
||||
if (!(params instanceof FormData)) {
|
||||
let newParams = new FormData();
|
||||
for (let k in params) {
|
||||
newParams.append(k, params[k]);
|
||||
}
|
||||
params = newParams;
|
||||
}
|
||||
_updateElement(){};
|
||||
|
||||
return fetch(fullUrl, {
|
||||
"credentials": "same-origin",
|
||||
"method": "POST",
|
||||
"body": params
|
||||
}).then(function (res) {
|
||||
return res.json();
|
||||
}).catch(function (e) {
|
||||
console.error("error", e);
|
||||
return {
|
||||
"success": false,
|
||||
"errors": [
|
||||
"not-online"
|
||||
]
|
||||
}
|
||||
});
|
||||
applyRotations(rotations){
|
||||
return rotations;
|
||||
}
|
||||
|
||||
static buildQuery(values) {
|
||||
return Helper.buildQuery(values);
|
||||
getElement()
|
||||
{
|
||||
return this.element;
|
||||
}
|
||||
}
|
||||
|
||||
DataManager.dataPath = "data/";
|
||||
DataManager.cachePath = "cached/";
|
||||
|
||||
class SettingsSite extends AbstractSite$1 {
|
||||
constructor(siteManager) {
|
||||
super(siteManager, 'public/html/settings.html', "settings");
|
||||
for (let k in SettingsSite.settingsFragments) {
|
||||
this.addSettingsFragment(k, new SettingsSite.settingsFragments[k](this));
|
||||
}
|
||||
this.active = null;
|
||||
class ParentSegment extends Segment {
|
||||
constructor(element) {
|
||||
super(element);
|
||||
this.children = [];
|
||||
this.class = "rotate-0";
|
||||
}
|
||||
|
||||
addSettingsFragment(name, settingsFragment) {
|
||||
this.addFragment("#settings-fragments", settingsFragment);
|
||||
delete this.fragments["#settings-fragments"];
|
||||
this.fragments[name] = settingsFragment;
|
||||
rotate() {
|
||||
this.rotation += 90;
|
||||
this.rotation %= 360;
|
||||
|
||||
this._updateRotationClass();
|
||||
}
|
||||
|
||||
onStart() {
|
||||
let res = super.onStart();
|
||||
if (Helper.isNotNull(this.active) && !this.fragments[this.active].isActive()) {
|
||||
this.setActive(null);
|
||||
applyRotations(rotations)
|
||||
{
|
||||
// debugger;
|
||||
this.rotation = rotations[0];
|
||||
rotations.splice(0,1);
|
||||
for (let i = 0, n = this.children.length; i < n; i++) {
|
||||
rotations = this.children[i].applyRotations(rotations);
|
||||
}
|
||||
|
||||
this.buildList();
|
||||
return res;
|
||||
return rotations;
|
||||
}
|
||||
|
||||
setActive(name) {
|
||||
if (Helper.isNotNull(this.active)) {
|
||||
this.fragments[this.active].inflatePromise.then(function (view) {
|
||||
view.classList.remove("active");
|
||||
});
|
||||
this.findBy("#show-fragment-" + this.active).classList.remove("active");
|
||||
}
|
||||
this.active = name;
|
||||
if (Helper.isNotNull(this.active)) {
|
||||
this.fragments[this.active].inflatePromise.then(function (view) {
|
||||
view.classList.add("active");
|
||||
});
|
||||
this.findBy("#show-fragment-" + this.active).classList.add("active");
|
||||
}
|
||||
}
|
||||
|
||||
buildList() {
|
||||
let listNameElem = this.findBy("#settings-fragment-list");
|
||||
listNameElem.removeAllChildren();
|
||||
|
||||
let self = this;
|
||||
for (let k in this.fragments) {
|
||||
if (this.fragments[k].isActive()) {
|
||||
|
||||
let liElement = document.createElement("li");
|
||||
liElement.id = "show-fragment-" + k;
|
||||
liElement.appendChild(Translator.makePersistentTranslation(k, null, "a"));
|
||||
liElement.addEventListener("click", function () {
|
||||
self.setActive(k);
|
||||
});
|
||||
listNameElem.appendChild(liElement);
|
||||
|
||||
if (Helper.isNull(this.active)) {
|
||||
this.setActive(k);
|
||||
}
|
||||
isSolved() {
|
||||
for (let i = 0, n = this.children.length; i < n; i++) {
|
||||
if (!this.children[i].isSolved()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return super.isSolved();
|
||||
}
|
||||
|
||||
static addSettingsFragment(name, settingsFragment) {
|
||||
SettingsSite.settingsFragments[name] = settingsFragment;
|
||||
setChildren(children) {
|
||||
this.children = [];
|
||||
for (let i = 0, n = children.length; i < n; i++) {
|
||||
this.addChild(children[i]);
|
||||
}
|
||||
}
|
||||
|
||||
static setAddSettingsSite(addLink) {
|
||||
SettingsSite.shouldAddSettingsSite = addLink;
|
||||
addChild(child) {
|
||||
this.children.push(child);
|
||||
this._updateElement();
|
||||
}
|
||||
|
||||
_updateRotationClass(){
|
||||
this.element.classList.remove(this.class);
|
||||
this.class = "rotate-" + this.rotation;
|
||||
this.element.classList.add(this.class);
|
||||
}
|
||||
|
||||
_updateElement() {
|
||||
const childContainer = this.element.querySelector(".child-container");
|
||||
childContainer.removeAllChildren();
|
||||
|
||||
this._updateRotationClass();
|
||||
|
||||
const self = this;
|
||||
this.element.onclick = function () {
|
||||
self.rotate();
|
||||
};
|
||||
|
||||
for (let i = 0, n = this.children.length; i < n; i++) {
|
||||
this.children[i]._updateElement();
|
||||
childContainer.appendChild(this.children[i].getElement());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SettingsSite.settingsFragments = {};
|
||||
SettingsSite.shouldAddSettingsSite = true;
|
||||
class LeafSegment extends Segment{
|
||||
|
||||
InitPromise.addPromise(function (app) {
|
||||
if (SettingsSite.shouldAddSettingsSite) {
|
||||
app.addDeepLink("settings", SettingsSite.name);
|
||||
|
||||
let settingsAction = new MenuAction("settings", function () {
|
||||
app.startSite(SettingsSite.name);
|
||||
}, MenuAction.SHOW_FOR_LARGE, 10000);
|
||||
settingsAction.setIcon("img/settings.png");
|
||||
app.addDefaultAction(settingsAction);
|
||||
constructor(element, leaf) {
|
||||
super(element);
|
||||
this.leaf = 'A';
|
||||
if (Helper.isNotNull(leaf))
|
||||
{
|
||||
this.setLeaf(leaf);
|
||||
}
|
||||
}
|
||||
|
||||
setLeaf(leaf)
|
||||
{
|
||||
this.leaf = leaf;
|
||||
}
|
||||
});
|
||||
|
||||
class ClockSite extends AbstractSite$1
|
||||
{
|
||||
_updateElement() {
|
||||
this.element.querySelector(".leaf-element").removeAllChildren().appendChild(document.createTextNode(this.leaf));
|
||||
}
|
||||
}
|
||||
|
||||
class TemplateContainer{
|
||||
constructor(leafTemplate, parentTemplate, rowTemplate){
|
||||
this.leafTemplate = leafTemplate;
|
||||
this.parentTemplate = parentTemplate;
|
||||
this.rowTemplate = rowTemplate;
|
||||
}
|
||||
|
||||
copyLeafTemplate()
|
||||
{
|
||||
return Helper.cloneNode(this.leafTemplate);
|
||||
}
|
||||
|
||||
copyParentTemplate()
|
||||
{
|
||||
return Helper.cloneNode(this.parentTemplate);
|
||||
}
|
||||
|
||||
copyRowTemplate()
|
||||
{
|
||||
return Helper.cloneNode(this.rowTemplate);
|
||||
}
|
||||
}
|
||||
|
||||
class Level {
|
||||
constructor(templateContainer) {
|
||||
this.rootSegment = null;
|
||||
this.words = [];
|
||||
this.startRotations = [];
|
||||
this.templateContainer = templateContainer;
|
||||
}
|
||||
|
||||
setWords(words)
|
||||
{
|
||||
this.words = words;
|
||||
}
|
||||
|
||||
setStartRotations(rotations)
|
||||
{
|
||||
this.startRotations = rotations;
|
||||
}
|
||||
|
||||
hasWon() {
|
||||
return this.rootSegment.isSolved();
|
||||
}
|
||||
|
||||
getRootSegment(){
|
||||
return this.rootSegment;
|
||||
}
|
||||
|
||||
createSegments() {};
|
||||
|
||||
static _createLeafsForWord(word, leafSegmentTemplate)
|
||||
{
|
||||
let leafSegments = [];
|
||||
for (let i = 0, n = word.length; i < n; i++) {
|
||||
leafSegments.push(new LeafSegment(Helper.cloneNode(leafSegmentTemplate), word.charAt(i)));
|
||||
}
|
||||
return leafSegments;
|
||||
}
|
||||
}
|
||||
|
||||
class RowSegment extends ParentSegment{
|
||||
rotate() {}
|
||||
|
||||
applyRotations(rotations)
|
||||
{
|
||||
for (let i = 0, n = this.children.length; i < n; i++) {
|
||||
rotations = this.children[i].applyRotations(rotations);
|
||||
}
|
||||
return rotations;
|
||||
}
|
||||
}
|
||||
|
||||
class SimpleLevel extends Level{
|
||||
|
||||
createSegments() {
|
||||
if (this.words.length >= 2 && this.words[0].length >= 6 &&this.words[1].length >= 6){
|
||||
|
||||
let leafsWordOne = Level._createLeafsForWord(this.words[0], this.templateContainer.copyLeafTemplate());
|
||||
let leafsWordTwo = Level._createLeafsForWord(this.words[1], this.templateContainer.copyLeafTemplate());
|
||||
|
||||
let segmentOne = new ParentSegment(this.templateContainer.copyParentTemplate());
|
||||
let segmentTwo = new ParentSegment(this.templateContainer.copyParentTemplate());
|
||||
let segmentThree = new ParentSegment(this.templateContainer.copyParentTemplate());
|
||||
|
||||
segmentOne.addChild(leafsWordOne[0]);
|
||||
segmentOne.addChild(leafsWordOne[1]);
|
||||
segmentOne.addChild(leafsWordTwo[0]);
|
||||
segmentOne.addChild(leafsWordTwo[1]);
|
||||
|
||||
segmentTwo.addChild(leafsWordOne[2]);
|
||||
segmentTwo.addChild(leafsWordOne[3]);
|
||||
segmentTwo.addChild(leafsWordTwo[2]);
|
||||
segmentTwo.addChild(leafsWordTwo[3]);
|
||||
|
||||
segmentThree.addChild(leafsWordOne[4]);
|
||||
segmentThree.addChild(leafsWordOne[5]);
|
||||
segmentThree.addChild(leafsWordTwo[4]);
|
||||
segmentThree.addChild(leafsWordTwo[5]);
|
||||
|
||||
this.rootSegment = new RowSegment(this.templateContainer.copyRowTemplate());
|
||||
this.rootSegment.addChild(segmentOne);
|
||||
this.rootSegment.addChild(segmentTwo);
|
||||
this.rootSegment.addChild(segmentThree);
|
||||
|
||||
this.rootSegment.applyRotations(this.startRotations);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class LevelSite extends AbstractSite$1{
|
||||
constructor(siteManager) {
|
||||
super(siteManager, "html/application/clock.html");
|
||||
super(siteManager, "html/application/level.html", "level");
|
||||
}
|
||||
|
||||
|
||||
onConstruct(args) {
|
||||
this.setTitle("clock");
|
||||
this.setTitle("Level");
|
||||
return super.onConstruct(args);
|
||||
}
|
||||
|
||||
onFirstStart(){
|
||||
DataManager.load("clock").then(function(data){
|
||||
document.getElementById("current-time").innerText = data.result.date;
|
||||
});
|
||||
onFirstStart() {
|
||||
super.onFirstStart();
|
||||
|
||||
let leafSegmentTemplate = this.findBy("#segment-leaf-template");
|
||||
let parentSegmentTemplate = this.findBy("#segment-parent-template");
|
||||
let rowSegmentTemplate = this.findBy("#segment-row-template");
|
||||
|
||||
leafSegmentTemplate.id = null;
|
||||
parentSegmentTemplate.id = null;
|
||||
rowSegmentTemplate.id = null;
|
||||
|
||||
leafSegmentTemplate.remove();
|
||||
parentSegmentTemplate.remove();
|
||||
rowSegmentTemplate.remove();
|
||||
|
||||
let templateContainer = new TemplateContainer(leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate);
|
||||
|
||||
|
||||
let level = new SimpleLevel(templateContainer);
|
||||
level.setWords([
|
||||
"Dynamo",
|
||||
"Abhang"
|
||||
]);
|
||||
level.setStartRotations([0,90,180]);
|
||||
|
||||
level.createSegments();
|
||||
level.getRootSegment()._updateElement();
|
||||
this.findBy("#level").appendChild(level.getRootSegment().getElement());
|
||||
}
|
||||
}
|
||||
|
||||
@ -2941,7 +3041,7 @@ ShareManager.addShareButton(new TelegramShareButton('img/telegram.svg'));
|
||||
let app = new App();
|
||||
// app.addDeepLink("policy", PrivatePolicySite.name);
|
||||
app.setAddThemeAction(true);
|
||||
// app.addDefaultAction(Translator.generateChangeLanguageMenuAction());
|
||||
app.addDefaultAction(Translator.generateChangeLanguageMenuAction());
|
||||
|
||||
//bridge für Android
|
||||
// window["ThemeManager"] = ThemeManager;
|
||||
@ -2952,6 +3052,6 @@ app.setAddThemeAction(true);
|
||||
// window["Translator"]["setLanguage"] = Translator.setLanguage;
|
||||
|
||||
InitPromise.resolve(app).then(function(){
|
||||
app.start(ClockSite);
|
||||
app.start(LevelSite);
|
||||
Translator.setLanguage("de");
|
||||
});
|
||||
|
||||
@ -9,7 +9,8 @@ import {
|
||||
WhatsappShareButton
|
||||
} from "./lib/pwa-lib";
|
||||
import './settings'
|
||||
import {ClockSite} from "../module/Application/pwa/js/site/ClockSite";
|
||||
// import {ClockSite} from "../module/Application/pwa/js/site/ClockSite";
|
||||
import {LevelSite} from "../module/Application/pwa/js/site/LevelSite";
|
||||
|
||||
applyPolyfills();
|
||||
|
||||
@ -27,7 +28,7 @@ ShareManager.addShareButton(new TelegramShareButton('img/telegram.svg'));
|
||||
let app = new App();
|
||||
// app.addDeepLink("policy", PrivatePolicySite.name);
|
||||
app.setAddThemeAction(true);
|
||||
// app.addDefaultAction(Translator.generateChangeLanguageMenuAction());
|
||||
app.addDefaultAction(Translator.generateChangeLanguageMenuAction());
|
||||
|
||||
//bridge für Android
|
||||
// window["ThemeManager"] = ThemeManager;
|
||||
@ -38,7 +39,7 @@ app.setAddThemeAction(true);
|
||||
// window["Translator"]["setLanguage"] = Translator.setLanguage;
|
||||
|
||||
InitPromise.resolve(app).then(function(){
|
||||
app.start(ClockSite);
|
||||
app.start(LevelSite);
|
||||
Translator.setLanguage("de");
|
||||
});
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import {SystemSettings, Translator} from "./lib/pwa-lib";
|
||||
|
||||
SystemSettings.setBasePath("/pwa/stories/public/");
|
||||
SystemSettings.setBasePath("/pwa/wordRotator/public/");
|
||||
Translator.supportedLanguages = ["de", "en"];
|
||||
Translator.markTranslations = false;
|
||||
|
||||
|
||||
@ -1,35 +0,0 @@
|
||||
<div class='max-height'>
|
||||
<span id='chat-title' class='chat'>
|
||||
<span class='chat-img-container'><img class='chat-img'></span>
|
||||
<span class='chat-name'></span>
|
||||
</span>
|
||||
<div id='date-template'>
|
||||
<div class='date'></div>
|
||||
</div>
|
||||
|
||||
<div id='message-template' class='fill-me vertical message'>
|
||||
<div class='author-image-container'><img class='author-image'></div>
|
||||
<div class='grow'>
|
||||
<div class='bubble'>
|
||||
<div class='author'></div>
|
||||
<div class='message-text'></div>
|
||||
<div class='time'></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='fill-me max-height'>
|
||||
<div class='grow' id='message-container'></div>
|
||||
<div>
|
||||
<div id='send-container' class='fill-me vertical'>
|
||||
<div class = 'answer-button-container'>
|
||||
<button id='previous-button' class='answer-button'><</button>
|
||||
</div>
|
||||
<div class='grow' id='answer'></div>
|
||||
<div class = 'answer-button-container'>
|
||||
<button id='next-button' class='answer-button'>></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -1,3 +0,0 @@
|
||||
<div>
|
||||
<div id = 'tabs'></div>
|
||||
</div>
|
||||
@ -1,10 +0,0 @@
|
||||
<div>
|
||||
<div id='author-template' class='author-entry fill-me vertical'>
|
||||
<div class='author-image-container'><img class='author-image'></div>
|
||||
<div class='author-name grow'></div>
|
||||
<!--<div>-->
|
||||
<div class='user-flag'>1</div>
|
||||
<!--</div>-->
|
||||
</div>
|
||||
<div id='author-list'></div>
|
||||
</div>
|
||||
@ -1,3 +0,0 @@
|
||||
<div>
|
||||
chats
|
||||
</div>
|
||||
@ -1,76 +0,0 @@
|
||||
<div class='max-height fill-me'>
|
||||
<div class='row max-width grow flex-center'>
|
||||
<div class='columns small-centered small-12 smedium-9 medium-11 large-7'>
|
||||
<h3 data-translation="ask-settings"></h3>
|
||||
<label class='row'>
|
||||
<span class='columns small-6' data-translation="ignore-card-always"></span>
|
||||
<span class='columns small-6'><input type="checkbox" class='setting' name='ignore-card-always'
|
||||
value='true'></span>
|
||||
</label>
|
||||
|
||||
<h5 data-translation="settings-ignore-buttons-heading"></h5>
|
||||
<p data-translation="settings-ignore-buttons-explanation"></p>
|
||||
|
||||
<div class='row'>
|
||||
<div class="columns small-12 smedium-6">
|
||||
<label>
|
||||
<input type="text" class='setting' required name="ignore-button-1-text"
|
||||
data-default="ignore-card-1" data-default-translateable="1">
|
||||
<span data-translation="settings-ignore-button-1-text"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="columns small-12 smedium-6">
|
||||
<label>
|
||||
<input type="number" class='setting' required name="ignore-button-1-time" data-default="120">
|
||||
<span data-translation="settings-ignore-button-1-time"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class='row'>
|
||||
<div class="columns small-12 smedium-6">
|
||||
<label>
|
||||
<input type="text" class='setting' required name="ignore-button-2-text"
|
||||
data-default="ignore-card-2" data-default-translateable="1">
|
||||
<span data-translation="settings-ignore-button-2-text"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="columns small-12 smedium-6">
|
||||
<label>
|
||||
<input type="number" class='setting' required name="ignore-button-2-time" data-default="1440">
|
||||
<span data-translation="settings-ignore-button-2-time"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class='row'>
|
||||
<div class="columns small-12 smedium-6">
|
||||
<label>
|
||||
<input type="text" class='setting' required name="ignore-button-3-text"
|
||||
data-default="ignore-card-3" data-default-translateable="1">
|
||||
<span data-translation="settings-ignore-button-3-text"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="columns small-12 smedium-6">
|
||||
<label>
|
||||
<input type="number" class='setting' required name="ignore-button-3-time" data-default="7200">
|
||||
<span data-translation="settings-ignore-button-3-time"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class='row'>
|
||||
<div class="columns small-12 smedium-6">
|
||||
<label>
|
||||
<input type="text" class='setting' required name="ignore-button-4-text" data-default="ignore-card-4"
|
||||
data-default-translateable="1">
|
||||
<span data-translation="settings-ignore-button-4-text"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="columns small-12 smedium-6">
|
||||
<label>
|
||||
<input type="number" class='setting' required name="ignore-button-4-time" data-default="525600">
|
||||
<span data-translation="settings-ignore-button-4-time"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
14
src/module/Application/pwa/html/application/level.html
Normal file
14
src/module/Application/pwa/html/application/level.html
Normal file
@ -0,0 +1,14 @@
|
||||
<div>
|
||||
<div id = 'segment-leaf-template' class = 'segment'>
|
||||
<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 = 'level'>
|
||||
</div>
|
||||
</div>
|
||||
@ -1,17 +0,0 @@
|
||||
<div>
|
||||
<div id='chat-template' class='chat overview fill-me vertical'>
|
||||
<div class = 'chat-img-container'><img class='chat-img'></div>
|
||||
<div class='grow'>
|
||||
<div class = 'fill-me vertical'>
|
||||
<div class='chat-name grow'></div>
|
||||
<div class = 'unread-message-counter'></div>
|
||||
</div>
|
||||
<div class = 'fill-me vertical'>
|
||||
<div class='chat-last-message grow'></div>
|
||||
<div class = 'chat-last-message-timestamp'></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='chat-container'>
|
||||
</div>
|
||||
</div>
|
||||
46
src/module/Application/pwa/js/site/LevelSite.js
Normal file
46
src/module/Application/pwa/js/site/LevelSite.js
Normal file
@ -0,0 +1,46 @@
|
||||
import {AbstractSite, Helper} from "../../../../../js/lib/pwa-lib";
|
||||
import {ParentSegment} from "../wordrotator/Segment/ParentSegment";
|
||||
import {LeafSegment} from "../wordrotator/Segment/LeafSegment";
|
||||
import {TemplateContainer} from "../wordrotator/Segment/TemplateContainer";
|
||||
import {SimpleLevel} from "../wordrotator/Level/SimpleLevel";
|
||||
|
||||
export class LevelSite extends AbstractSite{
|
||||
constructor(siteManager) {
|
||||
super(siteManager, "html/application/level.html", "level");
|
||||
}
|
||||
|
||||
onConstruct(args) {
|
||||
this.setTitle("Level");
|
||||
return super.onConstruct(args);
|
||||
}
|
||||
|
||||
onFirstStart() {
|
||||
super.onFirstStart();
|
||||
|
||||
let leafSegmentTemplate = this.findBy("#segment-leaf-template");
|
||||
let parentSegmentTemplate = this.findBy("#segment-parent-template");
|
||||
let rowSegmentTemplate = this.findBy("#segment-row-template");
|
||||
|
||||
leafSegmentTemplate.id = null;
|
||||
parentSegmentTemplate.id = null;
|
||||
rowSegmentTemplate.id = null;
|
||||
|
||||
leafSegmentTemplate.remove();
|
||||
parentSegmentTemplate.remove();
|
||||
rowSegmentTemplate.remove();
|
||||
|
||||
let templateContainer = new TemplateContainer(leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate);
|
||||
|
||||
|
||||
let level = new SimpleLevel(templateContainer);
|
||||
level.setWords([
|
||||
"Dynamo",
|
||||
"Abhang"
|
||||
]);
|
||||
level.setStartRotations([0,90,180]);
|
||||
|
||||
level.createSegments();
|
||||
level.getRootSegment()._updateElement();
|
||||
this.findBy("#level").appendChild(level.getRootSegment().getElement());
|
||||
}
|
||||
}
|
||||
40
src/module/Application/pwa/js/wordrotator/Level/Level.js
Normal file
40
src/module/Application/pwa/js/wordrotator/Level/Level.js
Normal file
@ -0,0 +1,40 @@
|
||||
import {LeafSegment} from "../Segment/LeafSegment";
|
||||
import {Helper} from "../../../../../../js/lib/pwa-lib";
|
||||
|
||||
export class Level {
|
||||
constructor(templateContainer) {
|
||||
this.rootSegment = null;
|
||||
this.words = [];
|
||||
this.startRotations = [];
|
||||
this.templateContainer = templateContainer;
|
||||
}
|
||||
|
||||
setWords(words)
|
||||
{
|
||||
this.words = words;
|
||||
}
|
||||
|
||||
setStartRotations(rotations)
|
||||
{
|
||||
this.startRotations = rotations;
|
||||
}
|
||||
|
||||
hasWon() {
|
||||
return this.rootSegment.isSolved();
|
||||
}
|
||||
|
||||
getRootSegment(){
|
||||
return this.rootSegment;
|
||||
}
|
||||
|
||||
createSegments() {};
|
||||
|
||||
static _createLeafsForWord(word, leafSegmentTemplate)
|
||||
{
|
||||
let leafSegments = [];
|
||||
for (let i = 0, n = word.length; i < n; i++) {
|
||||
leafSegments.push(new LeafSegment(Helper.cloneNode(leafSegmentTemplate), word.charAt(i)));
|
||||
}
|
||||
return leafSegments;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
import {Level} from "./Level";
|
||||
import {ParentSegment} from "../Segment/ParentSegment";
|
||||
import {RowSegment} from "../Segment/RowSegment";
|
||||
|
||||
export class SimpleLevel extends Level{
|
||||
|
||||
createSegments() {
|
||||
if (this.words.length >= 2 && this.words[0].length >= 6 &&this.words[1].length >= 6){
|
||||
|
||||
let leafsWordOne = Level._createLeafsForWord(this.words[0], this.templateContainer.copyLeafTemplate());
|
||||
let leafsWordTwo = Level._createLeafsForWord(this.words[1], this.templateContainer.copyLeafTemplate());
|
||||
|
||||
let segmentOne = new ParentSegment(this.templateContainer.copyParentTemplate());
|
||||
let segmentTwo = new ParentSegment(this.templateContainer.copyParentTemplate());
|
||||
let segmentThree = new ParentSegment(this.templateContainer.copyParentTemplate());
|
||||
|
||||
segmentOne.addChild(leafsWordOne[0]);
|
||||
segmentOne.addChild(leafsWordOne[1]);
|
||||
segmentOne.addChild(leafsWordTwo[0]);
|
||||
segmentOne.addChild(leafsWordTwo[1]);
|
||||
|
||||
segmentTwo.addChild(leafsWordOne[2]);
|
||||
segmentTwo.addChild(leafsWordOne[3]);
|
||||
segmentTwo.addChild(leafsWordTwo[2]);
|
||||
segmentTwo.addChild(leafsWordTwo[3]);
|
||||
|
||||
segmentThree.addChild(leafsWordOne[4]);
|
||||
segmentThree.addChild(leafsWordOne[5]);
|
||||
segmentThree.addChild(leafsWordTwo[4]);
|
||||
segmentThree.addChild(leafsWordTwo[5]);
|
||||
|
||||
this.rootSegment = new RowSegment(this.templateContainer.copyRowTemplate());
|
||||
this.rootSegment.addChild(segmentOne);
|
||||
this.rootSegment.addChild(segmentTwo);
|
||||
this.rootSegment.addChild(segmentThree);
|
||||
|
||||
this.rootSegment.applyRotations(this.startRotations);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
import {Segment} from "./Segment";
|
||||
import {Helper} from "../../../../../../js/lib/pwa-lib";
|
||||
|
||||
export class LeafSegment extends Segment{
|
||||
|
||||
constructor(element, leaf) {
|
||||
super(element);
|
||||
this.leaf = 'A';
|
||||
if (Helper.isNotNull(leaf))
|
||||
{
|
||||
this.setLeaf(leaf);
|
||||
}
|
||||
}
|
||||
|
||||
setLeaf(leaf)
|
||||
{
|
||||
this.leaf = leaf;
|
||||
}
|
||||
|
||||
_updateElement() {
|
||||
this.element.querySelector(".leaf-element").removeAllChildren().appendChild(document.createTextNode(this.leaf));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
import {Segment} from "./Segment";
|
||||
|
||||
export class ParentSegment extends Segment {
|
||||
constructor(element) {
|
||||
super(element);
|
||||
this.children = [];
|
||||
this.class = "rotate-0";
|
||||
}
|
||||
|
||||
rotate() {
|
||||
this.rotation += 90;
|
||||
this.rotation %= 360;
|
||||
|
||||
this._updateRotationClass()
|
||||
}
|
||||
|
||||
applyRotations(rotations)
|
||||
{
|
||||
// debugger;
|
||||
this.rotation = rotations[0];
|
||||
rotations.splice(0,1);
|
||||
for (let i = 0, n = this.children.length; i < n; i++) {
|
||||
rotations = this.children[i].applyRotations(rotations);
|
||||
}
|
||||
return rotations;
|
||||
}
|
||||
|
||||
isSolved() {
|
||||
for (let i = 0, n = this.children.length; i < n; i++) {
|
||||
if (!this.children[i].isSolved()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return super.isSolved();
|
||||
}
|
||||
|
||||
setChildren(children) {
|
||||
this.children = [];
|
||||
for (let i = 0, n = children.length; i < n; i++) {
|
||||
this.addChild(children[i]);
|
||||
}
|
||||
}
|
||||
|
||||
addChild(child) {
|
||||
this.children.push(child);
|
||||
this._updateElement();
|
||||
}
|
||||
|
||||
_updateRotationClass(){
|
||||
this.element.classList.remove(this.class);
|
||||
this.class = "rotate-" + this.rotation;
|
||||
this.element.classList.add(this.class);
|
||||
}
|
||||
|
||||
_updateElement() {
|
||||
const childContainer = this.element.querySelector(".child-container");
|
||||
childContainer.removeAllChildren();
|
||||
|
||||
this._updateRotationClass()
|
||||
|
||||
const self = this;
|
||||
this.element.onclick = function () {
|
||||
self.rotate();
|
||||
}
|
||||
|
||||
for (let i = 0, n = this.children.length; i < n; i++) {
|
||||
this.children[i]._updateElement();
|
||||
childContainer.appendChild(this.children[i].getElement());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,13 @@
|
||||
import {ParentSegment} from "./ParentSegment";
|
||||
|
||||
export class RowSegment extends ParentSegment{
|
||||
rotate() {}
|
||||
|
||||
applyRotations(rotations)
|
||||
{
|
||||
for (let i = 0, n = this.children.length; i < n; i++) {
|
||||
rotations = this.children[i].applyRotations(rotations);
|
||||
}
|
||||
return rotations;
|
||||
}
|
||||
}
|
||||
25
src/module/Application/pwa/js/wordrotator/Segment/Segment.js
Normal file
25
src/module/Application/pwa/js/wordrotator/Segment/Segment.js
Normal file
@ -0,0 +1,25 @@
|
||||
|
||||
|
||||
export class Segment{
|
||||
constructor(element){
|
||||
this.rotation = 0;
|
||||
this.element = element;
|
||||
}
|
||||
|
||||
isSolved(){
|
||||
return this.rotation === 0;
|
||||
}
|
||||
|
||||
rotate(){};
|
||||
|
||||
_updateElement(){};
|
||||
|
||||
applyRotations(rotations){
|
||||
return rotations;
|
||||
}
|
||||
|
||||
getElement()
|
||||
{
|
||||
return this.element;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
import {Helper} from "../../../../../../js/lib/pwa-lib";
|
||||
|
||||
export class TemplateContainer{
|
||||
constructor(leafTemplate, parentTemplate, rowTemplate){
|
||||
this.leafTemplate = leafTemplate;
|
||||
this.parentTemplate = parentTemplate;
|
||||
this.rowTemplate = rowTemplate;
|
||||
}
|
||||
|
||||
copyLeafTemplate()
|
||||
{
|
||||
return Helper.cloneNode(this.leafTemplate);
|
||||
}
|
||||
|
||||
copyParentTemplate()
|
||||
{
|
||||
return Helper.cloneNode(this.parentTemplate);
|
||||
}
|
||||
|
||||
copyRowTemplate()
|
||||
{
|
||||
return Helper.cloneNode(this.rowTemplate);
|
||||
}
|
||||
}
|
||||
@ -1,94 +0,0 @@
|
||||
.author {
|
||||
color: #979797; }
|
||||
.author:after {
|
||||
content: ':';
|
||||
padding-right: 2px; }
|
||||
|
||||
.chat-img-container, .author-image-container {
|
||||
width: 2.4rem;
|
||||
position: relative; }
|
||||
.chat-img-container .chat-img, .chat-img-container .author-image, .author-image-container .chat-img, .author-image-container .author-image {
|
||||
position: absolute;
|
||||
margin: 0.2em;
|
||||
border-radius: 50%;
|
||||
width: 1.8em; }
|
||||
|
||||
.chat {
|
||||
border-bottom: 1px solid #ececec; }
|
||||
.chat.overview {
|
||||
cursor: pointer; }
|
||||
.chat .chat-name {
|
||||
font-weight: bold; }
|
||||
.chat .chat-last-message {
|
||||
color: #555555;
|
||||
overflow: hidden;
|
||||
white-space: nowrap; }
|
||||
.chat .chat-last-message .isWriting {
|
||||
color: #aa1c1d; }
|
||||
.chat .chat-last-message-timestamp {
|
||||
font-size: 0.8rem; }
|
||||
.chat .unread-message-counter {
|
||||
background-color: red;
|
||||
border-radius: 50%;
|
||||
color: white;
|
||||
font-size: 0.7rem;
|
||||
border: 1px solid #9b0000;
|
||||
width: 1.2rem;
|
||||
height: 1.2rem;
|
||||
line-height: 1.2rem;
|
||||
text-align: center;
|
||||
vertical-align: middle; }
|
||||
.chat .unread-message-counter:empty {
|
||||
display: none; }
|
||||
|
||||
#chat-title {
|
||||
border-bottom: none; }
|
||||
#chat-title .chat-img {
|
||||
width: 1.4em;
|
||||
position: relative; }
|
||||
|
||||
.message {
|
||||
margin-bottom: 0.1rem; }
|
||||
.message.my-message {
|
||||
text-align: right; }
|
||||
.message.my-message .author-image-container, .message.my-message .author {
|
||||
display: none; }
|
||||
.message.my-message .bubble {
|
||||
background-color: rgba(255, 0, 0, 0.5);
|
||||
border-radius: 5px 5px 0 5px; }
|
||||
.message .author-image {
|
||||
bottom: 0; }
|
||||
.message .bubble {
|
||||
display: inline-block;
|
||||
padding: 0.2rem;
|
||||
border: 1px solid #646464;
|
||||
border-radius: 5px 5px 5px 0;
|
||||
max-width: 80%;
|
||||
text-align: left; }
|
||||
.message .bubble .author {
|
||||
font-size: 0.7rem;
|
||||
text-align: left;
|
||||
line-height: 0.9; }
|
||||
.message .bubble .message-text {
|
||||
line-height: 1; }
|
||||
.message .bubble .time {
|
||||
line-height: 0.9;
|
||||
font-size: 0.5rem;
|
||||
text-align: right; }
|
||||
|
||||
#answer {
|
||||
text-align: center;
|
||||
height: 100%;
|
||||
min-height: 50px; }
|
||||
|
||||
.answer-button-container .answer-button {
|
||||
overflow: hidden;
|
||||
margin-top: -0.1em;
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
margin-bottom: 0;
|
||||
font-size: 3rem;
|
||||
line-height: 1;
|
||||
padding: 0 0.1em 0.1em;
|
||||
text-align: center;
|
||||
vertical-align: middle; }
|
||||
@ -1,137 +0,0 @@
|
||||
$borderColor: #ececec;
|
||||
|
||||
//Allgemein
|
||||
.author {
|
||||
color: #979797;
|
||||
&:after {
|
||||
content: ':';
|
||||
padding-right: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
.chat-img-container, .author-image-container {
|
||||
width: 2.4rem;
|
||||
position: relative;
|
||||
.chat-img, .author-image {
|
||||
position: absolute;
|
||||
margin: 0.2em;
|
||||
border-radius: 50%;
|
||||
width: 1.8em;
|
||||
}
|
||||
}
|
||||
|
||||
//Overview
|
||||
.chat {
|
||||
border-bottom: 1px solid $borderColor;
|
||||
&.overview {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.chat-name {
|
||||
font-weight: bold;
|
||||
}
|
||||
.chat-last-message {
|
||||
color: #555555;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
|
||||
.isWriting {
|
||||
color: #aa1c1d;
|
||||
}
|
||||
}
|
||||
.chat-last-message-timestamp {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
.unread-message-counter {
|
||||
background-color: red;
|
||||
border-radius: 50%;
|
||||
color: white;
|
||||
font-size: 0.7rem;
|
||||
border: 1px solid #9b0000;
|
||||
|
||||
width: 1.2rem;
|
||||
height: 1.2rem;
|
||||
line-height: 1.2rem;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
|
||||
&:empty {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//------------Chat
|
||||
#chat-title {
|
||||
border-bottom: none;
|
||||
.chat-img {
|
||||
width: 1.4em;
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
|
||||
.message {
|
||||
margin-bottom: 0.1rem;
|
||||
|
||||
&.my-message {
|
||||
text-align: right;
|
||||
|
||||
.author-image-container, .author {
|
||||
display: none;
|
||||
}
|
||||
.bubble {
|
||||
background-color: rgba(255, 0, 0, 0.5);
|
||||
border-radius: 5px 5px 0 5px;
|
||||
}
|
||||
}
|
||||
.author-image {
|
||||
bottom: 0;
|
||||
}
|
||||
.bubble {
|
||||
display: inline-block;
|
||||
padding: 0.2rem;
|
||||
border: 1px solid #646464;
|
||||
border-radius: 5px 5px 5px 0;
|
||||
max-width: 80%;
|
||||
text-align: left;
|
||||
|
||||
.author {
|
||||
font-size: 0.7rem;
|
||||
text-align: left;
|
||||
line-height: 0.9;
|
||||
}
|
||||
.message-text {
|
||||
line-height: 1;
|
||||
}
|
||||
.time {
|
||||
line-height: 0.9;
|
||||
font-size: 0.5rem;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#answer {
|
||||
text-align: center;
|
||||
height: 100%;
|
||||
min-height: 50px;
|
||||
}
|
||||
|
||||
.answer-button-container {
|
||||
.answer-button {
|
||||
overflow: hidden;
|
||||
margin-top: -0.1em;
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
margin-bottom: 0;
|
||||
font-size: 3rem;
|
||||
line-height: 1;
|
||||
padding: 0 0.1em 0.1em;
|
||||
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@import "editStory";
|
||||
36
src/scss/wordRotator.scss
Normal file
36
src/scss/wordRotator.scss
Normal file
@ -0,0 +1,36 @@
|
||||
.segment
|
||||
{
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
&.segment-parent{
|
||||
border: solid 1px #a9a9a9;
|
||||
border-radius: 3px;
|
||||
.segment{
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
&.rotate-90
|
||||
{
|
||||
transform: rotate(90deg);
|
||||
.segment{
|
||||
transform: rotate(-90deg);
|
||||
}
|
||||
}
|
||||
|
||||
&.rotate-180
|
||||
{
|
||||
transform: rotate(180deg);
|
||||
.segment{
|
||||
transform: rotate(-180deg);
|
||||
}
|
||||
}
|
||||
|
||||
&.rotate-270
|
||||
{
|
||||
transform: rotate(270deg);
|
||||
.segment{
|
||||
transform: rotate(-270deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user