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

@@ -12,12 +12,11 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {Component} from '@angular/core';
import {ChangeDetectorRef, Component} from '@angular/core';
import {AlertController, ToastController} from '@ionic/angular';
import {LangChangeEvent, TranslateService} from '@ngx-translate/core';
import {SCLanguage, SCSettingMeta, SCThingTranslator, SCTranslations} from '@openstapps/core';
import {SettingsCache, SettingsProvider} from '../settings.provider';
/**
* Settings page component
*/
@@ -59,11 +58,13 @@ export class SettingsPageComponent {
* @param settingsProvider SettingsProvider
* @param toastController ToastController
* @param translateService TranslateService
* @param changeDetectorRef ChangeDetectorRef
*/
constructor(private readonly alertController: AlertController,
private readonly settingsProvider: SettingsProvider,
private readonly toastController: ToastController,
private readonly translateService: TranslateService) {
private readonly translateService: TranslateService,
private readonly changeDetectorRef: ChangeDetectorRef) {
this.language = translateService.currentLang as keyof SCTranslations<SCLanguage>;
this.translator = new SCThingTranslator(this.language);
@@ -72,8 +73,6 @@ export class SettingsPageComponent {
this.translator = new SCThingTranslator(this.language);
});
this.settingsCache = {};
this.categoriesOrder = settingsProvider.getCategoriesOrder();
}
/**
@@ -93,6 +92,9 @@ export class SettingsPageComponent {
*/
async loadSettings(): Promise<void> {
this.settingsCache = await this.settingsProvider.getCache();
// categoriesOrder triggers updating the View, because it is used in the ngFor loop
this.categoriesOrder = this.settingsProvider.getCategoriesOrder();
this.changeDetectorRef.detectChanges();
}
/**