@@ -24,7 +24,7 @@ import { PanelContainerDirective } from './panel-container.directive';
]
})
export class PanelComponent implements AfterViewInit, OnDestroy, OnInit {
- public actualWidth = 0;
+ public renderWidth = 0;
@Input()
public theme = 'light';
@@ -32,9 +32,6 @@ export class PanelComponent implements AfterViewInit, OnDestroy, OnInit {
@Input()
public desiredWidth = '10rem';
- @Input()
- public expand = false;
-
@ViewChild('panel')
public panel: ElementRef;
@@ -52,7 +49,7 @@ export class PanelComponent implements AfterViewInit, OnDestroy, OnInit {
}
public ngAfterViewInit() {
- this.actualWidth = this.panel.nativeElement.getBoundingClientRect().width;
+ this.renderWidth = this.panel.nativeElement.getBoundingClientRect().width;
this.container.invalidate();
}
diff --git a/src/Squidex/app/shared/services/app-languages.service.spec.ts b/src/Squidex/app/shared/services/app-languages.service.spec.ts
index 9b249ae45..b9f8b1c03 100644
--- a/src/Squidex/app/shared/services/app-languages.service.spec.ts
+++ b/src/Squidex/app/shared/services/app-languages.service.spec.ts
@@ -20,34 +20,56 @@ import {
} from './../';
describe('AppLanguageDto', () => {
- const language1 = new AppLanguageDto('de', 'English', false, false, []);
- const language2 = new AppLanguageDto('en', 'English', false, false, []);
- const language2_new = new AppLanguageDto('en', 'English (United States)', false, false, []);
const version = new Version('1');
const newVersion = new Version('2');
it('should update languages when adding language', () => {
- const languages_1 = new AppLanguagesDto([language1], version);
- const languages_2 = languages_1.addLanguage(language2, newVersion);
+ const language1_1 = new AppLanguageDto('de', 'English', true, false, []);
+ const language2_1 = new AppLanguageDto('it', 'Italien', false, false, []);
- expect(languages_2.languages).toEqual([language1, language2]);
+ const languages_1 = new AppLanguagesDto([language1_1], version);
+ const languages_2 = languages_1.addLanguage(language2_1, newVersion);
+
+ expect(languages_2.languages).toEqual([language1_1, language2_1]);
expect(languages_2.version).toEqual(newVersion);
});
it('should update languages when removing language', () => {
- const languages_1 = new AppLanguagesDto([language1, language2], version);
- const languages_2 = languages_1.removeLanguage(language1, newVersion);
+ const language1_1 = new AppLanguageDto('de', 'English', true, false, ['it']);
+ const language1_2 = new AppLanguageDto('de', 'English', true, false, []);
+ const language2_1 = new AppLanguageDto('it', 'Italien', false, false, []);
+
+ const languages_1 = new AppLanguagesDto([language1_1, language2_1], version);
+ const languages_2 = languages_1.removeLanguage(language2_1, newVersion);
- expect(languages_2.languages).toEqual([language2]);
+ expect(languages_2.languages).toEqual([language1_2]);
expect(languages_2.version).toEqual(newVersion);
});
it('should update languages when updating language', () => {
- const languages_1 = new AppLanguagesDto([language1, language2], version);
- const languages_2 = languages_1.updateLanguage(language2_new, newVersion);
+ const language1_1 = new AppLanguageDto('de', 'English', true, false, ['it']);
+ const language2_1 = new AppLanguageDto('it', 'Italien', false, false, []);
+ const language2_2 = new AppLanguageDto('it', 'Italien', false, false, ['de']);
+
+ const languages_1 = new AppLanguagesDto([language1_1, language2_1], version);
+ const languages_2 = languages_1.updateLanguage(language2_2, newVersion);
+
+ expect(languages_2.languages).toEqual([language1_1, language2_2]);
+ expect(languages_2.version).toEqual(newVersion);
+ });
+
+ it('should update master language when updating language', () => {
+ const language1_1 = new AppLanguageDto('de', 'English', true, false, ['it']);
+ const language1_2 = new AppLanguageDto('de', 'English', false, false, ['it']);
+ const language2_1 = new AppLanguageDto('it', 'Italien', false, false, []);
+ const language2_2 = new AppLanguageDto('it', 'Italien', true, false, ['de']);
+
+ const languages_1 = new AppLanguagesDto([language1_1, language2_1], version);
+ const languages_2 = languages_1.updateLanguage(language2_2, newVersion);
- expect(languages_2.languages).toEqual([language1, language2_new]);
+ expect(languages_2.languages).toEqual([language1_2, language2_2]);
expect(languages_2.version).toEqual(newVersion);
+ expect(languages_2.languages[0].isMaster).toBeFalsy();
});
});
diff --git a/src/Squidex/app/shared/services/app-languages.service.ts b/src/Squidex/app/shared/services/app-languages.service.ts
index f5da2e4fb..78f6bc6e9 100644
--- a/src/Squidex/app/shared/services/app-languages.service.ts
+++ b/src/Squidex/app/shared/services/app-languages.service.ts
@@ -30,12 +30,29 @@ export class AppLanguagesDto {
return new AppLanguagesDto([...this.languages, language], version);
}
- public updateLanguage(language: AppLanguageDto, version: Version) {
- return new AppLanguagesDto(this.languages.map(l => l.iso2Code === language.iso2Code ? language : l), version);
+ public removeLanguage(language: AppLanguageDto, version: Version) {
+ return new AppLanguagesDto(
+ this.languages.filter(l => l.iso2Code !== language.iso2Code).map(l => {
+ return new AppLanguageDto(
+ l.iso2Code,
+ l.englishName,
+ l.isMaster,
+ l.isOptional,
+ l.fallback.filter(f => f !== language.iso2Code));
+ }), version);
}
- public removeLanguage(language: AppLanguageDto, version: Version) {
- return new AppLanguagesDto(this.languages.filter(l => l.iso2Code !== language.iso2Code), version);
+ public updateLanguage(language: AppLanguageDto, version: Version) {
+ return new AppLanguagesDto(
+ this.languages.map(l => {
+ if (l.iso2Code === language.iso2Code) {
+ return language;
+ } else if (l.isMaster && language.isMaster) {
+ return new AppLanguageDto(l.iso2Code, l.englishName, false, l.isOptional, l.fallback);
+ } else {
+ return l;
+ }
+ }), version);
}
}
diff --git a/src/Squidex/app/shell/pages/internal/apps-menu.component.html b/src/Squidex/app/shell/pages/internal/apps-menu.component.html
index 27315a568..6e8ccfa47 100644
--- a/src/Squidex/app/shell/pages/internal/apps-menu.component.html
+++ b/src/Squidex/app/shell/pages/internal/apps-menu.component.html
@@ -1,8 +1,8 @@
-
- {{ctx.app ? ctx.app.name : 'Apps Overview'}}
+ {{selectedApp ? selectedApp.name : 'Apps Overview'}}
-