From e57a1bcfdece63061d2d0fc028db4dd842f0cdcd Mon Sep 17 00:00:00 2001
From: rhenck <richard.henck@iqb.hu-berlin.de>
Date: Fri, 5 Jul 2024 15:32:29 +0200
Subject: [PATCH] [editor] Add export-mode ui element via extra menu

---
 .../unit-view/unit-view.component.css           |  4 ++--
 .../unit-view/unit-view.component.html          | 17 ++++++++++++++++-
 .../components/unit-view/unit-view.component.ts |  4 ++++
 .../app/services/unit-services/unit.service.ts  |  5 +++++
 4 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/projects/editor/src/app/components/unit-view/unit-view.component.css b/projects/editor/src/app/components/unit-view/unit-view.component.css
index db01f06d9..b83e0e36b 100644
--- a/projects/editor/src/app/components/unit-view/unit-view.component.css
+++ b/projects/editor/src/app/components/unit-view/unit-view.component.css
@@ -62,7 +62,7 @@ aspect-page-canvas {
   pointer-events: auto;
 }
 
-/* History-button tab label */
-:host ::ng-deep .mat-mdc-tab-labels>div:last-child {
+/* Align menu buttons to right side. */
+:host ::ng-deep .mat-mdc-tab-labels>div:nth-last-child(2) {
   margin-left: auto !important;
 }
diff --git a/projects/editor/src/app/components/unit-view/unit-view.component.html b/projects/editor/src/app/components/unit-view/unit-view.component.html
index ff4f4086e..d0cede2f7 100644
--- a/projects/editor/src/app/components/unit-view/unit-view.component.html
+++ b/projects/editor/src/app/components/unit-view/unit-view.component.html
@@ -74,7 +74,7 @@
 <!--          </ng-template>-->
 <!--        </mat-tab>-->
 
-        <mat-tab disabled>
+        <mat-tab disabled class="align-right">
           <ng-template mat-tab-label>
             <button mat-icon-button [matMenuTriggerFor]="numberingMenu">
               <mat-icon>format_list_numbered</mat-icon>
@@ -92,6 +92,21 @@
             </mat-menu>
           </ng-template>
         </mat-tab>
+        <mat-tab disabled class="align-right">
+          <ng-template mat-tab-label>
+            <button mat-icon-button [matMenuTriggerFor]="extrasMenu">
+              <mat-icon>menu</mat-icon>
+            </button>
+            <mat-menu #extrasMenu="matMenu" (click)="$event.stopPropagation()">
+              <div [style.padding]="'0 20px 10px'" (click)="$event.stopPropagation()">
+                <h3>erweiterte Ansicht</h3>
+                <mat-checkbox [ngModel]="unitService.expertMode" (change)="setExpertMode($event)">
+                  Expertenmodus aktivieren
+                </mat-checkbox>
+              </div>
+            </mat-menu>
+          </ng-template>
+        </mat-tab>
 
       </mat-tab-group>
     </mat-drawer-content>
diff --git a/projects/editor/src/app/components/unit-view/unit-view.component.ts b/projects/editor/src/app/components/unit-view/unit-view.component.ts
index 048c6cf30..5a3d20237 100644
--- a/projects/editor/src/app/components/unit-view/unit-view.component.ts
+++ b/projects/editor/src/app/components/unit-view/unit-view.component.ts
@@ -44,4 +44,8 @@ export class UnitViewComponent {
   setSectionNumberingPosition(event: MatCheckboxChange) {
     this.unitService.setSectionNumberingPosition(event.checked ? 'above' : 'left');
   }
+
+  setExpertMode(event: MatCheckboxChange) {
+    this.unitService.setSectionExpertMode(event.checked);
+  }
 }
diff --git a/projects/editor/src/app/services/unit-services/unit.service.ts b/projects/editor/src/app/services/unit-services/unit.service.ts
index 33537ebff..7d7342530 100644
--- a/projects/editor/src/app/services/unit-services/unit.service.ts
+++ b/projects/editor/src/app/services/unit-services/unit.service.ts
@@ -33,6 +33,7 @@ export class UnitService {
   sectionCountUpdated: Subject<void> = new Subject<void>();
   referenceManager: ReferenceManager;
   savedSectionCode: string | undefined;
+  expertMode: boolean = false;
 
   constructor(private selectionService: SelectionService,
               private veronaApiService: VeronaAPIService,
@@ -229,4 +230,8 @@ export class UnitService {
   getSelectedPage() {
     return this.unit.pages[this.selectionService.selectedPageIndex];
   }
+
+  setSectionExpertMode(checked: boolean) {
+    this.expertMode = checked;
+  }
 }
-- 
GitLab