[ACA-2122] automatic code formatting on commit (#890)

This commit is contained in:
Denys Vuika
2019-01-04 15:20:24 +00:00
committed by GitHub
parent fe8c459637
commit 7992b0a015
28 changed files with 2016 additions and 879 deletions

908
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -20,13 +20,15 @@
"e2e:docker": "npm run start:docker && npm run e2e && npm run stop:docker", "e2e:docker": "npm run start:docker && npm run e2e && npm run stop:docker",
"spellcheck": "cspell 'src/**/*.ts' 'e2e/**/*.ts' 'projects/**/*.ts'", "spellcheck": "cspell 'src/**/*.ts' 'e2e/**/*.ts' 'projects/**/*.ts'",
"inspect.bundle": "ng build app --prod --stats-json && npx webpack-bundle-analyzer dist/app/stats.json", "inspect.bundle": "ng build app --prod --stats-json && npx webpack-bundle-analyzer dist/app/stats.json",
"format:check": "prettier --list-different \"src/{app,environments}/**/*{.ts,.js,.css,.scss}\"", "format:check": "prettier --list-different \"src/{app,environments}/**/*.{ts,js,css,scss,html}\"",
"format:fix": "prettier --write \"src/{app,environments}/**/*.{ts,js,css,scss,html}\"",
"build.tomcat": "npm run build -- --base-href ./ && jar -cvf docker/tomcat/artifacts/content-app.war -C dist/app/ .", "build.tomcat": "npm run build -- --base-href ./ && jar -cvf docker/tomcat/artifacts/content-app.war -C dist/app/ .",
"build.tomcat.e2e": "./build-tomcat-e2e.sh", "build.tomcat.e2e": "./build-tomcat-e2e.sh",
"e2e.tomcat": "npm run wd:update && protractor --baseUrl=http://localhost:4000/content-app/", "e2e.tomcat": "npm run wd:update && protractor --baseUrl=http://localhost:4000/content-app/",
"docker.tomcat.start": "cd docker/tomcat && docker-compose up -d --build && wait-on http://localhost:8080 && wait-on http://localhost:4000", "docker.tomcat.start": "cd docker/tomcat && docker-compose up -d --build && wait-on http://localhost:8080 && wait-on http://localhost:4000",
"docker.tomcat.stop": "cd docker/tomcat && docker-compose stop", "docker.tomcat.stop": "cd docker/tomcat && docker-compose stop",
"docker.tomcat.e2e": "npm run docker.tomcat.start && npm run e2e.tomcat" "docker.tomcat.e2e": "npm run docker.tomcat.start && npm run e2e.tomcat",
"lint:staged": "lint-staged"
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
@@ -88,7 +90,9 @@
"karma-coverage-istanbul-reporter": "^1.2.1", "karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0", "karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2", "karma-jasmine-html-reporter": "^0.2.2",
"lint-staged": "^8.1.0",
"ng-packagr": "^4.4.0", "ng-packagr": "^4.4.0",
"pre-commit": "^1.2.2",
"prettier": "^1.15.3", "prettier": "^1.15.3",
"protractor": "^5.4.0", "protractor": "^5.4.0",
"rimraf": "2.6.2", "rimraf": "2.6.2",
@@ -100,5 +104,12 @@
"tslint": "~5.11.0", "tslint": "~5.11.0",
"typescript": "^3.1.6", "typescript": "^3.1.6",
"wait-on": "^3.0.1" "wait-on": "^3.0.1"
} },
"lint-staged": {
"*.{ts,js,css,scss,html}": [
"prettier --single-quote --write",
"git add"
]
},
"pre-commit": "lint:staged"
} }

View File

@@ -1,4 +1,4 @@
<ng-container *ngIf="isCustom; else: default"> <ng-container *ngIf="isCustom; else default">
<mat-icon [svgIcon]="value"></mat-icon> <mat-icon [svgIcon]="value"></mat-icon>
</ng-container> </ng-container>

View File

@@ -3,9 +3,14 @@
data-automation-id="create-button" data-automation-id="create-button"
mat-raised-button mat-raised-button
[matMenuTriggerFor]="rootMenu" [matMenuTriggerFor]="rootMenu"
title="{{ 'APP.NEW_MENU.TOOLTIP' | translate }}"> title="{{ 'APP.NEW_MENU.TOOLTIP' | translate }}"
<span class="app-create-menu__text">{{ 'APP.NEW_MENU.LABEL' | translate }}</span> >
<mat-icon title="{{ 'APP.NEW_MENU.TOOLTIP' | translate }}">arrow_drop_down</mat-icon> <span class="app-create-menu__text">{{
'APP.NEW_MENU.LABEL' | translate
}}</span>
<mat-icon title="{{ 'APP.NEW_MENU.TOOLTIP' | translate }}"
>arrow_drop_down</mat-icon
>
</button> </button>
</ng-container> </ng-container>
@@ -17,12 +22,22 @@
data-automation-id="create-button" data-automation-id="create-button"
[matMenuTriggerFor]="rootMenu" [matMenuTriggerFor]="rootMenu"
#createMenu="matMenuTrigger" #createMenu="matMenuTrigger"
title="{{ 'APP.NEW_MENU.TOOLTIP' | translate }}"> title="{{ 'APP.NEW_MENU.TOOLTIP' | translate }}"
<mat-icon [color]="createMenu.menuOpen? 'accent': 'primary'" title="{{ 'APP.NEW_MENU.TOOLTIP' | translate }}">queue</mat-icon> >
<mat-icon
[color]="createMenu.menuOpen ? 'accent' : 'primary'"
title="{{ 'APP.NEW_MENU.TOOLTIP' | translate }}"
>queue</mat-icon
>
</button> </button>
</ng-container> </ng-container>
<mat-menu #rootMenu="matMenu" class="app-create-menu__root-menu app-create-menu__sub-menu" [overlapTrigger]="false" yPosition="below"> <mat-menu
#rootMenu="matMenu"
class="app-create-menu__root-menu app-create-menu__sub-menu"
[overlapTrigger]="false"
yPosition="below"
>
<ng-container *ngFor="let action of createActions; trackBy: trackById"> <ng-container *ngFor="let action of createActions; trackBy: trackById">
<app-toolbar-menu-item [actionRef]="action"></app-toolbar-menu-item> <app-toolbar-menu-item [actionRef]="action"></app-toolbar-menu-item>
</ng-container> </ng-container>

View File

@@ -1,15 +1,16 @@
<div title="{{ (profile$ | async)?.id }}"> <div title="{{ (profile$ | async)?.id }}">
<div class="current-user__full-name">{{ (profile$ | async)?.userName }}</div> <div class="current-user__full-name">{{ (profile$ | async)?.userName }}</div>
<div <div class="current-user__avatar am-avatar" [matMenuTriggerFor]="userMenu">
class="current-user__avatar am-avatar"
[matMenuTriggerFor]="userMenu">
{{ (profile$ | async)?.initials }} {{ (profile$ | async)?.initials }}
</div> </div>
</div> </div>
<mat-menu #userMenu="matMenu" [overlapTrigger]="false"> <mat-menu #userMenu="matMenu" [overlapTrigger]="false">
<button *ngIf="languagePicker$ | async" <button
mat-menu-item [matMenuTriggerFor]="langMenu"> *ngIf="(languagePicker$ | async)"
mat-menu-item
[matMenuTriggerFor]="langMenu"
>
{{ 'APP.LANGUAGE' | translate }} {{ 'APP.LANGUAGE' | translate }}
</button> </button>

View File

@@ -6,8 +6,13 @@
<adf-info-drawer-tab <adf-info-drawer-tab
*ngFor="let tab of tabs" *ngFor="let tab of tabs"
[icon]="tab.icon" [icon]="tab.icon"
[label]="tab.title | translate"> [label]="tab.title | translate"
<adf-dynamic-tab [node]="displayNode" [id]="tab.component" [attr.data-automation-id]="tab.component"> >
<adf-dynamic-tab
[node]="displayNode"
[id]="tab.component"
[attr.data-automation-id]="tab.component"
>
</adf-dynamic-tab> </adf-dynamic-tab>
</adf-info-drawer-tab> </adf-info-drawer-tab>
</adf-info-drawer> </adf-info-drawer>

View File

@@ -1,6 +1,8 @@
<mat-card *ngIf="node"> <mat-card *ngIf="node">
<mat-card-content *ngIf="!edit"> <mat-card-content *ngIf="!edit">
<div class="mat-form-field mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float adf-full-width"> <div
class="mat-form-field mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float adf-full-width"
>
<div class="mat-form-field-wrapper"> <div class="mat-form-field-wrapper">
<div class="mat-form-field-flex"> <div class="mat-form-field-flex">
<div class="mat-form-field-infix"> <div class="mat-form-field-infix">
@@ -18,7 +20,9 @@
</div> </div>
</div> </div>
<div class="mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float adf-full-width"> <div
class="mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float adf-full-width"
>
<div class="mat-form-field-wrapper"> <div class="mat-form-field-wrapper">
<div class="mat-form-field-flex"> <div class="mat-form-field-flex">
<div class="mat-form-field-infix"> <div class="mat-form-field-infix">
@@ -36,7 +40,9 @@
</div> </div>
</div> </div>
<div class="mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float adf-full-width"> <div
class="mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float adf-full-width"
>
<div class="mat-form-field-wrapper"> <div class="mat-form-field-wrapper">
<div class="mat-form-field-flex"> <div class="mat-form-field-flex">
<div class="mat-form-field-infix"> <div class="mat-form-field-infix">
@@ -47,14 +53,18 @@
</span> </span>
<span class="mat-input-element"> <span class="mat-input-element">
{{ (getVisibilityLabel(form.controls.visibility.value)) | translate }} {{
getVisibilityLabel(form.controls.visibility.value) | translate
}}
</span> </span>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float adf-full-width"> <div
class="mat-form-field mat-primary mat-form-field-type-mat-input mat-form-field-can-float mat-form-field-should-float adf-full-width"
>
<div class="mat-form-field-wrapper"> <div class="mat-form-field-wrapper">
<div class="mat-form-field-flex"> <div class="mat-form-field-flex">
<div class="mat-form-field-infix"> <div class="mat-form-field-infix">
@@ -82,21 +92,35 @@
<mat-card-content *ngIf="edit"> <mat-card-content *ngIf="edit">
<form [formGroup]="form" autocomplete="off"> <form [formGroup]="form" autocomplete="off">
<mat-form-field class="adf-full-width"> <mat-form-field class="adf-full-width">
<input matInput cdkFocusInitial required placeholder="{{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}" <input
formControlName="title"> matInput
cdkFocusInitial
required
placeholder="{{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}"
formControlName="title"
/>
<mat-hint *ngIf="libraryTitleExists">{{ 'LIBRARY.HINTS.SITE_TITLE_EXISTS' | translate }}</mat-hint> <mat-hint *ngIf="libraryTitleExists">{{
'LIBRARY.HINTS.SITE_TITLE_EXISTS' | translate
}}</mat-hint>
<mat-error *ngIf="form.controls['title'].hasError('maxlength')"> <mat-error *ngIf="form.controls['title'].hasError('maxlength')">
{{ 'LIBRARY.ERRORS.TITLE_TOO_LONG' | translate }} {{ 'LIBRARY.ERRORS.TITLE_TOO_LONG' | translate }}
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field class="adf-full-width"> <mat-form-field class="adf-full-width">
<input matInput placeholder="{{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}" formControlName="id"> <input
matInput
placeholder="{{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}"
formControlName="id"
/>
</mat-form-field> </mat-form-field>
<mat-form-field class="adf-full-width"> <mat-form-field class="adf-full-width">
<mat-select placeholder="{{ 'LIBRARY.DIALOG.FORM.VISIBILITY' | translate }}" formControlName="visibility"> <mat-select
placeholder="{{ 'LIBRARY.DIALOG.FORM.VISIBILITY' | translate }}"
formControlName="visibility"
>
<mat-option [value]="type.value" *ngFor="let type of libraryType"> <mat-option [value]="type.value" *ngFor="let type of libraryType">
{{ type.label | translate }} {{ type.label | translate }}
</mat-option> </mat-option>
@@ -104,8 +128,12 @@
</mat-form-field> </mat-form-field>
<mat-form-field class="adf-full-width"> <mat-form-field class="adf-full-width">
<textarea matInput placeholder="{{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}" rows="3" <textarea
formControlName="description"></textarea> matInput
placeholder="{{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}"
rows="3"
formControlName="description"
></textarea>
<mat-error *ngIf="form.controls['description'].hasError('maxlength')"> <mat-error *ngIf="form.controls['description'].hasError('maxlength')">
{{ 'LIBRARY.ERRORS.DESCRIPTION_TOO_LONG' | translate }} {{ 'LIBRARY.ERRORS.DESCRIPTION_TOO_LONG' | translate }}
@@ -118,7 +146,12 @@
<button mat-button color="secondary" (click)="cancel()"> <button mat-button color="secondary" (click)="cancel()">
{{ 'LIBRARY.DIALOG.CANCEL' | translate }} {{ 'LIBRARY.DIALOG.CANCEL' | translate }}
</button> </button>
<button mat-button color="primary" [disabled]="form.invalid || form.pristine" (click)="update()"> <button
mat-button
color="primary"
[disabled]="form.invalid || form.pristine"
(click)="update()"
>
{{ 'LIBRARY.DIALOG.UPDATE' | translate }} {{ 'LIBRARY.DIALOG.UPDATE' | translate }}
</button> </button>
</mat-card-actions> </mat-card-actions>

View File

@@ -1,7 +1,4 @@
<adf-upload-drag-area <adf-upload-drag-area [parentId]="currentFolderId" [disabled]="!canUpload">
[parentId]="currentFolderId"
[disabled]="!canUpload">
<adf-sidenav-layout <adf-sidenav-layout
#layout #layout
[sidenavMin]="70" [sidenavMin]="70"
@@ -9,13 +6,14 @@
[stepOver]="600" [stepOver]="600"
[hideSidenav]="hideSidenav" [hideSidenav]="hideSidenav"
[expandedSidenav]="expandedSidenav" [expandedSidenav]="expandedSidenav"
(expanded)="onExpanded($event)"> (expanded)="onExpanded($event)"
>
<adf-sidenav-layout-header> <adf-sidenav-layout-header>
<ng-template> <ng-template>
<app-header <app-header
*ngIf="!hideSidenav" *ngIf="!hideSidenav"
(toggleClicked)="layout.toggleMenu($event)"> (toggleClicked)="layout.toggleMenu($event)"
>
</app-header> </app-header>
</ng-template> </ng-template>
</adf-sidenav-layout-header> </adf-sidenav-layout-header>
@@ -27,11 +25,8 @@
</adf-sidenav-layout-navigation> </adf-sidenav-layout-navigation>
<adf-sidenav-layout-content> <adf-sidenav-layout-content>
<ng-template> <ng-template> <router-outlet></router-outlet> </ng-template>
<router-outlet></router-outlet>
</ng-template>
</adf-sidenav-layout-content> </adf-sidenav-layout-content>
</adf-sidenav-layout> </adf-sidenav-layout>
<app-file-uploading-dialog position="left"></app-file-uploading-dialog> <app-file-uploading-dialog position="left"></app-file-uploading-dialog>

View File

@@ -4,5 +4,6 @@
successRoute="/personal-files" successRoute="/personal-files"
[logoImageUrl]="'./assets/images/alfresco-logo.svg'" [logoImageUrl]="'./assets/images/alfresco-logo.svg'"
[showRememberMe]="false" [showRememberMe]="false"
[showLoginActions]="false"> [showLoginActions]="false"
>
</adf-login> </adf-login>

View File

@@ -3,5 +3,7 @@
<app-permission-manager [nodeId]="nodeId"></app-permission-manager> <app-permission-manager [nodeId]="nodeId"></app-permission-manager>
</section> </section>
<footer mat-dialog-actions> <footer mat-dialog-actions>
<button mat-button color="primary" [mat-dialog-close]="true" cdkFocusInitial>{{'PERMISSIONS.DIALOG.CLOSE' | translate}}</button> <button mat-button color="primary" [mat-dialog-close]="true" cdkFocusInitial>
{{'PERMISSIONS.DIALOG.CLOSE' | translate}}
</button>
</footer> </footer>

View File

@@ -5,8 +5,13 @@
[nodeId]="nodeId" [nodeId]="nodeId"
[color]="toggleStatus ? 'accent' : 'primary'" [color]="toggleStatus ? 'accent' : 'primary'"
(error)="onError($event)" (error)="onError($event)"
(updated)="onUpdatedPermissions($event)"> (updated)="onUpdatedPermissions($event)"
{{ (toggleStatus ? 'PERMISSIONS.DIALOG.INHERITED_PERMISSIONS_BUTTON' : 'PERMISSIONS.DIALOG.INHERIT_PERMISSIONS_BUTTON') | translate }} >
{{
(toggleStatus
? 'PERMISSIONS.DIALOG.INHERITED_PERMISSIONS_BUTTON'
: 'PERMISSIONS.DIALOG.INHERIT_PERMISSIONS_BUTTON') | translate
}}
</button> </button>
<button mat-button (click)="openAddPermissionDialog($event)"> <button mat-button (click)="openAddPermissionDialog($event)">
{{ 'PERMISSIONS.DIALOG.ADD_USER_OR_GROUP' | translate }} {{ 'PERMISSIONS.DIALOG.ADD_USER_OR_GROUP' | translate }}
@@ -17,5 +22,6 @@
#permissionList #permissionList
[nodeId]="nodeId" [nodeId]="nodeId"
(error)="onError($event)" (error)="onError($event)"
(update)="onUpdate()"> (update)="onUpdate()"
>
</adf-permission-list> </adf-permission-list>

View File

@@ -1,5 +1,4 @@
<ng-container *ngIf="nodeId"> <ng-container *ngIf="nodeId">
<adf-viewer <adf-viewer
[fileNodeId]="nodeId" [fileNodeId]="nodeId"
[allowNavigate]="navigateMultiple" [allowNavigate]="navigateMultiple"
@@ -13,8 +12,8 @@
(showViewerChange)="onVisibilityChanged($event)" (showViewerChange)="onVisibilityChanged($event)"
(navigateBefore)="onNavigateBefore()" (navigateBefore)="onNavigateBefore()"
(navigateNext)="onNavigateNext()" (navigateNext)="onNavigateNext()"
[ngClass]="hasRightSidebar ? 'hide-last-divider': ''"> [ngClass]="hasRightSidebar ? 'hide-last-divider' : ''"
>
<adf-viewer-sidebar> <adf-viewer-sidebar>
<aca-info-drawer [node]="selection.file"></aca-info-drawer> <aca-info-drawer [node]="selection.file"></aca-info-drawer>
</adf-viewer-sidebar> </adf-viewer-sidebar>
@@ -26,13 +25,20 @@
</adf-viewer-open-with> </adf-viewer-open-with>
<adf-viewer-toolbar-actions> <adf-viewer-toolbar-actions>
<ng-container *ngFor="let action of viewerToolbarActions; trackBy: trackByActionId"> <ng-container
*ngFor="let action of viewerToolbarActions; trackBy: trackByActionId"
>
<aca-toolbar-action [actionRef]="action"></aca-toolbar-action> <aca-toolbar-action [actionRef]="action"></aca-toolbar-action>
</ng-container> </ng-container>
</adf-viewer-toolbar-actions> </adf-viewer-toolbar-actions>
<adf-viewer-more-actions *ngIf="viewerToolbarMoreActions.length"> <adf-viewer-more-actions *ngIf="viewerToolbarMoreActions.length">
<ng-container *ngFor="let action of viewerToolbarMoreActions; trackBy: trackByActionId"> <ng-container
*ngFor="
let action of viewerToolbarMoreActions;
trackBy: trackByActionId
"
>
<app-toolbar-menu-item [actionRef]="action"></app-toolbar-menu-item> <app-toolbar-menu-item [actionRef]="action"></app-toolbar-menu-item>
</ng-container> </ng-container>
</adf-viewer-more-actions> </adf-viewer-more-actions>
@@ -45,11 +51,11 @@
[node]="selection.file?.entry" [node]="selection.file?.entry"
[url]="url" [url]="url"
[extension]="extension" [extension]="extension"
[attr.data-automation-id]="ext.component"> [attr.data-automation-id]="ext.component"
>
</app-preview-extension> </app-preview-extension>
</ng-template> </ng-template>
</adf-viewer-extension> </adf-viewer-extension>
</ng-container> </ng-container>
</adf-viewer> </adf-viewer>
</ng-container> </ng-container>

View File

@@ -1,21 +1,33 @@
<div class="app-search-container"> <div class="app-search-container">
<button mat-icon-button <button
mat-icon-button
id="app-search-button" id="app-search-button"
class="app-search-button" class="app-search-button"
[title]="'SEARCH.BUTTON.TOOLTIP' | translate"> [title]="'SEARCH.BUTTON.TOOLTIP' | translate"
<mat-icon [attr.aria-label]="'SEARCH.BUTTON.ARIA-LABEL' | translate">search</mat-icon> >
<mat-icon [attr.aria-label]="'SEARCH.BUTTON.ARIA-LABEL' | translate"
>search</mat-icon
>
</button> </button>
<mat-form-field class="app-input-form-field" [floatLabel]="'never'"> <mat-form-field class="app-input-form-field" [floatLabel]="'never'">
<input matInput #searchInput <input
matInput
#searchInput
[attr.aria-label]="'SEARCH.INPUT.ARIA-LABEL' | translate" [attr.aria-label]="'SEARCH.INPUT.ARIA-LABEL' | translate"
[type]="inputType" [type]="inputType"
id="app-control-input" id="app-control-input"
[(ngModel)]="searchTerm" [(ngModel)]="searchTerm"
(ngModelChange)="inputChange($event)" (ngModelChange)="inputChange($event)"
(keyup.enter)="searchSubmit($event)" (keyup.enter)="searchSubmit($event)"
[placeholder]="'SEARCH.INPUT.PLACEHOLDER' | translate"> [placeholder]="'SEARCH.INPUT.PLACEHOLDER' | translate"
/>
<div matSuffix class="app-suffix-search-icon-wrapper"> <div matSuffix class="app-suffix-search-icon-wrapper">
<mat-icon *ngIf="searchTerm.length" (click)="clear()" class="app-clear-icon">clear</mat-icon> <mat-icon
*ngIf="searchTerm.length"
(click)="clear()"
class="app-clear-icon"
>clear</mat-icon
>
</div> </div>
</mat-form-field> </mat-form-field>
</div> </div>

View File

@@ -1,17 +1,26 @@
<div class="app-search-container searchMenuTrigger" [matMenuTriggerFor]="searchOptionsMenu" <div
(menuOpened)="onMenuOpened()"> class="app-search-container searchMenuTrigger"
<button mat-icon-button [matMenuTriggerFor]="searchOptionsMenu"
(menuOpened)="onMenuOpened()"
>
<button
mat-icon-button
class="app-search-button" class="app-search-button"
[title]="'SEARCH.BUTTON.TOOLTIP' | translate"> [title]="'SEARCH.BUTTON.TOOLTIP' | translate"
<mat-icon [attr.aria-label]="'SEARCH.BUTTON.ARIA-LABEL' | translate">search</mat-icon> >
<mat-icon [attr.aria-label]="'SEARCH.BUTTON.ARIA-LABEL' | translate"
>search</mat-icon
>
</button> </button>
<mat-form-field class="app-input-form-field" [floatLabel]="'never'"> <mat-form-field class="app-input-form-field" [floatLabel]="'never'">
<input matInput <input
matInput
[attr.aria-label]="'SEARCH.INPUT.ARIA-LABEL' | translate" [attr.aria-label]="'SEARCH.INPUT.ARIA-LABEL' | translate"
[type]="'text'" [type]="'text'"
[disabled]="true" [disabled]="true"
[value]="searchedWord" [value]="searchedWord"
[placeholder]="'SEARCH.INPUT.PLACEHOLDER' | translate"> [placeholder]="'SEARCH.INPUT.PLACEHOLDER' | translate"
/>
<div matSuffix class="app-suffix-search-icon-wrapper"> <div matSuffix class="app-suffix-search-icon-wrapper">
<mat-icon>arrow_drop_down</mat-icon> <mat-icon>arrow_drop_down</mat-icon>
@@ -19,21 +28,31 @@
</mat-form-field> </mat-form-field>
</div> </div>
<mat-menu #searchOptionsMenu="matMenu" [overlapTrigger]="true" class="app-search-options-menu"> <mat-menu
<app-search-input-control #searchInputControl #searchOptionsMenu="matMenu"
[overlapTrigger]="true"
class="app-search-options-menu"
>
<app-search-input-control
#searchInputControl
(click)="$event.stopPropagation()" (click)="$event.stopPropagation()"
(submit)="onSearchSubmit($event)" (submit)="onSearchSubmit($event)"
(searchChange)="onSearchChange($event)"> (searchChange)="onSearchChange($event)"
>
</app-search-input-control> </app-search-input-control>
<mat-hint *ngIf="hasLibraryConstraint()" class="app-search-hint">{{ 'SEARCH.INPUT.HINT' | translate }}</mat-hint> <mat-hint *ngIf="hasLibraryConstraint()" class="app-search-hint">{{
'SEARCH.INPUT.HINT' | translate
}}</mat-hint>
<div id="search-options"> <div id="search-options">
<mat-checkbox *ngFor="let option of searchOptions" <mat-checkbox
*ngFor="let option of searchOptions"
id="{{ option.id }}" id="{{ option.id }}"
[(ngModel)]="option.value" [(ngModel)]="option.value"
[disabled]="option.shouldDisable()" [disabled]="option.shouldDisable()"
(change)="searchByOption()" (change)="searchByOption()"
(click)="$event.stopPropagation()"> (click)="$event.stopPropagation()"
>
{{ option.key | translate }} {{ option.key | translate }}
</mat-checkbox> </mat-checkbox>
</div> </div>

View File

@@ -1,17 +1,26 @@
<div class="line"> <div class="line">
<span *ngIf="isFile" (click)="showPreview()" class="link"> {{ name }} </span> <span *ngIf="isFile" (click)="showPreview()" class="link"> {{ name }} </span>
<span *ngIf="!isFile" (click)="navigate()" class="bold link"> {{ name }} </span> <span *ngIf="!isFile" (click)="navigate()" class="bold link">
{{ name }}
</span>
<span *ngIf="hasTitle && showTitle"> ( {{ title }} ) </span> <span *ngIf="hasTitle && showTitle"> ( {{ title }} ) </span>
</div> </div>
<div *ngIf="hasDescription" class="line">{{ description }}</div> <div *ngIf="hasDescription" class="line">{{ description }}</div>
<div class="line"> <div class="line">
{{ 'APP.BROWSE.SEARCH.CUSTOM_ROW.MODIFIED' | translate }}: {{ modifiedAt | date:'medium' }} {{ 'APP.BROWSE.SEARCH.CUSTOM_ROW.MODIFIED' | translate }}:
{{ modifiedAt | date: 'medium' }}
by <span> {{ user }} </span> by <span> {{ user }} </span>
<span *ngIf="size">| {{ 'APP.BROWSE.SEARCH.CUSTOM_ROW.SIZE' | translate }}: {{ size | adfFileSize }} </span> <span *ngIf="size"
>| {{ 'APP.BROWSE.SEARCH.CUSTOM_ROW.SIZE' | translate }}:
{{ size | adfFileSize }}
</span>
</div> </div>
<div class="line">{{ 'APP.BROWSE.SEARCH.CUSTOM_ROW.LOCATION' | translate }}: <aca-location-link [context]="context"></aca-location-link></div> <div class="line">
{{ 'APP.BROWSE.SEARCH.CUSTOM_ROW.LOCATION' | translate }}:
<aca-location-link [context]="context"></aca-location-link>
</div>

View File

@@ -1,8 +1,6 @@
<app-page-layout> <app-page-layout>
<app-page-layout-header> <app-page-layout-header>
<adf-breadcrumb root="APP.BROWSE.SEARCH.TITLE"> <adf-breadcrumb root="APP.BROWSE.SEARCH.TITLE"> </adf-breadcrumb>
</adf-breadcrumb>
<adf-toolbar class="inline"> <adf-toolbar class="inline">
<ng-container *ngFor="let entry of actions; trackBy: trackByActionId"> <ng-container *ngFor="let entry of actions; trackBy: trackByActionId">
<aca-toolbar-action [actionRef]="entry"></aca-toolbar-action> <aca-toolbar-action [actionRef]="entry"></aca-toolbar-action>
@@ -15,26 +13,49 @@
<div class="adf-search-results"> <div class="adf-search-results">
<adf-search-filter <adf-search-filter
#searchFilter #searchFilter
[ngClass]="{ 'adf-search-filter--hidden': hideSearchFilter() }"></adf-search-filter> [ngClass]="{ 'adf-search-filter--hidden': hideSearchFilter() }"
></adf-search-filter>
<div class="adf-search-results__content"> <div class="adf-search-results__content">
<mat-progress-bar <mat-progress-bar
*ngIf="isLoading" *ngIf="isLoading"
color="primary" color="primary"
mode="indeterminate"> mode="indeterminate"
>
</mat-progress-bar> </mat-progress-bar>
<div class="adf-search-results__content-header content" *ngIf="data?.list.entries.length"> <div
class="adf-search-results__content-header content"
*ngIf="data?.list.entries.length"
>
<div class="content__side--left"> <div class="content__side--left">
<div class="adf-search-results--info-text" <div
*ngIf="totalResults !== 1">{{ 'APP.BROWSE.SEARCH.FOUND_RESULTS' | translate: { number: totalResults } }}</div> class="adf-search-results--info-text"
<div class="adf-search-results--info-text" *ngIf="totalResults !== 1"
*ngIf="totalResults === 1">{{ 'APP.BROWSE.SEARCH.FOUND_ONE_RESULT' | translate: { number: totalResults } }}</div> >
{{
'APP.BROWSE.SEARCH.FOUND_RESULTS'
| translate: { number: totalResults }
}}
</div>
<div
class="adf-search-results--info-text"
*ngIf="totalResults === 1"
>
{{
'APP.BROWSE.SEARCH.FOUND_ONE_RESULT'
| translate: { number: totalResults }
}}
</div>
<div class="adf-search-results__facets"> <div class="adf-search-results__facets">
<adf-search-chip-list [searchFilter]="searchFilter"></adf-search-chip-list> <adf-search-chip-list
[searchFilter]="searchFilter"
></adf-search-chip-list>
</div> </div>
</div> </div>
<adf-search-sorting-picker class="content__side--right"></adf-search-sorting-picker> <adf-search-sorting-picker
class="content__side--right"
></adf-search-sorting-picker>
</div> </div>
<adf-document-list <adf-document-list
@@ -46,24 +67,24 @@
[sortingMode]="'server'" [sortingMode]="'server'"
[sorting]="sorting" [sorting]="sorting"
[node]="data" [node]="data"
(node-dblclick)="onNodeDoubleClick($event.detail?.node)"> (node-dblclick)="onNodeDoubleClick($event.detail?.node)"
>
<data-columns> <data-columns>
<data-column <data-column
[key]="'$thumbnail'" [key]="'$thumbnail'"
[type]="'image'" [type]="'image'"
[sr-title]="'ADF-DOCUMENT-LIST.LAYOUT.THUMBNAIL'" [sr-title]="'ADF-DOCUMENT-LIST.LAYOUT.THUMBNAIL'"
[sortable]="false"> [sortable]="false"
>
</data-column> </data-column>
<data-column <data-column key type="text">
key
type="text">
<ng-template let-context> <ng-template let-context>
<aca-search-results-row [context]="context"></aca-search-results-row> <aca-search-results-row
[context]="context"
></aca-search-results-row>
</ng-template> </ng-template>
</data-column> </data-column>
</data-columns> </data-columns>
<empty-folder-content> <empty-folder-content>
@@ -79,17 +100,18 @@
</empty-folder-content> </empty-folder-content>
</adf-document-list> </adf-document-list>
<adf-pagination *ngIf="!documentList.isEmpty()" <adf-pagination
*ngIf="!documentList.isEmpty()"
acaPagination acaPagination
[target]="documentList" [target]="documentList"
(change)="onPaginationChanged($event)"> (change)="onPaginationChanged($event)"
>
</adf-pagination> </adf-pagination>
</div> </div>
</div> </div>
</div> </div>
<div class="sidebar" *ngIf="infoDrawerOpened$ | async"> <div class="sidebar" *ngIf="(infoDrawerOpened$ | async)">
<aca-info-drawer [node]="selection.last"></aca-info-drawer> <aca-info-drawer [node]="selection.last"></aca-info-drawer>
</div> </div>
</app-page-layout-content> </app-page-layout-content>
</app-page-layout> </app-page-layout>

View File

@@ -1,25 +1,36 @@
<adf-toolbar class="app-menu" [style.background-color]="headerColor$ | async"> <adf-toolbar class="app-menu" [style.background-color]="headerColor$ | async">
<adf-toolbar-title> <adf-toolbar-title>
<a class="app-menu__title" title="{{ appName$ | async }}" [routerLink]="[ '/' ]"> <a
class="app-menu__title"
title="{{ appName$ | async }}"
[routerLink]="['/']"
>
<img [src]="logo" alt="{{ appName$ | async }}" /> <img [src]="logo" alt="{{ appName$ | async }}" />
</a> </a>
</adf-toolbar-title> </adf-toolbar-title>
</adf-toolbar> </adf-toolbar>
<mat-accordion multi="true" displayMode="flat"> <mat-accordion multi="true" displayMode="flat">
<mat-expansion-panel> <mat-expansion-panel>
<mat-expansion-panel-header> <mat-expansion-panel-header>
<mat-panel-title>{{ 'APP.SETTINGS.REPOSITORY-SETTINGS' | translate }}</mat-panel-title> <mat-panel-title>{{
'APP.SETTINGS.REPOSITORY-SETTINGS' | translate
}}</mat-panel-title>
</mat-expansion-panel-header> </mat-expansion-panel-header>
<form [formGroup]="form" novalidate (ngSubmit)="apply(form.value, form.valid)"> <form
[formGroup]="form"
novalidate
(ngSubmit)="apply(form.value, form.valid)"
>
<div> <div>
<mat-form-field class="settings-input"> <mat-form-field class="settings-input">
<input matInput <input
matInput
formControlName="ecmHost" formControlName="ecmHost"
type="text" type="text"
tabindex="2" tabindex="2"
placeholder="ACS Repository URL"> placeholder="ACS Repository URL"
/>
<mat-error *ngIf="form.get('ecmHost').hasError('pattern')"> <mat-error *ngIf="form.get('ecmHost').hasError('pattern')">
{{ 'APP.SETTINGS.INVALID-VALUE-FORMAT' | translate }} {{ 'APP.SETTINGS.INVALID-VALUE-FORMAT' | translate }}
</mat-error> </mat-error>
@@ -33,7 +44,12 @@
<button mat-button (click)="reset()"> <button mat-button (click)="reset()">
{{ 'APP.SETTINGS.RESET' | translate }} {{ 'APP.SETTINGS.RESET' | translate }}
</button> </button>
<button mat-button color="primary" type="submit" [disabled]="!form.valid"> <button
mat-button
color="primary"
type="submit"
[disabled]="!form.valid"
>
{{ 'APP.SETTINGS.APPLY' | translate }} {{ 'APP.SETTINGS.APPLY' | translate }}
</button> </button>
</div> </div>
@@ -48,7 +64,8 @@
</mat-expansion-panel-header> </mat-expansion-panel-header>
<mat-checkbox <mat-checkbox
[ngModel]="languagePicker$ | async" [ngModel]="languagePicker$ | async"
(change)="onLanguagePickerValueChanged($event)"> (change)="onLanguagePickerValueChanged($event)"
>
Language Picker Language Picker
</mat-checkbox> </mat-checkbox>
</mat-expansion-panel> </mat-expansion-panel>
@@ -62,7 +79,8 @@
<div *ngFor="let flag of experimental"> <div *ngFor="let flag of experimental">
<mat-checkbox <mat-checkbox
[(ngModel)]="flag.value" [(ngModel)]="flag.value"
(change)="onToggleExperimentalFeature(flag.key, $event)"> (change)="onToggleExperimentalFeature(flag.key, $event)"
>
{{ flag.key }} {{ flag.key }}
</mat-checkbox> </mat-checkbox>
</div> </div>

View File

@@ -1,6 +1,3 @@
<ng-container *ngIf="sharedLinkId"> <ng-container *ngIf="sharedLinkId">
<adf-viewer <adf-viewer [sharedLinkId]="sharedLinkId" [allowGoBack]="false"> </adf-viewer>
[sharedLinkId]="sharedLinkId"
[allowGoBack]="false">
</adf-viewer>
</ng-container> </ng-container>

View File

@@ -1,6 +1,5 @@
<div class="adf-share-link__dialog-content"> <div class="adf-share-link__dialog-content">
<h1 data-automation-id="adf-share-dialog-title" <h1 data-automation-id="adf-share-dialog-title" class="adf-share-link__title">
class="adf-share-link__title">
{{ 'SHARE.DIALOG-TITLE' | translate }} {{ fileName }} {{ 'SHARE.DIALOG-TITLE' | translate }} {{ fileName }}
</h1> </h1>
@@ -15,23 +14,29 @@
data-automation-id="adf-share-toggle" data-automation-id="adf-share-toggle"
[checked]="isFileShared" [checked]="isFileShared"
[disabled]="isDisabled" [disabled]="isDisabled"
(change)="onSlideShareChange()"> (change)="onSlideShareChange()"
>
</mat-slide-toggle> </mat-slide-toggle>
</div> </div>
<form [formGroup]="form"> <form [formGroup]="form">
<mat-form-field class="adf-full-width"> <mat-form-field class="adf-full-width">
<input #sharedLinkInput <input
#sharedLinkInput
data-automation-id="adf-share-link" data-automation-id="adf-share-link"
class="adf-share-link__input" class="adf-share-link__input"
matInput matInput
cdkFocusInitial cdkFocusInitial
placeholder="{{ 'SHARE.PUBLIC-LINK' | translate }}" placeholder="{{ 'SHARE.PUBLIC-LINK' | translate }}"
formControlName="sharedUrl" formControlName="sharedUrl"
readonly="readonly"> readonly="readonly"
<mat-icon class="adf-input-action" matSuffix />
<mat-icon
class="adf-input-action"
matSuffix
[clipboard-notification]="'SHARE.CLIPBOARD-MESSAGE' | translate" [clipboard-notification]="'SHARE.CLIPBOARD-MESSAGE' | translate"
[adf-clipboard]="sharedLinkInput"> [adf-clipboard]="sharedLinkInput"
>
link link
</mat-icon> </mat-icon>
</mat-form-field> </mat-form-field>
@@ -44,7 +49,8 @@
color="primary" color="primary"
data-automation-id="adf-expire-toggle" data-automation-id="adf-expire-toggle"
[checked]="form.controls['time'].value" [checked]="form.controls['time'].value"
(change)="onToggleExpirationDate($event)"> (change)="onToggleExpirationDate($event)"
>
</mat-slide-toggle> </mat-slide-toggle>
</div> </div>
@@ -52,19 +58,25 @@
<mat-datetimepicker-toggle <mat-datetimepicker-toggle
#matDatetimepickerToggle="matDatetimepickerToggle" #matDatetimepickerToggle="matDatetimepickerToggle"
[for]="datetimePicker" [for]="datetimePicker"
matSuffix> matSuffix
>
</mat-datetimepicker-toggle> </mat-datetimepicker-toggle>
<mat-datetimepicker #datetimePicker <mat-datetimepicker
#datetimePicker
(closed)="onDatetimepickerClosed()" (closed)="onDatetimepickerClosed()"
type="date" openOnFocus="true" type="date"
timeInterval="1"> openOnFocus="true"
timeInterval="1"
>
</mat-datetimepicker> </mat-datetimepicker>
<input class="adf-share-link__input" <input
class="adf-share-link__input"
#dateTimePickerInput #dateTimePickerInput
matInput matInput
[min]="minDate" [min]="minDate"
formControlName="time" formControlName="time"
[matDatetimepicker]="datetimePicker"> [matDatetimepicker]="datetimePicker"
/>
</mat-form-field> </mat-form-field>
</form> </form>
</mat-dialog-content> </mat-dialog-content>
@@ -72,7 +84,10 @@
<div mat-dialog-actions> <div mat-dialog-actions>
<button <button
data-automation-id="adf-share-dialog-close" data-automation-id="adf-share-dialog-close"
mat-button color="primary" mat-dialog-close> mat-button
color="primary"
mat-dialog-close
>
{{ 'SHARE.CLOSE' | translate }} {{ 'SHARE.CLOSE' | translate }}
</button> </button>
</div> </div>

View File

@@ -5,7 +5,7 @@
(click)="editSharedNode(selection)" (click)="editSharedNode(selection)"
> >
<mat-icon>link</mat-icon> <mat-icon>link</mat-icon>
<ng-container *ngIf="isShared(selection); else: not_shared"> <ng-container *ngIf="isShared(selection); else not_shared">
<span>{{ 'APP.ACTIONS.SHARE_EDIT' | translate }}</span> <span>{{ 'APP.ACTIONS.SHARE_EDIT' | translate }}</span>
</ng-container> </ng-container>
</button> </button>

View File

@@ -5,36 +5,41 @@
<div *ngFor="let group of groups; trackBy: trackById" class="section"> <div *ngFor="let group of groups; trackBy: trackById" class="section">
<div class="menu"> <div class="menu">
<div *ngFor="let item of group.items; trackBy: trackById" <div
*ngFor="let item of group.items; trackBy: trackById"
routerLinkActive routerLinkActive
#routerLink="routerLinkActive"> #routerLink="routerLinkActive"
>
<ng-container *ngIf="showLabel"> <ng-container *ngIf="showLabel">
<ng-container *ngIf="!item.children"> <ng-container *ngIf="!item.children">
<div class="menu__item" <div class="menu__item" [attr.title]="item.description | translate">
[attr.title]="item.description | translate"> <button
<button [id]="item.id" [id]="item.id"
mat-icon-button mat-ripple mat-icon-button
mat-ripple
[routerLink]="item.url" [routerLink]="item.url"
[color]="routerLink.isActive ? 'accent' : 'primary'" [color]="routerLink.isActive ? 'accent' : 'primary'"
[attr.aria-label]="item.title | translate" [attr.aria-label]="item.title | translate"
matRippleColor="primary" matRippleColor="primary"
[matRippleTrigger]="rippleTrigger" [matRippleTrigger]="rippleTrigger"
[matRippleCentered]="true" [matRippleCentered]="true"
[matRippleRadius]="20"> [matRippleRadius]="20"
>
<mat-icon>{{ item.icon }}</mat-icon> <mat-icon>{{ item.icon }}</mat-icon>
</button> </button>
<span #rippleTrigger <span
#rippleTrigger
class="item--label item--parent" class="item--label item--parent"
[routerLink]="item.url" [routerLink]="item.url"
[attr.aria-label]="item.title | translate" [attr.aria-label]="item.title | translate"
[ngClass]="{ [ngClass]="{
'item--active': routerLink.isActive, 'item--active': routerLink.isActive,
'item--default': !routerLink.isActive 'item--default': !routerLink.isActive
}"> }"
{{ item.title | translate }}</span> >
{{ item.title | translate }}</span
>
</div> </div>
</ng-container> </ng-container>
@@ -43,61 +48,83 @@
#expansionPanel="matExpansionPanel" #expansionPanel="matExpansionPanel"
[acaExpansionPanel]="item" [acaExpansionPanel]="item"
[expanded]="routerLink.isActive" [expanded]="routerLink.isActive"
[@.disabled]="true"> [@.disabled]="true"
<mat-expansion-panel-header expandedHeight="48px" collapsedHeight="48px"> >
<mat-expansion-panel-header
expandedHeight="48px"
collapsedHeight="48px"
>
<mat-panel-title [attr.title]="item.description | translate"> <mat-panel-title [attr.title]="item.description | translate">
<mat-icon [color]="routerLink.isActive && !expansionPanel.expanded? 'accent': 'primary'"> <mat-icon
[color]="
routerLink.isActive && !expansionPanel.expanded
? 'accent'
: 'primary'
"
>
{{ item.icon }} {{ item.icon }}
</mat-icon> </mat-icon>
<span <span
class="item--label item--parent" class="item--label item--parent"
[ngClass]="{ [ngClass]="{
'item--default': !routerLink.isActive && expansionPanel.expanded, 'item--default':
'item--active': routerLink.isActive && !expansionPanel.expanded !routerLink.isActive && expansionPanel.expanded,
'item--active':
routerLink.isActive && !expansionPanel.expanded
}" }"
>{{ item.title | translate }}</span> >{{ item.title | translate }}</span
>
</mat-panel-title> </mat-panel-title>
</mat-expansion-panel-header> </mat-expansion-panel-header>
<div *ngFor="let child of item.children; trackBy: trackById" <div
routerLinkActive #childRouteActive="routerLinkActive" *ngFor="let child of item.children; trackBy: trackById"
[attr.title]="child.description | translate"> routerLinkActive
#childRouteActive="routerLinkActive"
[attr.title]="child.description | translate"
>
<ng-container *ngIf="child.icon"> <ng-container *ngIf="child.icon">
<button [id]="child.id" <button
mat-icon-button mat-ripple [id]="child.id"
mat-icon-button
mat-ripple
[routerLink]="child.url" [routerLink]="child.url"
[color]="childRouteActive.isActive ? 'accent' : 'primary'" [color]="childRouteActive.isActive ? 'accent' : 'primary'"
[attr.aria-label]="child.title | translate" [attr.aria-label]="child.title | translate"
matRippleColor="primary" matRippleColor="primary"
[matRippleTrigger]="rippleTrigger" [matRippleTrigger]="rippleTrigger"
[matRippleCentered]="true" [matRippleCentered]="true"
[matRippleRadius]="20"> [matRippleRadius]="20"
>
<mat-icon>{{ child.icon }}</mat-icon> <mat-icon>{{ child.icon }}</mat-icon>
</button> </button>
<span #rippleTrigger <span
#rippleTrigger
[routerLink]="child.url" [routerLink]="child.url"
class="item--label item--label__trigger" class="item--label item--label__trigger"
[ngClass]="{ [ngClass]="{
'item--active': childRouteActive.isActive, 'item--active': childRouteActive.isActive,
'item--default': !childRouteActive.isActive 'item--default': !childRouteActive.isActive
}"> }"
>
{{ child.title | translate }} {{ child.title | translate }}
</span> </span>
</ng-container> </ng-container>
<ng-container *ngIf="!child.icon"> <ng-container *ngIf="!child.icon">
<div [id]="child.id" <div
[id]="child.id"
class="menu__item item--label item--child" class="menu__item item--label item--child"
[routerLink]="child.url" [routerLink]="child.url"
[attr.aria-label]="child.title | translate"> [attr.aria-label]="child.title | translate"
>
<span [ngClass]="{ <span
[ngClass]="{
'item--active': childRouteActive.isActive, 'item--active': childRouteActive.isActive,
'item--default': !childRouteActive.isActive 'item--default': !childRouteActive.isActive
}"> }"
>
{{ child.title | translate }} {{ child.title | translate }}
</span> </span>
</div> </div>
@@ -110,43 +137,54 @@
<ng-container *ngIf="!showLabel"> <ng-container *ngIf="!showLabel">
<ng-container *ngIf="!item.children"> <ng-container *ngIf="!item.children">
<div class="menu__item"> <div class="menu__item">
<button [id]="item.id" <button
mat-icon-button [routerLink]="item.url" [id]="item.id"
mat-icon-button
[routerLink]="item.url"
[color]="routerLink.isActive ? 'accent' : 'primary'" [color]="routerLink.isActive ? 'accent' : 'primary'"
[attr.aria-label]="item.title | translate" [attr.aria-label]="item.title | translate"
[attr.title]="item.description | translate"> [attr.title]="item.description | translate"
>
<mat-icon>{{ item.icon }}</mat-icon> <mat-icon>{{ item.icon }}</mat-icon>
</button> </button>
</div> </div>
</ng-container> </ng-container>
<ng-container *ngIf="item.children && item.children.length"> <ng-container *ngIf="item.children && item.children.length">
<div class="menu__item" <div class="menu__item" [attr.title]="item.description | translate">
[attr.title]="item.description | translate"> <button
<button [id]="item.id" [id]="item.id"
color="accent" color="accent"
mat-icon-button mat-icon-button
#childMenu="matMenuTrigger" #childMenu="matMenuTrigger"
[matMenuTriggerFor]="menu"> [matMenuTriggerFor]="menu"
>
<mat-icon <mat-icon
[color]="routerLink.isActive || childMenu.menuOpen? 'accent': 'primary'"> [color]="
routerLink.isActive || childMenu.menuOpen
? 'accent'
: 'primary'
"
>
{{ item.icon }} {{ item.icon }}
</mat-icon> </mat-icon>
</button> </button>
</div> </div>
<mat-menu #menu="matMenu" [overlapTrigger]="false"> <mat-menu #menu="matMenu" [overlapTrigger]="false">
<button mat-menu-item <button
mat-menu-item
*ngFor="let child of item.children; trackBy: trackById" *ngFor="let child of item.children; trackBy: trackById"
routerLinkActive routerLinkActive
#menuRouterLink="routerLinkActive" #menuRouterLink="routerLinkActive"
[routerLink]="child.url" [routerLink]="child.url"
[attr.title]="child.description | translate" [attr.title]="child.description | translate"
[id]="child.id"> [id]="child.id"
>
<span class="mat-button" [ngClass]="{ 'mat-primary': menuRouterLink.isActive }"> <span
class="mat-button"
[ngClass]="{ 'mat-primary': menuRouterLink.isActive }"
>
{{ child.title | translate }} {{ child.title | translate }}
</span> </span>
</button> </button>

View File

@@ -1,26 +1,21 @@
<ng-container [ngSwitch]="actionRef.type"> <ng-container [ngSwitch]="actionRef.type">
<ng-container *ngSwitchCase="'default'"> <ng-container *ngSwitchCase="'default'">
<app-toolbar-button <app-toolbar-button [type]="type" [actionRef]="actionRef" [color]="color">
[type]="type"
[actionRef]="actionRef"
[color]="color">
</app-toolbar-button> </app-toolbar-button>
</ng-container> </ng-container>
<ng-container *ngSwitchCase="'button'"> <ng-container *ngSwitchCase="'button'">
<app-toolbar-button <app-toolbar-button [type]="type" [actionRef]="actionRef" [color]="color">
[type]="type"
[actionRef]="actionRef"
[color]="color">
</app-toolbar-button> </app-toolbar-button>
</ng-container> </ng-container>
<adf-toolbar-divider *ngSwitchCase="'separator'" [id]="actionRef.id"></adf-toolbar-divider> <adf-toolbar-divider
*ngSwitchCase="'separator'"
[id]="actionRef.id"
></adf-toolbar-divider>
<ng-container *ngSwitchCase="'menu'"> <ng-container *ngSwitchCase="'menu'">
<app-toolbar-menu <app-toolbar-menu [actionRef]="actionRef" [color]="color">
[actionRef]="actionRef"
[color]="color">
</app-toolbar-menu> </app-toolbar-menu>
</ng-container> </ng-container>
@@ -28,4 +23,3 @@
<adf-dynamic-component [id]="actionRef.component"></adf-dynamic-component> <adf-dynamic-component [id]="actionRef.component"></adf-dynamic-component>
</ng-container> </ng-container>
</ng-container> </ng-container>

View File

@@ -1,27 +1,38 @@
<div *ngIf="isDialogActive" <div
*ngIf="isDialogActive"
class="adf-upload-dialog" class="adf-upload-dialog"
id="upload-dialog" id="upload-dialog"
[class.adf-upload-dialog--minimized]="isDialogMinimized" [class.adf-upload-dialog--minimized]="isDialogMinimized"
[class.adf-upload-dialog--position-left]="position === 'left'" [class.adf-upload-dialog--position-left]="position === 'left'"
[class.adf-upload-dialog--position-right]="position === 'right'"> [class.adf-upload-dialog--position-right]="position === 'right'"
>
<header class="adf-upload-dialog__header"> <header class="adf-upload-dialog__header">
<button <button
mat-button mat-button
color="secondary" color="secondary"
[disabled]="isConfirmation" [disabled]="isConfirmation"
(click)="toggleMinimized()"> (click)="toggleMinimized()"
>
<mat-icon <mat-icon
mat-list-icon mat-list-icon
title="{{ (isDialogMinimized ? 'ADF_FILE_UPLOAD.BUTTON.MAXIMIZE': 'ADF_FILE_UPLOAD.BUTTON.MINIMIZE') | translate }}"> title="{{
(isDialogMinimized
? 'ADF_FILE_UPLOAD.BUTTON.MAXIMIZE'
: 'ADF_FILE_UPLOAD.BUTTON.MINIMIZE') | translate
}}"
>
{{ isDialogMinimized ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }} {{ isDialogMinimized ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}
</mat-icon> </mat-icon>
</button> </button>
<span <span
class="adf-upload-dialog__title" class="adf-upload-dialog__title"
*ngIf="!uploadList.isUploadCancelled()"> *ngIf="!uploadList.isUploadCancelled()"
{{ 'FILE_UPLOAD.MESSAGES.UPLOAD_COMPLETED' >
| translate: { {{
'FILE_UPLOAD.MESSAGES.UPLOAD_COMPLETED'
| translate
: {
completed: totalCompleted, completed: totalCompleted,
total: filesUploadingList.length total: filesUploadingList.length
} }
@@ -30,13 +41,13 @@
<span <span
class="adf-upload-dialog__title" class="adf-upload-dialog__title"
*ngIf="uploadList.isUploadCancelled()"> *ngIf="uploadList.isUploadCancelled()"
>
{{ 'FILE_UPLOAD.MESSAGES.UPLOAD_CANCELED' | translate }} {{ 'FILE_UPLOAD.MESSAGES.UPLOAD_CANCELED' | translate }}
</span> </span>
</header> </header>
<section class="adf-upload-dialog__info" <section class="adf-upload-dialog__info" *ngIf="totalErrors">
*ngIf="totalErrors">
{{ {{
(totalErrors > 1 (totalErrors > 1
? 'FILE_UPLOAD.MESSAGES.UPLOAD_ERRORS' ? 'FILE_UPLOAD.MESSAGES.UPLOAD_ERRORS'
@@ -45,25 +56,30 @@
}} }}
</section> </section>
<section class="adf-upload-dialog__content" <section
[class.adf-upload-dialog--padding]="isConfirmation"> class="adf-upload-dialog__content"
[class.adf-upload-dialog--padding]="isConfirmation"
>
<app-file-uploading-list <app-file-uploading-list
[class.adf-upload-dialog--hide]="isConfirmation" [class.adf-upload-dialog--hide]="isConfirmation"
#uploadList #uploadList
[files]="filesUploadingList"> [files]="filesUploadingList"
>
<ng-template let-file="$implicit"> <ng-template let-file="$implicit">
<app-file-uploading-list-row <app-file-uploading-list-row
[file]="file" [file]="file"
[error]="getFileUploadError(file)" [error]="getFileUploadError(file)"
(remove)="uploadList.removeFile(file)" (remove)="uploadList.removeFile(file)"
(cancel)="uploadList.cancelFile(file)"> (cancel)="uploadList.cancelFile(file)"
>
</app-file-uploading-list-row> </app-file-uploading-list-row>
</ng-template> </ng-template>
</app-file-uploading-list> </app-file-uploading-list>
<div <div
class="adf-upload-dialog__confirmation" class="adf-upload-dialog__confirmation"
[class.adf-upload-dialog--hide]="!isConfirmation"> [class.adf-upload-dialog--hide]="!isConfirmation"
>
<p class="adf-upload-dialog__confirmation--title"> <p class="adf-upload-dialog__confirmation--title">
{{ 'ADF_FILE_UPLOAD.CONFIRMATION.MESSAGE.TITLE' | translate }} {{ 'ADF_FILE_UPLOAD.CONFIRMATION.MESSAGE.TITLE' | translate }}
</p> </p>
@@ -74,14 +90,14 @@
</div> </div>
</section> </section>
<footer class="adf-upload-dialog__actions" <footer class="adf-upload-dialog__actions" *ngIf="!isConfirmation">
*ngIf="!isConfirmation">
<button <button
id="adf-upload-dialog-cancel-all" id="adf-upload-dialog-cancel-all"
color="primary" color="primary"
mat-button mat-button
*ngIf="!uploadList.isUploadCompleted() && !uploadList.isUploadCancelled()" *ngIf="!uploadList.isUploadCompleted() && !uploadList.isUploadCancelled()"
(click)="toggleConfirmation()"> (click)="toggleConfirmation()"
>
{{ 'ADF_FILE_UPLOAD.BUTTON.CANCEL_ALL' | translate }} {{ 'ADF_FILE_UPLOAD.BUTTON.CANCEL_ALL' | translate }}
</button> </button>
@@ -90,18 +106,19 @@
*ngIf="uploadList.isUploadCompleted() || uploadList.isUploadCancelled()" *ngIf="uploadList.isUploadCompleted() || uploadList.isUploadCancelled()"
mat-button mat-button
color="primary" color="primary"
(click)="close()"> (click)="close()"
>
{{ 'ADF_FILE_UPLOAD.BUTTON.CLOSE' | translate }} {{ 'ADF_FILE_UPLOAD.BUTTON.CLOSE' | translate }}
</button> </button>
</footer> </footer>
<footer class="adf-upload-dialog__actions" <footer class="adf-upload-dialog__actions" *ngIf="isConfirmation">
*ngIf="isConfirmation">
<button <button
id="adf-upload-dialog-cancel" id="adf-upload-dialog-cancel"
color="secondary" color="secondary"
mat-button mat-button
(click)="cancelAllUploads()"> (click)="cancelAllUploads()"
>
{{ 'ADF_FILE_UPLOAD.CONFIRMATION.BUTTON.CANCEL' | translate }} {{ 'ADF_FILE_UPLOAD.CONFIRMATION.BUTTON.CANCEL' | translate }}
</button> </button>
@@ -109,7 +126,8 @@
id="adf-upload-dialog-confirm" id="adf-upload-dialog-confirm"
mat-button mat-button
color="primary" color="primary"
(click)="toggleConfirmation()"> (click)="toggleConfirmation()"
>
{{ 'ADF_FILE_UPLOAD.CONFIRMATION.BUTTON.CONTINUE' | translate }} {{ 'ADF_FILE_UPLOAD.CONFIRMATION.BUTTON.CONTINUE' | translate }}
</button> </button>
</footer> </footer>

View File

@@ -1,28 +1,30 @@
<div class="adf-file-uploading-row"> <div class="adf-file-uploading-row">
<mat-icon <mat-icon mat-list-icon class="adf-file-uploading-row__type">
mat-list-icon
class="adf-file-uploading-row__type">
insert_drive_file insert_drive_file
</mat-icon> </mat-icon>
<span <span class="adf-file-uploading-row__name" title="{{ file.name }}">
class="adf-file-uploading-row__name"
title="{{ file.name }}">
{{ file.name }} {{ file.name }}
</span> </span>
<div <div
*ngIf="file.status === FileUploadStatus.Progress || file.status === FileUploadStatus.Starting" *ngIf="
file.status === FileUploadStatus.Progress ||
file.status === FileUploadStatus.Starting
"
(click)="onCancel(file)" (click)="onCancel(file)"
class="adf-file-uploading-row__group adf-file-uploading-row__group--toggle" class="adf-file-uploading-row__group adf-file-uploading-row__group--toggle"
title="{{ 'ADF_FILE_UPLOAD.BUTTON.CANCEL_FILE' | translate }}"> title="{{ 'ADF_FILE_UPLOAD.BUTTON.CANCEL_FILE' | translate }}"
>
<span class="adf-file-uploading-row__status"> <span class="adf-file-uploading-row__status">
{{ file.progress.loaded | adfFileSize }} / {{ file.progress.total | adfFileSize }} {{ file.progress.loaded | adfFileSize }} /
{{ file.progress.total | adfFileSize }}
</span> </span>
<mat-icon <mat-icon
mat-list-icon mat-list-icon
class="adf-file-uploading-row__action adf-file-uploading-row__action--cancel"> class="adf-file-uploading-row__action adf-file-uploading-row__action--cancel"
>
clear clear
</mat-icon> </mat-icon>
</div> </div>
@@ -31,16 +33,19 @@
*ngIf="file.status === FileUploadStatus.Complete" *ngIf="file.status === FileUploadStatus.Complete"
(click)="onRemove(file)" (click)="onRemove(file)"
class="adf-file-uploading-row__group adf-file-uploading-row__group--toggle" class="adf-file-uploading-row__group adf-file-uploading-row__group--toggle"
title="{{ 'ADF_FILE_UPLOAD.BUTTON.REMOVE_FILE' | translate }}"> title="{{ 'ADF_FILE_UPLOAD.BUTTON.REMOVE_FILE' | translate }}"
>
<mat-icon <mat-icon
mat-list-icon mat-list-icon
class="adf-file-uploading-row__status adf-file-uploading-row__status--done"> class="adf-file-uploading-row__status adf-file-uploading-row__status--done"
>
check_circle check_circle
</mat-icon> </mat-icon>
<mat-icon <mat-icon
mat-list-icon mat-list-icon
class="adf-file-uploading-row__action adf-file-uploading-row__action--remove"> class="adf-file-uploading-row__action adf-file-uploading-row__action--remove"
>
remove_circle remove_circle
</mat-icon> </mat-icon>
</div> </div>
@@ -48,16 +53,19 @@
<div <div
*ngIf="file.status === FileUploadStatus.Pending" *ngIf="file.status === FileUploadStatus.Pending"
(click)="onCancel(file)" (click)="onCancel(file)"
class="adf-file-uploading-row__group adf-file-uploading-row__group--toggle"> class="adf-file-uploading-row__group adf-file-uploading-row__group--toggle"
>
<mat-icon <mat-icon
mat-list-icon mat-list-icon
class="adf-file-uploading-row__status adf-file-uploading-row__status--pending"> class="adf-file-uploading-row__status adf-file-uploading-row__status--pending"
>
schedule schedule
</mat-icon> </mat-icon>
<mat-icon <mat-icon
mat-list-icon mat-list-icon
class="adf-file-uploading-row__action adf-file-uploading-row__action--remove"> class="adf-file-uploading-row__action adf-file-uploading-row__action--remove"
>
remove_circle remove_circle
</mat-icon> </mat-icon>
</div> </div>
@@ -65,17 +73,22 @@
<!--todo: move to ADF ACA-2051 --> <!--todo: move to ADF ACA-2051 -->
<div <div
*ngIf="file.status === FileUploadStatus.Error" *ngIf="file.status === FileUploadStatus.Error"
class="adf-file-uploading-row__block adf-file-uploading-row__status--error"> class="adf-file-uploading-row__block adf-file-uploading-row__status--error"
>
<mat-icon mat-list-icon [attr.title]="error?.message | translate"> <mat-icon mat-list-icon [attr.title]="error?.message | translate">
report_problem report_problem
</mat-icon> </mat-icon>
</div> </div>
<div <div
*ngIf="file.status === FileUploadStatus.Cancelled || *ngIf="
file.status === FileUploadStatus.Cancelled ||
file.status === FileUploadStatus.Aborted || file.status === FileUploadStatus.Aborted ||
file.status === FileUploadStatus.Deleted" file.status === FileUploadStatus.Deleted
class="adf-file-uploading-row__block adf-file-uploading-row__status--cancelled"> "
class="adf-file-uploading-row__block adf-file-uploading-row__status--cancelled"
>
{{ 'ADF_FILE_UPLOAD.STATUS.FILE_CANCELED_STATUS' | translate }} {{ 'ADF_FILE_UPLOAD.STATUS.FILE_CANCELED_STATUS' | translate }}
</div> </div>
<div> <div></div>
</div>

View File

@@ -1,7 +1,4 @@
<div class="upload-list"> <div class="upload-list">
<ng-template <ng-template ngFor [ngForOf]="files" [ngForTemplate]="template">
ngFor
[ngForOf]="files"
[ngForTemplate]="template">
</ng-template> </ng-template>
</div> </div>

View File

@@ -11,9 +11,9 @@
autocomplete="off" autocomplete="off"
/> />
<mat-hint *ngIf="libraryTitleExists">{{ <mat-hint *ngIf="libraryTitleExists"
'LIBRARY.HINTS.SITE_TITLE_EXISTS' | translate >{{ 'LIBRARY.HINTS.SITE_TITLE_EXISTS' | translate }}</mat-hint
}}</mat-hint> >
<mat-error *ngIf="form.controls['title'].hasError('maxlength')"> <mat-error *ngIf="form.controls['title'].hasError('maxlength')">
{{ 'LIBRARY.ERRORS.TITLE_TOO_LONG' | translate }} {{ 'LIBRARY.ERRORS.TITLE_TOO_LONG' | translate }}
@@ -22,7 +22,6 @@
<mat-error *ngIf="form.controls['title'].errors?.message"> <mat-error *ngIf="form.controls['title'].errors?.message">
{{ form.controls['title'].errors?.message | translate }} {{ form.controls['title'].errors?.message | translate }}
</mat-error> </mat-error>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>

View File

@@ -4,9 +4,12 @@
[node]="node" [node]="node"
[showComments]="'adf-version-manager.allowComments' | adfAppConfig:true" [showComments]="'adf-version-manager.allowComments' | adfAppConfig:true"
[allowDownload]="'adf-version-manager.allowDownload' | adfAppConfig:true" [allowDownload]="'adf-version-manager.allowDownload' | adfAppConfig:true"
(uploadError)="uploadError($event)"> (uploadError)="uploadError($event)"
>
</adf-version-manager> </adf-version-manager>
</section> </section>
<footer mat-dialog-actions> <footer mat-dialog-actions>
<button mat-button [mat-dialog-close]="true">{{'VERSION.DIALOG.CLOSE' | translate}}</button> <button mat-button [mat-dialog-close]="true">
{{'VERSION.DIALOG.CLOSE' | translate}}
</button>
</footer> </footer>