Einstellungen angefangen
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import {
|
||||
App, applyPolyfills,
|
||||
InitPromise,
|
||||
InitPromise, MenuAction,
|
||||
ShareManager,
|
||||
SmsShareButton, TelegramShareButton,
|
||||
Theme,
|
||||
@@ -8,6 +8,7 @@ import {
|
||||
Translator,
|
||||
WhatsappShareButton
|
||||
} from "./lib/pwa-lib";
|
||||
import {LoginSite, RegistrationSite} from "./lib/pwa-user-management";
|
||||
|
||||
import "./lib/pwa-lib"
|
||||
import "./lib/pwa-core"
|
||||
@@ -15,13 +16,14 @@ import "./lib/pwa-assets"
|
||||
import "./lib/pwa-code-management"
|
||||
import "./lib/pwa-user-management"
|
||||
|
||||
import './settings'
|
||||
// import {ClockSite} from "../module/Application/pwa/js/site/ClockSite";
|
||||
import {LevelSite} from "../module/Application/pwa/js/site/LevelSite";
|
||||
import {SynchronizeSite} from "../module/Application/pwa/js/site/SynchronizeSite";
|
||||
|
||||
import {SettingsSite} from "./lib/pwa-core";
|
||||
applyPolyfills();
|
||||
|
||||
import {WordRotatorSettingFragment} from "../module/Application/pwa/js/Fragment/WordRotatorSettingFragment";
|
||||
|
||||
import './settings'
|
||||
|
||||
ThemeManager.addTheme(new Theme('red', ''));
|
||||
ThemeManager.addTheme(new Theme("blue", "blue"));
|
||||
ThemeManager.addTheme(new Theme("black", "black"));
|
||||
@@ -46,7 +48,15 @@ window["app"]["refreshCurrentSite"] = app.refreshCurrentSite;
|
||||
window["Translator"] = Translator;
|
||||
window["Translator"]["setLanguage"] = Translator.setLanguage;
|
||||
|
||||
SettingsSite.setTemplate("html/application/setting-template.html");
|
||||
// SettingsSite.shouldAddSettingsAction = false;
|
||||
|
||||
RegistrationSite.addAction = false;
|
||||
LoginSite.addLoginAction = false;
|
||||
|
||||
InitPromise.resolve(app).then(function(){
|
||||
SettingsSite.settingsAction.showFor = MenuAction.SHOW_ALWAYS;
|
||||
|
||||
app.start(SynchronizeSite);
|
||||
Translator.setLanguage("de");
|
||||
});
|
||||
|
||||
@@ -730,7 +730,7 @@ class ListHelper {
|
||||
|
||||
class SettingsSite extends AbstractSite {
|
||||
constructor(siteManager) {
|
||||
super(siteManager, 'core/html/settings.html', "settings");
|
||||
super(siteManager, SettingsSite.template, "settings");
|
||||
for (let k in SettingsSite.settingsFragments) {
|
||||
this.addSettingsFragment(k, new SettingsSite.settingsFragments[k](this));
|
||||
}
|
||||
@@ -799,20 +799,32 @@ class SettingsSite extends AbstractSite {
|
||||
static setAddSettingsSite(addLink) {
|
||||
SettingsSite.shouldAddSettingsSite = addLink;
|
||||
}
|
||||
|
||||
static setTemplate(template) {
|
||||
SettingsSite.template = template;
|
||||
}
|
||||
}
|
||||
|
||||
SettingsSite.template = 'core/html/settings.html';
|
||||
SettingsSite.settingsFragments = {};
|
||||
SettingsSite.shouldAddSettingsSite = true;
|
||||
SettingsSite.settingsAction = null;
|
||||
SettingsSite.shouldAddSettingsAction = true;
|
||||
|
||||
InitPromise.addPromise(function (app) {
|
||||
if (SettingsSite.shouldAddSettingsSite) {
|
||||
app.addDeepLink("settings", SettingsSite);
|
||||
|
||||
let settingsAction = new MenuAction("settings", function () {
|
||||
app.startSite(SettingsSite);
|
||||
}, MenuAction.SHOW_FOR_LARGE, 10000);
|
||||
settingsAction.setIcon("img/settings.png");
|
||||
app.addDefaultAction(settingsAction);
|
||||
if (Helper.isNull(SettingsSite.settingsAction)) {
|
||||
let settingsAction = new MenuAction("settings", function () {
|
||||
app.startSite(SettingsSite);
|
||||
}, MenuAction.SHOW_FOR_LARGE, 10000);
|
||||
settingsAction.setIcon("img/settings.png");
|
||||
SettingsSite.settingsAction = settingsAction;
|
||||
}
|
||||
if (SettingsSite.shouldAddSettingsAction) {
|
||||
app.addDefaultAction(SettingsSite.settingsAction);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -3515,6 +3515,21 @@ class MyDb {
|
||||
});
|
||||
}
|
||||
|
||||
removeAll(objectStore){
|
||||
return new Promise((resolve) => {
|
||||
this.openStore(objectStore, "readwrite", (store) => {
|
||||
let req = store.clear();
|
||||
req.onerror = (e) => {
|
||||
throw {
|
||||
"type":"indexed-db-index-error",
|
||||
"event": e
|
||||
}
|
||||
};
|
||||
req.onsuccess = resolve;
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
upgrade(db) {
|
||||
};
|
||||
}
|
||||
@@ -3560,9 +3575,7 @@ class Prioritised {
|
||||
this.callbackCalledPromiseResolver();
|
||||
}
|
||||
|
||||
|
||||
if (prio == this.highestPrio) {
|
||||
console.log("endPromise resolved!");
|
||||
this.endPromiseResolver();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -441,34 +441,51 @@ InitPromise.addPromise(function(app){
|
||||
app.addDeepLink("forgotPassword", ForgotPasswordSite);
|
||||
});
|
||||
|
||||
class LoginSite extends UserSite{
|
||||
class LoginSite extends UserSite {
|
||||
constructor(siteManager) {
|
||||
super(siteManager, 'userManagement/html/login.html', "login", "offline");
|
||||
}
|
||||
|
||||
onFirstStart() {
|
||||
let self = this;
|
||||
(new LoginForm(document.getElementById("login-form"), "u/login", "post")).onSubmit(function(res){
|
||||
(new LoginForm(document.getElementById("login-form"), "u/login", "post")).onSubmit(function (res) {
|
||||
UserManager.setData(res);
|
||||
self.startStartsite();
|
||||
FlashMessenger.addMessage(FlashMessenger.MESSAGE_TYPE_SUCCESS, Translator.translate("login-success"));
|
||||
self.finish();
|
||||
});
|
||||
|
||||
this.findBy("#forgot-password-link").addEventListener("click", function(){
|
||||
this.findBy("#forgot-password-link").addEventListener("click", function () {
|
||||
self.startSite(ForgotPasswordSite);
|
||||
self.finish();
|
||||
});
|
||||
}
|
||||
}
|
||||
InitPromise.addPromise(function(app){
|
||||
|
||||
LoginSite.loginAction = null;
|
||||
LoginSite.logoutAction = null;
|
||||
LoginSite.addLoginAction = true;
|
||||
LoginSite.addLogoutAction = true;
|
||||
|
||||
InitPromise.addPromise(function (app) {
|
||||
app.addDeepLink("login", LoginSite);
|
||||
app.addDefaultAction(new UserAction('login', function(){
|
||||
app.startSite(LoginSite);
|
||||
}, Menu.SHOW_NEVER, 1100, "offline"));
|
||||
app.addDefaultAction(new UserAction('logout', function(){
|
||||
UserManager.logOut();
|
||||
}, Menu.SHOW_NEVER, 1100, "online"));
|
||||
|
||||
if (Helper.isNull(LoginSite.loginAction)) {
|
||||
LoginSite.loginAction = new UserAction('login', function () {
|
||||
app.startSite(LoginSite);
|
||||
}, Menu.SHOW_NEVER, 1100, "offline");
|
||||
}
|
||||
if (Helper.isNull(LoginSite.logoutAction)) {
|
||||
LoginSite.logoutAction = new UserAction('logout', function () {
|
||||
UserManager.logOut();
|
||||
}, Menu.SHOW_NEVER, 1100, "online");
|
||||
}
|
||||
if (LoginSite.addLoginAction){
|
||||
app.addDefaultAction(LoginSite.loginAction);
|
||||
}
|
||||
if (LoginSite.addLogoutAction){
|
||||
app.addDefaultAction(LoginSite.logoutAction);
|
||||
}
|
||||
});
|
||||
|
||||
class RegistrationSite extends UserSite {
|
||||
@@ -477,17 +494,26 @@ class RegistrationSite extends UserSite {
|
||||
}
|
||||
|
||||
onFirstStart() {
|
||||
(new RegistrationForm(document.getElementById("registration-form"), "u/registration", "post")).onSubmit(function(res){
|
||||
(new RegistrationForm(document.getElementById("registration-form"), "u/registration", "post")).onSubmit(function (res) {
|
||||
FlashMessenger.addMessage(FlashMessenger.MESSAGE_TYPE_SUCCESS, Translator.translate("registration-success"));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
RegistrationSite.action = null;
|
||||
RegistrationSite.addAction = true;
|
||||
|
||||
InitPromise.addPromise(function (app) {
|
||||
app.addDeepLink("registration", RegistrationSite);
|
||||
app.addDefaultAction(new UserAction('registration', function(){
|
||||
app.startSite(RegistrationSite);
|
||||
}, null, 1100, "offline"));
|
||||
|
||||
if (Helper.isNull(RegistrationSite.action)) {
|
||||
RegistrationSite.action = new UserAction('registration', function () {
|
||||
app.startSite(RegistrationSite);
|
||||
}, null, 1100, "offline");
|
||||
}
|
||||
if (RegistrationSite.addAction) {
|
||||
app.addDefaultAction(RegistrationSite.action);
|
||||
}
|
||||
});
|
||||
|
||||
class SetNewPasswordSite extends UserSite {
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
<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'>
|
||||
<div class='row'>
|
||||
<span class='columns small-6' data-translation="theme"></span>
|
||||
<span class='columns small-6'>
|
||||
<label id = 'theme-radio-template'><input type="radio" class='setting' name='theme'></label>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
<button id = 'reset-levels' class = "button" data-translation="reset-levels"></button>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--<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>-->
|
||||
<!--<br/>-->
|
||||
|
||||
<!--<label class='row'>-->
|
||||
<!--<span class='columns small-6' data-translation="use-included-latex"></span>-->
|
||||
<!--<span class='columns small-6'><input type="checkbox" class='setting' name='use-included-latex' data-default="true" value="true"></span>-->
|
||||
<!--</label>-->
|
||||
|
||||
<!--<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>
|
||||
@@ -0,0 +1,5 @@
|
||||
<div class="max-height fill-me">
|
||||
<ul class="menu vertical plain dropdown hidden" id="settings-fragment-list"></ul>
|
||||
<h2 data-translation="settings"></h2>
|
||||
<div id="settings-fragments"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,47 @@
|
||||
import {LocalStorageSettingsFragment, SettingsManager, SettingsSite} from "../../../../../js/lib/pwa-core";
|
||||
import {Helper, InitPromise, ThemeManager, Translator} from "../../../../../js/lib/pwa-lib";
|
||||
import {WordRotatorDb} from "../WordRotatorDb";
|
||||
|
||||
export class WordRotatorSettingFragment extends LocalStorageSettingsFragment {
|
||||
constructor(site) {
|
||||
super(site, "html/application/fragment/settings.html");
|
||||
}
|
||||
|
||||
onFirstStart() {
|
||||
let themeTemplate = this.findBy("#theme-radio-template");
|
||||
delete themeTemplate["id"];
|
||||
let themeTemplateContainer = themeTemplate.parentNode;
|
||||
themeTemplateContainer.removeAllChildren();
|
||||
|
||||
for (let i = 0; i < ThemeManager.themes.length; i++) {
|
||||
let themeElem = Helper.cloneNode(themeTemplate);
|
||||
let theme = ThemeManager.themes[i];
|
||||
themeElem.appendChild(Translator.makePersistentTranslation(theme._name));
|
||||
|
||||
let inputElem = themeElem.querySelector("input");
|
||||
inputElem.value = theme._className;
|
||||
|
||||
inputElem.addEventListener("change", function() {
|
||||
if (this.checked){
|
||||
ThemeManager.changeCurrentTheme(theme)
|
||||
}
|
||||
});
|
||||
themeTemplateContainer.appendChild(themeElem);
|
||||
}
|
||||
|
||||
SettingsManager.getInstance().setSetting("theme", ThemeManager.currentTheme._name);
|
||||
|
||||
this.findBy("#reset-levels").addEventListener("click", () => {
|
||||
localStorage.removeItem("currentLevel");
|
||||
localStorage.removeItem("date-last-sync");
|
||||
localStorage.removeItem("levelCounter");
|
||||
WordRotatorDb.getInstance().removeAll(WordRotatorDb.OBJECT_STORE.LEVEL);
|
||||
});
|
||||
|
||||
return super.onFirstStart();
|
||||
}
|
||||
}
|
||||
|
||||
InitPromise.addPromise(function () {
|
||||
SettingsSite.addSettingsFragment("settings", WordRotatorSettingFragment);
|
||||
});
|
||||
@@ -12,6 +12,7 @@ import {WordRotatorBaseSite} from "./WordRotatorBaseSite";
|
||||
export class LevelSite extends WordRotatorBaseSite {
|
||||
constructor(siteManager) {
|
||||
super(siteManager, "html/application/level.html");
|
||||
this.levelScaler = ()=>{};
|
||||
}
|
||||
|
||||
onConstruct(args) {
|
||||
@@ -88,7 +89,7 @@ export class LevelSite extends WordRotatorBaseSite {
|
||||
let levelSegment = this.findBy("#level");
|
||||
levelSegment.removeAllChildren().appendChild(level.getRootSegment().getElement());
|
||||
let scaleHelper = new ScaleHelper();
|
||||
scaleHelper.scaleToFull(levelSegment, levelSegment.parentElement, false, false, 2, level.words[0].length * 2);
|
||||
this.levelScaler = scaleHelper.scaleToFull(levelSegment, levelSegment.parentElement, false, false, 2, level.words[0].length * 2);
|
||||
|
||||
this.level = level;
|
||||
return;
|
||||
@@ -125,7 +126,7 @@ export class LevelSite extends WordRotatorBaseSite {
|
||||
let levelSegment = this.findBy("#level");
|
||||
levelSegment.removeAllChildren().appendChild(level.getRootSegment().getElement());
|
||||
let scaleHelper = new ScaleHelper();
|
||||
scaleHelper.scaleToFull(levelSegment, levelSegment.parentElement, false, false, 2, level.words[0].length * 2);
|
||||
this.levelScaler = scaleHelper.scaleToFull(levelSegment, levelSegment.parentElement, false, false, 2, level.words[0].length * 2);
|
||||
|
||||
this.level = level;
|
||||
this.levelCounterAction.innerText = this.levelCounter;
|
||||
@@ -139,10 +140,9 @@ export class LevelSite extends WordRotatorBaseSite {
|
||||
onStart(args) {
|
||||
let res = super.onStart(args);
|
||||
|
||||
let scaleHelper = new ScaleHelper();
|
||||
scaleHelper.s
|
||||
this.levelCounterAction.innerText = this.levelCounter;
|
||||
this.levelCounterActionContainer.classList.add("visible");
|
||||
this.levelScaler();
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
import {AbstractSite, Menu, MenuAction} from "../../../../../js/lib/pwa-lib";
|
||||
import {SettingsSite} from "../../../../../js/lib/pwa-core";
|
||||
|
||||
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;
|
||||
}
|
||||
// createActionBarMenu(menu) {
|
||||
// menu = super.createActionBarMenu(menu);
|
||||
// // menu.addAction(SettingsSite.settingsAction.copy());
|
||||
// // 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;
|
||||
// }
|
||||
}
|
||||
@@ -187,11 +187,11 @@ $animationDuration: 0.25s;
|
||||
border: 3px solid white;
|
||||
border-radius: 50%;
|
||||
visibility: hidden;
|
||||
margin-top: -5px;
|
||||
margin-top: -3px;
|
||||
display: table-cell;
|
||||
|
||||
height: 45px;
|
||||
width: 45px;
|
||||
height: 40px;
|
||||
width: 40px;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user