Level-number hinzugefügt
This commit is contained in:
parent
b256142c06
commit
09321d4dce
@ -1,3 +1,3 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
npm run build 1
|
npm run build
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
2018-09-18T21:39:55+02:00 ERR (3):
|
||||||
|
2018-09-18T22:19:51+02:00 ERR (3):
|
||||||
|
2018-09-18T22:36:07+02:00 ERR (3):
|
||||||
|
2018-09-18T22:37:14+02:00 ERR (3):
|
||||||
|
2018-09-18T22:37:16+02:00 ERR (3):
|
||||||
|
2018-09-18T23:03:24+02:00 ERR (3):
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
2018-09-18T21:39:55+02:00 ERR (3):
|
||||||
|
2018-09-18T22:19:51+02:00 ERR (3):
|
||||||
|
2018-09-18T22:36:07+02:00 ERR (3):
|
||||||
|
2018-09-18T22:37:14+02:00 ERR (3):
|
||||||
|
2018-09-18T22:37:16+02:00 ERR (3):
|
||||||
|
2018-09-18T23:03:24+02:00 ERR (3):
|
||||||
File diff suppressed because one or more lines are too long
@ -52,9 +52,14 @@
|
|||||||
<div class="top-bar-title">
|
<div class="top-bar-title">
|
||||||
<strong>
|
<strong>
|
||||||
<a class="hidden-link" href=".">
|
<a class="hidden-link" href=".">
|
||||||
WordRotator</a>
|
<span class="show-for-smedium">WordRotator</span>
|
||||||
|
<span class="show-for-small-only">WR</span>
|
||||||
|
</a>
|
||||||
</strong>
|
</strong>
|
||||||
</div>
|
</div>
|
||||||
|
<span id='level-number-container'>
|
||||||
|
<span id='level-number'></span>
|
||||||
|
</span>
|
||||||
<span data-responsive-toggle="responsive-menu" id="responsive-menu-toggle" class="right" data-hide-for="always"
|
<span data-responsive-toggle="responsive-menu" id="responsive-menu-toggle" class="right" data-hide-for="always"
|
||||||
style="">
|
style="">
|
||||||
<button class="menu-icon" type="button" data-toggle=""></button>
|
<button class="menu-icon" type="button" data-toggle=""></button>
|
||||||
@ -86,11 +91,13 @@
|
|||||||
<div class="mainContainer">
|
<div class="mainContainer">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="columns small-12" id="main-content">
|
<div class="columns small-12" id="main-content">
|
||||||
<div id="site-content" role="main"><div class='loader'>
|
<div id="site-content" role="main">
|
||||||
|
<div class='loader'>
|
||||||
<svg viewBox="0 0 32 32" width="32" height="32">
|
<svg viewBox="0 0 32 32" width="32" height="32">
|
||||||
<circle r="14" id="spinner" cx="16" cy="16" fill="none"></circle>
|
<circle r="14" id="spinner" cx="16" cy="16" fill="none"></circle>
|
||||||
</svg>
|
</svg>
|
||||||
</div></div>
|
</div>
|
||||||
|
</div>
|
||||||
<div id="flashMessageContainerAbsoulte">
|
<div id="flashMessageContainerAbsoulte">
|
||||||
<div id="flashMessageContainer"></div>
|
<div id="flashMessageContainer"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
5632
public/js/app.js
5632
public/js/app.js
File diff suppressed because one or more lines are too long
@ -36,7 +36,7 @@ ShareManager.addShareButton(new TelegramShareButton('img/telegram.svg'));
|
|||||||
let app = new App();
|
let app = new App();
|
||||||
// app.addDeepLink("policy", PrivatePolicySite.name);
|
// app.addDeepLink("policy", PrivatePolicySite.name);
|
||||||
app.setAddThemeAction(true);
|
app.setAddThemeAction(true);
|
||||||
app.addDefaultAction(Translator.generateChangeLanguageMenuAction());
|
// app.addDefaultAction(Translator.generateChangeLanguageMenuAction());
|
||||||
|
|
||||||
// bridge für Android
|
// bridge für Android
|
||||||
window["ThemeManager"] = ThemeManager;
|
window["ThemeManager"] = ThemeManager;
|
||||||
|
|||||||
@ -9,13 +9,13 @@ class DelayPromise extends Promise {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class ScaleHelper {
|
class ScaleHelper {
|
||||||
scaleTo(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight) {
|
scaleTo(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, addListener) {
|
||||||
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);
|
||||||
fontWeight = Helper.nonNull(fontWeight, fontElement.innerHTML.length);
|
fontWeight = Helper.nonNull(fontWeight, fontElement.innerHTML.length);
|
||||||
|
addListener = Helper.nonNull(addListener, true);
|
||||||
|
|
||||||
let hasNoTransitionClass = container.classList.contains("no-transition");
|
let hasNoTransitionClass = container.classList.contains("no-transition");
|
||||||
container.classList.add("no-transition");
|
container.classList.add("no-transition");
|
||||||
@ -51,11 +51,15 @@ class ScaleHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let self = this;
|
let self = this;
|
||||||
window.addEventListener("resize", function () {
|
let listener = function () {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
self.scaleTo(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight);
|
self.scaleTo(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, false);
|
||||||
}, 255);
|
}, 255);
|
||||||
});
|
};
|
||||||
|
if (addListener) {
|
||||||
|
window.addEventListener("resize", listener);
|
||||||
|
}
|
||||||
|
return listener;
|
||||||
}
|
}
|
||||||
|
|
||||||
scaleToFull(fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight) {
|
scaleToFull(fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight) {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import {AbstractSite} from "../../../../../js/lib/pwa-lib";
|
import {WordRotatorBaseSite} from "./WordRotatorBaseSite";
|
||||||
|
|
||||||
export class EndSite extends AbstractSite{
|
export class EndSite extends WordRotatorBaseSite{
|
||||||
constructor(siteManager) {
|
constructor(siteManager) {
|
||||||
super(siteManager, "html/application/end.html");
|
super(siteManager, "html/application/end.html");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import {AbstractSite, Helper, Menu, MenuAction} from "../../../../../js/lib/pwa-lib";
|
import {Helper, Menu, MenuAction} from "../../../../../js/lib/pwa-lib";
|
||||||
import {ParentSegment} from "../wordrotator/Segment/ParentSegment";
|
import {ParentSegment} from "../wordrotator/Segment/ParentSegment";
|
||||||
import {LeafSegment} from "../wordrotator/Segment/LeafSegment";
|
import {LeafSegment} from "../wordrotator/Segment/LeafSegment";
|
||||||
import {TemplateContainer} from "../wordrotator/Segment/TemplateContainer";
|
import {TemplateContainer} from "../wordrotator/Segment/TemplateContainer";
|
||||||
@ -7,23 +7,13 @@ import {LevelHelper} from "../wordrotator/Level/LevelHelper";
|
|||||||
import {WordRotatorDb} from "../WordRotatorDb";
|
import {WordRotatorDb} from "../WordRotatorDb";
|
||||||
import {ScaleHelper} from "../../../../../js/lib/pwa-assets";
|
import {ScaleHelper} from "../../../../../js/lib/pwa-assets";
|
||||||
import {EndSite} from "./EndSite";
|
import {EndSite} from "./EndSite";
|
||||||
|
import {WordRotatorBaseSite} from "./WordRotatorBaseSite";
|
||||||
|
|
||||||
export class LevelSite extends AbstractSite {
|
export class LevelSite extends WordRotatorBaseSite {
|
||||||
constructor(siteManager) {
|
constructor(siteManager) {
|
||||||
super(siteManager, "html/application/level.html");
|
super(siteManager, "html/application/level.html");
|
||||||
}
|
}
|
||||||
|
|
||||||
createActionBarMenu(menu) {
|
|
||||||
menu = super.createActionBarMenu(menu);
|
|
||||||
|
|
||||||
this.levelCounterAction = new MenuAction("", function () {
|
|
||||||
}, Menu.SHOW_ALWAYS, 0);
|
|
||||||
this.levelCounterAction.setShouldTranslate(false);
|
|
||||||
menu.addAction(this.levelCounterAction);
|
|
||||||
|
|
||||||
return menu;
|
|
||||||
}
|
|
||||||
|
|
||||||
onConstruct(args) {
|
onConstruct(args) {
|
||||||
this.levelCounter = Helper.nonNull(localStorage.getItem("levelCounter"), 1);
|
this.levelCounter = Helper.nonNull(localStorage.getItem("levelCounter"), 1);
|
||||||
return super.onConstruct(args);
|
return super.onConstruct(args);
|
||||||
@ -59,7 +49,11 @@ export class LevelSite extends AbstractSite {
|
|||||||
scaleHelper.scaleToFull(continueButton, continueButton.parentElement, false, true);
|
scaleHelper.scaleToFull(continueButton, continueButton.parentElement, false, true);
|
||||||
scaleHelper.scaleToFull(wonText, wonText.parentElement);
|
scaleHelper.scaleToFull(wonText, wonText.parentElement);
|
||||||
|
|
||||||
this.levelCounterAction.setTitle(this.levelCounter);
|
//Benutze Document, da Element außerhalb von Seite (eigentlich unschön!)
|
||||||
|
this.levelCounterActionContainer = document.getElementById("level-number-container");
|
||||||
|
this.levelCounterAction = document.getElementById("level-number");
|
||||||
|
this.levelCounterAction.innerText = this.levelCounter;
|
||||||
|
this.levelNumberScaler = scaleHelper.scaleToFull(this.levelCounterAction, this.levelCounterActionContainer, false, false, 4);
|
||||||
this.templateContainer = new TemplateContainer(leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate, triangleTemplate);
|
this.templateContainer = new TemplateContainer(leafSegmentTemplate, parentSegmentTemplate, rowSegmentTemplate, triangleTemplate);
|
||||||
|
|
||||||
this.loadLastLevel();
|
this.loadLastLevel();
|
||||||
@ -134,12 +128,29 @@ export class LevelSite extends AbstractSite {
|
|||||||
scaleHelper.scaleToFull(levelSegment, levelSegment.parentElement, false, false, 2, level.words[0].length * 2);
|
scaleHelper.scaleToFull(levelSegment, levelSegment.parentElement, false, false, 2, level.words[0].length * 2);
|
||||||
|
|
||||||
this.level = level;
|
this.level = level;
|
||||||
|
this.levelCounterAction.innerText = this.levelCounter;
|
||||||
|
this.levelNumberScaler();
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onStart(args) {
|
||||||
|
let res = super.onStart(args);
|
||||||
|
|
||||||
|
let scaleHelper = new ScaleHelper();
|
||||||
|
scaleHelper.s
|
||||||
|
this.levelCounterAction.innerText = this.levelCounter;
|
||||||
|
this.levelCounterActionContainer.classList.add("visible");
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
onPause(args) {
|
||||||
|
super.onPause(args);
|
||||||
|
this.levelCounterActionContainer.classList.remove("visible");
|
||||||
|
}
|
||||||
|
|
||||||
async levelWon(level) {
|
async levelWon(level) {
|
||||||
try {
|
try {
|
||||||
const db = WordRotatorDb.getInstance();
|
const db = WordRotatorDb.getInstance();
|
||||||
@ -147,8 +158,6 @@ export class LevelSite extends AbstractSite {
|
|||||||
|
|
||||||
this.levelCounter++;
|
this.levelCounter++;
|
||||||
localStorage.setItem("levelCounter", this.levelCounter);
|
localStorage.setItem("levelCounter", this.levelCounter);
|
||||||
this.levelCounterAction.setTitle(this.levelCounter);
|
|
||||||
this.levelCounterAction.redraw();
|
|
||||||
|
|
||||||
this._siteContent.classList.add('won');
|
this._siteContent.classList.add('won');
|
||||||
localStorage.removeItem("currentLevel");
|
localStorage.removeItem("currentLevel");
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
import {AbstractSite, Helper} from "../../../../../js/lib/pwa-lib";
|
import {Helper} from "../../../../../js/lib/pwa-lib";
|
||||||
import {DataManager} from "../../../../../js/lib/pwa-core";
|
import {DataManager} from "../../../../../js/lib/pwa-core";
|
||||||
import {WordRotatorDb} from "../WordRotatorDb";
|
import {WordRotatorDb} from "../WordRotatorDb";
|
||||||
import {LevelSite} from "./LevelSite";
|
import {LevelSite} from "./LevelSite";
|
||||||
|
import {WordRotatorBaseSite} from "./WordRotatorBaseSite";
|
||||||
|
|
||||||
export class SynchronizeSite extends AbstractSite {
|
export class SynchronizeSite extends WordRotatorBaseSite {
|
||||||
|
|
||||||
constructor(siteManager) {
|
constructor(siteManager) {
|
||||||
super(siteManager, "html/application/sync.html");
|
super(siteManager, "html/application/sync.html");
|
||||||
|
|||||||
15
src/module/Application/pwa/js/site/WordRotatorBaseSite.js
Normal file
15
src/module/Application/pwa/js/site/WordRotatorBaseSite.js
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import {AbstractSite, Menu, MenuAction} from "../../../../../js/lib/pwa-lib";
|
||||||
|
|
||||||
|
export class WordRotatorBaseSite extends AbstractSite {
|
||||||
|
|
||||||
|
createActionBarMenu(menu) {
|
||||||
|
menu = super.createActionBarMenu(menu);
|
||||||
|
let actions = menu.actions;
|
||||||
|
for (let i = 0; i < actions.length; i++) {
|
||||||
|
if (actions[i].title === "login" || actions[i].title === "registration"){
|
||||||
|
actions[i].setVisible(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return menu;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,5 +1,4 @@
|
|||||||
import {Segment} from "./Segment";
|
import {Segment} from "./Segment";
|
||||||
import {DelayPromise} from "../../../../../../js/lib/pwa-assets";
|
|
||||||
|
|
||||||
export class ParentSegment extends Segment {
|
export class ParentSegment extends Segment {
|
||||||
static initListener(){
|
static initListener(){
|
||||||
|
|||||||
@ -179,9 +179,32 @@ $animationDuration: 0.25s;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#continue-button {
|
#level-number-container{
|
||||||
//width: 80%;
|
transition: none;
|
||||||
//margin-left: 10%;
|
position: absolute;
|
||||||
//margin-right: 10%;
|
left: 50%;
|
||||||
//margin-bottom: 20%
|
transform: translate(-50%);
|
||||||
|
border: 3px solid white;
|
||||||
|
border-radius: 50%;
|
||||||
|
visibility: hidden;
|
||||||
|
margin-top: -5px;
|
||||||
|
display: table-cell;
|
||||||
|
|
||||||
|
height: 45px;
|
||||||
|
width: 45px;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: middle;
|
||||||
|
|
||||||
|
&.visible{
|
||||||
|
visibility: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
#level-number{
|
||||||
|
transition: none;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(-50%,-50%);
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
19593
test/betaplay.testcafe
Normal file
19593
test/betaplay.testcafe
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user