Skip to content
Snippets Groups Projects
unit-view.component.html 8.43 KiB
Newer Older
<div class="fx-row-start-stretch"
     [style.height.%]="100">
rhenck's avatar
rhenck committed
  <button class="drawer-button show-elements-button" (click)="toolbox_drawer.toggle()">
    <span>
      {{'elements' | translate | uppercase}}
rhenck's avatar
rhenck committed
    </span>
  </button>
  <mat-drawer-container class="fx-flex">
rhenck's avatar
rhenck committed
    <mat-drawer #toolbox_drawer class="toolbox_drawer" mode="side" opened>
      <aspect-ui-element-toolbox></aspect-ui-element-toolbox>
rhenck's avatar
rhenck committed
    </mat-drawer>
rhenck's avatar
rhenck committed
    <mat-drawer-content>
      <mat-tab-group *ngIf="pagesLoaded"
                     [style.height.%]="100" mat-align-tabs="start" mat-stretch-tabs="false"
                     [selectedIndex]="showPagesAsList ? 0 : selectionService.selectedPageIndex"
                     (selectedIndexChange)="selectPage($event)"
                     (animationDone)="pageChangeService.pageChanged.emit()">
rhenck's avatar
rhenck committed
        <ng-container *ngIf="!showPagesAsList">
          <mat-tab *ngFor="let page of unitService.unit.pages; let i = index">
            <ng-template mat-tab-label>
              <ng-container *ngIf="page.alwaysVisible">
                <mat-icon [matTooltip]="'Dauerhaft sichtbare Seite'"
                          [matTooltipPosition]="'above'" [matTooltipShowDelay]="400">
                  sticky_note_2
                </mat-icon>
              </ng-container>
              <ng-container *ngIf="!page.alwaysVisible && unitService.unit.pages[0].alwaysVisible === false">
                {{'page' | translate }} {{i + 1}}
              </ng-container>
              <ng-container *ngIf="!page.alwaysVisible && unitService.unit.pages[0].alwaysVisible === true">
                {{'page' | translate }} {{i}}
              </ng-container>

              <button *ngIf="selectionService.selectedPageIndex == i"
                      mat-icon-button class="menu-button" [matMenuTriggerFor]="pageMenu"
                      [matTooltip]="'Seiteneinstellungen'" [matTooltipPosition]="'above'" [matTooltipShowDelay]="400">
                <mat-icon>more_vert</mat-icon>
              </button>
              <mat-menu #pageMenu="matMenu">
                <aspect-unit-view-page-menu [page]="page" [pageIndex]="i"
                                            (pageOrderChanged)="refreshTabs()"></aspect-unit-view-page-menu>
rhenck's avatar
rhenck committed
              </mat-menu>
            </ng-template>
            <div cdkDropListGroup class="page-view-wrapper">
              <aspect-editor-page-view *ngIf="pagesLoaded" class="fx-column-start-stretch fullscreen-page"
                                         [page]="unitService.unit.pages[selectionService.selectedPageIndex]"
                                         [pageIndex]="i" [singlePageMode]="true"
                                         (pagesChanged)="refreshTabs()">
              </aspect-editor-page-view>
            </div>
rhenck's avatar
rhenck committed
          </mat-tab>
        </ng-container>

        <ng-container *ngIf="showPagesAsList">
          <mat-tab *ngIf="unitService.unit.pages[0].alwaysVisible">
            <ng-template mat-tab-label>
rhenck's avatar
rhenck committed
              <mat-icon [matTooltip]="'Dauerhaft sichtbare Seite'"
                        [matTooltipPosition]="'above'" [matTooltipShowDelay]="400">
                sticky_note_2
              </mat-icon>
rhenck's avatar
rhenck committed
            </ng-template>
            <aspect-editor-page-view *ngIf="pagesLoaded" class="fx-column-start-stretch"
                                     [page]="unitService.unit.pages[0]" [pageIndex]="0"
                                     (pagesChanged)="refreshTabs()">
            </aspect-editor-page-view>
rhenck's avatar
rhenck committed
          </mat-tab>
          <mat-tab>
            <ng-template mat-tab-label>
              {{unitService.unit.pages[0].alwaysVisible ? unitService.unit.pages.length - 1: unitService.unit.pages.length}} Seiten
            </ng-template>
            <div *ngIf="pagesLoaded" cdkDropListGroup >
              <aspect-editor-page-view *ngFor="let page of
                (unitService.unit.pages[0].alwaysVisible ? unitService.unit.pages.slice(1) : unitService.unit.pages);
                let pageIndex = index"
                                       [page]="page"
                                       [pageIndex]="pageIndex + (unitService.unit.pages[0].alwaysVisible ? 1 : 0)"
                                       [isLastPage]="pageIndex == unitService.unit.pages.length - 1"
                                       (alwaysVisiblePageModified)="refreshTabs()">
              </aspect-editor-page-view>
            </div>
rhenck's avatar
rhenck committed
            <button mat-fab extended class="add-page-button" [matTooltip]="'Weitere Seite anlegen'" (click)="addPage()">
              <mat-icon>add</mat-icon>Neue Seite
rhenck's avatar
rhenck committed
          </mat-tab>
        </ng-container>
rhenck's avatar
rhenck committed
        <mat-tab *ngIf="!showPagesAsList" [disabled]="true">
          <ng-template mat-tab-label>
            <button mat-icon-button [matTooltip]="'Weitere Seite anlegen'" (click)="addPage()">
              <mat-icon>add</mat-icon>
            </button>
          </ng-template>
        </mat-tab>
rhenck's avatar
rhenck committed

rhenck's avatar
rhenck committed
<!--        Commented out for now, until feature works-->
<!--        <mat-tab disabled>-->
<!--          <ng-template mat-tab-label>-->
<!--            <button mat-icon-button class="history-button" [matMenuTriggerFor]="historyMenu">-->
<!--              <mat-icon>history</mat-icon>-->
<!--            </button>-->
<!--            <mat-menu #historyMenu="matMenu">-->
<!--              <h3>Änderungshistorie</h3>-->
<!--              <p [style.color]="'red'">Achtung experimentelle Funktion!<br>-->
<!--                Benutzung kann Fehler verursachen bis hin zu kaputter Unit.</p>-->
<!--              <div *ngFor="let command of historyService.commandList">-->
<!--                <p>{{ command.title }}</p>-->
<!--              </div>-->
<!--              <button *ngIf="historyService.commandList.length > 0" (click)="unitService.rollback()">Rollback</button>-->
<!--            </mat-menu>-->
<!--          </ng-template>-->
<!--        </mat-tab>-->
rhenck's avatar
rhenck committed

rhenck's avatar
rhenck committed
        <mat-tab [disabled]="true" class="align-right">
          <ng-template mat-tab-label>
            <button mat-icon-button [matMenuTriggerFor]="numberingMenu">
              <mat-icon>settings</mat-icon>
            </button>
            <mat-menu #numberingMenu="matMenu" (click)="$event.stopPropagation()">
              <div [style.padding]="'0 20px 10px'" (click)="$event.stopPropagation()">
                <h3>Abschnittsnummerierung</h3>
                <mat-checkbox #numberingInput [checked]="unitService.unit.enableSectionNumbering"
                              (change)="setSectionNumbering($event)">
                  Nummerierung aktivieren
                </mat-checkbox>
                <mat-checkbox [disabled]="!numberingInput.checked" [checked]="unitService.unit.sectionNumberingPosition"
                              (change)="setSectionNumberingPosition($event)">
                  vertikale Ausrichtung
                </mat-checkbox>
                <h3>Navigation</h3>
                <mat-checkbox [matTooltip]="'Wird am Ende der letzten Seite angezeigt'" (change)="setUnitNavNext($event)">
                  Navigationsknopf zur nächsten Unit anfügen
                </mat-checkbox>
              </div>
            </mat-menu>
          </ng-template>
        </mat-tab>
rhenck's avatar
rhenck committed
        <mat-tab [disabled]="true" class="align-right">
          <ng-template mat-tab-label>
            <button mat-icon-button [matMenuTriggerFor]="extrasMenu" data-cy="extras-menu">
              <mat-icon>menu</mat-icon>
            </button>
            <mat-menu #extrasMenu="matMenu" (click)="$event.stopPropagation()">
              <div [style.padding]="'0 20px 10px'" (click)="$event.stopPropagation()">
                <mat-checkbox [disabled]="!unitService.allowExpertMode"
                              [ngModel]="unitService.expertMode" (change)="setExpertMode($event)">
                  Erweiterter Modus
                </mat-checkbox>
rhenck's avatar
rhenck committed
                <mat-checkbox [checked]="showPagesAsList" (change)="toggleViewMode()">
                  Seitenansicht untereinander
                </mat-checkbox>
              </div>
            </mat-menu>
          </ng-template>
        </mat-tab>
      </mat-tab-group>
rhenck's avatar
rhenck committed
    </mat-drawer-content>
rhenck's avatar
rhenck committed
    <mat-drawer #properties_drawer class="properties_drawer" position="end" mode="side" opened>
      <aspect-element-properties></aspect-element-properties>
rhenck's avatar
rhenck committed
    </mat-drawer>
  </mat-drawer-container>
rhenck's avatar
rhenck committed
  <button class="drawer-button show-properties-button" (click)="properties_drawer.toggle()">
    <span>
      {{'properties' | translate | uppercase}}
rhenck's avatar
rhenck committed
    </span>
  </button>
</div>