Level-number hinzugefügt

This commit is contained in:
silas
2018-09-18 23:26:17 +02:00
parent b256142c06
commit 09321d4dce
15 changed files with 25332 additions and 39 deletions

View File

@@ -36,7 +36,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;

View File

@@ -9,13 +9,13 @@ class DelayPromise extends Promise {
}
class ScaleHelper {
scaleTo(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight) {
console.log("test");
scaleTo(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, addListener) {
margin = Helper.nonNull(margin, 10);
ignoreHeight = Helper.nonNull(ignoreHeight, false);
ignoreWidth = Helper.nonNull(ignoreWidth, false);
fontWeight = Helper.nonNull(fontWeight, fontElement.innerHTML.length);
addListener = Helper.nonNull(addListener, true);
let hasNoTransitionClass = container.classList.contains("no-transition");
container.classList.add("no-transition");
@@ -51,11 +51,15 @@ class ScaleHelper {
}
let self = this;
window.addEventListener("resize", function () {
let listener = function () {
setTimeout(() => {
self.scaleTo(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight);
self.scaleTo(scale, fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight, false);
}, 255);
});
};
if (addListener) {
window.addEventListener("resize", listener);
}
return listener;
}
scaleToFull(fontElement, container, ignoreHeight, ignoreWidth, margin, fontWeight) {

View File

@@ -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) {
super(siteManager, "html/application/end.html");
}

View File

@@ -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 {LeafSegment} from "../wordrotator/Segment/LeafSegment";
import {TemplateContainer} from "../wordrotator/Segment/TemplateContainer";
@@ -7,23 +7,13 @@ import {LevelHelper} from "../wordrotator/Level/LevelHelper";
import {WordRotatorDb} from "../WordRotatorDb";
import {ScaleHelper} from "../../../../../js/lib/pwa-assets";
import {EndSite} from "./EndSite";
import {WordRotatorBaseSite} from "./WordRotatorBaseSite";
export class LevelSite extends AbstractSite {
export class LevelSite extends WordRotatorBaseSite {
constructor(siteManager) {
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) {
this.levelCounter = Helper.nonNull(localStorage.getItem("levelCounter"), 1);
return super.onConstruct(args);
@@ -59,7 +49,11 @@ export class LevelSite extends AbstractSite {
scaleHelper.scaleToFull(continueButton, continueButton.parentElement, false, true);
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.loadLastLevel();
@@ -134,12 +128,29 @@ export class LevelSite extends AbstractSite {
scaleHelper.scaleToFull(levelSegment, levelSegment.parentElement, false, false, 2, level.words[0].length * 2);
this.level = level;
this.levelCounterAction.innerText = this.levelCounter;
this.levelNumberScaler();
}
catch (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) {
try {
const db = WordRotatorDb.getInstance();
@@ -147,8 +158,6 @@ export class LevelSite extends AbstractSite {
this.levelCounter++;
localStorage.setItem("levelCounter", this.levelCounter);
this.levelCounterAction.setTitle(this.levelCounter);
this.levelCounterAction.redraw();
this._siteContent.classList.add('won');
localStorage.removeItem("currentLevel");

View File

@@ -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 {WordRotatorDb} from "../WordRotatorDb";
import {LevelSite} from "./LevelSite";
import {WordRotatorBaseSite} from "./WordRotatorBaseSite";
export class SynchronizeSite extends AbstractSite {
export class SynchronizeSite extends WordRotatorBaseSite {
constructor(siteManager) {
super(siteManager, "html/application/sync.html");

View 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;
}
}

View File

@@ -1,5 +1,4 @@
import {Segment} from "./Segment";
import {DelayPromise} from "../../../../../../js/lib/pwa-assets";
export class ParentSegment extends Segment {
static initListener(){

View File

@@ -179,9 +179,32 @@ $animationDuration: 0.25s;
}
}
#continue-button {
//width: 80%;
//margin-left: 10%;
//margin-right: 10%;
//margin-bottom: 20%
}
#level-number-container{
transition: none;
position: absolute;
left: 50%;
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;
}
}