feat(menu): add context menu

Closes #3
This commit is contained in:
Sebastian Lange
2019-05-27 16:38:47 +02:00
parent 3ce3c9ba16
commit 1dbf4515fe
27 changed files with 2261 additions and 767 deletions

View File

@@ -14,17 +14,10 @@
*/
import {Component} from '@angular/core';
import {LangChangeEvent, TranslateService} from '@ngx-translate/core';
import {
SCAppConfigurationMenuCategory,
SCThing,
SCThingTranslator,
SCTranslations,
} from '@openstapps/core';
import {SCAppConfigurationMenuCategory, SCLanguage, SCThingTranslator, SCTranslations} from '@openstapps/core';
import {Logger} from '@openstapps/logger';
import {ConfigProvider} from '../../config/config.provider';
const logger = new Logger();
/**
* Generated class for the MenuPage page.
*
@@ -37,34 +30,42 @@ const logger = new Logger();
templateUrl: 'navigation.html',
})
export class NavigationComponent {
language: keyof SCTranslations<SCThing> = 'en';
/**
* Possible languages to be used for translation
*/
language: keyof SCTranslations<SCLanguage> = 'en';
/**
* Menu entries from config module
*/
menu: SCAppConfigurationMenuCategory[];
/**
* Core translator
*/
translator: SCThingTranslator;
constructor(private configProvider: ConfigProvider,
public translateService: TranslateService) {
this.loadMenuEntries().then(() =>
logger.log('menuEntries loaded from config: ' + JSON.stringify(this.menu))).catch((error) => {
logger.error(error);
});
this.loadMenuEntries();
translateService.onLangChange.subscribe((event: LangChangeEvent) => {
this.language = event.lang as keyof SCTranslations<any>;
this.translator = new SCThingTranslator(this.language, 'en');
this.language = event.lang as keyof SCTranslations<SCLanguage>;
this.translator = new SCThingTranslator(this.language);
});
this.translator = new SCThingTranslator('en', 'en');
this.translator = new SCThingTranslator('en');
}
/**
* TODO
* Loads menu entris from configProvider
*/
// tslint:disable-next-line:prefer-function-over-method
ionViewDidLoad() {
// console.log('ionViewDidLoad MenuPage');
}
async loadMenuEntries() {
this.menu = await this.configProvider.getValue('menus') as SCAppConfigurationMenuCategory[];
try {
this.menu = await this.configProvider.getValue('menus') as SCAppConfigurationMenuCategory[];
} catch (error) {
Logger.error(`error from loading menu entries: ${error}`);
}
}
// openPage(page) {