blob: 0674090b7b7f489f7492e3309d102d3a63c333c5 [file] [log] [blame]
<!--
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~ http://www.apache.org/licenses/LICENSE-2.0
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<div class="content" [class.header-mode]="headerMode">
<h4>
<a (click)="importNote()">
<i nz-icon nzType="upload" nzTheme="outline"></i>
Import Note
</a>
</h4>
<h4>
<a (click)="createNote()">
<i nz-icon nzType="file-add" nzTheme="outline"></i>
Create new Note
</a>
</h4>
<nz-input-group [nzPrefixIcon]="'search'" nzSize="small">
<input type="text" nz-input placeholder="Filter" nzSize="small" [(ngModel)]="searchValue" />
</nz-input-group>
<nz-tree [nzData]="nodes" [nzSearchValue]="searchValue" [nzTreeTemplate]="treeTpl"></nz-tree>
<ng-template #treeTpl let-node>
<span
class="node"
[ngSwitch]="node.origin.nodeType"
[class.not-matched]="searchValue && !node.isMatched"
[class.active]="activatedId === node.origin.id"
(click)="activeNote(node.origin.id)"
>
<span class="folder" *ngSwitchCase="'folder'">
<a class="name" (click)="toggleFolder(node)">
<i nz-icon [nzType]="node.isExpanded ? 'folder-open' : 'folder'" nzTheme="fill"></i>
{{ node.title }}
</a>
<span class="operation">
<ng-container *ngIf="!node.origin.isTrash; else trashFolderTpl">
<a nz-tooltip nzTooltipTitle="Create new note">
<i nz-icon nzType="file-add" (click)="createNote(node.origin.id)"></i>
</a>
<a nz-tooltip nzTooltipTitle="Rename folder">
<i nz-icon nzType="edit" (click)="renameFolder(node.origin.id)"></i>
</a>
<a nz-tooltip nzTooltipTitle="Move folder to Trash">
<i
nz-icon
nzType="delete"
nz-popconfirm
nzPopconfirmTitle="This folder will be moved to trash."
(nzOnConfirm)="moveFolderToTrash(node.origin.id)"
></i>
</a>
</ng-container>
<ng-template #trashFolderTpl>
<a nz-tooltip nzTooltipTitle="Restore folder">
<i nz-icon nzType="undo" (click)="restoreFolder(node.origin.id)"></i>
</a>
<a nz-tooltip nzTooltipTitle="Remove folder permanently">
<i
nz-icon
nzType="delete"
nz-popconfirm
nzPopconfirmTitle="This cannot be undone. Are you sure?"
(nzOnConfirm)="removeFolder(node.origin.id)"
></i>
</a>
</ng-template>
</span>
</span>
<span class="file" *ngSwitchCase="'note'">
<a class="name">
<i nz-icon nzType="file" nzTheme="outline"></i>
<a [routerLink]="['/notebook', node.origin.id]">
{{ node.title }}
</a>
</a>
<span class="operation">
<ng-container *ngIf="!node.origin.isTrash; else trashFileTpl">
<a nz-tooltip nzTooltipTitle="Rename note">
<i nz-icon nzType="edit" (click)="renameNote(node.origin.id, node.origin.path, node.origin.name)"></i>
</a>
<a nz-tooltip nzTooltipTitle="Clear output">
<i
nz-icon
nzType="fire"
nz-popconfirm
nzPopconfirmTitle="Do you want to clear all output?"
(nzOnConfirm)="paragraphClearAllOutput(node.origin.id)"
></i>
</a>
<a nz-tooltip nzTooltipTitle="Move note to Trash">
<i
nz-icon
nzType="delete"
nz-popconfirm
nzPopconfirmTitle="This note will be moved to trash."
(nzOnConfirm)="moveNoteToTrash(node.origin.id)"
></i>
</a>
</ng-container>
<ng-template #trashFileTpl>
<a nz-tooltip nzTooltipTitle="Restore note">
<i nz-icon nzType="undo" (click)="restoreNote(node.origin.id)"></i>
</a>
<a nz-tooltip nzTooltipTitle="Remove note permanently">
<i
nz-icon
nzType="delete"
nz-popconfirm
nzPopconfirmTitle="This cannot be undone. Are you sure?"
(nzOnConfirm)="deleteNote(node.origin.id)"
></i>
</a>
</ng-template>
</span>
</span>
<span class="folder" *ngSwitchCase="'trash'">
<a class="name" (click)="toggleFolder(node)">
<i nz-icon nzType="delete" nzTheme="fill"></i>
{{ node.title }}
</a>
<span class="operation">
<a nz-tooltip nzTooltipTitle="Restore all">
<i
nz-icon
nzType="undo"
nz-popconfirm
nzPopconfirmTitle="Folders and notes in the trash will be merged into their original position."
(nzOnConfirm)="restoreAll()"
></i>
</a>
<a nz-tooltip nzTooltipTitle="Empty all">
<i
nz-icon
nzType="delete"
nz-popconfirm
nzPopconfirmTitle="This cannot be undone. Are you sure?"
(nzOnConfirm)="emptyTrash()"
></i>
</a>
</span>
</span>
</span>
</ng-template>
</div>