From 5369acab2f0d8236a9429b8adcd947490823d73e Mon Sep 17 00:00:00 2001 From: pilloumatou Date: Mon, 12 May 2025 17:28:33 +0200 Subject: [PATCH 1/3] Add menu visualisation + translation + change display path --- src/app/app.module.ts | 4 ++- .../account-menu/account-menu.component.html | 6 ++++- .../account-menu.component.spec.ts | 1 + .../account-menu/account-menu.component.ts | 5 ++-- .../visualisation/visualisation.component.css | 7 ++++++ .../visualisation.component.html | 11 ++++++++ .../visualisation.component.spec.ts | 25 +++++++++++++++++++ .../visualisation/visualisation.component.ts | 21 ++++++++++++++++ src/app/services/board.service.ts | 6 +++++ src/assets/multilinguism.json | 7 ++++-- 10 files changed, 87 insertions(+), 6 deletions(-) create mode 100644 src/app/components/visualisation/visualisation.component.css create mode 100644 src/app/components/visualisation/visualisation.component.html create mode 100644 src/app/components/visualisation/visualisation.component.spec.ts create mode 100644 src/app/components/visualisation/visualisation.component.ts diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 7d7543e7e..391988560 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -92,6 +92,7 @@ import { RouterPreloader } from '@angular/router'; import { ExportComponent } from './components/export/export.component'; import { DialogGridOptionsComponent } from './components/dialog-grid-options/dialog-grid-options.component'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; +import { VisualisationComponent } from './components/visualisation/visualisation.component'; @NgModule({ @@ -164,7 +165,8 @@ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; ImportUserComponent, LoadingComponent, ExportComponent, - DialogGridOptionsComponent + DialogGridOptionsComponent, + VisualisationComponent ], imports: [ BrowserModule, diff --git a/src/app/components/account-menu/account-menu.component.html b/src/app/components/account-menu/account-menu.component.html index 45bf2a776..98428a25d 100644 --- a/src/app/components/account-menu/account-menu.component.html +++ b/src/app/components/account-menu/account-menu.component.html @@ -41,6 +41,10 @@ + + + + @@ -101,4 +105,4 @@ - \ No newline at end of file + diff --git a/src/app/components/account-menu/account-menu.component.spec.ts b/src/app/components/account-menu/account-menu.component.spec.ts index 48b458b3f..c691465e8 100644 --- a/src/app/components/account-menu/account-menu.component.spec.ts +++ b/src/app/components/account-menu/account-menu.component.spec.ts @@ -36,6 +36,7 @@ describe('AccountMenuComponent', () => { ['Application', ['ApplicationTheme', 'paletteManagement', + 'visualisation', 'interactions', 'language', 'share', diff --git a/src/app/components/account-menu/account-menu.component.ts b/src/app/components/account-menu/account-menu.component.ts index 15e35633c..c111ba7cb 100644 --- a/src/app/components/account-menu/account-menu.component.ts +++ b/src/app/components/account-menu/account-menu.component.ts @@ -15,6 +15,7 @@ export class AccountMenuComponent implements OnInit { ['ApplicationTheme', // ['Gestion des icones'], 'paletteManagement', + 'visualisation', 'interactions', 'language', 'share', @@ -135,7 +136,7 @@ export class AccountMenuComponent implements OnInit { /** * Checks if menu in parameter is currently selected * @param section checked menu - * @returns true if checked menu is current menu, false elsewise + * @returns true if checked menu is current menu, false elsewise */ isSelectedMenu(menu) { return menu[0] === this.selectedNewMenu; @@ -144,7 +145,7 @@ export class AccountMenuComponent implements OnInit { /** * Checks if section in parameter is currently selected * @param section checked section - * @returns true if checked section is current section, false elsewise + * @returns true if checked section is current section, false elsewise */ isSelectedSection(section) { return section === this.selectedSection; diff --git a/src/app/components/visualisation/visualisation.component.css b/src/app/components/visualisation/visualisation.component.css new file mode 100644 index 000000000..9f59e1996 --- /dev/null +++ b/src/app/components/visualisation/visualisation.component.css @@ -0,0 +1,7 @@ +.visualisationMargin { + margin: 20px; +} + +.visualisationMargin label { + margin-right: 3%; +} diff --git a/src/app/components/visualisation/visualisation.component.html b/src/app/components/visualisation/visualisation.component.html new file mode 100644 index 000000000..f04a044e7 --- /dev/null +++ b/src/app/components/visualisation/visualisation.component.html @@ -0,0 +1,11 @@ +
+
+ + + + + + + +
+
diff --git a/src/app/components/visualisation/visualisation.component.spec.ts b/src/app/components/visualisation/visualisation.component.spec.ts new file mode 100644 index 000000000..e3f598cbc --- /dev/null +++ b/src/app/components/visualisation/visualisation.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { VisualisationComponent } from './visualisation.component'; + +describe('VisualisationComponent', () => { + let component: VisualisationComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ VisualisationComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(VisualisationComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/visualisation/visualisation.component.ts b/src/app/components/visualisation/visualisation.component.ts new file mode 100644 index 000000000..0e88fc86e --- /dev/null +++ b/src/app/components/visualisation/visualisation.component.ts @@ -0,0 +1,21 @@ +import { Component, OnInit } from '@angular/core'; +import { MultilinguismService } from "../../services/multilinguism.service"; +import {BoardService} from "../../services/board.service"; + +@Component({ + selector: 'app-visualisation', + templateUrl: './visualisation.component.html', + styleUrls: ['./visualisation.component.css'] +}) +export class VisualisationComponent implements OnInit { + + constructor(public boardService: BoardService, + public multilinguism: MultilinguismService) { } + + getView(choice:string):void{ + this.boardService.PathDisplay = choice; + } + + ngOnInit(): void { + } +} diff --git a/src/app/services/board.service.ts b/src/app/services/board.service.ts index 0a6356cca..4fa3ce579 100644 --- a/src/app/services/board.service.ts +++ b/src/app/services/board.service.ts @@ -37,6 +37,7 @@ export class BoardService { board: Grid; currentPath = '#HOME'; + PathDisplay:string = 'Path'; /*the current forms that verb and noun have to use to conjugate*/ currentVerbTerminaison: { currentPerson: string, currentNumber: string } = { currentPerson: '', currentNumber: '' }; @@ -83,6 +84,11 @@ export class BoardService { const nameSplited = name.split('/'); name = nameSplited.length >= 2 ? nameSplited[nameSplited.length - 2] : name; } + if(this.PathDisplay == "TitlePage"){ + const tabName:string[] = name.split('/'); + name = tabName[tabName.length-2]; + } + return name; } return this.configurationService.LANGUAGE_VALUE === 'FR' ? 'Accueil' : 'Home'; diff --git a/src/assets/multilinguism.json b/src/assets/multilinguism.json index fedeedc77..02a6c1cee 100644 --- a/src/assets/multilinguism.json +++ b/src/assets/multilinguism.json @@ -10,6 +10,7 @@ { "id" : "appearance" , "FR" : "Apparence", "EN" : "Appearance" }, { "id" : "globalAppearance" , "FR" : "Apparence générale", "EN" : "Global Appearance" }, { "id" : "paletteManagement" , "FR" : "Gestion des palettes", "EN" : "Palette Management" }, + { "id" : "visualisation" , "FR" : "Visualisation", "EN" : "View" }, { "id" : "language" , "FR" : "Langue", "EN" : "Language" }, { "id" : "grammar" , "FR" : "Grammaire", "EN" : "Grammar" }, { "id" : "share" , "FR" : "Importer", "EN" : "Import" }, @@ -373,7 +374,9 @@ { "id" : "focusSelection", "FR": "Sélection par fixation", "EN": "Selection by focus"}, { "id" : "WordNameFile", "FR": "ClavierAugCom", "EN": "GridFileAugcom"}, { "id" : "WordTitle", "FR": "Clavier Augcom", "EN": "AugCom main grid"}, - { "id" : "WordFolder", "FR": "Sous Dossier", "EN": "Folder"} - + { "id" : "WordFolder", "FR": "Sous Dossier", "EN": "Folder"}, + { "id" : "path", "FR": "Chemin", "EN": "Path"}, + { "id" : "titlePage", "FR": "Titre de la page", "EN": "Title of the page"}, + { "id" : "visualisationPath", "FR": "Visualisation du chemin", "EN": "Path visualization"} ] } From 381db75847939cfccc2de83a2871591badf3da32 Mon Sep 17 00:00:00 2001 From: pilloumatou Date: Tue, 13 May 2025 09:57:30 +0200 Subject: [PATCH 2/3] persistence option pathdisplay in the same session --- .../components/visualisation/visualisation.component.css | 2 +- .../components/visualisation/visualisation.component.html | 4 ++-- src/app/components/visualisation/visualisation.component.ts | 6 ++++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/app/components/visualisation/visualisation.component.css b/src/app/components/visualisation/visualisation.component.css index 9f59e1996..11c7a094e 100644 --- a/src/app/components/visualisation/visualisation.component.css +++ b/src/app/components/visualisation/visualisation.component.css @@ -3,5 +3,5 @@ } .visualisationMargin label { - margin-right: 3%; + margin-right: 1%; } diff --git a/src/app/components/visualisation/visualisation.component.html b/src/app/components/visualisation/visualisation.component.html index f04a044e7..0a36d9a5f 100644 --- a/src/app/components/visualisation/visualisation.component.html +++ b/src/app/components/visualisation/visualisation.component.html @@ -2,10 +2,10 @@
- + - +
diff --git a/src/app/components/visualisation/visualisation.component.ts b/src/app/components/visualisation/visualisation.component.ts index 0e88fc86e..f1f707408 100644 --- a/src/app/components/visualisation/visualisation.component.ts +++ b/src/app/components/visualisation/visualisation.component.ts @@ -12,10 +12,16 @@ export class VisualisationComponent implements OnInit { constructor(public boardService: BoardService, public multilinguism: MultilinguismService) { } + pathDisplay:string = this.boardService.PathDisplay; + getView(choice:string):void{ this.boardService.PathDisplay = choice; + this.pathDisplay = choice; } ngOnInit(): void { + if(this.pathDisplay == null){ + this.pathDisplay = "Path"; + } } } From 8b26dbb5ac028be2fc58e5eb580d69b0a9275eac Mon Sep 17 00:00:00 2001 From: pilloumatou Date: Tue, 13 May 2025 11:01:32 +0200 Subject: [PATCH 3/3] update test --- .../account-menu/account-menu.component.spec.ts | 3 ++- .../visualisation/visualisation.component.spec.ts | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/app/components/account-menu/account-menu.component.spec.ts b/src/app/components/account-menu/account-menu.component.spec.ts index c691465e8..c159555b9 100644 --- a/src/app/components/account-menu/account-menu.component.spec.ts +++ b/src/app/components/account-menu/account-menu.component.spec.ts @@ -88,13 +88,14 @@ describe('AccountMenuComponent', () => { const compiled = fixture.debugElement.nativeElement; component.selectedNewMenu = component.newMenu[0][0]; fixture.detectChanges(); - expect(compiled.querySelectorAll('.title').length).toEqual(6); + expect(compiled.querySelectorAll('.title').length).toEqual(7); expect(compiled.querySelectorAll('.title')[0].textContent).toContain(component.multilinguismService.translate(component.newMenu[0][1][0])); expect(compiled.querySelectorAll('.title')[1].textContent).toContain(component.multilinguismService.translate(component.newMenu[0][1][1])); expect(compiled.querySelectorAll('.title')[2].textContent).toContain(component.multilinguismService.translate(component.newMenu[0][1][2])); expect(compiled.querySelectorAll('.title')[3].textContent).toContain(component.multilinguismService.translate(component.newMenu[0][1][3])); expect(compiled.querySelectorAll('.title')[4].textContent).toContain(component.multilinguismService.translate(component.newMenu[0][1][4])); expect(compiled.querySelectorAll('.title')[5].textContent).toContain(component.multilinguismService.translate(component.newMenu[0][1][5])); + expect(compiled.querySelectorAll('.title')[6].textContent).toContain(component.multilinguismService.translate(component.newMenu[0][1][6])); }); it('should display app-grid-format-management when GridFormat section of Grid is selected', () => { diff --git a/src/app/components/visualisation/visualisation.component.spec.ts b/src/app/components/visualisation/visualisation.component.spec.ts index e3f598cbc..7be916ea9 100644 --- a/src/app/components/visualisation/visualisation.component.spec.ts +++ b/src/app/components/visualisation/visualisation.component.spec.ts @@ -1,6 +1,9 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - +import { Ng2ImgMaxModule } from 'ng2-img-max'; import { VisualisationComponent } from './visualisation.component'; +import {RouterTestingModule} from "@angular/router/testing"; +import {HttpClientModule} from "@angular/common/http"; + describe('VisualisationComponent', () => { let component: VisualisationComponent; @@ -8,7 +11,8 @@ describe('VisualisationComponent', () => { beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ VisualisationComponent ] + declarations: [ VisualisationComponent ], + imports: [Ng2ImgMaxModule, RouterTestingModule, HttpClientModule] }) .compileComponents(); }));