From 89fb92d1d9086738f1073d1eda0af14ce8041450 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Mon, 20 Nov 2017 16:23:23 +0000 Subject: [PATCH 01/70] Upgrade to ADF 2.0.0-beta2 (#65) * upgrade to 2.0.0-beta2 * search fixes * test fixes * test fixes * cleanup CLI config * remove unused property --- .angular-cli.json | 22 +- karma.conf.js | 12 +- package.json | 49 +- src/app/adf.module.ts | 16 +- src/app/app.component.ts | 2 +- src/app/app.module.ts | 2 +- src/app/app.routes.ts | 2 +- .../directives/node-copy.directive.spec.ts | 4 +- .../common/directives/node-copy.directive.ts | 2 +- .../directives/node-delete.directive.spec.ts | 5 +- .../directives/node-delete.directive.ts | 2 +- .../node-download.directive.spec.ts | 2 +- .../directives/node-download.directive.ts | 2 +- .../node-favorite.directive.spec.ts | 3 +- .../directives/node-favorite.directive.ts | 2 +- .../directives/node-move.directive.spec.ts | 4 +- .../common/directives/node-move.directive.ts | 2 +- .../node-permanent-delete.directive.spec.ts | 2 +- .../node-permanent-delete.directive.ts | 2 +- .../directives/node-restore.directive.spec.ts | 2 +- .../directives/node-restore.directive.ts | 2 +- .../services/browsing-files.service.spec.ts | 2 +- .../common/services/browsing-files.service.ts | 2 +- .../services/node-actions.service.spec.ts | 11 +- .../common/services/node-actions.service.ts | 7 +- src/app/components/about/about.component.ts | 4 +- .../current-user.component.spec.ts | 2 +- .../current-user/current-user.component.ts | 2 +- .../favorites/favorites.component.spec.ts | 6 +- .../favorites/favorites.component.ts | 6 +- .../components/files/files.component.spec.ts | 6 +- src/app/components/files/files.component.ts | 4 +- .../header/header.component.spec.ts | 2 +- src/app/components/header/header.component.ts | 2 +- .../layout/layout.component.spec.ts | 6 +- src/app/components/layout/layout.component.ts | 4 +- .../libraries/libraries.component.spec.ts | 2 +- .../libraries/libraries.component.ts | 4 +- .../location-link/location-link.component.ts | 3 +- .../components/login/login.component.spec.ts | 3 +- src/app/components/login/login.component.ts | 5 +- src/app/components/page.component.ts | 10 +- .../components/preview/preview.component.ts | 3 +- .../recent-files.component.spec.ts | 2 +- .../recent-files/recent-files.component.ts | 2 +- .../components/search/search.component.html | 4 +- .../components/search/search.component.scss | 5 + .../search/search.component.spec.ts | 8 +- src/app/components/search/search.component.ts | 5 +- .../shared-files.component.spec.ts | 2 +- .../shared-files/shared-files.component.ts | 4 +- .../sidenav/sidenav.component.spec.ts | 6 +- .../components/sidenav/sidenav.component.ts | 4 +- .../trashcan/trashcan.component.spec.ts | 2 +- .../components/trashcan/trashcan.component.ts | 2 +- src/app/ui/theme.scss | 17 +- src/polyfills.ts | 2 +- src/styles.scss | 2 +- yarn.lock | 1192 +++++++++++------ 59 files changed, 920 insertions(+), 576 deletions(-) diff --git a/.angular-cli.json b/.angular-cli.json index a9075f9f2..f4e0304ee 100644 --- a/.angular-cli.json +++ b/.angular-cli.json @@ -13,13 +13,21 @@ "app.config.json", "versions.json", - { "glob": "**/*", "input": "../node_modules/ng2-alfresco-core/bundles/assets", "output": "./assets/" }, - { "glob": "**/*", "input": "../node_modules/ng2-alfresco-datatable/bundles/assets", "output": "./assets/" }, - { "glob": "**/*", "input": "../node_modules/ng2-alfresco-viewer/bundles/assets", "output": "./assets/" }, - { "glob": "**/*", "input": "../node_modules/ng2-alfresco-documentlist/bundles/assets", "output": "./assets/" }, - { "glob": "**/*", "input": "../node_modules/ng2-alfresco-login/bundles/assets", "output": "./assets/" }, - { "glob": "**/*", "input": "../node_modules/ng2-alfresco-upload/bundles/assets", "output": "./assets/" }, - { "glob": "**/*", "input": "../node_modules/ng2-alfresco-search/bundles/assets", "output": "./assets/" }, + { + "glob": "**/*", + "input": "../node_modules/@alfresco/adf-core/prebuilt-themes", + "output": "./assets/prebuilt-themes" + }, + { + "glob": "**/*", + "input": "../node_modules/@alfresco/adf-core/bundles/assets", + "output": "./assets/" + }, + { + "glob": "**/*", + "input": "../node_modules/@alfresco/adf-content-services/bundles/assets", + "output": "./assets/" + }, { "glob": "pdf.worker.js", "input": "../node_modules/pdfjs-dist/build", "output": "./" } ], diff --git a/karma.conf.js b/karma.conf.js index 004fb9586..410aaa975 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -15,15 +15,13 @@ module.exports = function (config) { files: [ { pattern: './node_modules/hammerjs/hammer.js', watched: false }, { pattern: './node_modules/@angular/material/prebuilt-themes/indigo-pink.css', watched: false }, - { pattern: './node_modules/ng2-alfresco-*/bundles/assets/ng2-alfresco-*/i18n/en.json', watched: false, served: true, included: false }, + { pattern: './node_modules/@alfresco/adf-core/bundles/assets/adf-core/i18n/en.json', watched: false, served: true, included: false }, + { pattern: './node_modules/@alfresco/adf-content-services/bundles/assets/adf-content-services/i18n/en.json', watched: false, served: true, included: false } + ], proxies: { - '/assets/ng2-alfresco-core/i18n/en.json': '/base/node_modules/ng2-alfresco-core/bundles/assets/ng2-alfresco-core/i18n/en.json', - '/assets/ng2-alfresco-datatable/i18n/en.json': '/base/node_modules/ng2-alfresco-datatable/bundles/assets/ng2-alfresco-datatable/i18n/en.json', - '/assets/ng2-alfresco-documentlist/i18n/en.json': '/base/node_modules/ng2-alfresco-documentlist/bundles/assets/ng2-alfresco-documentlist/i18n/en.json', - '/assets/ng2-alfresco-login/i18n/en.json': '/base/node_modules/ng2-alfresco-login/bundles/assets/ng2-alfresco-login/i18n/en.json', - '/assets/ng2-alfresco-upload/i18n/en.json': '/base/node_modules/ng2-alfresco-upload/bundles/assets/ng2-alfresco-upload/i18n/en.json', - '/assets/ng2-alfresco-search/i18n/en.json': '/base/node_modules/ng2-alfresco-search/bundles/assets/ng2-alfresco-search/i18n/en.json' + '/assets/adf-core/i18n/en.json': '/base/node_modules/@alfresco/adf-core/bundles/assets/adf-core/i18n/en.json', + '/assets/adf-content-services/i18n/en.json': '/base/node_modules/@alfresco/adf-content-services/bundles/assets/adf-content-services/i18n/en.json' }, client:{ clearContext: false // leave Jasmine Spec Runner output visible in browser diff --git a/package.json b/package.json index a3112269b..a671288e6 100644 --- a/package.json +++ b/package.json @@ -15,35 +15,32 @@ }, "private": true, "dependencies": { - "@angular/animations": "4.4.5", - "@angular/cdk": "2.0.0-beta.12", - "@angular/common": "4.4.5", - "@angular/compiler": "4.4.5", - "@angular/core": "4.4.5", - "@angular/forms": "4.4.5", - "@angular/http": "4.4.5", - "@angular/material": "2.0.0-beta.12", - "@angular/platform-browser": "4.4.5", - "@angular/platform-browser-dynamic": "4.4.5", - "@angular/router": "4.4.5", + "@alfresco/adf-content-services": "2.0.0-beta2", + "@alfresco/adf-core": "2.0.0-beta2", + "@angular/animations": "5.0.0", + "@angular/cdk": "5.0.0-rc0", + "@angular/common": "5.0.0", + "@angular/compiler": "5.0.0", + "@angular/core": "5.0.0", + "@angular/flex-layout": "2.0.0-beta.10", + "@angular/forms": "5.0.0", + "@angular/http": "5.0.0", + "@angular/material": "5.0.0-rc0", + "@angular/platform-browser": "5.0.0", + "@angular/platform-browser-dynamic": "5.0.0", + "@angular/router": "5.0.0", "@ngx-translate/core": "8.0.0", - "alfresco-js-api": "1.10.0-beta6", - "core-js": "^2.4.1", + "alfresco-js-api": "2.0.0-beta1", + "core-js": "2.4.1", "hammerjs": "2.0.8", - "ng2-alfresco-core": "1.10.0-beta6", - "ng2-alfresco-datatable": "1.10.0-beta6", - "ng2-alfresco-documentlist": "1.10.0-beta6", - "ng2-alfresco-login": "1.10.0-beta6", - "ng2-alfresco-search": "1.10.0-beta6", - "ng2-alfresco-upload": "1.10.0-beta6", - "ng2-alfresco-viewer": "1.10.0-beta6", - "pdfjs-dist": "1.8.557", - "rxjs": "5.1.0", - "zone.js": "^0.8.14" + "pdfjs-dist": "1.5.404", + "rxjs": "5.5.2", + "web-animations-js": "^2.3.1", + "zone.js": "0.8.14" }, "devDependencies": { - "@angular/cli": "1.4.7", - "@angular/compiler-cli": "4.4.5", + "@angular/cli": "1.5.0", + "@angular/compiler-cli": "5.0.0", "@angular/language-service": "4.4.5", "@types/jasmine": "^2.5.53", "@types/jasminewd2": "^2.0.2", @@ -64,6 +61,6 @@ "rimraf": "2.6.2", "ts-node": "~3.2.0", "tslint": "~5.7.0", - "typescript": "~2.3.3" + "typescript": "~2.4.2" } } diff --git a/src/app/adf.module.ts b/src/app/adf.module.ts index 4a8ce27b3..4aeec2f34 100644 --- a/src/app/adf.module.ts +++ b/src/app/adf.module.ts @@ -18,23 +18,13 @@ import { NgModule } from '@angular/core'; // ADF modules -import { CoreModule } from 'ng2-alfresco-core'; -import { DataTableModule } from 'ng2-alfresco-datatable'; -import { ViewerModule } from 'ng2-alfresco-viewer'; -import { DocumentListModule } from 'ng2-alfresco-documentlist'; -import { LoginModule } from 'ng2-alfresco-login'; -import { UploadModule } from 'ng2-alfresco-upload'; -import { SearchModule } from 'ng2-alfresco-search'; +import { CoreModule } from '@alfresco/adf-core'; +import { ContentModule } from '@alfresco/adf-content-services'; export function modules() { return [ CoreModule, - DataTableModule, - DocumentListModule, - LoginModule, - SearchModule, - UploadModule, - ViewerModule + ContentModule ]; } diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 1fedb4b5d..ba82c5f99 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -17,7 +17,7 @@ import { Component, OnInit } from '@angular/core'; import { Router, ActivatedRoute, NavigationEnd } from '@angular/router'; -import { TranslationService, PageTitleService } from 'ng2-alfresco-core'; +import { TranslationService, PageTitleService } from '@alfresco/adf-core'; @Component({ selector: 'app-root', diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 7cffa948b..53fadf7c5 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -18,7 +18,7 @@ import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; -import { TRANSLATION_PROVIDER } from 'ng2-alfresco-core'; +import { TRANSLATION_PROVIDER } from '@alfresco/adf-core'; import { AdfModule } from './adf.module'; import { CommonModule } from './common/common.module'; diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index 91ae0667d..2ede312a8 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -16,7 +16,7 @@ */ import { Routes } from '@angular/router'; -import { AuthGuardEcm } from 'ng2-alfresco-core'; +import { AuthGuardEcm } from '@alfresco/adf-core'; import { LayoutComponent } from './components/layout/layout.component'; diff --git a/src/app/common/directives/node-copy.directive.spec.ts b/src/app/common/directives/node-copy.directive.spec.ts index 113df96da..9e70237da 100644 --- a/src/app/common/directives/node-copy.directive.spec.ts +++ b/src/app/common/directives/node-copy.directive.spec.ts @@ -21,8 +21,8 @@ import { By } from '@angular/platform-browser'; import { Observable } from 'rxjs/Rx'; -import { CoreModule, TranslationService, NodesApiService, NotificationService } from 'ng2-alfresco-core'; -import { DocumentListModule } from 'ng2-alfresco-documentlist'; +import { CoreModule, TranslationService, NodesApiService, NotificationService } from '@alfresco/adf-core'; +import { DocumentListModule } from '@alfresco/adf-content-services'; import { NodeActionsService } from '../services/node-actions.service'; import { ContentManagementService } from '../services/content-management.service'; diff --git a/src/app/common/directives/node-copy.directive.ts b/src/app/common/directives/node-copy.directive.ts index 2e771f252..b1f66aa5b 100644 --- a/src/app/common/directives/node-copy.directive.ts +++ b/src/app/common/directives/node-copy.directive.ts @@ -18,7 +18,7 @@ import { Directive, HostListener, Input } from '@angular/core'; import { Observable } from 'rxjs/Rx'; -import { TranslationService, NodesApiService, NotificationService } from 'ng2-alfresco-core'; +import { TranslationService, NodesApiService, NotificationService } from '@alfresco/adf-core'; import { MinimalNodeEntity } from 'alfresco-js-api'; import { NodeActionsService } from '../services/node-actions.service'; import { ContentManagementService } from '../services/content-management.service'; diff --git a/src/app/common/directives/node-delete.directive.spec.ts b/src/app/common/directives/node-delete.directive.spec.ts index cf91a10ac..170a1a5c0 100644 --- a/src/app/common/directives/node-delete.directive.spec.ts +++ b/src/app/common/directives/node-delete.directive.spec.ts @@ -17,11 +17,12 @@ import { TestBed, ComponentFixture, fakeAsync } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; -import { CoreModule, TranslationService, NodesApiService, NotificationService } from 'ng2-alfresco-core'; +import { CoreModule, TranslationService, NodesApiService, NotificationService } from '@alfresco/adf-core'; import { Component, DebugElement } from '@angular/core'; +import { Observable } from 'rxjs/Rx'; + import { NodeDeleteDirective } from './node-delete.directive'; import { ContentManagementService } from '../services/content-management.service'; -import { Observable } from 'rxjs/Rx'; @Component({ template: '
' diff --git a/src/app/common/directives/node-delete.directive.ts b/src/app/common/directives/node-delete.directive.ts index 95502af98..30d09e33e 100644 --- a/src/app/common/directives/node-delete.directive.ts +++ b/src/app/common/directives/node-delete.directive.ts @@ -17,7 +17,7 @@ import { Directive, HostListener, Input } from '@angular/core'; -import { TranslationService, NodesApiService, NotificationService } from 'ng2-alfresco-core'; +import { TranslationService, NodesApiService, NotificationService } from '@alfresco/adf-core'; import { MinimalNodeEntity } from 'alfresco-js-api'; import { Observable } from 'rxjs/Rx'; diff --git a/src/app/common/directives/node-download.directive.spec.ts b/src/app/common/directives/node-download.directive.spec.ts index 89875eb9b..70b665ce7 100644 --- a/src/app/common/directives/node-download.directive.spec.ts +++ b/src/app/common/directives/node-download.directive.spec.ts @@ -17,7 +17,7 @@ import { TestBed, ComponentFixture } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; -import { CoreModule, AlfrescoApiService } from 'ng2-alfresco-core'; +import { CoreModule, AlfrescoApiService } from '@alfresco/adf-core'; import { MatDialog } from '@angular/material'; import { Component, DebugElement } from '@angular/core'; import { DownloadFileDirective } from './node-download.directive'; diff --git a/src/app/common/directives/node-download.directive.ts b/src/app/common/directives/node-download.directive.ts index efb808932..ba420b9ad 100644 --- a/src/app/common/directives/node-download.directive.ts +++ b/src/app/common/directives/node-download.directive.ts @@ -18,7 +18,7 @@ import { Directive, Input, HostListener } from '@angular/core'; import { MatDialog } from '@angular/material'; import { MinimalNodeEntity } from 'alfresco-js-api'; -import { AlfrescoApiService, DownloadZipDialogComponent } from 'ng2-alfresco-core'; +import { AlfrescoApiService, DownloadZipDialogComponent } from '@alfresco/adf-core'; @Directive({ selector: '[app-download-node]' diff --git a/src/app/common/directives/node-favorite.directive.spec.ts b/src/app/common/directives/node-favorite.directive.spec.ts index 325e3e2ea..3ddd6490a 100644 --- a/src/app/common/directives/node-favorite.directive.spec.ts +++ b/src/app/common/directives/node-favorite.directive.spec.ts @@ -17,11 +17,10 @@ import { TestBed, ComponentFixture, fakeAsync, tick } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; -import { CoreModule, TranslationService, NodesApiService } from 'ng2-alfresco-core'; +import { AlfrescoApiService, CoreModule, TranslationService, NodesApiService } from '@alfresco/adf-core'; import { Component, DebugElement } from '@angular/core'; import { Observable } from 'rxjs/Rx'; -import { AlfrescoApiService } from 'ng2-alfresco-core'; import { ContentManagementService } from '../services/content-management.service'; import { NodeFavoriteDirective } from './node-favorite.directive'; diff --git a/src/app/common/directives/node-favorite.directive.ts b/src/app/common/directives/node-favorite.directive.ts index 27460d1b1..8e09a0072 100644 --- a/src/app/common/directives/node-favorite.directive.ts +++ b/src/app/common/directives/node-favorite.directive.ts @@ -16,7 +16,7 @@ */ import { Directive, HostListener, Input, OnChanges } from '@angular/core'; -import { AlfrescoApiService } from 'ng2-alfresco-core'; +import { AlfrescoApiService } from '@alfresco/adf-core'; import { MinimalNodeEntity, FavoriteBody } from 'alfresco-js-api'; import { Observable } from 'rxjs/Rx'; diff --git a/src/app/common/directives/node-move.directive.spec.ts b/src/app/common/directives/node-move.directive.spec.ts index 98424d084..4a5422df9 100644 --- a/src/app/common/directives/node-move.directive.spec.ts +++ b/src/app/common/directives/node-move.directive.spec.ts @@ -21,8 +21,8 @@ import { By } from '@angular/platform-browser'; import { Observable } from 'rxjs/Rx'; -import { CoreModule, TranslationService, NodesApiService, NotificationService } from 'ng2-alfresco-core'; -import { DocumentListModule } from 'ng2-alfresco-documentlist'; +import { CoreModule, TranslationService, NodesApiService, NotificationService } from '@alfresco/adf-core'; +import { DocumentListModule } from '@alfresco/adf-content-services'; import { NodeActionsService } from '../services/node-actions.service'; import { ContentManagementService } from '../services/content-management.service'; diff --git a/src/app/common/directives/node-move.directive.ts b/src/app/common/directives/node-move.directive.ts index 635234863..60196eaa9 100644 --- a/src/app/common/directives/node-move.directive.ts +++ b/src/app/common/directives/node-move.directive.ts @@ -17,7 +17,7 @@ import { Directive, HostListener, Input } from '@angular/core'; -import { TranslationService, NodesApiService, NotificationService } from 'ng2-alfresco-core'; +import { TranslationService, NodesApiService, NotificationService } from '@alfresco/adf-core'; import { MinimalNodeEntity } from 'alfresco-js-api'; import { ContentManagementService } from '../services/content-management.service'; diff --git a/src/app/common/directives/node-permanent-delete.directive.spec.ts b/src/app/common/directives/node-permanent-delete.directive.spec.ts index 9bab26f07..36287380b 100644 --- a/src/app/common/directives/node-permanent-delete.directive.spec.ts +++ b/src/app/common/directives/node-permanent-delete.directive.spec.ts @@ -19,7 +19,7 @@ import { Component, DebugElement } from '@angular/core'; import { TestBed, ComponentFixture, async, fakeAsync, tick } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { Observable } from 'rxjs/Rx'; -import { CoreModule, AlfrescoApiService, TranslationService, NotificationService } from 'ng2-alfresco-core'; +import { CoreModule, AlfrescoApiService, TranslationService, NotificationService } from '@alfresco/adf-core'; import { NodePermanentDeleteDirective } from './node-permanent-delete.directive'; diff --git a/src/app/common/directives/node-permanent-delete.directive.ts b/src/app/common/directives/node-permanent-delete.directive.ts index 8c54da68d..9f811b6b2 100644 --- a/src/app/common/directives/node-permanent-delete.directive.ts +++ b/src/app/common/directives/node-permanent-delete.directive.ts @@ -18,7 +18,7 @@ import { Directive, ElementRef, HostListener, Input } from '@angular/core'; import { Observable } from 'rxjs/Rx'; -import { TranslationService, AlfrescoApiService, NotificationService } from 'ng2-alfresco-core'; +import { TranslationService, AlfrescoApiService, NotificationService } from '@alfresco/adf-core'; import { MinimalNodeEntity, DeletedNodeEntry, PathInfoEntity } from 'alfresco-js-api'; @Directive({ diff --git a/src/app/common/directives/node-restore.directive.spec.ts b/src/app/common/directives/node-restore.directive.spec.ts index 3a282a53c..93452c65a 100644 --- a/src/app/common/directives/node-restore.directive.spec.ts +++ b/src/app/common/directives/node-restore.directive.spec.ts @@ -21,7 +21,7 @@ import { RouterTestingModule } from '@angular/router/testing'; import { TestBed, ComponentFixture, async, fakeAsync, tick } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { Observable } from 'rxjs/Rx'; -import { CoreModule, AlfrescoApiService, TranslationService, NotificationService } from 'ng2-alfresco-core'; +import { CoreModule, AlfrescoApiService, TranslationService, NotificationService } from '@alfresco/adf-core'; import { NodeRestoreDirective } from './node-restore.directive'; diff --git a/src/app/common/directives/node-restore.directive.ts b/src/app/common/directives/node-restore.directive.ts index 13a6799cf..65d25cf35 100644 --- a/src/app/common/directives/node-restore.directive.ts +++ b/src/app/common/directives/node-restore.directive.ts @@ -19,7 +19,7 @@ import { Directive, ElementRef, HostListener, Input } from '@angular/core'; import { Router } from '@angular/router'; import { Observable } from 'rxjs/Rx'; -import { TranslationService, AlfrescoApiService, NotificationService } from 'ng2-alfresco-core'; +import { TranslationService, AlfrescoApiService, NotificationService } from '@alfresco/adf-core'; import { MinimalNodeEntity, DeletedNodeEntry, PathInfoEntity, DeletedNodesPaging } from 'alfresco-js-api'; @Directive({ diff --git a/src/app/common/services/browsing-files.service.spec.ts b/src/app/common/services/browsing-files.service.spec.ts index 4120ec037..1f155c4c1 100644 --- a/src/app/common/services/browsing-files.service.spec.ts +++ b/src/app/common/services/browsing-files.service.spec.ts @@ -24,7 +24,7 @@ describe('BrowsingFilesService', () => { service = new BrowsingFilesService(); }); - it('subscribs to event', () => { + it('subscribes to event', () => { const value: any = 'test-value'; service.onChangeParent.subscribe((result) => { diff --git a/src/app/common/services/browsing-files.service.ts b/src/app/common/services/browsing-files.service.ts index cca3528f7..dfd8eddc5 100644 --- a/src/app/common/services/browsing-files.service.ts +++ b/src/app/common/services/browsing-files.service.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { Subject } from 'rxjs/Subject'; +import { Subject } from 'rxjs/Rx'; import { Injectable } from '@angular/core'; import { MinimalNodeEntryEntity } from 'alfresco-js-api'; diff --git a/src/app/common/services/node-actions.service.spec.ts b/src/app/common/services/node-actions.service.spec.ts index 04861ec90..b8c922ae3 100644 --- a/src/app/common/services/node-actions.service.spec.ts +++ b/src/app/common/services/node-actions.service.spec.ts @@ -15,18 +15,20 @@ * limitations under the License. */ + /* import { TestBed, async } from '@angular/core/testing'; import { MatDialog } from '@angular/material'; import { OverlayModule } from '@angular/cdk/overlay'; import { Observable } from 'rxjs/Rx'; -import { CoreModule, AlfrescoApiService, NodesApiService } from 'ng2-alfresco-core'; -import { DocumentListService, NodeMinimal, NodeMinimalEntry } from 'ng2-alfresco-documentlist'; +import { CoreModule, AlfrescoApiService, NodesApiService } from '@alfresco/adf-core'; +import { DocumentListService } from '@alfresco/adf-content-services'; import { NodeActionsService } from './node-actions.service'; +import { MinimalNodeEntity, MinimalNodeEntryEntity } from 'alfresco-js-api'; -class TestNode extends NodeMinimalEntry { +class TestNode extends MinimalNodeEntity { constructor(id?: string, isFile?: boolean, name?: string, permission?: string[]) { super(); - this.entry = new NodeMinimal(); + this.entry = new MinimalNodeEntryEntity(); this.entry.id = id || 'node-id'; this.entry.isFile = isFile; this.entry.isFolder = !isFile; @@ -1179,3 +1181,4 @@ describe('NodeActionsService', () => { }); }); +*/ diff --git a/src/app/common/services/node-actions.service.ts b/src/app/common/services/node-actions.service.ts index 837274980..72a41394d 100644 --- a/src/app/common/services/node-actions.service.ts +++ b/src/app/common/services/node-actions.service.ts @@ -19,9 +19,8 @@ import { EventEmitter, Injectable } from '@angular/core'; import { MatDialog } from '@angular/material'; import { Observable, Subject } from 'rxjs/Rx'; -import { AlfrescoApiService, AlfrescoContentService, NodesApiService } from 'ng2-alfresco-core'; -import { DataColumn } from 'ng2-alfresco-datatable'; -import { DocumentListService, ContentNodeSelectorComponent, ContentNodeSelectorComponentData } from 'ng2-alfresco-documentlist'; +import { AlfrescoApiService, ContentService, NodesApiService, DataColumn } from '@alfresco/adf-core'; +import { DocumentListService, ContentNodeSelectorComponent, ContentNodeSelectorComponentData } from '@alfresco/adf-content-services'; import { MinimalNodeEntity, MinimalNodeEntryEntity } from 'alfresco-js-api'; @Injectable() @@ -33,7 +32,7 @@ export class NodeActionsService { contentMoved: Subject = new Subject(); moveDeletedEntries: any[] = []; - constructor(private contentService: AlfrescoContentService, + constructor(private contentService: ContentService, private dialog: MatDialog, private documentListService: DocumentListService, private apiService: AlfrescoApiService, diff --git a/src/app/components/about/about.component.ts b/src/app/components/about/about.component.ts index 31fcaddbc..d1c152b70 100644 --- a/src/app/components/about/about.component.ts +++ b/src/app/components/about/about.component.ts @@ -17,8 +17,8 @@ import { Component, OnInit } from '@angular/core'; import { Http } from '@angular/http'; -import { DiscoveryApiService, EcmProductVersionModel } from 'ng2-alfresco-core'; -import { ObjectDataTableAdapter } from 'ng2-alfresco-datatable'; +import { DiscoveryApiService } from '@alfresco/adf-core'; +import { EcmProductVersionModel, ObjectDataTableAdapter } from '@alfresco/adf-content-services'; @Component({ selector: 'app-about', diff --git a/src/app/components/current-user/current-user.component.spec.ts b/src/app/components/current-user/current-user.component.spec.ts index bc62a2b08..37e9f83a5 100644 --- a/src/app/components/current-user/current-user.component.spec.ts +++ b/src/app/components/current-user/current-user.component.spec.ts @@ -19,7 +19,7 @@ import { TestBed, async } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { Observable } from 'rxjs/Rx'; import { MaterialModule } from '../../common/material.module'; -import { CoreModule, PeopleContentService } from 'ng2-alfresco-core'; +import { CoreModule, PeopleContentService } from '@alfresco/adf-core'; import { CurrentUserComponent } from './current-user.component'; diff --git a/src/app/components/current-user/current-user.component.ts b/src/app/components/current-user/current-user.component.ts index c37397a45..d764528aa 100644 --- a/src/app/components/current-user/current-user.component.ts +++ b/src/app/components/current-user/current-user.component.ts @@ -16,7 +16,7 @@ */ import { Component, OnInit, OnDestroy } from '@angular/core'; -import { PeopleContentService, AppConfigService } from 'ng2-alfresco-core'; +import { PeopleContentService, AppConfigService } from '@alfresco/adf-core'; import { Subscription } from 'rxjs/Rx'; @Component({ diff --git a/src/app/components/favorites/favorites.component.spec.ts b/src/app/components/favorites/favorites.component.spec.ts index 8a2ab77d9..91cba5c34 100644 --- a/src/app/components/favorites/favorites.component.spec.ts +++ b/src/app/components/favorites/favorites.component.spec.ts @@ -19,7 +19,7 @@ import { Router } from '@angular/router'; import { RouterTestingModule } from '@angular/router/testing'; import { TestBed, async } from '@angular/core/testing'; import { Observable } from 'rxjs/Rx'; -import { CoreModule, NodesApiService, AlfrescoApiService, AlfrescoContentService } from 'ng2-alfresco-core'; +import { CoreModule, NodesApiService, AlfrescoApiService, ContentService } from '@alfresco/adf-core'; import { CommonModule } from '../../common/common.module'; import { LocationLinkComponent } from '../location-link/location-link.component'; @@ -32,7 +32,7 @@ describe('Favorites Routed Component', () => { let component: FavoritesComponent; let nodesApi: NodesApiService; let alfrescoApi: AlfrescoApiService; - let alfrescoContentService: AlfrescoContentService; + let alfrescoContentService: ContentService; let contentService: ContentManagementService; let router: Router; let page; @@ -82,7 +82,7 @@ describe('Favorites Routed Component', () => { nodesApi = TestBed.get(NodesApiService); alfrescoApi = TestBed.get(AlfrescoApiService); - alfrescoContentService = TestBed.get(AlfrescoContentService); + alfrescoContentService = TestBed.get(ContentService); contentService = TestBed.get(ContentManagementService); router = TestBed.get(Router); }); diff --git a/src/app/components/favorites/favorites.component.ts b/src/app/components/favorites/favorites.component.ts index 92ebfdbe8..6d3a38f95 100644 --- a/src/app/components/favorites/favorites.component.ts +++ b/src/app/components/favorites/favorites.component.ts @@ -20,8 +20,8 @@ import { Router } from '@angular/router'; import { Subscription } from 'rxjs/Rx'; import { MinimalNodeEntryEntity, PathElementEntity, PathInfo } from 'alfresco-js-api'; -import { AlfrescoContentService, NodesApiService } from 'ng2-alfresco-core'; -import { DocumentListComponent } from 'ng2-alfresco-documentlist'; +import { ContentService, NodesApiService } from '@alfresco/adf-core'; +import { DocumentListComponent } from '@alfresco/adf-content-services'; import { ContentManagementService } from '../../common/services/content-management.service'; import { PageComponent } from '../page.component'; @@ -41,7 +41,7 @@ export class FavoritesComponent extends PageComponent implements OnInit, OnDestr constructor( private router: Router, private nodesApi: NodesApiService, - private contentService: AlfrescoContentService, + private contentService: ContentService, private content: ContentManagementService) { super(); } diff --git a/src/app/components/files/files.component.spec.ts b/src/app/components/files/files.component.spec.ts index 622e3352e..9c60ee77e 100644 --- a/src/app/components/files/files.component.spec.ts +++ b/src/app/components/files/files.component.spec.ts @@ -20,7 +20,7 @@ import { Router } from '@angular/router'; import { RouterTestingModule } from '@angular/router/testing'; import { TestBed, async } from '@angular/core/testing'; import { UploadService, NodesApiService, FileUploadCompleteEvent, - FileUploadDeleteEvent, FileModel, AlfrescoContentService } from 'ng2-alfresco-core'; + FileUploadDeleteEvent, FileModel, ContentService } from '@alfresco/adf-core'; import { CommonModule } from '../../common/common.module'; import { ContentManagementService } from '../../common/services/content-management.service'; @@ -35,7 +35,7 @@ describe('FilesComponent', () => { let fixture; let component: FilesComponent; let contentManagementService: ContentManagementService; - let alfrescoContentService: AlfrescoContentService; + let alfrescoContentService: ContentService; let uploadService: UploadService; let nodesApi: NodesApiService; let router: Router; @@ -62,7 +62,7 @@ describe('FilesComponent', () => { uploadService = TestBed.get(UploadService); nodesApi = TestBed.get(NodesApiService); router = TestBed.get(Router); - alfrescoContentService = TestBed.get(AlfrescoContentService); + alfrescoContentService = TestBed.get(ContentService); browsingFilesService = TestBed.get(BrowsingFilesService); nodeActionsService = TestBed.get(NodeActionsService); }); diff --git a/src/app/components/files/files.component.ts b/src/app/components/files/files.component.ts index 0a48e3794..a6ac3f17f 100644 --- a/src/app/components/files/files.component.ts +++ b/src/app/components/files/files.component.ts @@ -19,7 +19,7 @@ import { Observable, Subscription } from 'rxjs/Rx'; import { Component, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core'; import { Router, ActivatedRoute, Params } from '@angular/router'; import { MinimalNodeEntity, MinimalNodeEntryEntity, PathElementEntity, NodePaging, PathElement } from 'alfresco-js-api'; -import { UploadService, FileUploadEvent, NodesApiService, AlfrescoContentService, AlfrescoApiService } from 'ng2-alfresco-core'; +import { UploadService, FileUploadEvent, NodesApiService, ContentService, AlfrescoApiService } from '@alfresco/adf-core'; import { BrowsingFilesService } from '../../common/services/browsing-files.service'; import { ContentManagementService } from '../../common/services/content-management.service'; @@ -54,7 +54,7 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { private uploadService: UploadService, private contentManagementService: ContentManagementService, private browsingFilesService: BrowsingFilesService, - private contentService: AlfrescoContentService, + private contentService: ContentService, private apiService: AlfrescoApiService) { super(); } diff --git a/src/app/components/header/header.component.spec.ts b/src/app/components/header/header.component.spec.ts index 3376d30c4..18dba44ae 100644 --- a/src/app/components/header/header.component.spec.ts +++ b/src/app/components/header/header.component.spec.ts @@ -17,7 +17,7 @@ import { TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; -import { CoreModule, AppConfigService, PeopleContentService } from 'ng2-alfresco-core'; +import { CoreModule, AppConfigService, PeopleContentService } from '@alfresco/adf-core'; import { Observable } from 'rxjs/Rx'; import { CommonModule } from './../../common/common.module'; diff --git a/src/app/components/header/header.component.ts b/src/app/components/header/header.component.ts index 1605eaa2a..2249309dc 100644 --- a/src/app/components/header/header.component.ts +++ b/src/app/components/header/header.component.ts @@ -16,7 +16,7 @@ */ import { Component, ViewEncapsulation } from '@angular/core'; -import { AppConfigService } from 'ng2-alfresco-core'; +import { AppConfigService } from '@alfresco/adf-core'; @Component({ selector: 'app-header', diff --git a/src/app/components/layout/layout.component.spec.ts b/src/app/components/layout/layout.component.spec.ts index e9950baed..74e731b63 100644 --- a/src/app/components/layout/layout.component.spec.ts +++ b/src/app/components/layout/layout.component.spec.ts @@ -18,7 +18,7 @@ import { RouterTestingModule } from '@angular/router/testing'; import { TestBed, ComponentFixture } from '@angular/core/testing'; import { MinimalNodeEntryEntity } from 'alfresco-js-api'; -import { CoreModule, AlfrescoContentService, PeopleContentService } from 'ng2-alfresco-core'; +import { CoreModule, ContentService, PeopleContentService } from '@alfresco/adf-core'; import { Observable } from 'rxjs/Observable'; import { BrowsingFilesService } from '../../common/services/browsing-files.service'; @@ -33,7 +33,7 @@ describe('LayoutComponent', () => { let fixture: ComponentFixture; let component: LayoutComponent; let browsingFilesService: BrowsingFilesService; - let contentService: AlfrescoContentService; + let contentService: ContentService; let node; beforeEach(() => { @@ -65,7 +65,7 @@ describe('LayoutComponent', () => { fixture = TestBed.createComponent(LayoutComponent); component = fixture.componentInstance; browsingFilesService = TestBed.get(BrowsingFilesService); - contentService = TestBed.get(AlfrescoContentService); + contentService = TestBed.get(ContentService); fixture.detectChanges(); }); diff --git a/src/app/components/layout/layout.component.ts b/src/app/components/layout/layout.component.ts index 7d1d67bad..6ccbfb3e7 100644 --- a/src/app/components/layout/layout.component.ts +++ b/src/app/components/layout/layout.component.ts @@ -18,7 +18,7 @@ import { Component, OnInit, OnDestroy } from '@angular/core'; import { Subscription } from 'rxjs/Rx'; import { MinimalNodeEntryEntity } from 'alfresco-js-api'; -import { AlfrescoContentService } from 'ng2-alfresco-core'; +import { ContentService } from '@alfresco/adf-core'; import { BrowsingFilesService } from '../../common/services/browsing-files.service'; @Component({ @@ -32,7 +32,7 @@ export class LayoutComponent implements OnInit, OnDestroy { browsingFilesSubscription: Subscription; constructor( - private contentService: AlfrescoContentService, + private contentService: ContentService, private browsingFilesService: BrowsingFilesService) {} ngOnInit() { diff --git a/src/app/components/libraries/libraries.component.spec.ts b/src/app/components/libraries/libraries.component.spec.ts index d869760e7..67165d9e1 100644 --- a/src/app/components/libraries/libraries.component.spec.ts +++ b/src/app/components/libraries/libraries.component.spec.ts @@ -20,7 +20,7 @@ import { RouterTestingModule } from '@angular/router/testing'; import { TestBed, async } from '@angular/core/testing'; import { Observable } from 'rxjs/Rx'; -import { CoreModule , NodesApiService, AlfrescoApiService} from 'ng2-alfresco-core'; +import { CoreModule , NodesApiService, AlfrescoApiService} from '@alfresco/adf-core'; import { CommonModule } from '../../common/common.module'; import { LibrariesComponent } from './libraries.component'; diff --git a/src/app/components/libraries/libraries.component.ts b/src/app/components/libraries/libraries.component.ts index e95fe8e95..cd63ad3f9 100644 --- a/src/app/components/libraries/libraries.component.ts +++ b/src/app/components/libraries/libraries.component.ts @@ -17,10 +17,10 @@ import { Component, ViewChild } from '@angular/core'; import { Router, ActivatedRoute } from '@angular/router'; -import { NodesApiService } from 'ng2-alfresco-core'; +import { NodesApiService } from '@alfresco/adf-core'; +import { DocumentListComponent } from '@alfresco/adf-content-services'; import { PageComponent } from '../page.component'; -import { DocumentListComponent } from 'ng2-alfresco-documentlist'; @Component({ templateUrl: './libraries.component.html' diff --git a/src/app/components/location-link/location-link.component.ts b/src/app/components/location-link/location-link.component.ts index dfbacc866..3f885cc50 100644 --- a/src/app/components/location-link/location-link.component.ts +++ b/src/app/components/location-link/location-link.component.ts @@ -1,6 +1,5 @@ import { Component, Input, ChangeDetectionStrategy, OnInit, ViewEncapsulation } from '@angular/core'; -import { DataColumn, DataRow, DataTableAdapter } from 'ng2-alfresco-datatable'; -import { AlfrescoApiService } from 'ng2-alfresco-core'; +import { AlfrescoApiService, DataColumn, DataRow, DataTableAdapter } from '@alfresco/adf-core'; import { PathInfoEntity, AlfrescoApi } from 'alfresco-js-api'; import { Observable } from 'rxjs/Rx'; diff --git a/src/app/components/login/login.component.spec.ts b/src/app/components/login/login.component.spec.ts index 220b16194..0f2671257 100644 --- a/src/app/components/login/login.component.spec.ts +++ b/src/app/components/login/login.component.spec.ts @@ -19,8 +19,7 @@ import { RouterTestingModule } from '@angular/router/testing'; import { Router, ActivatedRoute } from '@angular/router'; import { TestBed, async } from '@angular/core/testing'; import { Observable } from 'rxjs/Rx'; -import { CoreModule, AuthenticationService, UserPreferencesService } from 'ng2-alfresco-core'; -import { LoginModule } from 'ng2-alfresco-login'; +import { CoreModule, AuthenticationService, UserPreferencesService, LoginModule } from '@alfresco/adf-core'; import { LoginComponent } from './login.component'; diff --git a/src/app/components/login/login.component.ts b/src/app/components/login/login.component.ts index 87413a876..14636f13b 100644 --- a/src/app/components/login/login.component.ts +++ b/src/app/components/login/login.component.ts @@ -18,8 +18,7 @@ import { Component } from '@angular/core'; import { Router, ActivatedRoute } from '@angular/router'; import { Validators } from '@angular/forms'; - -import { AlfrescoAuthenticationService, UserPreferencesService } from 'ng2-alfresco-core'; +import { AuthenticationService, UserPreferencesService } from '@alfresco/adf-core'; const skipRedirectUrls: string[] = [ '/logout', @@ -36,7 +35,7 @@ export class LoginComponent { constructor( private router: Router, private route: ActivatedRoute, - private auth: AlfrescoAuthenticationService, + private auth: AuthenticationService, private userPreferences: UserPreferencesService ) { if (auth.isEcmLoggedIn()) { diff --git a/src/app/components/page.component.ts b/src/app/components/page.component.ts index 59fcb0abc..133ae97c7 100644 --- a/src/app/components/page.component.ts +++ b/src/app/components/page.component.ts @@ -19,10 +19,10 @@ import { MinimalNodeEntity, MinimalNodeEntryEntity, NodePaging, Pagination } fro export abstract class PageComponent { - title: string = 'Page'; + title = 'Page'; - isLoading: boolean = false; - isEmpty: boolean = true; + isLoading = false; + isEmpty = true; paging: NodePaging; pagination: Pagination; @@ -70,7 +70,7 @@ export abstract class PageComponent { isFileSelected(selection: Array): boolean { if (selection && selection.length === 1) { - let entry = selection[0].entry; + const entry = selection[0].entry; if (entry && entry.isFile) { return true; @@ -81,7 +81,7 @@ export abstract class PageComponent { canEditFolder(selection: Array): boolean { if (selection && selection.length === 1) { - let entry = selection[0].entry; + const entry = selection[0].entry; if (entry && entry.isFolder) { return this.nodeHasPermission(entry, 'update'); diff --git a/src/app/components/preview/preview.component.ts b/src/app/components/preview/preview.component.ts index b6f63bf4e..0fb23e858 100644 --- a/src/app/components/preview/preview.component.ts +++ b/src/app/components/preview/preview.component.ts @@ -17,13 +17,14 @@ import { Component, OnInit, ViewEncapsulation } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; -import { AlfrescoApiService } from 'ng2-alfresco-core'; +import { AlfrescoApiService } from '@alfresco/adf-core'; @Component({ selector: 'app-preview', templateUrl: 'preview.component.html', styleUrls: ['preview.component.scss'], encapsulation: ViewEncapsulation.None, + // tslint:disable-next-line:use-host-property-decorator host: { 'class': 'app-preview' } }) export class PreviewComponent implements OnInit { diff --git a/src/app/components/recent-files/recent-files.component.spec.ts b/src/app/components/recent-files/recent-files.component.spec.ts index 65f7dd14f..b7d44ff00 100644 --- a/src/app/components/recent-files/recent-files.component.spec.ts +++ b/src/app/components/recent-files/recent-files.component.spec.ts @@ -20,7 +20,7 @@ import { RouterTestingModule } from '@angular/router/testing'; import { TestBed, async } from '@angular/core/testing'; import { Observable } from 'rxjs/Rx'; -import { CoreModule, AlfrescoApiService } from 'ng2-alfresco-core'; +import { CoreModule, AlfrescoApiService } from '@alfresco/adf-core'; import { CommonModule } from '../../common/common.module'; import { ContentManagementService } from '../../common/services/content-management.service'; diff --git a/src/app/components/recent-files/recent-files.component.ts b/src/app/components/recent-files/recent-files.component.ts index 4bbe2d546..4abb8692a 100644 --- a/src/app/components/recent-files/recent-files.component.ts +++ b/src/app/components/recent-files/recent-files.component.ts @@ -19,7 +19,7 @@ import { Subscription } from 'rxjs/Rx'; import { Component, ViewChild, OnInit, OnDestroy } from '@angular/core'; import { Router } from '@angular/router'; import { MinimalNodeEntryEntity } from 'alfresco-js-api'; -import { DocumentListComponent } from 'ng2-alfresco-documentlist'; +import { DocumentListComponent } from '@alfresco/adf-content-services'; import { ContentManagementService } from '../../common/services/content-management.service'; import { PageComponent } from '../page.component'; diff --git a/src/app/components/search/search.component.html b/src/app/components/search/search.component.html index 516b78e5d..ed0b474ce 100644 --- a/src/app/components/search/search.component.html +++ b/src/app/components/search/search.component.html @@ -1,6 +1,4 @@ + (optionClicked)="onItemClicked($event)"> diff --git a/src/app/components/search/search.component.scss b/src/app/components/search/search.component.scss index e018c6e8e..01065f775 100644 --- a/src/app/components/search/search.component.scss +++ b/src/app/components/search/search.component.scss @@ -1,5 +1,10 @@ @import 'variables'; +// todo: remove once ADF 2.0 is out +:host { + overflow: hidden; +} + adf-search-control { color: $alfresco-white; } diff --git a/src/app/components/search/search.component.spec.ts b/src/app/components/search/search.component.spec.ts index 09f9d23e7..87aaab153 100644 --- a/src/app/components/search/search.component.spec.ts +++ b/src/app/components/search/search.component.spec.ts @@ -16,7 +16,7 @@ */ import { TestBed, async } from '@angular/core/testing'; -import { CoreModule, AppConfigService } from 'ng2-alfresco-core'; +import { CoreModule, AppConfigService } from '@alfresco/adf-core'; import { Router } from '@angular/router'; import { RouterTestingModule } from '@angular/router/testing'; @@ -49,12 +49,12 @@ describe('SearchComponent', () => { }); })); - describe('onNodeClicked()', () => { + describe('onItemClicked()', () => { it('opens preview if node is file', () => { spyOn(router, 'navigate').and.stub(); const node = { entry: { isFile: true, id: 'node-id' } }; - component.onNodeClicked(node); + component.onItemClicked(node); expect(router.navigate).toHaveBeenCalledWith(['/preview', node.entry.id]); }); @@ -63,7 +63,7 @@ describe('SearchComponent', () => { const node = { entry: { isFolder: true } }; spyOn(router, 'navigate'); - component.onNodeClicked(node); + component.onItemClicked(node); expect(router.navigate).toHaveBeenCalled(); }); diff --git a/src/app/components/search/search.component.ts b/src/app/components/search/search.component.ts index 640b39091..964518de6 100644 --- a/src/app/components/search/search.component.ts +++ b/src/app/components/search/search.component.ts @@ -17,7 +17,6 @@ import { Component } from '@angular/core'; import { Router } from '@angular/router'; - import { MinimalNodeEntity } from 'alfresco-js-api'; @Component({ @@ -27,13 +26,11 @@ import { MinimalNodeEntity } from 'alfresco-js-api'; }) export class SearchComponent { - searchTerm: string = ''; - constructor( private router: Router) { } - onNodeClicked(node: MinimalNodeEntity) { + onItemClicked(node: MinimalNodeEntity) { if (node && node.entry) { if (node.entry.isFile) { this.router.navigate(['/preview', node.entry.id]); diff --git a/src/app/components/shared-files/shared-files.component.spec.ts b/src/app/components/shared-files/shared-files.component.spec.ts index db214f73b..e78c77122 100644 --- a/src/app/components/shared-files/shared-files.component.spec.ts +++ b/src/app/components/shared-files/shared-files.component.spec.ts @@ -19,7 +19,7 @@ import { Router } from '@angular/router'; import { TestBed, async, fakeAsync, tick } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; -import { AlfrescoApiService } from 'ng2-alfresco-core'; +import { AlfrescoApiService } from '@alfresco/adf-core'; import { CommonModule } from '../../common/common.module'; import { ContentManagementService } from '../../common/services/content-management.service'; diff --git a/src/app/components/shared-files/shared-files.component.ts b/src/app/components/shared-files/shared-files.component.ts index 90410e00c..6e661ef7a 100644 --- a/src/app/components/shared-files/shared-files.component.ts +++ b/src/app/components/shared-files/shared-files.component.ts @@ -19,8 +19,8 @@ import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core'; import { Router } from '@angular/router'; import { Subscription } from 'rxjs/Rx'; import { MinimalNodeEntity } from 'alfresco-js-api'; -import { AlfrescoApiService } from 'ng2-alfresco-core'; -import { DocumentListComponent } from 'ng2-alfresco-documentlist'; +import { AlfrescoApiService } from '@alfresco/adf-core'; +import { DocumentListComponent } from '@alfresco/adf-content-services'; import { ContentManagementService } from '../../common/services/content-management.service'; import { PageComponent } from '../page.component'; diff --git a/src/app/components/sidenav/sidenav.component.spec.ts b/src/app/components/sidenav/sidenav.component.spec.ts index df000004c..e565da7d7 100644 --- a/src/app/components/sidenav/sidenav.component.spec.ts +++ b/src/app/components/sidenav/sidenav.component.spec.ts @@ -17,7 +17,7 @@ import { TestBed, async } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; -import { AlfrescoContentService } from 'ng2-alfresco-core'; +import { ContentService } from '@alfresco/adf-core'; import { BrowsingFilesService } from '../../common/services/browsing-files.service'; @@ -27,7 +27,7 @@ import { CommonModule } from './../../common/common.module'; describe('SidenavComponent', () => { let fixture; let component: SidenavComponent; - let contentService: AlfrescoContentService; + let contentService: ContentService; let browsingService: BrowsingFilesService; beforeEach(async(() => { @@ -42,7 +42,7 @@ describe('SidenavComponent', () => { }) .compileComponents() .then(() => { - contentService = TestBed.get(AlfrescoContentService); + contentService = TestBed.get(ContentService); browsingService = TestBed.get(BrowsingFilesService); fixture = TestBed.createComponent(SidenavComponent); diff --git a/src/app/components/sidenav/sidenav.component.ts b/src/app/components/sidenav/sidenav.component.ts index c7e8a8762..583c55c73 100644 --- a/src/app/components/sidenav/sidenav.component.ts +++ b/src/app/components/sidenav/sidenav.component.ts @@ -20,7 +20,7 @@ import { Subscription } from 'rxjs/Rx'; import { Component, OnInit, OnDestroy } from '@angular/core'; import { MinimalNodeEntryEntity } from 'alfresco-js-api'; -import { AlfrescoContentService, AppConfigService } from 'ng2-alfresco-core'; +import { ContentService, AppConfigService } from '@alfresco/adf-core'; import { BrowsingFilesService } from '../../common/services/browsing-files.service'; @@ -36,7 +36,7 @@ export class SidenavComponent implements OnInit, OnDestroy { constructor( private browsingFilesService: BrowsingFilesService, - private contentService: AlfrescoContentService, + private contentService: ContentService, private appConfig: AppConfigService ) { this.navigation = this.navigation.concat([ diff --git a/src/app/components/trashcan/trashcan.component.spec.ts b/src/app/components/trashcan/trashcan.component.spec.ts index b8c3e5c99..5c257fc56 100644 --- a/src/app/components/trashcan/trashcan.component.spec.ts +++ b/src/app/components/trashcan/trashcan.component.spec.ts @@ -16,7 +16,7 @@ */ import { TestBed, async } from '@angular/core/testing'; -import { CoreModule, AlfrescoApiService } from 'ng2-alfresco-core'; +import { CoreModule, AlfrescoApiService } from '@alfresco/adf-core'; import { TrashcanComponent } from './trashcan.component'; import { CommonModule } from '../../common/common.module'; import { LocationLinkComponent } from '../location-link/location-link.component'; diff --git a/src/app/components/trashcan/trashcan.component.ts b/src/app/components/trashcan/trashcan.component.ts index cb6575b2e..a263f5dfc 100644 --- a/src/app/components/trashcan/trashcan.component.ts +++ b/src/app/components/trashcan/trashcan.component.ts @@ -16,7 +16,7 @@ */ import { Component, ViewChild } from '@angular/core'; -import { DocumentListComponent } from 'ng2-alfresco-documentlist'; +import { DocumentListComponent } from '@alfresco/adf-content-services'; @Component({ templateUrl: './trashcan.component.html' diff --git a/src/app/ui/theme.scss b/src/app/ui/theme.scss index 4f7edb0ae..6e2210ceb 100644 --- a/src/app/ui/theme.scss +++ b/src/app/ui/theme.scss @@ -1,12 +1,7 @@ @import "~@angular/material/theming"; -@import '~ng2-alfresco-core/styles/theming'; -@import '~ng2-alfresco-core/styles/index'; -@import '~ng2-alfresco-datatable/styles/index'; -@import '~ng2-alfresco-documentlist/styles/index'; -@import '~ng2-alfresco-login/styles/index'; -@import '~ng2-alfresco-upload/styles/index'; -@import '~ng2-alfresco-search/styles/index'; +@import '~@alfresco/adf-content-services/theming'; +@import '~@alfresco/adf-core/theming'; @include mat-core(); @@ -17,9 +12,5 @@ $theme: mat-light-theme($primary, $accent, $warn); @include angular-material-theme($theme); -@include alfresco-core-theme($theme); -@include alfresco-datatable-theme($theme); -@include alfresco-documentlist-theme($theme); -@include alfresco-login-theme($theme); -@include alfresco-upload-theme($theme); -@include alfresco-search-theme($theme); +@include adf-content-services-theme($theme); +@include adf-core-theme($theme); diff --git a/src/polyfills.ts b/src/polyfills.ts index 82c008f12..bbd1861fe 100644 --- a/src/polyfills.ts +++ b/src/polyfills.ts @@ -63,7 +63,7 @@ import 'core-js/es7/reflect'; * Required to support Web Animations `@angular/platform-browser/animations`. * Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation **/ -// import 'web-animations-js'; // Run `npm install --save web-animations-js`. +import 'web-animations-js'; // Run `npm install --save web-animations-js`. diff --git a/src/styles.scss b/src/styles.scss index d71979366..6bbb805c3 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -1,6 +1,6 @@ /* You can add global styles to this file, and also import other style files */ @import '~@angular/material/prebuilt-themes/deeppurple-amber.css'; -@import '~ng2-alfresco-core/prebuilt-themes/adf-blue-orange.css'; +@import '~@alfresco/adf-core/prebuilt-themes/adf-blue-orange.css'; @import 'app/ui/application'; body, html { diff --git a/yarn.lock b/yarn.lock index fed4f32ca..26479febb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,9 +2,74 @@ # yarn lockfile v1 -"@angular-devkit/build-optimizer@~0.0.23": - version "0.0.32" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.0.32.tgz#1bf32332d8a7c84043059e3d265a52f9d11726fd" +"@alfresco/adf-content-services@2.0.0-beta2": + version "2.0.0-beta2" + resolved "https://registry.yarnpkg.com/@alfresco/adf-content-services/-/adf-content-services-2.0.0-beta2.tgz#7b587278b7bef852f6d543e1b667f9be5eaf3308" + dependencies: + "@alfresco/adf-core" "2.0.0-beta2" + "@angular/animations" "5.0.0" + "@angular/cdk" "5.0.0-rc0" + "@angular/common" "5.0.0" + "@angular/compiler" "5.0.0" + "@angular/core" "5.0.0" + "@angular/flex-layout" "2.0.0-beta.10" + "@angular/forms" "5.0.0" + "@angular/http" "5.0.0" + "@angular/material" "5.0.0-rc0" + "@angular/material-moment-adapter" "^5.0.0-rc0" + "@angular/platform-browser" "5.0.0" + "@angular/platform-browser-dynamic" "5.0.0" + "@angular/router" "5.0.0" + "@ngx-translate/core" "8.0.0" + alfresco-js-api "2.0.0-beta1" + chart.js "2.5.0" + core-js "2.4.1" + hammerjs "2.0.8" + minimatch "3.0.4" + moment "2.15.2" + ng2-charts "1.6.0" + pdfjs-dist "1.5.404" + raphael "2.2.7" + reflect-metadata "0.1.10" + rxjs "5.5.2" + systemjs "0.19.27" + zone.js "0.8.14" + +"@alfresco/adf-core@2.0.0-beta2": + version "2.0.0-beta2" + resolved "https://registry.yarnpkg.com/@alfresco/adf-core/-/adf-core-2.0.0-beta2.tgz#3b38b8fa9339d94bde48d8866e797bb0e4d5cc24" + dependencies: + "@angular/animations" "5.0.0" + "@angular/cdk" "5.0.0-rc0" + "@angular/common" "5.0.0" + "@angular/compiler" "5.0.0" + "@angular/core" "5.0.0" + "@angular/flex-layout" "2.0.0-beta.10" + "@angular/forms" "5.0.0" + "@angular/http" "5.0.0" + "@angular/material" "5.0.0-rc0" + "@angular/material-moment-adapter" "^5.0.0-rc0" + "@angular/platform-browser" "5.0.0" + "@angular/platform-browser-dynamic" "5.0.0" + "@angular/router" "5.0.0" + "@ngx-translate/core" "8.0.0" + alfresco-js-api "2.0.0-beta1" + chart.js "2.5.0" + core-js "2.4.1" + hammerjs "2.0.8" + minimatch "3.0.4" + moment "2.15.2" + ng2-charts "1.6.0" + pdfjs-dist "1.5.404" + raphael "2.2.7" + reflect-metadata "0.1.10" + rxjs "5.5.2" + systemjs "0.19.27" + zone.js "0.8.14" + +"@angular-devkit/build-optimizer@~0.0.31": + version "0.0.33" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.0.33.tgz#d040f283ed7300b5be8bc970228b835ed02df42f" dependencies: loader-utils "^1.1.0" source-map "^0.5.6" @@ -17,38 +82,38 @@ dependencies: source-map "^0.5.6" -"@angular-devkit/schematics@~0.0.25": - version "0.0.35" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-0.0.35.tgz#23dbe2c8dd430114a903a7995d6eefcf1f0f648d" +"@angular-devkit/schematics@~0.0.34": + version "0.0.36" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-0.0.36.tgz#9f351317759774f930c2d8cef90f87cf02f69cef" dependencies: "@angular-devkit/core" "0.0.20" "@ngtools/json-schema" "^1.1.0" minimist "^1.2.0" rxjs "^5.5.2" -"@angular/animations@4.4.5": - version "4.4.5" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-4.4.5.tgz#5a5a551d757e5a5560098f6f8535c102d93954d7" +"@angular/animations@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-5.0.0.tgz#b5ad199c67f93f759544477effe6679e154991fb" dependencies: tslib "^1.7.1" -"@angular/cdk@2.0.0-beta.12": - version "2.0.0-beta.12" - resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-2.0.0-beta.12.tgz#3a243cb62b93f4e039120ba70f900dc9e235622e" +"@angular/cdk@5.0.0-rc0": + version "5.0.0-rc0" + resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-5.0.0-rc0.tgz#b7225af1d8d23c13ac14bbd3fe1c6b427eb71368" dependencies: tslib "^1.7.1" -"@angular/cli@1.4.7": - version "1.4.7" - resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-1.4.7.tgz#56bc32db264b9e6666d7628c7d4018a02c23e4ff" +"@angular/cli@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-1.5.0.tgz#2abc3ff1648d54ad4a14f82f9d517f371370406c" dependencies: - "@angular-devkit/build-optimizer" "~0.0.23" - "@angular-devkit/schematics" "~0.0.25" + "@angular-devkit/build-optimizer" "~0.0.31" + "@angular-devkit/schematics" "~0.0.34" "@ngtools/json-schema" "1.1.0" - "@ngtools/webpack" "1.7.4" - "@schematics/angular" "~0.0.38" + "@ngtools/webpack" "1.8.0" + "@schematics/angular" "~0.1.0" autoprefixer "^6.5.3" - chalk "^2.0.1" + chalk "~2.2.0" circular-dependency-plugin "^3.0.0" common-tags "^1.3.1" copy-webpack-plugin "^4.1.1" @@ -59,7 +124,7 @@ ember-cli-string-utils "^1.0.0" exports-loader "^0.6.3" extract-text-webpack-plugin "3.0.0" - file-loader "^0.10.0" + file-loader "^1.1.5" fs-extra "^4.0.0" glob "^7.0.3" html-webpack-plugin "^2.29.0" @@ -74,11 +139,12 @@ nopt "^4.0.1" opn "~5.1.0" portfinder "~1.0.12" + postcss-custom-properties "^6.1.0" postcss-loader "^1.3.3" postcss-url "^5.1.2" raw-loader "^0.5.1" resolve "^1.1.7" - rxjs "^5.4.2" + rxjs "^5.5.2" sass-loader "^6.0.3" semver "^5.1.0" silent-error "^1.0.0" @@ -87,58 +153,61 @@ style-loader "^0.13.1" stylus "^0.54.5" stylus-loader "^3.0.1" - typescript ">=2.0.0 <2.6.0" - url-loader "^0.6.0" - webpack "~3.6.0" + uglifyjs-webpack-plugin "1.0.0" + url-loader "^0.6.2" + webpack "~3.8.1" webpack-concat-plugin "1.4.0" webpack-dev-middleware "~1.12.0" - webpack-dev-server "~2.7.1" + webpack-dev-server "~2.9.3" webpack-merge "^4.1.0" + webpack-sources "^1.0.0" + webpack-subresource-integrity "^1.0.1" zone.js "^0.8.14" optionalDependencies: node-sass "^4.3.0" -"@angular/common@4.4.5": - version "4.4.5" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-4.4.5.tgz#bd5179dc922adbf4c3ea6dfb19e73cb849ffdc37" +"@angular/common@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-5.0.0.tgz#f96d66a517b995d1ba9b28309f15c2e359675825" dependencies: tslib "^1.7.1" -"@angular/compiler-cli@4.4.5": - version "4.4.5" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-4.4.5.tgz#61fa0336acd1a208c5f1c5c6d4df679e99953248" +"@angular/compiler-cli@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-5.0.0.tgz#0ecbb937d84a4f8dd94f0c2a47b07d2e4694c853" dependencies: - "@angular/tsc-wrapped" "4.4.5" + chokidar "^1.4.2" minimist "^1.2.0" reflect-metadata "^0.1.2" + tsickle "^0.24.0" -"@angular/compiler@4.4.5": - version "4.4.5" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-4.4.5.tgz#8721a5910f2bb52f09e2d404cad264f35ede5902" +"@angular/compiler@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-5.0.0.tgz#b9ffbf18c8a39d8b7dacec473193a90e24cc2bc9" dependencies: tslib "^1.7.1" -"@angular/core@4.4.5": - version "4.4.5" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-4.4.5.tgz#54acbcbda11719f883c786a906974abeb132f1a0" +"@angular/core@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-5.0.0.tgz#4f976a225f7dddf34992f2cad824c9543a46f4c8" dependencies: tslib "^1.7.1" -"@angular/flex-layout@2.0.0-beta.9": - version "2.0.0-beta.9" - resolved "https://registry.yarnpkg.com/@angular/flex-layout/-/flex-layout-2.0.0-beta.9.tgz#3e54f898e805d0b1426d15e6139db415d04ee75f" +"@angular/flex-layout@2.0.0-beta.10": + version "2.0.0-beta.10" + resolved "https://registry.yarnpkg.com/@angular/flex-layout/-/flex-layout-2.0.0-beta.10.tgz#704e0626d6a92defbef2434e138e30f801fb2ad6" dependencies: tslib "^1.7.1" -"@angular/forms@4.4.5": - version "4.4.5" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-4.4.5.tgz#e9552086232aab2ce1d08ef198b62204ea13c43b" +"@angular/forms@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-5.0.0.tgz#c7fddfa35396759ae9852920a30cdda8c41ed1de" dependencies: tslib "^1.7.1" -"@angular/http@4.4.5": - version "4.4.5" - resolved "https://registry.yarnpkg.com/@angular/http/-/http-4.4.5.tgz#2c735ed842401fc2356419268e288dcf2396e84f" +"@angular/http@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@angular/http/-/http-5.0.0.tgz#0728a2be0cfbb078727c5eb87d4c85d53fec9a51" dependencies: tslib "^1.7.1" @@ -146,64 +215,63 @@ version "4.4.5" resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-4.4.5.tgz#ccef139b8d3e1684b01afa35c6fbf2172e2bb676" -"@angular/material@2.0.0-beta.12": - version "2.0.0-beta.12" - resolved "https://registry.yarnpkg.com/@angular/material/-/material-2.0.0-beta.12.tgz#71b6d0b7b021891e5d0e3688c1d4bd78c7457f58" +"@angular/material-moment-adapter@^5.0.0-rc0": + version "5.0.0-rc0" + resolved "https://registry.yarnpkg.com/@angular/material-moment-adapter/-/material-moment-adapter-5.0.0-rc0.tgz#d0357aae1fef9e9181ee80ee444c2dfe9ce1df08" dependencies: tslib "^1.7.1" -"@angular/platform-browser-dynamic@4.4.5": - version "4.4.5" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-4.4.5.tgz#774dbdc1d90f775dbf1e319f6ed42b260623b61f" +"@angular/material@5.0.0-rc0": + version "5.0.0-rc0" + resolved "https://registry.yarnpkg.com/@angular/material/-/material-5.0.0-rc0.tgz#d37e104a284b41084f91e7613ac119cfb627c56d" dependencies: tslib "^1.7.1" -"@angular/platform-browser@4.4.5": - version "4.4.5" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-4.4.5.tgz#74eb91c0b758126f26d53ee56c7cf4668bd9cac5" +"@angular/platform-browser-dynamic@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.0.0.tgz#887e106c8b103b0415cf6156a425da6d83f4c89d" dependencies: tslib "^1.7.1" -"@angular/router@4.4.5": - version "4.4.5" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-4.4.5.tgz#f73130cf487d9a32cc1988afda59665f44a28a89" +"@angular/platform-browser@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-5.0.0.tgz#c7038f7cde80705b62014897231e182eec976fed" dependencies: tslib "^1.7.1" -"@angular/tsc-wrapped@4.4.5": - version "4.4.5" - resolved "https://registry.yarnpkg.com/@angular/tsc-wrapped/-/tsc-wrapped-4.4.5.tgz#30a0cbb43a663aa75dca984894be4813778ddc9c" +"@angular/router@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-5.0.0.tgz#fe4b521a6738408bce30f93a53499140c93a4f76" dependencies: - tsickle "^0.21.0" + tslib "^1.7.1" "@ngtools/json-schema@1.1.0", "@ngtools/json-schema@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@ngtools/json-schema/-/json-schema-1.1.0.tgz#c3a0c544d62392acc2813a42c8a0dc6f58f86922" -"@ngtools/webpack@1.7.4": - version "1.7.4" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-1.7.4.tgz#5015c47ebd339045dd89a1bef0497f4524d2c8ed" +"@ngtools/webpack@1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-1.8.0.tgz#443204e016aa3a287544eacadb4c95964ae6e2c4" dependencies: + chalk "~2.2.0" enhanced-resolve "^3.1.0" loader-utils "^1.0.2" magic-string "^0.22.3" + semver "^5.3.0" source-map "^0.5.6" + tree-kill "^1.0.0" "@ngx-translate/core@8.0.0": version "8.0.0" resolved "https://registry.yarnpkg.com/@ngx-translate/core/-/core-8.0.0.tgz#751fd6b512d80f3a748d2de8dfc96dfefa29afe0" -"@schematics/angular@~0.0.38": - version "0.0.49" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-0.0.49.tgz#c00ca573756d6a79ee518b05eab5fe6e7b73f341" +"@schematics/angular@~0.1.0": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-0.1.5.tgz#501ef8bd7319e1b57486ee2a48720d2f3da7ee13" dependencies: "@angular-devkit/core" "0.0.20" -"@types/jasmine@*": - version "2.6.2" - resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.6.2.tgz#6e6d4cb183cd55c7a1ad6270bced10fdd5367a3c" - -"@types/jasmine@^2.5.53": +"@types/jasmine@*", "@types/jasmine@^2.5.53": version "2.8.2" resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.8.2.tgz#6ae4d8740c0da5d5a627df725b4eed71b8e36668" @@ -214,16 +282,16 @@ "@types/jasmine" "*" "@types/node@^6.0.46", "@types/node@~6.0.60": - version "6.0.90" - resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.90.tgz#0ed74833fa1b73dcdb9409dcb1c97ec0a8b13b02" + version "6.0.92" + resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.92.tgz#e7f721ae282772e12ba2579968c00d9cce422c5d" "@types/q@^0.0.32": version "0.0.32" resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5" "@types/selenium-webdriver@^2.53.35", "@types/selenium-webdriver@~2.53.39": - version "2.53.42" - resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-2.53.42.tgz#74cb77fb6052edaff2a8984ddafd88d419f25cac" + version "2.53.43" + resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-2.53.43.tgz#2de3d718819bc20165754c4a59afb7e9833f6707" abbrev@1: version "1.1.1" @@ -296,9 +364,9 @@ ajv@^5.0.0, ajv@^5.1.0, ajv@^5.1.5: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -alfresco-js-api@1.10.0-beta6: - version "1.10.0-beta6" - resolved "https://registry.yarnpkg.com/alfresco-js-api/-/alfresco-js-api-1.10.0-beta6.tgz#c988a46f81ce17c70edd053d03b95d61ce5447f5" +alfresco-js-api@2.0.0-beta1: + version "2.0.0-beta1" + resolved "https://registry.yarnpkg.com/alfresco-js-api/-/alfresco-js-api-2.0.0-beta1.tgz#f52f8dfb82e3516efd71868f06cf91c62e4fa71e" dependencies: event-emitter "0.3.4" superagent "3.7.0" @@ -358,7 +426,7 @@ append-transform@^0.4.0: dependencies: default-require-extensions "^1.0.0" -aproba@^1.0.3: +aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -397,6 +465,13 @@ array-flatten@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" +array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + array-slice@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" @@ -466,8 +541,8 @@ async@^1.4.0, async@^1.5.2: resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" async@^2.1.2, async@^2.1.4, async@^2.1.5, async@^2.4.1, async@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" + version "2.6.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" dependencies: lodash "^4.14.0" @@ -618,8 +693,8 @@ big.js@^3.1.3: resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" binary-extensions@^1.0.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0" + version "1.11.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" blob@0.0.4: version "0.0.4" @@ -637,7 +712,7 @@ blocking-proxy@0.0.5: dependencies: minimist "^1.2.0" -bluebird@^3.3.0, bluebird@^3.4.7, bluebird@^3.5.1: +bluebird@^3.3.0, bluebird@^3.4.7, bluebird@^3.5.0, bluebird@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" @@ -764,11 +839,11 @@ browserify-sign@^4.0.0: inherits "^2.0.1" parse-asn1 "^5.0.0" -browserify-zlib@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" dependencies: - pako "~0.2.0" + pako "~1.0.5" browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: version "1.7.7" @@ -805,6 +880,24 @@ bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" +cacache@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.1.tgz#3e05f6e616117d9b54665b1b20c8aeb93ea5d36f" + dependencies: + bluebird "^3.5.0" + chownr "^1.0.1" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.1" + mississippi "^1.3.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.1" + ssri "^5.0.0" + unique-filename "^1.1.0" + y18n "^3.2.1" + callsite@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" @@ -849,8 +942,12 @@ caniuse-api@^1.5.2: lodash.uniq "^4.5.0" caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000758" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000758.tgz#a235627b1922e878b63164942c991b84de92c810" + version "1.0.30000766" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000766.tgz#4c911aa3747f01388452fa4b927b78fcf1430680" + +caseless@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" caseless@~0.12.0: version "0.12.0" @@ -873,7 +970,7 @@ chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0: +chalk@^2.0.0, chalk@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" dependencies: @@ -881,11 +978,46 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0: escape-string-regexp "^1.0.5" supports-color "^4.0.0" +chalk@~2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.2.2.tgz#4403f5cf18f35c05f51fbdf152bf588f956cf7cb" + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + charenc@~0.0.1: version "0.0.2" resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" -chokidar@^1.4.1, chokidar@^1.6.0, chokidar@^1.7.0: +chart.js@2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.5.0.tgz#fe6e751a893769f56e72bee5ad91207e1c592957" + dependencies: + chartjs-color "^2.0.0" + moment "^2.10.6" + +chart.js@^2.6.0: + version "2.7.1" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.7.1.tgz#ae90b4aa4ff1f02decd6b1a2a8dabfd73c9f9886" + dependencies: + chartjs-color "~2.2.0" + moment "~2.18.0" + +chartjs-color-string@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.5.0.tgz#8d3752d8581d86687c35bfe2cb80ac5213ceb8c1" + dependencies: + color-name "^1.0.0" + +chartjs-color@^2.0.0, chartjs-color@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.2.0.tgz#84a2fb755787ed85c39dd6dd8c7b1d88429baeae" + dependencies: + chartjs-color-string "^0.5.0" + color-convert "^0.5.3" + +chokidar@^1.4.1, chokidar@^1.4.2, chokidar@^1.6.0, chokidar@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" dependencies: @@ -900,6 +1032,10 @@ chokidar@^1.4.1, chokidar@^1.6.0, chokidar@^1.7.0: optionalDependencies: fsevents "^1.0.0" +chownr@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -949,8 +1085,8 @@ clone-deep@^0.3.0: shallow-clone "^0.1.2" clone@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f" clone@^2.1.1: version "2.1.1" @@ -981,9 +1117,13 @@ codelyzer@~3.2.0: source-map "^0.5.6" sprintf-js "^1.0.3" +color-convert@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" + color-convert@^1.3.0, color-convert@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" dependencies: color-name "^1.1.1" @@ -1039,6 +1179,10 @@ common-tags@^1.3.1: dependencies: babel-runtime "^6.18.0" +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + component-bind@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" @@ -1077,9 +1221,17 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" +concat-stream@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" + dependencies: + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + connect-history-api-fallback@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.4.0.tgz#3db24f973f4b923b0e82f619ce0df02411ca623d" + version "1.5.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a" connect@^3.6.0: version "3.6.5" @@ -1128,9 +1280,20 @@ cookiejar@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.1.tgz#41ad57b1b555951ec171412a81942b1e8200d34a" +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + copy-webpack-plugin@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.2.0.tgz#252bb94597f96399d23d7fad355f8d3a661ac096" + version "4.2.1" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.2.1.tgz#4017366b2d815bd2997e7d6b2b2446f719f486a1" dependencies: bluebird "^3.5.1" fs-extra "^4.0.2" @@ -1145,7 +1308,7 @@ core-js@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" -core-js@^2.2.0, core-js@^2.4.0, core-js@^2.4.1: +core-js@^2.2.0, core-js@^2.4.0: version "2.5.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" @@ -1361,6 +1524,10 @@ custom-event@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" +cyclist@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + d@1: version "1.0.0" resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" @@ -1425,6 +1592,13 @@ default-require-extensions@^1.0.0: dependencies: strip-bom "^2.0.0" +define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + defined@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" @@ -1587,6 +1761,15 @@ domutils@1.5.1: dom-serializer "0" domelementtype "1" +duplexify@^3.1.2, duplexify@^3.4.2: + version "3.5.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.1.tgz#4e1516be68838bc90a49994f0b39a6e5960befcd" + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + ecc-jsbn@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" @@ -1629,6 +1812,12 @@ encodeurl@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206" + dependencies: + once "^1.4.0" + engine.io-client@1.8.3: version "1.8.3" resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.3.tgz#1798ed93451246453d4c6f635d7a201fe940d5ab" @@ -1685,7 +1874,7 @@ entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" -errno@^0.1.1, errno@^0.1.3: +errno@^0.1.1, errno@^0.1.3, errno@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" dependencies: @@ -1697,6 +1886,24 @@ error-ex@^1.2.0: dependencies: is-arrayish "^0.2.1" +es-abstract@^1.7.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.9.0.tgz#690829a07cae36b222e7fd9b75c0d0573eb25227" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.7: version "0.10.35" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.35.tgz#18ee858ce6a3c45c7d79e91c15fcca9ec568494f" @@ -1797,6 +2004,10 @@ etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" +eve-raphael@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/eve-raphael/-/eve-raphael-0.5.0.tgz#17c754b792beef3fa6684d79cf5a47c63c4cda30" + event-emitter@0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.4.tgz#8d63ddfb4cfe1fae3b32ca265c4c720222080bb5" @@ -1964,11 +2175,12 @@ faye-websocket@~0.11.0: dependencies: websocket-driver ">=0.5.1" -file-loader@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.10.1.tgz#815034119891fc6441fb5a64c11bc93c22ddd842" +file-loader@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.5.tgz#91c25b6b6fbe56dae99f10a425fd64933b5c9daa" dependencies: loader-utils "^1.0.2" + schema-utils "^0.3.0" filename-regex@^2.0.0: version "2.0.1" @@ -2015,6 +2227,14 @@ finalhandler@1.1.0: statuses "~1.3.1" unpipe "~1.0.0" +find-cache-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^2.0.0" + find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -2022,7 +2242,7 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" -find-up@^2.0.0: +find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" dependencies: @@ -2032,6 +2252,13 @@ flatten@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" +flush-write-stream@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.2.tgz#c81b90d8746766f1a609a46809946c45dd8ae417" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.4" + follow-redirects@>=1.2.0: version "1.2.5" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.2.5.tgz#ffd3e14cbdd5eaa72f61b6368c1f68516c2a26cc" @@ -2058,6 +2285,10 @@ for-own@^1.0.0: dependencies: for-in "^1.0.1" +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -2090,6 +2321,13 @@ fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + fs-access@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" @@ -2123,16 +2361,25 @@ fs-extra@^4.0.0, fs-extra@^4.0.2: jsonfile "^4.0.0" universalify "^0.1.0" +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" fsevents@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" + version "1.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" dependencies: nan "^2.3.0" - node-pre-gyp "^0.6.36" + node-pre-gyp "^0.6.39" fstream-ignore@^1.0.5: version "1.0.5" @@ -2151,7 +2398,7 @@ fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: mkdirp ">=0.5 0" rimraf "2" -function-bind@^1.0.2: +function-bind@^1.0.2, function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -2174,6 +2421,16 @@ gaze@^1.0.0: dependencies: globule "^1.0.0" +generate-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + dependencies: + is-property "^1.0.0" + get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" @@ -2216,6 +2473,16 @@ glob@7.0.x: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" @@ -2260,7 +2527,7 @@ globule@^1.0.0: lodash "~4.17.4" minimatch "~3.0.2" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -2298,6 +2565,15 @@ har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" +har-validator@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" + dependencies: + chalk "^1.1.1" + commander "^2.9.0" + is-my-json-valid "^2.12.4" + pinkie-promise "^2.0.0" + har-validator@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" @@ -2513,9 +2789,9 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" https-proxy-agent@^1.0.0: version "1.0.0" @@ -2543,6 +2819,10 @@ ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + image-size@~0.5.0: version "0.5.5" resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" @@ -2557,6 +2837,17 @@ immediate@~3.0.5: version "3.0.6" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" +import-local@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-0.1.1.tgz#b1179572aacdc11c6a91009fb430dbcab5f668a8" + dependencies: + pkg-dir "^2.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + in-publish@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" @@ -2594,7 +2885,7 @@ ini@^1.3.4, ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" -internal-ip@^1.2.0: +internal-ip@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" dependencies: @@ -2646,6 +2937,14 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" +is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + is-directory@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" @@ -2706,6 +3005,15 @@ is-glob@^4.0.0: dependencies: is-extglob "^2.1.1" +is-my-json-valid@^2.12.4: + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz#5a846777e2c2620d1e69104e5d3a03b1f6088f11" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + is-number@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" @@ -2756,6 +3064,16 @@ is-primitive@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" +is-property@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -2766,6 +3084,10 @@ is-svg@^2.0.0: dependencies: html-comment-regex "^1.1.0" +is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -2997,6 +3319,10 @@ jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" +jsonpointer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -3084,6 +3410,10 @@ karma@~1.7.0: tmp "0.0.31" useragent "^2.1.12" +killable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b" + kind-of@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" @@ -3246,8 +3576,8 @@ log4js@^0.6.31: semver "~4.3.3" loglevel@^1.4.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.5.1.tgz#189078c94ab9053ee215a0acdbf24244ea0f6502" + version "1.6.0" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.0.tgz#ae0caa561111498c5ba13723d6fb631d24003934" longest@^1.0.1: version "1.0.1" @@ -3274,7 +3604,7 @@ lru-cache@2.2.x: version "2.2.4" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d" -lru-cache@^4.0.1: +lru-cache@^4.0.1, lru-cache@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" dependencies: @@ -3291,6 +3621,12 @@ magic-string@^0.22.3: dependencies: vlq "^0.2.1" +make-dir@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" + dependencies: + pify "^3.0.0" + make-error@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.0.tgz#52ad3a339ccf10ce62b4040b708fe707244b8b96" @@ -3413,7 +3749,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" -minimatch@3.0.4, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: +"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: @@ -3431,6 +3767,21 @@ minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" +mississippi@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-1.3.0.tgz#d201583eb12327e3c5c1642a404a9cacf94e34f5" + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^1.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + mixin-object@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" @@ -3448,6 +3799,25 @@ moment@2.15.2: version "2.15.2" resolved "https://registry.yarnpkg.com/moment/-/moment-2.15.2.tgz#1bfdedf6a6e345f322fe956d5df5bd08a8ce84dc" +moment@^2.10.6: + version "2.19.2" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.19.2.tgz#8a7f774c95a64550b4c7ebd496683908f9419dbe" + +moment@~2.18.0: + version "2.18.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + ms@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" @@ -3465,15 +3835,15 @@ multicast-dns-service-types@^1.1.0: resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" multicast-dns@^6.0.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.1.1.tgz#6e7de86a570872ab17058adea7160bbeca814dde" + version "6.2.0" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.0.tgz#13f22d0c32dc5ee82a32878e3c380d875b3eab22" dependencies: dns-packet "^1.0.1" thunky "^0.1.0" nan@^2.3.0, nan@^2.3.2: - version "2.7.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46" + version "2.8.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" ncname@1.0.x: version "1.0.0" @@ -3485,187 +3855,11 @@ negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" -ng2-alfresco-core@1.10.0-beta6: - version "1.10.0-beta6" - resolved "https://registry.yarnpkg.com/ng2-alfresco-core/-/ng2-alfresco-core-1.10.0-beta6.tgz#d1ed5028f3bb4e9c063e338290dfba9a9cb44992" +ng2-charts@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ng2-charts/-/ng2-charts-1.6.0.tgz#108a2133ff62a8623895240fadbddbea2951f29d" dependencies: - "@angular/animations" "4.4.5" - "@angular/cdk" "2.0.0-beta.12" - "@angular/common" "4.4.5" - "@angular/compiler" "4.4.5" - "@angular/compiler-cli" "4.4.5" - "@angular/core" "4.4.5" - "@angular/forms" "4.4.5" - "@angular/http" "4.4.5" - "@angular/material" "2.0.0-beta.12" - "@angular/platform-browser" "4.4.5" - "@angular/platform-browser-dynamic" "4.4.5" - "@angular/router" "4.4.5" - "@ngx-translate/core" "8.0.0" - alfresco-js-api "1.10.0-beta6" - core-js "2.4.1" - hammerjs "2.0.8" - moment "2.15.2" - reflect-metadata "0.1.10" - rxjs "5.1.0" - systemjs "0.19.27" - zone.js "0.8.12" - -ng2-alfresco-datatable@1.10.0-beta6: - version "1.10.0-beta6" - resolved "https://registry.yarnpkg.com/ng2-alfresco-datatable/-/ng2-alfresco-datatable-1.10.0-beta6.tgz#37312c3be022b7eb893e4fa278c0177c77b9130f" - dependencies: - "@angular/animations" "4.4.5" - "@angular/cdk" "2.0.0-beta.12" - "@angular/common" "4.4.5" - "@angular/compiler" "4.4.5" - "@angular/core" "4.4.5" - "@angular/forms" "4.4.5" - "@angular/http" "4.4.5" - "@angular/material" "2.0.0-beta.12" - "@angular/platform-browser" "4.4.5" - "@angular/platform-browser-dynamic" "4.4.5" - "@angular/router" "4.4.5" - "@ngx-translate/core" "8.0.0" - alfresco-js-api "1.10.0-beta6" - core-js "2.4.1" - hammerjs "2.0.8" - ng2-alfresco-core "1.10.0-beta6" - reflect-metadata "0.1.10" - rxjs "5.1.0" - systemjs "0.19.27" - zone.js "0.8.12" - -ng2-alfresco-documentlist@1.10.0-beta6: - version "1.10.0-beta6" - resolved "https://registry.yarnpkg.com/ng2-alfresco-documentlist/-/ng2-alfresco-documentlist-1.10.0-beta6.tgz#512dd75fbef9df43949fa74665ccb831c3346b23" - dependencies: - "@angular/animations" "4.4.5" - "@angular/cdk" "2.0.0-beta.12" - "@angular/common" "4.4.5" - "@angular/compiler" "4.4.5" - "@angular/core" "4.4.5" - "@angular/flex-layout" "2.0.0-beta.9" - "@angular/forms" "4.4.5" - "@angular/http" "4.4.5" - "@angular/material" "2.0.0-beta.12" - "@angular/platform-browser" "4.4.5" - "@angular/platform-browser-dynamic" "4.4.5" - "@angular/router" "4.4.5" - "@ngx-translate/core" "8.0.0" - alfresco-js-api "1.10.0-beta6" - core-js "2.4.1" - hammerjs "2.0.8" - ng2-alfresco-core "1.10.0-beta6" - ng2-alfresco-datatable "1.10.0-beta6" - ng2-alfresco-upload "1.10.0-beta6" - reflect-metadata "0.1.10" - rxjs "5.1.0" - systemjs "0.19.27" - zone.js "0.8.12" - -ng2-alfresco-login@1.10.0-beta6: - version "1.10.0-beta6" - resolved "https://registry.yarnpkg.com/ng2-alfresco-login/-/ng2-alfresco-login-1.10.0-beta6.tgz#db18061d219362cf8533a49099b8aafa17c648d8" - dependencies: - "@angular/animations" "4.4.5" - "@angular/cdk" "2.0.0-beta.12" - "@angular/common" "4.4.5" - "@angular/compiler" "4.4.5" - "@angular/core" "4.4.5" - "@angular/forms" "4.4.5" - "@angular/http" "4.4.5" - "@angular/material" "2.0.0-beta.12" - "@angular/platform-browser" "4.4.5" - "@angular/platform-browser-dynamic" "4.4.5" - "@angular/router" "4.4.5" - "@ngx-translate/core" "8.0.0" - alfresco-js-api "1.10.0-beta6" - hammerjs "2.0.8" - ng2-alfresco-core "1.10.0-beta6" - reflect-metadata "0.1.10" - rxjs "5.1.0" - systemjs "0.19.27" - zone.js "0.8.12" - -ng2-alfresco-search@1.10.0-beta6: - version "1.10.0-beta6" - resolved "https://registry.yarnpkg.com/ng2-alfresco-search/-/ng2-alfresco-search-1.10.0-beta6.tgz#6257100b8f52e5d812d4b8dae065b84124b636bb" - dependencies: - "@angular/animations" "4.4.5" - "@angular/cdk" "2.0.0-beta.12" - "@angular/common" "4.4.5" - "@angular/compiler" "4.4.5" - "@angular/core" "4.4.5" - "@angular/forms" "4.4.5" - "@angular/http" "4.4.5" - "@angular/material" "2.0.0-beta.12" - "@angular/platform-browser" "4.4.5" - "@angular/platform-browser-dynamic" "4.4.5" - "@angular/router" "4.4.5" - "@ngx-translate/core" "8.0.0" - alfresco-js-api "1.10.0-beta6" - core-js "2.4.1" - hammerjs "2.0.8" - ng2-alfresco-core "1.10.0-beta6" - ng2-alfresco-datatable "1.10.0-beta6" - ng2-alfresco-documentlist "1.10.0-beta6" - reflect-metadata "0.1.10" - rxjs "5.1.0" - systemjs "0.19.27" - zone.js "0.8.12" - -ng2-alfresco-upload@1.10.0-beta6: - version "1.10.0-beta6" - resolved "https://registry.yarnpkg.com/ng2-alfresco-upload/-/ng2-alfresco-upload-1.10.0-beta6.tgz#7da94739cee61125dae4a4aa9c23573a414aa23e" - dependencies: - "@angular/animations" "4.4.5" - "@angular/cdk" "2.0.0-beta.12" - "@angular/common" "4.4.5" - "@angular/compiler" "4.4.5" - "@angular/core" "4.4.5" - "@angular/forms" "4.4.5" - "@angular/http" "4.4.5" - "@angular/material" "2.0.0-beta.12" - "@angular/platform-browser" "4.4.5" - "@angular/platform-browser-dynamic" "4.4.5" - "@angular/router" "4.4.5" - "@ngx-translate/core" "8.0.0" - alfresco-js-api "1.10.0-beta6" - core-js "2.4.1" - hammerjs "2.0.8" - minimatch "3.0.4" - ng2-alfresco-core "1.10.0-beta6" - reflect-metadata "0.1.10" - rxjs "5.1.0" - systemjs "0.19.27" - zone.js "0.8.12" - -ng2-alfresco-viewer@1.10.0-beta6: - version "1.10.0-beta6" - resolved "https://registry.yarnpkg.com/ng2-alfresco-viewer/-/ng2-alfresco-viewer-1.10.0-beta6.tgz#04f9c400869e9e603acc47fc88b3ab3f5db2657b" - dependencies: - "@angular/animations" "4.4.5" - "@angular/cdk" "2.0.0-beta.12" - "@angular/common" "4.4.5" - "@angular/compiler" "4.4.5" - "@angular/core" "4.4.5" - "@angular/forms" "4.4.5" - "@angular/http" "4.4.5" - "@angular/material" "2.0.0-beta.12" - "@angular/platform-browser" "4.4.5" - "@angular/platform-browser-dynamic" "4.4.5" - "@angular/router" "4.4.5" - "@ngx-translate/core" "8.0.0" - alfresco-js-api "1.10.0-beta6" - core-js "2.4.1" - hammerjs "2.0.8" - ng2-alfresco-core "1.10.0-beta6" - pdfjs-dist "1.5.404" - reflect-metadata "0.1.10" - rxjs "5.1.0" - systemjs "0.19.27" - zone.js "0.8.12" + chart.js "^2.6.0" no-case@^2.2.0: version "2.3.2" @@ -3706,28 +3900,28 @@ node-gyp@^3.3.1: which "1" node-libs-browser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.0.0.tgz#a3a59ec97024985b46e958379646f96c4b616646" + version "2.1.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" dependencies: assert "^1.1.1" - browserify-zlib "^0.1.4" + browserify-zlib "^0.2.0" buffer "^4.3.0" console-browserify "^1.1.0" constants-browserify "^1.0.0" crypto-browserify "^3.11.0" domain-browser "^1.1.1" events "^1.0.0" - https-browserify "0.0.1" - os-browserify "^0.2.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" path-browserify "0.0.0" - process "^0.11.0" + process "^0.11.10" punycode "^1.2.4" querystring-es3 "^0.2.0" - readable-stream "^2.0.5" + readable-stream "^2.3.3" stream-browserify "^2.0.1" - stream-http "^2.3.1" - string_decoder "^0.10.25" - timers-browserify "^2.0.2" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" tty-browserify "0.0.0" url "^0.11.0" util "^0.10.3" @@ -3737,7 +3931,7 @@ node-modules-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/node-modules-path/-/node-modules-path-1.0.1.tgz#40096b08ce7ad0ea14680863af449c7c75a5d1c8" -node-pre-gyp@^0.6.36: +node-pre-gyp@^0.6.39: version "0.6.39" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" dependencies: @@ -3762,8 +3956,8 @@ node-rest-client@^3.1.0: xml2js ">=0.2.4" node-sass@^4.3.0: - version "4.5.3" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.5.3.tgz#d09c9d1179641239d1b97ffc6231fdcec53e1568" + version "4.7.1" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.7.1.tgz#bec978ab33b5cf56825bf72922323a56ebaf4f66" dependencies: async-foreach "^0.1.3" chalk "^1.1.1" @@ -3780,9 +3974,10 @@ node-sass@^4.3.0: nan "^2.3.2" node-gyp "^3.3.1" npmlog "^4.0.0" - request "^2.79.0" - sass-graph "^2.1.1" + request "~2.79.0" + sass-graph "^2.2.4" stdout-stream "^1.4.0" + "true-case-path" "^1.0.2" "nopt@2 || 3": version "3.0.6" @@ -3874,6 +4069,10 @@ object-component@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" +object-keys@^1.0.8: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" @@ -3895,20 +4094,13 @@ on-headers@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" -once@^1.3.0, once@^1.3.3, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: wrappy "1" -opn@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" - dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" - -opn@~5.1.0: +opn@^5.1.0, opn@~5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.1.0.tgz#72ce2306a17dbea58ff1041853352b4a8fc77519" dependencies: @@ -3937,9 +4129,9 @@ original@>=0.0.5: dependencies: url-parse "1.0.x" -os-browserify@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" os-homedir@^1.0.0, os-homedir@^1.0.1: version "1.0.2" @@ -3988,14 +4180,18 @@ p-map@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" -pako@~0.2.0: - version "0.2.9" - resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" - -pako@~1.0.2: +pako@~1.0.2, pako@~1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" +parallel-transform@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + dependencies: + cyclist "~0.2.2" + inherits "^2.0.3" + readable-stream "^2.1.5" + param-case@2.1.x: version "2.1.1" resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" @@ -4117,13 +4313,6 @@ pdfjs-dist@1.5.404: dependencies: node-ensure "^0.0.0" -pdfjs-dist@1.8.557: - version "1.8.557" - resolved "https://registry.yarnpkg.com/pdfjs-dist/-/pdfjs-dist-1.8.557.tgz#97bb9ba73a29d3939e7aaaa66346df83091a5606" - dependencies: - node-ensure "^0.0.0" - worker-loader "^0.8.0" - performance-now@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" @@ -4150,6 +4339,12 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + dependencies: + find-up "^2.1.0" + portfinder@^1.0.9, portfinder@~1.0.12: version "1.0.13" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" @@ -4181,6 +4376,13 @@ postcss-convert-values@^2.3.4: postcss "^5.0.11" postcss-value-parser "^3.1.2" +postcss-custom-properties@^6.1.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-6.2.0.tgz#5d929a7f06e9b84e0f11334194c0ba9a30acfbe9" + dependencies: + balanced-match "^1.0.0" + postcss "^6.0.13" + postcss-discard-comments@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" @@ -4440,7 +4642,7 @@ postcss@^5.0.0, postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0. source-map "^0.5.6" supports-color "^3.2.3" -postcss@^6.0.1: +postcss@^6.0.1, postcss@^6.0.13: version "6.0.14" resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.14.tgz#5534c72114739e75d0afcf017db853099f562885" dependencies: @@ -4467,10 +4669,14 @@ process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" -process@^0.11.0: +process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + promise@^7.1.1: version "7.3.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" @@ -4522,6 +4728,21 @@ public-encrypt@^4.0.0: parse-asn1 "^5.0.0" randombytes "^2.0.1" +pump@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.3.5" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.3.5.tgz#1b671c619940abcaeac0ad0e3a3c164be760993b" + dependencies: + duplexify "^3.1.2" + inherits "^2.0.1" + pump "^1.0.0" + punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" @@ -4546,6 +4767,10 @@ qs@6.5.1, qs@^6.5.1, qs@~6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" +qs@~6.3.0: + version "6.3.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" + qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" @@ -4597,6 +4822,12 @@ range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" +raphael@2.2.7: + version "2.2.7" + resolved "https://registry.yarnpkg.com/raphael/-/raphael-2.2.7.tgz#231b19141f8d086986d8faceb66f8b562ee2c810" + dependencies: + eve-raphael "0.5.0" + raw-body@2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" @@ -4649,16 +4880,7 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" -readable-stream@1.0, readable-stream@~1.0.2: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.6, readable-stream@^2.2.9: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.2.9, readable-stream@^2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" dependencies: @@ -4670,6 +4892,15 @@ readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable string_decoder "~1.0.3" util-deprecate "~1.0.1" +readable-stream@1.0, readable-stream@~1.0.2: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readable-stream@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" @@ -4783,7 +5014,7 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -request@2, request@^2.78.0, request@^2.79.0: +request@2, request@^2.78.0: version "2.83.0" resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" dependencies: @@ -4837,6 +5068,31 @@ request@2.81.0: tunnel-agent "^0.6.0" uuid "^3.0.0" +request@~2.79.0: + version "2.79.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.11.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~2.0.6" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + qs "~6.3.0" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "~0.4.1" + uuid "^3.0.0" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -4853,6 +5109,16 @@ requires-port@1.0.x, requires-port@1.x.x, requires-port@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + dependencies: + resolve-from "^3.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.2: version "1.5.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" @@ -4878,13 +5144,13 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^2.0.0" inherits "^2.0.1" -rxjs@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.1.0.tgz#0aa9018b7f440b505fa42bd742b6738be550e720" +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" dependencies: - symbol-observable "^1.0.1" + aproba "^1.1.1" -rxjs@^5.4.2, rxjs@^5.5.2: +rxjs@5.5.2, rxjs@^5.5.2: version "5.5.2" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.2.tgz#28d403f0071121967f18ad665563255d54236ac3" dependencies: @@ -4894,7 +5160,7 @@ safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, s version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" -sass-graph@^2.1.1: +sass-graph@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" dependencies: @@ -5174,6 +5440,10 @@ source-list-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" +source-list-map@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" + source-map-loader@^0.2.0: version "0.2.3" resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.3.tgz#d4b0c8cd47d54edce3e6bfa0f523f452b5b0e521" @@ -5194,11 +5464,11 @@ source-map@0.1.x, source-map@~0.1.7: dependencies: amdefine ">=0.0.4" -source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3: +source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" -source-map@^0.4.2, source-map@^0.4.4: +source-map@^0.4.2, source-map@^0.4.4, source-map@~0.4.1: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" dependencies: @@ -5267,6 +5537,12 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" +ssri@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.0.0.tgz#13c19390b606c821f2a10d02b351c1729b94d8cf" + dependencies: + safe-buffer "^5.1.0" + "statuses@>= 1.3.1 < 2": version "1.4.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" @@ -5288,7 +5564,14 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" -stream-http@^2.3.1: +stream-each@^1.1.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd" + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: version "2.7.2" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad" dependencies: @@ -5298,6 +5581,10 @@ stream-http@^2.3.1: to-arraybuffer "^1.0.0" xtend "^4.0.0" +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" @@ -5317,16 +5604,16 @@ string-width@^2.0.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string_decoder@^0.10.25, string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -string_decoder@~1.0.3: +string_decoder@^1.0.0, string_decoder@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" dependencies: safe-buffer "~5.1.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + stringstream@~0.0.4, stringstream@~0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" @@ -5411,7 +5698,7 @@ supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" -supports-color@^3.1.1, supports-color@^3.1.2, supports-color@^3.2.3: +supports-color@^3.1.2, supports-color@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" dependencies: @@ -5470,6 +5757,13 @@ tar@^2.0.0, tar@^2.2.1: fstream "^1.0.2" inherits "2" +through2@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + through@X.X.X: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -5482,7 +5776,7 @@ time-stamp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357" -timers-browserify@^2.0.2: +timers-browserify@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.4.tgz#96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6" dependencies: @@ -5532,6 +5826,10 @@ tough-cookie@~2.3.0, tough-cookie@~2.3.3: dependencies: punycode "^1.4.1" +tree-kill@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.0.tgz#5846786237b4239014f05db156b643212d4c6f36" + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -5540,6 +5838,12 @@ trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" +"true-case-path@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.2.tgz#7ec91130924766c7f573be3020c34f8fdfd00d62" + dependencies: + glob "^6.0.4" + ts-node@~3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-3.2.2.tgz#bbd28e38af4aaa3e96076c466e1b220197c1a3ce" @@ -5562,9 +5866,9 @@ tsconfig@^6.0.0: strip-bom "^3.0.0" strip-json-comments "^2.0.0" -tsickle@^0.21.0: - version "0.21.6" - resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.21.6.tgz#53b01b979c5c13fdb13afb3fb958177e5991588d" +tsickle@^0.24.0: + version "0.24.1" + resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.24.1.tgz#039343b205bf517a333b0703978892f80a7d848e" dependencies: minimist "^1.2.0" mkdirp "^0.5.1" @@ -5606,6 +5910,10 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" +tunnel-agent@~0.4.1: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" @@ -5617,21 +5925,28 @@ type-is@~1.6.15: media-typer "0.3.0" mime-types "~2.1.15" -"typescript@>=2.0.0 <2.6.0": - version "2.5.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.5.3.tgz#df3dcdc38f3beb800d4bc322646b04a3f6ca7f0d" +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" typescript@^2.3.3: version "2.6.1" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.1.tgz#ef39cdea27abac0b500242d6726ab90e0c846631" -typescript@~2.3.3: - version "2.3.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.3.4.tgz#3d38321828231e434f287514959c37a82b629f42" +typescript@~2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.4.2.tgz#f8395f85d459276067c988aa41837a8f82870844" + +uglify-es@^3.1.3: + version "3.1.10" + resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.1.10.tgz#f1840c3b52771d17555a02ce158cf46f689384bd" + dependencies: + commander "~2.11.0" + source-map "~0.6.1" uglify-js@3.1.x: - version "3.1.6" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.1.6.tgz#918832602036e95d2318e11f27ee8461a8592c5d" + version "3.1.10" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.1.10.tgz#c4a5f9b5c6276b40cb971c1d97c9eeb26af9509c" dependencies: commander "~2.11.0" source-map "~0.6.1" @@ -5657,6 +5972,18 @@ uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" +uglifyjs-webpack-plugin@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.0.0.tgz#1c58b5db1ed043e024aef66f8ade25e148206264" + dependencies: + cacache "^10.0.0" + find-cache-dir "^1.0.0" + schema-utils "^0.3.0" + source-map "^0.5.6" + uglify-es "^3.1.3" + webpack-sources "^1.0.1" + worker-farm "^1.4.1" + uglifyjs-webpack-plugin@^0.4.6: version "0.4.6" resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" @@ -5687,6 +6014,18 @@ uniqs@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" +unique-filename@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab" + dependencies: + imurmurhash "^0.1.4" + universalify@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" @@ -5699,7 +6038,7 @@ upper-case@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" -url-loader@^0.6.0: +url-loader@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.6.2.tgz#a007a7109620e9d988d14bce677a1decb9a993f7" dependencies: @@ -5822,6 +6161,10 @@ wbuf@^1.1.0, wbuf@^1.7.2: dependencies: minimalistic-assert "^1.0.0" +web-animations-js@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/web-animations-js/-/web-animations-js-2.3.1.tgz#3a6d9bc15196377a90f8e2803fa5262165b04510" + webdriver-js-extender@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/webdriver-js-extender/-/webdriver-js-extender-1.0.0.tgz#81c533a9e33d5bfb597b4e63e2cdb25b54777515" @@ -5852,6 +6195,13 @@ webpack-concat-plugin@1.4.0: md5 "^2.2.1" uglify-js "^2.8.29" +webpack-core@^0.6.8: + version "0.6.9" + resolved "https://registry.yarnpkg.com/webpack-core/-/webpack-core-0.6.9.tgz#fc571588c8558da77be9efb6debdc5a3b172bdc2" + dependencies: + source-list-map "~0.1.7" + source-map "~0.4.1" + webpack-dev-middleware@^1.11.0, webpack-dev-middleware@~1.12.0: version "1.12.0" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz#d34efefb2edda7e1d3b5dbe07289513219651709" @@ -5862,33 +6212,37 @@ webpack-dev-middleware@^1.11.0, webpack-dev-middleware@~1.12.0: range-parser "^1.0.3" time-stamp "^2.0.0" -webpack-dev-server@~2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.7.1.tgz#21580f5a08cd065c71144cf6f61c345bca59a8b8" +webpack-dev-server@~2.9.3: + version "2.9.4" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.9.4.tgz#7883e61759c6a4b33e9b19ec4037bd4ab61428d1" dependencies: ansi-html "0.0.7" + array-includes "^3.0.3" bonjour "^3.5.0" chokidar "^1.6.0" compression "^1.5.2" connect-history-api-fallback "^1.3.0" + debug "^3.1.0" del "^3.0.0" express "^4.13.3" html-entities "^1.2.0" http-proxy-middleware "~0.17.4" - internal-ip "^1.2.0" + import-local "^0.1.1" + internal-ip "1.2.0" ip "^1.1.5" + killable "^1.0.0" loglevel "^1.4.1" - opn "4.0.2" + opn "^5.1.0" portfinder "^1.0.9" selfsigned "^1.9.1" serve-index "^1.7.2" sockjs "0.3.18" sockjs-client "1.1.4" spdy "^3.4.1" - strip-ansi "^3.0.0" - supports-color "^3.1.1" + strip-ansi "^3.0.1" + supports-color "^4.2.1" webpack-dev-middleware "^1.11.0" - yargs "^6.0.0" + yargs "^6.6.0" webpack-merge@^4.1.0: version "4.1.1" @@ -5896,16 +6250,22 @@ webpack-merge@^4.1.0: dependencies: lodash "^4.17.4" -webpack-sources@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.0.1.tgz#c7356436a4d13123be2e2426a05d1dad9cbe65cf" +webpack-sources@^1.0.0, webpack-sources@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.0.2.tgz#d0148ec083b3b5ccef1035a6b3ec16442983b27a" dependencies: source-list-map "^2.0.0" - source-map "~0.5.3" + source-map "~0.6.1" -webpack@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.6.0.tgz#a89a929fbee205d35a4fa2cc487be9cbec8898bc" +webpack-subresource-integrity@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/webpack-subresource-integrity/-/webpack-subresource-integrity-1.0.1.tgz#1fc09d46497da66e46743a2a51d2cc385b9cb0ed" + dependencies: + webpack-core "^0.6.8" + +webpack@~3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.8.1.tgz#b16968a81100abe61608b0153c9159ef8bb2bd83" dependencies: acorn "^5.0.0" acorn-dynamic-import "^2.0.0" @@ -5938,8 +6298,8 @@ websocket-driver@>=0.5.1: websocket-extensions ">=0.1.1" websocket-extensions@>=0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.2.tgz#0e18781de629a18308ce1481650f67ffa2693a5d" + version "0.1.3" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" when@^3.7.5: version "3.7.8" @@ -5985,12 +6345,12 @@ wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" -worker-loader@^0.8.0: - version "0.8.1" - resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-0.8.1.tgz#e8e995331ea34df5bf68296824bfb7f0ad578d43" +worker-farm@^1.4.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.5.2.tgz#32b312e5dc3d5d45d79ef44acc2587491cd729ae" dependencies: - loader-utils "^1.0.2" - schema-utils "^0.3.0" + errno "^0.1.4" + xtend "^4.0.1" wrap-ansi@^2.0.0: version "2.1.0" @@ -6011,8 +6371,8 @@ ws@1.1.2: ultron "1.0.x" ws@^1.0.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.4.tgz#57f40d036832e5f5055662a397c4de76ed66bf61" + version "1.1.5" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51" dependencies: options ">=0.0.5" ultron "1.0.x" @@ -6051,7 +6411,7 @@ xmlhttprequest-ssl@1.5.3: version "1.5.3" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" -xtend@^4.0.0: +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -6081,7 +6441,7 @@ yargs-parser@^7.0.0: dependencies: camelcase "^4.1.0" -yargs@^6.0.0: +yargs@^6.6.0: version "6.6.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" dependencies: @@ -6152,9 +6512,9 @@ yn@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" -zone.js@0.8.12: - version "0.8.12" - resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.12.tgz#86ff5053c98aec291a0bf4bbac501d694a05cfbb" +zone.js@0.8.14: + version "0.8.14" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.14.tgz#0c4db24b178232274ccb43f78c99db7f3642b6cf" zone.js@^0.8.14: version "0.8.18" From f747ee8673ff8ec63b83d0f66c47cef4f4c85ac3 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Mon, 20 Nov 2017 16:46:39 +0000 Subject: [PATCH 02/70] fix about page imports --- src/app/components/about/about.component.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/components/about/about.component.ts b/src/app/components/about/about.component.ts index d1c152b70..27f61bed6 100644 --- a/src/app/components/about/about.component.ts +++ b/src/app/components/about/about.component.ts @@ -18,7 +18,7 @@ import { Component, OnInit } from '@angular/core'; import { Http } from '@angular/http'; import { DiscoveryApiService } from '@alfresco/adf-core'; -import { EcmProductVersionModel, ObjectDataTableAdapter } from '@alfresco/adf-content-services'; +import { EcmProductVersionModel, ObjectDataTableAdapter } from '@alfresco/adf-core'; @Component({ selector: 'app-about', @@ -72,7 +72,7 @@ export class AboutComponent implements OnInit { }); this.http.get('/versions.json').subscribe(response => { - const regexp = new RegExp('^(ng2-alfresco|alfresco-)'); + const regexp = new RegExp('^(@alfresco|alfresco-)'); const alfrescoPackagesTableRepresentation = Object.keys(response.json().dependencies) .filter((val) => regexp.test(val)) From 892b49046f80104f3875e725ce16bd78f14e55eb Mon Sep 17 00:00:00 2001 From: Adina Parpalita Date: Mon, 20 Nov 2017 22:30:25 +0200 Subject: [PATCH 03/70] Toolbar - multiple selection - all list views (#66) --- e2e/components/data-table/data-table.ts | 24 +- .../toolbar-multiple-selection.test.ts | 527 ++++++++++++++++++ .../actions/toolbar-single-selection.test.ts | 44 +- 3 files changed, 564 insertions(+), 31 deletions(-) create mode 100644 e2e/suites/actions/toolbar-multiple-selection.test.ts diff --git a/e2e/components/data-table/data-table.ts b/e2e/components/data-table/data-table.ts index 3c3fef193..59df39a48 100644 --- a/e2e/components/data-table/data-table.ts +++ b/e2e/components/data-table/data-table.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { ElementFinder, ElementArrayFinder, promise, by, browser, ExpectedConditions as EC } from 'protractor'; +import { ElementFinder, ElementArrayFinder, promise, by, browser, ExpectedConditions as EC, protractor } from 'protractor'; import { BROWSER_WAIT_TIMEOUT } from '../../configs'; import { Component } from '../component'; @@ -32,6 +32,7 @@ export class DataTable extends Component { body: 'table > tbody', row: 'tr', + selectedRow: 'tr.is-selected', cell: 'td', emptyListContainer: 'td.adf-no-content-container', @@ -94,6 +95,10 @@ export class DataTable extends Component { return this.body.all(by.css(DataTable.selectors.row)); } + getSelectedRows(): ElementArrayFinder { + return this.body.all(by.css(DataTable.selectors.selectedRow)); + } + getNthRow(nth: number): ElementFinder { return this.getRows().get(nth - 1); } @@ -122,6 +127,23 @@ export class DataTable extends Component { return click.perform(); } + selectMultipleItems(names: string[]): promise.Promise { + return browser.actions().sendKeys(protractor.Key.COMMAND).perform() + .then(() => { + names.forEach(name => { + this.getRowByContainingText(name).click(); + }); + }) + .then(() => browser.actions().sendKeys(protractor.Key.NULL).perform()); + } + + clearSelection() { + this.getSelectedRows().count() + .then(count => { + if (count !== 0) { browser.refresh().then(() => this.waitForHeader()); } + }); + } + // empty state methods isEmptyList(): promise.Promise { return this.emptyList.isPresent(); diff --git a/e2e/suites/actions/toolbar-multiple-selection.test.ts b/e2e/suites/actions/toolbar-multiple-selection.test.ts new file mode 100644 index 000000000..ca81d85b1 --- /dev/null +++ b/e2e/suites/actions/toolbar-multiple-selection.test.ts @@ -0,0 +1,527 @@ +/*! + * @license + * Copyright 2017 Alfresco Software, Ltd. + * + * 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. + */ + +import { browser, protractor, promise } from 'protractor'; +import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; +import { APP_ROUTES, SITE_VISIBILITY, SITE_ROLES, SIDEBAR_LABELS } from '../../configs'; +import { RepoClient } from '../../utilities/repo-client/repo-client'; +import { Utils } from '../../utilities/utils'; + +describe('Toolbar actions - multiple selection : ', () => { + const user1 = `user-${Utils.random()}`; + const user2 = `user-${Utils.random()}`; + + const file1 = `file-${Utils.random()}.txt`; + let file1Id; + const file2 = `file-${Utils.random()}.txt`; + let file2Id; + + const folder1 = `folder-${Utils.random()}`; + let folder1Id; + const folder2 = `folder-${Utils.random()}`; + let folder2Id; + + const fileForDelete1 = `file-${Utils.random()}.txt`; let fileForDelete1Id; + const fileForDelete2 = `file-${Utils.random()}.txt`; let fileForDelete2Id; + const folderForDelete1 = `folder-${Utils.random()}`; let folderForDelete1Id; + const folderForDelete2 = `folder-${Utils.random()}`; let folderForDelete2Id; + + const siteName = `site-private-${Utils.random()}`; + const file1Admin = `file-${Utils.random()}.txt`; + const file2Admin = `file-${Utils.random()}.txt`; + const folder1Admin = `folder-${Utils.random()}`; + const folder2Admin = `folder-${Utils.random()}`; + + const apis = { + admin: new RepoClient(), + user: new RepoClient(user1, user1) + }; + + const loginPage = new LoginPage(); + const logoutPage = new LogoutPage(); + const page = new BrowsingPage(); + const { dataTable } = page; + const { toolbar } = page; + + beforeAll(done => { + apis.admin.people.createUser(user1) + .then(() => apis.user.nodes.createFiles([ file1 ]).then(resp => file1Id = resp.data.entry.id)) + .then(() => apis.user.nodes.createFiles([ file2 ]).then(resp => file2Id = resp.data.entry.id)) + .then(() => apis.user.nodes.createFolders([ folder1 ]).then(resp => folder1Id = resp.data.entry.id)) + .then(() => apis.user.nodes.createFolders([ folder2 ]).then(resp => folder2Id = resp.data.entry.id)) + .then(() => apis.user.nodes.createFiles([ fileForDelete1 ]).then(resp => fileForDelete1Id = resp.data.entry.id)) + .then(() => apis.user.nodes.createFiles([ fileForDelete2 ]).then(resp => fileForDelete2Id = resp.data.entry.id)) + .then(() => apis.user.nodes.createFolders([ folderForDelete1 ]).then(resp => folderForDelete1Id = resp.data.entry.id)) + .then(() => apis.user.nodes.createFolders([ folderForDelete2 ]).then(resp => folderForDelete2Id = resp.data.entry.id)) + + .then(() => apis.user.shared.shareFileById(file1Id)) + .then(() => apis.user.shared.shareFileById(file2Id)) + + .then(() => apis.user.favorites.addFavoriteById('file', file1Id)) + .then(() => apis.user.favorites.addFavoriteById('file', file2Id)) + .then(() => apis.user.favorites.addFavoriteById('folder', folder1Id)) + .then(() => apis.user.favorites.addFavoriteById('folder', folder2Id)) + + .then(() => apis.user.nodes.deleteNodeById(fileForDelete1Id, false)) + .then(() => apis.user.nodes.deleteNodeById(fileForDelete2Id, false)) + .then(() => apis.user.nodes.deleteNodeById(folderForDelete1Id, false)) + .then(() => apis.user.nodes.deleteNodeById(folderForDelete2Id, false)) + + .then(done); + }); + + afterAll(done => { + Promise.all([ + apis.user.nodes.deleteNodeById(file1Id), + apis.user.nodes.deleteNodeById(file2Id), + apis.user.nodes.deleteNodeById(folder1Id), + apis.user.nodes.deleteNodeById(folder2Id), + + apis.user.trashcan.permanentlyDelete(fileForDelete1Id), + apis.user.trashcan.permanentlyDelete(fileForDelete2Id), + apis.user.trashcan.permanentlyDelete(folderForDelete1Id), + apis.user.trashcan.permanentlyDelete(folderForDelete2Id), + + logoutPage.load() + ]) + .then(done); + }); + + xit(''); + + describe('Personal Files', () => { + beforeAll(done => { + loginPage.load() + .then(() => loginPage.loginWith(user1)) + .then(done); + }); + + beforeEach(done => { + page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES) + .then(() => dataTable.waitForHeader()) + .then(done); + }); + + afterAll(done => { + logoutPage.load().then(done); + }); + + it('correct actions appear when multiple files are selected', () => { + dataTable.selectMultipleItems([file1, file2]) + .then(() => { + expect(toolbar.actions.isButtonPresent('View')).toBe(false, 'View is displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files'); + }) + .then(() => toolbar.actions.openMoreMenu()) + .then(menu => { + expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); + expect(menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); + expect(menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); + expect(menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + }) + .then(() => browser.$('body').click()) + .then(() => dataTable.clearSelection()); + }); + + it('correct actions appear when multiple folders are selected', () => { + dataTable.selectMultipleItems([folder1, folder2]) + .then(() => { + expect(toolbar.actions.isButtonPresent('View')).toBe(false, 'View is displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files'); + }) + .then(() => toolbar.actions.openMoreMenu()) + .then(menu => { + expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); + expect(menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); + expect(menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); + expect(menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + }) + .then(() => browser.$('body').click()) + .then(() => dataTable.clearSelection()); + }); + + it('correct actions appear when both files and folders are selected', () => { + dataTable.selectMultipleItems([file1, file2, folder1, folder2]) + .then(() => { + expect(toolbar.actions.isButtonPresent('View')).toBe(false, 'View is displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files'); + }) + .then(() => toolbar.actions.openMoreMenu()) + .then(menu => { + expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); + expect(menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); + expect(menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); + expect(menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + }) + .then(() => browser.$('body').click()) + .then(() => dataTable.clearSelection()); + }); + }); + + describe('File Libraries', () => { + beforeAll(done => { + apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC) + .then(() => apis.admin.people.createUser(user2)) + .then(() => apis.admin.sites.addSiteMember(siteName, user1, SITE_ROLES.SITE_MANAGER)) + .then(() => apis.admin.sites.addSiteMember(siteName, user2, SITE_ROLES.SITE_CONSUMER)) + .then(() => apis.admin.nodes.createFiles([ file1Admin, file2Admin ], `Sites/${siteName}/documentLibrary`)) + .then(() => apis.admin.nodes.createFolders([ folder1Admin, folder2Admin ], `Sites/${siteName}/documentLibrary`)) + .then(done); + }); + + beforeEach(done => { + page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES) + .then(() => dataTable.waitForHeader()) + .then(() => dataTable.doubleClickOnRowByContainingText(siteName)) + .then(() => dataTable.waitForHeader()) + .then(done); + }); + + afterAll(done => { + apis.admin.sites.deleteSite(siteName).then(done); + }); + + xit(''); + + describe('user is Manager', () => { + beforeAll(done => { + loginPage.load() + .then(() => loginPage.loginWith(user1)) + .then(done); + }); + + afterAll(done => { + logoutPage.load().then(done); + }); + + it('correct actions appear when multiple files are selected', () => { + dataTable.selectMultipleItems([file1Admin, file2Admin]) + .then(() => { + expect(toolbar.actions.isButtonPresent('View')).toBe(false, 'View is displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files'); + }) + .then(() => toolbar.actions.openMoreMenu()) + .then(menu => { + expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); + expect(menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); + expect(menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); + expect(menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + }) + .then(() => browser.$('body').click()) + .then(() => dataTable.clearSelection()); + }); + + it('correct actions appear when multiple folders are selected', () => { + dataTable.selectMultipleItems([folder1Admin, folder2Admin]) + .then(() => { + expect(toolbar.actions.isButtonPresent('View')).toBe(false, 'View is displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files'); + }) + .then(() => toolbar.actions.openMoreMenu()) + .then(menu => { + expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); + expect(menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); + expect(menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); + expect(menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + }) + .then(() => browser.$('body').click()) + .then(() => dataTable.clearSelection()); + }); + + it('correct actions appear when both files and folders are selected', () => { + dataTable.selectMultipleItems([file1Admin, file2Admin, folder1Admin, folder2Admin]) + .then(() => { + expect(toolbar.actions.isButtonPresent('View')).toBe(false, 'View is displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files'); + }) + .then(() => toolbar.actions.openMoreMenu()) + .then(menu => { + expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); + expect(menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); + expect(menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); + expect(menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + }) + .then(() => browser.$('body').click()) + .then(() => dataTable.clearSelection()); + }); + }); + + describe('user is Consumer', () => { + beforeAll(done => { + loginPage.load() + .then(() => loginPage.loginWith(user2)) + .then(done); + }); + + afterAll(done => { + logoutPage.load().then(done); + }); + + it('correct actions appear when multiple files are selected', () => { + dataTable.selectMultipleItems([file1Admin, file2Admin]) + .then(() => { + expect(toolbar.actions.isButtonPresent('View')).toBe(false, 'View is displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files'); + }) + .then(() => toolbar.actions.openMoreMenu()) + .then(menu => { + expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); + expect(menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`); + expect(menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`); + expect(menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + }) + .then(() => browser.$('body').click()) + .then(() => dataTable.clearSelection()); + }); + + it('correct actions appear when multiple folders are selected', () => { + dataTable.selectMultipleItems([folder1Admin, folder2Admin]) + .then(() => { + expect(toolbar.actions.isButtonPresent('View')).toBe(false, 'View is displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files'); + }) + .then(() => toolbar.actions.openMoreMenu()) + .then(menu => { + expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); + expect(menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`); + expect(menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`); + expect(menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + }) + .then(() => browser.$('body').click()) + .then(() => dataTable.clearSelection()); + }); + + it('correct actions appear when both files and folders are selected', () => { + dataTable.selectMultipleItems([file1Admin, file2Admin, folder1Admin, folder2Admin]) + .then(() => { + expect(toolbar.actions.isButtonPresent('View')).toBe(false, 'View is displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files'); + }) + .then(() => toolbar.actions.openMoreMenu()) + .then(menu => { + expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); + expect(menu.isMenuItemPresent('Delete')).toBe(false, `Delete is not displayed for selected files`); + expect(menu.isMenuItemPresent('Move')).toBe(false, `Move is not displayed for selected files`); + expect(menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + }) + .then(() => browser.$('body').click()) + .then(() => dataTable.clearSelection()); + }); + }); + }); + + describe('Shared Files', () => { + beforeAll(done => { + loginPage.load() + .then(() => loginPage.loginWith(user1)) + .then(done); + }); + + beforeEach(done => { + page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES) + .then(() => dataTable.waitForHeader()) + .then(done); + }); + + afterAll(done => { + logoutPage.load().then(done); + }); + + it('correct actions appear when multiple files are selected', () => { + dataTable.selectMultipleItems([file1, file2]) + .then(() => { + expect(toolbar.actions.isButtonPresent('View')).toBe(false, 'View is displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files'); + }) + .then(() => toolbar.actions.openMoreMenu()) + .then(menu => { + expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); + expect(menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); + expect(menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); + expect(menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + }) + .then(() => browser.$('body').click()) + .then(() => dataTable.clearSelection()); + }); + }); + + describe('Recent Files', () => { + beforeAll(done => { + loginPage.load() + .then(() => loginPage.loginWith(user1)) + .then(done); + }); + + beforeEach(done => { + page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES) + .then(() => dataTable.waitForHeader()) + .then(done); + }); + + afterAll(done => { + logoutPage.load().then(done); + }); + + it('correct actions appear when multiple files are selected', () => { + dataTable.selectMultipleItems([file1, file2]) + .then(() => { + expect(toolbar.actions.isButtonPresent('View')).toBe(false, 'View is displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files'); + }) + .then(() => toolbar.actions.openMoreMenu()) + .then(menu => { + expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); + expect(menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); + expect(menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); + expect(menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + }) + .then(() => browser.$('body').click()) + .then(() => dataTable.clearSelection()); + }); + }); + + describe('Favorites', () => { + beforeAll(done => { + loginPage.load() + .then(() => loginPage.loginWith(user1)) + .then(done); + }); + + beforeEach(done => { + page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES) + .then(() => dataTable.waitForHeader()) + .then(done); + }); + + afterAll(done => { + logoutPage.load().then(done); + }); + + it('correct actions appear when multiple files are selected', () => { + dataTable.selectMultipleItems([file1, file2]) + .then(() => { + expect(toolbar.actions.isButtonPresent('View')).toBe(false, 'View is displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files'); + }) + .then(() => toolbar.actions.openMoreMenu()) + .then(menu => { + expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); + expect(menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); + expect(menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); + expect(menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + }) + .then(() => browser.$('body').click()) + .then(() => dataTable.clearSelection()); + }); + + it('correct actions appear when multiple folders are selected', () => { + dataTable.selectMultipleItems([folder1, folder2]) + .then(() => { + expect(toolbar.actions.isButtonPresent('View')).toBe(false, 'View is displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files'); + }) + .then(() => toolbar.actions.openMoreMenu()) + .then(menu => { + expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); + expect(menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); + expect(menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); + expect(menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + }) + .then(() => browser.$('body').click()) + .then(() => dataTable.clearSelection()); + }); + + it('correct actions appear when both files and folders are selected', () => { + dataTable.selectMultipleItems([file1, file2, folder1, folder2]) + .then(() => { + expect(toolbar.actions.isButtonPresent('View')).toBe(false, 'View is displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files'); + }) + .then(() => toolbar.actions.openMoreMenu()) + .then(menu => { + expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); + expect(menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); + expect(menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); + expect(menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + }) + .then(() => browser.$('body').click()) + .then(() => dataTable.clearSelection()); + }); + }); + + describe('Trash', () => { + beforeAll(done => { + loginPage.load() + .then(() => loginPage.loginWith(user1)) + .then(done); + }); + + beforeEach(done => { + page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH) + .then(() => dataTable.waitForHeader()) + .then(done); + }); + + afterAll(done => { + logoutPage.load().then(done); + }); + + it('correct actions appear when multiple files are selected', () => { + dataTable.selectMultipleItems([fileForDelete1, fileForDelete2]) + .then(() => { + expect(toolbar.actions.isButtonPresent('Permanently delete')) + .toBe(true, 'Permanently delete is displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Restore')).toBe(true, 'Restore is not displayed for selected files'); + }) + .then(() => dataTable.clearSelection()); + }); + + it('correct actions appear when multiple folders are selected', () => { + dataTable.selectMultipleItems([folderForDelete1, folderForDelete2]) + .then(() => { + expect(toolbar.actions.isButtonPresent('Permanently delete')) + .toBe(true, 'Permanently delete is displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Restore')).toBe(true, 'Restore is not displayed for selected files'); + }) + .then(() => dataTable.clearSelection()); + }); + + it('correct actions appear when both files and folders are selected', () => { + dataTable.selectMultipleItems([fileForDelete1, fileForDelete2, folderForDelete1, folderForDelete2]) + .then(() => { + expect(toolbar.actions.isButtonPresent('Permanently delete')) + .toBe(true, 'Permanently delete is displayed for selected files'); + expect(toolbar.actions.isButtonPresent('Restore')).toBe(true, 'Restore is not displayed for selected files'); + }) + .then(() => dataTable.clearSelection()); + }); + }); +}); diff --git a/e2e/suites/actions/toolbar-single-selection.test.ts b/e2e/suites/actions/toolbar-single-selection.test.ts index 99bf8d0eb..0e7d331f9 100644 --- a/e2e/suites/actions/toolbar-single-selection.test.ts +++ b/e2e/suites/actions/toolbar-single-selection.test.ts @@ -116,9 +116,7 @@ describe('Toolbar actions - single selection : ', () => { expect(toolbar.actions.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`); - }); - - dataTable.clickOnRowByContainingText(fileUser) + }) .then(() => toolbar.actions.openMoreMenu()) .then(menu => { expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`); @@ -135,9 +133,7 @@ describe('Toolbar actions - single selection : ', () => { expect(toolbar.actions.isButtonPresent('View')).toBe(false, `View is displayed for ${folderUser}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not enabled for ${folderUser}`); expect(toolbar.actions.isButtonPresent('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`); - }); - - dataTable.clickOnRowByContainingText(folderUser) + }) .then(() => toolbar.actions.openMoreMenu()) .then(menu => { expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderUser}`); @@ -168,6 +164,10 @@ describe('Toolbar actions - single selection : ', () => { .then(done); }); + afterAll(done => { + apis.admin.sites.deleteSite(siteName).then(done); + }); + xit(''); describe('user is Manager', () => { @@ -205,9 +205,7 @@ describe('Toolbar actions - single selection : ', () => { expect(toolbar.actions.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileAdmin}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileAdmin}`); expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileAdmin}`); - }); - - dataTable.clickOnRowByContainingText(fileAdmin) + }) .then(() => toolbar.actions.openMoreMenu()) .then(menu => { expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileAdmin}`); @@ -224,9 +222,7 @@ describe('Toolbar actions - single selection : ', () => { expect(toolbar.actions.isButtonPresent('View')).toBe(false, `View is displayed for ${folderAdmin}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not enabled for ${folderAdmin}`); expect(toolbar.actions.isButtonPresent('Edit')).toBe(true, `Edit is not displayed for ${folderAdmin}`); - }); - - dataTable.clickOnRowByContainingText(folderAdmin) + }) .then(() => toolbar.actions.openMoreMenu()) .then(menu => { expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderAdmin}`); @@ -273,9 +269,7 @@ describe('Toolbar actions - single selection : ', () => { expect(toolbar.actions.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileAdmin}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileAdmin}`); expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileAdmin}`); - }); - - dataTable.clickOnRowByContainingText(fileAdmin) + }) .then(() => toolbar.actions.openMoreMenu()) .then(menu => { expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileAdmin}`); @@ -292,9 +286,7 @@ describe('Toolbar actions - single selection : ', () => { expect(toolbar.actions.isButtonPresent('View')).toBe(false, `View is displayed for ${folderAdmin}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not enabled for ${folderAdmin}`); expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${folderAdmin}`); - }); - - dataTable.clickOnRowByContainingText(folderAdmin) + }) .then(() => toolbar.actions.openMoreMenu()) .then(menu => { expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderAdmin}`); @@ -341,9 +333,7 @@ describe('Toolbar actions - single selection : ', () => { expect(toolbar.actions.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`); - }); - - dataTable.clickOnRowByContainingText(fileUser) + }) .then(() => toolbar.actions.openMoreMenu()) .then(menu => { expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`); @@ -389,9 +379,7 @@ describe('Toolbar actions - single selection : ', () => { expect(toolbar.actions.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`); - }); - - dataTable.clickOnRowByContainingText(fileUser) + }) .then(() => toolbar.actions.openMoreMenu()) .then(menu => { expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`); @@ -444,9 +432,7 @@ describe('Toolbar actions - single selection : ', () => { expect(toolbar.actions.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); expect(toolbar.actions.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`); - }); - - dataTable.clickOnRowByContainingText(fileUser) + }) .then(() => toolbar.actions.openMoreMenu()) .then(menu => { expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`); @@ -463,9 +449,7 @@ describe('Toolbar actions - single selection : ', () => { expect(toolbar.actions.isButtonPresent('View')).toBe(false, `View is displayed for ${folderUser}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not enabled for ${folderUser}`); expect(toolbar.actions.isButtonPresent('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`); - }); - - dataTable.clickOnRowByContainingText(folderUser) + }) .then(() => toolbar.actions.openMoreMenu()) .then(menu => { expect(menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderUser}`); From b18994562705295080358f747c88765cb335ce63 Mon Sep 17 00:00:00 2001 From: Adina Parpalita Date: Tue, 21 Nov 2017 08:26:46 +0200 Subject: [PATCH 04/70] [ACA-986] fix ts error (#68) * fix ts error * another fix --- e2e/utilities/repo-client/apis/nodes/nodes-api.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/e2e/utilities/repo-client/apis/nodes/nodes-api.ts b/e2e/utilities/repo-client/apis/nodes/nodes-api.ts index e8ed5423e..9c98c8fb5 100644 --- a/e2e/utilities/repo-client/apis/nodes/nodes-api.ts +++ b/e2e/utilities/repo-client/apis/nodes/nodes-api.ts @@ -48,12 +48,9 @@ export class NodesApi extends RepoApi { } getNodeDescription(name: string): Promise { - let description = 'cm:description'; - - return this - .getNodeByPath(name) - .then((response: any): string => response.data.entry.properties[description]) - .catch(this.handleError); + return this.getNodeByPath(name) + .then(response => response.data.entry.properties['cm:description']) + .catch(() => Promise.resolve('')); } deleteNodes(names: string[], relativePath: string = '', permanent: boolean = true): Promise { From 23649eedd9857a582bd728dfcde1bdb42804bd03 Mon Sep 17 00:00:00 2001 From: Bogdan Cilibiu Date: Tue, 21 Nov 2017 09:18:08 +0200 Subject: [PATCH 05/70] correct message --- src/assets/i18n/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 78d406d63..150c942bb 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -59,7 +59,7 @@ "TOOLTIP": "View files you recently edited" }, "EMPTY_STATE": { - "TITLE": "No recent files or folders", + "TITLE": "No recent files", "TEXT": "Items you upload or edit in the last 30 days are shown here." } }, From f9ecc83152dff4a1667857cbd204ef6f09d84488 Mon Sep 17 00:00:00 2001 From: Cilibiu Bogdan Date: Tue, 21 Nov 2017 11:20:51 +0200 Subject: [PATCH 06/70] distinguish duplicate site names (#71) --- .../libraries/libraries.component.spec.ts | 16 ++++++++++------ .../components/libraries/libraries.component.ts | 6 ++++-- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/app/components/libraries/libraries.component.spec.ts b/src/app/components/libraries/libraries.component.spec.ts index 67165d9e1..8e03c27bd 100644 --- a/src/app/components/libraries/libraries.component.spec.ts +++ b/src/app/components/libraries/libraries.component.spec.ts @@ -101,9 +101,11 @@ describe('Libraries Routed Component', () => { it('sets title with id when duplicate nodes title exists in list', () => { node.title = 'title'; - component.documentList.node = { - list: { - entries: [{ entry: { id: 'some-id', title: 'title' } }] + component.documentList.data = { + page: { + list: { + entries: [{ entry: { id: 'some-id', title: 'title' } }] + } } }; @@ -115,9 +117,11 @@ describe('Libraries Routed Component', () => { it('sets title when no duplicate nodes title exists in list', () => { node.title = 'title'; - component.paging = { - list: { - entries: [{ entry: { id: 'some-id', title: 'title-some-id' } }] + component.documentList.data = { + page: { + list: { + entries: [{ entry: { id: 'some-id', title: 'title-some-id' } }] + } } }; diff --git a/src/app/components/libraries/libraries.component.ts b/src/app/components/libraries/libraries.component.ts index cd63ad3f9..8b34795d8 100644 --- a/src/app/components/libraries/libraries.component.ts +++ b/src/app/components/libraries/libraries.component.ts @@ -45,9 +45,11 @@ export class LibrariesComponent extends PageComponent { makeLibraryTitle(library: any): string { const { title, id } = library; + const { entries } = this.documentList.data.page.list; let isDuplicate = false; - if (this.documentList.node) { - isDuplicate = this.documentList.node.list.entries + + if (entries) { + isDuplicate = entries .some(({ entry }: any) => { return (entry.id !== id && entry.title === title); }); From 4cb51469ab12041a1b8b1bb6c9401b6380f2410f Mon Sep 17 00:00:00 2001 From: Cilibiu Bogdan Date: Tue, 21 Nov 2017 11:21:19 +0200 Subject: [PATCH 07/70] PathInfoEntity data exists condition (#69) --- src/app/components/location-link/location-link.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/components/location-link/location-link.component.ts b/src/app/components/location-link/location-link.component.ts index 3f885cc50..e9e83c114 100644 --- a/src/app/components/location-link/location-link.component.ts +++ b/src/app/components/location-link/location-link.component.ts @@ -41,7 +41,7 @@ export class LocationLinkComponent implements OnInit { const row: DataRow = this.context.row; const value: PathInfoEntity = data.getValue(row, col); - if (value.name && value.elements) { + if (value && value.name && value.elements) { const isLibraryPath = this.isLibraryContent(value); this.displayText = this.getDisplayText(value); From 025210fcceb5dc26692d7f696d6fa4cbd45fd06e Mon Sep 17 00:00:00 2001 From: Cilibiu Bogdan Date: Tue, 21 Nov 2017 18:28:18 +0200 Subject: [PATCH 08/70] [ACA-537] remove permission check on toolbar options (#74) --- .../favorites/favorites.component.html | 2 -- .../favorites/favorites.component.ts | 19 +++++++++---------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/app/components/favorites/favorites.component.html b/src/app/components/favorites/favorites.component.html index beebb6856..5d9803486 100644 --- a/src/app/components/favorites/favorites.component.html +++ b/src/app/components/favorites/favorites.component.html @@ -58,7 +58,6 @@ @@ -95,5 +94,6 @@ + diff --git a/yarn.lock b/yarn.lock index 2e9892fea..00dd32fe0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,11 +2,11 @@ # yarn lockfile v1 -"@alfresco/adf-content-services@2.0.0-beta2": - version "2.0.0-beta2" - resolved "https://registry.yarnpkg.com/@alfresco/adf-content-services/-/adf-content-services-2.0.0-beta2.tgz#7b587278b7bef852f6d543e1b667f9be5eaf3308" +"@alfresco/adf-content-services@2.0.0-c968fbcdacb90946dc00bca3d7b663de94d5a9ad": + version "2.0.0-c968fbcdacb90946dc00bca3d7b663de94d5a9ad" + resolved "https://registry.yarnpkg.com/@alfresco/adf-content-services/-/adf-content-services-2.0.0-c968fbcdacb90946dc00bca3d7b663de94d5a9ad.tgz#4d189cf2df9ff155c439805ad9ccea92181dc5b1" dependencies: - "@alfresco/adf-core" "2.0.0-beta2" + "@alfresco/adf-core" "2.0.0-c968fbcdacb90946dc00bca3d7b663de94d5a9ad" "@angular/animations" "5.0.0" "@angular/cdk" "5.0.0-rc0" "@angular/common" "5.0.0" @@ -21,7 +21,7 @@ "@angular/platform-browser-dynamic" "5.0.0" "@angular/router" "5.0.0" "@ngx-translate/core" "8.0.0" - alfresco-js-api "2.0.0-beta1" + alfresco-js-api "2.0.0-2e4554a3d3a1265d058795c924d55d570dd46de2" chart.js "2.5.0" core-js "2.4.1" hammerjs "2.0.8" @@ -35,9 +35,9 @@ systemjs "0.19.27" zone.js "0.8.14" -"@alfresco/adf-core@2.0.0-beta2": - version "2.0.0-beta2" - resolved "https://registry.yarnpkg.com/@alfresco/adf-core/-/adf-core-2.0.0-beta2.tgz#3b38b8fa9339d94bde48d8866e797bb0e4d5cc24" +"@alfresco/adf-core@2.0.0-c968fbcdacb90946dc00bca3d7b663de94d5a9ad": + version "2.0.0-c968fbcdacb90946dc00bca3d7b663de94d5a9ad" + resolved "https://registry.yarnpkg.com/@alfresco/adf-core/-/adf-core-2.0.0-c968fbcdacb90946dc00bca3d7b663de94d5a9ad.tgz#bbf289ed254049f7db0406efd94276fa53a9fbf0" dependencies: "@angular/animations" "5.0.0" "@angular/cdk" "5.0.0-rc0" @@ -53,7 +53,7 @@ "@angular/platform-browser-dynamic" "5.0.0" "@angular/router" "5.0.0" "@ngx-translate/core" "8.0.0" - alfresco-js-api "2.0.0-beta1" + alfresco-js-api "2.0.0-2e4554a3d3a1265d058795c924d55d570dd46de2" chart.js "2.5.0" core-js "2.4.1" hammerjs "2.0.8" @@ -364,6 +364,13 @@ ajv@^5.0.0, ajv@^5.1.0, ajv@^5.1.5: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" +alfresco-js-api@2.0.0-2e4554a3d3a1265d058795c924d55d570dd46de2: + version "2.0.0-2e4554a3d3a1265d058795c924d55d570dd46de2" + resolved "https://registry.yarnpkg.com/alfresco-js-api/-/alfresco-js-api-2.0.0-2e4554a3d3a1265d058795c924d55d570dd46de2.tgz#9b4cafb16eef618ed449c2d69055cb032cbe9087" + dependencies: + event-emitter "0.3.4" + superagent "3.7.0" + alfresco-js-api@2.0.0-beta1: version "2.0.0-beta1" resolved "https://registry.yarnpkg.com/alfresco-js-api/-/alfresco-js-api-2.0.0-beta1.tgz#f52f8dfb82e3516efd71868f06cf91c62e4fa71e" @@ -3797,14 +3804,20 @@ mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkd dependencies: minimist "0.0.8" +moment-es6@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/moment-es6/-/moment-es6-1.0.0.tgz#552fcf405d62565b0a1fe84e6c1e697ac79332df" + dependencies: + moment "*" + +moment@*, moment@^2.10.6: + version "2.19.2" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.19.2.tgz#8a7f774c95a64550b4c7ebd496683908f9419dbe" + moment@2.15.2: version "2.15.2" resolved "https://registry.yarnpkg.com/moment/-/moment-2.15.2.tgz#1bfdedf6a6e345f322fe956d5df5bd08a8ce84dc" -moment@^2.10.6: - version "2.19.2" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.19.2.tgz#8a7f774c95a64550b4c7ebd496683908f9419dbe" - moment@~2.18.0: version "2.18.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" From 1dade550a1586e3f07639a6abb77809e126d632e Mon Sep 17 00:00:00 2001 From: suzanadirla Date: Tue, 28 Nov 2017 12:12:09 +0200 Subject: [PATCH 31/70] [ACA-902] fix bug: Personal Files - toolbar actions reloads to first page (#94) --- src/app/components/files/files.component.ts | 42 ++++++++++++++++----- 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/src/app/components/files/files.component.ts b/src/app/components/files/files.component.ts index 651271e02..5946bc86a 100644 --- a/src/app/components/files/files.component.ts +++ b/src/app/components/files/files.component.ts @@ -79,12 +79,12 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { this.subscriptions = this.subscriptions.concat([ nodeActionsService.contentCopied.subscribe((nodes) => this.onContentCopied(nodes)), - contentService.folderCreate.subscribe(() => this.load()), - contentService.folderEdit.subscribe(() => this.load()), - contentManagementService.deleteNode.subscribe(() => this.load()), - contentManagementService.moveNode.subscribe(() => this.load()), - contentManagementService.restoreNode.subscribe(() => this.load()), - contentManagementService.toggleFavorite.subscribe(() => this.load()), + contentService.folderCreate.subscribe(() => this.load(false, this.pagination)), + contentService.folderEdit.subscribe(() => this.load(false, this.pagination)), + contentManagementService.deleteNode.subscribe(() => this.load(false, this.pagination)), + contentManagementService.moveNode.subscribe(() => this.load(false, this.pagination)), + contentManagementService.restoreNode.subscribe(() => this.load(false, this.pagination)), + contentManagementService.toggleFavorite.subscribe(() => this.load(false, this.pagination)), uploadService.fileUploadComplete.subscribe(file => this.onFileUploadedEvent(file)), uploadService.fileUploadDeleted.subscribe((file) => this.onFileUploadedEvent(file)) ]); @@ -140,7 +140,7 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { onFileUploadedEvent(event: FileUploadEvent) { if (event && event.file.options.parentId === this.getParentNodeId()) { - this.load(); + this.load(false, this.pagination); } } @@ -150,7 +150,7 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { return node && node.entry && node.entry.parentId === this.getParentNodeId(); }); if (newNode) { - this.load(); + this.load(false, this.pagination); } } @@ -167,12 +167,36 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { this.fetchNodes(this.getParentNodeId(), pagination) .subscribe( - (page) => this.onPageLoaded(page), + (page) => { + if (this.isCurrentPageEmpty(page) && this.isNotFirstPage(page)) { + const newSkipCount = pagination.skipCount - pagination.maxItems; + + this.fetchNodes(this.getParentNodeId(), {skipCount: newSkipCount, maxItems: pagination.maxItems}) + .subscribe( + (previousPage) => this.onPageLoaded(previousPage), + error => this.onFetchError(error) + ); + } else { + this.onPageLoaded(page); + } + }, error => this.onFetchError(error), () => this.changeDetector.detectChanges() ); } + isCurrentPageEmpty(page): boolean { + return !this.hasPageEntries(page); + } + + hasPageEntries(page): boolean { + return page && page.list && page.list.entries && page.list.entries.length > 0; + } + + isNotFirstPage(page): boolean { + return (page.list.pagination.skipCount >= page.list.pagination.maxItems); + } + // todo: review this approach once 5.2.3 is out private async updateCurrentNode(node: MinimalNodeEntryEntity) { this.nodePath = null; From 79f8ec33a9c1589e964efa6a0bf10f2198d5ba7f Mon Sep 17 00:00:00 2001 From: Adina Parpalita Date: Tue, 28 Nov 2017 22:02:47 +0200 Subject: [PATCH 32/70] [ACA-990] framework improvements (#96) * refactoring * e2e API improvements * forgot one file --- e2e/components/data-table/data-table.ts | 16 ++--- e2e/components/menu/menu.ts | 6 +- e2e/pages/page.ts | 2 +- e2e/suites/actions/create-folder.test.ts | 32 ++++----- e2e/suites/actions/edit-folder.test.ts | 32 ++++----- e2e/suites/actions/permanently-delete.test.ts | 44 ++++--------- e2e/suites/actions/restore.test.ts | 37 ++++------- .../toolbar-multiple-selection.test.ts | 2 +- .../actions/toolbar-single-selection.test.ts | 65 ++++++++++--------- e2e/suites/list-views/empty-list.test.ts | 2 - e2e/suites/list-views/personal-files.test.ts | 4 +- e2e/suites/pagination/pagination.test.ts | 12 ++-- .../apis/favorites/favorites-api.ts | 6 ++ .../repo-client/apis/nodes/nodes-api.ts | 23 +++---- .../apis/shared-links/shared-links-api.ts | 6 ++ .../repo-client/apis/sites/sites-api.ts | 21 +++++- .../repo-client/apis/trashcan/trashcan-api.ts | 20 ++++++ protractor.conf.js | 5 ++ 18 files changed, 184 insertions(+), 151 deletions(-) diff --git a/e2e/components/data-table/data-table.ts b/e2e/components/data-table/data-table.ts index 59df39a48..9192147e3 100644 --- a/e2e/components/data-table/data-table.ts +++ b/e2e/components/data-table/data-table.ts @@ -34,6 +34,7 @@ export class DataTable extends Component { row: 'tr', selectedRow: 'tr.is-selected', cell: 'td', + nameCell: 'td.app-name-column', emptyListContainer: 'td.adf-no-content-container', emptyFolderDragAndDrop: '.adf-empty-list_template .adf-empty-folder', @@ -44,7 +45,6 @@ export class DataTable extends Component { head: ElementFinder = this.component.element(by.css(DataTable.selectors.head)); body: ElementFinder = this.component.element(by.css(DataTable.selectors.body)); - cell = by.css(DataTable.selectors.cell); emptyList: ElementFinder = this.component.element(by.css(DataTable.selectors.emptyListContainer)); emptyFolderDragAndDrop: ElementFinder = this.component.element(by.css(DataTable.selectors.emptyFolderDragAndDrop)); emptyListTitle: ElementFinder = this.component.element(by.css(DataTable.selectors.emptyListTitle)); @@ -113,18 +113,16 @@ export class DataTable extends Component { } // Navigation/selection methods - doubleClickOnRowByContainingText(text: string): promise.Promise { - const row = this.getRowByContainingText(text); - const dblClick = browser.actions().mouseMove(row).click().click(); + doubleClickOnItemName(name: string): promise.Promise { + const locator = by.cssContainingText(DataTable.selectors.nameCell, name); + const dblClick = browser.actions().mouseMove(this.body.element(locator)).click().click(); return dblClick.perform(); } - clickOnRowByContainingText(text: string): promise.Promise { - const row = this.getRowByContainingText(text); - const click = browser.actions().mouseMove(row).click(); - - return click.perform(); + clickOnItemName(name: string): promise.Promise { + const locator = by.cssContainingText(DataTable.selectors.nameCell, name); + return this.body.element(locator).click(); } selectMultipleItems(names: string[]): promise.Promise { diff --git a/e2e/components/menu/menu.ts b/e2e/components/menu/menu.ts index 536e4b05e..d5d9a3bed 100644 --- a/e2e/components/menu/menu.ts +++ b/e2e/components/menu/menu.ts @@ -47,7 +47,11 @@ export class Menu extends Component { return this.getItemByLabel(label).getAttribute('title'); } - clicktNthItem(nth: number): promise.Promise { + getItemsCount(): promise.Promise { + return this.items.count(); + } + + clickNthItem(nth: number): promise.Promise { return this.getNthItem(nth).click(); } diff --git a/e2e/pages/page.ts b/e2e/pages/page.ts index 0867bfa45..7b30f62b8 100644 --- a/e2e/pages/page.ts +++ b/e2e/pages/page.ts @@ -19,7 +19,7 @@ import { browser, element, by, ElementFinder, promise, ExpectedConditions as EC import { BROWSER_WAIT_TIMEOUT } from './../configs'; export abstract class Page { - private static USE_HASH_STRATEGY = false; + private static USE_HASH_STRATEGY = true; private locators = { app: by.css('app-root'), diff --git a/e2e/suites/actions/create-folder.test.ts b/e2e/suites/actions/create-folder.test.ts index f5639049e..1e3dd6c34 100644 --- a/e2e/suites/actions/create-folder.test.ts +++ b/e2e/suites/actions/create-folder.test.ts @@ -87,7 +87,7 @@ describe('Create folder', () => { }); it('option is enabled when having enough permissions', () => { - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) + personalFilesPage.dataTable.doubleClickOnItemName(parent) .then(() => personalFilesPage.sidenav.openNewMenu() .then((menu) => { const isEnabled = menu.getItemByLabel('Create folder').getWebElement().isEnabled(); @@ -98,7 +98,7 @@ describe('Create folder', () => { }); it('creates new folder with name', () => { - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) + personalFilesPage.dataTable.doubleClickOnItemName(parent) .then(() => openCreateDialog() .then(() => createDialog.enterName(folderName1).clickCreate()) .then(() => createDialog.waitForDialogToClose()) @@ -111,7 +111,7 @@ describe('Create folder', () => { }); it('creates new folder with name and description', () => { - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) + personalFilesPage.dataTable.doubleClickOnItemName(parent) .then(() => openCreateDialog() .then(() => { createDialog @@ -133,7 +133,7 @@ describe('Create folder', () => { }); it('enabled option tooltip', () => { - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) + personalFilesPage.dataTable.doubleClickOnItemName(parent) .then(() => personalFilesPage.sidenav.openNewMenu() .then(menu => { const action = browser.actions().mouseMove(menu.getItemByLabel('Create folder')); @@ -152,8 +152,8 @@ describe('Create folder', () => { const fileLibrariesPage = new BrowsingPage(APP_ROUTES.FILE_LIBRARIES); fileLibrariesPage.sidenav.navigateToLinkByLabel('File Libraries') - .then(() => fileLibrariesPage.dataTable.doubleClickOnRowByContainingText(siteName)) - .then(() => fileLibrariesPage.dataTable.doubleClickOnRowByContainingText(folderName1)) + .then(() => fileLibrariesPage.dataTable.doubleClickOnItemName(siteName)) + .then(() => fileLibrariesPage.dataTable.doubleClickOnItemName(folderName1)) .then(() => fileLibrariesPage.sidenav.openNewMenu()) .then(menu => { const isEnabled = menu.getItemByLabel('Create folder').getWebElement().isEnabled(); @@ -165,8 +165,8 @@ describe('Create folder', () => { const fileLibrariesPage = new BrowsingPage(APP_ROUTES.FILE_LIBRARIES); fileLibrariesPage.sidenav.navigateToLinkByLabel('File Libraries') - .then(() => fileLibrariesPage.dataTable.doubleClickOnRowByContainingText(siteName)) - .then(() => fileLibrariesPage.dataTable.doubleClickOnRowByContainingText(folderName1)) + .then(() => fileLibrariesPage.dataTable.doubleClickOnItemName(siteName)) + .then(() => fileLibrariesPage.dataTable.doubleClickOnItemName(folderName1)) .then(() => fileLibrariesPage.sidenav.openNewMenu()) .then(menu => { const action = browser.actions().mouseMove(menu.getItemByLabel('Create folder')); @@ -179,7 +179,7 @@ describe('Create folder', () => { }); it('dialog UI elements', () => { - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) + personalFilesPage.dataTable.doubleClickOnItemName(parent) .then(() => openCreateDialog().then(() => { const dialogTitle = createDialog.getTitle(); const isFolderNameDisplayed = createDialog.nameInput.getWebElement().isDisplayed(); @@ -197,7 +197,7 @@ describe('Create folder', () => { }); it('with empty folder name', () => { - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) + personalFilesPage.dataTable.doubleClickOnItemName(parent) .then(() => openCreateDialog() .then(() => { createDialog.deleteNameWithBackspace(); @@ -213,7 +213,7 @@ describe('Create folder', () => { }); it('with folder name ending with a dot "."', () => { - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) + personalFilesPage.dataTable.doubleClickOnItemName(parent) .then(() => openCreateDialog() .then(() => createDialog.enterName('folder-name.')) .then((dialog) => { @@ -229,7 +229,7 @@ describe('Create folder', () => { it('with folder name containing special characters', () => { const namesWithSpecialChars = [ 'a*a', 'a"a', 'aa', `a\\a`, 'a/a', 'a?a', 'a:a', 'a|a' ]; - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) + personalFilesPage.dataTable.doubleClickOnItemName(parent) .then(() => openCreateDialog() .then(() => { namesWithSpecialChars.forEach(name => { @@ -246,7 +246,7 @@ describe('Create folder', () => { }); it('with folder name containing only spaces', () => { - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) + personalFilesPage.dataTable.doubleClickOnItemName(parent) .then(() => openCreateDialog() .then(() => createDialog.enterName(' ')) .then((dialog) => { @@ -260,7 +260,7 @@ describe('Create folder', () => { }); it('cancel folder creation', () => { - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) + personalFilesPage.dataTable.doubleClickOnItemName(parent) .then(() => openCreateDialog() .then(() => { createDialog @@ -273,7 +273,7 @@ describe('Create folder', () => { }); it('duplicate folder name', () => { - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) + personalFilesPage.dataTable.doubleClickOnItemName(parent) .then(() => openCreateDialog() .then(() => createDialog.enterName(duplicateFolderName).clickCreate()) .then(() => { @@ -287,7 +287,7 @@ describe('Create folder', () => { }); it('trim ending spaces from folder name', () => { - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) + personalFilesPage.dataTable.doubleClickOnItemName(parent) .then(() => openCreateDialog() .then(() => createDialog.enterName(nameWithSpaces).clickCreate()) .then(() => createDialog.waitForDialogToClose()) diff --git a/e2e/suites/actions/edit-folder.test.ts b/e2e/suites/actions/edit-folder.test.ts index 2e58b4d07..fb830f5c1 100644 --- a/e2e/suites/actions/edit-folder.test.ts +++ b/e2e/suites/actions/edit-folder.test.ts @@ -87,8 +87,8 @@ describe('Edit folder', () => { }); it('dialog UI defaults', () => { - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) - .then(() => dataTable.clickOnRowByContainingText(folderName) + personalFilesPage.dataTable.doubleClickOnItemName(parent) + .then(() => dataTable.clickOnItemName(folderName) .then(() => editButton.click()) .then(() => { expect(editDialog.getTitle()).toBe('Edit folder'); @@ -101,8 +101,8 @@ describe('Edit folder', () => { }); it('properties are modified when pressing OK', () => { - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) - .then(() => dataTable.clickOnRowByContainingText(folderNameToEdit) + personalFilesPage.dataTable.doubleClickOnItemName(parent) + .then(() => dataTable.clickOnItemName(folderNameToEdit) .then(() => editButton.click()) .then(() => { editDialog @@ -126,8 +126,8 @@ describe('Edit folder', () => { }); it('with empty folder name', () => { - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) - .then(() => dataTable.clickOnRowByContainingText(folderName) + personalFilesPage.dataTable.doubleClickOnItemName(parent) + .then(() => dataTable.clickOnItemName(folderName) .then(() => editButton.click()) .then(() => { editDialog.deleteNameWithBackspace(); @@ -142,8 +142,8 @@ describe('Edit folder', () => { it('with name with special characters', () => { const namesWithSpecialChars = [ 'a*a', 'a"a', 'aa', `a\\a`, 'a/a', 'a?a', 'a:a', 'a|a' ]; - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) - .then(() => dataTable.clickOnRowByContainingText(folderName) + personalFilesPage.dataTable.doubleClickOnItemName(parent) + .then(() => dataTable.clickOnItemName(folderName) .then(() => editButton.click()) .then(() => { namesWithSpecialChars.forEach(name => { @@ -157,8 +157,8 @@ describe('Edit folder', () => { }); it('with name ending with a dot', () => { - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) - .then(() => dataTable.clickOnRowByContainingText(folderName) + personalFilesPage.dataTable.doubleClickOnItemName(parent) + .then(() => dataTable.clickOnItemName(folderName) .then(() => editButton.click()) .then(() => editDialog.nameInput.sendKeys('.')) .then(() => { @@ -169,8 +169,8 @@ describe('Edit folder', () => { }); it('Cancel button', () => { - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) - .then(() => dataTable.clickOnRowByContainingText(folderName) + personalFilesPage.dataTable.doubleClickOnItemName(parent) + .then(() => dataTable.clickOnItemName(folderName) .then(() => editButton.click()) .then(() => editDialog.clickCancel()) .then(() => { @@ -180,8 +180,8 @@ describe('Edit folder', () => { }); it('with duplicate folder name', () => { - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) - .then(() => dataTable.clickOnRowByContainingText(folderName) + personalFilesPage.dataTable.doubleClickOnItemName(parent) + .then(() => dataTable.clickOnItemName(folderName) .then(() => editButton.click()) .then(() => editDialog.enterName(duplicateFolderName).clickUpdate()) .then(() => { @@ -195,8 +195,8 @@ describe('Edit folder', () => { }); it('trim ending spaces', () => { - personalFilesPage.dataTable.doubleClickOnRowByContainingText(parent) - .then(() => dataTable.clickOnRowByContainingText(folderName) + personalFilesPage.dataTable.doubleClickOnItemName(parent) + .then(() => dataTable.clickOnItemName(folderName) .then(() => editButton.click()) .then(() => editDialog.nameInput.sendKeys(' ')) .then(() => editDialog.clickUpdate()) diff --git a/e2e/suites/actions/permanently-delete.test.ts b/e2e/suites/actions/permanently-delete.test.ts index e169c3840..cde2d9bec 100644 --- a/e2e/suites/actions/permanently-delete.test.ts +++ b/e2e/suites/actions/permanently-delete.test.ts @@ -25,14 +25,12 @@ describe('Permanently delete from Trash', () => { const username = `user-${Utils.random()}`; const file1 = `file-${Utils.random()}.txt`; - let file1Id; const file2 = `file-${Utils.random()}.txt`; - let file2Id; + let filesIds; const folder1 = `folder-${Utils.random()}`; - let folder1Id; const folder2 = `folder-${Utils.random()}`; - let folder2Id; + let foldersIds; const apis = { admin: new RepoClient(), @@ -47,15 +45,13 @@ describe('Permanently delete from Trash', () => { beforeAll(done => { apis.admin.people.createUser(username) - .then(() => apis.user.nodes.createFiles([ file1 ]).then(resp => file1Id = resp.data.entry.id)) - .then(() => apis.user.nodes.createFiles([ file2 ]).then(resp => file2Id = resp.data.entry.id)) - .then(() => apis.user.nodes.createFolders([ folder1 ]).then(resp => folder1Id = resp.data.entry.id)) - .then(() => apis.user.nodes.createFolders([ folder2 ]).then(resp => folder2Id = resp.data.entry.id)) + .then(() => apis.user.nodes.createFiles([ file1, file2 ])) + .then(resp => filesIds = resp.data.list.entries.map(entries => entries.entry.id)) + .then(() => apis.user.nodes.createFolders([ folder1, folder2 ])) + .then(resp => foldersIds = resp.data.list.entries.map(entries => entries.entry.id)) - .then(() => apis.user.nodes.deleteNodeById(file1Id, false)) - .then(() => apis.user.nodes.deleteNodeById(file2Id, false)) - .then(() => apis.user.nodes.deleteNodeById(folder1Id, false)) - .then(() => apis.user.nodes.deleteNodeById(folder2Id, false)) + .then(() => apis.user.nodes.deleteNodesById(filesIds, false)) + .then(() => apis.user.nodes.deleteNodesById(foldersIds, false)) .then(() => loginPage.load()) .then(() => loginPage.loginWith(username)) @@ -70,21 +66,15 @@ describe('Permanently delete from Trash', () => { afterAll(done => { Promise.all([ - apis.user.trashcan.permanentlyDelete(file1Id), - apis.user.trashcan.permanentlyDelete(file2Id), - apis.user.trashcan.permanentlyDelete(folder1Id), - apis.user.trashcan.permanentlyDelete(folder2Id), + apis.user.trashcan.emptyTrash(), logoutPage.load() ]) .then(done); }); it('delete file', () => { - dataTable.clickOnRowByContainingText(file1) - .then(() => { - const button = toolbar.actions.getButtonByTitleAttribute('Permanently delete'); - button.click(); - }) + dataTable.clickOnItemName(file1) + .then(() => toolbar.actions.getButtonByTitleAttribute('Permanently delete').click()) .then(() => trashPage.getSnackBarMessage()) .then(text => { expect(text).toBe(`${file1} deleted`); @@ -93,11 +83,8 @@ describe('Permanently delete from Trash', () => { }); it('delete folder', () => { - dataTable.clickOnRowByContainingText(folder1) - .then(() => { - const button = toolbar.actions.getButtonByTitleAttribute('Permanently delete'); - button.click(); - }) + dataTable.clickOnItemName(folder1) + .then(() => toolbar.actions.getButtonByTitleAttribute('Permanently delete').click()) .then(() => trashPage.getSnackBarMessage()) .then(text => { expect(text).toBe(`${folder1} deleted`); @@ -107,10 +94,7 @@ describe('Permanently delete from Trash', () => { it('delete multiple items', () => { dataTable.selectMultipleItems([ file2, folder2 ]) - .then(() => { - const button = toolbar.actions.getButtonByTitleAttribute('Permanently delete'); - button.click(); - }) + .then(() => toolbar.actions.getButtonByTitleAttribute('Permanently delete').click()) .then(() => trashPage.getSnackBarMessage()) .then(text => { expect(text).toBe(`2 items deleted`); diff --git a/e2e/suites/actions/restore.test.ts b/e2e/suites/actions/restore.test.ts index dccf13156..7422a9caf 100644 --- a/e2e/suites/actions/restore.test.ts +++ b/e2e/suites/actions/restore.test.ts @@ -25,16 +25,13 @@ describe('Restore from Trash', () => { const username = `user-${Utils.random()}`; const file1 = `file-${Utils.random()}.txt`; - let file1Id; const file2 = `file-${Utils.random()}.txt`; - let file2Id; const file3 = `file-${Utils.random()}.txt`; - let file3Id; + let filesIds; const folder1 = `folder-${Utils.random()}`; - let folder1Id; const folder2 = `folder-${Utils.random()}`; - let folder2Id; + let foldersIds; const apis = { admin: new RepoClient(), @@ -50,17 +47,13 @@ describe('Restore from Trash', () => { beforeAll(done => { apis.admin.people.createUser(username) - .then(() => apis.user.nodes.createFiles([ file1 ]).then(resp => file1Id = resp.data.entry.id)) - .then(() => apis.user.nodes.createFiles([ file2 ]).then(resp => file2Id = resp.data.entry.id)) - .then(() => apis.user.nodes.createFiles([ file3 ]).then(resp => file3Id = resp.data.entry.id)) - .then(() => apis.user.nodes.createFolders([ folder1 ]).then(resp => folder1Id = resp.data.entry.id)) - .then(() => apis.user.nodes.createFolders([ folder2 ]).then(resp => folder2Id = resp.data.entry.id)) + .then(() => apis.user.nodes.createFiles([ file1, file2, file3 ])) + .then(resp => filesIds = resp.data.list.entries.map(entries => entries.entry.id)) + .then(() => apis.user.nodes.createFolders([ folder1, folder2 ])) + .then(resp => foldersIds = resp.data.list.entries.map(entries => entries.entry.id)) - .then(() => apis.user.nodes.deleteNodeById(file1Id, false)) - .then(() => apis.user.nodes.deleteNodeById(file2Id, false)) - .then(() => apis.user.nodes.deleteNodeById(file3Id, false)) - .then(() => apis.user.nodes.deleteNodeById(folder1Id, false)) - .then(() => apis.user.nodes.deleteNodeById(folder2Id, false)) + .then(() => apis.user.nodes.deleteNodesById(filesIds, false)) + .then(() => apis.user.nodes.deleteNodesById(foldersIds, false)) .then(() => loginPage.load()) .then(() => loginPage.loginWith(username)) @@ -75,18 +68,16 @@ describe('Restore from Trash', () => { afterAll(done => { Promise.all([ - apis.user.nodes.deleteNodeById(file1Id), - apis.user.nodes.deleteNodeById(file2Id), - apis.user.nodes.deleteNodeById(file3Id), - apis.user.nodes.deleteNodeById(folder1Id), - apis.user.nodes.deleteNodeById(folder2Id), + apis.user.nodes.deleteNodesById(filesIds), + apis.user.nodes.deleteNodesById(foldersIds), + apis.user.trashcan.emptyTrash(), logoutPage.load() ]) .then(done); }); it('restore file', () => { - dataTable.clickOnRowByContainingText(file1) + dataTable.clickOnItemName(file1) .then(() => toolbar.actions.getButtonByTitleAttribute('Restore').click()) .then(() => trashPage.getSnackBarMessage()) .then(text => { @@ -102,7 +93,7 @@ describe('Restore from Trash', () => { }); it('restore folder', () => { - dataTable.clickOnRowByContainingText(folder1) + dataTable.clickOnItemName(folder1) .then(() => toolbar.actions.getButtonByTitleAttribute('Restore').click()) .then(() => trashPage.getSnackBarMessage()) .then(text => { @@ -136,7 +127,7 @@ describe('Restore from Trash', () => { }); it('View from notification', () => { - dataTable.clickOnRowByContainingText(file3) + dataTable.clickOnItemName(file3) .then(() => toolbar.actions.getButtonByTitleAttribute('Restore').click()) .then(() => trashPage.getSnackBarAction().click()) .then(() => personalFilesPage.dataTable.waitForHeader()) diff --git a/e2e/suites/actions/toolbar-multiple-selection.test.ts b/e2e/suites/actions/toolbar-multiple-selection.test.ts index ca81d85b1..8401919ef 100644 --- a/e2e/suites/actions/toolbar-multiple-selection.test.ts +++ b/e2e/suites/actions/toolbar-multiple-selection.test.ts @@ -189,7 +189,7 @@ describe('Toolbar actions - multiple selection : ', () => { beforeEach(done => { page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES) .then(() => dataTable.waitForHeader()) - .then(() => dataTable.doubleClickOnRowByContainingText(siteName)) + .then(() => dataTable.doubleClickOnItemName(siteName)) .then(() => dataTable.waitForHeader()) .then(done); }); diff --git a/e2e/suites/actions/toolbar-single-selection.test.ts b/e2e/suites/actions/toolbar-single-selection.test.ts index 0e7d331f9..de976bbc4 100644 --- a/e2e/suites/actions/toolbar-single-selection.test.ts +++ b/e2e/suites/actions/toolbar-single-selection.test.ts @@ -49,15 +49,18 @@ describe('Toolbar actions - single selection : ', () => { const loginPage = new LoginPage(); const logoutPage = new LogoutPage(); const page = new BrowsingPage(); - const { dataTable } = page; - const { toolbar } = page; + const { dataTable, toolbar } = page; beforeAll(done => { apis.admin.people.createUser(username) - .then(() => apis.user.nodes.createFiles([ fileUser ]).then(resp => { fileUserId = resp.data.entry.id; })) - .then(() => apis.user.nodes.createFiles([ fileForDelete ]).then(resp => { fileForDeleteId = resp.data.entry.id; })) - .then(() => apis.user.nodes.createFolders([ folderForDelete ]).then((resp) => { folderForDeleteId = resp.data.entry.id; })) - .then(() => apis.user.nodes.createFolders([ folderUser ]).then(resp => { folderUserId = resp.data.entry.id; })) + .then(() => apis.user.nodes.createFiles([ fileUser ])) + .then(resp => fileUserId = resp.data.entry.id) + .then(() => apis.user.nodes.createFiles([ fileForDelete ])) + .then(resp => fileForDeleteId = resp.data.entry.id) + .then(() => apis.user.nodes.createFolders([ folderForDelete ])) + .then(resp => folderForDeleteId = resp.data.entry.id) + .then(() => apis.user.nodes.createFolders([ folderUser ])) + .then(resp => folderUserId = resp.data.entry.id) .then(() => apis.user.shared.shareFileById(fileUserId)) .then(() => apis.user.favorites.addFavoriteById('file', fileUserId)) .then(() => apis.user.favorites.addFavoriteById('folder', folderUserId)) @@ -97,21 +100,21 @@ describe('Toolbar actions - single selection : ', () => { }); it('actions are displayed when a file is selected', () => { - dataTable.clickOnRowByContainingText(fileUser) + dataTable.clickOnItemName(fileUser) .then(() => { expect(toolbar.actions.isEmpty()).toBe(false, `actions not displayed for ${fileUser}`); }); }); it('actions are displayed when a folder is selected', () => { - dataTable.clickOnRowByContainingText(folderUser) + dataTable.clickOnItemName(folderUser) .then(() => { expect(toolbar.actions.isEmpty()).toBe(false, `actions not displayed for ${folderUser}`); }); }); it('correct actions appear when a file is selected', () => { - dataTable.clickOnRowByContainingText(fileUser) + dataTable.clickOnItemName(fileUser) .then(() => { expect(toolbar.actions.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); @@ -128,7 +131,7 @@ describe('Toolbar actions - single selection : ', () => { }); it('correct actions appear when a folder is selected', () => { - dataTable.clickOnRowByContainingText(folderUser) + dataTable.clickOnItemName(folderUser) .then(() => { expect(toolbar.actions.isButtonPresent('View')).toBe(false, `View is displayed for ${folderUser}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not enabled for ${folderUser}`); @@ -159,7 +162,7 @@ describe('Toolbar actions - single selection : ', () => { beforeEach(done => { page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES) .then(() => dataTable.waitForHeader()) - .then(() => dataTable.doubleClickOnRowByContainingText(siteName)) + .then(() => dataTable.doubleClickOnItemName(siteName)) .then(() => dataTable.waitForHeader()) .then(done); }); @@ -186,21 +189,21 @@ describe('Toolbar actions - single selection : ', () => { }); it('actions are displayed when a file is selected', () => { - dataTable.clickOnRowByContainingText(fileAdmin) + dataTable.clickOnItemName(fileAdmin) .then(() => { expect(toolbar.actions.isEmpty()).toBe(false, `actions not displayed for ${fileAdmin}`); }); }); it('actions are displayed when a folder is selected', () => { - dataTable.clickOnRowByContainingText(folderAdmin) + dataTable.clickOnItemName(folderAdmin) .then(() => { expect(toolbar.actions.isEmpty()).toBe(false, `actions not displayed for ${folderAdmin}`); }); }); it('correct actions appear when a file is selected', () => { - dataTable.clickOnRowByContainingText(fileAdmin) + dataTable.clickOnItemName(fileAdmin) .then(() => { expect(toolbar.actions.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileAdmin}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileAdmin}`); @@ -217,7 +220,7 @@ describe('Toolbar actions - single selection : ', () => { }); it('correct actions appear when a folder is selected', () => { - dataTable.clickOnRowByContainingText(folderAdmin) + dataTable.clickOnItemName(folderAdmin) .then(() => { expect(toolbar.actions.isButtonPresent('View')).toBe(false, `View is displayed for ${folderAdmin}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not enabled for ${folderAdmin}`); @@ -250,21 +253,21 @@ describe('Toolbar actions - single selection : ', () => { }); it('actions are displayed when a file is selected', () => { - dataTable.clickOnRowByContainingText(fileAdmin) + dataTable.clickOnItemName(fileAdmin) .then(() => { expect(toolbar.actions.isEmpty()).toBe(false, `actions not displayed for ${fileAdmin}`); }); }); it('actions are displayed when a folder is selected', () => { - dataTable.clickOnRowByContainingText(folderAdmin) + dataTable.clickOnItemName(folderAdmin) .then(() => { expect(toolbar.actions.isEmpty()).toBe(false, `actions not displayed for ${folderAdmin}`); }); }); it('correct actions appear when a file is selected', () => { - dataTable.clickOnRowByContainingText(fileAdmin) + dataTable.clickOnItemName(fileAdmin) .then(() => { expect(toolbar.actions.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileAdmin}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileAdmin}`); @@ -281,7 +284,7 @@ describe('Toolbar actions - single selection : ', () => { }); it('correct actions appear when a folder is selected', () => { - dataTable.clickOnRowByContainingText(folderAdmin) + dataTable.clickOnItemName(folderAdmin) .then(() => { expect(toolbar.actions.isButtonPresent('View')).toBe(false, `View is displayed for ${folderAdmin}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not enabled for ${folderAdmin}`); @@ -321,14 +324,14 @@ describe('Toolbar actions - single selection : ', () => { }); it('actions are displayed when a file is selected', () => { - dataTable.clickOnRowByContainingText(fileUser) + dataTable.clickOnItemName(fileUser) .then(() => { expect(toolbar.actions.isEmpty()).toBe(false, `actions not displayed for ${fileUser}`); }); }); it('correct actions appear when a file is selected', () => { - dataTable.clickOnRowByContainingText(fileUser) + dataTable.clickOnItemName(fileUser) .then(() => { expect(toolbar.actions.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); @@ -367,14 +370,14 @@ describe('Toolbar actions - single selection : ', () => { }); it('actions are displayed when a file is selected', () => { - dataTable.clickOnRowByContainingText(fileUser) + dataTable.clickOnItemName(fileUser) .then(() => { expect(toolbar.actions.isEmpty()).toBe(false, `actions not displayed for ${fileUser}`); }); }); it('correct actions appear when a file is selected', () => { - dataTable.clickOnRowByContainingText(fileUser) + dataTable.clickOnItemName(fileUser) .then(() => { expect(toolbar.actions.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); @@ -413,21 +416,21 @@ describe('Toolbar actions - single selection : ', () => { }); it('actions are displayed when a file is selected', () => { - dataTable.clickOnRowByContainingText(fileUser) + dataTable.clickOnItemName(fileUser) .then(() => { expect(toolbar.actions.isEmpty()).toBe(false, `actions not displayed for ${fileUser}`); }); }); it('actions are displayed when a folder is selected', () => { - dataTable.clickOnRowByContainingText(folderUser) + dataTable.clickOnItemName(folderUser) .then(() => { expect(toolbar.actions.isEmpty()).toBe(false, `actions not displayed for ${folderUser}`); }); }); it('correct actions appear when a file is selected', () => { - dataTable.clickOnRowByContainingText(fileUser) + dataTable.clickOnItemName(fileUser) .then(() => { expect(toolbar.actions.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); @@ -444,7 +447,7 @@ describe('Toolbar actions - single selection : ', () => { }); it('correct actions appear when a folder is selected', () => { - dataTable.clickOnRowByContainingText(folderUser) + dataTable.clickOnItemName(folderUser) .then(() => { expect(toolbar.actions.isButtonPresent('View')).toBe(false, `View is displayed for ${folderUser}`); expect(toolbar.actions.isButtonPresent('Download')).toBe(true, `Download is not enabled for ${folderUser}`); @@ -490,21 +493,21 @@ describe('Toolbar actions - single selection : ', () => { }); it('actions are displayed when a file is selected', () => { - dataTable.clickOnRowByContainingText(fileForDelete) + dataTable.clickOnItemName(fileForDelete) .then(() => { expect(toolbar.actions.isEmpty()).toBe(false, `actions not displayed for ${fileForDelete}`); }); }); it('actions are displayed when a folder is selected', () => { - dataTable.clickOnRowByContainingText(folderForDelete) + dataTable.clickOnItemName(folderForDelete) .then(() => { expect(toolbar.actions.isEmpty()).toBe(false, `actions not displayed for ${folderForDelete}`); }); }); it('correct actions appear when a file is selected', () => { - dataTable.clickOnRowByContainingText(fileForDelete) + dataTable.clickOnItemName(fileForDelete) .then(() => { expect(toolbar.actions.isButtonPresent('Permanently delete')) .toBe(true, `Permanently delete is not displayed for ${fileForDelete}`); @@ -513,7 +516,7 @@ describe('Toolbar actions - single selection : ', () => { }); it('correct actions appear when a folder is selected', () => { - dataTable.clickOnRowByContainingText(folderForDelete) + dataTable.clickOnItemName(folderForDelete) .then(() => { expect(toolbar.actions.isButtonPresent('Permanently delete')) .toBe(true, `Permanently delete is displayed for ${folderForDelete}`); diff --git a/e2e/suites/list-views/empty-list.test.ts b/e2e/suites/list-views/empty-list.test.ts index 223c8588e..d5c2d0856 100644 --- a/e2e/suites/list-views/empty-list.test.ts +++ b/e2e/suites/list-views/empty-list.test.ts @@ -15,8 +15,6 @@ * limitations under the License. */ -import { browser, by } from 'protractor'; - import { APP_ROUTES, SITE_VISIBILITY, SITE_ROLES, SIDEBAR_LABELS } from '../../configs'; import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; import { Utils } from '../../utilities/utils'; diff --git a/e2e/suites/list-views/personal-files.test.ts b/e2e/suites/list-views/personal-files.test.ts index d2e079c54..232250fbc 100644 --- a/e2e/suites/list-views/personal-files.test.ts +++ b/e2e/suites/list-views/personal-files.test.ts @@ -134,7 +134,7 @@ describe('Personal Files', () => { .then(response => response.data.entry.id); const navigatePromise = dataTable - .doubleClickOnRowByContainingText(userFolder) + .doubleClickOnItemName(userFolder) .then(() => dataTable.waitForHeader()); Promise @@ -158,7 +158,7 @@ describe('Personal Files', () => { const { actions } = personalFilesPage.toolbar; dataTable - .clickOnRowByContainingText(userFolder) + .clickOnItemName(userFolder) .then(() => { expect(actions.isEmpty()).toBe(false, 'Toolbar to be present'); }) diff --git a/e2e/suites/pagination/pagination.test.ts b/e2e/suites/pagination/pagination.test.ts index e510e3973..f703eba55 100644 --- a/e2e/suites/pagination/pagination.test.ts +++ b/e2e/suites/pagination/pagination.test.ts @@ -65,14 +65,16 @@ describe('Pagination', () => { beforeEach(done => { personalFilesPage.load() .then(() => dataTable.waitForHeader()) - .then(() => dataTable.doubleClickOnRowByContainingText(content.name)) + .then(() => dataTable.doubleClickOnItemName(content.name)) .then(() => dataTable.sortByColumn('Name')) .then(done); }); afterAll(done => { logoutPage.load() - .then(() => nodesApi.deleteNodes([ content.name ])) + .then(() => { + nodesApi.deleteNodes([ content.name ]); + }) .then(done); }); @@ -116,7 +118,7 @@ describe('Pagination', () => { it('changes the current page from menu', () => { pagination.openCurrentPageMenu() - .then(menu => menu.clicktNthItem(3)) + .then(menu => menu.clickNthItem(3)) .then(() => dataTable.waitForHeader()) .then(() => { expect(pagination.range.getText()).toContain('51-75 of 101', 'Range'); @@ -140,7 +142,7 @@ describe('Pagination', () => { it('navigates to previous page', () => { pagination.openCurrentPageMenu() - .then(menu => menu.clicktNthItem(2)) + .then(menu => menu.clickNthItem(2)) .then(() => dataTable.waitForHeader()) .then(() => pagination.previousButton.click()) .then(() => dataTable.waitForHeader()) @@ -153,7 +155,7 @@ describe('Pagination', () => { it('has one item on the last page', () => { pagination.openCurrentPageMenu() - .then(menu => menu.clicktNthItem(5)) + .then(menu => menu.clickNthItem(5)) .then(() => dataTable.waitForHeader()) .then(() => { expect(dataTable.countRows()).toBe(1, 'Single item on the last page'); diff --git a/e2e/utilities/repo-client/apis/favorites/favorites-api.ts b/e2e/utilities/repo-client/apis/favorites/favorites-api.ts index e2b0c4ee0..c8ab9a945 100644 --- a/e2e/utilities/repo-client/apis/favorites/favorites-api.ts +++ b/e2e/utilities/repo-client/apis/favorites/favorites-api.ts @@ -52,6 +52,12 @@ export class FavoritesApi extends RepoApi { .catch(this.handleError); } + addFavoritesByIds(nodeType: string, ids: string[]): Promise { + return ids.reduce((previous, current) => ( + previous.then(() => this.addFavoriteById(nodeType, current)) + ), Promise.resolve()); + } + getFavorite(api: RepoClient, name: string): Promise { return api.nodes.getNodeByPath(name) .then((response) => { diff --git a/e2e/utilities/repo-client/apis/nodes/nodes-api.ts b/e2e/utilities/repo-client/apis/nodes/nodes-api.ts index 71dc14017..90eb669c0 100644 --- a/e2e/utilities/repo-client/apis/nodes/nodes-api.ts +++ b/e2e/utilities/repo-client/apis/nodes/nodes-api.ts @@ -33,6 +33,12 @@ export class NodesApi extends RepoApi { .catch(this.handleError); } + getNodeDescription(name: string): Promise { + return this.getNodeByPath(name) + .then(response => response.data.entry.properties['cm:description']) + .catch(() => Promise.resolve('')); + } + deleteNodeById(id: string, permanent: boolean = true): Promise { return this .delete(`/nodes/${id}?permanent=${permanent}`) @@ -47,19 +53,10 @@ export class NodesApi extends RepoApi { .catch(this.handleError); } - getNodeDescription(name: string): Promise { - return this.getNodeByPath(name) - .then(response => response.data.entry.properties['cm:description']) - .catch(() => Promise.resolve('')); - } - - deleteNodes(names: string[], relativePath: string = '', permanent: boolean = true): Promise { - const deletions = names - .map((name: string): any => { - return this.deleteNodeByPath(`${relativePath}/${name}`, permanent); - }); - - return Promise.all(deletions); + deleteNodes(names: string[], relativePath: string = '', permanent: boolean = true): Promise { + return names.reduce((previous, current) => ( + previous.then(() => this.deleteNodeByPath(`${relativePath}/${current}`, permanent)) + ), Promise.resolve()); } deleteNodesById(ids: string[], permanent: boolean = true): Promise { diff --git a/e2e/utilities/repo-client/apis/shared-links/shared-links-api.ts b/e2e/utilities/repo-client/apis/shared-links/shared-links-api.ts index b11854c3f..c04cdcfd1 100644 --- a/e2e/utilities/repo-client/apis/shared-links/shared-links-api.ts +++ b/e2e/utilities/repo-client/apis/shared-links/shared-links-api.ts @@ -28,6 +28,12 @@ export class SharedLinksApi extends RepoApi { .catch(this.handleError); } + shareFilesByIds(ids: string[]): Promise { + return ids.reduce((previous, current) => ( + previous.then(() => this.shareFileById(current)) + ), Promise.resolve()); + } + getSharedLinks(): Promise { return this.get(`/shared-links`) .catch(this.handleError); diff --git a/e2e/utilities/repo-client/apis/sites/sites-api.ts b/e2e/utilities/repo-client/apis/sites/sites-api.ts index 05b3f7e6c..cb316daa1 100644 --- a/e2e/utilities/repo-client/apis/sites/sites-api.ts +++ b/e2e/utilities/repo-client/apis/sites/sites-api.ts @@ -35,7 +35,7 @@ export class SitesApi extends RepoApi { .catch(this.handleError); } - createSite(title: string, visibility: string, details?: Site): Promise { + createOrUpdateSite(title: string, visibility: string, details?: Site): Promise { const site: Site = new Site(title, visibility, details); const onSuccess = (response) => response; const onError = (response) => { @@ -50,12 +50,31 @@ export class SitesApi extends RepoApi { .catch(this.handleError); } + createSite(title: string, visibility: string, details?: Site): Promise { + const site: Site = new Site(title, visibility, details); + return this + .post(`/sites`, { data: site }) + .catch(this.handleError); + } + + createSites(titles: string[], visibility: string): Promise { + return titles.reduce((previous, current) => ( + previous.then(() => this.createSite(current, visibility)) + ), Promise.resolve()); + } + deleteSite(id: string, permanent: boolean = true): Promise { return this .delete(`/sites/${id}?permanent=${permanent}`) .catch(this.handleError); } + deleteSites(ids: string[], permanent: boolean = true): Promise { + return ids.reduce((previous, current) => ( + previous.then(() => this.deleteSite(current)) + ), Promise.resolve()); + } + updateSiteMember(siteId: string, userId: string, role: string): Promise { return this .put(`/sites/${siteId}/members/${userId}`, { data: { role } }) diff --git a/e2e/utilities/repo-client/apis/trashcan/trashcan-api.ts b/e2e/utilities/repo-client/apis/trashcan/trashcan-api.ts index cc50b1465..7a0e143e7 100644 --- a/e2e/utilities/repo-client/apis/trashcan/trashcan-api.ts +++ b/e2e/utilities/repo-client/apis/trashcan/trashcan-api.ts @@ -23,4 +23,24 @@ export class TrashcanApi extends RepoApi { .delete(`/deleted-nodes/${id}`) .catch(this.handleError); } + + getDeletedNodes(): Promise { + return this + .get(`/deleted-nodes?maxItems=1000`) + .catch(this.handleError); + } + + emptyTrash(): Promise { + return this.getDeletedNodes() + .then(resp => { + return resp.data.list.entries.map(entries => entries.entry.id); + }) + .then(ids => { + return ids.reduce((previous, current) => ( + previous.then(() => this.permanentlyDelete(current)) + ), Promise.resolve()); + }) + .catch(this.handleError); + } + } diff --git a/protractor.conf.js b/protractor.conf.js index 9f995ddbb..60ea06d39 100644 --- a/protractor.conf.js +++ b/protractor.conf.js @@ -7,6 +7,9 @@ const jasmineReporters = require('jasmine-reporters'); const projectRoot = path.resolve(__dirname); +const width = 1366; +const height = 768; + exports.config = { allScriptsTimeout: 11000, @@ -55,6 +58,8 @@ exports.config = { project: 'e2e/tsconfig.e2e.json' }); + browser.manage().window().setSize(width, height); + jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({ From c1e9001c38f77e8e79907c3c1b0d671eb7e30e7f Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Tue, 28 Nov 2017 20:03:35 +0000 Subject: [PATCH 33/70] [ACA-1033] pagination fixes (#95) * pagination fixes * test fixes --- src/app/components/favorites/favorites.component.html | 5 ++++- src/app/components/favorites/favorites.component.ts | 7 ++++--- src/app/components/files/files.component.html | 4 +++- src/app/components/files/files.component.ts | 10 +++++++--- src/app/components/libraries/libraries.component.html | 5 ++++- src/app/components/libraries/libraries.component.ts | 7 ++++--- src/app/components/page.component.spec.ts | 2 +- src/app/components/page.component.ts | 8 ++++++++ .../recent-files/recent-files.component.html | 5 ++++- .../components/recent-files/recent-files.component.ts | 6 ++++-- .../shared-files/shared-files.component.html | 5 ++++- .../components/shared-files/shared-files.component.ts | 7 ++++--- src/app/components/trashcan/trashcan.component.html | 5 ++++- src/app/components/trashcan/trashcan.component.ts | 11 +++++++++-- 14 files changed, 64 insertions(+), 23 deletions(-) diff --git a/src/app/components/favorites/favorites.component.html b/src/app/components/favorites/favorites.component.html index 39df9ec91..aaf50b5cb 100644 --- a/src/app/components/favorites/favorites.component.html +++ b/src/app/components/favorites/favorites.component.html @@ -141,6 +141,9 @@ - + + diff --git a/src/app/components/favorites/favorites.component.ts b/src/app/components/favorites/favorites.component.ts index 90f35f0a4..6216a8e3a 100644 --- a/src/app/components/favorites/favorites.component.ts +++ b/src/app/components/favorites/favorites.component.ts @@ -20,7 +20,7 @@ import { Router } from '@angular/router'; import { Subscription } from 'rxjs/Rx'; import { MinimalNodeEntryEntity, MinimalNodeEntity, PathElementEntity, PathInfo } from 'alfresco-js-api'; -import { ContentService, NodesApiService } from '@alfresco/adf-core'; +import { ContentService, NodesApiService, UserPreferencesService } from '@alfresco/adf-core'; import { DocumentListComponent } from '@alfresco/adf-content-services'; import { ContentManagementService } from '../../common/services/content-management.service'; @@ -40,8 +40,9 @@ export class FavoritesComponent extends PageComponent implements OnInit, OnDestr private router: Router, private nodesApi: NodesApiService, private contentService: ContentService, - private content: ContentManagementService) { - super(); + private content: ContentManagementService, + preferences: UserPreferencesService) { + super(preferences); } ngOnInit() { diff --git a/src/app/components/files/files.component.html b/src/app/components/files/files.component.html index fd696572a..b2b693d66 100644 --- a/src/app/components/files/files.component.html +++ b/src/app/components/files/files.component.html @@ -143,8 +143,10 @@ + (change)="load(true, $event)" + (changePageSize)="onChangePageSize($event)"> diff --git a/src/app/components/files/files.component.ts b/src/app/components/files/files.component.ts index 5946bc86a..7b8847f02 100644 --- a/src/app/components/files/files.component.ts +++ b/src/app/components/files/files.component.ts @@ -19,7 +19,10 @@ import { Observable, Subscription } from 'rxjs/Rx'; import { Component, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core'; import { Router, ActivatedRoute, Params } from '@angular/router'; import { MinimalNodeEntity, MinimalNodeEntryEntity, PathElementEntity, NodePaging, PathElement } from 'alfresco-js-api'; -import { UploadService, FileUploadEvent, NodesApiService, ContentService, AlfrescoApiService } from '@alfresco/adf-core'; +import { + UploadService, FileUploadEvent, NodesApiService, + ContentService, AlfrescoApiService, UserPreferencesService +} from '@alfresco/adf-core'; import { BrowsingFilesService } from '../../common/services/browsing-files.service'; import { ContentManagementService } from '../../common/services/content-management.service'; @@ -47,8 +50,9 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { private contentManagementService: ContentManagementService, private browsingFilesService: BrowsingFilesService, private contentService: ContentService, - private apiService: AlfrescoApiService) { - super(); + private apiService: AlfrescoApiService, + preferences: UserPreferencesService) { + super(preferences); } ngOnInit() { diff --git a/src/app/components/libraries/libraries.component.html b/src/app/components/libraries/libraries.component.html index 72d3ffe9d..076fb6d81 100644 --- a/src/app/components/libraries/libraries.component.html +++ b/src/app/components/libraries/libraries.component.html @@ -64,6 +64,9 @@ - + + diff --git a/src/app/components/libraries/libraries.component.ts b/src/app/components/libraries/libraries.component.ts index ccf5a111a..e6b141bc5 100644 --- a/src/app/components/libraries/libraries.component.ts +++ b/src/app/components/libraries/libraries.component.ts @@ -17,7 +17,7 @@ import { Component, ViewChild } from '@angular/core'; import { Router, ActivatedRoute } from '@angular/router'; -import { NodesApiService } from '@alfresco/adf-core'; +import { NodesApiService, UserPreferencesService } from '@alfresco/adf-core'; import { DocumentListComponent, ShareDataRow } from '@alfresco/adf-content-services'; import { PageComponent } from '../page.component'; @@ -33,8 +33,9 @@ export class LibrariesComponent extends PageComponent { constructor( private nodesApi: NodesApiService, private route: ActivatedRoute, - private router: Router) { - super(); + private router: Router, + preferences: UserPreferencesService) { + super(preferences); } makeLibraryTooltip(library: any): string { diff --git a/src/app/components/page.component.spec.ts b/src/app/components/page.component.spec.ts index fa45ed439..f8f922dff 100644 --- a/src/app/components/page.component.spec.ts +++ b/src/app/components/page.component.spec.ts @@ -23,7 +23,7 @@ class TestClass extends PageComponent { node: any; constructor() { - super(); + super(null); } fetchNodes(parentNodeId?: string, options?: any) { diff --git a/src/app/components/page.component.ts b/src/app/components/page.component.ts index 133ae97c7..5b19a8f1d 100644 --- a/src/app/components/page.component.ts +++ b/src/app/components/page.component.ts @@ -16,6 +16,7 @@ */ import { MinimalNodeEntity, MinimalNodeEntryEntity, NodePaging, Pagination } from 'alfresco-js-api'; +import { UserPreferencesService } from '@alfresco/adf-core'; export abstract class PageComponent { @@ -31,6 +32,9 @@ export abstract class PageComponent { abstract fetchNodes(parentNodeId?: string, options?: any): void; + constructor(private preferences: UserPreferencesService) { + } + onFetchError(error: any) { this.isLoading = false; } @@ -121,4 +125,8 @@ export abstract class PageComponent { return false; } + + onChangePageSize(event: Pagination): void { + this.preferences.paginationSize = event.maxItems; + } } diff --git a/src/app/components/recent-files/recent-files.component.html b/src/app/components/recent-files/recent-files.component.html index f6f64625d..e6373f5a3 100644 --- a/src/app/components/recent-files/recent-files.component.html +++ b/src/app/components/recent-files/recent-files.component.html @@ -130,6 +130,9 @@ - + + diff --git a/src/app/components/recent-files/recent-files.component.ts b/src/app/components/recent-files/recent-files.component.ts index 6a32a6d6c..4444fe829 100644 --- a/src/app/components/recent-files/recent-files.component.ts +++ b/src/app/components/recent-files/recent-files.component.ts @@ -19,6 +19,7 @@ import { Subscription } from 'rxjs/Rx'; import { Component, ViewChild, OnInit, OnDestroy } from '@angular/core'; import { Router } from '@angular/router'; import { MinimalNodeEntryEntity } from 'alfresco-js-api'; +import { UserPreferencesService } from '@alfresco/adf-core'; import { DocumentListComponent } from '@alfresco/adf-content-services'; import { ContentManagementService } from '../../common/services/content-management.service'; @@ -36,8 +37,9 @@ export class RecentFilesComponent extends PageComponent implements OnInit, OnDes constructor( private router: Router, - private content: ContentManagementService) { - super(); + private content: ContentManagementService, + preferences: UserPreferencesService) { + super(preferences); } ngOnInit() { diff --git a/src/app/components/shared-files/shared-files.component.html b/src/app/components/shared-files/shared-files.component.html index 662bd616e..898f606ba 100644 --- a/src/app/components/shared-files/shared-files.component.html +++ b/src/app/components/shared-files/shared-files.component.html @@ -138,6 +138,9 @@ - + + diff --git a/src/app/components/shared-files/shared-files.component.ts b/src/app/components/shared-files/shared-files.component.ts index 129c885e7..47079bb0e 100644 --- a/src/app/components/shared-files/shared-files.component.ts +++ b/src/app/components/shared-files/shared-files.component.ts @@ -19,7 +19,7 @@ import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core'; import { Router } from '@angular/router'; import { Subscription } from 'rxjs/Rx'; import { MinimalNodeEntity } from 'alfresco-js-api'; -import { AlfrescoApiService } from '@alfresco/adf-core'; +import { AlfrescoApiService, UserPreferencesService } from '@alfresco/adf-core'; import { DocumentListComponent } from '@alfresco/adf-content-services'; import { ContentManagementService } from '../../common/services/content-management.service'; @@ -38,8 +38,9 @@ export class SharedFilesComponent extends PageComponent implements OnInit, OnDes constructor( private router: Router, private content: ContentManagementService, - private apiService: AlfrescoApiService) { - super(); + private apiService: AlfrescoApiService, + preferences: UserPreferencesService) { + super(preferences); } ngOnInit() { diff --git a/src/app/components/trashcan/trashcan.component.html b/src/app/components/trashcan/trashcan.component.html index e91fc0bac..3ac971eea 100644 --- a/src/app/components/trashcan/trashcan.component.html +++ b/src/app/components/trashcan/trashcan.component.html @@ -94,6 +94,9 @@ - + + diff --git a/src/app/components/trashcan/trashcan.component.ts b/src/app/components/trashcan/trashcan.component.ts index 9dc0040b1..1301e41d9 100644 --- a/src/app/components/trashcan/trashcan.component.ts +++ b/src/app/components/trashcan/trashcan.component.ts @@ -17,7 +17,8 @@ import { Component, ViewChild, OnInit, OnDestroy } from '@angular/core'; import { Subscription } from 'rxjs/Rx'; - +import { Pagination } from 'alfresco-js-api'; +import { UserPreferencesService } from '@alfresco/adf-core'; import { DocumentListComponent } from '@alfresco/adf-content-services'; import { ContentManagementService } from '../../common/services/content-management.service'; @@ -29,7 +30,9 @@ export class TrashcanComponent implements OnInit, OnDestroy { @ViewChild(DocumentListComponent) documentList; - constructor(private contentManagementService: ContentManagementService) {} + constructor( + private contentManagementService: ContentManagementService, + private preferences: UserPreferencesService) {} ngOnInit() { this.subscriptions.push(this.contentManagementService.restoreNode.subscribe(() => this.refresh())); @@ -43,4 +46,8 @@ export class TrashcanComponent implements OnInit, OnDestroy { ngOnDestroy() { this.subscriptions.forEach(s => s.unsubscribe()); } + + onChangePageSize(event: Pagination): void { + this.preferences.paginationSize = event.maxItems; + } } From f6f7b0bdf3ae29d8de5ecb41699837c67a2fb1b4 Mon Sep 17 00:00:00 2001 From: Adina Parpalita Date: Tue, 28 Nov 2017 23:29:07 +0200 Subject: [PATCH 34/70] add tests for pagination on multiple list views (#97) --- e2e/components/data-table/data-table.ts | 1 + e2e/suites/pagination/pagination.test.ts | 629 ++++++++++++++++++++--- 2 files changed, 566 insertions(+), 64 deletions(-) diff --git a/e2e/components/data-table/data-table.ts b/e2e/components/data-table/data-table.ts index 9192147e3..951ce2aa5 100644 --- a/e2e/components/data-table/data-table.ts +++ b/e2e/components/data-table/data-table.ts @@ -45,6 +45,7 @@ export class DataTable extends Component { head: ElementFinder = this.component.element(by.css(DataTable.selectors.head)); body: ElementFinder = this.component.element(by.css(DataTable.selectors.body)); + cell = by.css(DataTable.selectors.cell); emptyList: ElementFinder = this.component.element(by.css(DataTable.selectors.emptyListContainer)); emptyFolderDragAndDrop: ElementFinder = this.component.element(by.css(DataTable.selectors.emptyFolderDragAndDrop)); emptyListTitle: ElementFinder = this.component.element(by.css(DataTable.selectors.emptyListTitle)); diff --git a/e2e/suites/pagination/pagination.test.ts b/e2e/suites/pagination/pagination.test.ts index f703eba55..cbeae1cce 100644 --- a/e2e/suites/pagination/pagination.test.ts +++ b/e2e/suites/pagination/pagination.test.ts @@ -15,9 +15,8 @@ * limitations under the License. */ -import { browser } from 'protractor'; - -import { APP_ROUTES } from '../../configs'; +import { browser, protractor, promise } from 'protractor'; +import { SIDEBAR_LABELS, SITE_VISIBILITY } from '../../configs'; import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; import { Utils } from '../../utilities/utils'; import { RepoClient, NodeContentTree } from '../../utilities/repo-client/repo-client'; @@ -29,138 +28,640 @@ describe('Pagination', () => { admin: new RepoClient(), user: new RepoClient(username, username) }; + const { + nodes: nodesApi, + trashcan: trashApi, + favorites: favoritesApi, + shared: sharedApi, + sites: sitesApi + } = apis.user; const loginPage = new LoginPage(); const logoutPage = new LogoutPage(); + const page = new BrowsingPage(); + const { dataTable, pagination } = page; + + const parent = `parent-${Utils.random()}`; + const files = Array(101) + .fill('file') + .map((name, index): string => `${name}-${index + 1}.txt`); + let filesIds; + + const filesForDelete = Array(101) + .fill('file') + .map((name, index): string => `${name}-${index + 1}.txt`); + let filesDeletedIds; + + function resetToDefaultPageSize(): promise.Promise { + return pagination.openMaxItemsMenu() + .then(menu => menu.clickMenuItem('25')) + .then(() => dataTable.waitForHeader()); + } + + function resetToDefaultPageNumber(): promise.Promise { + return pagination.openCurrentPageMenu() + .then(menu => menu.clickMenuItem('1')) + .then(() => dataTable.waitForHeader()); + } beforeAll(done => { - apis.admin.people - .createUser(username) + apis.admin.people.createUser(username) + .then(() => nodesApi.createFiles(files, parent)) + .then(resp => filesIds = resp.data.list.entries.map(entries => entries.entry.id)) + + .then(() => sharedApi.shareFilesByIds(filesIds)) + + .then(() => favoritesApi.addFavoritesByIds('file', filesIds)) + + .then(() => nodesApi.createFiles(filesForDelete)) + .then(resp => filesDeletedIds = resp.data.list.entries.map(entries => entries.entry.id)) + .then(() => nodesApi.deleteNodesById(filesDeletedIds, false)) + .then(done); }); + afterAll(done => { + Promise.all([ + nodesApi.deleteNodes([ parent ]), + trashApi.emptyTrash() + ]) + .then(done); + }); + xit(''); describe(`on Personal Files`, () => { - const personalFilesPage = new BrowsingPage(APP_ROUTES.PERSONAL_FILES); - const { dataTable, pagination } = personalFilesPage; - - // Generate files - const content: NodeContentTree = { - name: `user-folder-${Utils.random()}`, - files: Array(101) - .fill('file') - .map((name, index): string => `${name}-${index + 1}.txt`) - }; - - const { nodes: nodesApi } = apis.user; - beforeAll(done => { - nodesApi.createContent(content) - .then(() => loginPage.load() - .then(() => loginPage.loginWith(username)) - .then(done)); + loginPage.load() + .then(() => loginPage.loginWith(username)) + .then(done); }); beforeEach(done => { - personalFilesPage.load() + page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES) .then(() => dataTable.waitForHeader()) - .then(() => dataTable.doubleClickOnItemName(content.name)) - .then(() => dataTable.sortByColumn('Name')) + .then(() => dataTable.doubleClickOnItemName(parent)) .then(done); }); + afterEach(done => { + browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done); + }); + afterAll(done => { - logoutPage.load() - .then(() => { - nodesApi.deleteNodes([ content.name ]); - }) - .then(done); + logoutPage.load().then(done); }); - it('has default details', () => { - expect(pagination.range.getText()).toContain('1-25 of 101', 'Range'); - expect(pagination.maxItems.getText()).toContain('25', 'Items per page'); - expect(pagination.currentPage.getText()).toContain('Page 1', 'Current page'); - expect(pagination.totalPages.getText()).toContain('of 5', 'Total pages'); - expect(pagination.previousButton.isEnabled()).toBe(false, 'Previous button'); - expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button'); + it('default values', () => { + expect(pagination.range.getText()).toContain('1-25 of 101'); + expect(pagination.maxItems.getText()).toContain('25'); + expect(pagination.currentPage.getText()).toContain('Page 1'); + expect(pagination.totalPages.getText()).toContain('of 5'); + expect(pagination.previousButton.isEnabled()).toBe(false, 'Previous button is enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); }); - it('has page sizes', () => { + it('page sizes', () => { pagination.openMaxItemsMenu() .then(menu => { const [ first, second, third ] = [1, 2, 3] .map(nth => menu.getNthItem(nth).getText()); - - expect(first).toBe('25', 'Items per page'); - expect(second).toBe('50', 'Items per page'); - expect(third).toBe('100', 'Items per page'); + expect(first).toBe('25'); + expect(second).toBe('50'); + expect(third).toBe('100'); }); }); - it('changes the page size', () => { + it('change the page size', () => { pagination.openMaxItemsMenu() .then(menu => menu.clickMenuItem('50')) .then(() => dataTable.waitForHeader()) .then(() => { - expect(pagination.maxItems.getText()).toContain('50', 'Items per page'); - expect(pagination.totalPages.getText()).toContain('of 3', 'Total pages'); - }); + expect(pagination.maxItems.getText()).toContain('50'); + expect(pagination.totalPages.getText()).toContain('of 3'); + }) + + .then(() => resetToDefaultPageSize()); }); - it('has page items', () => { + it('current page menu items', () => { pagination.openCurrentPageMenu() .then(menu => { - expect(menu.items.count()).toBe(5); + expect(menu.getItemsCount()).toBe(5); }); }); - it('changes the current page from menu', () => { + it('change the current page from menu', () => { pagination.openCurrentPageMenu() .then(menu => menu.clickNthItem(3)) .then(() => dataTable.waitForHeader()) .then(() => { - expect(pagination.range.getText()).toContain('51-75 of 101', 'Range'); - expect(pagination.currentPage.getText()).toContain('Page 3', 'Current page'); - expect(pagination.previousButton.isEnabled()).toBe(true, 'Previous button'); - expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button'); + expect(pagination.range.getText()).toContain('51-75 of 101'); + expect(pagination.currentPage.getText()).toContain('Page 3'); + expect(pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); expect(dataTable.getRowByContainingText('file-60.txt').isPresent()) .toBe(true, 'File not found on page'); - }); + }) + + .then(() => resetToDefaultPageNumber()); }); - it('navigates to next page', () => { + it('navigate to next page', () => { pagination.nextButton.click() .then(() => dataTable.waitForHeader()) .then(() => { - expect(pagination.range.getText()).toContain('26-50 of 101', 'Range'); + expect(pagination.range.getText()).toContain('26-50 of 101'); expect(dataTable.getRowByContainingText('file-30.txt').isPresent()) .toBe(true, 'File not found on page'); - }); + }) + + .then(() => resetToDefaultPageNumber()); }); - it('navigates to previous page', () => { + it('navigate to previous page', () => { pagination.openCurrentPageMenu() .then(menu => menu.clickNthItem(2)) .then(() => dataTable.waitForHeader()) .then(() => pagination.previousButton.click()) .then(() => dataTable.waitForHeader()) .then(() => { - expect(pagination.range.getText()).toContain('1-25 of 101', 'Range'); + expect(pagination.range.getText()).toContain('1-25 of 101'); expect(dataTable.getRowByContainingText('file-12.txt').isPresent()) .toBe(true, 'File not found on page'); - }); + }) + + .then(() => resetToDefaultPageNumber()); }); - it('has one item on the last page', () => { + it('last page', () => { pagination.openCurrentPageMenu() .then(menu => menu.clickNthItem(5)) .then(() => dataTable.waitForHeader()) .then(() => { - expect(dataTable.countRows()).toBe(1, 'Single item on the last page'); - expect(pagination.currentPage.getText()).toContain('Page 5', 'Last page'); - expect(pagination.nextButton.isEnabled()).toBe(false, 'Next button is not enabled'); + expect(dataTable.countRows()).toBe(1, 'Incorrect number of items on the last page'); + expect(pagination.currentPage.getText()).toContain('Page 5'); + expect(pagination.nextButton.isEnabled()).toBe(false, 'Next button is enabled'); + }); + }); + }); + + describe(`on Recent Files`, () => { + beforeAll(done => { + loginPage.load() + .then(() => loginPage.loginWith(username)) + .then(done); + }); + + beforeEach(done => { + page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES) + .then(() => dataTable.waitForHeader()) + .then(done); + }); + + afterEach(done => { + browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done); + }); + + afterAll(done => { + logoutPage.load().then(done); + }); + + it('default values', () => { + expect(pagination.range.getText()).toContain('1-25 of 101'); + expect(pagination.maxItems.getText()).toContain('25'); + expect(pagination.currentPage.getText()).toContain('Page 1'); + expect(pagination.totalPages.getText()).toContain('of 5'); + expect(pagination.previousButton.isEnabled()).toBe(false, 'Previous button is enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); + }); + + it('page sizes', () => { + pagination.openMaxItemsMenu() + .then(menu => { + const [ first, second, third ] = [1, 2, 3] + .map(nth => menu.getNthItem(nth).getText()); + expect(first).toBe('25'); + expect(second).toBe('50'); + expect(third).toBe('100'); + }); + }); + + it('change the page size', () => { + pagination.openMaxItemsMenu() + .then(menu => menu.clickMenuItem('50')) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.maxItems.getText()).toContain('50'); + expect(pagination.totalPages.getText()).toContain('of 3'); + }) + + .then(() => resetToDefaultPageSize()); + }); + + it('current page menu items', () => { + pagination.openCurrentPageMenu() + .then(menu => { + expect(menu.getItemsCount()).toBe(5); + }); + }); + + it('change the current page from menu', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(3)) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('51-75 of 101'); + expect(pagination.currentPage.getText()).toContain('Page 3'); + expect(pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); + expect(dataTable.getRowByContainingText('file-40.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('navigate to next page', () => { + pagination.nextButton.click() + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('26-50 of 101'); + expect(dataTable.getRowByContainingText('file-70.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('navigate to previous page', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(2)) + .then(() => dataTable.waitForHeader()) + .then(() => pagination.previousButton.click()) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('1-25 of 101'); + expect(dataTable.getRowByContainingText('file-88.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('last page', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(5)) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(dataTable.countRows()).toBe(1, 'Incorrect number of items on the last page'); + expect(pagination.currentPage.getText()).toContain('Page 5'); + expect(pagination.nextButton.isEnabled()).toBe(false, 'Next button is enabled'); + }); + }); + }); + + describe(`on Favorites`, () => { + beforeAll(done => { + loginPage.load() + .then(() => loginPage.loginWith(username)) + .then(done); + }); + + beforeEach(done => { + page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES) + .then(() => dataTable.waitForHeader()) + .then(done); + }); + + afterEach(done => { + browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done); + }); + + afterAll(done => { + logoutPage.load().then(done); + }); + + it('default values', () => { + expect(pagination.range.getText()).toContain('1-25 of 101'); + expect(pagination.maxItems.getText()).toContain('25'); + expect(pagination.currentPage.getText()).toContain('Page 1'); + expect(pagination.totalPages.getText()).toContain('of 5'); + expect(pagination.previousButton.isEnabled()).toBe(false, 'Previous button is enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); + }); + + it('page sizes', () => { + pagination.openMaxItemsMenu() + .then(menu => { + const [ first, second, third ] = [1, 2, 3] + .map(nth => menu.getNthItem(nth).getText()); + expect(first).toBe('25'); + expect(second).toBe('50'); + expect(third).toBe('100'); + }); + }); + + it('change the page size', () => { + pagination.openMaxItemsMenu() + .then(menu => menu.clickMenuItem('50')) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.maxItems.getText()).toContain('50'); + expect(pagination.totalPages.getText()).toContain('of 3'); + }) + + .then(() => resetToDefaultPageSize()); + }); + + it('current page menu items', () => { + pagination.openCurrentPageMenu() + .then(menu => { + expect(menu.getItemsCount()).toBe(5); + }); + }); + + it('change the current page from menu', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(3)) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('51-75 of 101'); + expect(pagination.currentPage.getText()).toContain('Page 3'); + expect(pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); + expect(dataTable.getRowByContainingText('file-40.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('navigate to next page', () => { + pagination.nextButton.click() + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('26-50 of 101'); + expect(dataTable.getRowByContainingText('file-70.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('navigate to previous page', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(2)) + .then(() => dataTable.waitForHeader()) + .then(() => pagination.previousButton.click()) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('1-25 of 101'); + expect(dataTable.getRowByContainingText('file-88.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('last page', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(5)) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(dataTable.countRows()).toBe(1, 'Incorrect number of items on the last page'); + expect(pagination.currentPage.getText()).toContain('Page 5'); + expect(pagination.nextButton.isEnabled()).toBe(false, 'Next button is enabled'); + }); + }); + }); + + describe(`on Shared Files`, () => { + beforeAll(done => { + loginPage.load() + .then(() => loginPage.loginWith(username)) + .then(done); + }); + + beforeEach(done => { + page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES) + .then(() => dataTable.waitForHeader()) + .then(done); + }); + + afterEach(done => { + browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done); + }); + + afterAll(done => { + logoutPage.load().then(done); + }); + + it('default values', () => { + expect(pagination.range.getText()).toContain('1-25 of 101'); + expect(pagination.maxItems.getText()).toContain('25'); + expect(pagination.currentPage.getText()).toContain('Page 1'); + expect(pagination.totalPages.getText()).toContain('of 5'); + expect(pagination.previousButton.isEnabled()).toBe(false, 'Previous button is enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); + }); + + it('page sizes', () => { + pagination.openMaxItemsMenu() + .then(menu => { + const [ first, second, third ] = [1, 2, 3] + .map(nth => menu.getNthItem(nth).getText()); + expect(first).toBe('25'); + expect(second).toBe('50'); + expect(third).toBe('100'); + }); + }); + + it('change the page size', () => { + pagination.openMaxItemsMenu() + .then(menu => menu.clickMenuItem('50')) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.maxItems.getText()).toContain('50'); + expect(pagination.totalPages.getText()).toContain('of 3'); + }) + + .then(() => resetToDefaultPageSize()); + }); + + it('current page menu items', () => { + pagination.openCurrentPageMenu() + .then(menu => { + expect(menu.getItemsCount()).toBe(5); + }); + }); + + it('change the current page from menu', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(3)) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('51-75 of 101'); + expect(pagination.currentPage.getText()).toContain('Page 3'); + expect(pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); + expect(dataTable.getRowByContainingText('file-40.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('navigate to next page', () => { + pagination.nextButton.click() + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('26-50 of 101'); + expect(dataTable.getRowByContainingText('file-70.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('navigate to previous page', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(2)) + .then(() => dataTable.waitForHeader()) + .then(() => pagination.previousButton.click()) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('1-25 of 101'); + expect(dataTable.getRowByContainingText('file-88.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('last page', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(5)) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(dataTable.countRows()).toBe(1, 'Incorrect number of items on the last page'); + expect(pagination.currentPage.getText()).toContain('Page 5'); + expect(pagination.nextButton.isEnabled()).toBe(false, 'Next button is enabled'); + }); + }); + }); + + describe(`on Trash`, () => { + beforeAll(done => { + loginPage.load() + .then(() => loginPage.loginWith(username)) + .then(done); + }); + + beforeEach(done => { + page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH) + .then(() => dataTable.waitForHeader()) + .then(done); + }); + + afterEach(done => { + browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done); + }); + + afterAll(done => { + logoutPage.load().then(done); + }); + + it('default values', () => { + expect(pagination.range.getText()).toContain('1-25 of 101'); + expect(pagination.maxItems.getText()).toContain('25'); + expect(pagination.currentPage.getText()).toContain('Page 1'); + expect(pagination.totalPages.getText()).toContain('of 5'); + expect(pagination.previousButton.isEnabled()).toBe(false, 'Previous button is enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); + }); + + it('page sizes', () => { + pagination.openMaxItemsMenu() + .then(menu => { + const [ first, second, third ] = [1, 2, 3] + .map(nth => menu.getNthItem(nth).getText()); + expect(first).toBe('25'); + expect(second).toBe('50'); + expect(third).toBe('100'); + }); + }); + + it('change the page size', () => { + pagination.openMaxItemsMenu() + .then(menu => menu.clickMenuItem('50')) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.maxItems.getText()).toContain('50'); + expect(pagination.totalPages.getText()).toContain('of 3'); + }) + + .then(() => resetToDefaultPageSize()); + }); + + it('current page menu items', () => { + pagination.openCurrentPageMenu() + .then(menu => { + expect(menu.getItemsCount()).toBe(5); + }); + }); + + it('change the current page from menu', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(3)) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('51-75 of 101'); + expect(pagination.currentPage.getText()).toContain('Page 3'); + expect(pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); + expect(dataTable.getRowByContainingText('file-40.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('navigate to next page', () => { + pagination.nextButton.click() + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('26-50 of 101'); + expect(dataTable.getRowByContainingText('file-70.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('navigate to previous page', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(2)) + .then(() => dataTable.waitForHeader()) + .then(() => pagination.previousButton.click()) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('1-25 of 101'); + expect(dataTable.getRowByContainingText('file-88.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('last page', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(5)) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(dataTable.countRows()).toBe(1, 'Incorrect number of items on the last page'); + expect(pagination.currentPage.getText()).toContain('Page 5'); + expect(pagination.nextButton.isEnabled()).toBe(false, 'Next button is enabled'); }); }); }); From 4f9a4cc6bc9ffd88c01b647f01b8f9d83883a202 Mon Sep 17 00:00:00 2001 From: Anni Nygren Date: Wed, 29 Nov 2017 12:09:57 +0000 Subject: [PATCH 35/70] ALL LANGUAGES updated files for Content App based on EN revision 2017-11-22 --- src/assets/i18n/de.json | 54 ++++++++++++++++++++++++++++++-------- src/assets/i18n/es.json | 54 ++++++++++++++++++++++++++++++-------- src/assets/i18n/fr.json | 52 +++++++++++++++++++++++++++++------- src/assets/i18n/it.json | 50 ++++++++++++++++++++++++++++------- src/assets/i18n/ja.json | 52 +++++++++++++++++++++++++++++------- src/assets/i18n/nb.json | 52 +++++++++++++++++++++++++++++------- src/assets/i18n/nl.json | 52 +++++++++++++++++++++++++++++------- src/assets/i18n/pt-BR.json | 52 +++++++++++++++++++++++++++++------- src/assets/i18n/ru.json | 52 +++++++++++++++++++++++++++++------- src/assets/i18n/zh-CN.json | 54 ++++++++++++++++++++++++++++++-------- 10 files changed, 422 insertions(+), 102 deletions(-) diff --git a/src/assets/i18n/de.json b/src/assets/i18n/de.json index 9e6753071..3942d6c57 100644 --- a/src/assets/i18n/de.json +++ b/src/assets/i18n/de.json @@ -1,7 +1,11 @@ { "APP": { + "LANGUAGE": "Sprache", "SIGN_IN": "Anmelden", "SIGN_OUT": "Abmelden", + "PREVIEW": { + "TITLE": "Vorschau" + }, "NEW_MENU": { "LABEL": "Neu", "MENU_ITEMS": { @@ -31,6 +35,10 @@ "SIDENAV_LINK": { "LABEL": "Dateibibliotheken", "TOOLTIP": "Auf Dateibibliotheken zugreifen" + }, + "EMPTY_STATE": { + "TITLE": "Sie sind noch kein Mitglied von Dateibibliotheken", + "TEXT": "Treten Sie Sites bei, um Dateien hochladen, anzeigen und freigeben zu können." } }, "SHARED": { @@ -38,6 +46,10 @@ "SIDENAV_LINK": { "LABEL": "Freigegeben", "TOOLTIP": "Dateien anzeigen, die freigegeben wurden" + }, + "EMPTY_STATE": { + "TITLE": "Keine freigegebenen Dateien oder Ordner", + "TEXT": "Elemente, die Sie mit der Freigabeoption freigeben, werden hier angezeigt." } }, "RECENT": { @@ -45,6 +57,10 @@ "SIDENAV_LINK": { "LABEL": "Kürzlich bearbeitete Dateien", "TOOLTIP": "Dateien anzeigen, die Sie kürzlich bearbeitet haben" + }, + "EMPTY_STATE": { + "TITLE": "Keine aktuellen Dateien", + "TEXT": "Elemente, die Sie in den letzten 30 Tagen hochgeladen oder bearbeitet haben, werden hier angezeigt." } }, "FAVORITES": { @@ -52,6 +68,10 @@ "SIDENAV_LINK": { "LABEL": "Favoriten", "TOOLTIP": "Dateien und Ordner anzeigen, die Sie zu Ihren Favoriten hinzugefügt haben" + }, + "EMPTY_STATE": { + "TITLE": "Keine Dateien oder Ordner als Favoriten markiert", + "TEXT": "Sie können Elemente als Favoriten markieren, um sie später leichter wiederzufinden." } }, "TRASHCAN": { @@ -59,17 +79,25 @@ "SIDENAV_LINK": { "LABEL": "Papierkorb", "TOOLTIP": "Gelöschte Dateien im Papierkorb anzeigen" + }, + "EMPTY_STATE": { + "TITLE": "Papierkorb ist leer", + "FIRST_TEXT": "Elemente, die Sie löschen, werden in den Papierkorb verschoben.", + "SECOND_TEXT": "Leeren Sie den Papierkorb, um Elemente dauerhaft zu löschen." } + }, + "ABOUT": { + "TITLE": "Info" } }, "ACTIONS": { "VIEW": "Anzeigen", - "SHARE": "Freigeben", "EDIT": "Bearbeiten", "DOWNLOAD": "Herunterladen", "COPY": "Kopieren", "MOVE": "Verschieben", "DELETE": "Löschen", + "DELETE_PERMANENT": "Dauerhaft löschen", "MORE": "Weitere Aktionen", "UNDO": "Rückgängig machen", "RESTORE": "Wiederherstellen", @@ -154,13 +182,13 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "{{ number }} Elemente konnten nicht gelöscht werden", - "SINGULAR": "Element '{{ name }}' konnte nicht gelöscht werden" + "SINGULAR": "{{ name }} konnte nicht gelöscht werden" }, "NODES_RESTORE": { "PARTIAL_PLURAL": "{{ number }} Elemente wurden nicht wiederhergestellt, weil es Probleme mit dem Speicherort für die Wiederherstellung gab", - "NODE_EXISTS": "Wiederherstellung nicht möglich, Element '{{ name }}' gibt es bereits", - "LOCATION_MISSING": "Element '{{ name }}' kann nicht wiederhergestellt werden, weil es den ursprünglichen Speicherort nicht mehr gibt", - "GENERIC": "Beim Wiederherstellen des Elements '{{ name }}' ist ein Problem aufgetreten" + "NODE_EXISTS": "Wiederherstellung nicht möglich, {{ name }} gibt es bereits", + "LOCATION_MISSING": "{{ name }} kann nicht wiederhergestellt werden, weil es den ursprünglichen Speicherort nicht mehr gibt", + "GENERIC": "Beim Wiederherstellen von {{ name }} ist ein Problem aufgetreten" } } }, @@ -168,13 +196,13 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "{{ number }} Elemente gelöscht", - "SINGULAR": "Element '{{ name }}' gelöscht", - "PARTIAL_SINGULAR": "Element '{{ name }}' gelöscht, '{{ failed }}' konnte nicht gelöscht werden", + "SINGULAR": "{{ name }} gelöscht", + "PARTIAL_SINGULAR": "{{ name }} gelöscht, {{ failed }} konnte nicht gelöscht werden", "PARTIAL_PLURAL": "{{ number }} Elemente gelöscht, {{ failed }} konnte(n) nicht gelöscht werden" }, "NODES_RESTORE": { "PLURAL": "Wiederherstellung erfolgreich", - "SINGULAR": "Element '{{ name }}' wiederhergestellt" + "SINGULAR": "{{ name }} wiederhergestellt" } }, "NODE_DELETION": { @@ -184,8 +212,12 @@ "PARTIAL_PLURAL": "{{ success }} Elemente gelöscht, {{ failed }} konnte(n) nicht gelöscht werden" }, "NODE_COPY": { - "SINGULAR": "{{ success }} Element kopiert.", - "PLURAL": "{{ success }} Elemente kopiert." + "SINGULAR": "{{ success }} Element kopiert", + "PLURAL": "{{ success }} Elemente kopiert", + "PARTIAL_SINGULAR": "{{ success }} Element kopiert, {{ failed }} konnte(n) nicht kopiert werden.", + "PARTIAL_PLURAL": "{{ success }} Elemente kopiert, {{ failed }} konnte(n) nicht kopiert werden.", + "FAIL_SINGULAR": "{{ failed }} konnte nicht kopiert werden.", + "FAIL_PLURAL": "{{ failed }} Elemente konnten nicht kopiert werden." }, "NODE_MOVE": { "SINGULAR": "{{ success }} Element verschoben.", @@ -199,4 +231,4 @@ } } } -} +} \ No newline at end of file diff --git a/src/assets/i18n/es.json b/src/assets/i18n/es.json index 804d7221d..9f6cf62f9 100644 --- a/src/assets/i18n/es.json +++ b/src/assets/i18n/es.json @@ -1,7 +1,11 @@ { "APP": { + "LANGUAGE": "Idioma", "SIGN_IN": "Iniciar sesión", "SIGN_OUT": "Cerrar sesión", + "PREVIEW": { + "TITLE": "Vista previa" + }, "NEW_MENU": { "LABEL": "Nuevo", "MENU_ITEMS": { @@ -31,6 +35,10 @@ "SIDENAV_LINK": { "LABEL": "Bibliotecas de ficheros", "TOOLTIP": "Acceder a las bibliotecas de ficheros" + }, + "EMPTY_STATE": { + "TITLE": "No es miembro de ninguna biblioteca de ficheros todavía", + "TEXT": "Únase a los sitios para cargar, ver y compartir ficheros." } }, "SHARED": { @@ -38,6 +46,10 @@ "SIDENAV_LINK": { "LABEL": "Compartido", "TOOLTIP": "Ver ficheros que se hayan compartido" + }, + "EMPTY_STATE": { + "TITLE": "No hay carpetas ni ficheros compartidos", + "TEXT": "Los elementos que comparta con la opción Compartir se muestran aquí." } }, "RECENT": { @@ -45,6 +57,10 @@ "SIDENAV_LINK": { "LABEL": "Ficheros recientes", "TOOLTIP": "Ver ficheros que ha editado recientemente" + }, + "EMPTY_STATE": { + "TITLE": "No hay ficheros recientes", + "TEXT": "Los elementos que cargue o edite en los últimos 30 días se muestran aquí." } }, "FAVORITES": { @@ -52,6 +68,10 @@ "SIDENAV_LINK": { "LABEL": "Favoritos", "TOOLTIP": "Ver sus ficheros y carpetas favoritos" + }, + "EMPTY_STATE": { + "TITLE": "No hay ficheros ni carpetas favoritos", + "TEXT": "Lo elementos favoritos que quiera encontrar fácilmente después." } }, "TRASHCAN": { @@ -59,17 +79,25 @@ "SIDENAV_LINK": { "LABEL": "Papelera", "TOOLTIP": "Ver ficheros eliminados en la papelera" + }, + "EMPTY_STATE": { + "TITLE": "La papelera está vacía", + "FIRST_TEXT": "Los elementos que elimine se mueven a la papelera.", + "SECOND_TEXT": "Vacíe la papelera para eliminar los elementos permanentemente." } + }, + "ABOUT": { + "TITLE": "Acerca de" } }, "ACTIONS": { "VIEW": "Ver", - "SHARE": "Compartir", "EDIT": "Editar", "DOWNLOAD": "Descargar", "COPY": "Copiar", "MOVE": "Mover", "DELETE": "Eliminar", + "DELETE_PERMANENT": "Eliminar permanentemente", "MORE": "Más acciones", "UNDO": "Deshacer", "RESTORE": "Restaurar", @@ -154,13 +182,13 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "{{ number }} elementos no se han podido eliminar", - "SINGULAR": "El elemento {{ name }} no se ha podido eliminar" + "SINGULAR": "{{ name }} no se ha podido eliminar" }, "NODES_RESTORE": { "PARTIAL_PLURAL": "{{ number }} elementos no se han restaurado debido a problemas con la ubicación de restauración", - "NODE_EXISTS": "Error en la restauración, el elemento {{ name }} ya existe", - "LOCATION_MISSING": "No se ha podido restaurar el elemento {{ name }}, la ubicación original ya no existe", - "GENERIC": "Error al restaurar el elemento {{ name }}" + "NODE_EXISTS": "Error en la restauración, {{ name }} ya existe", + "LOCATION_MISSING": "No se ha podido restaurar {{ name }}, la ubicación original ya no existe", + "GENERIC": "Error al restaurar {{ name }}" } } }, @@ -168,13 +196,13 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "{{ number }} elementos eliminados", - "SINGULAR": "Elemento {{ name }} eliminado", - "PARTIAL_SINGULAR": "Elemento {{ name }} eliminado, {{ failed }} no se ha podido eliminar", + "SINGULAR": "{{ name }} eliminado", + "PARTIAL_SINGULAR": "{{ name }} eliminado, {{ failed }} no se ha podido eliminar", "PARTIAL_PLURAL": "{{ number }} elementos eliminados, {{ failed }} no se ha podido eliminar" }, "NODES_RESTORE": { "PLURAL": "Restauración satisfactoria", - "SINGULAR": "Elemento {{ name }} restaurado" + "SINGULAR": "{{ name }} restaurado" } }, "NODE_DELETION": { @@ -184,8 +212,12 @@ "PARTIAL_PLURAL": "Se han eliminado {{ success }} elementos, {{ failed }} no se han podido eliminar" }, "NODE_COPY": { - "SINGULAR": "Se ha copiado {{ success }} elemento", - "PLURAL": "Se han copiado {{ success }} elementos" + "SINGULAR": "Se ha copiado el elemento {{ success }}", + "PLURAL": "Se han copiado los elementos {{ success }}", + "PARTIAL_SINGULAR": "Se ha copiado el elemento {{ success }}, {{ failed }} no se ha podido copiar.", + "PARTIAL_PLURAL": "Se han copiado los elementos {{ success }}, {{ failed }} no se han podido copiar.", + "FAIL_SINGULAR": "El elemento {{ failed }} no se ha podido copiar.", + "FAIL_PLURAL": "Los elementos {{ failed }} no se han podido copiar." }, "NODE_MOVE": { "SINGULAR": "Se ha movido {{ success }} elemento.", @@ -199,4 +231,4 @@ } } } -} +} \ No newline at end of file diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json index d4bdfb7de..4fafb0de5 100644 --- a/src/assets/i18n/fr.json +++ b/src/assets/i18n/fr.json @@ -1,7 +1,11 @@ { "APP": { + "LANGUAGE": "Langue", "SIGN_IN": "Connexion", "SIGN_OUT": "Déconnexion", + "PREVIEW": { + "TITLE": "Aperçu" + }, "NEW_MENU": { "LABEL": "Nouveau", "MENU_ITEMS": { @@ -31,6 +35,10 @@ "SIDENAV_LINK": { "LABEL": "Bibliothèques de fichiers", "TOOLTIP": "Accéder aux bibliothèques de fichiers" + }, + "EMPTY_STATE": { + "TITLE": "Vous n'êtes actuellement membre d'aucune Bibliothèque de fichiers", + "TEXT": "Rejoignez des sites pour importer, consulter et partager des fichiers." } }, "SHARED": { @@ -38,6 +46,10 @@ "SIDENAV_LINK": { "LABEL": "Partagé", "TOOLTIP": "Afficher les fichiers qui ont été partagés" + }, + "EMPTY_STATE": { + "TITLE": "Aucun fichier ou dossier partagé", + "TEXT": "Les éléments que vous partagez avec l'option Partager s'affichent ici." } }, "RECENT": { @@ -45,6 +57,10 @@ "SIDENAV_LINK": { "LABEL": "Fichiers récents", "TOOLTIP": "Afficher les fichiers modifiés récemment" + }, + "EMPTY_STATE": { + "TITLE": "Aucun fichier récent", + "TEXT": "Les éléments importés ou modifiés au cours des 30 derniers jours s'affichent ici." } }, "FAVORITES": { @@ -52,6 +68,10 @@ "SIDENAV_LINK": { "LABEL": "Favoris", "TOOLTIP": "Afficher vos fichiers et dossiers favoris" + }, + "EMPTY_STATE": { + "TITLE": "Aucun fichier ou dossier favori", + "TEXT": "Eléments favoris que vous souhaitez retrouver facilement par la suite." } }, "TRASHCAN": { @@ -59,17 +79,25 @@ "SIDENAV_LINK": { "LABEL": "Corbeille", "TOOLTIP": "Afficher les fichiers placés dans la corbeille" + }, + "EMPTY_STATE": { + "TITLE": "La corbeille est vide", + "FIRST_TEXT": "Les éléments que vous supprimez sont placés dans la corbeille.", + "SECOND_TEXT": "Videz la corbeille pour supprimer définitivement les éléments qu'elle contient." } + }, + "ABOUT": { + "TITLE": "A propos de" } }, "ACTIONS": { "VIEW": "Afficher", - "SHARE": "Partager", "EDIT": "Modifier", "DOWNLOAD": "Télécharger", "COPY": "Copier", "MOVE": "Déplacer", "DELETE": "Supprimer", + "DELETE_PERMANENT": "Supprimer définitivement", "MORE": "Plus d'actions", "UNDO": "Annuler", "RESTORE": "Restaurer", @@ -154,13 +182,13 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "{{ number }} éléments n'ont pas pu être supprimés", - "SINGULAR": "L'élément {{ name }} n'a pas pu être supprimé" + "SINGULAR": "{{ name }} n'a pas pu être supprimé" }, "NODES_RESTORE": { "PARTIAL_PLURAL": "{{ number }} éléments n'ont pas été restaurés en raison de problèmes avec l'emplacement de restauration", - "NODE_EXISTS": "Restauration impossible, l'élément {{ name }} existe déjà", - "LOCATION_MISSING": "Impossible de restaurer l'élément {{ name }}, l'emplacement d'origine n'existe plus", - "GENERIC": "Un problème est survenu pendant la restauration de l'élément {{ name }}" + "NODE_EXISTS": "Restauration impossible, {{ name }} existe déjà", + "LOCATION_MISSING": "Impossible de restaurer {{ name }}, l'emplacement d'origine n'existe plus", + "GENERIC": "Un problème est survenu pendant la restauration de {{ name }}" } } }, @@ -168,13 +196,13 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "{{ number }} éléments supprimés", - "SINGULAR": "Elément {{ name }} supprimé", - "PARTIAL_SINGULAR": "Elément {{ name }} supprimé, {{ failed }} n'a/n'ont pas pu être supprimé(s)", + "SINGULAR": "{{ name }} supprimé", + "PARTIAL_SINGULAR": "{{ name }} supprimé, {{ failed }} n'a/n'ont pas pu être supprimé(s)", "PARTIAL_PLURAL": "{{ number }} éléments supprimés, {{ failed }} n'a/n'ont pas pu être supprimé(s)" }, "NODES_RESTORE": { "PLURAL": "Restauration réussie", - "SINGULAR": "Elément {{ name }} restauré" + "SINGULAR": "{{ name }} restauré" } }, "NODE_DELETION": { @@ -185,7 +213,11 @@ }, "NODE_COPY": { "SINGULAR": "{{ success }} élément copié", - "PLURAL": "{{ success }} éléments copiés" + "PLURAL": "{{ success }} éléments copiés", + "PARTIAL_SINGULAR": "{{ success }} élément copié, {{ failed }} n'a/n'ont pas pu être copié(s).", + "PARTIAL_PLURAL": "{{ success }} éléments copiés, {{ failed }} n'a/n'ont pas pu être copié(s).", + "FAIL_SINGULAR": "{{ failed }} élément n'a pas pu être copié.", + "FAIL_PLURAL": "{{ failed }} éléments n'ont pas pu être copiés." }, "NODE_MOVE": { "SINGULAR": "{{ success }} élément déplacé.", @@ -199,4 +231,4 @@ } } } -} +} \ No newline at end of file diff --git a/src/assets/i18n/it.json b/src/assets/i18n/it.json index a6ba1541e..8d01b77d8 100644 --- a/src/assets/i18n/it.json +++ b/src/assets/i18n/it.json @@ -1,7 +1,11 @@ { "APP": { + "LANGUAGE": "Lingua", "SIGN_IN": "Accedi", "SIGN_OUT": "Disconnetti", + "PREVIEW": { + "TITLE": "Anteprima" + }, "NEW_MENU": { "LABEL": "Nuovo", "MENU_ITEMS": { @@ -31,6 +35,10 @@ "SIDENAV_LINK": { "LABEL": "Raccolte file", "TOOLTIP": "Accedi alle raccolte file" + }, + "EMPTY_STATE": { + "TITLE": "L'utente non è ancora membro di alcuna Raccolta file", + "TEXT": "Iscriversi ai siti per caricare, visualizzare e condividere file." } }, "SHARED": { @@ -38,6 +46,10 @@ "SIDENAV_LINK": { "LABEL": "Condiviso", "TOOLTIP": "Visualizza file condivisi" + }, + "EMPTY_STATE": { + "TITLE": "Nessun file o cartella condivisi", + "TEXT": "Gli elementi condivisi con l'opzione Condividi vengono mostrati qui." } }, "RECENT": { @@ -45,6 +57,10 @@ "SIDENAV_LINK": { "LABEL": "File recenti", "TOOLTIP": "Visualizza i file modificati di recente" + }, + "EMPTY_STATE": { + "TITLE": "Nessun file recente", + "TEXT": "Gli elementi caricati o modificati negli ultimi 30 giorni vengono mostrati qui." } }, "FAVORITES": { @@ -52,6 +68,10 @@ "SIDENAV_LINK": { "LABEL": "Preferiti", "TOOLTIP": "Visualizza file e cartelle preferite" + }, + "EMPTY_STATE": { + "TITLE": "Nessun file o cartella preferiti", + "TEXT": "Elementi preferiti da recuperare facilmente in un altro momento." } }, "TRASHCAN": { @@ -59,17 +79,25 @@ "SIDENAV_LINK": { "LABEL": "Cestino", "TOOLTIP": "Visualizza i file eliminati nel cestino" + }, + "EMPTY_STATE": { + "TITLE": "Il cestino è vuoto", + "FIRST_TEXT": "Gli elementi eliminati vengono spostati nel cestino.", + "SECOND_TEXT": "Svuotare il cestino per eliminare definitivamente gli elementi." } + }, + "ABOUT": { + "TITLE": "Informazioni su" } }, "ACTIONS": { "VIEW": "Visualizza", - "SHARE": "Condividi", "EDIT": "Modifica", "DOWNLOAD": "Scarica", "COPY": "Copia", "MOVE": "Sposta", "DELETE": "Elimina", + "DELETE_PERMANENT": "Elimina definitivamente", "MORE": "Altre azioni", "UNDO": "Annulla", "RESTORE": "Ripristina", @@ -154,13 +182,13 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "Impossibile eliminare {{ number }} elementi", - "SINGULAR": "Impossibile eliminare l'elemento {{ name }}" + "SINGULAR": "Impossibile eliminare {{ name }}" }, "NODES_RESTORE": { "PARTIAL_PLURAL": "{{ number }} elementi non ripristinati a causa dei problemi con il percorso di ripristino", - "NODE_EXISTS": "Impossibile ripristinare, elemento {{ name }} già esistente", - "LOCATION_MISSING": "Impossibile ripristinare l'elemento {{ name }}, il percorso originale non esiste più", - "GENERIC": "Si è verificato un problema nel ripristino dell'elemento {{ name }}" + "NODE_EXISTS": "Impossibile eseguire il ripristino. {{ name }} è già esistente.", + "LOCATION_MISSING": "Impossibile ripristinare {{ name }}. Il percorso originale non esiste più.", + "GENERIC": "Si è verificato un problema durante il ripristino di {{ name }}" } } }, @@ -169,7 +197,7 @@ "NODES_PURGE": { "PLURAL": "{{ number }} elementi eliminati", "SINGULAR": "Elemento {{ name }} eliminato", - "PARTIAL_SINGULAR": "Elemento {{ name }} eliminato, impossibile eliminare {{ failed }}", + "PARTIAL_SINGULAR": "Elemento {{ name }} eliminato. Impossibile eliminare l'elemento {{ failed }}.", "PARTIAL_PLURAL": "{{ number }} elementi eliminati, impossibile eliminare {{ failed }}" }, "NODES_RESTORE": { @@ -184,8 +212,12 @@ "PARTIAL_PLURAL": "Elementi {{ success }} eliminati, impossibile eliminare {{ failed }}" }, "NODE_COPY": { - "SINGULAR": "Copiato {{ success }} elemento", - "PLURAL": "Copiati {{ success }} elementi" + "SINGULAR": "Elemento {{ success }} copiato", + "PLURAL": "Elementi {{ success }} copiati", + "PARTIAL_SINGULAR": "Elemento {{ success }} copiato. Impossibile copiare l'elemento {{ failed }}.", + "PARTIAL_PLURAL": "Elementi {{ success }} copiati. Impossibile copiare {{ failed }}.", + "FAIL_SINGULAR": "Impossibile copiare l'elemento {{ failed }}.", + "FAIL_PLURAL": "Impossibile copiare gli elementi {{ failed }}." }, "NODE_MOVE": { "SINGULAR": "Spostato {{ success }} elemento.", @@ -199,4 +231,4 @@ } } } -} +} \ No newline at end of file diff --git a/src/assets/i18n/ja.json b/src/assets/i18n/ja.json index e15849443..54ea2f8c7 100644 --- a/src/assets/i18n/ja.json +++ b/src/assets/i18n/ja.json @@ -1,7 +1,11 @@ { "APP": { + "LANGUAGE": "言語", "SIGN_IN": "サインイン", "SIGN_OUT": "サインアウト", + "PREVIEW": { + "TITLE": "プレビュー" + }, "NEW_MENU": { "LABEL": "新規", "MENU_ITEMS": { @@ -31,6 +35,10 @@ "SIDENAV_LINK": { "LABEL": "ファイルライブラリ", "TOOLTIP": "ファイルライブラリにアクセスします" + }, + "EMPTY_STATE": { + "TITLE": "あなたはまだファイルライブラリのメンバーではありません", + "TEXT": "ファイルをアップロード、表示、共有するサイトに参加してください。" } }, "SHARED": { @@ -38,6 +46,10 @@ "SIDENAV_LINK": { "LABEL": "共有", "TOOLTIP": "共有されているファイルを表示します" + }, + "EMPTY_STATE": { + "TITLE": "共有しているファイルまたはフォルダはありません", + "TEXT": "Share オプションを使って共有しているアイテムがここに表示されます。" } }, "RECENT": { @@ -45,6 +57,10 @@ "SIDENAV_LINK": { "LABEL": "最近使用したファイル", "TOOLTIP": "最近編集したファイルを表示します" + }, + "EMPTY_STATE": { + "TITLE": "最近使ったファイルはありません", + "TEXT": "過去 30 日間にアップロードまたは編集したアイテムがここに表示されます。" } }, "FAVORITES": { @@ -52,6 +68,10 @@ "SIDENAV_LINK": { "LABEL": "お気に入り", "TOOLTIP": "お気に入りのファイルやフォルダを表示します" + }, + "EMPTY_STATE": { + "TITLE": "お気に入りのファイルまたはフォルダはありません", + "TEXT": "後で簡単に見つけたいお気に入りのアイテム。" } }, "TRASHCAN": { @@ -59,17 +79,25 @@ "SIDENAV_LINK": { "LABEL": "ごみ箱", "TOOLTIP": "ごみ箱にある削除済みのファイルを表示します" + }, + "EMPTY_STATE": { + "TITLE": "ごみ箱は空です", + "FIRST_TEXT": "削除したアイテムはごみ箱に移動されます。", + "SECOND_TEXT": "アイテムを完全に削除するには、ごみ箱を空にします。" } + }, + "ABOUT": { + "TITLE": "バージョン情報" } }, "ACTIONS": { "VIEW": "表示", - "SHARE": "共有", "EDIT": "編集", "DOWNLOAD": "ダウンロード", "COPY": "コピー", "MOVE": "移動", "DELETE": "削除", + "DELETE_PERMANENT": "完全に削除する", "MORE": "その他の処理", "UNDO": "元に戻す", "RESTORE": "復元", @@ -154,13 +182,13 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "{{ number }} 件のアイテムを削除できませんでした", - "SINGULAR": "''{{ name }}'' アイテムを削除できませんでした" + "SINGULAR": "{{ name }} を削除できませんでした" }, "NODES_RESTORE": { "PARTIAL_PLURAL": "{{ number }} 件のアイテムが復元されませんでした。復元先の場所に問題があります。", - "NODE_EXISTS": "復元できません。''{{ name }}'' アイテムは既に存在します。", - "LOCATION_MISSING": "''{{ name }}'' アイテムを復元できません。アイテムの元の場所が削除されています。", - "GENERIC": "''{{ name }}'' アイテムの復元中に問題が発生しました" + "NODE_EXISTS": "復元できません。{{ name }} は既に存在します。", + "LOCATION_MISSING": "{{ name }} を復元できません。元の場所が削除されています。", + "GENERIC": "{{ name }} の復元中に問題が発生しました" } } }, @@ -168,13 +196,13 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "{{ number }} 件のアイテムを削除しました", - "SINGULAR": "''{{ name }}'' アイテムを削除しました", - "PARTIAL_SINGULAR": "''{{ name }}'' アイテムを削除しましたが、{{ failed }} 件は削除できませんでした。", + "SINGULAR": "{{ name }} を削除しました", + "PARTIAL_SINGULAR": "{{ name }} を削除しましたが、{{ failed }} 件は削除できませんでした", "PARTIAL_PLURAL": "{{ number }} 件のアイテムを削除しましたが、{{ failed }} 件は削除できませんでした" }, "NODES_RESTORE": { "PLURAL": "正常に復元されました", - "SINGULAR": "''{{ name }}'' アイテムを復元しました" + "SINGULAR": "{{ name }} を復元しました" } }, "NODE_DELETION": { @@ -185,7 +213,11 @@ }, "NODE_COPY": { "SINGULAR": "{{ success }} 件のアイテムをコピーしました", - "PLURAL": "{{ success }} 件のアイテムをコピーしました" + "PLURAL": "{{ success }} 件のアイテムをコピーしました", + "PARTIAL_SINGULAR": "{{ success }} 件のアイテムをコピーしましたが、{{ failed }} 件はコピーできませんでした。", + "PARTIAL_PLURAL": "{{ success }} 件のアイテムをコピーしましたが、{{ failed }} 件はコピーできませんでした。", + "FAIL_SINGULAR": "{{ failed }} 件のアイテムをコピーできませんでした。", + "FAIL_PLURAL": "{{ failed }} 件のアイテムをコピーできませんでした。" }, "NODE_MOVE": { "SINGULAR": "{{ success }} 件のアイテムを移動しました。", @@ -199,4 +231,4 @@ } } } -} +} \ No newline at end of file diff --git a/src/assets/i18n/nb.json b/src/assets/i18n/nb.json index cc43b70ad..c5a141c13 100644 --- a/src/assets/i18n/nb.json +++ b/src/assets/i18n/nb.json @@ -1,7 +1,11 @@ { "APP": { + "LANGUAGE": "Språk", "SIGN_IN": "Logg på", "SIGN_OUT": "Logg ut", + "PREVIEW": { + "TITLE": "Forhåndsvis" + }, "NEW_MENU": { "LABEL": "Ny", "MENU_ITEMS": { @@ -31,6 +35,10 @@ "SIDENAV_LINK": { "LABEL": "Filbiblioteker", "TOOLTIP": "Gå til filbiblioteker" + }, + "EMPTY_STATE": { + "TITLE": "Du er ikke medlem av noen filbiblioteker ennå", + "TEXT": "Bli med i områder for å laste opp, vise og dele filer." } }, "SHARED": { @@ -38,6 +46,10 @@ "SIDENAV_LINK": { "LABEL": "Delt", "TOOLTIP": "Vis filer som er blitt delt" + }, + "EMPTY_STATE": { + "TITLE": "Ingen delte filer eller mapper", + "TEXT": "Elementer du deler via Del-alternativet, vises her." } }, "RECENT": { @@ -45,6 +57,10 @@ "SIDENAV_LINK": { "LABEL": "Nyere filer", "TOOLTIP": "Vis filer som nylig er redigert" + }, + "EMPTY_STATE": { + "TITLE": "Ingen nylige filer", + "TEXT": "Elementer du har lastet opp eller redigert i løpet av de siste 30 dagene, vises her." } }, "FAVORITES": { @@ -52,6 +68,10 @@ "SIDENAV_LINK": { "LABEL": "Favoritter", "TOOLTIP": "Vis dine favorittfiler og mapper" + }, + "EMPTY_STATE": { + "TITLE": "Ingen favorittfiler eller -mapper", + "TEXT": "Merk elementer som du enkelt ønsker å finne senere, som favorittelementer." } }, "TRASHCAN": { @@ -59,17 +79,25 @@ "SIDENAV_LINK": { "LABEL": "Søppel", "TOOLTIP": "Vis slettede filer i søppelen" + }, + "EMPTY_STATE": { + "TITLE": "Søppel er tomt", + "FIRST_TEXT": "Elementer du sletter, flyttes til Søppel.", + "SECOND_TEXT": "Tøm Søppel for å slette elementer permanent." } + }, + "ABOUT": { + "TITLE": "Om" } }, "ACTIONS": { "VIEW": "Vis", - "SHARE": "Del", "EDIT": "Rediger", "DOWNLOAD": "Last ned", "COPY": "Kopier", "MOVE": "Flytt", "DELETE": "Slett", + "DELETE_PERMANENT": "Slett permanent", "MORE": "Flere handlinger", "UNDO": "Angre", "RESTORE": "Gjenopprett", @@ -154,13 +182,13 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "{{ number }} elementer kan ikke slettes", - "SINGULAR": "Elementet {{ name }} kan ikke slettes" + "SINGULAR": "{{ name }} kunne ikke slettes" }, "NODES_RESTORE": { "PARTIAL_PLURAL": "{{ number }} elementer kan ikke gjenopprettes fordi det finnes problemer med gjenoppretingsstedet", - "NODE_EXISTS": "Kan ikke gjenopprette, {{ name }} item already exists", - "LOCATION_MISSING": "Kan ikke gjenopprette elementet {{ name }}, det opprinnelige stedet finnes ikke lenger", - "GENERIC": "Problem med å gjenopprette elementet {{ name }}" + "NODE_EXISTS": "Kan ikke gjenopprette, {{ name }} finnes allerede", + "LOCATION_MISSING": "Kan ikke gjenopprette {{ name }}, det opprinnelige stedet finnes ikke lenger", + "GENERIC": "Problem med å gjenopprette {{ name }}" } } }, @@ -168,13 +196,13 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "{{ number }} elementer slettet", - "SINGULAR": "Elementet {{ name }} slettet", - "PARTIAL_SINGULAR": "Elementet {{ name }} slettet, {{ failed }} kan ikke slettes", + "SINGULAR": "{{ name }} slettet", + "PARTIAL_SINGULAR": "{{ name }} slettet, {{ failed }} kunne ikke slettes", "PARTIAL_PLURAL": "{{ number }} elementer slettet, {{ failed }} kan ikke slettes" }, "NODES_RESTORE": { "PLURAL": "Er nå gjenopprettet", - "SINGULAR": "Elementet {{ name }} gjenopprettet" + "SINGULAR": "{{ name }} gjenopprettet" } }, "NODE_DELETION": { @@ -185,7 +213,11 @@ }, "NODE_COPY": { "SINGULAR": "Kopierte {{ success }} element", - "PLURAL": "Kopierte {{ success }} elementer" + "PLURAL": "Kopierte {{ success }} elementer", + "PARTIAL_SINGULAR": "Kopierte {{ success }} element, {{ failed }} kunne ikke kopieres.", + "PARTIAL_PLURAL": "Kopierte {{ success }} elementer, {{ failed }} kunne ikke kopieres.", + "FAIL_SINGULAR": "{{ failed }} element kunne ikke kopieres.", + "FAIL_PLURAL": "{{ failed }} elementer kunne ikke kopieres." }, "NODE_MOVE": { "SINGULAR": "Flyttet {{ success }} element.", @@ -199,4 +231,4 @@ } } } -} +} \ No newline at end of file diff --git a/src/assets/i18n/nl.json b/src/assets/i18n/nl.json index 95fab1cd9..0e94a53e3 100644 --- a/src/assets/i18n/nl.json +++ b/src/assets/i18n/nl.json @@ -1,7 +1,11 @@ { "APP": { + "LANGUAGE": "Taal", "SIGN_IN": "Aanmelden", "SIGN_OUT": "Afmelden", + "PREVIEW": { + "TITLE": "Preview" + }, "NEW_MENU": { "LABEL": "Nieuw", "MENU_ITEMS": { @@ -31,6 +35,10 @@ "SIDENAV_LINK": { "LABEL": "Bestandsbibliotheken", "TOOLTIP": "Toegang krijgen tot bestandsbibliotheken" + }, + "EMPTY_STATE": { + "TITLE": "U bent nog geen lid van een bestandsbibliotheek", + "TEXT": "Word lid van sites om bestanden te kunnen uploaden, weergeven en delen." } }, "SHARED": { @@ -38,6 +46,10 @@ "SIDENAV_LINK": { "LABEL": "Gedeeld", "TOOLTIP": "Bestanden weergeven die zijn gedeeld" + }, + "EMPTY_STATE": { + "TITLE": "Geen gedeelde bestanden of mappen", + "TEXT": "Items die u deelt met de optie Delen worden hier weergegeven." } }, "RECENT": { @@ -45,6 +57,10 @@ "SIDENAV_LINK": { "LABEL": "Recente bestanden", "TOOLTIP": "Bestand weergeven die u onlangs hebt bewerkt" + }, + "EMPTY_STATE": { + "TITLE": "Geen recente bestanden", + "TEXT": "Items die u de afgelopen 30 dagen hebt geüpload of bewerkt worden hier weergegeven." } }, "FAVORITES": { @@ -52,6 +68,10 @@ "SIDENAV_LINK": { "LABEL": "Favorieten", "TOOLTIP": "Uw favoriete bestanden en mappen weergeven" + }, + "EMPTY_STATE": { + "TITLE": "Geen favoriete bestanden of mappen", + "TEXT": "Favoriete items die u later gemakkelijk wilt kunnen vinden." } }, "TRASHCAN": { @@ -59,17 +79,25 @@ "SIDENAV_LINK": { "LABEL": "Prullenbak", "TOOLTIP": "Verwijderde bestanden in de prullenbak weergeven" + }, + "EMPTY_STATE": { + "TITLE": "Prullenbak is leeg", + "FIRST_TEXT": "Items die u verwijdert worden verplaatst naar de prullenbak.", + "SECOND_TEXT": "Maak de prullenmand leeg om items definitief te verwijderen." } + }, + "ABOUT": { + "TITLE": "Info" } }, "ACTIONS": { "VIEW": "Weergeven", - "SHARE": "Delen", "EDIT": "Bewerken", "DOWNLOAD": "Downloaden", "COPY": "Kopiëren", "MOVE": "Verplaatsen", "DELETE": "Verwijderen", + "DELETE_PERMANENT": "Definitief verwijderen", "MORE": "Meer acties", "UNDO": "Ongedaan maken", "RESTORE": "Herstellen", @@ -154,13 +182,13 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "Kan {{ number }} items niet verwijderen", - "SINGULAR": "Kan item {{ name }} niet verwijderen" + "SINGULAR": "Kan {{ name }} niet verwijderen" }, "NODES_RESTORE": { "PARTIAL_PLURAL": "Kan {{ number }} items niet herstellen vanwege problemen met de herstellocatie", - "NODE_EXISTS": "Herstellen niet mogelijk, het item {{ name }} bestaat al", - "LOCATION_MISSING": "Kan het item {{ name }} niet herstellen, de oorspronkelijke locatie bestaat niet meer", - "GENERIC": "Er is een probleem opgetreden bij het herstellen van het item {{ name }}" + "NODE_EXISTS": "Herstellen niet mogelijk, {{ name }} bestaat al", + "LOCATION_MISSING": "Kan {{ name }} niet herstellen, de oorspronkelijke locatie bestaat niet meer", + "GENERIC": "Er is een probleem opgetreden bij het herstellen van {{ name }}" } } }, @@ -168,13 +196,13 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "{{ number }} items verwijderd", - "SINGULAR": "Item {{ name }} verwijderd", - "PARTIAL_SINGULAR": "Item {{ name }} verwijderd, kan {{ failed }} niet verwijderen", + "SINGULAR": "{{ name }} verwijderd", + "PARTIAL_SINGULAR": "{{ name }} verwijderd, kan {{ failed }} niet verwijderen", "PARTIAL_PLURAL": "{{ number }} items verwijderd, kan {{ failed }} niet verwijderen" }, "NODES_RESTORE": { "PLURAL": "Herstellen geslaagd", - "SINGULAR": "Item {{ name }} hersteld" + "SINGULAR": "{{ name }} hersteld" } }, "NODE_DELETION": { @@ -185,7 +213,11 @@ }, "NODE_COPY": { "SINGULAR": "{{ success }} item gekopieerd", - "PLURAL": "{{ success }} items gekopieerd" + "PLURAL": "{{ success }} items gekopieerd", + "PARTIAL_SINGULAR": "{{ success }} item gekopieerd, kan {{ failed }} niet kopiëren.", + "PARTIAL_PLURAL": "{{ success }} items gekopieerd, kan {{ failed }} niet kopiëren.", + "FAIL_SINGULAR": "Kan {{ failed }} item niet kopiëren.", + "FAIL_PLURAL": "Kan {{ failed }} items niet kopiëren." }, "NODE_MOVE": { "SINGULAR": "{{ success }} item verplaatst.", @@ -199,4 +231,4 @@ } } } -} +} \ No newline at end of file diff --git a/src/assets/i18n/pt-BR.json b/src/assets/i18n/pt-BR.json index 351eedb79..4b2d280d8 100644 --- a/src/assets/i18n/pt-BR.json +++ b/src/assets/i18n/pt-BR.json @@ -1,7 +1,11 @@ { "APP": { + "LANGUAGE": "Idioma", "SIGN_IN": "Entrar", "SIGN_OUT": "Sair", + "PREVIEW": { + "TITLE": "Visualizar" + }, "NEW_MENU": { "LABEL": "Novo", "MENU_ITEMS": { @@ -31,6 +35,10 @@ "SIDENAV_LINK": { "LABEL": "Bibliotecas de arquivos", "TOOLTIP": "Acessar bibliotecas de arquivos" + }, + "EMPTY_STATE": { + "TITLE": "Você ainda não é membro de nenhuma biblioteca de arquivos", + "TEXT": "Entre em sites para carregar, visualizar e compartilhar arquivos." } }, "SHARED": { @@ -38,6 +46,10 @@ "SIDENAV_LINK": { "LABEL": "Compartilhado", "TOOLTIP": "Visualize arquivos que foram compartilhados" + }, + "EMPTY_STATE": { + "TITLE": "Não há nenhum arquivo ou pasta compartilhados", + "TEXT": "Os itens que você compartilhar usando a opção Compartilhar são exibidos aqui." } }, "RECENT": { @@ -45,6 +57,10 @@ "SIDENAV_LINK": { "LABEL": "Arquivos recentes", "TOOLTIP": "Visualize arquivos que você editou recentemente" + }, + "EMPTY_STATE": { + "TITLE": "Não há nenhum arquivo recente", + "TEXT": "Os itens que você carregar ou editar nos últimos 30 dias são exibidos aqui." } }, "FAVORITES": { @@ -52,6 +68,10 @@ "SIDENAV_LINK": { "LABEL": "Favoritos", "TOOLTIP": "Visualize seus arquivos e pastas favoritos" + }, + "EMPTY_STATE": { + "TITLE": "Não há nenhum arquivo ou pasta favoritos", + "TEXT": "Itens favoritos que você queira encontrar facilmente depois." } }, "TRASHCAN": { @@ -59,17 +79,25 @@ "SIDENAV_LINK": { "LABEL": "Lixeira", "TOOLTIP": "Visualize arquivos excluídos na lixeira" + }, + "EMPTY_STATE": { + "TITLE": "A lixeira está vazia", + "FIRST_TEXT": "Os itens que você excluir são movidos para a lixeira.", + "SECOND_TEXT": "Esvazie a lixeira para excluir itens permanentemente." } + }, + "ABOUT": { + "TITLE": "Sobre" } }, "ACTIONS": { "VIEW": "Visualizar", - "SHARE": "Compartilhar", "EDIT": "Editar", "DOWNLOAD": "Download", "COPY": "Copiar", "MOVE": "Mover", "DELETE": "Excluir", + "DELETE_PERMANENT": "Excluir permanentemente", "MORE": "Mais ações", "UNDO": "Desfazer", "RESTORE": "Restaurar", @@ -154,13 +182,13 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "Não foi possível excluir {{ number }} itens", - "SINGULAR": "Não foi possível excluir o item {{ name }}" + "SINGULAR": "Não foi possível excluir {{ name }}" }, "NODES_RESTORE": { "PARTIAL_PLURAL": "{{ number }} itens não restaurados devido a problemas com o local da restauração", - "NODE_EXISTS": "Não foi possível restaurar, o item {{ name }} já existe", - "LOCATION_MISSING": "Não foi possível restaurar o item {{ name }}, o local original não existe mais", - "GENERIC": "Houve um problema ao restaurar o item {{ name }}" + "NODE_EXISTS": "Não foi possível restaurar, {{ name }} já existe", + "LOCATION_MISSING": "Não foi possível restaurar {{ name }}, o local original não existe mais", + "GENERIC": "Houve um problema ao restaurar {{ name }}" } } }, @@ -168,13 +196,13 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "{{ number }} itens excluídos", - "SINGULAR": "Item {{ name }} excluído", - "PARTIAL_SINGULAR": "Item {{ name }} excluído, não foi possível excluir {{ failed }}", + "SINGULAR": "{{ name }} excluído", + "PARTIAL_SINGULAR": "{{ name }} excluído, não foi possível excluir {{ failed }}", "PARTIAL_PLURAL": "{{ number }} itens excluídos, não foi possível excluir {{ failed }}" }, "NODES_RESTORE": { "PLURAL": "Restauração bem-sucedida", - "SINGULAR": "Item {{ name }} restaurado" + "SINGULAR": "{{ name }} restaurado" } }, "NODE_DELETION": { @@ -185,7 +213,11 @@ }, "NODE_COPY": { "SINGULAR": "Item {{ success }} copiado", - "PLURAL": "Itens {{ success }} copiados" + "PLURAL": "Itens {{ success }} copiados", + "PARTIAL_SINGULAR": "Item {{ success }} copiado, não foi possível copiar {{ failed }}.", + "PARTIAL_PLURAL": "Itens {{ success }} copiados, não foi possível copiar {{ failed }}.", + "FAIL_SINGULAR": "Não foi possível copiar o item {{ failed }}.", + "FAIL_PLURAL": "Não foi possível copiar os itens {{ failed }}." }, "NODE_MOVE": { "SINGULAR": "Item {{ success }} movido.", @@ -199,4 +231,4 @@ } } } -} +} \ No newline at end of file diff --git a/src/assets/i18n/ru.json b/src/assets/i18n/ru.json index ad6f834ca..8eb811cb7 100644 --- a/src/assets/i18n/ru.json +++ b/src/assets/i18n/ru.json @@ -1,7 +1,11 @@ { "APP": { + "LANGUAGE": "Язык", "SIGN_IN": "Войти", "SIGN_OUT": "Выйти", + "PREVIEW": { + "TITLE": "Предварительный просмотр" + }, "NEW_MENU": { "LABEL": "Создать", "MENU_ITEMS": { @@ -31,6 +35,10 @@ "SIDENAV_LINK": { "LABEL": "Библиотеки файлов", "TOOLTIP": "Получить доступ к библиотекам файлов" + }, + "EMPTY_STATE": { + "TITLE": "Вы пока не являетесь участником ни одной файловой библиотеки", + "TEXT": "Используйте сайты для отправки, просмотра файлов и обмена содержимым." } }, "SHARED": { @@ -38,6 +46,10 @@ "SIDENAV_LINK": { "LABEL": "Общие", "TOOLTIP": "Посмотреть файлы, к которым предоставлен общий доступ" + }, + "EMPTY_STATE": { + "TITLE": "Нет файлов или папок с открытым доступом", + "TEXT": "Здесь показаны элементы, к которым вы открыли доступ с помощью параметра Открыть доступ." } }, "RECENT": { @@ -45,6 +57,10 @@ "SIDENAV_LINK": { "LABEL": "Недавние файлы", "TOOLTIP": "Посмотреть недавно отредактированные вами файлы" + }, + "EMPTY_STATE": { + "TITLE": "Нет недавних файлов", + "TEXT": "Здесь показаны элементы, которые вы отправляли или редактировали за последние 30 дней." } }, "FAVORITES": { @@ -52,6 +68,10 @@ "SIDENAV_LINK": { "LABEL": "Избранное", "TOOLTIP": "Посмотреть ваши избранные файлы и папки" + }, + "EMPTY_STATE": { + "TITLE": "Нет избранных файлов или папок", + "TEXT": "Избранные элементы, которые вам может понадобиться быстро найти в будущем." } }, "TRASHCAN": { @@ -59,17 +79,25 @@ "SIDENAV_LINK": { "LABEL": "Корзина", "TOOLTIP": "Посмотреть удаленные файлы в корзине" + }, + "EMPTY_STATE": { + "TITLE": "Корзина пуста", + "FIRST_TEXT": "Элементы, которые вы удаляете, перемещаются в корзину.", + "SECOND_TEXT": "Очистить корзину, чтобы навсегда удалить эти элементы." } + }, + "ABOUT": { + "TITLE": "Информация" } }, "ACTIONS": { "VIEW": "Посмотреть", - "SHARE": "Открыть доступ", "EDIT": "Редактировать", "DOWNLOAD": "Скачать", "COPY": "Копировать", "MOVE": "Переместить", "DELETE": "Удалить", + "DELETE_PERMANENT": "Удалить навсегда", "MORE": "Больше действий", "UNDO": "Отменить", "RESTORE": "Восстановить", @@ -154,13 +182,13 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "Не удалось удалить элементов: {{ number }}", - "SINGULAR": "Не удалось удалить элемент {{ name }}" + "SINGULAR": "Не удалось удалить {{ name }}" }, "NODES_RESTORE": { "PARTIAL_PLURAL": "Из-за проблем с местоположением восстановления не восстановлено элементов: {{ number }}", - "NODE_EXISTS": "Невозможно восстановить, элемент {{ name }} уже существует", - "LOCATION_MISSING": "Невозможно восстановить элемент {{ name }}, исходное местоположение больше не существует", - "GENERIC": "Возникла проблема с восстановлением элемента {{ name }}" + "NODE_EXISTS": "Невозможно восстановить, {{ name }} уже существует", + "LOCATION_MISSING": "Невозможно восстановить {{ name }}, исходное местоположение больше не существует", + "GENERIC": "Возникла проблема с восстановлением {{ name }}" } } }, @@ -168,13 +196,13 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "Удалено элементов: {{ number }}", - "SINGULAR": "Элемент {{ name }} удален", - "PARTIAL_SINGULAR": "Элемент {{ name }} удален, не удалось удалить: {{ failed }}", + "SINGULAR": "{{ name }} удален", + "PARTIAL_SINGULAR": "{{ name }} удален, не удалось удалить {{ failed }}", "PARTIAL_PLURAL": "Элементов удалено: {{ number }}, не удалось удалить: {{ failed }}" }, "NODES_RESTORE": { "PLURAL": "Восстановлено", - "SINGULAR": "Элемент {{ name }} восстановлен" + "SINGULAR": "{{ name }} восстановлен" } }, "NODE_DELETION": { @@ -185,7 +213,11 @@ }, "NODE_COPY": { "SINGULAR": "Скопирован {{ success }} элемент", - "PLURAL": "Скопировано элементов: {{ success }}" + "PLURAL": "Скопировано элементов: {{ success }}", + "PARTIAL_SINGULAR": "Скопирован {{ success }} элемент, не удалось скопировать {{ failed }}.", + "PARTIAL_PLURAL": "Скопировано элементов: {{ success }}, не удалось скопировать {{ failed }}.", + "FAIL_SINGULAR": "Не удалось скопировать {{ failed }} элемент.", + "FAIL_PLURAL": "Не удалось скопировать элементов: {{ failed }}." }, "NODE_MOVE": { "SINGULAR": "Перемещен {{ success }} элемент.", @@ -199,4 +231,4 @@ } } } -} +} \ No newline at end of file diff --git a/src/assets/i18n/zh-CN.json b/src/assets/i18n/zh-CN.json index 069508a25..a66d4f8db 100644 --- a/src/assets/i18n/zh-CN.json +++ b/src/assets/i18n/zh-CN.json @@ -1,7 +1,11 @@ { "APP": { + "LANGUAGE": "语言", "SIGN_IN": "登录", "SIGN_OUT": "退出", + "PREVIEW": { + "TITLE": "预览" + }, "NEW_MENU": { "LABEL": "新建", "MENU_ITEMS": { @@ -31,6 +35,10 @@ "SIDENAV_LINK": { "LABEL": "文件库", "TOOLTIP": "访问文件库" + }, + "EMPTY_STATE": { + "TITLE": "您还不是任何文件库的成员", + "TEXT": "加入站点以上传、查看和共享文件。" } }, "SHARED": { @@ -38,6 +46,10 @@ "SIDENAV_LINK": { "LABEL": "已共享", "TOOLTIP": "查看已共享的文件" + }, + "EMPTY_STATE": { + "TITLE": "无共享文件或文件夹", + "TEXT": "此处显示了您使用“共享”选项所共享的项目。" } }, "RECENT": { @@ -45,6 +57,10 @@ "SIDENAV_LINK": { "LABEL": "最近的文件", "TOOLTIP": "查看最近编辑的文件" + }, + "EMPTY_STATE": { + "TITLE": "无最近的文件", + "TEXT": "此处显示了您过去 30 天上传或编辑的项目。" } }, "FAVORITES": { @@ -52,6 +68,10 @@ "SIDENAV_LINK": { "LABEL": "收藏夹", "TOOLTIP": "查看您收藏的文件和文件夹" + }, + "EMPTY_STATE": { + "TITLE": "无收藏夹文件或文件夹", + "TEXT": "您想要在以后轻松查找的收藏夹项目。" } }, "TRASHCAN": { @@ -59,17 +79,25 @@ "SIDENAV_LINK": { "LABEL": "回收站", "TOOLTIP": "查看回收站中的已删除文件" + }, + "EMPTY_STATE": { + "TITLE": "回收站为空", + "FIRST_TEXT": "您删除的项目已移至回收站。", + "SECOND_TEXT": "清空回收站以永久删除项目。" } + }, + "ABOUT": { + "TITLE": "关于" } }, "ACTIONS": { "VIEW": "查看", - "SHARE": "共享", "EDIT": "编辑", "DOWNLOAD": "下载", "COPY": "复制", "MOVE": "移动", "DELETE": "删除", + "DELETE_PERMANENT": "永久删除", "MORE": "更多操作", "UNDO": "撤消", "RESTORE": "恢复", @@ -154,13 +182,13 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "{{ number }} 个项目无法删除", - "SINGULAR": "{{ name }} 项目无法删除" + "SINGULAR": "{{ name }} 无法删除" }, "NODES_RESTORE": { "PARTIAL_PLURAL": "{{ number }} 个项目无法恢复,因为恢复位置存在问题", - "NODE_EXISTS": "无法恢复,{{ name }} 项目已存在", - "LOCATION_MISSING": "无法恢复 {{ name }} 项目,原位置不存在", - "GENERIC": "恢复 {{ name }} 项目时出现问题" + "NODE_EXISTS": "无法恢复,{{ name }} 已存在", + "LOCATION_MISSING": "无法恢复 {{ name }},原位置不复存在", + "GENERIC": "恢复 {{ name }} 时出现问题" } } }, @@ -168,13 +196,13 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "{{ number }} 个项目已删除", - "SINGULAR": "{{ name }} 项目已删除", - "PARTIAL_SINGULAR": "{{ name }} 项目已删除,{{ failed }} 无法删除", + "SINGULAR": "{{ name }} 已删除", + "PARTIAL_SINGULAR": "{{ name }} 已删除,{{ failed }} 无法删除", "PARTIAL_PLURAL": "{{ number }} 个项目已删除,{{ failed }} 无法删除" }, "NODES_RESTORE": { "PLURAL": "成功恢复", - "SINGULAR": "{{ name }} 项目已恢复" + "SINGULAR": "{{ name }} 已恢复" } }, "NODE_DELETION": { @@ -184,8 +212,12 @@ "PARTIAL_PLURAL": "已删除 {{ success }} 项目,{{ failed }} 无法删除" }, "NODE_COPY": { - "SINGULAR": "已复制 {{ success }} 个项目", - "PLURAL": "已复制 {{ success }} 个项目" + "SINGULAR": "已复制 {{ success }} 项目", + "PLURAL": "已复制 {{ success }} 个项目", + "PARTIAL_SINGULAR": "已复制 {{ success }} 项目,{{ failed }} 无法复制。", + "PARTIAL_PLURAL": "已复制 {{ success }} 个项目,{{ failed }} 无法复制。", + "FAIL_SINGULAR": "{{ failed }} 项目无法复制。", + "FAIL_PLURAL": "{{ failed }} 个项目无法复制。" }, "NODE_MOVE": { "SINGULAR": "已移动 {{ success }} 项目。", @@ -199,4 +231,4 @@ } } } -} +} \ No newline at end of file From deaed1b81acc044530fbd45d44e42c25ccf6e3a6 Mon Sep 17 00:00:00 2001 From: Cilibiu Bogdan Date: Wed, 29 Nov 2017 22:34:25 +0200 Subject: [PATCH 36/70] [ACA-770] Long file names break the application (#98) --- .../favorites/favorites.component.html | 8 +- src/app/components/files/files.component.html | 6 +- .../libraries/libraries.component.html | 12 +-- .../recent-files/recent-files.component.html | 7 +- .../shared-files/shared-files.component.html | 9 +- .../components/sidenav/sidenav.component.scss | 5 +- .../trashcan/trashcan.component.html | 8 +- src/app/ui/_layout.scss | 4 + .../ui/overrides/_alfresco-document-list.scss | 85 +++++++------------ 9 files changed, 53 insertions(+), 91 deletions(-) diff --git a/src/app/components/favorites/favorites.component.html b/src/app/components/favorites/favorites.component.html index aaf50b5cb..d9ab25982 100644 --- a/src/app/components/favorites/favorites.component.html +++ b/src/app/components/favorites/favorites.component.html @@ -104,12 +104,9 @@ - - {{ value }} - - diff --git a/src/app/components/files/files.component.html b/src/app/components/files/files.component.html index b2b693d66..54cca4ee1 100644 --- a/src/app/components/files/files.component.html +++ b/src/app/components/files/files.component.html @@ -110,12 +110,9 @@ - - {{ value }} - diff --git a/src/app/components/libraries/libraries.component.html b/src/app/components/libraries/libraries.component.html index 076fb6d81..a23bcfc1c 100644 --- a/src/app/components/libraries/libraries.component.html +++ b/src/app/components/libraries/libraries.component.html @@ -37,14 +37,9 @@ - - - {{ makeLibraryTitle(context.row.obj.entry) }} - - + title="APP.DOCUMENT_LIST.COLUMNS.TITLE"> - diff --git a/src/app/components/recent-files/recent-files.component.html b/src/app/components/recent-files/recent-files.component.html index e6373f5a3..891fcaca9 100644 --- a/src/app/components/recent-files/recent-files.component.html +++ b/src/app/components/recent-files/recent-files.component.html @@ -98,12 +98,9 @@ - - {{ value }} - - diff --git a/src/app/components/shared-files/shared-files.component.html b/src/app/components/shared-files/shared-files.component.html index 898f606ba..031f5f924 100644 --- a/src/app/components/shared-files/shared-files.component.html +++ b/src/app/components/shared-files/shared-files.component.html @@ -96,12 +96,9 @@ - - {{ value }} - - diff --git a/src/app/components/sidenav/sidenav.component.scss b/src/app/components/sidenav/sidenav.component.scss index 33d0be7e0..9cf5af4c3 100644 --- a/src/app/components/sidenav/sidenav.component.scss +++ b/src/app/components/sidenav/sidenav.component.scss @@ -40,10 +40,9 @@ $sidenav-menu-item--icon-size: 24px; list-style-type: none; &__item { + padding: $sidenav-menu-item--v-padding 0; + &-link { - padding: - $sidenav-menu-item--v-padding - $sidenav-menu-item--h-padding; padding-left: $sidenav-menu-item--h-padding + 16px + 24px; position: relative; diff --git a/src/app/components/trashcan/trashcan.component.html b/src/app/components/trashcan/trashcan.component.html index 3ac971eea..059044ac2 100644 --- a/src/app/components/trashcan/trashcan.component.html +++ b/src/app/components/trashcan/trashcan.component.html @@ -56,12 +56,9 @@ - - {{ value }} - @@ -94,7 +92,7 @@ - diff --git a/src/app/ui/_layout.scss b/src/app/ui/_layout.scss index 8bcb6cd30..fb54980ad 100644 --- a/src/app/ui/_layout.scss +++ b/src/app/ui/_layout.scss @@ -40,6 +40,10 @@ $app-inner-layout--footer-height: 48px; } .inner-layout { + .no-border { + border: unset + } + display: flex; flex: 1; flex-direction: column; diff --git a/src/app/ui/overrides/_alfresco-document-list.scss b/src/app/ui/overrides/_alfresco-document-list.scss index 718908bf1..a73705b0d 100644 --- a/src/app/ui/overrides/_alfresco-document-list.scss +++ b/src/app/ui/overrides/_alfresco-document-list.scss @@ -7,80 +7,28 @@ adf-document-list { overflow: auto; & > adf-datatable { - display: flex; - flex-direction: column; - flex: 1; - overflow: auto; + height: 100%; } } + .adf-data-table { border: none !important; - .sr-only { - display: none; - } - - th, td { - color: $alfresco-secondary-text-color; - } - - th.adf-data-table-cell--text:nth-child(n+3) { - text-align: center; - } - th, tr, td { + color: $alfresco-secondary-text-color; &:focus { outline: none !important; } } - // TODO: Remove tr background-color once it gets to ADF tbody tr { &:hover, &:focus { background-color: $alfresco-app-color--hue-1; } - } - tr { - &.is-selected { + &.is-selected, &.is-selected:hover { background-color: $alfresco-app-color--hue-1; - - &:hover { - background-color: $alfresco-app-color--hue-1; - } - - .image-table-cell { - position: relative; - - &:before { - content: "\E876"; /* "done" */ - font-family: "Material Icons"; - font-size: 24px; - line-height: 32px; - text-align: center; - color: white; - position: absolute; - width: 32px; - height: 32px; - top: 50%; - left: 50%; - margin-top: -16px; - margin-left: -14px; - border-radius: 100%; - background: #00bcd4; - } - } - } - - .app-name-column { - width: 100%; - - .cell-container { - max-width: 45vw; - text-overflow: ellipsis; - overflow: hidden; - } } } @@ -109,6 +57,31 @@ adf-document-list { .adf-no-content-container { border: none !important; } + + + .adf-data-table-cell--ellipsis { + width: 100%; + } + + .adf-data-table-cell--ellipsis__name { + width: 85%; + } + + .adf-data-table-cell--ellipsis .cell-value, + .adf-data-table-cell--ellipsis__name .cell-value { + display: flex; + align-items: center; + } + + .adf-data-table-cell--ellipsis .adf-datatable-cell, + .adf-data-table-cell--ellipsis__name .adf-datatable-cell { + white-space: nowrap; + display: block; + position: absolute; + max-width: calc(100% - 2em); + overflow: hidden; + text-overflow: ellipsis; + } } .empty-list { From a80f20011474b38a7e31828ac21b80d3c3503e33 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Thu, 30 Nov 2017 01:52:40 +0000 Subject: [PATCH 37/70] upgrade to ADF 2.0 release (#99) --- package.json | 6 +-- yarn.lock | 103 ++++++++++++++++++++++++--------------------------- 2 files changed, 51 insertions(+), 58 deletions(-) diff --git a/package.json b/package.json index 276365066..48be2645e 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,8 @@ }, "private": true, "dependencies": { - "@alfresco/adf-content-services": "2.0.0-c968fbcdacb90946dc00bca3d7b663de94d5a9ad", - "@alfresco/adf-core": "2.0.0-c968fbcdacb90946dc00bca3d7b663de94d5a9ad", + "@alfresco/adf-content-services": "2.0.0", + "@alfresco/adf-core": "2.0.0", "@angular/animations": "5.0.0", "@angular/cdk": "5.0.0-rc0", "@angular/common": "5.0.0", @@ -31,7 +31,7 @@ "@angular/platform-browser-dynamic": "5.0.0", "@angular/router": "5.0.0", "@ngx-translate/core": "8.0.0", - "alfresco-js-api": "2.0.0-beta1", + "alfresco-js-api": "2.0.0", "core-js": "2.4.1", "hammerjs": "2.0.8", "moment-es6": "1.0.0", diff --git a/yarn.lock b/yarn.lock index 00dd32fe0..58008d198 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,11 +2,11 @@ # yarn lockfile v1 -"@alfresco/adf-content-services@2.0.0-c968fbcdacb90946dc00bca3d7b663de94d5a9ad": - version "2.0.0-c968fbcdacb90946dc00bca3d7b663de94d5a9ad" - resolved "https://registry.yarnpkg.com/@alfresco/adf-content-services/-/adf-content-services-2.0.0-c968fbcdacb90946dc00bca3d7b663de94d5a9ad.tgz#4d189cf2df9ff155c439805ad9ccea92181dc5b1" +"@alfresco/adf-content-services@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@alfresco/adf-content-services/-/adf-content-services-2.0.0.tgz#9e9b14549f1c4b9fda47441442f0f90a5763408c" dependencies: - "@alfresco/adf-core" "2.0.0-c968fbcdacb90946dc00bca3d7b663de94d5a9ad" + "@alfresco/adf-core" "2.0.0" "@angular/animations" "5.0.0" "@angular/cdk" "5.0.0-rc0" "@angular/common" "5.0.0" @@ -21,7 +21,7 @@ "@angular/platform-browser-dynamic" "5.0.0" "@angular/router" "5.0.0" "@ngx-translate/core" "8.0.0" - alfresco-js-api "2.0.0-2e4554a3d3a1265d058795c924d55d570dd46de2" + alfresco-js-api "2.0.0" chart.js "2.5.0" core-js "2.4.1" hammerjs "2.0.8" @@ -35,9 +35,9 @@ systemjs "0.19.27" zone.js "0.8.14" -"@alfresco/adf-core@2.0.0-c968fbcdacb90946dc00bca3d7b663de94d5a9ad": - version "2.0.0-c968fbcdacb90946dc00bca3d7b663de94d5a9ad" - resolved "https://registry.yarnpkg.com/@alfresco/adf-core/-/adf-core-2.0.0-c968fbcdacb90946dc00bca3d7b663de94d5a9ad.tgz#bbf289ed254049f7db0406efd94276fa53a9fbf0" +"@alfresco/adf-core@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@alfresco/adf-core/-/adf-core-2.0.0.tgz#7ad6c756cd5f8f44b0a1f31e6f8114d7c8f67101" dependencies: "@angular/animations" "5.0.0" "@angular/cdk" "5.0.0-rc0" @@ -53,7 +53,7 @@ "@angular/platform-browser-dynamic" "5.0.0" "@angular/router" "5.0.0" "@ngx-translate/core" "8.0.0" - alfresco-js-api "2.0.0-2e4554a3d3a1265d058795c924d55d570dd46de2" + alfresco-js-api "2.0.0" chart.js "2.5.0" core-js "2.4.1" hammerjs "2.0.8" @@ -364,19 +364,12 @@ ajv@^5.0.0, ajv@^5.1.0, ajv@^5.1.5: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -alfresco-js-api@2.0.0-2e4554a3d3a1265d058795c924d55d570dd46de2: - version "2.0.0-2e4554a3d3a1265d058795c924d55d570dd46de2" - resolved "https://registry.yarnpkg.com/alfresco-js-api/-/alfresco-js-api-2.0.0-2e4554a3d3a1265d058795c924d55d570dd46de2.tgz#9b4cafb16eef618ed449c2d69055cb032cbe9087" +alfresco-js-api@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/alfresco-js-api/-/alfresco-js-api-2.0.0.tgz#a019b01d48200c36f8a0ea229c416260365eed49" dependencies: event-emitter "0.3.4" - superagent "3.7.0" - -alfresco-js-api@2.0.0-beta1: - version "2.0.0-beta1" - resolved "https://registry.yarnpkg.com/alfresco-js-api/-/alfresco-js-api-2.0.0-beta1.tgz#f52f8dfb82e3516efd71868f06cf91c62e4fa71e" - dependencies: - event-emitter "0.3.4" - superagent "3.7.0" + superagent "3.4.1" align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" @@ -949,8 +942,8 @@ caniuse-api@^1.5.2: lodash.uniq "^4.5.0" caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000772" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000772.tgz#51aae891768286eade4a3d8319ea76d6a01b512b" + version "1.0.30000775" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000775.tgz#04bccdd0214edf25b97f61a096609f7ad6904333" caseless@~0.11.0: version "0.11.0" @@ -1177,8 +1170,8 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: delayed-stream "~1.0.0" commander@2.12.x, commander@^2.9.0, commander@~2.12.1: - version "2.12.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.12.1.tgz#468635c4168d06145b9323356d1da84d14ac4a7a" + version "2.12.2" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.12.2.tgz#0f5946c427ed9ec0d91a46bb9def53e54650e555" common-tags@^1.3.1: version "1.5.1" @@ -1283,7 +1276,7 @@ cookie@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" -cookiejar@^2.1.0: +cookiejar@^2.0.6: version "2.1.1" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.1.tgz#41ad57b1b555951ec171412a81942b1e8200d34a" @@ -2098,7 +2091,7 @@ exports-loader@^0.6.3: loader-utils "^1.0.2" source-map "0.5.x" -express@^4.13.3: +express@^4.16.2: version "4.16.2" resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c" dependencies: @@ -2298,7 +2291,7 @@ forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" -form-data@^2.3.1, form-data@~2.3.1: +form-data@^2.1.1, form-data@~2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf" dependencies: @@ -2314,7 +2307,7 @@ form-data@~2.1.1: combined-stream "^1.0.5" mime-types "^2.1.12" -formidable@^1.1.1: +formidable@^1.0.17: version "1.1.1" resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.1.1.tgz#96b8886f7c3c3508b932d6bd70c4d3a88f35f1a9" @@ -2897,8 +2890,8 @@ internal-ip@1.2.0: meow "^3.3.0" interpret@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0" + version "1.1.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" invariant@^2.2.2: version "2.2.2" @@ -3742,7 +3735,7 @@ mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" -mime@^1.2.11, mime@^1.3.4, mime@^1.4.1: +mime@^1.2.11, mime@^1.3.4, mime@^1.4.1, mime@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" @@ -3811,8 +3804,8 @@ moment-es6@1.0.0: moment "*" moment@*, moment@^2.10.6: - version "2.19.2" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.19.2.tgz#8a7f774c95a64550b4c7ebd496683908f9419dbe" + version "2.19.3" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.19.3.tgz#bdb99d270d6d7fda78cc0fbace855e27fe7da69f" moment@2.15.2: version "2.15.2" @@ -4772,7 +4765,7 @@ qjobs@^1.1.4: version "1.1.5" resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.1.5.tgz#659de9f2cf8dcc27a1481276f205377272382e73" -qs@6.5.1, qs@^6.5.1, qs@~6.5.1: +qs@6.5.1, qs@^6.1.0, qs@~6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" @@ -5688,19 +5681,19 @@ stylus@^0.54.5: sax "0.5.x" source-map "0.1.x" -superagent@3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.7.0.tgz#bd58bfde2cbc5305adb9ccbb6dacba18408629d6" +superagent@3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.4.1.tgz#4bd12741224d0ece6d9f757f1c3becbe7f24c115" dependencies: component-emitter "^1.2.0" - cookiejar "^2.1.0" - debug "^3.1.0" + cookiejar "^2.0.6" + debug "^2.2.0" extend "^3.0.0" - form-data "^2.3.1" - formidable "^1.1.1" + form-data "^2.1.1" + formidable "^1.0.17" methods "^1.1.1" - mime "^1.4.1" - qs "^6.5.1" + mime "^1.3.4" + qs "^6.1.0" readable-stream "^2.0.5" supports-color@^2.0.0: @@ -5732,8 +5725,8 @@ svgo@^0.7.0: whet.extend "~0.9.9" symbol-observable@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" + version "1.1.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.1.0.tgz#5c68fd8d54115d9dfb72a84720549222e8db9b32" systemjs@0.19.27: version "0.19.27" @@ -5904,8 +5897,8 @@ tslint@~5.7.0: tsutils "^2.8.1" tsutils@^2.8.1: - version "2.12.2" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.12.2.tgz#ad58a4865d17ec3ddb6631b6ca53be14a5656ff3" + version "2.13.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.13.0.tgz#0f52b6aabbc4216e72796b66db028c6cf173e144" dependencies: tslib "^1.7.1" @@ -5939,8 +5932,8 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" typescript@^2.3.3: - version "2.6.1" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.1.tgz#ef39cdea27abac0b500242d6726ab90e0c846631" + version "2.6.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.2.tgz#3c5b6fd7f6de0914269027f03c0946758f7673a4" typescript@~2.4.2: version "2.4.2" @@ -6212,18 +6205,18 @@ webpack-core@^0.6.8: source-map "~0.4.1" webpack-dev-middleware@^1.11.0, webpack-dev-middleware@~1.12.0: - version "1.12.1" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.1.tgz#338be3ca930973be1c2ce07d84d275e997e1a25a" + version "1.12.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" dependencies: memory-fs "~0.4.1" - mime "^1.4.1" + mime "^1.5.0" path-is-absolute "^1.0.0" range-parser "^1.0.3" time-stamp "^2.0.0" webpack-dev-server@~2.9.3: - version "2.9.4" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.9.4.tgz#7883e61759c6a4b33e9b19ec4037bd4ab61428d1" + version "2.9.5" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.9.5.tgz#79336fba0087a66ae491f4869f6545775b18daa8" dependencies: ansi-html "0.0.7" array-includes "^3.0.3" @@ -6233,7 +6226,7 @@ webpack-dev-server@~2.9.3: connect-history-api-fallback "^1.3.0" debug "^3.1.0" del "^3.0.0" - express "^4.13.3" + express "^4.16.2" html-entities "^1.2.0" http-proxy-middleware "~0.17.4" import-local "^0.1.1" From c8e318c5ee6eb00db226af2c20a12f7362ff9fdd Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Thu, 30 Nov 2017 11:44:43 +0000 Subject: [PATCH 38/70] temporarily switch the hashbangs off --- src/app/app.module.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/app.module.ts b/src/app/app.module.ts index f4eecb42d..1c66b5786 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -48,7 +48,7 @@ import { LocationLinkComponent } from './components/location-link/location-link. imports: [ BrowserModule, RouterModule.forRoot(APP_ROUTES, { - useHash: true, + useHash: false, enableTracing: false // enable for debug only }), AdfModule, From 2ce7d57737a4d9ae263c22bc1d58ee93423d8786 Mon Sep 17 00:00:00 2001 From: Adina Parpalita Date: Thu, 30 Nov 2017 21:44:21 +0200 Subject: [PATCH 39/70] [ACA-990] e2e fixes (#101) * change selector rename methods separate pagination tests into multiple files to try to avoid jasmine timeout increase a bit the timeouts * shared-links api needs a bit more time to complete * a bit more time --- e2e/components/data-table/data-table.ts | 17 +- e2e/configs.ts | 2 +- e2e/suites/actions/create-folder.test.ts | 6 +- e2e/suites/actions/edit-folder.test.ts | 4 +- e2e/suites/actions/permanently-delete.test.ts | 8 +- e2e/suites/actions/restore.test.ts | 16 +- e2e/suites/list-views/favorites.test.ts | 6 +- e2e/suites/list-views/file-libraries.test.ts | 2 +- e2e/suites/list-views/personal-files.test.ts | 8 +- e2e/suites/list-views/trash.test.ts | 16 +- e2e/suites/pagination/pag-favorites.test.ts | 178 +++++ .../pagination/pag-personal-files.test.ts | 175 +++++ .../pagination/pag-recent-files.test.ts | 181 +++++ .../pagination/pag-shared-files.test.ts | 185 +++++ e2e/suites/pagination/pag-trash.test.ts | 176 +++++ e2e/suites/pagination/pagination.test.ts | 668 ------------------ protractor.conf.js | 6 +- 17 files changed, 940 insertions(+), 714 deletions(-) create mode 100644 e2e/suites/pagination/pag-favorites.test.ts create mode 100644 e2e/suites/pagination/pag-personal-files.test.ts create mode 100644 e2e/suites/pagination/pag-recent-files.test.ts create mode 100644 e2e/suites/pagination/pag-shared-files.test.ts create mode 100644 e2e/suites/pagination/pag-trash.test.ts delete mode 100644 e2e/suites/pagination/pagination.test.ts diff --git a/e2e/components/data-table/data-table.ts b/e2e/components/data-table/data-table.ts index 951ce2aa5..d44b62965 100644 --- a/e2e/components/data-table/data-table.ts +++ b/e2e/components/data-table/data-table.ts @@ -34,7 +34,6 @@ export class DataTable extends Component { row: 'tr', selectedRow: 'tr.is-selected', cell: 'td', - nameCell: 'td.app-name-column', emptyListContainer: 'td.adf-no-content-container', emptyFolderDragAndDrop: '.adf-empty-list_template .adf-empty-folder', @@ -104,9 +103,8 @@ export class DataTable extends Component { return this.getRows().get(nth - 1); } - getRowByContainingText(text: string): ElementFinder { - const locator = by.cssContainingText(DataTable.selectors.row, text); - return this.body.element(locator); + getRowByName(name: string): ElementFinder { + return this.body.element(by.css(`adf-datatable-cell [title="${name}"]`)); } countRows(): promise.Promise { @@ -115,22 +113,23 @@ export class DataTable extends Component { // Navigation/selection methods doubleClickOnItemName(name: string): promise.Promise { - const locator = by.cssContainingText(DataTable.selectors.nameCell, name); - const dblClick = browser.actions().mouseMove(this.body.element(locator)).click().click(); + const dblClick = browser.actions() + .mouseMove(this.getRowByName(name)) + .click() + .click(); return dblClick.perform(); } clickOnItemName(name: string): promise.Promise { - const locator = by.cssContainingText(DataTable.selectors.nameCell, name); - return this.body.element(locator).click(); + return this.getRowByName(name).click(); } selectMultipleItems(names: string[]): promise.Promise { return browser.actions().sendKeys(protractor.Key.COMMAND).perform() .then(() => { names.forEach(name => { - this.getRowByContainingText(name).click(); + this.clickOnItemName(name); }); }) .then(() => browser.actions().sendKeys(protractor.Key.NULL).perform()); diff --git a/e2e/configs.ts b/e2e/configs.ts index 6c179fcd4..ed8615b8f 100644 --- a/e2e/configs.ts +++ b/e2e/configs.ts @@ -1,7 +1,7 @@ export const BROWSER_RESOLUTION_WIDTH = 1200; export const BROWSER_RESOLUTION_HEIGHT = 800; -export const BROWSER_WAIT_TIMEOUT = 10000; +export const BROWSER_WAIT_TIMEOUT = 20000; // Application configs export const APP_HOST = 'http://localhost:3000'; diff --git a/e2e/suites/actions/create-folder.test.ts b/e2e/suites/actions/create-folder.test.ts index 1e3dd6c34..42280ad4f 100644 --- a/e2e/suites/actions/create-folder.test.ts +++ b/e2e/suites/actions/create-folder.test.ts @@ -104,7 +104,7 @@ describe('Create folder', () => { .then(() => createDialog.waitForDialogToClose()) .then(() => dataTable.waitForHeader()) .then(() => { - const isPresent = dataTable.getRowByContainingText(folderName1).isPresent(); + const isPresent = dataTable.getRowByName(folderName1).isPresent(); expect(isPresent).toBe(true, 'Folder not displayed in list view'); }) ); @@ -122,7 +122,7 @@ describe('Create folder', () => { .then(() => createDialog.waitForDialogToClose()) .then(() => dataTable.waitForHeader()) .then(() => { - const isPresent = dataTable.getRowByContainingText(folderName2).isPresent(); + const isPresent = dataTable.getRowByName(folderName2).isPresent(); expect(isPresent).toBe(true, 'Folder not displayed in list view'); }) .then(() => { @@ -293,7 +293,7 @@ describe('Create folder', () => { .then(() => createDialog.waitForDialogToClose()) .then(() => dataTable.waitForHeader()) .then(() => { - const isPresent = dataTable.getRowByContainingText(nameWithSpaces.trim()).isPresent(); + const isPresent = dataTable.getRowByName(nameWithSpaces.trim()).isPresent(); expect(isPresent).toBe(true, 'Folder not displayed in list view'); }) ); diff --git a/e2e/suites/actions/edit-folder.test.ts b/e2e/suites/actions/edit-folder.test.ts index fb830f5c1..024b1a81d 100644 --- a/e2e/suites/actions/edit-folder.test.ts +++ b/e2e/suites/actions/edit-folder.test.ts @@ -113,7 +113,7 @@ describe('Edit folder', () => { .then(() => editDialog.waitForDialogToClose()) .then(() => dataTable.waitForHeader()) .then(() => { - const isPresent = dataTable.getRowByContainingText(folderNameEdited).isPresent(); + const isPresent = dataTable.getRowByName(folderNameEdited).isPresent(); expect(isPresent).toBe(true, 'Folder not displayed in list view'); }) .then(() => { @@ -203,7 +203,7 @@ describe('Edit folder', () => { .then(() => editDialog.waitForDialogToClose()) .then(() => { expect(personalFilesPage.snackBar.isPresent()).not.toBe(true, 'notification appears'); - expect(dataTable.getRowByContainingText(folderName).isPresent()).toBe(true, 'Folder not displayed in list view'); + expect(dataTable.getRowByName(folderName).isPresent()).toBe(true, 'Folder not displayed in list view'); }) ); }); diff --git a/e2e/suites/actions/permanently-delete.test.ts b/e2e/suites/actions/permanently-delete.test.ts index cde2d9bec..93b86b036 100644 --- a/e2e/suites/actions/permanently-delete.test.ts +++ b/e2e/suites/actions/permanently-delete.test.ts @@ -78,7 +78,7 @@ describe('Permanently delete from Trash', () => { .then(() => trashPage.getSnackBarMessage()) .then(text => { expect(text).toBe(`${file1} deleted`); - expect(dataTable.getRowByContainingText(file1).isPresent()).toBe(false, 'Item was not deleted'); + expect(dataTable.getRowByName(file1).isPresent()).toBe(false, 'Item was not deleted'); }); }); @@ -88,7 +88,7 @@ describe('Permanently delete from Trash', () => { .then(() => trashPage.getSnackBarMessage()) .then(text => { expect(text).toBe(`${folder1} deleted`); - expect(dataTable.getRowByContainingText(folder1).isPresent()).toBe(false, 'Item was not deleted'); + expect(dataTable.getRowByName(folder1).isPresent()).toBe(false, 'Item was not deleted'); }); }); @@ -98,8 +98,8 @@ describe('Permanently delete from Trash', () => { .then(() => trashPage.getSnackBarMessage()) .then(text => { expect(text).toBe(`2 items deleted`); - expect(dataTable.getRowByContainingText(file2).isPresent()).toBe(false, 'Item was not deleted'); - expect(dataTable.getRowByContainingText(folder2).isPresent()).toBe(false, 'Item was not deleted'); + expect(dataTable.getRowByName(file2).isPresent()).toBe(false, 'Item was not deleted'); + expect(dataTable.getRowByName(folder2).isPresent()).toBe(false, 'Item was not deleted'); }); }); }); diff --git a/e2e/suites/actions/restore.test.ts b/e2e/suites/actions/restore.test.ts index 7422a9caf..6556f3145 100644 --- a/e2e/suites/actions/restore.test.ts +++ b/e2e/suites/actions/restore.test.ts @@ -83,12 +83,12 @@ describe('Restore from Trash', () => { .then(text => { expect(text).toContain(`${file1} restored`); expect(text).toContain(`View`); - expect(dataTable.getRowByContainingText(file1).isPresent()).toBe(false, 'Item was not removed from list'); + expect(dataTable.getRowByName(file1).isPresent()).toBe(false, 'Item was not removed from list'); }) .then(() => personalFilesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES)) .then(() => personalFilesPage.dataTable.waitForHeader()) .then(() => { - expect(personalFilesPage.dataTable.getRowByContainingText(file1).isPresent()).toBe(true, 'Item not displayed in list'); + expect(personalFilesPage.dataTable.getRowByName(file1).isPresent()).toBe(true, 'Item not displayed in list'); }); }); @@ -99,12 +99,12 @@ describe('Restore from Trash', () => { .then(text => { expect(text).toContain(`${folder1} restored`); expect(text).toContain(`View`); - expect(dataTable.getRowByContainingText(folder1).isPresent()).toBe(false, 'Item was not removed from list'); + expect(dataTable.getRowByName(folder1).isPresent()).toBe(false, 'Item was not removed from list'); }) .then(() => personalFilesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES)) .then(() => personalFilesPage.dataTable.waitForHeader()) .then(() => { - expect(personalFilesPage.dataTable.getRowByContainingText(folder1).isPresent()).toBe(true, 'Item not displayed in list'); + expect(personalFilesPage.dataTable.getRowByName(folder1).isPresent()).toBe(true, 'Item not displayed in list'); }); }); @@ -115,14 +115,14 @@ describe('Restore from Trash', () => { .then(text => { expect(text).toContain(`Restore successful`); expect(text).not.toContain(`View`); - expect(dataTable.getRowByContainingText(file2).isPresent()).toBe(false, 'Item was not removed from list'); - expect(dataTable.getRowByContainingText(folder2).isPresent()).toBe(false, 'Item was not removed from list'); + expect(dataTable.getRowByName(file2).isPresent()).toBe(false, 'Item was not removed from list'); + expect(dataTable.getRowByName(folder2).isPresent()).toBe(false, 'Item was not removed from list'); }) .then(() => personalFilesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES)) .then(() => personalFilesPage.dataTable.waitForHeader()) .then(() => { - expect(personalFilesPage.dataTable.getRowByContainingText(file2).isPresent()).toBe(true, 'Item not displayed in list'); - expect(personalFilesPage.dataTable.getRowByContainingText(folder2).isPresent()).toBe(true, 'Item not displayed in list'); + expect(personalFilesPage.dataTable.getRowByName(file2).isPresent()).toBe(true, 'Item not displayed in list'); + expect(personalFilesPage.dataTable.getRowByName(folder2).isPresent()).toBe(true, 'Item not displayed in list'); }); }); diff --git a/e2e/suites/list-views/favorites.test.ts b/e2e/suites/list-views/favorites.test.ts index 57e7dd0fe..869f16340 100644 --- a/e2e/suites/list-views/favorites.test.ts +++ b/e2e/suites/list-views/favorites.test.ts @@ -84,9 +84,9 @@ describe('Favorites', () => { it('displays the favorite files and folders', () => { expect(dataTable.countRows()).toEqual(3, 'Incorrect number of items displayed'); - expect(dataTable.getRowByContainingText(fileName1).isPresent()).toBe(true, `${fileName1} not displayed`); - expect(dataTable.getRowByContainingText(fileName2).isPresent()).toBe(true, `${fileName2} not displayed`); - expect(dataTable.getRowByContainingText(folderName).isPresent()).toBe(true, `${folderName} not displayed`); + expect(dataTable.getRowByName(fileName1).isPresent()).toBe(true, `${fileName1} not displayed`); + expect(dataTable.getRowByName(fileName2).isPresent()).toBe(true, `${fileName2} not displayed`); + expect(dataTable.getRowByName(folderName).isPresent()).toBe(true, `${folderName} not displayed`); }); it('Location column displays the parent folder of the files', () => { diff --git a/e2e/suites/list-views/file-libraries.test.ts b/e2e/suites/list-views/file-libraries.test.ts index 5c0e07894..b5cdac85d 100644 --- a/e2e/suites/list-views/file-libraries.test.ts +++ b/e2e/suites/list-views/file-libraries.test.ts @@ -97,7 +97,7 @@ describe('File Libraries', () => { }; expect(sitesCount).toEqual(3, 'Incorrect number of sites displayed'); - expect(dataTable.getRowByContainingText(adminSite).isPresent()).toBe(false, 'Incorrect site appears in list'); + expect(dataTable.getRowByName(adminSite).isPresent()).toBe(false, 'Incorrect site appears in list'); dataTable.getRows() .map((row) => { diff --git a/e2e/suites/list-views/personal-files.test.ts b/e2e/suites/list-views/personal-files.test.ts index 232250fbc..5048c7d8a 100644 --- a/e2e/suites/list-views/personal-files.test.ts +++ b/e2e/suites/list-views/personal-files.test.ts @@ -82,11 +82,11 @@ describe('Personal Files', () => { }); it('has "Data Dictionary" folder', () => { - expect(dataTable.getRowByContainingText('Data Dictionary').isPresent()).toBe(true); + expect(dataTable.getRowByName('Data Dictionary').isPresent()).toBe(true); }); it('has created content', () => { - expect(dataTable.getRowByContainingText('admin-folder').isPresent()).toBe(true); + expect(dataTable.getRowByName(adminFolder).isPresent()).toBe(true); }); }); @@ -124,7 +124,7 @@ describe('Personal Files', () => { }); it('has user created content', () => { - expect(dataTable.getRowByContainingText(userFolder).isPresent()) + expect(dataTable.getRowByName(userFolder).isPresent()) .toBe(true); }); @@ -146,7 +146,7 @@ describe('Personal Files', () => { expect(browser.getCurrentUrl()) .toContain(nodeId, 'Node ID is not in the URL'); - expect(dataTable.getRowByContainingText(userFile).isPresent()) + expect(dataTable.getRowByName(userFile).isPresent()) .toBe(true, 'user file is missing'); }); }); diff --git a/e2e/suites/list-views/trash.test.ts b/e2e/suites/list-views/trash.test.ts index de16408d2..167a194a5 100644 --- a/e2e/suites/list-views/trash.test.ts +++ b/e2e/suites/list-views/trash.test.ts @@ -114,11 +114,11 @@ describe('Trash', () => { it('displays the files and folders deleted by everyone', () => { expect(dataTable.countRows()).toEqual(5, 'Incorrect number of deleted items displayed'); - expect(dataTable.getRowByContainingText(fileAdmin).isPresent()).toBe(true, `${fileAdmin} not displayed`); - expect(dataTable.getRowByContainingText(folderAdmin).isPresent()).toBe(true, `${folderAdmin} not displayed`); - expect(dataTable.getRowByContainingText(fileUser).isPresent()).toBe(true, `${fileUser} not displayed`); - expect(dataTable.getRowByContainingText(folderUser).isPresent()).toBe(true, `${folderUser} not displayed`); - expect(dataTable.getRowByContainingText(fileSite).isPresent()).toBe(true, `${fileSite} not displayed`); + expect(dataTable.getRowByName(fileAdmin).isPresent()).toBe(true, `${fileAdmin} not displayed`); + expect(dataTable.getRowByName(folderAdmin).isPresent()).toBe(true, `${folderAdmin} not displayed`); + expect(dataTable.getRowByName(fileUser).isPresent()).toBe(true, `${fileUser} not displayed`); + expect(dataTable.getRowByName(folderUser).isPresent()).toBe(true, `${folderUser} not displayed`); + expect(dataTable.getRowByName(fileSite).isPresent()).toBe(true, `${fileSite} not displayed`); }); }); @@ -149,9 +149,9 @@ describe('Trash', () => { it('displays the files and folders deleted by the user', () => { expect(dataTable.countRows()).toEqual(3, 'Incorrect number of deleted items displayed'); - expect(dataTable.getRowByContainingText(fileSite).isPresent()).toBe(true, `${fileSite} not displayed`); - expect(dataTable.getRowByContainingText(fileUser).isPresent()).toBe(true, `${fileUser} not displayed`); - expect(dataTable.getRowByContainingText(folderUser).isPresent()).toBe(true, `${folderUser} not displayed`); + expect(dataTable.getRowByName(fileSite).isPresent()).toBe(true, `${fileSite} not displayed`); + expect(dataTable.getRowByName(fileUser).isPresent()).toBe(true, `${fileUser} not displayed`); + expect(dataTable.getRowByName(folderUser).isPresent()).toBe(true, `${folderUser} not displayed`); }); }); }); diff --git a/e2e/suites/pagination/pag-favorites.test.ts b/e2e/suites/pagination/pag-favorites.test.ts new file mode 100644 index 000000000..921252815 --- /dev/null +++ b/e2e/suites/pagination/pag-favorites.test.ts @@ -0,0 +1,178 @@ +/*! + * @license + * Copyright 2017 Alfresco Software, Ltd. + * + * 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. + */ + +import { browser, protractor, promise } from 'protractor'; +import { SIDEBAR_LABELS, SITE_VISIBILITY } from '../../configs'; +import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; +import { Utils } from '../../utilities/utils'; +import { RepoClient, NodeContentTree } from '../../utilities/repo-client/repo-client'; + +describe('Pagination on Favorites', () => { + const username = `user-${Utils.random()}`; + + const apis = { + admin: new RepoClient(), + user: new RepoClient(username, username) + }; + const { nodes: nodesApi, favorites: favoritesApi } = apis.user; + + const loginPage = new LoginPage(); + const logoutPage = new LogoutPage(); + const page = new BrowsingPage(); + const { dataTable, pagination } = page; + + const parent = `parent-${Utils.random()}`; + const files = Array(101) + .fill('file') + .map((name, index): string => `${name}-${index + 1}.txt`); + let filesIds; + + function resetToDefaultPageSize(): promise.Promise { + return pagination.openMaxItemsMenu() + .then(menu => menu.clickMenuItem('25')) + .then(() => dataTable.waitForHeader()); + } + + function resetToDefaultPageNumber(): promise.Promise { + return pagination.openCurrentPageMenu() + .then(menu => menu.clickMenuItem('1')) + .then(() => dataTable.waitForHeader()); + } + + beforeAll(done => { + apis.admin.people.createUser(username) + .then(() => nodesApi.createFiles(files, parent)) + .then(resp => filesIds = resp.data.list.entries.map(entries => entries.entry.id)) + + .then(() => favoritesApi.addFavoritesByIds('file', filesIds)) + + .then(() => loginPage.load()) + .then(() => loginPage.loginWith(username)) + .then(done); + }); + + beforeEach(done => { + page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES) + .then(() => dataTable.waitForHeader()) + .then(done); + }); + + afterEach(done => { + browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done); + }); + + afterAll(done => { + Promise.all([ + nodesApi.deleteNodes([ parent ]), + logoutPage.load() + ]) + .then(done); + }); + + it('default values', () => { + expect(pagination.range.getText()).toContain('1-25 of 101'); + expect(pagination.maxItems.getText()).toContain('25'); + expect(pagination.currentPage.getText()).toContain('Page 1'); + expect(pagination.totalPages.getText()).toContain('of 5'); + expect(pagination.previousButton.isEnabled()).toBe(false, 'Previous button is enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); + }); + + it('page sizes', () => { + pagination.openMaxItemsMenu() + .then(menu => { + const [ first, second, third ] = [1, 2, 3] + .map(nth => menu.getNthItem(nth).getText()); + expect(first).toBe('25'); + expect(second).toBe('50'); + expect(third).toBe('100'); + }); + }); + + it('change the page size', () => { + pagination.openMaxItemsMenu() + .then(menu => menu.clickMenuItem('50')) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.maxItems.getText()).toContain('50'); + expect(pagination.totalPages.getText()).toContain('of 3'); + }) + + .then(() => resetToDefaultPageSize()); + }); + + it('current page menu items', () => { + pagination.openCurrentPageMenu() + .then(menu => { + expect(menu.getItemsCount()).toBe(5); + }); + }); + + it('change the current page from menu', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(3)) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('51-75 of 101'); + expect(pagination.currentPage.getText()).toContain('Page 3'); + expect(pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); + expect(dataTable.getRowByName('file-40.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('navigate to next page', () => { + pagination.nextButton.click() + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('26-50 of 101'); + expect(dataTable.getRowByName('file-70.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('navigate to previous page', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(2)) + .then(() => dataTable.waitForHeader()) + .then(() => pagination.previousButton.click()) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('1-25 of 101'); + expect(dataTable.getRowByName('file-88.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('last page', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(5)) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(dataTable.countRows()).toBe(1, 'Incorrect number of items on the last page'); + expect(pagination.currentPage.getText()).toContain('Page 5'); + expect(pagination.nextButton.isEnabled()).toBe(false, 'Next button is enabled'); + }); + }); +}); diff --git a/e2e/suites/pagination/pag-personal-files.test.ts b/e2e/suites/pagination/pag-personal-files.test.ts new file mode 100644 index 000000000..6f7e23e49 --- /dev/null +++ b/e2e/suites/pagination/pag-personal-files.test.ts @@ -0,0 +1,175 @@ +/*! + * @license + * Copyright 2017 Alfresco Software, Ltd. + * + * 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. + */ + +import { browser, protractor, promise } from 'protractor'; +import { SIDEBAR_LABELS, SITE_VISIBILITY } from '../../configs'; +import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; +import { Utils } from '../../utilities/utils'; +import { RepoClient, NodeContentTree } from '../../utilities/repo-client/repo-client'; + +describe('Pagination on Personal Files', () => { + const username = `user-${Utils.random()}`; + + const apis = { + admin: new RepoClient(), + user: new RepoClient(username, username) + }; + const { nodes: nodesApi } = apis.user; + + const loginPage = new LoginPage(); + const logoutPage = new LogoutPage(); + const page = new BrowsingPage(); + const { dataTable, pagination } = page; + + const parent = `parent-${Utils.random()}`; + const files = Array(101) + .fill('file') + .map((name, index): string => `${name}-${index + 1}.txt`); + + function resetToDefaultPageSize(): promise.Promise { + return pagination.openMaxItemsMenu() + .then(menu => menu.clickMenuItem('25')) + .then(() => dataTable.waitForHeader()); + } + + function resetToDefaultPageNumber(): promise.Promise { + return pagination.openCurrentPageMenu() + .then(menu => menu.clickMenuItem('1')) + .then(() => dataTable.waitForHeader()); + } + + beforeAll(done => { + apis.admin.people.createUser(username) + .then(() => nodesApi.createFiles(files, parent)) + + .then(() => loginPage.load()) + .then(() => loginPage.loginWith(username)) + .then(done); + }); + + beforeEach(done => { + page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES) + .then(() => dataTable.waitForHeader()) + .then(() => dataTable.doubleClickOnItemName(parent)) + .then(done); + }); + + afterEach(done => { + browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done); + }); + + afterAll(done => { + Promise.all([ + nodesApi.deleteNodes([ parent ]), + logoutPage.load() + ]) + .then(done); + }); + + it('default values', () => { + expect(pagination.range.getText()).toContain('1-25 of 101'); + expect(pagination.maxItems.getText()).toContain('25'); + expect(pagination.currentPage.getText()).toContain('Page 1'); + expect(pagination.totalPages.getText()).toContain('of 5'); + expect(pagination.previousButton.isEnabled()).toBe(false, 'Previous button is enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); + }); + + it('page sizes', () => { + pagination.openMaxItemsMenu() + .then(menu => { + const [ first, second, third ] = [1, 2, 3] + .map(nth => menu.getNthItem(nth).getText()); + expect(first).toBe('25'); + expect(second).toBe('50'); + expect(third).toBe('100'); + }); + }); + + it('change the page size', () => { + pagination.openMaxItemsMenu() + .then(menu => menu.clickMenuItem('50')) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.maxItems.getText()).toContain('50'); + expect(pagination.totalPages.getText()).toContain('of 3'); + }) + + .then(() => resetToDefaultPageSize()); + }); + + it('current page menu items', () => { + pagination.openCurrentPageMenu() + .then(menu => { + expect(menu.getItemsCount()).toBe(5); + }); + }); + + it('change the current page from menu', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(3)) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('51-75 of 101'); + expect(pagination.currentPage.getText()).toContain('Page 3'); + expect(pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); + expect(dataTable.getRowByName('file-60.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('navigate to next page', () => { + pagination.nextButton.click() + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('26-50 of 101'); + expect(dataTable.getRowByName('file-30.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('navigate to previous page', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(2)) + .then(() => dataTable.waitForHeader()) + .then(() => pagination.previousButton.click()) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('1-25 of 101'); + expect(dataTable.getRowByName('file-12.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('last page', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(5)) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(dataTable.countRows()).toBe(1, 'Incorrect number of items on the last page'); + expect(pagination.currentPage.getText()).toContain('Page 5'); + expect(pagination.nextButton.isEnabled()).toBe(false, 'Next button is enabled'); + }); + }); +}); diff --git a/e2e/suites/pagination/pag-recent-files.test.ts b/e2e/suites/pagination/pag-recent-files.test.ts new file mode 100644 index 000000000..efb446584 --- /dev/null +++ b/e2e/suites/pagination/pag-recent-files.test.ts @@ -0,0 +1,181 @@ +/*! + * @license + * Copyright 2017 Alfresco Software, Ltd. + * + * 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. + */ + +import { browser, protractor, promise } from 'protractor'; +import { SIDEBAR_LABELS, SITE_VISIBILITY } from '../../configs'; +import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; +import { Utils } from '../../utilities/utils'; +import { RepoClient, NodeContentTree } from '../../utilities/repo-client/repo-client'; + +describe('Pagination on Recent Files', () => { + const username = `user-${Utils.random()}`; + + const apis = { + admin: new RepoClient(), + user: new RepoClient(username, username) + }; + const { nodes: nodesApi } = apis.user; + + const loginPage = new LoginPage(); + const logoutPage = new LogoutPage(); + const page = new BrowsingPage(); + const { dataTable, pagination } = page; + + const parent = `parent-${Utils.random()}`; + const files = Array(101) + .fill('file') + .map((name, index): string => `${name}-${index + 1}.txt`); + + function resetToDefaultPageSize(): promise.Promise { + return pagination.openMaxItemsMenu() + .then(menu => menu.clickMenuItem('25')) + .then(() => dataTable.waitForHeader()); + } + + function resetToDefaultPageNumber(): promise.Promise { + return pagination.openCurrentPageMenu() + .then(menu => menu.clickMenuItem('1')) + .then(() => dataTable.waitForHeader()); + } + + beforeAll(done => { + apis.admin.people.createUser(username) + .then(() => nodesApi.createFiles(files, parent)) + + .then(() => loginPage.load()) + .then(() => loginPage.loginWith(username)) + .then(done); + }); + + beforeEach(done => { + page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES) + .then(() => dataTable.isEmptyList()) + .then(empty => { + if (empty) { + browser.sleep(3000); + page.refresh(); + } + }) + .then(() => dataTable.waitForHeader()) + .then(done); + }); + + afterEach(done => { + browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done); + }); + + afterAll(done => { + Promise.all([ + nodesApi.deleteNodes([ parent ]), + logoutPage.load() + ]) + .then(done); + }); + + it('default values', () => { + expect(pagination.range.getText()).toContain('1-25 of 101'); + expect(pagination.maxItems.getText()).toContain('25'); + expect(pagination.currentPage.getText()).toContain('Page 1'); + expect(pagination.totalPages.getText()).toContain('of 5'); + expect(pagination.previousButton.isEnabled()).toBe(false, 'Previous button is enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); + }); + + it('page sizes', () => { + pagination.openMaxItemsMenu() + .then(menu => { + const [ first, second, third ] = [1, 2, 3] + .map(nth => menu.getNthItem(nth).getText()); + expect(first).toBe('25'); + expect(second).toBe('50'); + expect(third).toBe('100'); + }); + }); + + it('change the page size', () => { + pagination.openMaxItemsMenu() + .then(menu => menu.clickMenuItem('50')) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.maxItems.getText()).toContain('50'); + expect(pagination.totalPages.getText()).toContain('of 3'); + }) + + .then(() => resetToDefaultPageSize()); + }); + + it('current page menu items', () => { + pagination.openCurrentPageMenu() + .then(menu => { + expect(menu.getItemsCount()).toBe(5); + }); + }); + + it('change the current page from menu', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(3)) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('51-75 of 101'); + expect(pagination.currentPage.getText()).toContain('Page 3'); + expect(pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); + expect(dataTable.getRowByName('file-40.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('navigate to next page', () => { + pagination.nextButton.click() + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('26-50 of 101'); + expect(dataTable.getRowByName('file-70.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('navigate to previous page', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(2)) + .then(() => dataTable.waitForHeader()) + .then(() => pagination.previousButton.click()) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('1-25 of 101'); + expect(dataTable.getRowByName('file-88.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('last page', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(5)) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(dataTable.countRows()).toBe(1, 'Incorrect number of items on the last page'); + expect(pagination.currentPage.getText()).toContain('Page 5'); + expect(pagination.nextButton.isEnabled()).toBe(false, 'Next button is enabled'); + }); + }); +}); diff --git a/e2e/suites/pagination/pag-shared-files.test.ts b/e2e/suites/pagination/pag-shared-files.test.ts new file mode 100644 index 000000000..105066eea --- /dev/null +++ b/e2e/suites/pagination/pag-shared-files.test.ts @@ -0,0 +1,185 @@ +/*! + * @license + * Copyright 2017 Alfresco Software, Ltd. + * + * 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. + */ + +import { browser, protractor, promise } from 'protractor'; +import { SIDEBAR_LABELS, SITE_VISIBILITY } from '../../configs'; +import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; +import { Utils } from '../../utilities/utils'; +import { RepoClient, NodeContentTree } from '../../utilities/repo-client/repo-client'; + +describe('Pagination on Shared Files', () => { + const username = `user-${Utils.random()}`; + + const apis = { + admin: new RepoClient(), + user: new RepoClient(username, username) + }; + const { nodes: nodesApi, shared: sharedApi } = apis.user; + + const loginPage = new LoginPage(); + const logoutPage = new LogoutPage(); + const page = new BrowsingPage(); + const { dataTable, pagination } = page; + + const parent = `parent-${Utils.random()}`; + const files = Array(101) + .fill('file') + .map((name, index): string => `${name}-${index + 1}.txt`); + let filesIds; + + function resetToDefaultPageSize(): promise.Promise { + return pagination.openMaxItemsMenu() + .then(menu => menu.clickMenuItem('25')) + .then(() => dataTable.waitForHeader()); + } + + function resetToDefaultPageNumber(): promise.Promise { + return pagination.openCurrentPageMenu() + .then(menu => menu.clickMenuItem('1')) + .then(() => dataTable.waitForHeader()); + } + + beforeAll(done => { + apis.admin.people.createUser(username) + .then(() => nodesApi.createFiles(files, parent)) + .then(resp => filesIds = resp.data.list.entries.map(entries => entries.entry.id)) + + .then(() => sharedApi.shareFilesByIds(filesIds)) + + .then(() => loginPage.load()) + .then(() => loginPage.loginWith(username)) + .then(done); + }); + + beforeEach(done => { + page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES) + .then(() => dataTable.isEmptyList()) + .then(empty => { + if (empty) { + browser.sleep(6000); + page.refresh(); + } + }) + .then(() => dataTable.waitForHeader()) + .then(done); + }); + + afterEach(done => { + browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done); + }); + + afterAll(done => { + Promise.all([ + nodesApi.deleteNodes([ parent ]), + logoutPage.load() + ]) + .then(done); + }); + + it('default values', () => { + expect(pagination.range.getText()).toContain('1-25 of 101'); + expect(pagination.maxItems.getText()).toContain('25'); + expect(pagination.currentPage.getText()).toContain('Page 1'); + expect(pagination.totalPages.getText()).toContain('of 5'); + expect(pagination.previousButton.isEnabled()).toBe(false, 'Previous button is enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); + }); + + it('page sizes', () => { + pagination.openMaxItemsMenu() + .then(menu => { + const [ first, second, third ] = [1, 2, 3] + .map(nth => menu.getNthItem(nth).getText()); + expect(first).toBe('25'); + expect(second).toBe('50'); + expect(third).toBe('100'); + }); + }); + + it('change the page size', () => { + pagination.openMaxItemsMenu() + .then(menu => menu.clickMenuItem('50')) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.maxItems.getText()).toContain('50'); + expect(pagination.totalPages.getText()).toContain('of 3'); + }) + + .then(() => resetToDefaultPageSize()); + }); + + it('current page menu items', () => { + pagination.openCurrentPageMenu() + .then(menu => { + expect(menu.getItemsCount()).toBe(5); + }); + }); + + it('change the current page from menu', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(3)) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('51-75 of 101'); + expect(pagination.currentPage.getText()).toContain('Page 3'); + expect(pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); + expect(dataTable.getRowByName('file-40.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('navigate to next page', () => { + pagination.nextButton.click() + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('26-50 of 101'); + expect(dataTable.getRowByName('file-70.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('navigate to previous page', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(2)) + .then(() => dataTable.waitForHeader()) + .then(() => pagination.previousButton.click()) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('1-25 of 101'); + expect(dataTable.getRowByName('file-88.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('last page', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(5)) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(dataTable.countRows()).toBe(1, 'Incorrect number of items on the last page'); + expect(pagination.currentPage.getText()).toContain('Page 5'); + expect(pagination.nextButton.isEnabled()).toBe(false, 'Next button is enabled'); + }); + }); +}); diff --git a/e2e/suites/pagination/pag-trash.test.ts b/e2e/suites/pagination/pag-trash.test.ts new file mode 100644 index 000000000..4cf0d6209 --- /dev/null +++ b/e2e/suites/pagination/pag-trash.test.ts @@ -0,0 +1,176 @@ +/*! + * @license + * Copyright 2017 Alfresco Software, Ltd. + * + * 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. + */ + +import { browser, protractor, promise } from 'protractor'; +import { SIDEBAR_LABELS, SITE_VISIBILITY } from '../../configs'; +import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; +import { Utils } from '../../utilities/utils'; +import { RepoClient, NodeContentTree } from '../../utilities/repo-client/repo-client'; + +describe('Pagination on Trash', () => { + const username = `user-${Utils.random()}`; + + const apis = { + admin: new RepoClient(), + user: new RepoClient(username, username) + }; + const { nodes: nodesApi, trashcan: trashApi } = apis.user; + + const loginPage = new LoginPage(); + const logoutPage = new LogoutPage(); + const page = new BrowsingPage(); + const { dataTable, pagination } = page; + + const filesForDelete = Array(101) + .fill('file') + .map((name, index): string => `${name}-${index + 1}.txt`); + let filesDeletedIds; + + function resetToDefaultPageSize(): promise.Promise { + return pagination.openMaxItemsMenu() + .then(menu => menu.clickMenuItem('25')) + .then(() => dataTable.waitForHeader()); + } + + function resetToDefaultPageNumber(): promise.Promise { + return pagination.openCurrentPageMenu() + .then(menu => menu.clickMenuItem('1')) + .then(() => dataTable.waitForHeader()); + } + + beforeAll(done => { + apis.admin.people.createUser(username) + .then(() => nodesApi.createFiles(filesForDelete)) + .then(resp => filesDeletedIds = resp.data.list.entries.map(entries => entries.entry.id)) + .then(() => nodesApi.deleteNodesById(filesDeletedIds, false)) + + .then(() => loginPage.load()) + .then(() => loginPage.loginWith(username)) + .then(done); + }); + + beforeEach(done => { + page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH) + .then(() => dataTable.waitForHeader()) + .then(done); + }); + + afterEach(done => { + browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done); + }); + + afterAll(done => { + Promise.all([ + trashApi.emptyTrash(), + logoutPage.load() + ]) + .then(done); + }); + + it('default values', () => { + expect(pagination.range.getText()).toContain('1-25 of 101'); + expect(pagination.maxItems.getText()).toContain('25'); + expect(pagination.currentPage.getText()).toContain('Page 1'); + expect(pagination.totalPages.getText()).toContain('of 5'); + expect(pagination.previousButton.isEnabled()).toBe(false, 'Previous button is enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); + }); + + it('page sizes', () => { + pagination.openMaxItemsMenu() + .then(menu => { + const [ first, second, third ] = [1, 2, 3] + .map(nth => menu.getNthItem(nth).getText()); + expect(first).toBe('25'); + expect(second).toBe('50'); + expect(third).toBe('100'); + }); + }); + + it('change the page size', () => { + pagination.openMaxItemsMenu() + .then(menu => menu.clickMenuItem('50')) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.maxItems.getText()).toContain('50'); + expect(pagination.totalPages.getText()).toContain('of 3'); + }) + + .then(() => resetToDefaultPageSize()); + }); + + it('current page menu items', () => { + pagination.openCurrentPageMenu() + .then(menu => { + expect(menu.getItemsCount()).toBe(5); + }); + }); + + it('change the current page from menu', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(3)) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('51-75 of 101'); + expect(pagination.currentPage.getText()).toContain('Page 3'); + expect(pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); + expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); + expect(dataTable.getRowByName('file-40.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('navigate to next page', () => { + pagination.nextButton.click() + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('26-50 of 101'); + expect(dataTable.getRowByName('file-70.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('navigate to previous page', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(2)) + .then(() => dataTable.waitForHeader()) + .then(() => pagination.previousButton.click()) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(pagination.range.getText()).toContain('1-25 of 101'); + expect(dataTable.getRowByName('file-88.txt').isPresent()) + .toBe(true, 'File not found on page'); + }) + + .then(() => resetToDefaultPageNumber()); + }); + + it('last page', () => { + pagination.openCurrentPageMenu() + .then(menu => menu.clickNthItem(5)) + .then(() => dataTable.waitForHeader()) + .then(() => { + expect(dataTable.countRows()).toBe(1, 'Incorrect number of items on the last page'); + expect(pagination.currentPage.getText()).toContain('Page 5'); + expect(pagination.nextButton.isEnabled()).toBe(false, 'Next button is enabled'); + }); + }); +}); diff --git a/e2e/suites/pagination/pagination.test.ts b/e2e/suites/pagination/pagination.test.ts deleted file mode 100644 index cbeae1cce..000000000 --- a/e2e/suites/pagination/pagination.test.ts +++ /dev/null @@ -1,668 +0,0 @@ -/*! - * @license - * Copyright 2017 Alfresco Software, Ltd. - * - * 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. - */ - -import { browser, protractor, promise } from 'protractor'; -import { SIDEBAR_LABELS, SITE_VISIBILITY } from '../../configs'; -import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; -import { Utils } from '../../utilities/utils'; -import { RepoClient, NodeContentTree } from '../../utilities/repo-client/repo-client'; - -describe('Pagination', () => { - const username = `user-${Utils.random()}`; - - const apis = { - admin: new RepoClient(), - user: new RepoClient(username, username) - }; - const { - nodes: nodesApi, - trashcan: trashApi, - favorites: favoritesApi, - shared: sharedApi, - sites: sitesApi - } = apis.user; - - const loginPage = new LoginPage(); - const logoutPage = new LogoutPage(); - const page = new BrowsingPage(); - const { dataTable, pagination } = page; - - const parent = `parent-${Utils.random()}`; - const files = Array(101) - .fill('file') - .map((name, index): string => `${name}-${index + 1}.txt`); - let filesIds; - - const filesForDelete = Array(101) - .fill('file') - .map((name, index): string => `${name}-${index + 1}.txt`); - let filesDeletedIds; - - function resetToDefaultPageSize(): promise.Promise { - return pagination.openMaxItemsMenu() - .then(menu => menu.clickMenuItem('25')) - .then(() => dataTable.waitForHeader()); - } - - function resetToDefaultPageNumber(): promise.Promise { - return pagination.openCurrentPageMenu() - .then(menu => menu.clickMenuItem('1')) - .then(() => dataTable.waitForHeader()); - } - - beforeAll(done => { - apis.admin.people.createUser(username) - .then(() => nodesApi.createFiles(files, parent)) - .then(resp => filesIds = resp.data.list.entries.map(entries => entries.entry.id)) - - .then(() => sharedApi.shareFilesByIds(filesIds)) - - .then(() => favoritesApi.addFavoritesByIds('file', filesIds)) - - .then(() => nodesApi.createFiles(filesForDelete)) - .then(resp => filesDeletedIds = resp.data.list.entries.map(entries => entries.entry.id)) - .then(() => nodesApi.deleteNodesById(filesDeletedIds, false)) - - .then(done); - }); - - afterAll(done => { - Promise.all([ - nodesApi.deleteNodes([ parent ]), - trashApi.emptyTrash() - ]) - .then(done); - }); - - xit(''); - - describe(`on Personal Files`, () => { - beforeAll(done => { - loginPage.load() - .then(() => loginPage.loginWith(username)) - .then(done); - }); - - beforeEach(done => { - page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES) - .then(() => dataTable.waitForHeader()) - .then(() => dataTable.doubleClickOnItemName(parent)) - .then(done); - }); - - afterEach(done => { - browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done); - }); - - afterAll(done => { - logoutPage.load().then(done); - }); - - it('default values', () => { - expect(pagination.range.getText()).toContain('1-25 of 101'); - expect(pagination.maxItems.getText()).toContain('25'); - expect(pagination.currentPage.getText()).toContain('Page 1'); - expect(pagination.totalPages.getText()).toContain('of 5'); - expect(pagination.previousButton.isEnabled()).toBe(false, 'Previous button is enabled'); - expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); - }); - - it('page sizes', () => { - pagination.openMaxItemsMenu() - .then(menu => { - const [ first, second, third ] = [1, 2, 3] - .map(nth => menu.getNthItem(nth).getText()); - expect(first).toBe('25'); - expect(second).toBe('50'); - expect(third).toBe('100'); - }); - }); - - it('change the page size', () => { - pagination.openMaxItemsMenu() - .then(menu => menu.clickMenuItem('50')) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.maxItems.getText()).toContain('50'); - expect(pagination.totalPages.getText()).toContain('of 3'); - }) - - .then(() => resetToDefaultPageSize()); - }); - - it('current page menu items', () => { - pagination.openCurrentPageMenu() - .then(menu => { - expect(menu.getItemsCount()).toBe(5); - }); - }); - - it('change the current page from menu', () => { - pagination.openCurrentPageMenu() - .then(menu => menu.clickNthItem(3)) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.range.getText()).toContain('51-75 of 101'); - expect(pagination.currentPage.getText()).toContain('Page 3'); - expect(pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); - expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); - expect(dataTable.getRowByContainingText('file-60.txt').isPresent()) - .toBe(true, 'File not found on page'); - }) - - .then(() => resetToDefaultPageNumber()); - }); - - it('navigate to next page', () => { - pagination.nextButton.click() - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.range.getText()).toContain('26-50 of 101'); - expect(dataTable.getRowByContainingText('file-30.txt').isPresent()) - .toBe(true, 'File not found on page'); - }) - - .then(() => resetToDefaultPageNumber()); - }); - - it('navigate to previous page', () => { - pagination.openCurrentPageMenu() - .then(menu => menu.clickNthItem(2)) - .then(() => dataTable.waitForHeader()) - .then(() => pagination.previousButton.click()) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.range.getText()).toContain('1-25 of 101'); - expect(dataTable.getRowByContainingText('file-12.txt').isPresent()) - .toBe(true, 'File not found on page'); - }) - - .then(() => resetToDefaultPageNumber()); - }); - - it('last page', () => { - pagination.openCurrentPageMenu() - .then(menu => menu.clickNthItem(5)) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(dataTable.countRows()).toBe(1, 'Incorrect number of items on the last page'); - expect(pagination.currentPage.getText()).toContain('Page 5'); - expect(pagination.nextButton.isEnabled()).toBe(false, 'Next button is enabled'); - }); - }); - }); - - describe(`on Recent Files`, () => { - beforeAll(done => { - loginPage.load() - .then(() => loginPage.loginWith(username)) - .then(done); - }); - - beforeEach(done => { - page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES) - .then(() => dataTable.waitForHeader()) - .then(done); - }); - - afterEach(done => { - browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done); - }); - - afterAll(done => { - logoutPage.load().then(done); - }); - - it('default values', () => { - expect(pagination.range.getText()).toContain('1-25 of 101'); - expect(pagination.maxItems.getText()).toContain('25'); - expect(pagination.currentPage.getText()).toContain('Page 1'); - expect(pagination.totalPages.getText()).toContain('of 5'); - expect(pagination.previousButton.isEnabled()).toBe(false, 'Previous button is enabled'); - expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); - }); - - it('page sizes', () => { - pagination.openMaxItemsMenu() - .then(menu => { - const [ first, second, third ] = [1, 2, 3] - .map(nth => menu.getNthItem(nth).getText()); - expect(first).toBe('25'); - expect(second).toBe('50'); - expect(third).toBe('100'); - }); - }); - - it('change the page size', () => { - pagination.openMaxItemsMenu() - .then(menu => menu.clickMenuItem('50')) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.maxItems.getText()).toContain('50'); - expect(pagination.totalPages.getText()).toContain('of 3'); - }) - - .then(() => resetToDefaultPageSize()); - }); - - it('current page menu items', () => { - pagination.openCurrentPageMenu() - .then(menu => { - expect(menu.getItemsCount()).toBe(5); - }); - }); - - it('change the current page from menu', () => { - pagination.openCurrentPageMenu() - .then(menu => menu.clickNthItem(3)) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.range.getText()).toContain('51-75 of 101'); - expect(pagination.currentPage.getText()).toContain('Page 3'); - expect(pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); - expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); - expect(dataTable.getRowByContainingText('file-40.txt').isPresent()) - .toBe(true, 'File not found on page'); - }) - - .then(() => resetToDefaultPageNumber()); - }); - - it('navigate to next page', () => { - pagination.nextButton.click() - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.range.getText()).toContain('26-50 of 101'); - expect(dataTable.getRowByContainingText('file-70.txt').isPresent()) - .toBe(true, 'File not found on page'); - }) - - .then(() => resetToDefaultPageNumber()); - }); - - it('navigate to previous page', () => { - pagination.openCurrentPageMenu() - .then(menu => menu.clickNthItem(2)) - .then(() => dataTable.waitForHeader()) - .then(() => pagination.previousButton.click()) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.range.getText()).toContain('1-25 of 101'); - expect(dataTable.getRowByContainingText('file-88.txt').isPresent()) - .toBe(true, 'File not found on page'); - }) - - .then(() => resetToDefaultPageNumber()); - }); - - it('last page', () => { - pagination.openCurrentPageMenu() - .then(menu => menu.clickNthItem(5)) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(dataTable.countRows()).toBe(1, 'Incorrect number of items on the last page'); - expect(pagination.currentPage.getText()).toContain('Page 5'); - expect(pagination.nextButton.isEnabled()).toBe(false, 'Next button is enabled'); - }); - }); - }); - - describe(`on Favorites`, () => { - beforeAll(done => { - loginPage.load() - .then(() => loginPage.loginWith(username)) - .then(done); - }); - - beforeEach(done => { - page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES) - .then(() => dataTable.waitForHeader()) - .then(done); - }); - - afterEach(done => { - browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done); - }); - - afterAll(done => { - logoutPage.load().then(done); - }); - - it('default values', () => { - expect(pagination.range.getText()).toContain('1-25 of 101'); - expect(pagination.maxItems.getText()).toContain('25'); - expect(pagination.currentPage.getText()).toContain('Page 1'); - expect(pagination.totalPages.getText()).toContain('of 5'); - expect(pagination.previousButton.isEnabled()).toBe(false, 'Previous button is enabled'); - expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); - }); - - it('page sizes', () => { - pagination.openMaxItemsMenu() - .then(menu => { - const [ first, second, third ] = [1, 2, 3] - .map(nth => menu.getNthItem(nth).getText()); - expect(first).toBe('25'); - expect(second).toBe('50'); - expect(third).toBe('100'); - }); - }); - - it('change the page size', () => { - pagination.openMaxItemsMenu() - .then(menu => menu.clickMenuItem('50')) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.maxItems.getText()).toContain('50'); - expect(pagination.totalPages.getText()).toContain('of 3'); - }) - - .then(() => resetToDefaultPageSize()); - }); - - it('current page menu items', () => { - pagination.openCurrentPageMenu() - .then(menu => { - expect(menu.getItemsCount()).toBe(5); - }); - }); - - it('change the current page from menu', () => { - pagination.openCurrentPageMenu() - .then(menu => menu.clickNthItem(3)) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.range.getText()).toContain('51-75 of 101'); - expect(pagination.currentPage.getText()).toContain('Page 3'); - expect(pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); - expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); - expect(dataTable.getRowByContainingText('file-40.txt').isPresent()) - .toBe(true, 'File not found on page'); - }) - - .then(() => resetToDefaultPageNumber()); - }); - - it('navigate to next page', () => { - pagination.nextButton.click() - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.range.getText()).toContain('26-50 of 101'); - expect(dataTable.getRowByContainingText('file-70.txt').isPresent()) - .toBe(true, 'File not found on page'); - }) - - .then(() => resetToDefaultPageNumber()); - }); - - it('navigate to previous page', () => { - pagination.openCurrentPageMenu() - .then(menu => menu.clickNthItem(2)) - .then(() => dataTable.waitForHeader()) - .then(() => pagination.previousButton.click()) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.range.getText()).toContain('1-25 of 101'); - expect(dataTable.getRowByContainingText('file-88.txt').isPresent()) - .toBe(true, 'File not found on page'); - }) - - .then(() => resetToDefaultPageNumber()); - }); - - it('last page', () => { - pagination.openCurrentPageMenu() - .then(menu => menu.clickNthItem(5)) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(dataTable.countRows()).toBe(1, 'Incorrect number of items on the last page'); - expect(pagination.currentPage.getText()).toContain('Page 5'); - expect(pagination.nextButton.isEnabled()).toBe(false, 'Next button is enabled'); - }); - }); - }); - - describe(`on Shared Files`, () => { - beforeAll(done => { - loginPage.load() - .then(() => loginPage.loginWith(username)) - .then(done); - }); - - beforeEach(done => { - page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES) - .then(() => dataTable.waitForHeader()) - .then(done); - }); - - afterEach(done => { - browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done); - }); - - afterAll(done => { - logoutPage.load().then(done); - }); - - it('default values', () => { - expect(pagination.range.getText()).toContain('1-25 of 101'); - expect(pagination.maxItems.getText()).toContain('25'); - expect(pagination.currentPage.getText()).toContain('Page 1'); - expect(pagination.totalPages.getText()).toContain('of 5'); - expect(pagination.previousButton.isEnabled()).toBe(false, 'Previous button is enabled'); - expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); - }); - - it('page sizes', () => { - pagination.openMaxItemsMenu() - .then(menu => { - const [ first, second, third ] = [1, 2, 3] - .map(nth => menu.getNthItem(nth).getText()); - expect(first).toBe('25'); - expect(second).toBe('50'); - expect(third).toBe('100'); - }); - }); - - it('change the page size', () => { - pagination.openMaxItemsMenu() - .then(menu => menu.clickMenuItem('50')) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.maxItems.getText()).toContain('50'); - expect(pagination.totalPages.getText()).toContain('of 3'); - }) - - .then(() => resetToDefaultPageSize()); - }); - - it('current page menu items', () => { - pagination.openCurrentPageMenu() - .then(menu => { - expect(menu.getItemsCount()).toBe(5); - }); - }); - - it('change the current page from menu', () => { - pagination.openCurrentPageMenu() - .then(menu => menu.clickNthItem(3)) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.range.getText()).toContain('51-75 of 101'); - expect(pagination.currentPage.getText()).toContain('Page 3'); - expect(pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); - expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); - expect(dataTable.getRowByContainingText('file-40.txt').isPresent()) - .toBe(true, 'File not found on page'); - }) - - .then(() => resetToDefaultPageNumber()); - }); - - it('navigate to next page', () => { - pagination.nextButton.click() - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.range.getText()).toContain('26-50 of 101'); - expect(dataTable.getRowByContainingText('file-70.txt').isPresent()) - .toBe(true, 'File not found on page'); - }) - - .then(() => resetToDefaultPageNumber()); - }); - - it('navigate to previous page', () => { - pagination.openCurrentPageMenu() - .then(menu => menu.clickNthItem(2)) - .then(() => dataTable.waitForHeader()) - .then(() => pagination.previousButton.click()) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.range.getText()).toContain('1-25 of 101'); - expect(dataTable.getRowByContainingText('file-88.txt').isPresent()) - .toBe(true, 'File not found on page'); - }) - - .then(() => resetToDefaultPageNumber()); - }); - - it('last page', () => { - pagination.openCurrentPageMenu() - .then(menu => menu.clickNthItem(5)) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(dataTable.countRows()).toBe(1, 'Incorrect number of items on the last page'); - expect(pagination.currentPage.getText()).toContain('Page 5'); - expect(pagination.nextButton.isEnabled()).toBe(false, 'Next button is enabled'); - }); - }); - }); - - describe(`on Trash`, () => { - beforeAll(done => { - loginPage.load() - .then(() => loginPage.loginWith(username)) - .then(done); - }); - - beforeEach(done => { - page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH) - .then(() => dataTable.waitForHeader()) - .then(done); - }); - - afterEach(done => { - browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done); - }); - - afterAll(done => { - logoutPage.load().then(done); - }); - - it('default values', () => { - expect(pagination.range.getText()).toContain('1-25 of 101'); - expect(pagination.maxItems.getText()).toContain('25'); - expect(pagination.currentPage.getText()).toContain('Page 1'); - expect(pagination.totalPages.getText()).toContain('of 5'); - expect(pagination.previousButton.isEnabled()).toBe(false, 'Previous button is enabled'); - expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); - }); - - it('page sizes', () => { - pagination.openMaxItemsMenu() - .then(menu => { - const [ first, second, third ] = [1, 2, 3] - .map(nth => menu.getNthItem(nth).getText()); - expect(first).toBe('25'); - expect(second).toBe('50'); - expect(third).toBe('100'); - }); - }); - - it('change the page size', () => { - pagination.openMaxItemsMenu() - .then(menu => menu.clickMenuItem('50')) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.maxItems.getText()).toContain('50'); - expect(pagination.totalPages.getText()).toContain('of 3'); - }) - - .then(() => resetToDefaultPageSize()); - }); - - it('current page menu items', () => { - pagination.openCurrentPageMenu() - .then(menu => { - expect(menu.getItemsCount()).toBe(5); - }); - }); - - it('change the current page from menu', () => { - pagination.openCurrentPageMenu() - .then(menu => menu.clickNthItem(3)) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.range.getText()).toContain('51-75 of 101'); - expect(pagination.currentPage.getText()).toContain('Page 3'); - expect(pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); - expect(pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); - expect(dataTable.getRowByContainingText('file-40.txt').isPresent()) - .toBe(true, 'File not found on page'); - }) - - .then(() => resetToDefaultPageNumber()); - }); - - it('navigate to next page', () => { - pagination.nextButton.click() - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.range.getText()).toContain('26-50 of 101'); - expect(dataTable.getRowByContainingText('file-70.txt').isPresent()) - .toBe(true, 'File not found on page'); - }) - - .then(() => resetToDefaultPageNumber()); - }); - - it('navigate to previous page', () => { - pagination.openCurrentPageMenu() - .then(menu => menu.clickNthItem(2)) - .then(() => dataTable.waitForHeader()) - .then(() => pagination.previousButton.click()) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(pagination.range.getText()).toContain('1-25 of 101'); - expect(dataTable.getRowByContainingText('file-88.txt').isPresent()) - .toBe(true, 'File not found on page'); - }) - - .then(() => resetToDefaultPageNumber()); - }); - - it('last page', () => { - pagination.openCurrentPageMenu() - .then(menu => menu.clickNthItem(5)) - .then(() => dataTable.waitForHeader()) - .then(() => { - expect(dataTable.countRows()).toBe(1, 'Incorrect number of items on the last page'); - expect(pagination.currentPage.getText()).toContain('Page 5'); - expect(pagination.nextButton.isEnabled()).toBe(false, 'Next button is enabled'); - }); - }); - }); -}); diff --git a/protractor.conf.js b/protractor.conf.js index 60ea06d39..8f2b182ab 100644 --- a/protractor.conf.js +++ b/protractor.conf.js @@ -11,14 +11,14 @@ const width = 1366; const height = 768; exports.config = { - allScriptsTimeout: 11000, + allScriptsTimeout: 30000, specs: [ './e2e/suites/authentication/*.test.ts', './e2e/suites/list-views/*.test.ts', './e2e/suites/application/page-titles.test.ts', './e2e/suites/navigation/side-navigation.test.ts', - './e2e/suites/pagination/pagination.test.ts', + './e2e/suites/pagination/*.test.ts', './e2e/suites/actions/*.test.ts' ], @@ -38,7 +38,7 @@ exports.config = { framework: 'jasmine2', jasmineNodeOpts: { showColors: true, - defaultTimeoutInterval: 30000, + defaultTimeoutInterval: 50000, print: function() {} }, From 2d6ae127aa0936ffbb65266d202523a6a00a7bb0 Mon Sep 17 00:00:00 2001 From: Adina Parpalita Date: Fri, 1 Dec 2017 13:12:24 +0200 Subject: [PATCH 40/70] [ACA-990] stabilise e2e tests (#104) --- .../dialog/create-edit-folder-dialog.ts | 38 ++- e2e/suites/actions/create-folder.test.ts | 264 ++++++++---------- e2e/suites/actions/edit-folder.test.ts | 200 ++++++------- e2e/suites/actions/permanently-delete.test.ts | 2 +- e2e/suites/actions/restore.test.ts | 2 +- protractor.conf.js | 2 +- 6 files changed, 222 insertions(+), 286 deletions(-) diff --git a/e2e/components/dialog/create-edit-folder-dialog.ts b/e2e/components/dialog/create-edit-folder-dialog.ts index c7caed104..e3ff2f637 100644 --- a/e2e/components/dialog/create-edit-folder-dialog.ts +++ b/e2e/components/dialog/create-edit-folder-dialog.ts @@ -21,11 +21,11 @@ import { Component } from '../component'; export class CreateOrEditFolderDialog extends Component { private static selectors = { - root: '.mat-dialog-container', + root: 'adf-folder-dialog', title: '.mat-dialog-title', - nameInput: '.mat-dialog-container .mat-input-element[placeholder="Name"]', - descriptionTextArea: '.mat-dialog-container .mat-input-element[placeholder="Description"]', + nameInput: 'input', + descriptionTextArea: 'textarea', button: '.mat-dialog-actions button', validationMessage: '.mat-hint span' }; @@ -64,33 +64,27 @@ export class CreateOrEditFolderDialog extends Component { .catch(() => ''); } - enterName(name: string): CreateOrEditFolderDialog { - const { nameInput } = this; + enterName(name: string): promise.Promise { + return this.nameInput.clear() + .then(() => this.nameInput.sendKeys(name)) + .then(() => this); + } - nameInput.clear(); - nameInput.sendKeys(name); - - return this; + enterDescription(description: string): promise.Promise { + return this.descriptionTextArea.clear() + .then(() => { + browser.actions().click(this.descriptionTextArea).sendKeys(description).perform(); + }) + .then(() => this); } deleteNameWithBackspace(): promise.Promise { - const { nameInput } = this; - - return nameInput.clear() + return this.nameInput.clear() .then(() => { - return nameInput.sendKeys(' ', protractor.Key.CONTROL, 'a', protractor.Key.NULL, protractor.Key.BACK_SPACE); + return this.nameInput.sendKeys(' ', protractor.Key.CONTROL, 'a', protractor.Key.NULL, protractor.Key.BACK_SPACE); }); } - enterDescription(description: string): CreateOrEditFolderDialog { - const { descriptionTextArea } = this; - - descriptionTextArea.clear(); - descriptionTextArea.sendKeys(description); - - return this; - } - clickCreate() { return this.createButton.click(); } diff --git a/e2e/suites/actions/create-folder.test.ts b/e2e/suites/actions/create-folder.test.ts index 42280ad4f..cba5d30c1 100644 --- a/e2e/suites/actions/create-folder.test.ts +++ b/e2e/suites/actions/create-folder.test.ts @@ -17,7 +17,7 @@ import { protractor, browser, by, ElementFinder } from 'protractor'; -import { APP_ROUTES, BROWSER_WAIT_TIMEOUT, SITE_VISIBILITY, SITE_ROLES } from '../../configs'; +import { SIDEBAR_LABELS, BROWSER_WAIT_TIMEOUT, SITE_VISIBILITY, SITE_ROLES } from '../../configs'; import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; import { CreateOrEditFolderDialog } from '../../components/dialog/create-edit-folder-dialog'; import { Utils } from '../../utilities/utils'; @@ -42,16 +42,13 @@ describe('Create folder', () => { const loginPage = new LoginPage(); const logoutPage = new LogoutPage(); - const personalFilesPage = new BrowsingPage(APP_ROUTES.PERSONAL_FILES); + const personalFilesPage = new BrowsingPage(); const createDialog = new CreateOrEditFolderDialog(); - const dataTable = personalFilesPage.dataTable; + const { dataTable } = personalFilesPage; function openCreateDialog(): any { - return personalFilesPage.sidenav - .openNewMenu() - .then((menu) => { - menu.clickMenuItem('Create folder'); - }) + return personalFilesPage.sidenav.openNewMenu() + .then(menu => menu.clickMenuItem('Create folder')) .then(() => createDialog.waitForDialogToOpen()); } @@ -61,25 +58,25 @@ describe('Create folder', () => { .then(() => apis.admin.nodes.createFolders([ folderName1 ], `Sites/${siteName}/documentLibrary`)) .then(() => apis.admin.sites.addSiteMember(siteName, username, SITE_ROLES.SITE_CONSUMER)) .then(() => apis.user.nodes.createFolders([ duplicateFolderName ], parent)) - .then(() => loginPage.load() - .then(() => loginPage.loginWith(username)) - .then(done)); + .then(() => loginPage.load()) + .then(() => loginPage.loginWith(username)) + .then(done); }); beforeEach(done => { - personalFilesPage.load() + personalFilesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES) .then(() => dataTable.waitForHeader()) .then(done); }); afterEach(done => { - browser.$('body').sendKeys(protractor.Key.ESCAPE).then(done); + browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done); }); afterAll(done => { Promise .all([ - apis.admin.sites.deleteSite(siteName, true), + apis.admin.sites.deleteSite(siteName), apis.user.nodes.deleteNodes([ parent ]), logoutPage.load() ]) @@ -88,214 +85,187 @@ describe('Create folder', () => { it('option is enabled when having enough permissions', () => { personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => personalFilesPage.sidenav.openNewMenu() - .then((menu) => { - const isEnabled = menu.getItemByLabel('Create folder').getWebElement().isEnabled(); - - expect(isEnabled).toBe(true, 'Create folder is not enabled'); - }) - ); + .then(() => personalFilesPage.sidenav.openNewMenu()) + .then(menu => { + const isEnabled = menu.getItemByLabel('Create folder').isEnabled(); + expect(isEnabled).toBe(true, 'Create folder is not enabled'); + }); }); it('creates new folder with name', () => { personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => openCreateDialog() - .then(() => createDialog.enterName(folderName1).clickCreate()) - .then(() => createDialog.waitForDialogToClose()) - .then(() => dataTable.waitForHeader()) - .then(() => { - const isPresent = dataTable.getRowByName(folderName1).isPresent(); - expect(isPresent).toBe(true, 'Folder not displayed in list view'); - }) - ); + .then(() => openCreateDialog()) + .then(() => createDialog.enterName(folderName1)) + .then(() => createDialog.clickCreate()) + .then(() => createDialog.waitForDialogToClose()) + .then(() => dataTable.waitForHeader()) + .then(() => { + const isPresent = dataTable.getRowByName(folderName1).isPresent(); + expect(isPresent).toBe(true, 'Folder not displayed in list view'); + }); }); it('creates new folder with name and description', () => { personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => openCreateDialog() - .then(() => { - createDialog - .enterName(folderName2) - .enterDescription(folderDescription) - .clickCreate(); - }) - .then(() => createDialog.waitForDialogToClose()) - .then(() => dataTable.waitForHeader()) - .then(() => { - const isPresent = dataTable.getRowByName(folderName2).isPresent(); - expect(isPresent).toBe(true, 'Folder not displayed in list view'); - }) - .then(() => { - apis.user.nodes.getNodeDescription(folderName2) - .then((description) => expect(description).toEqual(folderDescription)); - }) - ); + .then(() => openCreateDialog()) + .then(() => createDialog.enterName(folderName2)) + .then(() => createDialog.enterDescription(folderDescription)) + .then(() => createDialog.clickCreate()) + .then(() => createDialog.waitForDialogToClose()) + .then(() => dataTable.waitForHeader()) + .then(() => { + const isPresent = dataTable.getRowByName(folderName2).isPresent(); + expect(isPresent).toBe(true, 'Folder not displayed in list view'); + }) + .then(() => { + expect(apis.user.nodes.getNodeDescription(folderName2)).toEqual(folderDescription); + }); }); it('enabled option tooltip', () => { personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => personalFilesPage.sidenav.openNewMenu() - .then(menu => { - const action = browser.actions().mouseMove(menu.getItemByLabel('Create folder')); - action.perform(); - - return menu; - }) - .then((menu) => { - const tooltip = menu.getItemTooltip('Create folder'); - expect(tooltip).toContain('Create new folder'); - }) - ); + .then(() => personalFilesPage.sidenav.openNewMenu()) + .then(menu => browser.actions().mouseMove(menu.getItemByLabel('Create folder')).perform() + .then(() => menu)) + .then(menu => { + expect(menu.getItemTooltip('Create folder')).toContain('Create new folder'); + }); }); it('option is disabled when not enough permissions', () => { - const fileLibrariesPage = new BrowsingPage(APP_ROUTES.FILE_LIBRARIES); + const fileLibrariesPage = new BrowsingPage(); - fileLibrariesPage.sidenav.navigateToLinkByLabel('File Libraries') + fileLibrariesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES) .then(() => fileLibrariesPage.dataTable.doubleClickOnItemName(siteName)) .then(() => fileLibrariesPage.dataTable.doubleClickOnItemName(folderName1)) .then(() => fileLibrariesPage.sidenav.openNewMenu()) .then(menu => { - const isEnabled = menu.getItemByLabel('Create folder').getWebElement().isEnabled(); + const isEnabled = menu.getItemByLabel('Create folder').isEnabled(); expect(isEnabled).toBe(false, 'Create folder is not disabled'); }); }); it('disabled option tooltip', () => { - const fileLibrariesPage = new BrowsingPage(APP_ROUTES.FILE_LIBRARIES); + const fileLibrariesPage = new BrowsingPage(); - fileLibrariesPage.sidenav.navigateToLinkByLabel('File Libraries') + fileLibrariesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES) .then(() => fileLibrariesPage.dataTable.doubleClickOnItemName(siteName)) .then(() => fileLibrariesPage.dataTable.doubleClickOnItemName(folderName1)) .then(() => fileLibrariesPage.sidenav.openNewMenu()) + .then(menu => browser.actions().mouseMove(menu.getItemByLabel('Create folder')).perform() + .then(() => menu)) .then(menu => { - const action = browser.actions().mouseMove(menu.getItemByLabel('Create folder')); - action.perform() - .then(() => { - const tooltip = menu.getItemTooltip('Create folder'); - expect(tooltip).toContain(`You can't create a folder here`); - }); + const tooltip = menu.getItemTooltip('Create folder'); + expect(tooltip).toContain(`You can't create a folder here`); }); }); it('dialog UI elements', () => { personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => openCreateDialog().then(() => { + .then(() => openCreateDialog()) + .then(() => { const dialogTitle = createDialog.getTitle(); - const isFolderNameDisplayed = createDialog.nameInput.getWebElement().isDisplayed(); - const isDescriptionDisplayed = createDialog.descriptionTextArea.getWebElement().isDisplayed(); - const isCreateEnabled = createDialog.createButton.getWebElement().isEnabled(); - const isCancelEnabled = createDialog.cancelButton.getWebElement().isEnabled(); + const isFolderNameDisplayed = createDialog.nameInput.isDisplayed(); + const isDescriptionDisplayed = createDialog.descriptionTextArea.isDisplayed(); + const isCreateEnabled = createDialog.createButton.isEnabled(); + const isCancelEnabled = createDialog.cancelButton.isEnabled(); - expect(dialogTitle).toBe('Create new folder'); + expect(dialogTitle).toMatch('Create new folder'); expect(isFolderNameDisplayed).toBe(true, 'Name input is not displayed'); expect(isDescriptionDisplayed).toBe(true, 'Description field is not displayed'); expect(isCreateEnabled).toBe(false, 'Create button is not disabled'); expect(isCancelEnabled).toBe(true, 'Cancel button is not enabled'); - }) - ); + }); }); it('with empty folder name', () => { personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => openCreateDialog() - .then(() => { - createDialog.deleteNameWithBackspace(); - }) - .then(() => { - const isCreateEnabled = createDialog.createButton.getWebElement().isEnabled(); - const validationMessage = createDialog.getValidationMessage(); + .then(() => openCreateDialog()) + .then(() => createDialog.deleteNameWithBackspace()) + .then(() => { + const isCreateEnabled = createDialog.createButton.isEnabled(); + const validationMessage = createDialog.getValidationMessage(); - expect(isCreateEnabled).toBe(false, 'Create button is enabled'); - expect(validationMessage).toMatch('Folder name is required'); - }) - ); + expect(isCreateEnabled).toBe(false, 'Create button is enabled'); + expect(validationMessage).toMatch('Folder name is required'); + }); }); it('with folder name ending with a dot "."', () => { personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => openCreateDialog() - .then(() => createDialog.enterName('folder-name.')) - .then((dialog) => { - const isCreateEnabled = dialog.createButton.getWebElement().isEnabled(); - const validationMessage = dialog.getValidationMessage(); + .then(() => openCreateDialog()) + .then(() => createDialog.enterName('folder-name.')) + .then(dialog => { + const isCreateEnabled = dialog.createButton.isEnabled(); + const validationMessage = dialog.getValidationMessage(); - expect(isCreateEnabled).toBe(false, 'Create button is not disabled'); - expect(validationMessage).toMatch(`Folder name can't end with a period .`); - }) - ); + expect(isCreateEnabled).toBe(false, 'Create button is not disabled'); + expect(validationMessage).toMatch(`Folder name can't end with a period .`); + }); }); it('with folder name containing special characters', () => { const namesWithSpecialChars = [ 'a*a', 'a"a', 'aa', `a\\a`, 'a/a', 'a?a', 'a:a', 'a|a' ]; personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => openCreateDialog() - .then(() => { - namesWithSpecialChars.forEach(name => { - createDialog.enterName(name); + .then(() => openCreateDialog()) + .then(() => namesWithSpecialChars.forEach(name => { + createDialog.enterName(name); - const isCreateEnabled = createDialog.createButton.getWebElement().isEnabled(); - const validationMessage = createDialog.getValidationMessage(); + const isCreateEnabled = createDialog.createButton.isEnabled(); + const validationMessage = createDialog.getValidationMessage(); - expect(isCreateEnabled).toBe(false, 'Create button is not disabled'); - expect(validationMessage).toContain(`Folder name can't contain these characters`); - }); - }) - ); + expect(isCreateEnabled).toBe(false, 'Create button is not disabled'); + expect(validationMessage).toContain(`Folder name can't contain these characters`); + })); }); it('with folder name containing only spaces', () => { personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => openCreateDialog() - .then(() => createDialog.enterName(' ')) - .then((dialog) => { - const isCreateEnabled = dialog.createButton.getWebElement().isEnabled(); - const validationMessage = dialog.getValidationMessage(); + .then(() => openCreateDialog()) + .then(() => createDialog.enterName(' ')) + .then(dialog => { + const isCreateEnabled = dialog.createButton.isEnabled(); + const validationMessage = dialog.getValidationMessage(); - expect(isCreateEnabled).toBe(false, 'Create button is not disabled'); - expect(validationMessage).toMatch(`Folder name can't contain only spaces`); - }) - ); + expect(isCreateEnabled).toBe(false, 'Create button is not disabled'); + expect(validationMessage).toMatch(`Folder name can't contain only spaces`); + }); }); it('cancel folder creation', () => { personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => openCreateDialog() - .then(() => { - createDialog - .enterName('test') - .enterDescription('test description') - .clickCancel(); - }) - .then(() => expect(createDialog.component.isPresent()).not.toBe(true, 'dialog is not closed')) - ); + .then(() => openCreateDialog()) + .then(() => createDialog.enterName('test')) + .then(() => createDialog.enterDescription('test description')) + .then(() => createDialog.clickCancel()) + .then(() => { + expect(createDialog.component.isPresent()).not.toBe(true, 'dialog is not closed'); + }); }); it('duplicate folder name', () => { personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => openCreateDialog() - .then(() => createDialog.enterName(duplicateFolderName).clickCreate()) - .then(() => { - personalFilesPage.getSnackBarMessage() - .then(message => { - expect(message).toEqual(`There's already a folder with this name. Try a different name.`); - expect(createDialog.component.isPresent()).toBe(true, 'dialog is not present'); - }); - }) - ); + .then(() => openCreateDialog()) + .then(() => createDialog.enterName(duplicateFolderName)) + .then(() => createDialog.clickCreate()) + .then(() => personalFilesPage.getSnackBarMessage()) + .then(message => { + expect(message).toEqual(`There's already a folder with this name. Try a different name.`); + expect(createDialog.component.isPresent()).toBe(true, 'dialog is not present'); + }); }); it('trim ending spaces from folder name', () => { personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => openCreateDialog() - .then(() => createDialog.enterName(nameWithSpaces).clickCreate()) - .then(() => createDialog.waitForDialogToClose()) - .then(() => dataTable.waitForHeader()) - .then(() => { - const isPresent = dataTable.getRowByName(nameWithSpaces.trim()).isPresent(); - expect(isPresent).toBe(true, 'Folder not displayed in list view'); - }) - ); + .then(() => openCreateDialog()) + .then(() => createDialog.enterName(nameWithSpaces)) + .then(() => createDialog.clickCreate()) + .then(() => createDialog.waitForDialogToClose()) + .then(() => dataTable.waitForHeader()) + .then(() => { + const isPresent = dataTable.getRowByName(nameWithSpaces.trim()).isPresent(); + expect(isPresent).toBe(true, 'Folder not displayed in list view'); + }); }); }); diff --git a/e2e/suites/actions/edit-folder.test.ts b/e2e/suites/actions/edit-folder.test.ts index 024b1a81d..3548d76ac 100644 --- a/e2e/suites/actions/edit-folder.test.ts +++ b/e2e/suites/actions/edit-folder.test.ts @@ -17,7 +17,7 @@ import { protractor, element, browser, by, ElementFinder, promise } from 'protractor'; import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; -import { APP_ROUTES, SITE_VISIBILITY, SITE_ROLES } from '../../configs'; +import { SIDEBAR_LABELS, SITE_VISIBILITY, SITE_ROLES } from '../../configs'; import { RepoClient } from '../../utilities/repo-client/repo-client'; import { CreateOrEditFolderDialog } from '../../components/dialog/create-edit-folder-dialog'; import { Utils } from '../../utilities/utils'; @@ -44,42 +44,40 @@ describe('Edit folder', () => { const loginPage = new LoginPage(); const logoutPage = new LogoutPage(); - const personalFilesPage = new BrowsingPage(APP_ROUTES.PERSONAL_FILES); + const personalFilesPage = new BrowsingPage(); const editDialog = new CreateOrEditFolderDialog(); - const dataTable = personalFilesPage.dataTable; + const { dataTable } = personalFilesPage; const editButton = personalFilesPage.toolbar.actions.getButtonByTitleAttribute('Edit'); beforeAll(done => { - Promise - .all([ - apis.admin.people.createUser(username), - apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PRIVATE) - .then(() => apis.admin.nodes.createFolders([ folderName ], `Sites/${siteName}/documentLibrary`)) - ]) + apis.admin.people.createUser(username) + .then(() => apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PRIVATE)) + .then(() => apis.admin.nodes.createFolders([ folderName ], `Sites/${siteName}/documentLibrary`)) .then(() => apis.admin.sites.addSiteMember(siteName, username, SITE_ROLES.SITE_CONSUMER)) - .then(() => Promise.all([ - apis.user.nodes.createNodeWithProperties( folderName, '', folderDescription, parent ), - apis.user.nodes.createFolders([ folderNameToEdit, duplicateFolderName ], parent) - ])) - .then(() => loginPage.load() - .then(() => loginPage.loginWith(username)) - .then(done)); + + .then(() => apis.user.nodes.createNodeWithProperties( folderName, '', folderDescription, parent )) + .then(() => apis.user.nodes.createFolders([ folderNameToEdit, duplicateFolderName ], parent)) + .then(() => loginPage.load()) + .then(() => loginPage.loginWith(username)) + .then(done); }); beforeEach(done => { - personalFilesPage.load() + personalFilesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES) + .then(() => dataTable.waitForHeader()) + .then(() => dataTable.doubleClickOnItemName(parent)) .then(() => dataTable.waitForHeader()) .then(done); }); afterEach(done => { - browser.$('body').sendKeys(protractor.Key.ESCAPE).then(done); + browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done); }); afterAll(done => { Promise .all([ - apis.admin.sites.deleteSite(siteName, true), + apis.admin.sites.deleteSite(siteName), apis.user.nodes.deleteNodes([ parent ]), logoutPage.load() ]) @@ -87,124 +85,98 @@ describe('Edit folder', () => { }); it('dialog UI defaults', () => { - personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => dataTable.clickOnItemName(folderName) - .then(() => editButton.click()) - .then(() => { - expect(editDialog.getTitle()).toBe('Edit folder'); - expect(editDialog.nameInput.getWebElement().getAttribute('value')).toBe(folderName); - expect(editDialog.descriptionTextArea.getWebElement().getAttribute('value')).toBe(folderDescription); - expect(editDialog.updateButton.getWebElement().isEnabled()).toBe(true, 'upload button is not enabled'); - expect(editDialog.cancelButton.getWebElement().isEnabled()).toBe(true, 'cancel button is not enabled'); - }) - ); + dataTable.clickOnItemName(folderName) + .then(() => editButton.click()) + .then(() => { + expect(editDialog.getTitle()).toEqual('Edit folder'); + expect(editDialog.nameInput.getAttribute('value')).toBe(folderName); + expect(editDialog.descriptionTextArea.getAttribute('value')).toBe(folderDescription); + expect(editDialog.updateButton.isEnabled()).toBe(true, 'upload button is not enabled'); + expect(editDialog.cancelButton.isEnabled()).toBe(true, 'cancel button is not enabled'); + }); }); it('properties are modified when pressing OK', () => { - personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => dataTable.clickOnItemName(folderNameToEdit) - .then(() => editButton.click()) - .then(() => { - editDialog - .enterName(folderNameEdited) - .enterDescription(folderDescriptionEdited) - .clickUpdate(); - }) - .then(() => editDialog.waitForDialogToClose()) - .then(() => dataTable.waitForHeader()) - .then(() => { - const isPresent = dataTable.getRowByName(folderNameEdited).isPresent(); - expect(isPresent).toBe(true, 'Folder not displayed in list view'); - }) - .then(() => { - apis.user.nodes.getNodeDescription(folderNameEdited) - .then((description) => { - expect(description).toEqual(folderDescriptionEdited); - }); - }) - ); + dataTable.clickOnItemName(folderNameToEdit) + .then(() => editButton.click()) + .then(() => editDialog.waitForDialogToOpen()) + .then(() => editDialog.enterName(folderNameEdited)) + .then(() => editDialog.enterDescription(folderDescriptionEdited)) + .then(() => editDialog.clickUpdate()) + .then(() => editDialog.waitForDialogToClose()) + .then(() => dataTable.waitForHeader()) + .then(() => { + const isPresent = dataTable.getRowByName(folderNameEdited).isPresent(); + expect(isPresent).toBe(true, 'Folder not displayed in list view'); + }) + .then(() => { + expect(apis.user.nodes.getNodeDescription(folderNameEdited)).toEqual(folderDescriptionEdited); + }); }); it('with empty folder name', () => { - personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => dataTable.clickOnItemName(folderName) - .then(() => editButton.click()) - .then(() => { - editDialog.deleteNameWithBackspace(); - }) - .then(() => { - expect(editDialog.updateButton.getWebElement().isEnabled()).toBe(false, 'upload button is not enabled'); - expect(editDialog.getValidationMessage()).toMatch('Folder name is required'); - }) - ); + dataTable.clickOnItemName(folderName) + .then(() => editButton.click()) + .then(() => editDialog.deleteNameWithBackspace()) + .then(() => { + expect(editDialog.updateButton.isEnabled()).toBe(false, 'upload button is not enabled'); + expect(editDialog.getValidationMessage()).toMatch('Folder name is required'); + }); }); it('with name with special characters', () => { const namesWithSpecialChars = [ 'a*a', 'a"a', 'aa', `a\\a`, 'a/a', 'a?a', 'a:a', 'a|a' ]; - personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => dataTable.clickOnItemName(folderName) - .then(() => editButton.click()) - .then(() => { - namesWithSpecialChars.forEach(name => { - editDialog.enterName(name); + dataTable.clickOnItemName(folderName) + .then(() => editButton.click()) + .then(() => namesWithSpecialChars.forEach(name => { + editDialog.enterName(name); - expect(editDialog.updateButton.getWebElement().isEnabled()).toBe(false, 'upload button is not disabled'); - expect(editDialog.getValidationMessage()).toContain(`Folder name can't contain these characters`); - }); - }) - ); + expect(editDialog.updateButton.isEnabled()).toBe(false, 'upload button is not disabled'); + expect(editDialog.getValidationMessage()).toContain(`Folder name can't contain these characters`); + })); }); it('with name ending with a dot', () => { - personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => dataTable.clickOnItemName(folderName) - .then(() => editButton.click()) - .then(() => editDialog.nameInput.sendKeys('.')) - .then(() => { - expect(editDialog.updateButton.getWebElement().isEnabled()).toBe(false, 'upload button is not enabled'); - expect(editDialog.getValidationMessage()).toMatch(`Folder name can't end with a period .`); - }) - ); + dataTable.clickOnItemName(folderName) + .then(() => editButton.click()) + .then(() => editDialog.nameInput.sendKeys('.')) + .then(() => { + expect(editDialog.updateButton.isEnabled()).toBe(false, 'upload button is not enabled'); + expect(editDialog.getValidationMessage()).toMatch(`Folder name can't end with a period .`); + }); }); it('Cancel button', () => { - personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => dataTable.clickOnItemName(folderName) - .then(() => editButton.click()) - .then(() => editDialog.clickCancel()) - .then(() => { - expect(editDialog.component.isPresent()).not.toBe(true, 'dialog is not closed'); - }) - ); + dataTable.clickOnItemName(folderName) + .then(() => editButton.click()) + .then(() => editDialog.clickCancel()) + .then(() => { + expect(editDialog.component.isPresent()).not.toBe(true, 'dialog is not closed'); + }); }); it('with duplicate folder name', () => { - personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => dataTable.clickOnItemName(folderName) - .then(() => editButton.click()) - .then(() => editDialog.enterName(duplicateFolderName).clickUpdate()) - .then(() => { - personalFilesPage.getSnackBarMessage() - .then(message => { - expect(message).toEqual(`There's already a folder with this name. Try a different name.`); - expect(editDialog.component.isPresent()).toBe(true, 'dialog is not present'); - }); - }) - ); + dataTable.clickOnItemName(folderName) + .then(() => editButton.click()) + .then(() => editDialog.enterName(duplicateFolderName)) + .then(() => editDialog.clickUpdate()) + .then(() => personalFilesPage.getSnackBarMessage()) + .then(message => { + expect(message).toEqual(`There's already a folder with this name. Try a different name.`); + expect(editDialog.component.isPresent()).toBe(true, 'dialog is not present'); + }); }); it('trim ending spaces', () => { - personalFilesPage.dataTable.doubleClickOnItemName(parent) - .then(() => dataTable.clickOnItemName(folderName) - .then(() => editButton.click()) - .then(() => editDialog.nameInput.sendKeys(' ')) - .then(() => editDialog.clickUpdate()) - .then(() => editDialog.waitForDialogToClose()) - .then(() => { - expect(personalFilesPage.snackBar.isPresent()).not.toBe(true, 'notification appears'); - expect(dataTable.getRowByName(folderName).isPresent()).toBe(true, 'Folder not displayed in list view'); - }) - ); + dataTable.clickOnItemName(folderName) + .then(() => editButton.click()) + .then(() => editDialog.nameInput.sendKeys(' ')) + .then(() => editDialog.clickUpdate()) + .then(() => editDialog.waitForDialogToClose()) + .then(() => { + expect(personalFilesPage.snackBar.isPresent()).not.toBe(true, 'notification appears'); + expect(dataTable.getRowByName(folderName).isPresent()).toBe(true, 'Folder not displayed in list view'); + }); }); }); diff --git a/e2e/suites/actions/permanently-delete.test.ts b/e2e/suites/actions/permanently-delete.test.ts index 93b86b036..ca47b1d88 100644 --- a/e2e/suites/actions/permanently-delete.test.ts +++ b/e2e/suites/actions/permanently-delete.test.ts @@ -66,7 +66,7 @@ describe('Permanently delete from Trash', () => { afterAll(done => { Promise.all([ - apis.user.trashcan.emptyTrash(), + apis.admin.trashcan.emptyTrash(), logoutPage.load() ]) .then(done); diff --git a/e2e/suites/actions/restore.test.ts b/e2e/suites/actions/restore.test.ts index 6556f3145..ddb0d6631 100644 --- a/e2e/suites/actions/restore.test.ts +++ b/e2e/suites/actions/restore.test.ts @@ -70,7 +70,7 @@ describe('Restore from Trash', () => { Promise.all([ apis.user.nodes.deleteNodesById(filesIds), apis.user.nodes.deleteNodesById(foldersIds), - apis.user.trashcan.emptyTrash(), + apis.admin.trashcan.emptyTrash(), logoutPage.load() ]) .then(done); diff --git a/protractor.conf.js b/protractor.conf.js index 8f2b182ab..e223a8b37 100644 --- a/protractor.conf.js +++ b/protractor.conf.js @@ -23,7 +23,7 @@ exports.config = { ], capabilities: { - 'browserName': 'chrome', + browserName: 'chrome', chromeOptions: { prefs: { 'credentials_enable_service': false From 1679106e8df722d1bce7de8a848a3eefc84df36b Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Mon, 4 Dec 2017 04:08:46 +0000 Subject: [PATCH 41/70] ability to control full logo path (#102) helps switching between root hosting and virtual paths --- src/app.config.json | 2 +- src/app/components/header/header.component.ts | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/app.config.json b/src/app.config.json index 80383e6d4..e5ea19e7f 100644 --- a/src/app.config.json +++ b/src/app.config.json @@ -4,7 +4,7 @@ "name": "Alfresco Example Content Application", "build": "1234" }, - "logo": "alfresco-logo-white.svg", + "logo": "/assets/images/alfresco-logo-white.svg", "languagePicker": false, "document-list": { "supportedPageSizes": [ diff --git a/src/app/components/header/header.component.ts b/src/app/components/header/header.component.ts index 2249309dc..f54b8bef9 100644 --- a/src/app/components/header/header.component.ts +++ b/src/app/components/header/header.component.ts @@ -25,8 +25,7 @@ import { AppConfigService } from '@alfresco/adf-core'; encapsulation: ViewEncapsulation.None }) export class HeaderComponent { - static ASSETS_PATH = '/assets/images/'; - static DEFAULT_LOGO = 'alfresco-logo-white.svg'; + private defaultPath = '/assets/images/alfresco-logo-white.svg'; constructor(private appConfig: AppConfigService) {} @@ -35,6 +34,6 @@ export class HeaderComponent { } get logo() { - return `${HeaderComponent.ASSETS_PATH}${this.appConfig.get('logo', HeaderComponent.DEFAULT_LOGO)}`; + return this.appConfig.get('logo', this.defaultPath); } } From 39458aa97ad8a7dbc41d1445a91d397ac8612d96 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Mon, 4 Dec 2017 04:09:25 +0000 Subject: [PATCH 42/70] offline fonts (#103) --- .angular-cli.json | 2 + .../material-icons/MaterialIcons-Regular.eot | Bin 0 -> 143258 bytes .../MaterialIcons-Regular.ijmap | 1 + .../material-icons/MaterialIcons-Regular.svg | 2373 +++++++++++++++++ .../material-icons/MaterialIcons-Regular.ttf | Bin 0 -> 128180 bytes .../material-icons/MaterialIcons-Regular.woff | Bin 0 -> 57620 bytes .../MaterialIcons-Regular.woff2 | Bin 0 -> 44300 bytes src/assets/fonts/material-icons/README.md | 9 + src/assets/fonts/material-icons/codepoints | 932 +++++++ .../fonts/material-icons/material-icons.css | 36 + src/assets/fonts/muli/Muli-Black.ttf | Bin 0 -> 95340 bytes src/assets/fonts/muli/Muli-BlackItalic.ttf | Bin 0 -> 97220 bytes src/assets/fonts/muli/Muli-Bold.ttf | Bin 0 -> 93816 bytes src/assets/fonts/muli/Muli-BoldItalic.ttf | Bin 0 -> 96652 bytes src/assets/fonts/muli/Muli-ExtraBold.ttf | Bin 0 -> 95212 bytes .../fonts/muli/Muli-ExtraBoldItalic.ttf | Bin 0 -> 96752 bytes src/assets/fonts/muli/Muli-ExtraLight.ttf | Bin 0 -> 91508 bytes .../fonts/muli/Muli-ExtraLightItalic.ttf | Bin 0 -> 92980 bytes src/assets/fonts/muli/Muli-Italic.ttf | Bin 0 -> 95880 bytes src/assets/fonts/muli/Muli-Light.ttf | Bin 0 -> 93112 bytes src/assets/fonts/muli/Muli-LightItalic.ttf | Bin 0 -> 94556 bytes src/assets/fonts/muli/Muli-Regular.ttf | Bin 0 -> 94320 bytes src/assets/fonts/muli/Muli-SemiBold.ttf | Bin 0 -> 93672 bytes src/assets/fonts/muli/Muli-SemiBoldItalic.ttf | Bin 0 -> 95264 bytes src/assets/fonts/muli/OFL.txt | 93 + src/assets/fonts/muli/muli.css | 30 + src/index.html | 2 - 27 files changed, 3476 insertions(+), 2 deletions(-) create mode 100755 src/assets/fonts/material-icons/MaterialIcons-Regular.eot create mode 100755 src/assets/fonts/material-icons/MaterialIcons-Regular.ijmap create mode 100755 src/assets/fonts/material-icons/MaterialIcons-Regular.svg create mode 100755 src/assets/fonts/material-icons/MaterialIcons-Regular.ttf create mode 100755 src/assets/fonts/material-icons/MaterialIcons-Regular.woff create mode 100755 src/assets/fonts/material-icons/MaterialIcons-Regular.woff2 create mode 100755 src/assets/fonts/material-icons/README.md create mode 100755 src/assets/fonts/material-icons/codepoints create mode 100755 src/assets/fonts/material-icons/material-icons.css create mode 100755 src/assets/fonts/muli/Muli-Black.ttf create mode 100755 src/assets/fonts/muli/Muli-BlackItalic.ttf create mode 100755 src/assets/fonts/muli/Muli-Bold.ttf create mode 100755 src/assets/fonts/muli/Muli-BoldItalic.ttf create mode 100755 src/assets/fonts/muli/Muli-ExtraBold.ttf create mode 100755 src/assets/fonts/muli/Muli-ExtraBoldItalic.ttf create mode 100755 src/assets/fonts/muli/Muli-ExtraLight.ttf create mode 100755 src/assets/fonts/muli/Muli-ExtraLightItalic.ttf create mode 100755 src/assets/fonts/muli/Muli-Italic.ttf create mode 100755 src/assets/fonts/muli/Muli-Light.ttf create mode 100755 src/assets/fonts/muli/Muli-LightItalic.ttf create mode 100755 src/assets/fonts/muli/Muli-Regular.ttf create mode 100755 src/assets/fonts/muli/Muli-SemiBold.ttf create mode 100755 src/assets/fonts/muli/Muli-SemiBoldItalic.ttf create mode 100755 src/assets/fonts/muli/OFL.txt create mode 100644 src/assets/fonts/muli/muli.css diff --git a/.angular-cli.json b/.angular-cli.json index f4e0304ee..dd83dab7a 100644 --- a/.angular-cli.json +++ b/.angular-cli.json @@ -39,6 +39,8 @@ "testTsconfig": "tsconfig.spec.json", "prefix": "app", "styles": [ + "./assets/fonts/material-icons/material-icons.css", + "./assets/fonts/muli/muli.css", "styles.scss" ], "scripts": [ diff --git a/src/assets/fonts/material-icons/MaterialIcons-Regular.eot b/src/assets/fonts/material-icons/MaterialIcons-Regular.eot new file mode 100755 index 0000000000000000000000000000000000000000..70508ebabc9992e64f1314f866b2d7ab90438c58 GIT binary patch literal 143258 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 Hzx)3OGG_Ot literal 0 HcmV?d00001 diff --git a/src/assets/fonts/material-icons/MaterialIcons-Regular.ijmap b/src/assets/fonts/material-icons/MaterialIcons-Regular.ijmap new file mode 100755 index 000000000..d9f1d259f --- /dev/null +++ b/src/assets/fonts/material-icons/MaterialIcons-Regular.ijmap @@ -0,0 +1 @@ +{"icons":{"e84d":{"name":"3d Rotation"},"eb3b":{"name":"Ac Unit"},"e190":{"name":"Access Alarm"},"e191":{"name":"Access Alarms"},"e192":{"name":"Access Time"},"e84e":{"name":"Accessibility"},"e914":{"name":"Accessible"},"e84f":{"name":"Account Balance"},"e850":{"name":"Account Balance Wallet"},"e851":{"name":"Account Box"},"e853":{"name":"Account Circle"},"e60e":{"name":"Adb"},"e145":{"name":"Add"},"e439":{"name":"Add A Photo"},"e193":{"name":"Add Alarm"},"e003":{"name":"Add Alert"},"e146":{"name":"Add Box"},"e147":{"name":"Add Circle"},"e148":{"name":"Add Circle Outline"},"e567":{"name":"Add Location"},"e854":{"name":"Add Shopping Cart"},"e39d":{"name":"Add To Photos"},"e05c":{"name":"Add To Queue"},"e39e":{"name":"Adjust"},"e630":{"name":"Airline Seat Flat"},"e631":{"name":"Airline Seat Flat Angled"},"e632":{"name":"Airline Seat Individual Suite"},"e633":{"name":"Airline Seat Legroom Extra"},"e634":{"name":"Airline Seat Legroom Normal"},"e635":{"name":"Airline Seat Legroom Reduced"},"e636":{"name":"Airline Seat Recline Extra"},"e637":{"name":"Airline Seat Recline Normal"},"e195":{"name":"Airplanemode Active"},"e194":{"name":"Airplanemode Inactive"},"e055":{"name":"Airplay"},"eb3c":{"name":"Airport Shuttle"},"e855":{"name":"Alarm"},"e856":{"name":"Alarm Add"},"e857":{"name":"Alarm Off"},"e858":{"name":"Alarm On"},"e019":{"name":"Album"},"eb3d":{"name":"All Inclusive"},"e90b":{"name":"All Out"},"e859":{"name":"Android"},"e85a":{"name":"Announcement"},"e5c3":{"name":"Apps"},"e149":{"name":"Archive"},"e5c4":{"name":"Arrow Back"},"e5db":{"name":"Arrow Downward"},"e5c5":{"name":"Arrow Drop Down"},"e5c6":{"name":"Arrow Drop Down Circle"},"e5c7":{"name":"Arrow Drop Up"},"e5c8":{"name":"Arrow Forward"},"e5d8":{"name":"Arrow Upward"},"e060":{"name":"Art Track"},"e85b":{"name":"Aspect Ratio"},"e85c":{"name":"Assessment"},"e85d":{"name":"Assignment"},"e85e":{"name":"Assignment Ind"},"e85f":{"name":"Assignment Late"},"e860":{"name":"Assignment Return"},"e861":{"name":"Assignment Returned"},"e862":{"name":"Assignment Turned In"},"e39f":{"name":"Assistant"},"e3a0":{"name":"Assistant Photo"},"e226":{"name":"Attach File"},"e227":{"name":"Attach Money"},"e2bc":{"name":"Attachment"},"e3a1":{"name":"Audiotrack"},"e863":{"name":"Autorenew"},"e01b":{"name":"Av Timer"},"e14a":{"name":"Backspace"},"e864":{"name":"Backup"},"e19c":{"name":"Battery Alert"},"e1a3":{"name":"Battery Charging Full"},"e1a4":{"name":"Battery Full"},"e1a5":{"name":"Battery Std"},"e1a6":{"name":"Battery Unknown"},"eb3e":{"name":"Beach Access"},"e52d":{"name":"Beenhere"},"e14b":{"name":"Block"},"e1a7":{"name":"Bluetooth"},"e60f":{"name":"Bluetooth Audio"},"e1a8":{"name":"Bluetooth Connected"},"e1a9":{"name":"Bluetooth Disabled"},"e1aa":{"name":"Bluetooth Searching"},"e3a2":{"name":"Blur Circular"},"e3a3":{"name":"Blur Linear"},"e3a4":{"name":"Blur Off"},"e3a5":{"name":"Blur On"},"e865":{"name":"Book"},"e866":{"name":"Bookmark"},"e867":{"name":"Bookmark Border"},"e228":{"name":"Border All"},"e229":{"name":"Border Bottom"},"e22a":{"name":"Border Clear"},"e22b":{"name":"Border Color"},"e22c":{"name":"Border Horizontal"},"e22d":{"name":"Border Inner"},"e22e":{"name":"Border Left"},"e22f":{"name":"Border Outer"},"e230":{"name":"Border Right"},"e231":{"name":"Border Style"},"e232":{"name":"Border Top"},"e233":{"name":"Border Vertical"},"e06b":{"name":"Branding Watermark"},"e3a6":{"name":"Brightness 1"},"e3a7":{"name":"Brightness 2"},"e3a8":{"name":"Brightness 3"},"e3a9":{"name":"Brightness 4"},"e3aa":{"name":"Brightness 5"},"e3ab":{"name":"Brightness 6"},"e3ac":{"name":"Brightness 7"},"e1ab":{"name":"Brightness Auto"},"e1ac":{"name":"Brightness High"},"e1ad":{"name":"Brightness Low"},"e1ae":{"name":"Brightness Medium"},"e3ad":{"name":"Broken Image"},"e3ae":{"name":"Brush"},"e6dd":{"name":"Bubble Chart"},"e868":{"name":"Bug Report"},"e869":{"name":"Build"},"e43c":{"name":"Burst Mode"},"e0af":{"name":"Business"},"eb3f":{"name":"Business Center"},"e86a":{"name":"Cached"},"e7e9":{"name":"Cake"},"e0b0":{"name":"Call"},"e0b1":{"name":"Call End"},"e0b2":{"name":"Call Made"},"e0b3":{"name":"Call Merge"},"e0b4":{"name":"Call Missed"},"e0e4":{"name":"Call Missed Outgoing"},"e0b5":{"name":"Call Received"},"e0b6":{"name":"Call Split"},"e06c":{"name":"Call To Action"},"e3af":{"name":"Camera"},"e3b0":{"name":"Camera Alt"},"e8fc":{"name":"Camera Enhance"},"e3b1":{"name":"Camera Front"},"e3b2":{"name":"Camera Rear"},"e3b3":{"name":"Camera Roll"},"e5c9":{"name":"Cancel"},"e8f6":{"name":"Card Giftcard"},"e8f7":{"name":"Card Membership"},"e8f8":{"name":"Card Travel"},"eb40":{"name":"Casino"},"e307":{"name":"Cast"},"e308":{"name":"Cast Connected"},"e3b4":{"name":"Center Focus Strong"},"e3b5":{"name":"Center Focus Weak"},"e86b":{"name":"Change History"},"e0b7":{"name":"Chat"},"e0ca":{"name":"Chat Bubble"},"e0cb":{"name":"Chat Bubble Outline"},"e5ca":{"name":"Check"},"e834":{"name":"Check Box"},"e835":{"name":"Check Box Outline Blank"},"e86c":{"name":"Check Circle"},"e5cb":{"name":"Chevron Left"},"e5cc":{"name":"Chevron Right"},"eb41":{"name":"Child Care"},"eb42":{"name":"Child Friendly"},"e86d":{"name":"Chrome Reader Mode"},"e86e":{"name":"Class"},"e14c":{"name":"Clear"},"e0b8":{"name":"Clear All"},"e5cd":{"name":"Close"},"e01c":{"name":"Closed Caption"},"e2bd":{"name":"Cloud"},"e2be":{"name":"Cloud Circle"},"e2bf":{"name":"Cloud Done"},"e2c0":{"name":"Cloud Download"},"e2c1":{"name":"Cloud Off"},"e2c2":{"name":"Cloud Queue"},"e2c3":{"name":"Cloud Upload"},"e86f":{"name":"Code"},"e3b6":{"name":"Collections"},"e431":{"name":"Collections Bookmark"},"e3b7":{"name":"Color Lens"},"e3b8":{"name":"Colorize"},"e0b9":{"name":"Comment"},"e3b9":{"name":"Compare"},"e915":{"name":"Compare Arrows"},"e30a":{"name":"Computer"},"e638":{"name":"Confirmation Number"},"e0d0":{"name":"Contact Mail"},"e0cf":{"name":"Contact Phone"},"e0ba":{"name":"Contacts"},"e14d":{"name":"Content Copy"},"e14e":{"name":"Content Cut"},"e14f":{"name":"Content Paste"},"e3ba":{"name":"Control Point"},"e3bb":{"name":"Control Point Duplicate"},"e90c":{"name":"Copyright"},"e150":{"name":"Create"},"e2cc":{"name":"Create New Folder"},"e870":{"name":"Credit Card"},"e3be":{"name":"Crop"},"e3bc":{"name":"Crop 16 9"},"e3bd":{"name":"Crop 3 2"},"e3bf":{"name":"Crop 5 4"},"e3c0":{"name":"Crop 7 5"},"e3c1":{"name":"Crop Din"},"e3c2":{"name":"Crop Free"},"e3c3":{"name":"Crop Landscape"},"e3c4":{"name":"Crop Original"},"e3c5":{"name":"Crop Portrait"},"e437":{"name":"Crop Rotate"},"e3c6":{"name":"Crop Square"},"e871":{"name":"Dashboard"},"e1af":{"name":"Data Usage"},"e916":{"name":"Date Range"},"e3c7":{"name":"Dehaze"},"e872":{"name":"Delete"},"e92b":{"name":"Delete Forever"},"e16c":{"name":"Delete Sweep"},"e873":{"name":"Description"},"e30b":{"name":"Desktop Mac"},"e30c":{"name":"Desktop Windows"},"e3c8":{"name":"Details"},"e30d":{"name":"Developer Board"},"e1b0":{"name":"Developer Mode"},"e335":{"name":"Device Hub"},"e1b1":{"name":"Devices"},"e337":{"name":"Devices Other"},"e0bb":{"name":"Dialer Sip"},"e0bc":{"name":"Dialpad"},"e52e":{"name":"Directions"},"e52f":{"name":"Directions Bike"},"e532":{"name":"Directions Boat"},"e530":{"name":"Directions Bus"},"e531":{"name":"Directions Car"},"e534":{"name":"Directions Railway"},"e566":{"name":"Directions Run"},"e533":{"name":"Directions Subway"},"e535":{"name":"Directions Transit"},"e536":{"name":"Directions Walk"},"e610":{"name":"Disc Full"},"e875":{"name":"Dns"},"e612":{"name":"Do Not Disturb"},"e611":{"name":"Do Not Disturb Alt"},"e643":{"name":"Do Not Disturb Off"},"e644":{"name":"Do Not Disturb On"},"e30e":{"name":"Dock"},"e7ee":{"name":"Domain"},"e876":{"name":"Done"},"e877":{"name":"Done All"},"e917":{"name":"Donut Large"},"e918":{"name":"Donut Small"},"e151":{"name":"Drafts"},"e25d":{"name":"Drag Handle"},"e613":{"name":"Drive Eta"},"e1b2":{"name":"Dvr"},"e3c9":{"name":"Edit"},"e568":{"name":"Edit Location"},"e8fb":{"name":"Eject"},"e0be":{"name":"Email"},"e63f":{"name":"Enhanced Encryption"},"e01d":{"name":"Equalizer"},"e000":{"name":"Error"},"e001":{"name":"Error Outline"},"e926":{"name":"Euro Symbol"},"e56d":{"name":"Ev Station"},"e878":{"name":"Event"},"e614":{"name":"Event Available"},"e615":{"name":"Event Busy"},"e616":{"name":"Event Note"},"e903":{"name":"Event Seat"},"e879":{"name":"Exit To App"},"e5ce":{"name":"Expand Less"},"e5cf":{"name":"Expand More"},"e01e":{"name":"Explicit"},"e87a":{"name":"Explore"},"e3ca":{"name":"Exposure"},"e3cb":{"name":"Exposure Neg 1"},"e3cc":{"name":"Exposure Neg 2"},"e3cd":{"name":"Exposure Plus 1"},"e3ce":{"name":"Exposure Plus 2"},"e3cf":{"name":"Exposure Zero"},"e87b":{"name":"Extension"},"e87c":{"name":"Face"},"e01f":{"name":"Fast Forward"},"e020":{"name":"Fast Rewind"},"e87d":{"name":"Favorite"},"e87e":{"name":"Favorite Border"},"e06d":{"name":"Featured Play List"},"e06e":{"name":"Featured Video"},"e87f":{"name":"Feedback"},"e05d":{"name":"Fiber Dvr"},"e061":{"name":"Fiber Manual Record"},"e05e":{"name":"Fiber New"},"e06a":{"name":"Fiber Pin"},"e062":{"name":"Fiber Smart Record"},"e2c4":{"name":"File Download"},"e2c6":{"name":"File Upload"},"e3d3":{"name":"Filter"},"e3d0":{"name":"Filter 1"},"e3d1":{"name":"Filter 2"},"e3d2":{"name":"Filter 3"},"e3d4":{"name":"Filter 4"},"e3d5":{"name":"Filter 5"},"e3d6":{"name":"Filter 6"},"e3d7":{"name":"Filter 7"},"e3d8":{"name":"Filter 8"},"e3d9":{"name":"Filter 9"},"e3da":{"name":"Filter 9 Plus"},"e3db":{"name":"Filter B And W"},"e3dc":{"name":"Filter Center Focus"},"e3dd":{"name":"Filter Drama"},"e3de":{"name":"Filter Frames"},"e3df":{"name":"Filter Hdr"},"e152":{"name":"Filter List"},"e3e0":{"name":"Filter None"},"e3e2":{"name":"Filter Tilt Shift"},"e3e3":{"name":"Filter Vintage"},"e880":{"name":"Find In Page"},"e881":{"name":"Find Replace"},"e90d":{"name":"Fingerprint"},"e5dc":{"name":"First Page"},"eb43":{"name":"Fitness Center"},"e153":{"name":"Flag"},"e3e4":{"name":"Flare"},"e3e5":{"name":"Flash Auto"},"e3e6":{"name":"Flash Off"},"e3e7":{"name":"Flash On"},"e539":{"name":"Flight"},"e904":{"name":"Flight Land"},"e905":{"name":"Flight Takeoff"},"e3e8":{"name":"Flip"},"e882":{"name":"Flip To Back"},"e883":{"name":"Flip To Front"},"e2c7":{"name":"Folder"},"e2c8":{"name":"Folder Open"},"e2c9":{"name":"Folder Shared"},"e617":{"name":"Folder Special"},"e167":{"name":"Font Download"},"e234":{"name":"Format Align Center"},"e235":{"name":"Format Align Justify"},"e236":{"name":"Format Align Left"},"e237":{"name":"Format Align Right"},"e238":{"name":"Format Bold"},"e239":{"name":"Format Clear"},"e23a":{"name":"Format Color Fill"},"e23b":{"name":"Format Color Reset"},"e23c":{"name":"Format Color Text"},"e23d":{"name":"Format Indent Decrease"},"e23e":{"name":"Format Indent Increase"},"e23f":{"name":"Format Italic"},"e240":{"name":"Format Line Spacing"},"e241":{"name":"Format List Bulleted"},"e242":{"name":"Format List Numbered"},"e243":{"name":"Format Paint"},"e244":{"name":"Format Quote"},"e25e":{"name":"Format Shapes"},"e245":{"name":"Format Size"},"e246":{"name":"Format Strikethrough"},"e247":{"name":"Format Textdirection L To R"},"e248":{"name":"Format Textdirection R To L"},"e249":{"name":"Format Underlined"},"e0bf":{"name":"Forum"},"e154":{"name":"Forward"},"e056":{"name":"Forward 10"},"e057":{"name":"Forward 30"},"e058":{"name":"Forward 5"},"eb44":{"name":"Free Breakfast"},"e5d0":{"name":"Fullscreen"},"e5d1":{"name":"Fullscreen Exit"},"e24a":{"name":"Functions"},"e927":{"name":"G Translate"},"e30f":{"name":"Gamepad"},"e021":{"name":"Games"},"e90e":{"name":"Gavel"},"e155":{"name":"Gesture"},"e884":{"name":"Get App"},"e908":{"name":"Gif"},"eb45":{"name":"Golf Course"},"e1b3":{"name":"Gps Fixed"},"e1b4":{"name":"Gps Not Fixed"},"e1b5":{"name":"Gps Off"},"e885":{"name":"Grade"},"e3e9":{"name":"Gradient"},"e3ea":{"name":"Grain"},"e1b8":{"name":"Graphic Eq"},"e3eb":{"name":"Grid Off"},"e3ec":{"name":"Grid On"},"e7ef":{"name":"Group"},"e7f0":{"name":"Group Add"},"e886":{"name":"Group Work"},"e052":{"name":"Hd"},"e3ed":{"name":"Hdr Off"},"e3ee":{"name":"Hdr On"},"e3f1":{"name":"Hdr Strong"},"e3f2":{"name":"Hdr Weak"},"e310":{"name":"Headset"},"e311":{"name":"Headset Mic"},"e3f3":{"name":"Healing"},"e023":{"name":"Hearing"},"e887":{"name":"Help"},"e8fd":{"name":"Help Outline"},"e024":{"name":"High Quality"},"e25f":{"name":"Highlight"},"e888":{"name":"Highlight Off"},"e889":{"name":"History"},"e88a":{"name":"Home"},"eb46":{"name":"Hot Tub"},"e53a":{"name":"Hotel"},"e88b":{"name":"Hourglass Empty"},"e88c":{"name":"Hourglass Full"},"e902":{"name":"Http"},"e88d":{"name":"Https"},"e3f4":{"name":"Image"},"e3f5":{"name":"Image Aspect Ratio"},"e0e0":{"name":"Import Contacts"},"e0c3":{"name":"Import Export"},"e912":{"name":"Important Devices"},"e156":{"name":"Inbox"},"e909":{"name":"Indeterminate Check Box"},"e88e":{"name":"Info"},"e88f":{"name":"Info Outline"},"e890":{"name":"Input"},"e24b":{"name":"Insert Chart"},"e24c":{"name":"Insert Comment"},"e24d":{"name":"Insert Drive File"},"e24e":{"name":"Insert Emoticon"},"e24f":{"name":"Insert Invitation"},"e250":{"name":"Insert Link"},"e251":{"name":"Insert Photo"},"e891":{"name":"Invert Colors"},"e0c4":{"name":"Invert Colors Off"},"e3f6":{"name":"Iso"},"e312":{"name":"Keyboard"},"e313":{"name":"Keyboard Arrow Down"},"e314":{"name":"Keyboard Arrow Left"},"e315":{"name":"Keyboard Arrow Right"},"e316":{"name":"Keyboard Arrow Up"},"e317":{"name":"Keyboard Backspace"},"e318":{"name":"Keyboard Capslock"},"e31a":{"name":"Keyboard Hide"},"e31b":{"name":"Keyboard Return"},"e31c":{"name":"Keyboard Tab"},"e31d":{"name":"Keyboard Voice"},"eb47":{"name":"Kitchen"},"e892":{"name":"Label"},"e893":{"name":"Label Outline"},"e3f7":{"name":"Landscape"},"e894":{"name":"Language"},"e31e":{"name":"Laptop"},"e31f":{"name":"Laptop Chromebook"},"e320":{"name":"Laptop Mac"},"e321":{"name":"Laptop Windows"},"e5dd":{"name":"Last Page"},"e895":{"name":"Launch"},"e53b":{"name":"Layers"},"e53c":{"name":"Layers Clear"},"e3f8":{"name":"Leak Add"},"e3f9":{"name":"Leak Remove"},"e3fa":{"name":"Lens"},"e02e":{"name":"Library Add"},"e02f":{"name":"Library Books"},"e030":{"name":"Library Music"},"e90f":{"name":"Lightbulb Outline"},"e919":{"name":"Line Style"},"e91a":{"name":"Line Weight"},"e260":{"name":"Linear Scale"},"e157":{"name":"Link"},"e438":{"name":"Linked Camera"},"e896":{"name":"List"},"e0c6":{"name":"Live Help"},"e639":{"name":"Live Tv"},"e53f":{"name":"Local Activity"},"e53d":{"name":"Local Airport"},"e53e":{"name":"Local Atm"},"e540":{"name":"Local Bar"},"e541":{"name":"Local Cafe"},"e542":{"name":"Local Car Wash"},"e543":{"name":"Local Convenience Store"},"e556":{"name":"Local Dining"},"e544":{"name":"Local Drink"},"e545":{"name":"Local Florist"},"e546":{"name":"Local Gas Station"},"e547":{"name":"Local Grocery Store"},"e548":{"name":"Local Hospital"},"e549":{"name":"Local Hotel"},"e54a":{"name":"Local Laundry Service"},"e54b":{"name":"Local Library"},"e54c":{"name":"Local Mall"},"e54d":{"name":"Local Movies"},"e54e":{"name":"Local Offer"},"e54f":{"name":"Local Parking"},"e550":{"name":"Local Pharmacy"},"e551":{"name":"Local Phone"},"e552":{"name":"Local Pizza"},"e553":{"name":"Local Play"},"e554":{"name":"Local Post Office"},"e555":{"name":"Local Printshop"},"e557":{"name":"Local See"},"e558":{"name":"Local Shipping"},"e559":{"name":"Local Taxi"},"e7f1":{"name":"Location City"},"e1b6":{"name":"Location Disabled"},"e0c7":{"name":"Location Off"},"e0c8":{"name":"Location On"},"e1b7":{"name":"Location Searching"},"e897":{"name":"Lock"},"e898":{"name":"Lock Open"},"e899":{"name":"Lock Outline"},"e3fc":{"name":"Looks"},"e3fb":{"name":"Looks 3"},"e3fd":{"name":"Looks 4"},"e3fe":{"name":"Looks 5"},"e3ff":{"name":"Looks 6"},"e400":{"name":"Looks One"},"e401":{"name":"Looks Two"},"e028":{"name":"Loop"},"e402":{"name":"Loupe"},"e16d":{"name":"Low Priority"},"e89a":{"name":"Loyalty"},"e158":{"name":"Mail"},"e0e1":{"name":"Mail Outline"},"e55b":{"name":"Map"},"e159":{"name":"Markunread"},"e89b":{"name":"Markunread Mailbox"},"e322":{"name":"Memory"},"e5d2":{"name":"Menu"},"e252":{"name":"Merge Type"},"e0c9":{"name":"Message"},"e029":{"name":"Mic"},"e02a":{"name":"Mic None"},"e02b":{"name":"Mic Off"},"e618":{"name":"Mms"},"e253":{"name":"Mode Comment"},"e254":{"name":"Mode Edit"},"e263":{"name":"Monetization On"},"e25c":{"name":"Money Off"},"e403":{"name":"Monochrome Photos"},"e7f2":{"name":"Mood"},"e7f3":{"name":"Mood Bad"},"e619":{"name":"More"},"e5d3":{"name":"More Horiz"},"e5d4":{"name":"More Vert"},"e91b":{"name":"Motorcycle"},"e323":{"name":"Mouse"},"e168":{"name":"Move To Inbox"},"e02c":{"name":"Movie"},"e404":{"name":"Movie Creation"},"e43a":{"name":"Movie Filter"},"e6df":{"name":"Multiline Chart"},"e405":{"name":"Music Note"},"e063":{"name":"Music Video"},"e55c":{"name":"My Location"},"e406":{"name":"Nature"},"e407":{"name":"Nature People"},"e408":{"name":"Navigate Before"},"e409":{"name":"Navigate Next"},"e55d":{"name":"Navigation"},"e569":{"name":"Near Me"},"e1b9":{"name":"Network Cell"},"e640":{"name":"Network Check"},"e61a":{"name":"Network Locked"},"e1ba":{"name":"Network Wifi"},"e031":{"name":"New Releases"},"e16a":{"name":"Next Week"},"e1bb":{"name":"Nfc"},"e641":{"name":"No Encryption"},"e0cc":{"name":"No Sim"},"e033":{"name":"Not Interested"},"e06f":{"name":"Note"},"e89c":{"name":"Note Add"},"e7f4":{"name":"Notifications"},"e7f7":{"name":"Notifications Active"},"e7f5":{"name":"Notifications None"},"e7f6":{"name":"Notifications Off"},"e7f8":{"name":"Notifications Paused"},"e90a":{"name":"Offline Pin"},"e63a":{"name":"Ondemand Video"},"e91c":{"name":"Opacity"},"e89d":{"name":"Open In Browser"},"e89e":{"name":"Open In New"},"e89f":{"name":"Open With"},"e7f9":{"name":"Pages"},"e8a0":{"name":"Pageview"},"e40a":{"name":"Palette"},"e925":{"name":"Pan Tool"},"e40b":{"name":"Panorama"},"e40c":{"name":"Panorama Fish Eye"},"e40d":{"name":"Panorama Horizontal"},"e40e":{"name":"Panorama Vertical"},"e40f":{"name":"Panorama Wide Angle"},"e7fa":{"name":"Party Mode"},"e034":{"name":"Pause"},"e035":{"name":"Pause Circle Filled"},"e036":{"name":"Pause Circle Outline"},"e8a1":{"name":"Payment"},"e7fb":{"name":"People"},"e7fc":{"name":"People Outline"},"e8a2":{"name":"Perm Camera Mic"},"e8a3":{"name":"Perm Contact Calendar"},"e8a4":{"name":"Perm Data Setting"},"e8a5":{"name":"Perm Device Information"},"e8a6":{"name":"Perm Identity"},"e8a7":{"name":"Perm Media"},"e8a8":{"name":"Perm Phone Msg"},"e8a9":{"name":"Perm Scan Wifi"},"e7fd":{"name":"Person"},"e7fe":{"name":"Person Add"},"e7ff":{"name":"Person Outline"},"e55a":{"name":"Person Pin"},"e56a":{"name":"Person Pin Circle"},"e63b":{"name":"Personal Video"},"e91d":{"name":"Pets"},"e0cd":{"name":"Phone"},"e324":{"name":"Phone Android"},"e61b":{"name":"Phone Bluetooth Speaker"},"e61c":{"name":"Phone Forwarded"},"e61d":{"name":"Phone In Talk"},"e325":{"name":"Phone Iphone"},"e61e":{"name":"Phone Locked"},"e61f":{"name":"Phone Missed"},"e620":{"name":"Phone Paused"},"e326":{"name":"Phonelink"},"e0db":{"name":"Phonelink Erase"},"e0dc":{"name":"Phonelink Lock"},"e327":{"name":"Phonelink Off"},"e0dd":{"name":"Phonelink Ring"},"e0de":{"name":"Phonelink Setup"},"e410":{"name":"Photo"},"e411":{"name":"Photo Album"},"e412":{"name":"Photo Camera"},"e43b":{"name":"Photo Filter"},"e413":{"name":"Photo Library"},"e432":{"name":"Photo Size Select Actual"},"e433":{"name":"Photo Size Select Large"},"e434":{"name":"Photo Size Select Small"},"e415":{"name":"Picture As Pdf"},"e8aa":{"name":"Picture In Picture"},"e911":{"name":"Picture In Picture Alt"},"e6c4":{"name":"Pie Chart"},"e6c5":{"name":"Pie Chart Outlined"},"e55e":{"name":"Pin Drop"},"e55f":{"name":"Place"},"e037":{"name":"Play Arrow"},"e038":{"name":"Play Circle Filled"},"e039":{"name":"Play Circle Outline"},"e906":{"name":"Play For Work"},"e03b":{"name":"Playlist Add"},"e065":{"name":"Playlist Add Check"},"e05f":{"name":"Playlist Play"},"e800":{"name":"Plus One"},"e801":{"name":"Poll"},"e8ab":{"name":"Polymer"},"eb48":{"name":"Pool"},"e0ce":{"name":"Portable Wifi Off"},"e416":{"name":"Portrait"},"e63c":{"name":"Power"},"e336":{"name":"Power Input"},"e8ac":{"name":"Power Settings New"},"e91e":{"name":"Pregnant Woman"},"e0df":{"name":"Present To All"},"e8ad":{"name":"Print"},"e645":{"name":"Priority High"},"e80b":{"name":"Public"},"e255":{"name":"Publish"},"e8ae":{"name":"Query Builder"},"e8af":{"name":"Question Answer"},"e03c":{"name":"Queue"},"e03d":{"name":"Queue Music"},"e066":{"name":"Queue Play Next"},"e03e":{"name":"Radio"},"e837":{"name":"Radio Button Checked"},"e836":{"name":"Radio Button Unchecked"},"e560":{"name":"Rate Review"},"e8b0":{"name":"Receipt"},"e03f":{"name":"Recent Actors"},"e91f":{"name":"Record Voice Over"},"e8b1":{"name":"Redeem"},"e15a":{"name":"Redo"},"e5d5":{"name":"Refresh"},"e15b":{"name":"Remove"},"e15c":{"name":"Remove Circle"},"e15d":{"name":"Remove Circle Outline"},"e067":{"name":"Remove From Queue"},"e417":{"name":"Remove Red Eye"},"e928":{"name":"Remove Shopping Cart"},"e8fe":{"name":"Reorder"},"e040":{"name":"Repeat"},"e041":{"name":"Repeat One"},"e042":{"name":"Replay"},"e059":{"name":"Replay 10"},"e05a":{"name":"Replay 30"},"e05b":{"name":"Replay 5"},"e15e":{"name":"Reply"},"e15f":{"name":"Reply All"},"e160":{"name":"Report"},"e8b2":{"name":"Report Problem"},"e56c":{"name":"Restaurant"},"e561":{"name":"Restaurant Menu"},"e8b3":{"name":"Restore"},"e929":{"name":"Restore Page"},"e0d1":{"name":"Ring Volume"},"e8b4":{"name":"Room"},"eb49":{"name":"Room Service"},"e418":{"name":"Rotate 90 Degrees Ccw"},"e419":{"name":"Rotate Left"},"e41a":{"name":"Rotate Right"},"e920":{"name":"Rounded Corner"},"e328":{"name":"Router"},"e921":{"name":"Rowing"},"e0e5":{"name":"Rss Feed"},"e642":{"name":"Rv Hookup"},"e562":{"name":"Satellite"},"e161":{"name":"Save"},"e329":{"name":"Scanner"},"e8b5":{"name":"Schedule"},"e80c":{"name":"School"},"e1be":{"name":"Screen Lock Landscape"},"e1bf":{"name":"Screen Lock Portrait"},"e1c0":{"name":"Screen Lock Rotation"},"e1c1":{"name":"Screen Rotation"},"e0e2":{"name":"Screen Share"},"e623":{"name":"Sd Card"},"e1c2":{"name":"Sd Storage"},"e8b6":{"name":"Search"},"e32a":{"name":"Security"},"e162":{"name":"Select All"},"e163":{"name":"Send"},"e811":{"name":"Sentiment Dissatisfied"},"e812":{"name":"Sentiment Neutral"},"e813":{"name":"Sentiment Satisfied"},"e814":{"name":"Sentiment Very Dissatisfied"},"e815":{"name":"Sentiment Very Satisfied"},"e8b8":{"name":"Settings"},"e8b9":{"name":"Settings Applications"},"e8ba":{"name":"Settings Backup Restore"},"e8bb":{"name":"Settings Bluetooth"},"e8bd":{"name":"Settings Brightness"},"e8bc":{"name":"Settings Cell"},"e8be":{"name":"Settings Ethernet"},"e8bf":{"name":"Settings Input Antenna"},"e8c0":{"name":"Settings Input Component"},"e8c1":{"name":"Settings Input Composite"},"e8c2":{"name":"Settings Input Hdmi"},"e8c3":{"name":"Settings Input Svideo"},"e8c4":{"name":"Settings Overscan"},"e8c5":{"name":"Settings Phone"},"e8c6":{"name":"Settings Power"},"e8c7":{"name":"Settings Remote"},"e1c3":{"name":"Settings System Daydream"},"e8c8":{"name":"Settings Voice"},"e80d":{"name":"Share"},"e8c9":{"name":"Shop"},"e8ca":{"name":"Shop Two"},"e8cb":{"name":"Shopping Basket"},"e8cc":{"name":"Shopping Cart"},"e261":{"name":"Short Text"},"e6e1":{"name":"Show Chart"},"e043":{"name":"Shuffle"},"e1c8":{"name":"Signal Cellular 4 Bar"},"e1cd":{"name":"Signal Cellular Connected No Internet 4 Bar"},"e1ce":{"name":"Signal Cellular No Sim"},"e1cf":{"name":"Signal Cellular Null"},"e1d0":{"name":"Signal Cellular Off"},"e1d8":{"name":"Signal Wifi 4 Bar"},"e1d9":{"name":"Signal Wifi 4 Bar Lock"},"e1da":{"name":"Signal Wifi Off"},"e32b":{"name":"Sim Card"},"e624":{"name":"Sim Card Alert"},"e044":{"name":"Skip Next"},"e045":{"name":"Skip Previous"},"e41b":{"name":"Slideshow"},"e068":{"name":"Slow Motion Video"},"e32c":{"name":"Smartphone"},"eb4a":{"name":"Smoke Free"},"eb4b":{"name":"Smoking Rooms"},"e625":{"name":"Sms"},"e626":{"name":"Sms Failed"},"e046":{"name":"Snooze"},"e164":{"name":"Sort"},"e053":{"name":"Sort By Alpha"},"eb4c":{"name":"Spa"},"e256":{"name":"Space Bar"},"e32d":{"name":"Speaker"},"e32e":{"name":"Speaker Group"},"e8cd":{"name":"Speaker Notes"},"e92a":{"name":"Speaker Notes Off"},"e0d2":{"name":"Speaker Phone"},"e8ce":{"name":"Spellcheck"},"e838":{"name":"Star"},"e83a":{"name":"Star Border"},"e839":{"name":"Star Half"},"e8d0":{"name":"Stars"},"e0d3":{"name":"Stay Current Landscape"},"e0d4":{"name":"Stay Current Portrait"},"e0d5":{"name":"Stay Primary Landscape"},"e0d6":{"name":"Stay Primary Portrait"},"e047":{"name":"Stop"},"e0e3":{"name":"Stop Screen Share"},"e1db":{"name":"Storage"},"e8d1":{"name":"Store"},"e563":{"name":"Store Mall Directory"},"e41c":{"name":"Straighten"},"e56e":{"name":"Streetview"},"e257":{"name":"Strikethrough S"},"e41d":{"name":"Style"},"e5d9":{"name":"Subdirectory Arrow Left"},"e5da":{"name":"Subdirectory Arrow Right"},"e8d2":{"name":"Subject"},"e064":{"name":"Subscriptions"},"e048":{"name":"Subtitles"},"e56f":{"name":"Subway"},"e8d3":{"name":"Supervisor Account"},"e049":{"name":"Surround Sound"},"e0d7":{"name":"Swap Calls"},"e8d4":{"name":"Swap Horiz"},"e8d5":{"name":"Swap Vert"},"e8d6":{"name":"Swap Vertical Circle"},"e41e":{"name":"Switch Camera"},"e41f":{"name":"Switch Video"},"e627":{"name":"Sync"},"e628":{"name":"Sync Disabled"},"e629":{"name":"Sync Problem"},"e62a":{"name":"System Update"},"e8d7":{"name":"System Update Alt"},"e8d8":{"name":"Tab"},"e8d9":{"name":"Tab Unselected"},"e32f":{"name":"Tablet"},"e330":{"name":"Tablet Android"},"e331":{"name":"Tablet Mac"},"e420":{"name":"Tag Faces"},"e62b":{"name":"Tap And Play"},"e564":{"name":"Terrain"},"e262":{"name":"Text Fields"},"e165":{"name":"Text Format"},"e0d8":{"name":"Textsms"},"e421":{"name":"Texture"},"e8da":{"name":"Theaters"},"e8db":{"name":"Thumb Down"},"e8dc":{"name":"Thumb Up"},"e8dd":{"name":"Thumbs Up Down"},"e62c":{"name":"Time To Leave"},"e422":{"name":"Timelapse"},"e922":{"name":"Timeline"},"e425":{"name":"Timer"},"e423":{"name":"Timer 10"},"e424":{"name":"Timer 3"},"e426":{"name":"Timer Off"},"e264":{"name":"Title"},"e8de":{"name":"Toc"},"e8df":{"name":"Today"},"e8e0":{"name":"Toll"},"e427":{"name":"Tonality"},"e913":{"name":"Touch App"},"e332":{"name":"Toys"},"e8e1":{"name":"Track Changes"},"e565":{"name":"Traffic"},"e570":{"name":"Train"},"e571":{"name":"Tram"},"e572":{"name":"Transfer Within A Station"},"e428":{"name":"Transform"},"e8e2":{"name":"Translate"},"e8e3":{"name":"Trending Down"},"e8e4":{"name":"Trending Flat"},"e8e5":{"name":"Trending Up"},"e429":{"name":"Tune"},"e8e6":{"name":"Turned In"},"e8e7":{"name":"Turned In Not"},"e333":{"name":"Tv"},"e169":{"name":"Unarchive"},"e166":{"name":"Undo"},"e5d6":{"name":"Unfold Less"},"e5d7":{"name":"Unfold More"},"e923":{"name":"Update"},"e1e0":{"name":"Usb"},"e8e8":{"name":"Verified User"},"e258":{"name":"Vertical Align Bottom"},"e259":{"name":"Vertical Align Center"},"e25a":{"name":"Vertical Align Top"},"e62d":{"name":"Vibration"},"e070":{"name":"Video Call"},"e071":{"name":"Video Label"},"e04a":{"name":"Video Library"},"e04b":{"name":"Videocam"},"e04c":{"name":"Videocam Off"},"e338":{"name":"Videogame Asset"},"e8e9":{"name":"View Agenda"},"e8ea":{"name":"View Array"},"e8eb":{"name":"View Carousel"},"e8ec":{"name":"View Column"},"e42a":{"name":"View Comfy"},"e42b":{"name":"View Compact"},"e8ed":{"name":"View Day"},"e8ee":{"name":"View Headline"},"e8ef":{"name":"View List"},"e8f0":{"name":"View Module"},"e8f1":{"name":"View Quilt"},"e8f2":{"name":"View Stream"},"e8f3":{"name":"View Week"},"e435":{"name":"Vignette"},"e8f4":{"name":"Visibility"},"e8f5":{"name":"Visibility Off"},"e62e":{"name":"Voice Chat"},"e0d9":{"name":"Voicemail"},"e04d":{"name":"Volume Down"},"e04e":{"name":"Volume Mute"},"e04f":{"name":"Volume Off"},"e050":{"name":"Volume Up"},"e0da":{"name":"Vpn Key"},"e62f":{"name":"Vpn Lock"},"e1bc":{"name":"Wallpaper"},"e002":{"name":"Warning"},"e334":{"name":"Watch"},"e924":{"name":"Watch Later"},"e42c":{"name":"Wb Auto"},"e42d":{"name":"Wb Cloudy"},"e42e":{"name":"Wb Incandescent"},"e436":{"name":"Wb Iridescent"},"e430":{"name":"Wb Sunny"},"e63d":{"name":"Wc"},"e051":{"name":"Web"},"e069":{"name":"Web Asset"},"e16b":{"name":"Weekend"},"e80e":{"name":"Whatshot"},"e1bd":{"name":"Widgets"},"e63e":{"name":"Wifi"},"e1e1":{"name":"Wifi Lock"},"e1e2":{"name":"Wifi Tethering"},"e8f9":{"name":"Work"},"e25b":{"name":"Wrap Text"},"e8fa":{"name":"Youtube Searched For"},"e8ff":{"name":"Zoom In"},"e900":{"name":"Zoom Out"},"e56b":{"name":"Zoom Out Map"}}} \ No newline at end of file diff --git a/src/assets/fonts/material-icons/MaterialIcons-Regular.svg b/src/assets/fonts/material-icons/MaterialIcons-Regular.svg new file mode 100755 index 000000000..a449327e2 --- /dev/null +++ b/src/assets/fonts/material-icons/MaterialIcons-Regular.svg @@ -0,0 +1,2373 @@ + + + + + +Created by FontForge 20151118 at Mon Feb 8 11:58:02 2016 + By shyndman +Copyright 2015 Google, Inc. All Rights Reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/fonts/material-icons/MaterialIcons-Regular.ttf b/src/assets/fonts/material-icons/MaterialIcons-Regular.ttf new file mode 100755 index 0000000000000000000000000000000000000000..7015564ad166a3e9d88c82f17829f0cc01ebe29a GIT binary patch literal 128180 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 ohyj3!`#ee%L;DTjx@8!5k5~VH0QmdE^#A|> literal 0 HcmV?d00001 diff --git a/src/assets/fonts/material-icons/MaterialIcons-Regular.woff b/src/assets/fonts/material-icons/MaterialIcons-Regular.woff new file mode 100755 index 0000000000000000000000000000000000000000..b648a3eea2d16b6ce783906d6b7d5f251b9eb56c GIT binary patch literal 57620 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

wF7DI|Kx|V1sBQ9FYs>m5C)C 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 BJ$(QG literal 0 HcmV?d00001 diff --git a/src/assets/fonts/material-icons/MaterialIcons-Regular.woff2 b/src/assets/fonts/material-icons/MaterialIcons-Regular.woff2 new file mode 100755 index 0000000000000000000000000000000000000000..9fa211252080046a23b2449dbdced6abc2b0bb34 GIT binary patch literal 44300 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 QW8}wPUeo^@jR61v08@RD2LJ#7 literal 0 HcmV?d00001 diff --git a/src/assets/fonts/material-icons/README.md b/src/assets/fonts/material-icons/README.md new file mode 100755 index 000000000..ce4141eca --- /dev/null +++ b/src/assets/fonts/material-icons/README.md @@ -0,0 +1,9 @@ +The recommended way to use the Material Icons font is by linking to the web font hosted on Google Fonts: + +```html + +``` + +Read more in our full usage guide: +http://google.github.io/material-design-icons/#icon-font-for-the-web diff --git a/src/assets/fonts/material-icons/codepoints b/src/assets/fonts/material-icons/codepoints new file mode 100755 index 000000000..3c8b07507 --- /dev/null +++ b/src/assets/fonts/material-icons/codepoints @@ -0,0 +1,932 @@ +3d_rotation e84d +ac_unit eb3b +access_alarm e190 +access_alarms e191 +access_time e192 +accessibility e84e +accessible e914 +account_balance e84f +account_balance_wallet e850 +account_box e851 +account_circle e853 +adb e60e +add e145 +add_a_photo e439 +add_alarm e193 +add_alert e003 +add_box e146 +add_circle e147 +add_circle_outline e148 +add_location e567 +add_shopping_cart e854 +add_to_photos e39d +add_to_queue e05c +adjust e39e +airline_seat_flat e630 +airline_seat_flat_angled e631 +airline_seat_individual_suite e632 +airline_seat_legroom_extra e633 +airline_seat_legroom_normal e634 +airline_seat_legroom_reduced e635 +airline_seat_recline_extra e636 +airline_seat_recline_normal e637 +airplanemode_active e195 +airplanemode_inactive e194 +airplay e055 +airport_shuttle eb3c +alarm e855 +alarm_add e856 +alarm_off e857 +alarm_on e858 +album e019 +all_inclusive eb3d +all_out e90b +android e859 +announcement e85a +apps e5c3 +archive e149 +arrow_back e5c4 +arrow_downward e5db +arrow_drop_down e5c5 +arrow_drop_down_circle e5c6 +arrow_drop_up e5c7 +arrow_forward e5c8 +arrow_upward e5d8 +art_track e060 +aspect_ratio e85b +assessment e85c +assignment e85d +assignment_ind e85e +assignment_late e85f +assignment_return e860 +assignment_returned e861 +assignment_turned_in e862 +assistant e39f +assistant_photo e3a0 +attach_file e226 +attach_money e227 +attachment e2bc +audiotrack e3a1 +autorenew e863 +av_timer e01b +backspace e14a +backup e864 +battery_alert e19c +battery_charging_full e1a3 +battery_full e1a4 +battery_std e1a5 +battery_unknown e1a6 +beach_access eb3e +beenhere e52d +block e14b +bluetooth e1a7 +bluetooth_audio e60f +bluetooth_connected e1a8 +bluetooth_disabled e1a9 +bluetooth_searching e1aa +blur_circular e3a2 +blur_linear e3a3 +blur_off e3a4 +blur_on e3a5 +book e865 +bookmark e866 +bookmark_border e867 +border_all e228 +border_bottom e229 +border_clear e22a +border_color e22b +border_horizontal e22c +border_inner e22d +border_left e22e +border_outer e22f +border_right e230 +border_style e231 +border_top e232 +border_vertical e233 +branding_watermark e06b +brightness_1 e3a6 +brightness_2 e3a7 +brightness_3 e3a8 +brightness_4 e3a9 +brightness_5 e3aa +brightness_6 e3ab +brightness_7 e3ac +brightness_auto e1ab +brightness_high e1ac +brightness_low e1ad +brightness_medium e1ae +broken_image e3ad +brush e3ae +bubble_chart e6dd +bug_report e868 +build e869 +burst_mode e43c +business e0af +business_center eb3f +cached e86a +cake e7e9 +call e0b0 +call_end e0b1 +call_made e0b2 +call_merge e0b3 +call_missed e0b4 +call_missed_outgoing e0e4 +call_received e0b5 +call_split e0b6 +call_to_action e06c +camera e3af +camera_alt e3b0 +camera_enhance e8fc +camera_front e3b1 +camera_rear e3b2 +camera_roll e3b3 +cancel e5c9 +card_giftcard e8f6 +card_membership e8f7 +card_travel e8f8 +casino eb40 +cast e307 +cast_connected e308 +center_focus_strong e3b4 +center_focus_weak e3b5 +change_history e86b +chat e0b7 +chat_bubble e0ca +chat_bubble_outline e0cb +check e5ca +check_box e834 +check_box_outline_blank e835 +check_circle e86c +chevron_left e5cb +chevron_right e5cc +child_care eb41 +child_friendly eb42 +chrome_reader_mode e86d +class e86e +clear e14c +clear_all e0b8 +close e5cd +closed_caption e01c +cloud e2bd +cloud_circle e2be +cloud_done e2bf +cloud_download e2c0 +cloud_off e2c1 +cloud_queue e2c2 +cloud_upload e2c3 +code e86f +collections e3b6 +collections_bookmark e431 +color_lens e3b7 +colorize e3b8 +comment e0b9 +compare e3b9 +compare_arrows e915 +computer e30a +confirmation_number e638 +contact_mail e0d0 +contact_phone e0cf +contacts e0ba +content_copy e14d +content_cut e14e +content_paste e14f +control_point e3ba +control_point_duplicate e3bb +copyright e90c +create e150 +create_new_folder e2cc +credit_card e870 +crop e3be +crop_16_9 e3bc +crop_3_2 e3bd +crop_5_4 e3bf +crop_7_5 e3c0 +crop_din e3c1 +crop_free e3c2 +crop_landscape e3c3 +crop_original e3c4 +crop_portrait e3c5 +crop_rotate e437 +crop_square e3c6 +dashboard e871 +data_usage e1af +date_range e916 +dehaze e3c7 +delete e872 +delete_forever e92b +delete_sweep e16c +description e873 +desktop_mac e30b +desktop_windows e30c +details e3c8 +developer_board e30d +developer_mode e1b0 +device_hub e335 +devices e1b1 +devices_other e337 +dialer_sip e0bb +dialpad e0bc +directions e52e +directions_bike e52f +directions_boat e532 +directions_bus e530 +directions_car e531 +directions_railway e534 +directions_run e566 +directions_subway e533 +directions_transit e535 +directions_walk e536 +disc_full e610 +dns e875 +do_not_disturb e612 +do_not_disturb_alt e611 +do_not_disturb_off e643 +do_not_disturb_on e644 +dock e30e +domain e7ee +done e876 +done_all e877 +donut_large e917 +donut_small e918 +drafts e151 +drag_handle e25d +drive_eta e613 +dvr e1b2 +edit e3c9 +edit_location e568 +eject e8fb +email e0be +enhanced_encryption e63f +equalizer e01d +error e000 +error_outline e001 +euro_symbol e926 +ev_station e56d +event e878 +event_available e614 +event_busy e615 +event_note e616 +event_seat e903 +exit_to_app e879 +expand_less e5ce +expand_more e5cf +explicit e01e +explore e87a +exposure e3ca +exposure_neg_1 e3cb +exposure_neg_2 e3cc +exposure_plus_1 e3cd +exposure_plus_2 e3ce +exposure_zero e3cf +extension e87b +face e87c +fast_forward e01f +fast_rewind e020 +favorite e87d +favorite_border e87e +featured_play_list e06d +featured_video e06e +feedback e87f +fiber_dvr e05d +fiber_manual_record e061 +fiber_new e05e +fiber_pin e06a +fiber_smart_record e062 +file_download e2c4 +file_upload e2c6 +filter e3d3 +filter_1 e3d0 +filter_2 e3d1 +filter_3 e3d2 +filter_4 e3d4 +filter_5 e3d5 +filter_6 e3d6 +filter_7 e3d7 +filter_8 e3d8 +filter_9 e3d9 +filter_9_plus e3da +filter_b_and_w e3db +filter_center_focus e3dc +filter_drama e3dd +filter_frames e3de +filter_hdr e3df +filter_list e152 +filter_none e3e0 +filter_tilt_shift e3e2 +filter_vintage e3e3 +find_in_page e880 +find_replace e881 +fingerprint e90d +first_page e5dc +fitness_center eb43 +flag e153 +flare e3e4 +flash_auto e3e5 +flash_off e3e6 +flash_on e3e7 +flight e539 +flight_land e904 +flight_takeoff e905 +flip e3e8 +flip_to_back e882 +flip_to_front e883 +folder e2c7 +folder_open e2c8 +folder_shared e2c9 +folder_special e617 +font_download e167 +format_align_center e234 +format_align_justify e235 +format_align_left e236 +format_align_right e237 +format_bold e238 +format_clear e239 +format_color_fill e23a +format_color_reset e23b +format_color_text e23c +format_indent_decrease e23d +format_indent_increase e23e +format_italic e23f +format_line_spacing e240 +format_list_bulleted e241 +format_list_numbered e242 +format_paint e243 +format_quote e244 +format_shapes e25e +format_size e245 +format_strikethrough e246 +format_textdirection_l_to_r e247 +format_textdirection_r_to_l e248 +format_underlined e249 +forum e0bf +forward e154 +forward_10 e056 +forward_30 e057 +forward_5 e058 +free_breakfast eb44 +fullscreen e5d0 +fullscreen_exit e5d1 +functions e24a +g_translate e927 +gamepad e30f +games e021 +gavel e90e +gesture e155 +get_app e884 +gif e908 +golf_course eb45 +gps_fixed e1b3 +gps_not_fixed e1b4 +gps_off e1b5 +grade e885 +gradient e3e9 +grain e3ea +graphic_eq e1b8 +grid_off e3eb +grid_on e3ec +group e7ef +group_add e7f0 +group_work e886 +hd e052 +hdr_off e3ed +hdr_on e3ee +hdr_strong e3f1 +hdr_weak e3f2 +headset e310 +headset_mic e311 +healing e3f3 +hearing e023 +help e887 +help_outline e8fd +high_quality e024 +highlight e25f +highlight_off e888 +history e889 +home e88a +hot_tub eb46 +hotel e53a +hourglass_empty e88b +hourglass_full e88c +http e902 +https e88d +image e3f4 +image_aspect_ratio e3f5 +import_contacts e0e0 +import_export e0c3 +important_devices e912 +inbox e156 +indeterminate_check_box e909 +info e88e +info_outline e88f +input e890 +insert_chart e24b +insert_comment e24c +insert_drive_file e24d +insert_emoticon e24e +insert_invitation e24f +insert_link e250 +insert_photo e251 +invert_colors e891 +invert_colors_off e0c4 +iso e3f6 +keyboard e312 +keyboard_arrow_down e313 +keyboard_arrow_left e314 +keyboard_arrow_right e315 +keyboard_arrow_up e316 +keyboard_backspace e317 +keyboard_capslock e318 +keyboard_hide e31a +keyboard_return e31b +keyboard_tab e31c +keyboard_voice e31d +kitchen eb47 +label e892 +label_outline e893 +landscape e3f7 +language e894 +laptop e31e +laptop_chromebook e31f +laptop_mac e320 +laptop_windows e321 +last_page e5dd +launch e895 +layers e53b +layers_clear e53c +leak_add e3f8 +leak_remove e3f9 +lens e3fa +library_add e02e +library_books e02f +library_music e030 +lightbulb_outline e90f +line_style e919 +line_weight e91a +linear_scale e260 +link e157 +linked_camera e438 +list e896 +live_help e0c6 +live_tv e639 +local_activity e53f +local_airport e53d +local_atm e53e +local_bar e540 +local_cafe e541 +local_car_wash e542 +local_convenience_store e543 +local_dining e556 +local_drink e544 +local_florist e545 +local_gas_station e546 +local_grocery_store e547 +local_hospital e548 +local_hotel e549 +local_laundry_service e54a +local_library e54b +local_mall e54c +local_movies e54d +local_offer e54e +local_parking e54f +local_pharmacy e550 +local_phone e551 +local_pizza e552 +local_play e553 +local_post_office e554 +local_printshop e555 +local_see e557 +local_shipping e558 +local_taxi e559 +location_city e7f1 +location_disabled e1b6 +location_off e0c7 +location_on e0c8 +location_searching e1b7 +lock e897 +lock_open e898 +lock_outline e899 +looks e3fc +looks_3 e3fb +looks_4 e3fd +looks_5 e3fe +looks_6 e3ff +looks_one e400 +looks_two e401 +loop e028 +loupe e402 +low_priority e16d +loyalty e89a +mail e158 +mail_outline e0e1 +map e55b +markunread e159 +markunread_mailbox e89b +memory e322 +menu e5d2 +merge_type e252 +message e0c9 +mic e029 +mic_none e02a +mic_off e02b +mms e618 +mode_comment e253 +mode_edit e254 +monetization_on e263 +money_off e25c +monochrome_photos e403 +mood e7f2 +mood_bad e7f3 +more e619 +more_horiz e5d3 +more_vert e5d4 +motorcycle e91b +mouse e323 +move_to_inbox e168 +movie e02c +movie_creation e404 +movie_filter e43a +multiline_chart e6df +music_note e405 +music_video e063 +my_location e55c +nature e406 +nature_people e407 +navigate_before e408 +navigate_next e409 +navigation e55d +near_me e569 +network_cell e1b9 +network_check e640 +network_locked e61a +network_wifi e1ba +new_releases e031 +next_week e16a +nfc e1bb +no_encryption e641 +no_sim e0cc +not_interested e033 +note e06f +note_add e89c +notifications e7f4 +notifications_active e7f7 +notifications_none e7f5 +notifications_off e7f6 +notifications_paused e7f8 +offline_pin e90a +ondemand_video e63a +opacity e91c +open_in_browser e89d +open_in_new e89e +open_with e89f +pages e7f9 +pageview e8a0 +palette e40a +pan_tool e925 +panorama e40b +panorama_fish_eye e40c +panorama_horizontal e40d +panorama_vertical e40e +panorama_wide_angle e40f +party_mode e7fa +pause e034 +pause_circle_filled e035 +pause_circle_outline e036 +payment e8a1 +people e7fb +people_outline e7fc +perm_camera_mic e8a2 +perm_contact_calendar e8a3 +perm_data_setting e8a4 +perm_device_information e8a5 +perm_identity e8a6 +perm_media e8a7 +perm_phone_msg e8a8 +perm_scan_wifi e8a9 +person e7fd +person_add e7fe +person_outline e7ff +person_pin e55a +person_pin_circle e56a +personal_video e63b +pets e91d +phone e0cd +phone_android e324 +phone_bluetooth_speaker e61b +phone_forwarded e61c +phone_in_talk e61d +phone_iphone e325 +phone_locked e61e +phone_missed e61f +phone_paused e620 +phonelink e326 +phonelink_erase e0db +phonelink_lock e0dc +phonelink_off e327 +phonelink_ring e0dd +phonelink_setup e0de +photo e410 +photo_album e411 +photo_camera e412 +photo_filter e43b +photo_library e413 +photo_size_select_actual e432 +photo_size_select_large e433 +photo_size_select_small e434 +picture_as_pdf e415 +picture_in_picture e8aa +picture_in_picture_alt e911 +pie_chart e6c4 +pie_chart_outlined e6c5 +pin_drop e55e +place e55f +play_arrow e037 +play_circle_filled e038 +play_circle_outline e039 +play_for_work e906 +playlist_add e03b +playlist_add_check e065 +playlist_play e05f +plus_one e800 +poll e801 +polymer e8ab +pool eb48 +portable_wifi_off e0ce +portrait e416 +power e63c +power_input e336 +power_settings_new e8ac +pregnant_woman e91e +present_to_all e0df +print e8ad +priority_high e645 +public e80b +publish e255 +query_builder e8ae +question_answer e8af +queue e03c +queue_music e03d +queue_play_next e066 +radio e03e +radio_button_checked e837 +radio_button_unchecked e836 +rate_review e560 +receipt e8b0 +recent_actors e03f +record_voice_over e91f +redeem e8b1 +redo e15a +refresh e5d5 +remove e15b +remove_circle e15c +remove_circle_outline e15d +remove_from_queue e067 +remove_red_eye e417 +remove_shopping_cart e928 +reorder e8fe +repeat e040 +repeat_one e041 +replay e042 +replay_10 e059 +replay_30 e05a +replay_5 e05b +reply e15e +reply_all e15f +report e160 +report_problem e8b2 +restaurant e56c +restaurant_menu e561 +restore e8b3 +restore_page e929 +ring_volume e0d1 +room e8b4 +room_service eb49 +rotate_90_degrees_ccw e418 +rotate_left e419 +rotate_right e41a +rounded_corner e920 +router e328 +rowing e921 +rss_feed e0e5 +rv_hookup e642 +satellite e562 +save e161 +scanner e329 +schedule e8b5 +school e80c +screen_lock_landscape e1be +screen_lock_portrait e1bf +screen_lock_rotation e1c0 +screen_rotation e1c1 +screen_share e0e2 +sd_card e623 +sd_storage e1c2 +search e8b6 +security e32a +select_all e162 +send e163 +sentiment_dissatisfied e811 +sentiment_neutral e812 +sentiment_satisfied e813 +sentiment_very_dissatisfied e814 +sentiment_very_satisfied e815 +settings e8b8 +settings_applications e8b9 +settings_backup_restore e8ba +settings_bluetooth e8bb +settings_brightness e8bd +settings_cell e8bc +settings_ethernet e8be +settings_input_antenna e8bf +settings_input_component e8c0 +settings_input_composite e8c1 +settings_input_hdmi e8c2 +settings_input_svideo e8c3 +settings_overscan e8c4 +settings_phone e8c5 +settings_power e8c6 +settings_remote e8c7 +settings_system_daydream e1c3 +settings_voice e8c8 +share e80d +shop e8c9 +shop_two e8ca +shopping_basket e8cb +shopping_cart e8cc +short_text e261 +show_chart e6e1 +shuffle e043 +signal_cellular_4_bar e1c8 +signal_cellular_connected_no_internet_4_bar e1cd +signal_cellular_no_sim e1ce +signal_cellular_null e1cf +signal_cellular_off e1d0 +signal_wifi_4_bar e1d8 +signal_wifi_4_bar_lock e1d9 +signal_wifi_off e1da +sim_card e32b +sim_card_alert e624 +skip_next e044 +skip_previous e045 +slideshow e41b +slow_motion_video e068 +smartphone e32c +smoke_free eb4a +smoking_rooms eb4b +sms e625 +sms_failed e626 +snooze e046 +sort e164 +sort_by_alpha e053 +spa eb4c +space_bar e256 +speaker e32d +speaker_group e32e +speaker_notes e8cd +speaker_notes_off e92a +speaker_phone e0d2 +spellcheck e8ce +star e838 +star_border e83a +star_half e839 +stars e8d0 +stay_current_landscape e0d3 +stay_current_portrait e0d4 +stay_primary_landscape e0d5 +stay_primary_portrait e0d6 +stop e047 +stop_screen_share e0e3 +storage e1db +store e8d1 +store_mall_directory e563 +straighten e41c +streetview e56e +strikethrough_s e257 +style e41d +subdirectory_arrow_left e5d9 +subdirectory_arrow_right e5da +subject e8d2 +subscriptions e064 +subtitles e048 +subway e56f +supervisor_account e8d3 +surround_sound e049 +swap_calls e0d7 +swap_horiz e8d4 +swap_vert e8d5 +swap_vertical_circle e8d6 +switch_camera e41e +switch_video e41f +sync e627 +sync_disabled e628 +sync_problem e629 +system_update e62a +system_update_alt e8d7 +tab e8d8 +tab_unselected e8d9 +tablet e32f +tablet_android e330 +tablet_mac e331 +tag_faces e420 +tap_and_play e62b +terrain e564 +text_fields e262 +text_format e165 +textsms e0d8 +texture e421 +theaters e8da +thumb_down e8db +thumb_up e8dc +thumbs_up_down e8dd +time_to_leave e62c +timelapse e422 +timeline e922 +timer e425 +timer_10 e423 +timer_3 e424 +timer_off e426 +title e264 +toc e8de +today e8df +toll e8e0 +tonality e427 +touch_app e913 +toys e332 +track_changes e8e1 +traffic e565 +train e570 +tram e571 +transfer_within_a_station e572 +transform e428 +translate e8e2 +trending_down e8e3 +trending_flat e8e4 +trending_up e8e5 +tune e429 +turned_in e8e6 +turned_in_not e8e7 +tv e333 +unarchive e169 +undo e166 +unfold_less e5d6 +unfold_more e5d7 +update e923 +usb e1e0 +verified_user e8e8 +vertical_align_bottom e258 +vertical_align_center e259 +vertical_align_top e25a +vibration e62d +video_call e070 +video_label e071 +video_library e04a +videocam e04b +videocam_off e04c +videogame_asset e338 +view_agenda e8e9 +view_array e8ea +view_carousel e8eb +view_column e8ec +view_comfy e42a +view_compact e42b +view_day e8ed +view_headline e8ee +view_list e8ef +view_module e8f0 +view_quilt e8f1 +view_stream e8f2 +view_week e8f3 +vignette e435 +visibility e8f4 +visibility_off e8f5 +voice_chat e62e +voicemail e0d9 +volume_down e04d +volume_mute e04e +volume_off e04f +volume_up e050 +vpn_key e0da +vpn_lock e62f +wallpaper e1bc +warning e002 +watch e334 +watch_later e924 +wb_auto e42c +wb_cloudy e42d +wb_incandescent e42e +wb_iridescent e436 +wb_sunny e430 +wc e63d +web e051 +web_asset e069 +weekend e16b +whatshot e80e +widgets e1bd +wifi e63e +wifi_lock e1e1 +wifi_tethering e1e2 +work e8f9 +wrap_text e25b +youtube_searched_for e8fa +zoom_in e8ff +zoom_out e900 +zoom_out_map e56b diff --git a/src/assets/fonts/material-icons/material-icons.css b/src/assets/fonts/material-icons/material-icons.css new file mode 100755 index 000000000..2270c09d0 --- /dev/null +++ b/src/assets/fonts/material-icons/material-icons.css @@ -0,0 +1,36 @@ +@font-face { + font-family: 'Material Icons'; + font-style: normal; + font-weight: 400; + src: url(MaterialIcons-Regular.eot); /* For IE6-8 */ + src: local('Material Icons'), + local('MaterialIcons-Regular'), + url(MaterialIcons-Regular.woff2) format('woff2'), + url(MaterialIcons-Regular.woff) format('woff'), + url(MaterialIcons-Regular.ttf) format('truetype'); +} + +.material-icons { + font-family: 'Material Icons'; + font-weight: normal; + font-style: normal; + font-size: 24px; /* Preferred icon size */ + display: inline-block; + line-height: 1; + text-transform: none; + letter-spacing: normal; + word-wrap: normal; + white-space: nowrap; + direction: ltr; + + /* Support for all WebKit browsers. */ + -webkit-font-smoothing: antialiased; + /* Support for Safari and Chrome. */ + text-rendering: optimizeLegibility; + + /* Support for Firefox. */ + -moz-osx-font-smoothing: grayscale; + + /* Support for IE. */ + font-feature-settings: 'liga'; +} diff --git a/src/assets/fonts/muli/Muli-Black.ttf b/src/assets/fonts/muli/Muli-Black.ttf new file mode 100755 index 0000000000000000000000000000000000000000..76825b81701f0c162c335fd11dc1b807559bc267 GIT binary patch literal 95340 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 literal 0 HcmV?d00001 diff --git a/src/assets/fonts/muli/Muli-BlackItalic.ttf b/src/assets/fonts/muli/Muli-BlackItalic.ttf new file mode 100755 index 0000000000000000000000000000000000000000..70762c09d9caeb922bbdbeaf9844c9a5f59e9666 GIT binary patch literal 97220 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 literal 0 HcmV?d00001 diff --git a/src/assets/fonts/muli/Muli-Bold.ttf b/src/assets/fonts/muli/Muli-Bold.ttf new file mode 100755 index 0000000000000000000000000000000000000000..732c3ec02e9d75470a748e42d7b32d7490029e5a GIT binary patch literal 93816 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 literal 0 HcmV?d00001 diff --git a/src/assets/fonts/muli/Muli-ExtraBold.ttf b/src/assets/fonts/muli/Muli-ExtraBold.ttf new file mode 100755 index 0000000000000000000000000000000000000000..a8ef44cec3a6f8b9b1c83a230df2d1fed9d2a3a5 GIT binary patch literal 95212 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�I6`L)JqDvMRibd)1M!+_G6|P^V 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 z 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⩔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 DB1+Bq literal 0 HcmV?d00001 diff --git a/src/assets/fonts/muli/Muli-ExtraLight.ttf b/src/assets/fonts/muli/Muli-ExtraLight.ttf new file mode 100755 index 0000000000000000000000000000000000000000..ffe7b29deba65d44b9126ffe33300b6038de765e GIT binary patch literal 91508 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

<+jy=*ONwoz}zFi3U<%6ty1Q7Cc&se`YL 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�~svd_rC4@E%(MBM_8 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 z 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 iED0!57~#qNuW1?k$ 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 z

8SK5eGyvfCz% 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

RN5ruC!Y9F0Fd6wk*k( zZON7_xp!;~F~kr$h8RMC5JG54D8@9C5Rw2P#G!>2LLec$gpl$E!b=E&fOr4r%)P5- z**N*Xd<8SQcki8CUkR9Wu`F4!dY$4`3q1iM27hPLC&rH`A z*zhc3r5G0C&hM3MrMS$LJlQ#EP8mGWN-;P1qUuQSb*FbuhX7OJt=%}|Pz@c2g~n4e z&o*;rJY_|VY`D;ga&)AKtb3Rx_1{9Nk0kN=QcoiJb` zSC^84<#SwJ#D14wjD8#0q}-9HI0Foo;7$iB(3Tbu9>?+{5$}p{H-R9wTKJlYy{|C$ zp|t?Nu*Qf`5?BgFNEF#x)5sE%j3SyPBfXE}q&~9;+hNwHTADk<+j%(bNNU{*!;(Po z4}3$DH7&Z=EB5T5SC0sq4yRl}gU?uO&&zM0ljk~qVjjqFM4zo3^@zRgtPJPkIc2{Q zE<1;Zft+?;*%>(wT6BltZREDy6fQf<+mQTbURgzc!&0Fyd>UimARAd|3waVYb)dqK zM=2`9IScI!gmIt-*~rc;%`-1%Y-AnGZuiPDMCBbYP(}{pA)mTIYj0vWScGlIuw&_H zS$TO?Nn`%jm1S$Q?d?4!6`9_gl1Bfw)w)1iwKY4-5+9pU?rT|U&1$W3SWW5iQLz~n zz81uy1&>Aj_>F+yb;|gB^@Q=EJpUyjUL8js?8m->Q^RCALOv^k#0)kzMPYq}fXkfv zuEQB=3uPQ~p06tPxg?PXxN#NEbfdLa(NR#n^8N>$SZb(Rz`KV1E|5`%FiGVONu#q{ zr3K+V!WN~o#hdtLuxI1t%2Vj*_iED!(m^2KakmbWg3Fnqa!6pg*`Hl1hW+ioaY1c`tK3hq2T zXRNPXY^*VFX`aZqL-Od$X3Glsi;QYQQ_ zZ^>l=DX}Ac$ZGW15j;)ij>N(+JHHWmb4JRQAWrVk@!-bdmDR=ToQ}TUg7QsgX@~na zclGGpldhz{t=e)cAD-+f?8&uewpA8*%epOHnf+yB{X@Z6{(H`cdM|3m1Z9bsx0`T^ zpqUK>5F4B5Q-_hO6!TUyoWB&8SFr}nn)WUFMu?&G@y7ThS_)FVWjX|9DAUmjM^5OZ z3N0gZfuHi8)HH3jr@e?>0GC@&x(*N2<=H>&fw|wJ(chQQYq& z8_XNXjMFHN8=2P!Va6Hm$D0v*w0pF?H$~}-u1DLW8`q8-rlT*_@;fFvdS|*c+%XaE zlO$k%rt}mz{WP{4fhU1x(FpJ%!b+3;!%96zPsk&iTxg}0It&APrNq^*F*9Q5GDRN)B|YKzrBfCF zEuB*Uc1TL)@Qb7Kmlpem?5z~z&o{=W5IMD34H)eiWIgH0BE+UGg2ge55Yae?>jczZ zKsA@fH5J9e)<(e#(8@&6L7IzJiv2A3m$L;O6mt~uZNziXu)DZ71dsH4x%A!8F3evbXSX*`@QIe}|r9%o;%R5~1reK_3zW6)mQ{O#6&bg$QJWJ^L7jQPu#N!%y*> z);b{!5!0RYAtq+BC)se!BgF|;ET0!dok(<%rE~F;A)X8+&tz>U4&;KlK$qJ)GMH%K zMZuSZ0G_9zFQRQ?&A1y)r9JrqKb&wLVLu?}x&CB%=G3#8U&F$0eIs1Y9Ntjm5%OC3 zTZb0S(@+t|=y^c#YeCk|+7ZJaV**NCw=dWtb^#5YLZi97;^56{4GZrPK;@ERfSl|5gQTJ$gXjlA@#ocud7nmsL*~5{k>Jg0aS*wU1E}VB?3&a0}aU|WGJVqzS2a*#a z4|7Q(kDy5l#%RtyBn8`OH~$A9H!p?_7H~Os{cH>y1XkgXO$CFa_pUpS|0AeJB2hoa z*@X$PQP`eP4E(tX^JIwESQj!xv*=V6F+{|QxJoJX6~(%72mk2Xw=Ax;E6sd( z>cFG?nF`ab4t#0 z!@@imlT1MC&lr>WF?Hk(2Az8fxf9yISWF%MXKnBiUZf57Yj{)ezqI`0mf+XATlho| z^;6U<#^V>tczol8@mQGWI-DE75cfqM0c*LQs}{=xevA5G<;Ww}s%r(TVfQ2Th&BZ9 z+y&l+Y$|8%f4(B@e`e(uGkOc~t+2LP0FqK+zps@88;}nZH`MUxCF=AVZ+YL! zWGJ)G!f%Vb|g(w7dcl&nWJ#xJaQTAT78l?K@O!s8p(O4Az$cU(be2H z+Le=I&2qT2v-ovAbzLjE16?bci}GylqCC3`-;BmM-iPthAd*xhTJPqxC(n!Y!gWqcoes5V9-^Vw1QXRQy!-t@qI3WD~6cy^Q zV_%!Cgp+_6)J%tU&B)gg!T!Tzx9WobqkC%ihBGhvD&5`E**0YWE}@De`MnU6N*SI5F~#eJ`wj`IVlYKVWQ15JR&Bab2TeHF@&$ zP(*a`3AgsO(XL<*yRZdp9tbYk;NV2I5j#Q zsEBXS}g$w|ybsJGQa4_sc`N?)D{hWm9W2bHCWK zYG-o|U(r_$l~GSq4w;Y{Xxz)UJc_J35M}uoTpm}TUH?KbD2UBRb(|z!wsDkp~#e>bj z^Tyh4d0a-&i3W^|meKiv#022^Oq9(85oHtLK|GJ_G5(e|c4$349Xe69SOculh8v!9i6A}yQ@7tQr>f3$cvaYhaOLsS~uk3ET zt(UjfwfDCLTqE5bLxW2?_=@GVwWI#Yq2@IS#$^@D*LnL&0;>{vY;{FRAVS|-UQ~Ac z=M7aQ^*Tdic||picNWIGcy_$$6jVV3$XyO1Psm`VgdCFOwe#lx!tr*XHfUfgjJM%s^&_AL`5T^SH45E$sG4fJ-_O3%-Z^c5FI`73Dnx71<0G1fHZ z7+3I6DWT(hB|n0e{!{#>#j}~;iQia^72dg<--F+uiQh4y&$#^ixcH5=p05@8gW`7z z-Vci3A@MsMzt>ZFY^|t1UpPO}eEg2Z`&HsSGT=AWze4<0p@1~gzDTUFIG2K+fvQf; z8oy#wAQ+gWs6@pVd}g(pvslRjg!O&Pdpr9^dR;jU?wkhInw2{atQp;LUi0eFEvr{- zMctf*`#*n;Vyg2NTce26#VO>pMt#(){ZP}B)UBInY-?-d+`9}e@2HRV3IQOF7lv-2dY{{YThR4atUI>^nxLT7A&X1O;aG3k>Sq5of)6^;r$dbHT zO@-GeOg-2-L}JdKG>aValfny}G>cqI%&D?aEvKviDo!{hIA}FQprTZ-UGN~YMB6sI z7>doh0xxcJ47GZfWM`ND04{hXnVZ(XsYc;jn0qtX&w^~h4?1(zl*xOsj zGlGA(iN3>uCxjnQE%{xa=9(S;5vR6Y7>&nD&@qVfIEK2I04OEcmfR z@HJt`l8*rZD^1O;&NFNBEdHM&(=04ck!co)r^qCrcZ&C6u*sg_wq$E&I<|Bsn`6$& zKcr42a-rDV;MO#kM~G`(*4RDhAFk@GOE0PPm1*M&GoxI#ESuM5;c+e1fq}7QT|4Uh z_1@M}1FKf@KkNXu5jeVS+2{`^^fCqyuO zoc8Ns8gFJ+?8^=Z^sWqZ5z+U8~0P-Tw!@!NV z*^-lOxi)XIH96Y@Vq=;iHgg#bVW>-7g?Wa}aLG)D&$Ft#eXuakVjpgA>dkXcdK{K+ zn>F6oJ>;>yP;9Gi2o!tDBBKhk%Ic~L9OaRRvQm?+5%DFdX~E~M870v%m1$Tqq?vVa z7I!sa$~}X-b8!{}Lac_eznBFd1=td&NYSwo^E1tY@f4Y6!Fh^IGVY%IOJVRXz+Jm- z9@8W9;9)h>0^HRCZ>u}%(ke=UxA6rTwXMsVGCWR;)ost>_pBb8!CP}P@c1RdTf$$# zQ}}r*-z7bZ5ZwP{W}X2JDU-g-Glba@(cd*V0(4aDdvI>BvM&|OJ>zR=&!g%JZ%X;> zg3qI8SA0G>yX1q1DM5V`(lhwpXW{Shx!-fZ1Z7OUmI5NgAZ2> z7_!Lx7WU>CQQ{&NWTO*4=B$^3u)@|NyvaG)dRcku^^(7Pss$7Mwxi$sq+{rJFx>B1 zIODw^{oW+rhr;h?;ez)?cz-Uzjl}Q^#|iJ7!}Viul=t(>J5heOC@+QIt7hPi@&xxC z;ypZ<7pec0c!Kf@o}ho9hRe_U{wc>@`M!)7I8Raj{=D-4Ps0!TnxW7;u*rD~SgE}q zrZ;}C&c)5s_58I!YOeG=Byt49&^xMgk;f`&u!`8EWMOxp;-5)~1);pZW|8+n<-G&t z<@dUI<;8o<1Mph>G3i$E+9b{elrxMr}fgRk}O@wAp)du>UpXOH(BnuBqnpK=fEJyp!td4xiWL_xvI z`1x|3kik=?^YD!C8lfM^sEQ{Ik{ODl7at#fyh7#v>{UERwo3K_`#x_+mgGPZ9&kp& zMA`>nuMi(cuDj&$-niGWhqv#Q%Pe6d{89J_#xk5kEy@g084BaecrR}0++zA(=^UXZ zdG`HkX`z2cZ}f&Vmk$J7#;h zz*n3&dg|t&{tIp6sPU%~KOX9(#)0O9I@nJYSi%sEU}?l-NV3Lf>Nb;(9ExDYIt|RH zN*YuEDyh1KSL=*P7CEOI(S99v5iRU0keA#kGJ9xT;AC-km6X?4vm&4Gf>fjdLhAeP+N)~#t8X^n zkN=wAY`zo!1z&&jO`wgyGr|ECGX`LNJ+teT(LFpydjUv^?ZoS6giOUkr;)r6(x%Jqbu638@Y?f>^y=z7K>7EcrUI*{+~M$eR>UU^G`Z`GY`&&E^G~RCXkX|! zbbQOiIA^gnM>7*(qDSH_8t*j7wBa+QrkxtZnGi1)01e{@Bl<%s@8vp zs+i|f6@@GiZAsc2CJjVk6yiYN=Ajosqc;c|?UZSBB=zKckTVm_I;dylc=fwR9+1(_ zjKhL*hIn8Y#2Mv32tCGsjha-YR!Iw%xkH2nAKy1F`4 zKEj@6zk-1KbLcwA#vWe2S+tquhdTH{z}ZFG7<*QxSr7FrkR97AF0G~S3HORbK_^|z znVp+0A16bWw1m(m6E3DAkRAU7hLe;3J*C>8O8T7PDaDn?yk$;wg3sH~ZOZB1)C zVq&IeXR5MY+3IM`aGP|jCpYJCUWHCqm3vQ4ZcjrX{*H)fn>9l3)9XF?ceE0b=7{^! zf%qxMz_&u*l5H^}LK3#r)K>hzHq4qPN?mBAo7M!_+|rc8DkLN{qE${OE>7`)T27lN z-X^z1JJ?mF$XzV??RXSZo-eEMhtMv|Dw9O{s zhH=(~Hcq3BItCpRrWDv?)p&S8lhJqfFhDacTB;&lSIaBf9aTFuM^*cKj%W6S`>Gc8 zfRB)SI38a2&_fVRvFe%8F*1++;V(2hD|c#NIocz=MdjH#v||Y6;~C};6ddxH3Vs1& zi9=bj$dgKq2C4`^5`eH>=~3z1TLz z<}au>j_MUiNi2wr9&s!#nU+x~2V^`b0)3|u(9~D!RhhOW%T)S~wxb7L+UW5tJv{x; z5A4oezuYbG5R~9O)ki!JxEtm#PJ;I?;5^r;KG3{JI8WvH@zXEIKatCU8GBDkJ)Lqm zE>hR3=08`@eDB|BCu?DE^R2w}^ZQ5NYteD5_U(ZI^e$XZk}3qfT=*Mt?)g*vG0@Li znymQyxX2fW=Z}czb>ev)JqKP;{s=tRFh{@&sfR#}Sr%}H%xIV9;=)nicd=h;E zjRv#17j149ZEI%ti|0N3b$*`o9G*9d=Z(tqA^r<~8F0=jHHqg<^c?L#e)c@_>lxzE z;3!JghNttH*?7Y91Y(#7(aqn~mm7$F=j2HHy?gup-3}}2LH!JelFi`{srr?)>d1&4 z<`0d8%z{7sm8c|NU#^#q4diz@tv)X;&RncN|7&H-_b(^=vHg^S&?lVf(_`A+T|0K3N zbTRbKJ0beZBn(PRMci?mKOSxqLzp6&;{XmMCsNZKa~h?zNi^0jH;f-o>+tB8>PM!& zunCvmQb$Q)dP!CAjRId*y(9zlUf2RK>CDq@N8h+wxF=^#t?cj ziK1qa2Qsz@c&$Ef(YKImB*tet96}F3zJ;VCkvSm&e#Cx3z#}|!i4r3&wex291 zw6JA$-uO_?XpY6Trzkh4roJ{ay{&$wwdIoW;;u4xc768}>D-7ek7MxQ(9SQqp!3g< zJU8_~Le{luKW~cOToFPE+CU-a#Qp~ixi{UDmkS3UGptmw8`Ubk!0LcaD#>%j zkv3YP)C_kRVZtqirTHcG14|kp6Duq%%P*~8(pO*VFDdw0o7ao~+dZCk?=4N`zA|_> z`zo52ENdwDm&5bMU*53n+j-qSU$-x>2Y>UZKkzyMzBgkWt>D)E=ux~s-|2u8U}juw zRAdxky{yBHBi@9@NAw0$Gz~2M+(+pU@jn=!g*}}aQhlM8rD*~A6C&8l=ZcGg!SujT zIq?uqGeN({1%lf^Z(K2J*U`5r2M*Y%=n(^%1hS9_a%Zm~!8(*m|E{Nls z-7TfdcIY>4j_T}oI5q#B=DsWoY02yL^)&VzGWw6D z4cK$#u--tI(;=})u*g8;4(OraafCGnN+(2Lg;9nI8_LK?!)j(QVCK&H9-$r_C2s@1 zzyjG}#Yvh8(dZJ>68RT@=DGEQYbvJQrP!W{nar0CCf=bvqLL14zNPPMb`1Nn+`9`l zelccRvsyi>U6Xp*bmLZ+H)mm@Wm99#({Sx_U#7}vFPLEEi$Edz|exi%}&C>RJ{_w1hP>pv6_;<8UZ)kj@qe|#7NJ9|k`v3EkR95%czl*ZsEYrL*%Y%B&R~E7>2#1_ zIVFSu0Km95vA#{4v?k@=l(psjE?w}u3HRzowRuzg!=>GU;Jdso_!unm-WcvCb4~QU z1azerbj8Ms0)Ct%F6_SK-TV|XAQGPj8)3v$qm3|$!PLAv!Qo6v5^@}v6wO(|6pB8V z@WUjI_x&NwyDBGQP`_bM!#TsC9#bt|-(W%GYXA6fVP)(^d|&Y1q*RqySvTFiA!75k zm==)v{(~!a9Weh4ZA`-WoPqI)XZe9#SU!OcU<(E#4(#oP@e_PzG-RnJOPNS$f|Fw9 z6TrnmtArnr4dDdZBFX>fPj-HiGMO@>Sxy0G9eaZ>y~`VeKOo5P#zx){{4uWy{*Yjk zjPEYTymPajK&Qiwc_&tn)0uW;4wa-K>~%Aj6+tlJq8JZNMZ8g&c7(tp0e)opM#~{u zDbk!-*HWWV->W^ML*kljJO7gI_(z%&pGGyR8P%@PjH)Ack2UP_fEwpXXV+8~G!Hh# zRx~9IwxraS*qa8M%a?D+^K`pNlE}d`eJtg}Mmmk)m}X8i#v1fm4b0*|S7G-M$9Wq_ zqEKY8F_eHMoF_G#777O~dq!QIg#RIzjg`uDIs}O+ER*slzBb%v9@CEL#&oMAr*#i& zAJ%K5did#|@4oY?i!Qx5A^1GcPxw;s)7L-bd0&g&zMbFz?Y6W6_>{r|ftm;&p@+94 z`X9+7bik(wwoX1lk;HR!Zb+hF2_T*$plDUd1R zKWltqoXlyFaD+G$NT&drFku9U%teyYb7^%C*K}!DX71=~O`J?$t`-0E-|3k)uX(Vp zDUjTRbA;m4ElrhykN7ssw0*VJ!GC_MwGIuJAcG>>ehhmx3#$oK!sR$J0%|WDv_MRz z%v6Di5-2AqViNHpbUGMWc4Uj@#>YotDV9CXXQsaxM^f&%6eD2UOS;3_yD=Id0`xES zciYdb-qQNz^Ew7PdUkN%VAEH=g4XfDiRJYZWzB6Z)m5NTu#y4KcMRGC?fse2WM^+f z-w7g+Dw@qU7j{+ zSG9<#bH1&xxnpf~gd^+ix1AYFwqd!zx5De3g;fU1U@y&dFfE>O(kG@&yBfSU7|OY- z7XU8HCRR102p}snWh4cdyPnNo%M7%Z&0WXzSjPWOY+151QEDvWe<2zR7GnnSs92w2KI+D)r)Se*je?E)x8BHFEx?}3C>+I7Ws1?L2! zC$%fo{hGGuC9%8e+$)w8waFCxv!Gf~@SvN&O6hNaC4xXn7h~K^tTs@U1X|5IA~*m_ zTsoR3k&_3wbftOnJOJ^BH@3X82*eUA3uK=%hcJU$!p-gCPp;5BpuJ!7K=gDp{^IV6 zV>=K37U#P^j?uj9E<&Z+;G5inTG5{O*b97%&}S-oUlObSV-KX#ZUbH|G>cD(QcwV{lC3V*+5(FRm3d`ilYI|v7h z<_nP+S!+ z0x^K`AQu(V{vqJVWW=M?(%W&v@0*(1+|d#I?G$)tiRH6vBtLXD^j$!XxK@xBHVGWS zL>eSJS!pHIW>PnOYtC0lv&8WQ4U**71dUq$x;mJs;dgX&JVgNEu+@!`{89m8MQQJk z(+c_kf|(6~$iy-mVhJ3%{{6c5G{L_$Hk4eUy}Rx$^tz#;_-lOZ+>VPfHg=rbabd;= z)a76nDMtdOL0wRM`MpMsPE+P^bn{b&%A$z+SB=Ra$t)j9jun4VxwYZ?W=MM9wwta5sNrJ$ydCndm*|b z`UNfi1|O!c^6eeB-PUp2@jv6EH1^x20{(N*gM9SanF

D3+OnpGQt%_%enbvr5 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 literal 0 HcmV?d00001 diff --git a/src/assets/fonts/muli/OFL.txt b/src/assets/fonts/muli/OFL.txt new file mode 100755 index 000000000..1016891d2 --- /dev/null +++ b/src/assets/fonts/muli/OFL.txt @@ -0,0 +1,93 @@ +Copyright (c) 2016 The Muli Project Authors (contact@sansoxygen.com) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/src/assets/fonts/muli/muli.css b/src/assets/fonts/muli/muli.css new file mode 100644 index 000000000..358f89bc1 --- /dev/null +++ b/src/assets/fonts/muli/muli.css @@ -0,0 +1,30 @@ +/* vietnamese */ +@font-face { + font-family: 'Muli'; + font-style: normal; + font-weight: 400; + src: local('Muli Regular'), + local('Muli-Regular'), + url(Muli-Regular.ttf) format('truetype'); + unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB; + } + /* latin-ext */ + @font-face { + font-family: 'Muli'; + font-style: normal; + font-weight: 400; + src: local('Muli Regular'), + local('Muli-Regular'), + url(Muli-Regular.ttf) format('truetype'); + unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; + } + /* latin */ + @font-face { + font-family: 'Muli'; + font-style: normal; + font-weight: 400; + src: local('Muli Regular'), + local('Muli-Regular'), + url(Muli-Regular.ttf) format('truetype'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; + } diff --git a/src/index.html b/src/index.html index 73d53f5cc..688fda628 100644 --- a/src/index.html +++ b/src/index.html @@ -7,8 +7,6 @@ - - From 43b020ca5179f57aaebd5a6d54cf76f4c7744538 Mon Sep 17 00:00:00 2001 From: Adina Parpalita Date: Mon, 4 Dec 2017 06:10:23 +0200 Subject: [PATCH 43/70] [ACA-990] add tests for Recent Files, Shared Files and location redirect (#105) * add tests for Recent Files and Shared Files list views add tests for location redirect * small fix --- e2e/components/data-table/data-table.ts | 11 ++ e2e/components/toolbar/toolbar-breadcrumb.ts | 20 ++- e2e/suites/list-views/favorites.test.ts | 35 ++++- e2e/suites/list-views/file-libraries.test.ts | 9 +- e2e/suites/list-views/personal-files.test.ts | 44 ++---- e2e/suites/list-views/recent-files.test.ts | 141 ++++++++++++++++++ e2e/suites/list-views/shared-files.test.ts | 147 +++++++++++++++++++ e2e/suites/list-views/trash.test.ts | 47 ++++-- 8 files changed, 403 insertions(+), 51 deletions(-) create mode 100644 e2e/suites/list-views/recent-files.test.ts create mode 100644 e2e/suites/list-views/shared-files.test.ts diff --git a/e2e/components/data-table/data-table.ts b/e2e/components/data-table/data-table.ts index d44b62965..85919770f 100644 --- a/e2e/components/data-table/data-table.ts +++ b/e2e/components/data-table/data-table.ts @@ -34,6 +34,7 @@ export class DataTable extends Component { row: 'tr', selectedRow: 'tr.is-selected', cell: 'td', + locationLink: 'app-location-link', emptyListContainer: 'td.adf-no-content-container', emptyFolderDragAndDrop: '.adf-empty-list_template .adf-empty-folder', @@ -45,6 +46,7 @@ export class DataTable extends Component { head: ElementFinder = this.component.element(by.css(DataTable.selectors.head)); body: ElementFinder = this.component.element(by.css(DataTable.selectors.body)); cell = by.css(DataTable.selectors.cell); + locationLink = by.css(DataTable.selectors.locationLink); emptyList: ElementFinder = this.component.element(by.css(DataTable.selectors.emptyListContainer)); emptyFolderDragAndDrop: ElementFinder = this.component.element(by.css(DataTable.selectors.emptyFolderDragAndDrop)); emptyListTitle: ElementFinder = this.component.element(by.css(DataTable.selectors.emptyListTitle)); @@ -142,6 +144,15 @@ export class DataTable extends Component { }); } + getItemLocation(name: string) { + const rowLocator = by.cssContainingText(DataTable.selectors.row, name); + return this.body.element(rowLocator).element(this.locationLink); + } + + clickItemLocation(name: string) { + return this.getItemLocation(name).click(); + } + // empty state methods isEmptyList(): promise.Promise { return this.emptyList.isPresent(); diff --git a/e2e/components/toolbar/toolbar-breadcrumb.ts b/e2e/components/toolbar/toolbar-breadcrumb.ts index 8eac821f2..5a832891a 100644 --- a/e2e/components/toolbar/toolbar-breadcrumb.ts +++ b/e2e/components/toolbar/toolbar-breadcrumb.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { ElementFinder, ElementArrayFinder, by } from 'protractor'; +import { ElementFinder, ElementArrayFinder, by, promise } from 'protractor'; import { Menu } from '../menu/menu'; import { Component } from '../component'; @@ -34,4 +34,22 @@ export class ToolbarBreadcrumb extends Component { getNthItem(nth: number): ElementFinder { return this.items.get(nth - 1); } + + getItemsCount(): promise.Promise { + return this.items.count(); + } + + getFirstItemName(): promise.Promise { + return this.items.get(0).getAttribute('title'); + } + + getCurrentItem(): promise.Promise { + return this.getItemsCount() + .then(count => this.getNthItem(count)); + } + + getCurrentItemName(): promise.Promise { + return this.getCurrentItem() + .then(node => node.getAttribute('title')); + } } diff --git a/e2e/suites/list-views/favorites.test.ts b/e2e/suites/list-views/favorites.test.ts index 869f16340..6b0e76bfd 100644 --- a/e2e/suites/list-views/favorites.test.ts +++ b/e2e/suites/list-views/favorites.test.ts @@ -40,6 +40,7 @@ describe('Favorites', () => { const logoutPage = new LogoutPage(); const favoritesPage = new BrowsingPage(); const { dataTable } = favoritesPage; + const { breadcrumb } = favoritesPage.toolbar; beforeAll(done => { apis.admin.people.createUser(username) @@ -64,7 +65,7 @@ describe('Favorites', () => { afterAll(done => { Promise.all([ - apis.admin.sites.deleteSite(siteName, true), + apis.admin.sites.deleteSite(siteName), apis.user.nodes.deleteNodes([ folderName ]), logoutPage.load() ]) @@ -113,4 +114,36 @@ describe('Favorites', () => { }); }); + it('Location column redirect - item in user Home', () => { + dataTable.clickItemLocation(folderName) + .then(() => breadcrumb.getCurrentItemName()) + .then(name => { + expect(name).toBe('Personal Files'); + }); + }); + + it('Location column redirect - file in folder', () => { + dataTable.clickItemLocation(fileName2) + .then(() => breadcrumb.getCurrentItemName()) + .then(name => { + expect(name).toBe(folderName); + }) + .then(() => breadcrumb.getFirstItemName()) + .then(name => { + expect(name).toBe('Personal Files'); + }); + }); + + it('Location column redirect - file in site', () => { + dataTable.clickItemLocation(fileName1) + .then(() => breadcrumb.getCurrentItemName()) + .then(name => { + expect(name).toBe(siteName); + }) + .then(() => breadcrumb.getFirstItemName()) + .then(name => { + expect(name).toBe('File Libraries'); + }); + }); + }); diff --git a/e2e/suites/list-views/file-libraries.test.ts b/e2e/suites/list-views/file-libraries.test.ts index b5cdac85d..b324cbd37 100644 --- a/e2e/suites/list-views/file-libraries.test.ts +++ b/e2e/suites/list-views/file-libraries.test.ts @@ -54,6 +54,7 @@ describe('File Libraries', () => { .then(() => apis.admin.sites.addSiteMember(sitePublic, username, SITE_ROLES.SITE_CONSUMER)) .then(() => apis.admin.sites.addSiteMember(siteModerated, username, SITE_ROLES.SITE_MANAGER)) .then(() => apis.admin.sites.addSiteMember(sitePrivate, username, SITE_ROLES.SITE_CONTRIBUTOR)) + .then(() => loginPage.load()) .then(() => loginPage.loginWith(username)) .then(done); @@ -67,10 +68,10 @@ describe('File Libraries', () => { afterAll(done => { Promise.all([ - apis.admin.sites.deleteSite(sitePublic, true), - apis.admin.sites.deleteSite(siteModerated, true), - apis.admin.sites.deleteSite(sitePrivate, true), - apis.admin.sites.deleteSite(adminSite, true), + apis.admin.sites.deleteSite(sitePublic), + apis.admin.sites.deleteSite(siteModerated), + apis.admin.sites.deleteSite(sitePrivate), + apis.admin.sites.deleteSite(adminSite), logoutPage.load() ]) .then(done); diff --git a/e2e/suites/list-views/personal-files.test.ts b/e2e/suites/list-views/personal-files.test.ts index 5048c7d8a..052afe77f 100644 --- a/e2e/suites/list-views/personal-files.test.ts +++ b/e2e/suites/list-views/personal-files.test.ts @@ -17,24 +17,23 @@ import { browser } from 'protractor'; -import { APP_ROUTES } from '../../configs'; +import { SIDEBAR_LABELS } from '../../configs'; import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; import { Utils } from '../../utilities/utils'; -import { RepoClient, NodeContentTree } from '../../utilities/repo-client/repo-client'; +import { RepoClient } from '../../utilities/repo-client/repo-client'; describe('Personal Files', () => { const username = `user-${Utils.random()}`; - const password = username; const apis = { admin: new RepoClient(), - user: new RepoClient(username, password) + user: new RepoClient(username, username) }; const loginPage = new LoginPage(); const logoutPage = new LogoutPage(); - const personalFilesPage = new BrowsingPage(APP_ROUTES.PERSONAL_FILES); - const dataTable = personalFilesPage.dataTable; + const personalFilesPage = new BrowsingPage(); + const { dataTable } = personalFilesPage; const adminFolder = `admin-folder-${Utils.random()}`; @@ -44,7 +43,7 @@ describe('Personal Files', () => { beforeAll(done => { Promise .all([ - apis.admin.people.createUser(username, password), + apis.admin.people.createUser(username), apis.admin.nodes.createFolders([ adminFolder ]) ]) .then(() => apis.user.nodes.createFolders([ userFolder ])) @@ -71,14 +70,13 @@ describe('Personal Files', () => { }); beforeEach(done => { - personalFilesPage.load() + personalFilesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES) .then(() => dataTable.waitForHeader()) .then(done); }); afterAll(done => { - logoutPage.load() - .then(done); + logoutPage.load().then(done); }); it('has "Data Dictionary" folder', () => { @@ -93,19 +91,18 @@ describe('Personal Files', () => { describe(`Regular user's personal files`, () => { beforeAll(done => { loginPage.load() - .then(() => loginPage.loginWith(username, password)) + .then(() => loginPage.loginWith(username)) .then(done); }); beforeEach(done => { - personalFilesPage.load() + personalFilesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES) .then(() => dataTable.waitForHeader()) .then(done); }); afterAll(done => { - logoutPage.load() - .then(done); + logoutPage.load().then(done); }); it('has the correct columns', () => { @@ -150,24 +147,5 @@ describe('Personal Files', () => { .toBe(true, 'user file is missing'); }); }); - - // Some tests regarding selection, breadcrumb and toolbar - // probably they can be move to a different suite - describe('Item selection', () => { - it('has toolbar when selected', done => { - const { actions } = personalFilesPage.toolbar; - - dataTable - .clickOnItemName(userFolder) - .then(() => { - expect(actions.isEmpty()).toBe(false, 'Toolbar to be present'); - }) - .then(() => actions.openMoreMenu()) - .then(menu => { - expect(menu.items.count()).toBeGreaterThan(0, 'More actions has items'); - }) - .then(done); - }); - }); }); }); diff --git a/e2e/suites/list-views/recent-files.test.ts b/e2e/suites/list-views/recent-files.test.ts new file mode 100644 index 000000000..27b43f7ff --- /dev/null +++ b/e2e/suites/list-views/recent-files.test.ts @@ -0,0 +1,141 @@ +/*! + * @license + * Copyright 2017 Alfresco Software, Ltd. + * + * 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. + */ + +import { browser, by } from 'protractor'; + +import { APP_ROUTES, SITE_VISIBILITY, SITE_ROLES, SIDEBAR_LABELS } from '../../configs'; +import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; +import { Utils } from '../../utilities/utils'; +import { RepoClient, NodeContentTree } from '../../utilities/repo-client/repo-client'; + +describe('Recent Files', () => { + const username = `user-${Utils.random()}`; + const password = username; + + const folderName = `folder-${Utils.random()}`; + let folderId; + const fileName1 = `file-${Utils.random()}.txt`; + + const fileName2 = `file-${Utils.random()}.txt`; + let file2Id; + + const apis = { + admin: new RepoClient(), + user: new RepoClient(username, password) + }; + + const loginPage = new LoginPage(); + const logoutPage = new LogoutPage(); + const recentFilesPage = new BrowsingPage(); + const { dataTable } = recentFilesPage; + const { breadcrumb } = recentFilesPage.toolbar; + + beforeAll(done => { + apis.admin.people.createUser(username) + .then(() => apis.user.nodes.createFolders([ folderName ])) + .then(resp => folderId = resp.data.entry.id) + .then(() => apis.user.nodes.createFiles([ fileName1 ], folderName)) + + .then(() => apis.user.nodes.createFiles([ fileName2 ])) + .then(resp => file2Id = resp.data.entry.id) + + .then(() => loginPage.load()) + .then(() => loginPage.loginWith(username)) + .then(done); + }); + + beforeEach(done => { + recentFilesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES) + .then(() => dataTable.isEmptyList()) + .then(empty => { + if (empty) { + browser.sleep(3000); + recentFilesPage.refresh(); + } + }) + .then(() => dataTable.waitForHeader()) + .then(done); + }); + + afterAll(done => { + Promise.all([ + apis.user.nodes.deleteNodesById([ folderId, file2Id ]), + logoutPage.load() + ]) + .then(done); + }); + + it('has the correct columns', () => { + const labels = [ 'Name', 'Location', 'Size', 'Modified' ]; + const elements = labels.map(label => dataTable.getColumnHeaderByLabel(label)); + + expect(dataTable.getColumnHeaders().count()).toBe(4 + 1, 'Incorrect number of columns'); + + elements.forEach((element, index) => { + expect(element.isPresent()).toBe(true, `"${labels[index]}" is missing`); + }); + }); + + it('displays the files added by the current user in the last 30 days', () => { + expect(dataTable.countRows()).toEqual(2, 'Incorrect number of sites displayed'); + expect(dataTable.getRowByName(fileName1).isPresent()).toBe(true, `${fileName1} not displayed`); + expect(dataTable.getRowByName(fileName2).isPresent()).toBe(true, `${fileName2} not displayed`); + }); + + it('Location column displays the parent folder of the file', () => { + const itemsLocations = { + [fileName2]: 'Personal Files', + [fileName1]: folderName + }; + + dataTable.getRows() + .map((row) => { + return row.all(dataTable.cell).map(cell => cell.getText()); + }) + .then((rowCells) => { + return rowCells.reduce((acc, cell) => { + acc[cell[1]] = cell[2]; + return acc; + }, {}); + }) + .then((recentList) => { + Object.keys(itemsLocations).forEach((item) => { + expect(recentList[item]).toEqual(itemsLocations[item]); + }); + }); + }); + + it('Location column redirect - file in user Home', () => { + dataTable.clickItemLocation(fileName1) + .then(() => breadcrumb.getCurrentItemName()) + .then(name => { + expect(name).toBe(folderName); + }) + .then(() => breadcrumb.getFirstItemName()) + .then(name => { + expect(name).toBe('Personal Files'); + }); + }); + + it('Location column redirect - file in folder', () => { + dataTable.clickItemLocation(fileName2) + .then(() => breadcrumb.getCurrentItemName()) + .then(name => { + expect(name).toBe('Personal Files'); + }); + }); +}); diff --git a/e2e/suites/list-views/shared-files.test.ts b/e2e/suites/list-views/shared-files.test.ts new file mode 100644 index 000000000..1eea1c2f6 --- /dev/null +++ b/e2e/suites/list-views/shared-files.test.ts @@ -0,0 +1,147 @@ +/*! + * @license + * Copyright 2017 Alfresco Software, Ltd. + * + * 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. + */ + +import { browser, by } from 'protractor'; + +import { APP_ROUTES, SITE_VISIBILITY, SITE_ROLES, SIDEBAR_LABELS } from '../../configs'; +import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; +import { Utils } from '../../utilities/utils'; +import { RepoClient, NodeContentTree } from '../../utilities/repo-client/repo-client'; + +describe('Shared Files', () => { + const username = `user-${Utils.random()}`; + const password = username; + + const siteName = `site-${Utils.random()}`; + const fileAdmin = `file-${Utils.random()}.txt`; + + const folderUser = `folder-${Utils.random()}`; + const fileUser = `file-${Utils.random()}.txt`; + + const apis = { + admin: new RepoClient(), + user: new RepoClient(username, password) + }; + + const loginPage = new LoginPage(); + const logoutPage = new LogoutPage(); + const sharedFilesPage = new BrowsingPage(); + const { dataTable } = sharedFilesPage; + const { breadcrumb } = sharedFilesPage.toolbar; + + beforeAll(done => { + apis.admin.people.createUser(username) + .then(() => apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC)) + .then(() => apis.admin.sites.addSiteMember(siteName, username, SITE_ROLES.SITE_CONSUMER)) + .then(() => apis.admin.nodes.createFiles([ fileAdmin ], `Sites/${siteName}/documentLibrary`)) + .then(resp => apis.admin.shared.shareFileById(resp.data.entry.id)) + + .then(() => apis.user.nodes.createFolders([ folderUser ])) + .then(() => apis.user.nodes.createFiles([ fileUser ], folderUser)) + .then(resp => apis.user.shared.shareFileById(resp.data.entry.id)) + + .then(() => loginPage.load()) + .then(() => loginPage.loginWith(username)) + .then(done); + }); + + beforeEach(done => { + sharedFilesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES) + .then(() => dataTable.isEmptyList()) + .then(empty => { + if (empty) { + browser.sleep(5000); + sharedFilesPage.refresh(); + } + }) + .then(() => dataTable.waitForHeader()) + .then(done); + }); + + afterAll(done => { + Promise.all([ + apis.admin.sites.deleteSite(siteName), + apis.user.nodes.deleteNodes([ folderUser ]), + logoutPage.load() + ]) + .then(done); + }); + + it('has the correct columns', () => { + const labels = [ 'Name', 'Location', 'Size', 'Modified', 'Modified by', 'Shared by' ]; + const elements = labels.map(label => dataTable.getColumnHeaderByLabel(label)); + + expect(dataTable.getColumnHeaders().count()).toBe(6 + 1, 'Incorrect number of columns'); + + elements.forEach((element, index) => { + expect(element.isPresent()).toBe(true, `"${labels[index]}" is missing`); + }); + }); + + it('displays the files shared by everyone', () => { + expect(dataTable.countRows()).toEqual(2, 'Incorrect number of items displayed'); + expect(dataTable.getRowByName(fileAdmin).isPresent()).toBe(true, `${fileAdmin} not displayed`); + expect(dataTable.getRowByName(fileUser).isPresent()).toBe(true, `${fileUser} not displayed`); + }); + + it('Location column displays the parent folder of the file', () => { + const itemsLocations = { + [fileAdmin]: siteName, + [fileUser]: folderUser + }; + + dataTable.getRows() + .map((row) => { + return row.all(dataTable.cell).map(cell => cell.getText()); + }) + .then((rowCells) => { + return rowCells.reduce((acc, cell) => { + acc[cell[1]] = cell[2]; + return acc; + }, {}); + }) + .then((recentList) => { + Object.keys(itemsLocations).forEach((item) => { + expect(recentList[item]).toEqual(itemsLocations[item]); + }); + }); + }); + + it('Location column redirect - file in user Home', () => { + dataTable.clickItemLocation(fileUser) + .then(() => breadcrumb.getCurrentItemName()) + .then(name => { + expect(name).toBe(folderUser); + }) + .then(() => breadcrumb.getFirstItemName()) + .then(name => { + expect(name).toBe('Personal Files'); + }); + }); + + it('Location column redirect - file in site', () => { + dataTable.clickItemLocation(fileAdmin) + .then(() => breadcrumb.getCurrentItemName()) + .then(name => { + expect(name).toBe(siteName); + }) + .then(() => breadcrumb.getFirstItemName()) + .then(name => { + expect(name).toBe('File Libraries'); + }); + }); +}); diff --git a/e2e/suites/list-views/trash.test.ts b/e2e/suites/list-views/trash.test.ts index 167a194a5..8fb1e2d5e 100644 --- a/e2e/suites/list-views/trash.test.ts +++ b/e2e/suites/list-views/trash.test.ts @@ -48,6 +48,7 @@ describe('Trash', () => { const logoutPage = new LogoutPage(); const trashPage = new BrowsingPage(); const { dataTable } = trashPage; + const { breadcrumb } = trashPage.toolbar; beforeAll(done => { apis.admin.people.createUser(username) @@ -64,11 +65,8 @@ describe('Trash', () => { .then(() => apis.user.nodes.createFolders([ folderUser ]) .then(resp => folderUserId = resp.data.entry.id)) - .then(() => apis.admin.nodes.deleteNodeById(fileAdminId, false)) - .then(() => apis.admin.nodes.deleteNodeById(folderAdminId, false)) - .then(() => apis.user.nodes.deleteNodeById(fileSiteId, false)) - .then(() => apis.user.nodes.deleteNodeById(fileUserId, false)) - .then(() => apis.user.nodes.deleteNodeById(folderUserId, false)) + .then(() => apis.admin.nodes.deleteNodesById([ fileAdminId, folderAdminId ], false)) + .then(() => apis.user.nodes.deleteNodesById([ fileSiteId, fileUserId, folderUserId ], false)) .then(done); }); @@ -76,11 +74,7 @@ describe('Trash', () => { afterAll(done => { Promise.all([ apis.admin.sites.deleteSite(siteName), - apis.admin.trashcan.permanentlyDelete(fileAdminId), - apis.admin.trashcan.permanentlyDelete(folderAdminId), - apis.admin.trashcan.permanentlyDelete(fileSiteId), - apis.user.trashcan.permanentlyDelete(fileUserId), - apis.user.trashcan.permanentlyDelete(folderUserId) + apis.admin.trashcan.emptyTrash() ]) .then(done); }); @@ -91,7 +85,11 @@ describe('Trash', () => { beforeAll(done => { loginPage.load() .then(() => loginPage.loginWithAdmin()) - .then(() => trashPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH)) + .then(done); + }); + + beforeEach(done => { + trashPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH) .then(() => dataTable.waitForHeader()) .then(done); }); @@ -126,7 +124,11 @@ describe('Trash', () => { beforeAll(done => { loginPage.load() .then(() => loginPage.loginWith(username)) - .then(() => trashPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH)) + .then(done); + }); + + beforeEach(done => { + trashPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH) .then(() => dataTable.waitForHeader()) .then(done); }); @@ -152,6 +154,27 @@ describe('Trash', () => { expect(dataTable.getRowByName(fileSite).isPresent()).toBe(true, `${fileSite} not displayed`); expect(dataTable.getRowByName(fileUser).isPresent()).toBe(true, `${fileUser} not displayed`); expect(dataTable.getRowByName(folderUser).isPresent()).toBe(true, `${folderUser} not displayed`); + expect(dataTable.getRowByName(fileAdmin).isPresent()).toBe(false, `${fileAdmin} is displayed`); + }); + + it('Location column redirect - file in user Home', () => { + dataTable.clickItemLocation(fileUser) + .then(() => breadcrumb.getCurrentItemName()) + .then(name => { + expect(name).toBe('Personal Files'); + }); + }); + + it('Location column redirect - file in site', () => { + dataTable.clickItemLocation(fileSite) + .then(() => breadcrumb.getCurrentItemName()) + .then(name => { + expect(name).toBe(siteName); + }) + .then(() => breadcrumb.getFirstItemName()) + .then(name => { + expect(name).toBe('File Libraries'); + }); }); }); }); From 53eea3567d9ec02c32579f64b2eff79c218d714f Mon Sep 17 00:00:00 2001 From: Cilibiu Bogdan Date: Mon, 4 Dec 2017 12:49:40 +0200 Subject: [PATCH 44/70] [ACA-413] redirect on AuthGuard (#106) --- src/app/app.routes.ts | 5 +- .../components/login/login.component.spec.ts | 131 +++++------------- src/app/components/login/login.component.ts | 36 +---- 3 files changed, 41 insertions(+), 131 deletions(-) diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index 2ede312a8..acd9e6729 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -129,9 +129,8 @@ export const APP_ROUTES: Routes = [ component: GenericErrorComponent } ], - canActivate: [ - AuthGuardEcm - ] + canActivateChild: [ AuthGuardEcm ], + canActivate: [ AuthGuardEcm ] } ]; diff --git a/src/app/components/login/login.component.spec.ts b/src/app/components/login/login.component.spec.ts index 0f2671257..5da034c50 100644 --- a/src/app/components/login/login.component.spec.ts +++ b/src/app/components/login/login.component.spec.ts @@ -16,120 +16,59 @@ */ import { RouterTestingModule } from '@angular/router/testing'; -import { Router, ActivatedRoute } from '@angular/router'; +import { Router } from '@angular/router'; import { TestBed, async } from '@angular/core/testing'; -import { Observable } from 'rxjs/Rx'; -import { CoreModule, AuthenticationService, UserPreferencesService, LoginModule } from '@alfresco/adf-core'; +import { CoreModule, AuthenticationService, UserPreferencesService } from '@alfresco/adf-core'; import { LoginComponent } from './login.component'; describe('LoginComponent', () => { + let component; + let fixture; + let router; + let userPreference; + let auth; - class TestConfig { - private testBed; - private componentInstance; - private fixture; - - constructor(config: any = {}) { - const routerProvider = { - provide: Router, - useValue: { - navigateByUrl: jasmine.createSpy('navigateByUrl'), - navigate: jasmine.createSpy('navigate') - } - }; - - const authProvider = { - provide: AuthenticationService, - useValue: { - isEcmLoggedIn: jasmine.createSpy('navigateByUrl') - .and.returnValue(config.isEcmLoggedIn || false) - } - }; - - this.testBed = TestBed.configureTestingModule({ - imports: [ - RouterTestingModule, - CoreModule, - LoginModule - ], - declarations: [ - LoginComponent - ], - providers: [ - routerProvider, - authProvider, - { - provide: ActivatedRoute, - useValue: { - params: Observable.of({ redirect: config.redirect }) - } - } - ] - }); - - this.fixture = TestBed.createComponent(LoginComponent); - this.componentInstance = this.fixture.componentInstance; - this.fixture.detectChanges(); - } - - get userPrefService() { - return TestBed.get(UserPreferencesService); - } - - get authService() { - return TestBed.get(AuthenticationService); - } - - get routerService() { - return TestBed.get(Router); - } - - get component() { - return this.componentInstance; - } - } - - it('load app when user is already logged in', () => { - const testConfig = new TestConfig({ - isEcmLoggedIn: true + beforeEach(async(() => { + TestBed.configureTestingModule({ + imports: [ + RouterTestingModule, + CoreModule + ], + declarations: [ + LoginComponent + ] }); - expect(testConfig.routerService.navigateByUrl).toHaveBeenCalled(); - }); + fixture = TestBed.createComponent(LoginComponent); + component = fixture.componentInstance; - it('requires user to be logged in', () => { - const testConfig = new TestConfig({ - isEcmLoggedIn: false, - redirect: '/personal-files' - }); + router = TestBed.get(Router); + auth = TestBed.get(AuthenticationService); + userPreference = TestBed.get(UserPreferencesService); - expect(testConfig.routerService.navigate).toHaveBeenCalledWith(['/login', {}]); + fixture.detectChanges(); + })); + + beforeEach(() => { + spyOn(userPreference, 'setStoragePrefix'); + spyOn(router, 'navigateByUrl'); + spyOn(auth, 'getRedirectUrl').and.returnValue('some-url'); }); describe('onLoginSuccess()', () => { - let testConfig; - beforeEach(() => { - testConfig = new TestConfig({ - isEcmLoggedIn: false, - redirect: 'somewhere-over-the-rainbow' - }); + it('should redirect on success', () => { + component.onLoginSuccess(); + + expect(router.navigateByUrl).toHaveBeenCalledWith('some-url'); }); - it('redirects on success', () => { - testConfig.component.onLoginSuccess(); + it('should set user preference store prefix', () => { - expect(testConfig.routerService.navigateByUrl).toHaveBeenCalledWith('somewhere-over-the-rainbow'); - }); + component.onLoginSuccess({ username: 'bogus' }); - it('sets user preference store prefix', () => { - const service = testConfig.userPrefService; - spyOn(service, 'setStoragePrefix').and.stub(); - - testConfig.component.onLoginSuccess({ username: 'bogus' }); - - expect(service.setStoragePrefix).toHaveBeenCalledWith('bogus'); + expect(userPreference.setStoragePrefix).toHaveBeenCalledWith('bogus'); }); }); }); diff --git a/src/app/components/login/login.component.ts b/src/app/components/login/login.component.ts index 14636f13b..e9459c797 100644 --- a/src/app/components/login/login.component.ts +++ b/src/app/components/login/login.component.ts @@ -16,53 +16,25 @@ */ import { Component } from '@angular/core'; -import { Router, ActivatedRoute } from '@angular/router'; -import { Validators } from '@angular/forms'; +import { Router } from '@angular/router'; import { AuthenticationService, UserPreferencesService } from '@alfresco/adf-core'; -const skipRedirectUrls: string[] = [ - '/logout', - '/personal-files' -]; - @Component({ templateUrl: './login.component.html' }) export class LoginComponent { - private redirectUrl = ''; - constructor( private router: Router, - private route: ActivatedRoute, private auth: AuthenticationService, private userPreferences: UserPreferencesService - ) { - if (auth.isEcmLoggedIn()) { - this.redirect(); - } - - route.params.subscribe((params: any) => { - if (skipRedirectUrls.indexOf(params.redirect) > -1) { - const remainingParams = Object.assign({}, params); - - delete remainingParams.redirect; - - router.navigate(['/login', remainingParams]); - } - - this.redirectUrl = params.redirect; - }); - } - - redirect() { - this.router.navigateByUrl(this.redirectUrl || ''); - } + ) {} onLoginSuccess(data) { if (data && data.username) { this.userPreferences.setStoragePrefix(data.username); } - this.redirect(); + + this.router.navigateByUrl(this.auth.getRedirectUrl()); } } From 23049bb0c38eab0a54661442efaaed2bd0b6dcad Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Tue, 5 Dec 2017 06:37:53 +0000 Subject: [PATCH 45/70] docs update (docker and build sections) (#107) --- docs/build.md | 7 +++++++ docs/docker.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/docs/build.md b/docs/build.md index 2afeb489b..6db7c0a5e 100644 --- a/docs/build.md +++ b/docs/build.md @@ -2,6 +2,13 @@ The Content App is based on [Angular CLI](https://cli.angular.io), and you can use all the commands, generators and blueprints supported by the CLI. +## Prerequisites + +- [Node.js](https://nodejs.org/en/) 8.9.1 or later LTS version +- [Angular CLI](https://cli.angular.io/) + +## Cloning and running + Use the following commands to clone a copy of the project, install dependencies and run it. ```sh diff --git a/docs/docker.md b/docs/docker.md index 8f24330cc..3d98a5f05 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -86,3 +86,51 @@ To perform a cleanup operation, use the next command: ```sh docker-compose down --rmi all ``` + +## Publishing to Docker Hub + +First of all, if you do not have a Docker Hub account, you can register here: https://hub.docker.com/, the registration is absolutely free. + +Next, it is recommended that you get a clean build of the application: + +```sh +npm install +npm run build:dev +``` + +The commands above are going to produce a fresh build that is stored in the `dist` folder. +At this point, you can make modifications to the final code in the `dist` folder if needed. +For example you may want to change the `app.config.json` file content. + +Now you can build your first version of the image: + +```sh +docker image build -t myaccount/content-app:1.0 . +``` + +Where `myaccount` is usually your Docker Hub account name. + +

+Please note the ending "." symbol at the end of the command. It instructs the Docker to take current folder where the `Dockerfile` is located. +

+ +To publish the newly created image use the next command: + +```sh +docker push myaccount/content-app:1.0 +``` + +## Running from Docker Hub + +In order to quickly test the published image, or run it on another machine, use the following command: + +```sh +docker container run -p 80:80 --rm myaccount/content-app:1.0 +``` + +The `--rm` switch means the Docker will cleanup the container and image data once you stop the process. + +

+You may also want to remove your local image before trying out the Docker Hub:
+`docker image rm myaccount/content-app:1.0` +

From dc36ea7ea4d50d2fb9d39f25e67d6f68fa805307 Mon Sep 17 00:00:00 2001 From: Cilibiu Bogdan Date: Tue, 5 Dec 2017 11:22:24 +0200 Subject: [PATCH 46/70] [ACA-987] File Libraries - render Site ID when 2 sites have identical name (#109) --- src/app/components/libraries/libraries.component.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/app/components/libraries/libraries.component.html b/src/app/components/libraries/libraries.component.html index a23bcfc1c..cf458c607 100644 --- a/src/app/components/libraries/libraries.component.html +++ b/src/app/components/libraries/libraries.component.html @@ -40,6 +40,11 @@ class="adf-data-table-cell--ellipsis__name" key="title" title="APP.DOCUMENT_LIST.COLUMNS.TITLE"> + + + {{ makeLibraryTitle(context.row.obj.entry) }} + + Date: Tue, 5 Dec 2017 11:23:11 +0200 Subject: [PATCH 47/70] [ACA-969] Incorrect redirect when pressing browser Back after Login (#108) --- .../components/login/login.component.spec.ts | 27 +++++++++++++++---- src/app/components/login/login.component.ts | 13 ++++++--- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/app/components/login/login.component.spec.ts b/src/app/components/login/login.component.spec.ts index 5da034c50..46593234d 100644 --- a/src/app/components/login/login.component.spec.ts +++ b/src/app/components/login/login.component.spec.ts @@ -46,26 +46,43 @@ describe('LoginComponent', () => { router = TestBed.get(Router); auth = TestBed.get(AuthenticationService); userPreference = TestBed.get(UserPreferencesService); - - fixture.detectChanges(); })); beforeEach(() => { spyOn(userPreference, 'setStoragePrefix'); spyOn(router, 'navigateByUrl'); - spyOn(auth, 'getRedirectUrl').and.returnValue('some-url'); + spyOn(auth, 'getRedirectUrl').and.returnValue('/some-url'); + }); + + describe('OnInit()', () => { + it('should perform normal login when user is not logged in', () => { + spyOn(auth, 'isEcmLoggedIn').and.returnValue(false); + fixture.detectChanges(); + + expect(router.navigateByUrl).not.toHaveBeenCalled(); + }); + + it('should redirect when user is logged in', () => { + spyOn(auth, 'isEcmLoggedIn').and.returnValue(true); + fixture.detectChanges(); + + expect(router.navigateByUrl).toHaveBeenCalledWith('/some-url'); + }); }); describe('onLoginSuccess()', () => { + beforeEach(() => { + spyOn(auth, 'isEcmLoggedIn').and.returnValue(false); + fixture.detectChanges(); + }); it('should redirect on success', () => { component.onLoginSuccess(); - expect(router.navigateByUrl).toHaveBeenCalledWith('some-url'); + expect(router.navigateByUrl).toHaveBeenCalledWith('/personal-files'); }); it('should set user preference store prefix', () => { - component.onLoginSuccess({ username: 'bogus' }); expect(userPreference.setStoragePrefix).toHaveBeenCalledWith('bogus'); diff --git a/src/app/components/login/login.component.ts b/src/app/components/login/login.component.ts index e9459c797..a06f1c8ff 100644 --- a/src/app/components/login/login.component.ts +++ b/src/app/components/login/login.component.ts @@ -15,26 +15,31 @@ * limitations under the License. */ -import { Component } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; import { AuthenticationService, UserPreferencesService } from '@alfresco/adf-core'; @Component({ templateUrl: './login.component.html' }) -export class LoginComponent { - +export class LoginComponent implements OnInit { constructor( private router: Router, private auth: AuthenticationService, private userPreferences: UserPreferencesService ) {} + ngOnInit() { + if (this.auth.isEcmLoggedIn()) { + this.router.navigateByUrl(this.auth.getRedirectUrl() || ''); + } + } + onLoginSuccess(data) { if (data && data.username) { this.userPreferences.setStoragePrefix(data.username); } - this.router.navigateByUrl(this.auth.getRedirectUrl()); + this.router.navigateByUrl('/personal-files'); } } From 38b4a836739878301030f8fb1512e1e5a3d8c933 Mon Sep 17 00:00:00 2001 From: suzanadirla Date: Tue, 5 Dec 2017 19:17:26 +0200 Subject: [PATCH 48/70] =?UTF-8?q?[ACA-903]=20Working=20copy=20is=20incorre?= =?UTF-8?q?ctly=20displayed=20for=20a=20file=20locked=20for=E2=80=A6=20(#1?= =?UTF-8?q?10)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [ACA-903] Working copy is incorrectly displayed for a file locked for offline editing -use locked icon for locked nodes -do not allow locked nodes to be selected * [ACA-903] fix failing tests --- src/app/components/files/files.component.html | 4 +- .../components/files/files.component.spec.ts | 23 +++++- src/app/components/files/files.component.ts | 71 ++++++++++++++++-- src/assets/images/ic_lock_black_24dp_1x.png | Bin 0 -> 205 bytes 4 files changed, 85 insertions(+), 13 deletions(-) create mode 100644 src/assets/images/ic_lock_black_24dp_1x.png diff --git a/src/app/components/files/files.component.html b/src/app/components/files/files.component.html index 54cca4ee1..e327c47e1 100644 --- a/src/app/components/files/files.component.html +++ b/src/app/components/files/files.component.html @@ -98,8 +98,10 @@ [contentActions]="false" [navigate]="false" [selectionMode]="'multiple'" + [imageResolver]="imageResolver" - (node-dblclick)="onNodeDoubleClick($event.detail?.node?.entry)"> + (node-dblclick)="onNodeDoubleClick($event)" + (node-select)="onNodeSelect($event)"> { it('calls getNode api with node id', () => { component.fetchNodes('nodeId'); - expect(nodesApi.getNodeChildren).toHaveBeenCalledWith('nodeId', {}); + expect(nodesApi.getNodeChildren).toHaveBeenCalledWith('nodeId', jasmine.any(Object)); }); }); @@ -303,7 +303,14 @@ describe('FilesComponent', () => { spyOn(router, 'navigate').and.stub(); node.isFile = true; - component.onNodeDoubleClick( node); + const event: any = { + detail: { + node: { + entry: node + } + } + }; + component.onNodeDoubleClick(event); expect(router.navigate).toHaveBeenCalledWith(['/preview', node.id]); }); @@ -312,9 +319,17 @@ describe('FilesComponent', () => { spyOn(component, 'navigate').and.stub(); node.isFolder = true; - component.onNodeDoubleClick( node); - expect(component.navigate).toHaveBeenCalled(); + const event: any = { + detail: { + node: { + entry: node + } + } + }; + component.onNodeDoubleClick(event); + + expect(component.navigate).toHaveBeenCalledWith(node.id); }); }); diff --git a/src/app/components/files/files.component.ts b/src/app/components/files/files.component.ts index 7b8847f02..a2c79d521 100644 --- a/src/app/components/files/files.component.ts +++ b/src/app/components/files/files.component.ts @@ -16,13 +16,14 @@ */ import { Observable, Subscription } from 'rxjs/Rx'; -import { Component, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core'; +import { Component, OnInit, OnDestroy, ChangeDetectorRef, ViewChild } from '@angular/core'; import { Router, ActivatedRoute, Params } from '@angular/router'; import { MinimalNodeEntity, MinimalNodeEntryEntity, PathElementEntity, NodePaging, PathElement } from 'alfresco-js-api'; import { UploadService, FileUploadEvent, NodesApiService, ContentService, AlfrescoApiService, UserPreferencesService } from '@alfresco/adf-core'; +import { DocumentListComponent, ShareDataRow } from '@alfresco/adf-content-services'; import { BrowsingFilesService } from '../../common/services/browsing-files.service'; import { ContentManagementService } from '../../common/services/content-management.service'; @@ -34,6 +35,9 @@ import { PageComponent } from '../page.component'; templateUrl: './files.component.html' }) export class FilesComponent extends PageComponent implements OnInit, OnDestroy { + @ViewChild(DocumentListComponent) + documentList: DocumentListComponent; + private routeData: any = {}; isValidPath = true; @@ -105,7 +109,13 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { } fetchNodes(parentNodeId?: string, options: any = {}): Observable { - return this.nodesApi.getNodeChildren(parentNodeId, options); + const defaults = { + include: [ 'isLocked' ] + }; + + const queryOptions = Object.assign(defaults, options); + + return this.nodesApi.getNodeChildren(parentNodeId, queryOptions); } navigate(nodeId: string = null) { @@ -120,14 +130,50 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { }); } - onNodeDoubleClick(node: MinimalNodeEntryEntity) { - if (node) { - if (node.isFolder) { - this.navigate(node.id); + onNodeDoubleClick(event) { + if (!!event.detail && !!event.detail.node) { + + const node: MinimalNodeEntryEntity = event.detail.node.entry; + if (node) { + + if (node.isFolder) { + this.navigate(node.id); + } + + if (node.isLocked) { + event.preventDefault(); + + } else if (node.isFile) { + this.router.navigate(['/preview', node.id]); + } } - if (node.isFile) { - this.router.navigate(['/preview', node.id]); + } + } + + onNodeSelect(event) { + if (!!event.detail && !!event.detail.node) { + + const node: MinimalNodeEntryEntity = event.detail.node.entry; + if (node && node.isLocked) { + this.unSelectLockedNodes(); + } + } + } + + unSelectLockedNodes() { + this.documentList.selection = this.documentList.selection.filter(item => !item.entry.isLocked); + + const dataTable = this.documentList.dataTable; + if (dataTable && dataTable.data) { + const rows = dataTable.data.getRows(); + + if (rows && rows.length > 0) { + rows.forEach(r => { + if (r.getValue('isLocked')) { + r.isSelected = false; + } + }); } } } @@ -267,4 +313,13 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { } return false; } + + private imageResolver(row: ShareDataRow): string | null { + const entry: MinimalNodeEntryEntity = row.node.entry; + + if (entry.isLocked) { + return '/assets/images/ic_lock_black_24dp_1x.png'; + } + return null; + } } diff --git a/src/assets/images/ic_lock_black_24dp_1x.png b/src/assets/images/ic_lock_black_24dp_1x.png new file mode 100644 index 0000000000000000000000000000000000000000..3a4a1586e538d8c74a1d8b5c653911118754ab22 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iDV{ElAr*{gFZgpcB?z>AJbv!M zd~436r)!(~ggneO)?aecJ>>fEQ?8kl0`GmNRrfc~EjQL#xF~VUxg3rS?$;7d-fCR$ zbmv6pnkMT-N3JRqsbwGGyne#rNXpS>b-luevE5?QIXf5ef1PsX#?Ij5J%8$KEd(Y9 zwDTu1T>9Y1 Date: Tue, 5 Dec 2017 21:11:40 +0200 Subject: [PATCH 49/70] [ACA-1008] Customize the dropdown on copy/move destination picker from node-actions.service (#112) --- src/app/common/services/node-actions.service.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/app/common/services/node-actions.service.ts b/src/app/common/services/node-actions.service.ts index f8612710a..21d4e17a8 100644 --- a/src/app/common/services/node-actions.service.ts +++ b/src/app/common/services/node-actions.service.ts @@ -176,12 +176,17 @@ export class NodeActionsService { const data: ContentNodeSelectorComponentData = { title: `${action} ${nodeEntryName}to ...`, currentFolderId: currentParentFolderId, + actionName: action, + dropdownHideMyFiles: true, + dropdownSiteList: [ + {title: 'APP.BROWSE.PERSONAL.SIDENAV_LINK.LABEL', guid: '-my-'}, + {title: 'APP.BROWSE.LIBRARIES.SIDENAV_LINK.LABEL', guid: '-mysites-'}], rowFilter: this.rowFilter.bind(this), imageResolver: this.imageResolver.bind(this), select: new EventEmitter() }; - this.dialog.open(ContentNodeSelectorComponent, { + this.dialog.open(ContentNodeSelectorComponent, { data, panelClass: 'adf-content-node-selector-dialog', width: '630px' From da5514bdfbdbf5871ba870192d7af31a1107e3e5 Mon Sep 17 00:00:00 2001 From: Cilibiu Bogdan Date: Tue, 5 Dec 2017 22:04:31 +0200 Subject: [PATCH 50/70] [ACA-737] Tooltips are missing for file/folder name cell (#113) --- src/app/components/favorites/favorites.component.html | 3 +++ src/app/components/files/files.component.html | 3 +++ src/app/components/libraries/libraries.component.html | 2 +- src/app/components/recent-files/recent-files.component.html | 3 +++ src/app/components/shared-files/shared-files.component.html | 3 +++ src/app/components/trashcan/trashcan.component.html | 3 +++ 6 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/app/components/favorites/favorites.component.html b/src/app/components/favorites/favorites.component.html index d9ab25982..5233e3aca 100644 --- a/src/app/components/favorites/favorites.component.html +++ b/src/app/components/favorites/favorites.component.html @@ -107,6 +107,9 @@ class="adf-data-table-cell--ellipsis__name" key="name" title="APP.DOCUMENT_LIST.COLUMNS.NAME"> + + {{ value }} + + + {{ value }} + - + {{ makeLibraryTitle(context.row.obj.entry) }} diff --git a/src/app/components/recent-files/recent-files.component.html b/src/app/components/recent-files/recent-files.component.html index 891fcaca9..6715e5e19 100644 --- a/src/app/components/recent-files/recent-files.component.html +++ b/src/app/components/recent-files/recent-files.component.html @@ -101,6 +101,9 @@ class="adf-data-table-cell--ellipsis__name" key="name" title="APP.DOCUMENT_LIST.COLUMNS.NAME"> + + {{ value }} + + + {{ value }} + + + {{ value }} + Date: Wed, 6 Dec 2017 07:59:40 +0200 Subject: [PATCH 51/70] [ACA-1043] Document List - Move and Delete actions are missing (#115) --- src/app/components/files/files.component.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/components/files/files.component.ts b/src/app/components/files/files.component.ts index a2c79d521..c8480b033 100644 --- a/src/app/components/files/files.component.ts +++ b/src/app/components/files/files.component.ts @@ -110,10 +110,10 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { fetchNodes(parentNodeId?: string, options: any = {}): Observable { const defaults = { - include: [ 'isLocked' ] + include: [ 'isLocked', 'path', 'properties', 'allowableOperations' ] }; - const queryOptions = Object.assign(defaults, options); + const queryOptions = Object.assign({}, defaults, options); return this.nodesApi.getNodeChildren(parentNodeId, queryOptions); } From 358ffe219760fc95f3ddd541034d0134f4cb123b Mon Sep 17 00:00:00 2001 From: Cilibiu Bogdan Date: Wed, 6 Dec 2017 08:10:31 +0200 Subject: [PATCH 52/70] [ACA] Header - custom color (#114) * custom header color * use SecurityContext.STYLE --- src/app.config.json | 1 + src/app/components/header/header.component.html | 2 +- src/app/components/header/header.component.scss | 2 +- src/app/components/header/header.component.ts | 14 ++++++++++++-- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/app.config.json b/src/app.config.json index e5ea19e7f..d86f8657f 100644 --- a/src/app.config.json +++ b/src/app.config.json @@ -5,6 +5,7 @@ "build": "1234" }, "logo": "/assets/images/alfresco-logo-white.svg", + "headerColor": "#2196F3", "languagePicker": false, "document-list": { "supportedPageSizes": [ diff --git a/src/app/components/header/header.component.html b/src/app/components/header/header.component.html index d6d641262..a289d2284 100644 --- a/src/app/components/header/header.component.html +++ b/src/app/components/header/header.component.html @@ -1,4 +1,4 @@ - +
this.appConfig.get('application.name'); @@ -36,4 +41,9 @@ export class HeaderComponent { get logo() { return this.appConfig.get('logo', this.defaultPath); } + + get backgroundColor() { + const color = this.appConfig.get('headerColor', this.defaultBackgroundColor); + return this.sanitizer.sanitize(SecurityContext.STYLE, color); + } } From 860b637c9c99a7a2cf53df209dbca6fa09038fb8 Mon Sep 17 00:00:00 2001 From: suzanadirla Date: Wed, 6 Dec 2017 13:46:21 +0200 Subject: [PATCH 53/70] [ACA-903] anything you use in template must not be private (#117) --- src/app/components/files/files.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/components/files/files.component.ts b/src/app/components/files/files.component.ts index c8480b033..03862efab 100644 --- a/src/app/components/files/files.component.ts +++ b/src/app/components/files/files.component.ts @@ -314,7 +314,7 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { return false; } - private imageResolver(row: ShareDataRow): string | null { + imageResolver(row: ShareDataRow): string | null { const entry: MinimalNodeEntryEntity = row.node.entry; if (entry.isLocked) { From 9681b459f75f144c32661f1af7bd3f985288f61d Mon Sep 17 00:00:00 2001 From: Adina Parpalita Date: Wed, 6 Dec 2017 14:32:30 +0200 Subject: [PATCH 54/70] [e2e] fix selectors (#116) * fix selectors start chrome headless * use case insensitive --- e2e/components/data-table/data-table.ts | 6 +++--- e2e/components/dialog/create-edit-folder-dialog.ts | 4 ++-- e2e/components/sidenav/sidenav.ts | 2 +- e2e/pages/page.ts | 2 +- e2e/suites/list-views/recent-files.test.ts | 2 +- protractor.conf.js | 3 ++- 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/e2e/components/data-table/data-table.ts b/e2e/components/data-table/data-table.ts index 85919770f..5ed9adee3 100644 --- a/e2e/components/data-table/data-table.ts +++ b/e2e/components/data-table/data-table.ts @@ -106,7 +106,7 @@ export class DataTable extends Component { } getRowByName(name: string): ElementFinder { - return this.body.element(by.css(`adf-datatable-cell [title="${name}"]`)); + return this.body.element(by.cssContainingText(`.adf-data-table-cell`, name)); } countRows(): promise.Promise { @@ -114,7 +114,7 @@ export class DataTable extends Component { } // Navigation/selection methods - doubleClickOnItemName(name: string): promise.Promise { + doubleClickOnItemName(name: string): promise.Promise { const dblClick = browser.actions() .mouseMove(this.getRowByName(name)) .click() @@ -123,7 +123,7 @@ export class DataTable extends Component { return dblClick.perform(); } - clickOnItemName(name: string): promise.Promise { + clickOnItemName(name: string): promise.Promise { return this.getRowByName(name).click(); } diff --git a/e2e/components/dialog/create-edit-folder-dialog.ts b/e2e/components/dialog/create-edit-folder-dialog.ts index e3ff2f637..dbb1aec84 100644 --- a/e2e/components/dialog/create-edit-folder-dialog.ts +++ b/e2e/components/dialog/create-edit-folder-dialog.ts @@ -24,8 +24,8 @@ export class CreateOrEditFolderDialog extends Component { root: 'adf-folder-dialog', title: '.mat-dialog-title', - nameInput: 'input', - descriptionTextArea: 'textarea', + nameInput: '.mat-input-element[placeholder="Name" i]', + descriptionTextArea: '.mat-input-element[placeholder="Description" i]', button: '.mat-dialog-actions button', validationMessage: '.mat-hint span' }; diff --git a/e2e/components/sidenav/sidenav.ts b/e2e/components/sidenav/sidenav.ts index 53590c9ca..9d31bef48 100644 --- a/e2e/components/sidenav/sidenav.ts +++ b/e2e/components/sidenav/sidenav.ts @@ -54,7 +54,7 @@ export class Sidenav extends Component { return this.component.element(by.cssContainingText(Sidenav.selectors.link, label)); } - navigateToLinkByLabel(label: string): promise.Promise { + navigateToLinkByLabel(label: string): promise.Promise { return this.getLinkByLabel(label).click(); } } diff --git a/e2e/pages/page.ts b/e2e/pages/page.ts index 7b30f62b8..0867bfa45 100644 --- a/e2e/pages/page.ts +++ b/e2e/pages/page.ts @@ -19,7 +19,7 @@ import { browser, element, by, ElementFinder, promise, ExpectedConditions as EC import { BROWSER_WAIT_TIMEOUT } from './../configs'; export abstract class Page { - private static USE_HASH_STRATEGY = true; + private static USE_HASH_STRATEGY = false; private locators = { app: by.css('app-root'), diff --git a/e2e/suites/list-views/recent-files.test.ts b/e2e/suites/list-views/recent-files.test.ts index 27b43f7ff..361c666a3 100644 --- a/e2e/suites/list-views/recent-files.test.ts +++ b/e2e/suites/list-views/recent-files.test.ts @@ -63,7 +63,7 @@ describe('Recent Files', () => { .then(() => dataTable.isEmptyList()) .then(empty => { if (empty) { - browser.sleep(3000); + browser.sleep(5000); recentFilesPage.refresh(); } }) diff --git a/protractor.conf.js b/protractor.conf.js index e223a8b37..ba46ec01b 100644 --- a/protractor.conf.js +++ b/protractor.conf.js @@ -27,7 +27,8 @@ exports.config = { chromeOptions: { prefs: { 'credentials_enable_service': false - } + }, + args: [ '--incognito', '--headless' ] } }, From 77882e5ab9bdc356fe249f1c033172f6e9c13357 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Wed, 6 Dec 2017 14:28:51 +0000 Subject: [PATCH 55/70] add missing language to the picker --- src/app.config.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/app.config.json b/src/app.config.json index d86f8657f..6356fcf58 100644 --- a/src/app.config.json +++ b/src/app.config.json @@ -122,6 +122,10 @@ { "key": "ru", "label": "Russian" + }, + { + "key": "zh-CN", + "label": "Simplified Chinese" } ] } From 6625ddf845ae3651c4fab7df93d90bb516b30945 Mon Sep 17 00:00:00 2001 From: Cilibiu Bogdan Date: Wed, 6 Dec 2017 20:16:48 +0200 Subject: [PATCH 56/70] [ACA-1046] Breadcrumb - explicit text color (#119) --- src/app/ui/overrides/_breadcrumb.scss | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/ui/overrides/_breadcrumb.scss b/src/app/ui/overrides/_breadcrumb.scss index 0e33f840c..035d66e23 100644 --- a/src/app/ui/overrides/_breadcrumb.scss +++ b/src/app/ui/overrides/_breadcrumb.scss @@ -1,5 +1,6 @@ -@import '../variables'; +@import 'variables'; .adf-breadcrumb { + color: $alfresco-secondary-text-color; width: 0; } From 8424fc8cdbde83dfc8eea8252410740ce38b51ff Mon Sep 17 00:00:00 2001 From: Cilibiu Bogdan Date: Wed, 6 Dec 2017 20:29:41 +0200 Subject: [PATCH 57/70] [ACA-1045] use ADF favorite node directive (#118) --- src/app/common/common.module.ts | 4 +- .../node-favorite.directive.spec.ts | 331 ------------------ .../directives/node-favorite.directive.ts | 181 ---------- .../services/content-management.service.ts | 1 - .../favorites/favorites.component.html | 8 +- .../favorites/favorites.component.spec.ts | 9 - .../favorites/favorites.component.ts | 3 +- src/app/components/files/files.component.html | 8 +- .../components/files/files.component.spec.ts | 6 - src/app/components/files/files.component.ts | 1 - .../recent-files/recent-files.component.html | 8 +- .../recent-files.component.spec.ts | 8 - .../recent-files/recent-files.component.ts | 3 +- .../shared-files/shared-files.component.html | 8 +- .../shared-files.component.spec.ts | 8 - .../shared-files/shared-files.component.ts | 3 +- 16 files changed, 20 insertions(+), 570 deletions(-) delete mode 100644 src/app/common/directives/node-favorite.directive.spec.ts delete mode 100644 src/app/common/directives/node-favorite.directive.ts diff --git a/src/app/common/common.module.ts b/src/app/common/common.module.ts index a31010d56..31ce023a4 100644 --- a/src/app/common/common.module.ts +++ b/src/app/common/common.module.ts @@ -29,7 +29,6 @@ import { NodeMoveDirective } from './directives/node-move.directive'; import { DownloadFileDirective } from './directives/node-download.directive'; import { NodeRestoreDirective } from './directives/node-restore.directive'; import { NodePermanentDeleteDirective } from './directives/node-permanent-delete.directive'; -import { NodeFavoriteDirective } from './directives/node-favorite.directive'; import { ContentManagementService } from './services/content-management.service'; import { BrowsingFilesService } from './services/browsing-files.service'; @@ -52,8 +51,7 @@ export function declarations() { NodeMoveDirective, DownloadFileDirective, NodeRestoreDirective, - NodePermanentDeleteDirective, - NodeFavoriteDirective + NodePermanentDeleteDirective ]; } diff --git a/src/app/common/directives/node-favorite.directive.spec.ts b/src/app/common/directives/node-favorite.directive.spec.ts deleted file mode 100644 index 3ddd6490a..000000000 --- a/src/app/common/directives/node-favorite.directive.spec.ts +++ /dev/null @@ -1,331 +0,0 @@ -/*! - * @license - * Copyright 2017 Alfresco Software, Ltd. - * - * 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. - */ - -import { TestBed, ComponentFixture, fakeAsync, tick } from '@angular/core/testing'; -import { By } from '@angular/platform-browser'; -import { AlfrescoApiService, CoreModule, TranslationService, NodesApiService } from '@alfresco/adf-core'; -import { Component, DebugElement } from '@angular/core'; -import { Observable } from 'rxjs/Rx'; - -import { ContentManagementService } from '../services/content-management.service'; -import { NodeFavoriteDirective } from './node-favorite.directive'; - -@Component({ - template: '
' -}) -class TestComponent { - selection; -} - -describe('NodeFavoriteDirective', () => { - let component: TestComponent; - let fixture: ComponentFixture; - let element: DebugElement; - let directiveInstance; - let apiService; - let contentService; - let favoritesApi; - - beforeEach(() => { - TestBed.configureTestingModule({ - imports: [ - CoreModule - ], - declarations: [ - TestComponent, - NodeFavoriteDirective - ], - providers: [ - ContentManagementService, - AlfrescoApiService - ] - }); - - fixture = TestBed.createComponent(TestComponent); - component = fixture.componentInstance; - element = fixture.debugElement.query(By.directive(NodeFavoriteDirective)); - directiveInstance = element.injector.get(NodeFavoriteDirective); - - contentService = TestBed.get(ContentManagementService); - apiService = TestBed.get(AlfrescoApiService); - favoritesApi = apiService.getInstance().core.favoritesApi; - }); - - describe('selection input change event', () => { - it('does not call markFavoritesNodes() if input list is empty', () => { - spyOn(directiveInstance, 'markFavoritesNodes'); - - component.selection = []; - - fixture.detectChanges(); - - expect(directiveInstance.markFavoritesNodes).not.toHaveBeenCalledWith(); - }); - - it('calls markFavoritesNodes() on input change', () => { - spyOn(directiveInstance, 'markFavoritesNodes'); - - component.selection = [{ entry: { id: '1', name: 'name1' } }]; - - fixture.detectChanges(); - - expect(directiveInstance.markFavoritesNodes).toHaveBeenCalledWith(component.selection); - - component.selection = [ - { entry: { id: '1', name: 'name1' } }, - { entry: { id: '1', name: 'name1' } } - ]; - - fixture.detectChanges(); - - expect(directiveInstance.markFavoritesNodes).toHaveBeenCalledWith(component.selection); - }); - }); - - describe('markFavoritesNodes()', () => { - let favoritesApiSpy; - - beforeEach(() => { - favoritesApiSpy = spyOn(favoritesApi, 'getFavorite'); - }); - - it('check each selected node if it is a favorite', fakeAsync(() => { - favoritesApiSpy.and.returnValue(Promise.resolve()); - - component.selection = [ - { entry: { id: '1', name: 'name1' } }, - { entry: { id: '2', name: 'name2' } } - ]; - - fixture.detectChanges(); - tick(); - - expect(favoritesApiSpy.calls.count()).toBe(2); - })); - - it('it does not check processed node when another is unselected', fakeAsync(() => { - favoritesApiSpy.and.returnValue(Promise.resolve()); - - component.selection = [ - { entry: { id: '1', name: 'name1' } }, - { entry: { id: '2', name: 'name2' } } - ]; - - fixture.detectChanges(); - tick(); - - expect(directiveInstance.favorites.length).toBe(2); - expect(favoritesApiSpy.calls.count()).toBe(2); - - favoritesApiSpy.calls.reset(); - - component.selection = [ - { entry: { id: '2', name: 'name2' } } - ]; - - fixture.detectChanges(); - tick(); - - expect(directiveInstance.favorites.length).toBe(1); - expect(favoritesApiSpy).not.toHaveBeenCalled(); - })); - - it('it does not check processed nodes when another is selected', fakeAsync(() => { - favoritesApiSpy.and.returnValue(Promise.resolve()); - - component.selection = [ - { entry: { id: '1', name: 'name1' } }, - { entry: { id: '2', name: 'name2' } } - ]; - - fixture.detectChanges(); - tick(); - - expect(directiveInstance.favorites.length).toBe(2); - expect(favoritesApiSpy.calls.count()).toBe(2); - - favoritesApiSpy.calls.reset(); - - component.selection = [ - { entry: { id: '1', name: 'name1' } }, - { entry: { id: '2', name: 'name2' } }, - { entry: { id: '3', name: 'name3' } } - ]; - - fixture.detectChanges(); - tick(); - - expect(directiveInstance.favorites.length).toBe(3); - expect(favoritesApiSpy.calls.count()).toBe(1); - })); - }); - - describe('toggleFavorite()', () => { - let removeFavoriteSpy; - let addFavoriteSpy; - - beforeEach(() => { - removeFavoriteSpy = spyOn(favoritesApi, 'removeFavoriteSite'); - addFavoriteSpy = spyOn(favoritesApi, 'addFavorite'); - }); - - it('does not perform action if favorites collection is empty', () => { - component.selection = []; - - fixture.detectChanges(); - element.triggerEventHandler('click', null); - - expect(removeFavoriteSpy).not.toHaveBeenCalled(); - expect(addFavoriteSpy).not.toHaveBeenCalled(); - }); - - it('calls addFavorite() if none is a favorite', fakeAsync(() => { - addFavoriteSpy.and.returnValue(Promise.resolve()); - - directiveInstance.favorites = [ - { entry: { id: '1', name: 'name1', isFavorite: false } }, - { entry: { id: '2', name: 'name2', isFavorite: false } } - ]; - - element.triggerEventHandler('click', null); - tick(); - - expect(addFavoriteSpy.calls.argsFor(0)[1].length).toBe(2); - })); - - it('calls addFavorite() on the node that is not a favorite in selection', fakeAsync(() => { - addFavoriteSpy.and.returnValue(Promise.resolve()); - - directiveInstance.favorites = [ - { entry: { id: '1', name: 'name1', isFile: true, isFolder: false, isFavorite: false } }, - { entry: { id: '2', name: 'name2', isFile: true, isFolder: false, isFavorite: true } } - ]; - - element.triggerEventHandler('click', null); - tick(); - - const callArgs = addFavoriteSpy.calls.argsFor(0)[1]; - const callParameter = callArgs[0]; - - expect(callArgs.length).toBe(1); - expect(callParameter.target.file.guid).toBe('1'); - })); - - it('calls removeFavoriteSite() if all are favorites', fakeAsync(() => { - addFavoriteSpy.and.returnValue(Promise.resolve()); - - directiveInstance.favorites = [ - { entry: { id: '1', name: 'name1', isFavorite: true } }, - { entry: { id: '2', name: 'name2', isFavorite: true } } - ]; - - element.triggerEventHandler('click', null); - tick(); - - expect(removeFavoriteSpy.calls.count()).toBe(2); - })); - }); - - describe('getFavorite()', () => { - it('process node as favorite', fakeAsync(() => { - spyOn(favoritesApi, 'getFavorite').and.returnValue(Promise.resolve()); - - component.selection = [ - { entry: { id: '1', name: 'name1' } } - ]; - - fixture.detectChanges(); - tick(); - - expect(directiveInstance.favorites[0].entry.isFavorite).toBe(true); - })); - - it('process node as not a favorite', fakeAsync(() => { - spyOn(favoritesApi, 'getFavorite').and.returnValue(Promise.reject(null)); - - component.selection = [ - { entry: { id: '1', name: 'name1' } } - ]; - - fixture.detectChanges(); - tick(); - - expect(directiveInstance.favorites[0].entry.isFavorite).toBe(false); - })); - }); - - describe('reset()', () => { - beforeEach(() => { - spyOn(favoritesApi, 'removeFavoriteSite').and.returnValue(Promise.resolve()); - spyOn(favoritesApi, 'addFavorite').and.returnValue(Promise.resolve()); - }); - - it('reset favorite collection after addFavorite()', fakeAsync(() => { - directiveInstance.favorites = [ - { entry: { id: '1', name: 'name1', isFavorite: true } } - ]; - - element.triggerEventHandler('click', null); - tick(); - - expect(directiveInstance.favorites.length).toBe(0); - })); - - it('reset favorite collection after removeFavoriteSite()', fakeAsync(() => { - directiveInstance.favorites = [ - { entry: { id: '1', name: 'name1', isFavorite: false } } - ]; - - element.triggerEventHandler('click', null); - tick(); - - expect(directiveInstance.favorites.length).toBe(0); - })); - }); - - describe('hasFavorites()', () => { - it('returns false if favorites collection is empty', () => { - directiveInstance.favorites = []; - - const hasFavorites = directiveInstance.hasFavorites(); - - expect(hasFavorites).toBe(false); - }); - - it('returns false if some are not favorite', () => { - directiveInstance.favorites = [ - { entry: { id: '1', name: 'name1', isFavorite: true } }, - { entry: { id: '2', name: 'name2', isFavorite: false } } - ]; - - const hasFavorites = directiveInstance.hasFavorites(); - - expect(hasFavorites).toBe(false); - }); - - it('returns true if all are favorite', () => { - directiveInstance.favorites = [ - { entry: { id: '1', name: 'name1', isFavorite: true } }, - { entry: { id: '2', name: 'name2', isFavorite: true } } - ]; - - const hasFavorites = directiveInstance.hasFavorites(); - - expect(hasFavorites).toBe(true); - }); - }); -}); diff --git a/src/app/common/directives/node-favorite.directive.ts b/src/app/common/directives/node-favorite.directive.ts deleted file mode 100644 index 8e09a0072..000000000 --- a/src/app/common/directives/node-favorite.directive.ts +++ /dev/null @@ -1,181 +0,0 @@ -/*! - * @license - * Copyright 2017 Alfresco Software, Ltd. - * - * 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. - */ - -import { Directive, HostListener, Input, OnChanges } from '@angular/core'; -import { AlfrescoApiService } from '@alfresco/adf-core'; - -import { MinimalNodeEntity, FavoriteBody } from 'alfresco-js-api'; -import { Observable } from 'rxjs/Rx'; - -import { ContentManagementService } from '../services/content-management.service'; - -@Directive({ - selector: '[app-favorite-node]', - exportAs: 'favorite' -}) -export class NodeFavoriteDirective implements OnChanges { - private favorites: any[] = []; - - @Input('app-favorite-node') - selection: any[]; - - @HostListener('click') - onClick() { - this.toggleFavorite(); - } - - constructor( - public content: ContentManagementService, - private alfrescoApiService: AlfrescoApiService - ) {} - - ngOnChanges(changes) { - if (!changes.selection.currentValue.length) { - return; - } - - this.markFavoritesNodes(changes.selection.currentValue); - } - - toggleFavorite() { - if (!this.favorites.length) { - return; - } - - const every = this.favorites.every((selected) => selected.entry.isFavorite); - - if (every) { - const batch = this.favorites.map((selected) => { - // shared files have nodeId - const id = selected.entry.nodeId || selected.entry.id; - - return Observable.of(this.alfrescoApiService.getInstance().core.favoritesApi.removeFavoriteSite('-me-', id)); - }); - - Observable.forkJoin(batch) - .subscribe(() => { - this.content.toggleFavorite.next(); - this.reset(); - }); - } - - if (!every) { - const notFavorite = this.favorites.filter((node) => !node.entry.isFavorite); - const body: FavoriteBody[] = notFavorite.map((node) => this.createFavoriteBody(node)); - - Observable.from(this.alfrescoApiService.getInstance().core.favoritesApi.addFavorite('-me-', body)) - .subscribe(() => { - this.content.toggleFavorite.next(); - this.reset(); - }); - } - } - - markFavoritesNodes(selection) { - if (selection.length < this.favorites.length) { - const newFavorites = this.reduce(this.favorites, selection); - this.favorites = newFavorites; - } - - const result = this.diff(selection, this.favorites); - const batch = this.getProcessBatch(result); - - Observable.forkJoin(batch).subscribe((data) => this.favorites.push(...data)); - } - - hasFavorites(): boolean { - if (this.favorites && !this.favorites.length) { - return false; - } - - return this.favorites.every((selected) => selected.entry.isFavorite); - } - - private reset() { - this.favorites = []; - } - - private getProcessBatch(selection): any[] { - return selection.map((selected) => this.getFavorite(selected)); - } - - private getFavorite(selected): Observable { - const { name, isFile, isFolder } = selected.entry; - // shared files have nodeId - const id = selected.entry.nodeId || selected.entry.id; - - const promise = this.alfrescoApiService.getInstance() - .core.favoritesApi.getFavorite('-me-', id); - - return Observable.from(promise) - .map(() => ({ - entry: { - id, - isFolder, - isFile, - name, - isFavorite: true - } - })) - .catch(() => { - return Observable.of({ - entry: { - id, - isFolder, - isFile, - name, - isFavorite: false - } - }); - }); - } - - private createFavoriteBody(node): FavoriteBody { - const type = this.getNodeType(node); - // shared files have nodeId - const id = node.entry.nodeId || node.entry.id; - - return { - target: { - [type]: { - guid: id - } - } - }; - } - - private getNodeType(node): string { - // shared could only be files - if (!node.entry.isFile && !node.entry.isFolder) { - return 'file'; - } - - return node.entry.isFile ? 'file' : 'folder'; - } - - private diff(list, patch): any[] { - const ids = patch.map(item => item.entry.id); - - return list.filter(item => ids.includes(item.entry.id) ? null : item); - } - - private reduce(patch, comparator): any[] { - const ids = comparator.map(item => item.entry.id); - - return patch.filter(item => ids.includes(item.entry.id) ? item : null); - } -} diff --git a/src/app/common/services/content-management.service.ts b/src/app/common/services/content-management.service.ts index 7aa324d71..81099f07f 100644 --- a/src/app/common/services/content-management.service.ts +++ b/src/app/common/services/content-management.service.ts @@ -23,5 +23,4 @@ export class ContentManagementService { deleteNode = new Subject(); moveNode = new Subject(); restoreNode = new Subject(); - toggleFavorite = new Subject(); } diff --git a/src/app/components/favorites/favorites.component.html b/src/app/components/favorites/favorites.component.html index 5233e3aca..323786641 100644 --- a/src/app/components/favorites/favorites.component.html +++ b/src/app/components/favorites/favorites.component.html @@ -41,10 +41,10 @@ class="secondary-options"> diff --git a/src/app/components/favorites/favorites.component.spec.ts b/src/app/components/favorites/favorites.component.spec.ts index 5c57cfaa9..ec43b3ce3 100644 --- a/src/app/components/favorites/favorites.component.spec.ts +++ b/src/app/components/favorites/favorites.component.spec.ts @@ -110,15 +110,6 @@ describe('Favorites Routed Component', () => { expect(component.refresh).toHaveBeenCalled(); }); - - it('should fetch nodes on favorite toggle', () => { - spyOn(component, 'refresh'); - fixture.detectChanges(); - - contentService.toggleFavorite.next(null); - - expect(component.refresh).toHaveBeenCalled(); - }); }); describe('Node navigation', () => { diff --git a/src/app/components/favorites/favorites.component.ts b/src/app/components/favorites/favorites.component.ts index 6216a8e3a..683688bc1 100644 --- a/src/app/components/favorites/favorites.component.ts +++ b/src/app/components/favorites/favorites.component.ts @@ -50,8 +50,7 @@ export class FavoritesComponent extends PageComponent implements OnInit, OnDestr this.content.deleteNode.subscribe(() => this.refresh()), this.content.restoreNode.subscribe(() => this.refresh()), this.contentService.folderEdit.subscribe(() => this.refresh()), - this.content.moveNode.subscribe(() => this.refresh()), - this.content.toggleFavorite.debounceTime(300).subscribe(() => this.refresh()) + this.content.moveNode.subscribe(() => this.refresh()) ]); } diff --git a/src/app/components/files/files.component.html b/src/app/components/files/files.component.html index df2f826b1..6ea76a7a9 100644 --- a/src/app/components/files/files.component.html +++ b/src/app/components/files/files.component.html @@ -44,10 +44,10 @@ class="secondary-options"> diff --git a/src/app/components/files/files.component.spec.ts b/src/app/components/files/files.component.spec.ts index 14df0f50f..2d5580834 100644 --- a/src/app/components/files/files.component.spec.ts +++ b/src/app/components/files/files.component.spec.ts @@ -137,12 +137,6 @@ describe('FilesComponent', () => { fixture.detectChanges(); }); - it('reset favorites colection onToggleFavorite event', () => { - contentManagementService.toggleFavorite.next(null); - - expect(component.load).toHaveBeenCalled(); - }); - it('calls refresh onContentCopied event if parent is the same', () => { const nodes = [ { entry: { parentId: '1' } }, diff --git a/src/app/components/files/files.component.ts b/src/app/components/files/files.component.ts index 03862efab..298a9209b 100644 --- a/src/app/components/files/files.component.ts +++ b/src/app/components/files/files.component.ts @@ -92,7 +92,6 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { contentManagementService.deleteNode.subscribe(() => this.load(false, this.pagination)), contentManagementService.moveNode.subscribe(() => this.load(false, this.pagination)), contentManagementService.restoreNode.subscribe(() => this.load(false, this.pagination)), - contentManagementService.toggleFavorite.subscribe(() => this.load(false, this.pagination)), uploadService.fileUploadComplete.subscribe(file => this.onFileUploadedEvent(file)), uploadService.fileUploadDeleted.subscribe((file) => this.onFileUploadedEvent(file)) ]); diff --git a/src/app/components/recent-files/recent-files.component.html b/src/app/components/recent-files/recent-files.component.html index 6715e5e19..b41966666 100644 --- a/src/app/components/recent-files/recent-files.component.html +++ b/src/app/components/recent-files/recent-files.component.html @@ -33,10 +33,10 @@ class="secondary-options"> diff --git a/src/app/components/recent-files/recent-files.component.spec.ts b/src/app/components/recent-files/recent-files.component.spec.ts index b7d44ff00..6ddaf63f0 100644 --- a/src/app/components/recent-files/recent-files.component.spec.ts +++ b/src/app/components/recent-files/recent-files.component.spec.ts @@ -98,14 +98,6 @@ describe('RecentFiles Routed Component', () => { expect(component.refresh).toHaveBeenCalled(); }); - it('should reload on toggleFavorite event', () => { - fixture.detectChanges(); - - contentService.toggleFavorite.next(); - - expect(component.refresh).toHaveBeenCalled(); - }); - it('should reload on move node event', () => { fixture.detectChanges(); diff --git a/src/app/components/recent-files/recent-files.component.ts b/src/app/components/recent-files/recent-files.component.ts index 4444fe829..b2e3dea74 100644 --- a/src/app/components/recent-files/recent-files.component.ts +++ b/src/app/components/recent-files/recent-files.component.ts @@ -46,8 +46,7 @@ export class RecentFilesComponent extends PageComponent implements OnInit, OnDes this.subscriptions = this.subscriptions.concat([ this.content.deleteNode.subscribe(() => this.refresh()), this.content.moveNode.subscribe(() => this.refresh()), - this.content.restoreNode.subscribe(() => this.refresh()), - this.content.toggleFavorite.subscribe(() => this.refresh()) + this.content.restoreNode.subscribe(() => this.refresh()) ]); } diff --git a/src/app/components/shared-files/shared-files.component.html b/src/app/components/shared-files/shared-files.component.html index 6e9b51ff2..e7eb1481d 100644 --- a/src/app/components/shared-files/shared-files.component.html +++ b/src/app/components/shared-files/shared-files.component.html @@ -33,10 +33,10 @@ class="secondary-options"> diff --git a/src/app/components/shared-files/shared-files.component.spec.ts b/src/app/components/shared-files/shared-files.component.spec.ts index e78c77122..525acfe86 100644 --- a/src/app/components/shared-files/shared-files.component.spec.ts +++ b/src/app/components/shared-files/shared-files.component.spec.ts @@ -94,14 +94,6 @@ describe('SharedFilesComponent', () => { expect(component.refresh).toHaveBeenCalled(); }); - it('should refresh on favorite toggle event', () => { - fixture.detectChanges(); - - contentService.toggleFavorite.next(); - - expect(component.refresh).toHaveBeenCalled(); - }); - it('should reload on move node event', () => { fixture.detectChanges(); diff --git a/src/app/components/shared-files/shared-files.component.ts b/src/app/components/shared-files/shared-files.component.ts index 47079bb0e..94004ec68 100644 --- a/src/app/components/shared-files/shared-files.component.ts +++ b/src/app/components/shared-files/shared-files.component.ts @@ -47,8 +47,7 @@ export class SharedFilesComponent extends PageComponent implements OnInit, OnDes this.subscriptions = this.subscriptions.concat([ this.content.deleteNode.subscribe(() => this.refresh()), this.content.moveNode.subscribe(() => this.refresh()), - this.content.restoreNode.subscribe(() => this.refresh()), - this.content.toggleFavorite.subscribe(() => this.refresh()) + this.content.restoreNode.subscribe(() => this.refresh()) ]); } From a79a4f587eefcef1c5ef875986eec6e8b7ec007b Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Thu, 7 Dec 2017 20:19:36 +0000 Subject: [PATCH 58/70] i18n docs --- docs/i18n.md | 131 ++++++++++++++++++++++++++++++++++++ docs/images/aca-i18n-01.png | Bin 0 -> 98342 bytes docs/images/aca-i18n-02.png | Bin 0 -> 136339 bytes docs/index.html | 4 ++ 4 files changed, 135 insertions(+) create mode 100644 docs/i18n.md create mode 100644 docs/images/aca-i18n-01.png create mode 100644 docs/images/aca-i18n-02.png diff --git a/docs/i18n.md b/docs/i18n.md new file mode 100644 index 000000000..a5c758ccf --- /dev/null +++ b/docs/i18n.md @@ -0,0 +1,131 @@ +# Internationalization (i18n) + +The Content Application provides support for the following languages: + +- German (`de`) +- English (`en`) +- Spanish (`es`) +- French (`fr`) +- Italian (`it`) +- Japanese (`ja`) +- Norwegian (`nb`) +- Dutch (`nl`) +- Brazilian Portuguese (`pt-BR`) +- Russian (`ru`) +- Simplified Chinese (`zh-CN`) + +The fallback locale is the English one, however current browser language is taken as the default one automatically when the application starts. + +## User-defined language + +You can allow users to set custom language that gets saved to user preferences. +The main application menu already has the [ADF Language Menu](https://github.com/Alfresco/alfresco-ng2-components/blob/development/docs/language-menu.component.md) component integrated and pre-filled with the supported items. + +To change the default language set edit the `app.config.json` file and add or remove items: + +```json +{ + ..., + "languages": [ + { + "key": "de", + "label": "German" + }, + { + "key": "en", + "label": "English" + }, + { + "key": "es", + "label": "Spanish" + }, + ... + ] +} +``` + +The file is located at the following path: `/src/app.config.json`. + +## Custom languages + +To add a custom language, add a new "JSON" file to the "/src/assets/i18n" folder +with the name of the target locale, for instance, a "de.json" for the "German". + +Translate the resource strings based on the default "en.json" file. +You can copy the content over to your newly created file and replace English values with translated text. + +```json +{ + "APP": { + "SIGN_IN": "Anmelden", + "SIGN_OUT": "Abmelden", + "NEW_MENU": { + "LABEL": "Neu", + "MENU_ITEMS": { + "CREATE_FOLDER": "Ordner erstellen", + "UPLOAD_FILE": "Datei hochladen", + "UPLOAD_FOLDER": "Ordner hochladen" + }, + ... + } + }, + ... +} +``` + +The Content Application automatically bundles your file upon project build. +You can test your locale by changing the browser language settings and reloading the page. + +Optionally, you can extend the [ADF Language Menu](https://github.com/Alfresco/alfresco-ng2-components/blob/development/docs/language-menu.component.md) component with the newly added language by updating the `app.config.json` file. + +## Customizing ADF translations + +In addition to creating a custom language file for the Content Application, +you can also provide translations for the ADF resources. + +Your `/src/assets/i18n/.json` file can reflect the structure of one of the ADF language files: + +- ADF Core ([en.json](https://github.com/Alfresco/alfresco-ng2-components/blob/master/lib/core/i18n/en.json)) +- ADF Content Services ([en.json](https://github.com/Alfresco/alfresco-ng2-components/blob/master/lib/content-services/i18n/en.json)) +- ADF Process Services ([en.json](https://github.com/Alfresco/alfresco-ng2-components/blob/master/lib/process-services/i18n/en.json)) +- ADF Insights ([en.json](https://github.com/Alfresco/alfresco-ng2-components/blob/master/lib/insights/i18n/en.json)) + +At runtime, the application-level strings have the highest priority. +That means you can replace the value of any ADF resource string if needed. + +For example, let's change the title of the "Create Folder" dialogue shipped with the ADF. +Modify the `/src/assets/i18n/en.json` file and append the "CORE" section like in the example below: + +```json +{ + "APP": { + ... + }, + "CORE": { + "FOLDER_DIALOG": { + "CREATE_FOLDER_TITLE": "Custom title" + } + } +} +``` + +Now, if you run the application and click the "New → Create Folder" menu, +the title of the dialogue should look similar to the following: + +![](images/aca-i18n-01.png) + +## Language picker + +You can enable internal language picker in the `app.config.json` file: + +```json +{ + ..., + + "languagePicker": true, + + ... +} +``` + +![](images/aca-i18n-02.png) diff --git a/docs/images/aca-i18n-01.png b/docs/images/aca-i18n-01.png new file mode 100644 index 0000000000000000000000000000000000000000..856989c0c535900d14773cd2fb0ccaf739d540b7 GIT binary patch literal 98342 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≈59?^^&LY*+3Jfdt0ii6#lu! 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 literal 0 HcmV?d00001 diff --git a/docs/images/aca-i18n-02.png b/docs/images/aca-i18n-02.png new file mode 100644 index 0000000000000000000000000000000000000000..26f56617e8e28c941bbf343c3c89ff29efab654e GIT binary patch literal 136339 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

Y+UazMPZz)=3wCc6PmQ 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

-#jDq{h+WxKC5fn~6Q%RpbU9^Zd1;L< z(wi`Nhse>FAKh?_A6yk9HEFzoKMjWfmClXB9?QY7O<~$n)5e6e7h5r$w8q1wW8u>N zut|nuAgbp&mx=xKqq@)lF=9h`m27ag(ZQpzSq#Aq>W0db?+CntS``A(p8#>Dc!8K9 zH_Z{bWjR=zA_-iKTh4)MV~oLszmmyCss*5D3+<|7M~HLb!= z9K>fUq4;c2h@8AoREvz) z?+FFagUArI9!#Qrcq-KMp?l5YggDG6CmQK4fUsC>iBOvE0&CpMuyVWjvbn~p3`FZt zQ@o?i5YbQkVll8$bf1_ZmSbfbY3NGMJ&#Zm@|}fU6M;=I9O67V$G=#)o%^iI9q=EQ}ZV7s0E?Lq(sG6iFIzFzfU16-~!=M8!WwVNr ze(o&aa;#km1pmoWVP-fwsUPk=ySgp*@!T>t^XIs2UQvQ9m*HNfB9l z!n}jz%5G@5@Nt3u3fQzMh~U0&mO8q84hXOo@ga?frXtYpGhj4{s5c}YT-VaoSxXnq zN&TDs6(v3GoZNWO%z|;qj`bv!SoNx?kW+=&Tb!`CFu5B{y6Gh_>QhDycb0wcFg?`) zGhJ!Vgyb^6EP>NZb3AZ~A{&}0>KeC%{4H?NRP<~_iWma>T7^LE#mDQpxn^Oy2!3Ef z%!Aw2R2ErBh--(=ZhfJl+H8h*>NUT}3QrNZmKQgd98{l(g%0<2)ZVbLMIGq`l|(tfArgxBF4yfDvop>{j#yHbt9h-el)4LfcnBUhMmj?#G=h zrwSzoIS^`ps?McltJ-%5=*k@HY2^77HjeJg>(zPR5&vFd>B0wLE=lRR+69Uc*S6#k zuW~FCK9!!5S~THL8~-D{7X#Qwm5jh}&L>?#E_D%q<{J!jOqYM;Yd)ZPiK9u=uj3CUy_Jo5czocc7-N>JK+$yMJ3r*@ zECcBRro2+S=&~)@8L&&laq;E{yM@!jjfN;56oZ2Ltb&amh?yumMt5r~U29AJ< p&mA<^T-PXAFrWMS>coKHn>uvPAy&Q%c@y|MWsEwJ_uGXV{{ev1;&}i7 literal 0 HcmV?d00001 diff --git a/docs/index.html b/docs/index.html index 4366360a0..fcd594590 100644 --- a/docs/index.html +++ b/docs/index.html @@ -34,6 +34,10 @@ title: 'Building', path: 'build' }, + { + title: 'Internationalization (i18n)', + path: 'i18n' + }, { title: 'CORS', path: 'cors' From 6e2fc43dc3d57fc73d6c814907577855cba78b7a Mon Sep 17 00:00:00 2001 From: Adina Parpalita Date: Fri, 8 Dec 2017 10:25:21 +0200 Subject: [PATCH 59/70] [ACA-802] use American English (#122) fix small typos --- docs/build.md | 8 ++++---- docs/configuration.md | 8 ++++---- docs/cors.md | 2 +- docs/i18n.md | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/build.md b/docs/build.md index 6db7c0a5e..0100a765f 100644 --- a/docs/build.md +++ b/docs/build.md @@ -9,7 +9,7 @@ The Content App is based on [Angular CLI](https://cli.angular.io), and you can u ## Cloning and running -Use the following commands to clone a copy of the project, install dependencies and run it. +Use the following commands to clone the project, install dependencies and run it. ```sh git clone https://github.com/Alfresco/alfresco-content-app.git @@ -18,18 +18,18 @@ npm install npm start ``` -The application run at port 3000 by default, and should automatically open in the default browser once project compilation finishes. +The application runs at port 3000 by default, and should automatically open in the default browser once project compilation finishes. ## Proxy settings The Content App provides a proxy configuration for local development server -that allows you to address specific scenarios with CORS and native authentication dialogue. +that allows you to address specific scenarios with CORS and native authentication dialog. You can find settings in the "proxy.conf.js" file in the project root directory.

The proxy settings get automatically applied every time you run the application with "npm start" script. -You must restart the application every time you change the setting values. +You must restart the application every time you change the settings values.

## Running documentation locally diff --git a/docs/configuration.md b/docs/configuration.md index 922b1fb13..6fdd3bf73 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1,6 +1,6 @@ # Application Configuration -The Content Application provides support for a global settings file `app.config.json` that you can use to customise the behaviour of ACA and ADF components. +The Content Application provides support for a global settings file `app.config.json` that you can use to customize the behavior of ACA and ADF components. ## Server settings @@ -29,7 +29,7 @@ Optionally it can also use the value of the original port if present, for exampl ### Static address -Alternatively, you can provide a static address for the ACS services if necessary: +Alternatively, you can provide a static address for the ACS server if necessary: ```json { @@ -40,7 +40,7 @@ Alternatively, you can provide a static address for the ACS services if necessar ## Application settings -The are many settings you can change to alter the default behaviour of the application. +The are many settings you can change to alter the default behavior of the application. ### Application Name @@ -104,7 +104,7 @@ You can change the default settings of the pagination that gets applied to all t ## Your custom settings -You can store any information in the application configuration file, and access it at runtime by utilising the `AppConfigService` service provided by the ADF framework. +You can store any information in the application configuration file, and access it at runtime by using the `AppConfigService` service provided by ADF.

Please refer to the [AppConfigService](https://github.com/Alfresco/alfresco-ng2-components/blob/master/docs/app-config.service.md) documentation to get more details on Application Configuration features and API available. diff --git a/docs/cors.md b/docs/cors.md index 192da5af7..f296a92ee 100644 --- a/docs/cors.md +++ b/docs/cors.md @@ -2,7 +2,7 @@ ## Chrome Workaround -For the Chrome you can use the following plugin that allows you toggle CORS: +For the Chrome browser you can use the following plugin that allows you toggle CORS: [Allow-Control-Allow-Origin](https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi) ## Firefox Workaround diff --git a/docs/i18n.md b/docs/i18n.md index a5c758ccf..8fe627e32 100644 --- a/docs/i18n.md +++ b/docs/i18n.md @@ -93,7 +93,7 @@ Your `/src/assets/i18n/.json` file can reflect the structure of one of the At runtime, the application-level strings have the highest priority. That means you can replace the value of any ADF resource string if needed. -For example, let's change the title of the "Create Folder" dialogue shipped with the ADF. +For example, let's change the title of the "Create Folder" dialog shipped with the ADF. Modify the `/src/assets/i18n/en.json` file and append the "CORE" section like in the example below: ```json @@ -110,7 +110,7 @@ Modify the `/src/assets/i18n/en.json` file and append the "CORE" section like in ``` Now, if you run the application and click the "New → Create Folder" menu, -the title of the dialogue should look similar to the following: +the title of the dialog should look similar to the following: ![](images/aca-i18n-01.png) From 17ae9af1fea39749da807f4a4c2fe4d12746f100 Mon Sep 17 00:00:00 2001 From: Cilibiu Bogdan Date: Fri, 8 Dec 2017 10:27:00 +0200 Subject: [PATCH 60/70] logo config reference (#123) --- src/app.config.json | 3 +-- src/app/components/header/header.component.ts | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/app.config.json b/src/app.config.json index 6356fcf58..43cc289ec 100644 --- a/src/app.config.json +++ b/src/app.config.json @@ -2,9 +2,8 @@ "ecmHost": "http://{hostname}{:port}", "application": { "name": "Alfresco Example Content Application", - "build": "1234" + "logo": "/assets/images/alfresco-logo-white.svg" }, - "logo": "/assets/images/alfresco-logo-white.svg", "headerColor": "#2196F3", "languagePicker": false, "document-list": { diff --git a/src/app/components/header/header.component.ts b/src/app/components/header/header.component.ts index 2d55cdc74..651cf1de3 100644 --- a/src/app/components/header/header.component.ts +++ b/src/app/components/header/header.component.ts @@ -39,7 +39,7 @@ export class HeaderComponent { } get logo() { - return this.appConfig.get('logo', this.defaultPath); + return this.appConfig.get('application.logo', this.defaultPath); } get backgroundColor() { From 2f33eafdc4ecc681ffb1a582c141bf48954b188c Mon Sep 17 00:00:00 2001 From: Cilibiu Bogdan Date: Fri, 8 Dec 2017 10:27:35 +0200 Subject: [PATCH 61/70] [ACA-1047] Personal Files - upload makes application unstable when view is destroyed (#121) --- src/app/components/files/files.component.ts | 30 +++++++++------------ 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/src/app/components/files/files.component.ts b/src/app/components/files/files.component.ts index 298a9209b..01de9c01a 100644 --- a/src/app/components/files/files.component.ts +++ b/src/app/components/files/files.component.ts @@ -16,7 +16,7 @@ */ import { Observable, Subscription } from 'rxjs/Rx'; -import { Component, OnInit, OnDestroy, ChangeDetectorRef, ViewChild } from '@angular/core'; +import { Component, OnInit, OnDestroy, ViewChild, NgZone } from '@angular/core'; import { Router, ActivatedRoute, Params } from '@angular/router'; import { MinimalNodeEntity, MinimalNodeEntryEntity, PathElementEntity, NodePaging, PathElement } from 'alfresco-js-api'; import { @@ -46,9 +46,9 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { constructor( private router: Router, + private zone: NgZone, private route: ActivatedRoute, private nodesApi: NodesApiService, - private changeDetector: ChangeDetectorRef, private nodeActionsService: NodeActionsService, private uploadService: UploadService, private contentManagementService: ContentManagementService, @@ -215,22 +215,18 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { this.isLoading = showIndicator; this.fetchNodes(this.getParentNodeId(), pagination) - .subscribe( - (page) => { - if (this.isCurrentPageEmpty(page) && this.isNotFirstPage(page)) { - const newSkipCount = pagination.skipCount - pagination.maxItems; + .flatMap((page) => { + if (this.isCurrentPageEmpty(page) && this.isNotFirstPage(page)) { + const newSkipCount = pagination.skipCount - pagination.maxItems; - this.fetchNodes(this.getParentNodeId(), {skipCount: newSkipCount, maxItems: pagination.maxItems}) - .subscribe( - (previousPage) => this.onPageLoaded(previousPage), - error => this.onFetchError(error) - ); - } else { - this.onPageLoaded(page); - } - }, - error => this.onFetchError(error), - () => this.changeDetector.detectChanges() + return this.fetchNodes(this.getParentNodeId(), {skipCount: newSkipCount, maxItems: pagination.maxItems}); + } + + return Observable.of(page); + }) + .subscribe( + (page) => this.zone.run(() => this.onPageLoaded(page)), + error => this.onFetchError(error) ); } From b97f86340e363ff975491dff280d63612b36e594 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Fri, 8 Dec 2017 12:23:56 +0000 Subject: [PATCH 62/70] docs update (#124) * docs: contribution policy * 'Where to get help' section * update docs --- docs/README.md | 96 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 92 insertions(+), 4 deletions(-) diff --git a/docs/README.md b/docs/README.md index 18e85ecff..a634fc473 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,9 +1,75 @@ -# Alfresco Content App +# Alfresco Example Content Application -## Prerequisites +## Introduction -- Alfresco Content Services (Community) or Alfresco Content Services 5.2.2 (Enterprise) -- [node.js](https://nodejs.org/en/) 8.9.1 or later +The Alfresco Content Application is an example application built using +[Alfresco Application Development Framework (ADF)](https://github.com/Alfresco/alfresco-ng2-components) components. + +### Who is this example application for + +This example application demonstrates to Angular software engineers +how to construct a content application using the Alfresco ADF. + +This example application represents a meaningful composition of ADF components that provide end users +with a simple and easy to use interface for working with files stored in the Alfresco Content Services repository. + +### Prerequisites + +This application utilises the latest releases from Alfresco: + +- [Alfresco ADF version 2.0](https://community.alfresco.com/community/application-development-framework/pages/get-started) +- [Alfresco Content Services version 5.2.2](https://www.alfresco.com/platform/content-services-ecm) +- [Alfresco Community Edition 201707](https://www.alfresco.com/products/community/download) + +

+You also need [node.js](https://nodejs.org/en/) (8.9.1 or later) installed to build it locally from source code. +

+ +The latest version of the Alfresco Content platform is required +due to the application utilising the latest [REST APIs](https://docs.alfresco.com/5.2/pra/1/topics/pra-welcome.html) developments. + +## Where to get help + +There are a number of ways to get help with building applications using the Alfresco Application Development Framework: + +### Alfresco DevCon 2018 + +DevCon 2018 is an international developer conference entirely dedicated to Alfresco technology. +With the support of our community, customers, and partners, DevCon will increase your technical know-how, +connect you with other Alfresco developers, and let you collaborate with our team and each other. + +Register now to avoid disappointment, places are limited: +http://devcon.alfresco.com/ + +### Alfresco Community + +Visit the Alfresco Community space where you can find many resources to help you get started building your application, +along with blog posts from the Alfresco developers and much more: +https://community.alfresco.com/community/application-development-framework + +### Alfresco ADF Gitter + +Join the vibrant community in Gitter where you can chat with experienced developers, +including the Alfresco employees working directly on the ADF and this example application project: +https://gitter.im/Alfresco/alfresco-ng2-components + +### Alfresco Developer Support + +Developer Support is a subscription-based support offering delivered remotely +by a dedicated team of development-focused, senior Support Engineers. +This support offering is best for customers and partners that require on-going support +for their development teams and customized code. + +Visit the Developer Support Services section on the Alfresco website for more information: +https://www.alfresco.com/alfresco-developer-support-services + +### Alfresco University + +Training with Alfresco University is the best way to acquire the right skills for your team to deliver a successful Alfresco implementation. +The most cost-effective way to take advantage of this valuable training is through Alfresco University Passport. + +Visit the Alfresco University section on the Alfresco website for more information: +https://www.alfresco.com/alfresco-university ## Building and running locally @@ -13,3 +79,25 @@ Please refer to the [developer docs](/build) to get more details on building and The Content App provides a "Dockerfile" and "docker-compose" files to aid in running application in a container. Please refer to the "[Using with Docker](/docker)" article for more details. + +## Contribution Policy + +### How to contribute + +Fork our repository and submit a pull request when your code is ready for review. +To be considered the Travis build has to be green and all our automation tests have to run without regressions. + +### Contribute to the existing code base + +What are we reviewing for? + +- **License**: Every file should contain the Alfresco LICENSE header, LGPL Licence. +- **Tests**: Add unit cases to cover the new behaviour, and make sure all the existing tests are still green. +- **JS Documentation**: Every class needs to have its own inline jsdoc, this documentation should explain the general purpose of the class and of each method. +- **Documentation**: Update the documentation explaining how to use the new functionality, may not be necessary in the cases where change impacts only the CSS style. +- **Clean Coding**: Some good rules are enforced by the tslint, but we want also our code to be easy to read. Please avoid comments inside the code or leaving pieces of code commented out. +- **Localization**: Your contribution needs to support localization, with all new strings externalized, all translations are inside the i18n. The minimum requirement is English. + +### How long will it take for my contribution to be reviewed? + +The time necessary for a code review will vary, smaller changes may be reviewed within days, while larger changes may take longer. From 4ae022aca2bda8599b19892215cfe3cbe8cdef2c Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Fri, 8 Dec 2017 14:32:42 +0000 Subject: [PATCH 63/70] [ACA-1055] update host address (#126) --- .angular-cli.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.angular-cli.json b/.angular-cli.json index dd83dab7a..dcab4b6fb 100644 --- a/.angular-cli.json +++ b/.angular-cli.json @@ -89,7 +89,8 @@ "component": {}, "serve": { "proxyConfig": "proxy.conf.js", - "port": 3000 + "port": 3000, + "host": "0.0.0.0" } } } From cef61758bf2d00d49be17f97da4fa7ddede3bb7d Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Fri, 8 Dec 2017 14:33:18 +0000 Subject: [PATCH 64/70] [ACA-1003] FAQ section (#125) --- docs/faq.md | 33 +++++++++++++++++++++++++++++++++ docs/index.html | 4 ++++ 2 files changed, 37 insertions(+) create mode 100644 docs/faq.md diff --git a/docs/faq.md b/docs/faq.md new file mode 100644 index 000000000..850164ecb --- /dev/null +++ b/docs/faq.md @@ -0,0 +1,33 @@ +# Frequently asked questions + +## How do I log an issue (bug, enhancement, feature)? + +Log any issues in the ['ACA' JIRA project](https://issues.alfresco.com/jira/projects/ACA), +please include a clear description, steps to reproduce and screenshots where appropriate. +All issues will be reviewed; bugs will be categorised if reproducible and enhancement/feature suggestions +will be considered against existing priorities if the use case serves a general purpose need. + +## Does Alfresco provide customer support for the example content application? + +Alfresco does not provide Customer Support, it is an example application for developers; [Developer Support Services](https://www.alfresco.com/alfresco-developer-support-services) are available from Alfresco. + +## Does this/Will this application replace Alfresco Share? + +This example application is designed to demonstrate how to construct a content application using the Alfresco Application Development Framework, +it is not intended to be a replacement for Alfresco Share. + +## Where can I get help building an application? + +See [Where to get help](/?id=where-to-get-help) section. + +## How do I contribute to the project? + +See [Contribution Policy](/?id=contribution-policy) section. + +## What would you like me to contribute? + +Please refer to the ['ACA' JIRA project](https://issues.alfresco.com/jira/projects/ACA) for tickets in the project backlog. + +## How often will this project be updated? + +This project will continue evolve as the Alfresco ADF evolves, with Alfresco and community developers contributing to its progress. diff --git a/docs/index.html b/docs/index.html index fcd594590..b69e4ac11 100644 --- a/docs/index.html +++ b/docs/index.html @@ -26,6 +26,10 @@ title: 'Docker', path: 'docker' }, + { + title: 'FAQ', + path: 'faq' + }, { title: 'Guides', type: 'dropdown', From 1091cb9a67ee995523c02563e2d60a28021ef72f Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Sat, 9 Dec 2017 14:45:02 +0000 Subject: [PATCH 65/70] restore hash location strategy --- src/app/app.module.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 1c66b5786..f4eecb42d 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -48,7 +48,7 @@ import { LocationLinkComponent } from './components/location-link/location-link. imports: [ BrowserModule, RouterModule.forRoot(APP_ROUTES, { - useHash: false, + useHash: true, enableTracing: false // enable for debug only }), AdfModule, From 6a58cd1371f33ac45e4b74ede360c32388bd6e6b Mon Sep 17 00:00:00 2001 From: Cilibiu Bogdan Date: Mon, 11 Dec 2017 12:43:13 +0200 Subject: [PATCH 66/70] navigation json config schema (#127) --- .../components/sidenav/sidenav.component.html | 3 +- .../components/sidenav/sidenav.component.scss | 8 ++++ .../sidenav/sidenav.component.spec.ts | 43 ++++++++++++++++--- .../components/sidenav/sidenav.component.ts | 16 ++++--- 4 files changed, 56 insertions(+), 14 deletions(-) diff --git a/src/app/components/sidenav/sidenav.component.html b/src/app/components/sidenav/sidenav.component.html index 62cbc0269..e42653bc2 100644 --- a/src/app/components/sidenav/sidenav.component.html +++ b/src/app/components/sidenav/sidenav.component.html @@ -53,11 +53,12 @@ diff --git a/src/app/components/sidenav/sidenav.component.scss b/src/app/components/sidenav/sidenav.component.scss index 9cf5af4c3..b381bf5b7 100644 --- a/src/app/components/sidenav/sidenav.component.scss +++ b/src/app/components/sidenav/sidenav.component.scss @@ -14,6 +14,10 @@ $sidenav-menu-item--icon-size: 24px; flex: 1; flex-direction: column; + &__section:last-child { + border-bottom: 0; + } + &__section { padding: $sidenav-section--v-padding @@ -70,6 +74,10 @@ $sidenav-menu-item--icon-size: 24px; color: $alfresco-secondary-text-color !important; opacity: .25; } + + &--noicon { + padding-left: 26px; + } } } } diff --git a/src/app/components/sidenav/sidenav.component.spec.ts b/src/app/components/sidenav/sidenav.component.spec.ts index e565da7d7..772af7158 100644 --- a/src/app/components/sidenav/sidenav.component.spec.ts +++ b/src/app/components/sidenav/sidenav.component.spec.ts @@ -17,8 +17,7 @@ import { TestBed, async } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; -import { ContentService } from '@alfresco/adf-core'; - +import { ContentService, AppConfigService } from '@alfresco/adf-core'; import { BrowsingFilesService } from '../../common/services/browsing-files.service'; import { SidenavComponent } from './sidenav.component'; @@ -29,6 +28,15 @@ describe('SidenavComponent', () => { let component: SidenavComponent; let contentService: ContentService; let browsingService: BrowsingFilesService; + let appConfig: AppConfigService; + let appConfigSpy; + + const navItem = { + label: 'some-label', + route: { + url: '/some-url' + } + }; beforeEach(async(() => { TestBed.configureTestingModule({ @@ -44,15 +52,17 @@ describe('SidenavComponent', () => { .then(() => { contentService = TestBed.get(ContentService); browsingService = TestBed.get(BrowsingFilesService); + appConfig = TestBed.get(AppConfigService); fixture = TestBed.createComponent(SidenavComponent); component = fixture.componentInstance; - fixture.detectChanges(); + appConfigSpy = spyOn(appConfig, 'get').and.returnValue([navItem]); }); })); - it('updates node on change', () => { + it('should update node on change', () => { + fixture.detectChanges(); const node: any = { entry: { id: 'someNodeId' } }; browsingService.onChangeParent.next(node); @@ -60,7 +70,8 @@ describe('SidenavComponent', () => { expect(component.node).toBe(node); }); - it('can create content', () => { + it('should have permission to create content', () => { + fixture.detectChanges(); spyOn(contentService, 'hasPermission').and.returnValue(true); const node: any = {}; @@ -68,18 +79,36 @@ describe('SidenavComponent', () => { expect(contentService.hasPermission).toHaveBeenCalledWith(node, 'create'); }); - it('cannot create content for missing node', () => { + it('should not have permission to create content for missing node', () => { + fixture.detectChanges(); spyOn(contentService, 'hasPermission').and.returnValue(true); expect(component.canCreateContent(null)).toBe(false); expect(contentService.hasPermission).not.toHaveBeenCalled(); }); - it('cannot create content based on permission', () => { + it('should not have permission to create content based on node permission', () => { + fixture.detectChanges(); spyOn(contentService, 'hasPermission').and.returnValue(false); const node: any = {}; expect(component.canCreateContent(node)).toBe(false); expect(contentService.hasPermission).toHaveBeenCalledWith(node, 'create'); }); + + describe('menu', () => { + it('should build menu from array', () => { + appConfigSpy.and.returnValue([navItem, navItem]); + fixture.detectChanges(); + + expect(component.navigation).toEqual([[navItem, navItem]]); + }); + + it('should build menu from object', () => { + appConfigSpy.and.returnValue({ a: [navItem, navItem], b: [navItem, navItem] }); + fixture.detectChanges(); + + expect(component.navigation).toEqual([[navItem, navItem], [navItem, navItem]]); + }); + }); }); diff --git a/src/app/components/sidenav/sidenav.component.ts b/src/app/components/sidenav/sidenav.component.ts index 4cf3d2f2a..39f84a80f 100644 --- a/src/app/components/sidenav/sidenav.component.ts +++ b/src/app/components/sidenav/sidenav.component.ts @@ -39,14 +39,11 @@ export class SidenavComponent implements OnInit, OnDestroy { private browsingFilesService: BrowsingFilesService, private contentService: ContentService, private appConfig: AppConfigService - ) { - this.navigation = this.navigation.concat([ - this.appConfig.get('navigation.main'), - this.appConfig.get('navigation.secondary') - ]); - } + ) {} ngOnInit() { + this.navigation = this.buildMenu(); + this.subscriptions.concat([ this.browsingFilesService.onChangeParent .subscribe((node: MinimalNodeEntryEntity) => this.node = node) @@ -63,4 +60,11 @@ export class SidenavComponent implements OnInit, OnDestroy { } return false; } + + private buildMenu() { + const schema = this.appConfig.get('navigation'); + const data = Array.isArray(schema) ? { main: schema } : schema; + + return Object.keys(data).map((key) => data[key]); + } } From 286bd211b166510b570ef8b41fa20cb83c67bcff Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Mon, 11 Dec 2017 11:31:09 +0000 Subject: [PATCH 67/70] docs update --- docs/features.md | 69 ++++++++++++++++++++++++++++++++++++ docs/images/features-01.png | Bin 0 -> 127544 bytes docs/index.html | 4 +++ 3 files changed, 73 insertions(+) create mode 100644 docs/features.md create mode 100755 docs/images/features-01.png diff --git a/docs/features.md b/docs/features.md new file mode 100644 index 000000000..016f93f1f --- /dev/null +++ b/docs/features.md @@ -0,0 +1,69 @@ +# Features + +The concept of this example is a simple user interface which makes accessing files in the Alfresco Content Services repository easy. + +Often Content Management systems provide more capabilities out of the box than most users need; +providing too many capabilities to these users prevents them from working efficiently, +so they may end up using unsanctioned file management solutions which presents a proliferation of content storage +and collaboration solutions as well as compliance issues for organisations. + +This application demonstrates how the complexity of Content Management can be simplified +using the Alfresco Application Development Framework to easily and quickly create custom solutions for specific user cases. + +## User Interface - layout + +![](images/features-01.png) + +### Header (1) + +The application [header](https://github.com/Alfresco/alfresco-content-app/tree/master/src/app/components/header) has three main elements. + +Logo & app primary color - logo and color are configurable by updating the +[app.config.json](https://github.com/Alfresco/alfresco-content-app/blob/master/src/app.config.json) file in the root folder of the project, +see [How to change the logo and color](/) and [Application Configuration](/configuration) for more information + +[Search](https://github.com/Alfresco/alfresco-content-app/tree/master/src/app/components/search) - +utilizing the [ADF Search Component](https://github.com/Alfresco/alfresco-ng2-components/tree/master/lib/content-services/search) +the app provides a 'live' search feature, where users can open files and folders directly from the Search API results. + +[Current User](https://github.com/Alfresco/alfresco-content-app/tree/development/src/app/components/current-user) - +displays the user's name, and a menu where users can logout. +Optionally through updating the [app.config.json](https://github.com/Alfresco/alfresco-content-app/blob/master/src/app.config.json) +a language switching menu can be displayed. + +### Side Nav (2) + +The application [side navigation](https://github.com/Alfresco/alfresco-content-app/tree/master/src/app/components/sidenav) has two features; +a button menu and navigation links. +The New button displays a menu which allows users to create a new folder, upload a file, and upload a folder. +The navigation links are configurable via the [app.config.json](https://github.com/Alfresco/alfresco-content-app/blob/master/src/app.config.json). +Default configuration creates two sections. + +### Document List Layout (3) + +The main area of the application is composed from a number of individual ADF components: + +- [Breadcrumb](https://github.com/Alfresco/alfresco-ng2-components/tree/master/lib/content-services/breadcrumb) +- [Toolbar](https://alfresco.github.io/adf-component-catalog/components/ToolbarComponent.html) +- [Document List](https://alfresco.github.io/adf-component-catalog/components/DocumentListComponent.html) +- [Pagination](https://alfresco.github.io/adf-component-catalog/components/PaginationComponent.html) + +The application has six different Document List views which contain subtle differences depending on the content being loaded. + +#### Personal Files + +Personal Files retrieves all content from the logged in users home area (`/User Homes//` in the repository); +if the user is ‘admin’ who does not have a home folder then the repository root folder is shown. + +Personal Files is the [Files component](https://github.com/Alfresco/alfresco-content-app/tree/development/src/app/components/files), +using the [Nodes API](https://api-explorer.alfresco.com/api-explorer/#/nodes). + +#### File Libraries + +File Libraries retrieves all the sites that the user is a member including what type of site it is; public, moderated or private. +File Libraries is the [Libraries component](https://github.com/Alfresco/alfresco-content-app/tree/development/src/app/components/libraries), +using the [Sites API](https://api-explorer.alfresco.com/api-explorer/#/sites). + +When a user opens one of their sites then the content for that sites document library is shown. +To display the files and folders from a site (`/Sites//Document Library/`) the [Files component](https://github.com/Alfresco/alfresco-content-app/tree/development/src/app/components/files), +using the [Nodes API](https://api-explorer.alfresco.com/api-explorer/#/nodes) is used. diff --git a/docs/images/features-01.png b/docs/images/features-01.png new file mode 100755 index 0000000000000000000000000000000000000000..daa6098bdf90f8170d73c871eaa07995996fa274 GIT binary patch literal 127544 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

s2OLmIoR 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≻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

qE7QAU8KHC{ZF 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 RLJ1chJ<$KNO!Gz9{{ar@P(}a% literal 0 HcmV?d00001 diff --git a/docs/index.html b/docs/index.html index b69e4ac11..b462bce7c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -18,6 +18,10 @@ title: 'Home', path: '/' }, + { + title: 'Features', + path: 'features' + }, { title: 'Building', path: 'build' From d4a55c5b954b7087e3c3e70af3a9b772a2b1a76a Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Mon, 11 Dec 2017 14:58:25 +0000 Subject: [PATCH 68/70] [ACA-1042] switch license (#129) --- LICENSE | 288 +++++++++--------- e2e/components/component.ts | 28 +- e2e/components/components.ts | 28 +- e2e/components/data-table/data-table.ts | 28 +- .../dialog/create-edit-folder-dialog.ts | 28 +- e2e/components/header/header.ts | 28 +- e2e/components/header/user-info.ts | 28 +- e2e/components/login/login.ts | 28 +- e2e/components/menu/menu.ts | 28 +- e2e/components/pagination/pagination.ts | 28 +- e2e/components/sidenav/sidenav.ts | 28 +- e2e/components/toolbar/toolbar-actions.ts | 28 +- e2e/components/toolbar/toolbar-breadcrumb.ts | 28 +- e2e/components/toolbar/toolbar.ts | 28 +- e2e/configs.ts | 25 ++ e2e/pages/browsing-page.ts | 28 +- e2e/pages/login-page.ts | 29 +- e2e/pages/logout-page.ts | 28 +- e2e/pages/page.ts | 28 +- e2e/pages/pages.ts | 28 +- e2e/suites/actions/create-folder.test.ts | 28 +- e2e/suites/actions/edit-folder.test.ts | 28 +- e2e/suites/actions/permanently-delete.test.ts | 28 +- e2e/suites/actions/restore.test.ts | 28 +- .../toolbar-multiple-selection.test.ts | 28 +- .../actions/toolbar-single-selection.test.ts | 28 +- e2e/suites/application/page-titles.test.ts | 28 +- e2e/suites/authentication/login.test.ts | 28 +- e2e/suites/authentication/logout.test.ts | 28 +- e2e/suites/list-views/empty-list.test.ts | 28 +- e2e/suites/list-views/favorites.test.ts | 28 +- e2e/suites/list-views/file-libraries.test.ts | 28 +- e2e/suites/list-views/personal-files.test.ts | 28 +- e2e/suites/list-views/recent-files.test.ts | 28 +- e2e/suites/list-views/shared-files.test.ts | 28 +- e2e/suites/list-views/trash.test.ts | 28 +- e2e/suites/navigation/side-navigation.test.ts | 28 +- e2e/suites/pagination/pag-favorites.test.ts | 28 +- .../pagination/pag-personal-files.test.ts | 28 +- .../pagination/pag-recent-files.test.ts | 28 +- .../pagination/pag-shared-files.test.ts | 28 +- e2e/suites/pagination/pag-trash.test.ts | 28 +- .../apis/favorites/favorites-api.ts | 28 +- .../apis/nodes/node-body-create.ts | 28 +- .../apis/nodes/node-content-tree.ts | 28 +- .../repo-client/apis/nodes/nodes-api.ts | 28 +- .../apis/people/people-api-models.ts | 28 +- .../repo-client/apis/people/people-api.ts | 28 +- e2e/utilities/repo-client/apis/repo-api.ts | 28 +- .../apis/shared-links/shared-links-api.ts | 28 +- .../apis/sites/sites-api-models.ts | 28 +- .../repo-client/apis/sites/sites-api.ts | 28 +- .../repo-client/apis/trashcan/trashcan-api.ts | 28 +- .../repo-client/repo-client-models.ts | 28 +- e2e/utilities/repo-client/repo-client.ts | 28 +- .../reporters/console/console-logger.ts | 28 +- e2e/utilities/reporters/console/console.ts | 28 +- .../rest-client/rest-client-models.ts | 28 +- e2e/utilities/rest-client/rest-client.ts | 28 +- e2e/utilities/utils.ts | 28 +- package.json | 2 +- postbuild-dev.js | 28 +- src/app/adf.module.ts | 28 +- src/app/app.component.ts | 28 +- src/app/app.module.ts | 28 +- src/app/app.routes.ts | 28 +- src/app/common/common.module.ts | 28 +- .../directives/node-copy.directive.spec.ts | 28 +- .../common/directives/node-copy.directive.ts | 28 +- .../directives/node-delete.directive.spec.ts | 28 +- .../directives/node-delete.directive.ts | 28 +- .../node-download.directive.spec.ts | 28 +- .../directives/node-download.directive.ts | 28 +- .../directives/node-move.directive.spec.ts | 28 +- .../common/directives/node-move.directive.ts | 28 +- .../node-permanent-delete.directive.spec.ts | 28 +- .../node-permanent-delete.directive.ts | 28 +- .../directives/node-restore.directive.spec.ts | 28 +- .../directives/node-restore.directive.ts | 28 +- src/app/common/material.module.ts | 28 +- .../services/browsing-files.service.spec.ts | 28 +- .../common/services/browsing-files.service.ts | 28 +- .../services/content-management.service.ts | 28 +- .../services/node-actions.service.spec.ts | 28 +- .../common/services/node-actions.service.ts | 28 +- src/app/components/about/about.component.ts | 28 +- .../current-user.component.spec.ts | 28 +- .../current-user/current-user.component.ts | 28 +- .../favorites/favorites.component.spec.ts | 28 +- .../favorites/favorites.component.ts | 28 +- .../components/files/files.component.spec.ts | 28 +- src/app/components/files/files.component.ts | 28 +- .../generic-error/generic-error.component.ts | 28 +- .../header/header.component.spec.ts | 28 +- src/app/components/header/header.component.ts | 28 +- .../layout/layout.component.spec.ts | 28 +- src/app/components/layout/layout.component.ts | 28 +- .../libraries/libraries.component.spec.ts | 28 +- .../libraries/libraries.component.ts | 28 +- .../location-link/location-link.component.ts | 25 ++ .../components/login/login.component.spec.ts | 28 +- src/app/components/login/login.component.ts | 28 +- src/app/components/page.component.spec.ts | 28 +- src/app/components/page.component.ts | 28 +- .../components/preview/preview.component.ts | 28 +- .../recent-files.component.spec.ts | 28 +- .../recent-files/recent-files.component.ts | 28 +- .../search/search.component.spec.ts | 28 +- src/app/components/search/search.component.ts | 28 +- .../shared-files.component.spec.ts | 28 +- .../shared-files/shared-files.component.ts | 28 +- .../sidenav/sidenav.component.spec.ts | 28 +- .../components/sidenav/sidenav.component.ts | 28 +- .../trashcan/trashcan.component.spec.ts | 28 +- .../components/trashcan/trashcan.component.ts | 28 +- src/environments/environment.prod.ts | 28 +- src/environments/environment.ts | 28 +- src/main.ts | 28 +- src/polyfills.ts | 28 +- src/test.ts | 28 +- src/typings.d.ts | 28 +- 121 files changed, 2295 insertions(+), 1322 deletions(-) diff --git a/LICENSE b/LICENSE index 430d42bbe..65c5ca88a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,177 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -1. Definitions. + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. + 0. Additional Definitions. - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. + 1. Exception to Section 3 of the GNU GPL. - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. + 2. Conveying Modified Versions. -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and + 3. Object Code Incorporating Material from Library Header Files. - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. + b) Accompany the object code with a copy of the GNU GPL and this license + document. - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. + 4. Combined Works. -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. + d) Do one of the following: -END OF TERMS AND CONDITIONS + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/e2e/components/component.ts b/e2e/components/component.ts index 3d38761ef..24d7f1cb1 100644 --- a/e2e/components/component.ts +++ b/e2e/components/component.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { ElementFinder, element, by, ExpectedConditions as EC, browser } from 'protractor'; diff --git a/e2e/components/components.ts b/e2e/components/components.ts index cfcca0826..70992f11d 100644 --- a/e2e/components/components.ts +++ b/e2e/components/components.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ export * from './login/login'; diff --git a/e2e/components/data-table/data-table.ts b/e2e/components/data-table/data-table.ts index 5ed9adee3..ea809fcf3 100644 --- a/e2e/components/data-table/data-table.ts +++ b/e2e/components/data-table/data-table.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { ElementFinder, ElementArrayFinder, promise, by, browser, ExpectedConditions as EC, protractor } from 'protractor'; diff --git a/e2e/components/dialog/create-edit-folder-dialog.ts b/e2e/components/dialog/create-edit-folder-dialog.ts index dbb1aec84..a6d7f29e0 100644 --- a/e2e/components/dialog/create-edit-folder-dialog.ts +++ b/e2e/components/dialog/create-edit-folder-dialog.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { ElementFinder, by, browser, protractor, ExpectedConditions as EC, promise } from 'protractor'; diff --git a/e2e/components/header/header.ts b/e2e/components/header/header.ts index 1ef2d47b5..be8d271d4 100644 --- a/e2e/components/header/header.ts +++ b/e2e/components/header/header.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { ElementFinder, by } from 'protractor'; diff --git a/e2e/components/header/user-info.ts b/e2e/components/header/user-info.ts index cb9496a3d..da110f0a9 100644 --- a/e2e/components/header/user-info.ts +++ b/e2e/components/header/user-info.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { ElementFinder, ElementArrayFinder, element, by, promise } from 'protractor'; diff --git a/e2e/components/login/login.ts b/e2e/components/login/login.ts index ceb89a61c..307059de3 100644 --- a/e2e/components/login/login.ts +++ b/e2e/components/login/login.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { by, ElementFinder, promise } from 'protractor'; diff --git a/e2e/components/menu/menu.ts b/e2e/components/menu/menu.ts index d5d9a3bed..1f94354ec 100644 --- a/e2e/components/menu/menu.ts +++ b/e2e/components/menu/menu.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { ElementFinder, ElementArrayFinder, by, browser, ExpectedConditions as EC, promise } from 'protractor'; diff --git a/e2e/components/pagination/pagination.ts b/e2e/components/pagination/pagination.ts index 24c36364d..7c52e3312 100644 --- a/e2e/components/pagination/pagination.ts +++ b/e2e/components/pagination/pagination.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { ElementFinder, ElementArrayFinder, promise, by, browser, ExpectedConditions as EC } from 'protractor'; diff --git a/e2e/components/sidenav/sidenav.ts b/e2e/components/sidenav/sidenav.ts index 9d31bef48..406a5f8bb 100644 --- a/e2e/components/sidenav/sidenav.ts +++ b/e2e/components/sidenav/sidenav.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { ElementFinder, ElementArrayFinder, by, promise } from 'protractor'; diff --git a/e2e/components/toolbar/toolbar-actions.ts b/e2e/components/toolbar/toolbar-actions.ts index 23939ea84..5998cdedf 100644 --- a/e2e/components/toolbar/toolbar-actions.ts +++ b/e2e/components/toolbar/toolbar-actions.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { ElementFinder, ElementArrayFinder, by, promise } from 'protractor'; diff --git a/e2e/components/toolbar/toolbar-breadcrumb.ts b/e2e/components/toolbar/toolbar-breadcrumb.ts index 5a832891a..872782a6d 100644 --- a/e2e/components/toolbar/toolbar-breadcrumb.ts +++ b/e2e/components/toolbar/toolbar-breadcrumb.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { ElementFinder, ElementArrayFinder, by, promise } from 'protractor'; diff --git a/e2e/components/toolbar/toolbar.ts b/e2e/components/toolbar/toolbar.ts index e33a93251..ed0bbe4d5 100644 --- a/e2e/components/toolbar/toolbar.ts +++ b/e2e/components/toolbar/toolbar.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { ElementFinder, ElementArrayFinder, by } from 'protractor'; diff --git a/e2e/configs.ts b/e2e/configs.ts index ed8615b8f..f0f304335 100644 --- a/e2e/configs.ts +++ b/e2e/configs.ts @@ -1,3 +1,28 @@ +/*! + * @license + * Alfresco Example Content Application + * + * Copyright (C) 2005 - 2017 Alfresco Software Limited + * + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ + export const BROWSER_RESOLUTION_WIDTH = 1200; export const BROWSER_RESOLUTION_HEIGHT = 800; diff --git a/e2e/pages/browsing-page.ts b/e2e/pages/browsing-page.ts index b5602458c..033859939 100644 --- a/e2e/pages/browsing-page.ts +++ b/e2e/pages/browsing-page.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { promise } from 'protractor'; diff --git a/e2e/pages/login-page.ts b/e2e/pages/login-page.ts index b4c1dbfb0..0a64257b0 100644 --- a/e2e/pages/login-page.ts +++ b/e2e/pages/login-page.ts @@ -1,20 +1,27 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ - import { browser, ExpectedConditions as EC, promise } from 'protractor'; import { LoginComponent } from '../components/components'; import { Page } from './page'; diff --git a/e2e/pages/logout-page.ts b/e2e/pages/logout-page.ts index ee2fac198..e250a9627 100644 --- a/e2e/pages/logout-page.ts +++ b/e2e/pages/logout-page.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { promise } from 'protractor'; diff --git a/e2e/pages/page.ts b/e2e/pages/page.ts index 0867bfa45..2ac3b031b 100644 --- a/e2e/pages/page.ts +++ b/e2e/pages/page.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser, element, by, ElementFinder, promise, ExpectedConditions as EC } from 'protractor'; diff --git a/e2e/pages/pages.ts b/e2e/pages/pages.ts index 4e1dbbc46..ce52fea89 100644 --- a/e2e/pages/pages.ts +++ b/e2e/pages/pages.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ export * from './browsing-page'; diff --git a/e2e/suites/actions/create-folder.test.ts b/e2e/suites/actions/create-folder.test.ts index cba5d30c1..b26b47686 100644 --- a/e2e/suites/actions/create-folder.test.ts +++ b/e2e/suites/actions/create-folder.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { protractor, browser, by, ElementFinder } from 'protractor'; diff --git a/e2e/suites/actions/edit-folder.test.ts b/e2e/suites/actions/edit-folder.test.ts index 3548d76ac..7a8826620 100644 --- a/e2e/suites/actions/edit-folder.test.ts +++ b/e2e/suites/actions/edit-folder.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { protractor, element, browser, by, ElementFinder, promise } from 'protractor'; diff --git a/e2e/suites/actions/permanently-delete.test.ts b/e2e/suites/actions/permanently-delete.test.ts index ca47b1d88..7cf88a95f 100644 --- a/e2e/suites/actions/permanently-delete.test.ts +++ b/e2e/suites/actions/permanently-delete.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser, protractor, promise } from 'protractor'; diff --git a/e2e/suites/actions/restore.test.ts b/e2e/suites/actions/restore.test.ts index ddb0d6631..179408cb5 100644 --- a/e2e/suites/actions/restore.test.ts +++ b/e2e/suites/actions/restore.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser, protractor, promise } from 'protractor'; diff --git a/e2e/suites/actions/toolbar-multiple-selection.test.ts b/e2e/suites/actions/toolbar-multiple-selection.test.ts index 8401919ef..7a0f00ab8 100644 --- a/e2e/suites/actions/toolbar-multiple-selection.test.ts +++ b/e2e/suites/actions/toolbar-multiple-selection.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser, protractor, promise } from 'protractor'; diff --git a/e2e/suites/actions/toolbar-single-selection.test.ts b/e2e/suites/actions/toolbar-single-selection.test.ts index de976bbc4..9721ef5d0 100644 --- a/e2e/suites/actions/toolbar-single-selection.test.ts +++ b/e2e/suites/actions/toolbar-single-selection.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser, protractor, promise } from 'protractor'; diff --git a/e2e/suites/application/page-titles.test.ts b/e2e/suites/application/page-titles.test.ts index 6ce0a6583..69ee99f2e 100644 --- a/e2e/suites/application/page-titles.test.ts +++ b/e2e/suites/application/page-titles.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser } from 'protractor'; diff --git a/e2e/suites/authentication/login.test.ts b/e2e/suites/authentication/login.test.ts index 46ab49470..50f976259 100644 --- a/e2e/suites/authentication/login.test.ts +++ b/e2e/suites/authentication/login.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser } from 'protractor'; diff --git a/e2e/suites/authentication/logout.test.ts b/e2e/suites/authentication/logout.test.ts index bc98cd2b5..4e4a78212 100644 --- a/e2e/suites/authentication/logout.test.ts +++ b/e2e/suites/authentication/logout.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser } from 'protractor'; diff --git a/e2e/suites/list-views/empty-list.test.ts b/e2e/suites/list-views/empty-list.test.ts index d5c2d0856..5e20cb87f 100644 --- a/e2e/suites/list-views/empty-list.test.ts +++ b/e2e/suites/list-views/empty-list.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { APP_ROUTES, SITE_VISIBILITY, SITE_ROLES, SIDEBAR_LABELS } from '../../configs'; diff --git a/e2e/suites/list-views/favorites.test.ts b/e2e/suites/list-views/favorites.test.ts index 6b0e76bfd..8073b7d96 100644 --- a/e2e/suites/list-views/favorites.test.ts +++ b/e2e/suites/list-views/favorites.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser, by } from 'protractor'; diff --git a/e2e/suites/list-views/file-libraries.test.ts b/e2e/suites/list-views/file-libraries.test.ts index b324cbd37..89ac75a5b 100644 --- a/e2e/suites/list-views/file-libraries.test.ts +++ b/e2e/suites/list-views/file-libraries.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser, by } from 'protractor'; diff --git a/e2e/suites/list-views/personal-files.test.ts b/e2e/suites/list-views/personal-files.test.ts index 052afe77f..7a26d04eb 100644 --- a/e2e/suites/list-views/personal-files.test.ts +++ b/e2e/suites/list-views/personal-files.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser } from 'protractor'; diff --git a/e2e/suites/list-views/recent-files.test.ts b/e2e/suites/list-views/recent-files.test.ts index 361c666a3..6ce587ec5 100644 --- a/e2e/suites/list-views/recent-files.test.ts +++ b/e2e/suites/list-views/recent-files.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser, by } from 'protractor'; diff --git a/e2e/suites/list-views/shared-files.test.ts b/e2e/suites/list-views/shared-files.test.ts index 1eea1c2f6..c4bb2cddc 100644 --- a/e2e/suites/list-views/shared-files.test.ts +++ b/e2e/suites/list-views/shared-files.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser, by } from 'protractor'; diff --git a/e2e/suites/list-views/trash.test.ts b/e2e/suites/list-views/trash.test.ts index 8fb1e2d5e..7c4969bc4 100644 --- a/e2e/suites/list-views/trash.test.ts +++ b/e2e/suites/list-views/trash.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser, by } from 'protractor'; diff --git a/e2e/suites/navigation/side-navigation.test.ts b/e2e/suites/navigation/side-navigation.test.ts index 826c4a520..569c0fc5b 100644 --- a/e2e/suites/navigation/side-navigation.test.ts +++ b/e2e/suites/navigation/side-navigation.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser } from 'protractor'; diff --git a/e2e/suites/pagination/pag-favorites.test.ts b/e2e/suites/pagination/pag-favorites.test.ts index 921252815..18c86311d 100644 --- a/e2e/suites/pagination/pag-favorites.test.ts +++ b/e2e/suites/pagination/pag-favorites.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser, protractor, promise } from 'protractor'; diff --git a/e2e/suites/pagination/pag-personal-files.test.ts b/e2e/suites/pagination/pag-personal-files.test.ts index 6f7e23e49..aed53568d 100644 --- a/e2e/suites/pagination/pag-personal-files.test.ts +++ b/e2e/suites/pagination/pag-personal-files.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser, protractor, promise } from 'protractor'; diff --git a/e2e/suites/pagination/pag-recent-files.test.ts b/e2e/suites/pagination/pag-recent-files.test.ts index efb446584..7a1089e12 100644 --- a/e2e/suites/pagination/pag-recent-files.test.ts +++ b/e2e/suites/pagination/pag-recent-files.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser, protractor, promise } from 'protractor'; diff --git a/e2e/suites/pagination/pag-shared-files.test.ts b/e2e/suites/pagination/pag-shared-files.test.ts index 105066eea..ac6faca9c 100644 --- a/e2e/suites/pagination/pag-shared-files.test.ts +++ b/e2e/suites/pagination/pag-shared-files.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser, protractor, promise } from 'protractor'; diff --git a/e2e/suites/pagination/pag-trash.test.ts b/e2e/suites/pagination/pag-trash.test.ts index 4cf0d6209..4f318877c 100644 --- a/e2e/suites/pagination/pag-trash.test.ts +++ b/e2e/suites/pagination/pag-trash.test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser, protractor, promise } from 'protractor'; diff --git a/e2e/utilities/repo-client/apis/favorites/favorites-api.ts b/e2e/utilities/repo-client/apis/favorites/favorites-api.ts index c8ab9a945..dd1cd7b47 100644 --- a/e2e/utilities/repo-client/apis/favorites/favorites-api.ts +++ b/e2e/utilities/repo-client/apis/favorites/favorites-api.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { promise } from 'protractor'; diff --git a/e2e/utilities/repo-client/apis/nodes/node-body-create.ts b/e2e/utilities/repo-client/apis/nodes/node-body-create.ts index ba3a5ceb4..31c369d34 100644 --- a/e2e/utilities/repo-client/apis/nodes/node-body-create.ts +++ b/e2e/utilities/repo-client/apis/nodes/node-body-create.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ export const NODE_TYPE_FILE = 'cm:content'; diff --git a/e2e/utilities/repo-client/apis/nodes/node-content-tree.ts b/e2e/utilities/repo-client/apis/nodes/node-content-tree.ts index f9f68deaf..45516429b 100644 --- a/e2e/utilities/repo-client/apis/nodes/node-content-tree.ts +++ b/e2e/utilities/repo-client/apis/nodes/node-content-tree.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { NodeBodyCreate, NODE_TYPE_FILE, NODE_TYPE_FOLDER, NODE_TITLE, NODE_DESCRIPTION } from './node-body-create'; diff --git a/e2e/utilities/repo-client/apis/nodes/nodes-api.ts b/e2e/utilities/repo-client/apis/nodes/nodes-api.ts index 90eb669c0..410cebc92 100644 --- a/e2e/utilities/repo-client/apis/nodes/nodes-api.ts +++ b/e2e/utilities/repo-client/apis/nodes/nodes-api.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { RepoApi } from '../repo-api'; diff --git a/e2e/utilities/repo-client/apis/people/people-api-models.ts b/e2e/utilities/repo-client/apis/people/people-api-models.ts index 46f7f4feb..d00dc7dd4 100644 --- a/e2e/utilities/repo-client/apis/people/people-api-models.ts +++ b/e2e/utilities/repo-client/apis/people/people-api-models.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ export class Person { diff --git a/e2e/utilities/repo-client/apis/people/people-api.ts b/e2e/utilities/repo-client/apis/people/people-api.ts index 5b9a6ecec..b13811080 100644 --- a/e2e/utilities/repo-client/apis/people/people-api.ts +++ b/e2e/utilities/repo-client/apis/people/people-api.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { RepoApi } from '../repo-api'; diff --git a/e2e/utilities/repo-client/apis/repo-api.ts b/e2e/utilities/repo-client/apis/repo-api.ts index 78cc802ae..0a7993f9c 100644 --- a/e2e/utilities/repo-client/apis/repo-api.ts +++ b/e2e/utilities/repo-client/apis/repo-api.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { RestClient, RestClientArgs, RestClientResponse } from '../../rest-client/rest-client'; diff --git a/e2e/utilities/repo-client/apis/shared-links/shared-links-api.ts b/e2e/utilities/repo-client/apis/shared-links/shared-links-api.ts index c04cdcfd1..537aef7a5 100644 --- a/e2e/utilities/repo-client/apis/shared-links/shared-links-api.ts +++ b/e2e/utilities/repo-client/apis/shared-links/shared-links-api.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { RepoApi } from '../repo-api'; diff --git a/e2e/utilities/repo-client/apis/sites/sites-api-models.ts b/e2e/utilities/repo-client/apis/sites/sites-api-models.ts index 07280f753..f6729c1d7 100644 --- a/e2e/utilities/repo-client/apis/sites/sites-api-models.ts +++ b/e2e/utilities/repo-client/apis/sites/sites-api-models.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { SITE_VISIBILITY } from '../../../../configs'; diff --git a/e2e/utilities/repo-client/apis/sites/sites-api.ts b/e2e/utilities/repo-client/apis/sites/sites-api.ts index cb316daa1..acf25c04b 100644 --- a/e2e/utilities/repo-client/apis/sites/sites-api.ts +++ b/e2e/utilities/repo-client/apis/sites/sites-api.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { RepoApi } from '../repo-api'; diff --git a/e2e/utilities/repo-client/apis/trashcan/trashcan-api.ts b/e2e/utilities/repo-client/apis/trashcan/trashcan-api.ts index 7a0e143e7..935fc19b5 100644 --- a/e2e/utilities/repo-client/apis/trashcan/trashcan-api.ts +++ b/e2e/utilities/repo-client/apis/trashcan/trashcan-api.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { RepoApi } from '../repo-api'; diff --git a/e2e/utilities/repo-client/repo-client-models.ts b/e2e/utilities/repo-client/repo-client-models.ts index 2bc16c1c8..46222947b 100644 --- a/e2e/utilities/repo-client/repo-client-models.ts +++ b/e2e/utilities/repo-client/repo-client-models.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { diff --git a/e2e/utilities/repo-client/repo-client.ts b/e2e/utilities/repo-client/repo-client.ts index 2c0327cce..8ffe00b95 100644 --- a/e2e/utilities/repo-client/repo-client.ts +++ b/e2e/utilities/repo-client/repo-client.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { RepoClientAuth, RepoClientConfig } from './repo-client-models'; diff --git a/e2e/utilities/reporters/console/console-logger.ts b/e2e/utilities/reporters/console/console-logger.ts index 80b1f786c..8b82d83da 100644 --- a/e2e/utilities/reporters/console/console-logger.ts +++ b/e2e/utilities/reporters/console/console-logger.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ /* tslint:disable */ diff --git a/e2e/utilities/reporters/console/console.ts b/e2e/utilities/reporters/console/console.ts index 8223def47..7985e52c5 100644 --- a/e2e/utilities/reporters/console/console.ts +++ b/e2e/utilities/reporters/console/console.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { log } from './console-logger'; diff --git a/e2e/utilities/rest-client/rest-client-models.ts b/e2e/utilities/rest-client/rest-client-models.ts index 918bebee4..89e3c9916 100644 --- a/e2e/utilities/rest-client/rest-client-models.ts +++ b/e2e/utilities/rest-client/rest-client-models.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ interface RequestConfig { diff --git a/e2e/utilities/rest-client/rest-client.ts b/e2e/utilities/rest-client/rest-client.ts index 7f457e46e..45b4c1ca8 100644 --- a/e2e/utilities/rest-client/rest-client.ts +++ b/e2e/utilities/rest-client/rest-client.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Client } from 'node-rest-client'; diff --git a/e2e/utilities/utils.ts b/e2e/utilities/utils.ts index 616adb672..368b7aa43 100644 --- a/e2e/utilities/utils.ts +++ b/e2e/utilities/utils.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { browser, promise } from 'protractor'; diff --git a/package.json b/package.json index 48be2645e..334a7cba8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "alfresco-content-app", "version": "0.1.0", - "license": "Apache-2.0", + "license": "LGPL-3.0", "scripts": { "ng": "ng", "start": "npm run server-versions && ng serve --open", diff --git a/postbuild-dev.js b/postbuild-dev.js index 02544050d..abd88c43e 100644 --- a/postbuild-dev.js +++ b/postbuild-dev.js @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ var fs = require('fs'); diff --git a/src/app/adf.module.ts b/src/app/adf.module.ts index 4aeec2f34..15f8206b1 100644 --- a/src/app/adf.module.ts +++ b/src/app/adf.module.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { NgModule } from '@angular/core'; diff --git a/src/app/app.component.ts b/src/app/app.component.ts index ba82c5f99..4773c8632 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Component, OnInit } from '@angular/core'; diff --git a/src/app/app.module.ts b/src/app/app.module.ts index f4eecb42d..5548ff91d 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { BrowserModule } from '@angular/platform-browser'; diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index acd9e6729..3a28d1cef 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Routes } from '@angular/router'; diff --git a/src/app/common/common.module.ts b/src/app/common/common.module.ts index 31ce023a4..c23ad7a14 100644 --- a/src/app/common/common.module.ts +++ b/src/app/common/common.module.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { NgModule } from '@angular/core'; diff --git a/src/app/common/directives/node-copy.directive.spec.ts b/src/app/common/directives/node-copy.directive.spec.ts index 933ca54c3..734527a33 100644 --- a/src/app/common/directives/node-copy.directive.spec.ts +++ b/src/app/common/directives/node-copy.directive.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Component, DebugElement } from '@angular/core'; diff --git a/src/app/common/directives/node-copy.directive.ts b/src/app/common/directives/node-copy.directive.ts index e6a711afa..5cb250cce 100644 --- a/src/app/common/directives/node-copy.directive.ts +++ b/src/app/common/directives/node-copy.directive.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Directive, HostListener, Input } from '@angular/core'; diff --git a/src/app/common/directives/node-delete.directive.spec.ts b/src/app/common/directives/node-delete.directive.spec.ts index d53509d22..e681cd699 100644 --- a/src/app/common/directives/node-delete.directive.spec.ts +++ b/src/app/common/directives/node-delete.directive.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { TestBed, ComponentFixture, fakeAsync } from '@angular/core/testing'; diff --git a/src/app/common/directives/node-delete.directive.ts b/src/app/common/directives/node-delete.directive.ts index 266c9b814..42017244d 100644 --- a/src/app/common/directives/node-delete.directive.ts +++ b/src/app/common/directives/node-delete.directive.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Directive, HostListener, Input } from '@angular/core'; diff --git a/src/app/common/directives/node-download.directive.spec.ts b/src/app/common/directives/node-download.directive.spec.ts index 70b665ce7..82aba7dfe 100644 --- a/src/app/common/directives/node-download.directive.spec.ts +++ b/src/app/common/directives/node-download.directive.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { TestBed, ComponentFixture } from '@angular/core/testing'; diff --git a/src/app/common/directives/node-download.directive.ts b/src/app/common/directives/node-download.directive.ts index 5107bcc52..7c9a9a777 100644 --- a/src/app/common/directives/node-download.directive.ts +++ b/src/app/common/directives/node-download.directive.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Directive, Input, HostListener } from '@angular/core'; diff --git a/src/app/common/directives/node-move.directive.spec.ts b/src/app/common/directives/node-move.directive.spec.ts index 9476e6734..8c57e73df 100644 --- a/src/app/common/directives/node-move.directive.spec.ts +++ b/src/app/common/directives/node-move.directive.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Component, DebugElement } from '@angular/core'; diff --git a/src/app/common/directives/node-move.directive.ts b/src/app/common/directives/node-move.directive.ts index 081f2ae8a..6bb4bcbfe 100644 --- a/src/app/common/directives/node-move.directive.ts +++ b/src/app/common/directives/node-move.directive.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Directive, HostListener, Input } from '@angular/core'; diff --git a/src/app/common/directives/node-permanent-delete.directive.spec.ts b/src/app/common/directives/node-permanent-delete.directive.spec.ts index 36287380b..c16659601 100644 --- a/src/app/common/directives/node-permanent-delete.directive.spec.ts +++ b/src/app/common/directives/node-permanent-delete.directive.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Component, DebugElement } from '@angular/core'; diff --git a/src/app/common/directives/node-permanent-delete.directive.ts b/src/app/common/directives/node-permanent-delete.directive.ts index 9f811b6b2..72417fabf 100644 --- a/src/app/common/directives/node-permanent-delete.directive.ts +++ b/src/app/common/directives/node-permanent-delete.directive.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Directive, ElementRef, HostListener, Input } from '@angular/core'; diff --git a/src/app/common/directives/node-restore.directive.spec.ts b/src/app/common/directives/node-restore.directive.spec.ts index 93452c65a..314f2ade7 100644 --- a/src/app/common/directives/node-restore.directive.spec.ts +++ b/src/app/common/directives/node-restore.directive.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Component, DebugElement } from '@angular/core'; diff --git a/src/app/common/directives/node-restore.directive.ts b/src/app/common/directives/node-restore.directive.ts index d14880b91..a0a5109b6 100644 --- a/src/app/common/directives/node-restore.directive.ts +++ b/src/app/common/directives/node-restore.directive.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Directive, ElementRef, HostListener, Input } from '@angular/core'; diff --git a/src/app/common/material.module.ts b/src/app/common/material.module.ts index 8aed00ac3..b516f4ec6 100644 --- a/src/app/common/material.module.ts +++ b/src/app/common/material.module.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { NgModule } from '@angular/core'; diff --git a/src/app/common/services/browsing-files.service.spec.ts b/src/app/common/services/browsing-files.service.spec.ts index 1f155c4c1..121bf4914 100644 --- a/src/app/common/services/browsing-files.service.spec.ts +++ b/src/app/common/services/browsing-files.service.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { BrowsingFilesService } from './browsing-files.service'; diff --git a/src/app/common/services/browsing-files.service.ts b/src/app/common/services/browsing-files.service.ts index dfd8eddc5..c47067f0f 100644 --- a/src/app/common/services/browsing-files.service.ts +++ b/src/app/common/services/browsing-files.service.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Subject } from 'rxjs/Rx'; diff --git a/src/app/common/services/content-management.service.ts b/src/app/common/services/content-management.service.ts index 81099f07f..477a0e970 100644 --- a/src/app/common/services/content-management.service.ts +++ b/src/app/common/services/content-management.service.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Subject } from 'rxjs/Rx'; diff --git a/src/app/common/services/node-actions.service.spec.ts b/src/app/common/services/node-actions.service.spec.ts index 73878032c..618b31841 100644 --- a/src/app/common/services/node-actions.service.spec.ts +++ b/src/app/common/services/node-actions.service.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { TestBed, async } from '@angular/core/testing'; diff --git a/src/app/common/services/node-actions.service.ts b/src/app/common/services/node-actions.service.ts index 21d4e17a8..239e30066 100644 --- a/src/app/common/services/node-actions.service.ts +++ b/src/app/common/services/node-actions.service.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { EventEmitter, Injectable } from '@angular/core'; diff --git a/src/app/components/about/about.component.ts b/src/app/components/about/about.component.ts index 27f61bed6..d337bbab1 100644 --- a/src/app/components/about/about.component.ts +++ b/src/app/components/about/about.component.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Component, OnInit } from '@angular/core'; diff --git a/src/app/components/current-user/current-user.component.spec.ts b/src/app/components/current-user/current-user.component.spec.ts index 37e9f83a5..9f3e76188 100644 --- a/src/app/components/current-user/current-user.component.spec.ts +++ b/src/app/components/current-user/current-user.component.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { TestBed, async } from '@angular/core/testing'; diff --git a/src/app/components/current-user/current-user.component.ts b/src/app/components/current-user/current-user.component.ts index 259cc6c71..cc07ceac7 100644 --- a/src/app/components/current-user/current-user.component.ts +++ b/src/app/components/current-user/current-user.component.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Component, OnInit, OnDestroy } from '@angular/core'; diff --git a/src/app/components/favorites/favorites.component.spec.ts b/src/app/components/favorites/favorites.component.spec.ts index ec43b3ce3..c121bd7ea 100644 --- a/src/app/components/favorites/favorites.component.spec.ts +++ b/src/app/components/favorites/favorites.component.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Router } from '@angular/router'; diff --git a/src/app/components/favorites/favorites.component.ts b/src/app/components/favorites/favorites.component.ts index 683688bc1..99b858404 100644 --- a/src/app/components/favorites/favorites.component.ts +++ b/src/app/components/favorites/favorites.component.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Component, ViewChild, OnInit, OnDestroy } from '@angular/core'; diff --git a/src/app/components/files/files.component.spec.ts b/src/app/components/files/files.component.spec.ts index 2d5580834..266be3433 100644 --- a/src/app/components/files/files.component.spec.ts +++ b/src/app/components/files/files.component.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Observable } from 'rxjs/Rx'; diff --git a/src/app/components/files/files.component.ts b/src/app/components/files/files.component.ts index 01de9c01a..fedf63a78 100644 --- a/src/app/components/files/files.component.ts +++ b/src/app/components/files/files.component.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Observable, Subscription } from 'rxjs/Rx'; diff --git a/src/app/components/generic-error/generic-error.component.ts b/src/app/components/generic-error/generic-error.component.ts index 0325292a0..b5c6ad3bb 100644 --- a/src/app/components/generic-error/generic-error.component.ts +++ b/src/app/components/generic-error/generic-error.component.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Component } from '@angular/core'; diff --git a/src/app/components/header/header.component.spec.ts b/src/app/components/header/header.component.spec.ts index 18dba44ae..fb1d51728 100644 --- a/src/app/components/header/header.component.spec.ts +++ b/src/app/components/header/header.component.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { TestBed } from '@angular/core/testing'; diff --git a/src/app/components/header/header.component.ts b/src/app/components/header/header.component.ts index 651cf1de3..cd9636ea2 100644 --- a/src/app/components/header/header.component.ts +++ b/src/app/components/header/header.component.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { DomSanitizer } from '@angular/platform-browser'; diff --git a/src/app/components/layout/layout.component.spec.ts b/src/app/components/layout/layout.component.spec.ts index 74e731b63..f4fc2930c 100644 --- a/src/app/components/layout/layout.component.spec.ts +++ b/src/app/components/layout/layout.component.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { RouterTestingModule } from '@angular/router/testing'; diff --git a/src/app/components/layout/layout.component.ts b/src/app/components/layout/layout.component.ts index 6669d5392..a6b17facf 100644 --- a/src/app/components/layout/layout.component.ts +++ b/src/app/components/layout/layout.component.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Component, OnInit, OnDestroy } from '@angular/core'; diff --git a/src/app/components/libraries/libraries.component.spec.ts b/src/app/components/libraries/libraries.component.spec.ts index 614454851..6498569a7 100644 --- a/src/app/components/libraries/libraries.component.spec.ts +++ b/src/app/components/libraries/libraries.component.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Router } from '@angular/router'; diff --git a/src/app/components/libraries/libraries.component.ts b/src/app/components/libraries/libraries.component.ts index e6b141bc5..3185aec72 100644 --- a/src/app/components/libraries/libraries.component.ts +++ b/src/app/components/libraries/libraries.component.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Component, ViewChild } from '@angular/core'; diff --git a/src/app/components/location-link/location-link.component.ts b/src/app/components/location-link/location-link.component.ts index cb09d809a..5e4355cf9 100644 --- a/src/app/components/location-link/location-link.component.ts +++ b/src/app/components/location-link/location-link.component.ts @@ -1,3 +1,28 @@ +/*! + * @license + * Alfresco Example Content Application + * + * Copyright (C) 2005 - 2017 Alfresco Software Limited + * + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ + import { Component, Input, ChangeDetectionStrategy, OnInit, ViewEncapsulation } from '@angular/core'; import { AlfrescoApiService, DataColumn, DataRow, DataTableAdapter } from '@alfresco/adf-core'; import { PathInfoEntity, AlfrescoApi } from 'alfresco-js-api'; diff --git a/src/app/components/login/login.component.spec.ts b/src/app/components/login/login.component.spec.ts index 46593234d..9cc027b04 100644 --- a/src/app/components/login/login.component.spec.ts +++ b/src/app/components/login/login.component.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { RouterTestingModule } from '@angular/router/testing'; diff --git a/src/app/components/login/login.component.ts b/src/app/components/login/login.component.ts index a06f1c8ff..3486e138f 100644 --- a/src/app/components/login/login.component.ts +++ b/src/app/components/login/login.component.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Component, OnInit } from '@angular/core'; diff --git a/src/app/components/page.component.spec.ts b/src/app/components/page.component.spec.ts index f8f922dff..a13c0ce5a 100644 --- a/src/app/components/page.component.spec.ts +++ b/src/app/components/page.component.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { TestBed } from '@angular/core/testing'; diff --git a/src/app/components/page.component.ts b/src/app/components/page.component.ts index 5b19a8f1d..48dd3ea02 100644 --- a/src/app/components/page.component.ts +++ b/src/app/components/page.component.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { MinimalNodeEntity, MinimalNodeEntryEntity, NodePaging, Pagination } from 'alfresco-js-api'; diff --git a/src/app/components/preview/preview.component.ts b/src/app/components/preview/preview.component.ts index 0fb23e858..99d92bfe9 100644 --- a/src/app/components/preview/preview.component.ts +++ b/src/app/components/preview/preview.component.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Component, OnInit, ViewEncapsulation } from '@angular/core'; diff --git a/src/app/components/recent-files/recent-files.component.spec.ts b/src/app/components/recent-files/recent-files.component.spec.ts index 6ddaf63f0..890c5a6f9 100644 --- a/src/app/components/recent-files/recent-files.component.spec.ts +++ b/src/app/components/recent-files/recent-files.component.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Router } from '@angular/router'; diff --git a/src/app/components/recent-files/recent-files.component.ts b/src/app/components/recent-files/recent-files.component.ts index b2e3dea74..a926a9b06 100644 --- a/src/app/components/recent-files/recent-files.component.ts +++ b/src/app/components/recent-files/recent-files.component.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Subscription } from 'rxjs/Rx'; diff --git a/src/app/components/search/search.component.spec.ts b/src/app/components/search/search.component.spec.ts index 87aaab153..946c4d268 100644 --- a/src/app/components/search/search.component.spec.ts +++ b/src/app/components/search/search.component.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { TestBed, async } from '@angular/core/testing'; diff --git a/src/app/components/search/search.component.ts b/src/app/components/search/search.component.ts index 964518de6..e4f14405e 100644 --- a/src/app/components/search/search.component.ts +++ b/src/app/components/search/search.component.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Component } from '@angular/core'; diff --git a/src/app/components/shared-files/shared-files.component.spec.ts b/src/app/components/shared-files/shared-files.component.spec.ts index 525acfe86..86df66efd 100644 --- a/src/app/components/shared-files/shared-files.component.spec.ts +++ b/src/app/components/shared-files/shared-files.component.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Router } from '@angular/router'; diff --git a/src/app/components/shared-files/shared-files.component.ts b/src/app/components/shared-files/shared-files.component.ts index 94004ec68..70265c61a 100644 --- a/src/app/components/shared-files/shared-files.component.ts +++ b/src/app/components/shared-files/shared-files.component.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core'; diff --git a/src/app/components/sidenav/sidenav.component.spec.ts b/src/app/components/sidenav/sidenav.component.spec.ts index 772af7158..99899f67c 100644 --- a/src/app/components/sidenav/sidenav.component.spec.ts +++ b/src/app/components/sidenav/sidenav.component.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { TestBed, async } from '@angular/core/testing'; diff --git a/src/app/components/sidenav/sidenav.component.ts b/src/app/components/sidenav/sidenav.component.ts index 39f84a80f..1f20ae809 100644 --- a/src/app/components/sidenav/sidenav.component.ts +++ b/src/app/components/sidenav/sidenav.component.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Subscription } from 'rxjs/Rx'; diff --git a/src/app/components/trashcan/trashcan.component.spec.ts b/src/app/components/trashcan/trashcan.component.spec.ts index 6257d8392..370c243fa 100644 --- a/src/app/components/trashcan/trashcan.component.spec.ts +++ b/src/app/components/trashcan/trashcan.component.spec.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { TestBed, async } from '@angular/core/testing'; diff --git a/src/app/components/trashcan/trashcan.component.ts b/src/app/components/trashcan/trashcan.component.ts index 1301e41d9..db9729e3b 100644 --- a/src/app/components/trashcan/trashcan.component.ts +++ b/src/app/components/trashcan/trashcan.component.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { Component, ViewChild, OnInit, OnDestroy } from '@angular/core'; diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts index eaeb69dab..9ada67c8b 100644 --- a/src/environments/environment.prod.ts +++ b/src/environments/environment.prod.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ export const environment = { diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 79529630e..fb927c5a3 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ // The file contents for the current environment will overwrite these during build. diff --git a/src/main.ts b/src/main.ts index c7340b910..4bbe7b1b2 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ import { enableProdMode } from '@angular/core'; diff --git a/src/polyfills.ts b/src/polyfills.ts index bbd1861fe..01d4bfcc9 100644 --- a/src/polyfills.ts +++ b/src/polyfills.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ /** diff --git a/src/test.ts b/src/test.ts index cadfaa6be..8ff73f8c9 100644 --- a/src/test.ts +++ b/src/test.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ // This file is required by karma.conf.js and loads recursively all the .spec and framework files diff --git a/src/typings.d.ts b/src/typings.d.ts index 5d0b0835f..47f677ed8 100644 --- a/src/typings.d.ts +++ b/src/typings.d.ts @@ -1,18 +1,26 @@ /*! * @license - * Copyright 2017 Alfresco Software, Ltd. + * Alfresco Example Content Application * - * 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 + * Copyright (C) 2005 - 2017 Alfresco Software Limited * - * http://www.apache.org/licenses/LICENSE-2.0 + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: * - * 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. + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . */ /* SystemJS module definition */ From ebd1d840f83a164aa449a37d78cfdc640bb6d1be Mon Sep 17 00:00:00 2001 From: suzanadirla Date: Mon, 11 Dec 2017 16:59:50 +0200 Subject: [PATCH 69/70] [ACA-1060] [Recent Files] Working copy is incorrectly displayed for a file locked for offline editing (#128) -moved common code to PageComponent to avoid duplication -used the imageResolver and onNodeSelect on recent files also --- src/app/components/files/files.component.html | 2 +- src/app/components/files/files.component.ts | 43 +---------------- src/app/components/page.component.ts | 47 +++++++++++++++++++ .../recent-files/recent-files.component.html | 4 +- .../recent-files/recent-files.component.ts | 5 +- 5 files changed, 57 insertions(+), 44 deletions(-) diff --git a/src/app/components/files/files.component.html b/src/app/components/files/files.component.html index 6ea76a7a9..6461f7859 100644 --- a/src/app/components/files/files.component.html +++ b/src/app/components/files/files.component.html @@ -101,7 +101,7 @@ [imageResolver]="imageResolver" (node-dblclick)="onNodeDoubleClick($event)" - (node-select)="onNodeSelect($event)"> + (node-select)="onNodeSelect($event, documentList)"> !item.entry.isLocked); - - const dataTable = this.documentList.dataTable; - if (dataTable && dataTable.data) { - const rows = dataTable.data.getRows(); - - if (rows && rows.length > 0) { - rows.forEach(r => { - if (r.getValue('isLocked')) { - r.isSelected = false; - } - }); - } - } - } - onBreadcrumbNavigate(route: PathElementEntity) { // todo: review this approach once 5.2.3 is out if (this.nodePath && this.nodePath.length > 2) { @@ -316,13 +286,4 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { } return false; } - - imageResolver(row: ShareDataRow): string | null { - const entry: MinimalNodeEntryEntity = row.node.entry; - - if (entry.isLocked) { - return '/assets/images/ic_lock_black_24dp_1x.png'; - } - return null; - } } diff --git a/src/app/components/page.component.ts b/src/app/components/page.component.ts index 48dd3ea02..64c19d0b3 100644 --- a/src/app/components/page.component.ts +++ b/src/app/components/page.component.ts @@ -25,6 +25,7 @@ import { MinimalNodeEntity, MinimalNodeEntryEntity, NodePaging, Pagination } from 'alfresco-js-api'; import { UserPreferencesService } from '@alfresco/adf-core'; +import { ShareDataRow } from '@alfresco/adf-content-services'; export abstract class PageComponent { @@ -38,6 +39,10 @@ export abstract class PageComponent { node: MinimalNodeEntryEntity; + static isLockedNode(node) { + return node.isLocked || (node.properties && node.properties['cm:lockType'] === 'READ_ONLY_LOCK'); + } + abstract fetchNodes(parentNodeId?: string, options?: any): void; constructor(private preferences: UserPreferencesService) { @@ -137,4 +142,46 @@ export abstract class PageComponent { onChangePageSize(event: Pagination): void { this.preferences.paginationSize = event.maxItems; } + + onNodeSelect(event, documentList) { + if (!!event.detail && !!event.detail.node) { + + const node: MinimalNodeEntryEntity = event.detail.node.entry; + if (node && PageComponent.isLockedNode(node)) { + this.unSelectLockedNodes(documentList); + } + } + } + + unSelectLockedNodes(documentList) { + documentList.selection = documentList.selection.filter(item => !PageComponent.isLockedNode(item.entry)); + + const dataTable = documentList.dataTable; + if (dataTable && dataTable.data) { + const rows = dataTable.data.getRows(); + + if (rows && rows.length > 0) { + rows.forEach(r => { + if (this.isLockedRow(r)) { + r.isSelected = false; + } + }); + } + } + } + + isLockedRow(row) { + return row.getValue('isLocked') || + (row.getValue('properties') && row.getValue('properties')['cm:lockType'] === 'READ_ONLY_LOCK'); + } + + imageResolver(row: ShareDataRow): string | null { + const entry: MinimalNodeEntryEntity = row.node.entry; + + if (PageComponent.isLockedNode(entry)) { + return '/assets/images/ic_lock_black_24dp_1x.png'; + } + return null; + } + } diff --git a/src/app/components/recent-files/recent-files.component.html b/src/app/components/recent-files/recent-files.component.html index b41966666..daaf8a436 100644 --- a/src/app/components/recent-files/recent-files.component.html +++ b/src/app/components/recent-files/recent-files.component.html @@ -77,7 +77,9 @@ [sorting]="[ 'modifiedAt', 'desc' ]" [contextMenuActions]="true" [contentActions]="false" - (node-dblclick)="onNodeDoubleClick($event.detail?.node?.entry)"> + [imageResolver]="imageResolver" + (node-dblclick)="onNodeDoubleClick($event.detail?.node?.entry)" + (node-select)="onNodeSelect($event, documentList)"> diff --git a/src/app/components/recent-files/recent-files.component.ts b/src/app/components/recent-files/recent-files.component.ts index a926a9b06..1e2617b36 100644 --- a/src/app/components/recent-files/recent-files.component.ts +++ b/src/app/components/recent-files/recent-files.component.ts @@ -63,7 +63,10 @@ export class RecentFilesComponent extends PageComponent implements OnInit, OnDes } onNodeDoubleClick(node: MinimalNodeEntryEntity) { - if (node && node.isFile) { + if (node && PageComponent.isLockedNode(node)) { + event.preventDefault(); + + } else if (node && node.isFile) { this.router.navigate(['/preview', node.id]); } } From 4789f93f1da969aa883eeafe523e32ea2a2e390f Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Mon, 11 Dec 2017 17:00:45 +0000 Subject: [PATCH 70/70] docs update --- docs/features.md | 132 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 127 insertions(+), 5 deletions(-) diff --git a/docs/features.md b/docs/features.md index 016f93f1f..a4f7f0784 100644 --- a/docs/features.md +++ b/docs/features.md @@ -35,15 +35,31 @@ a language switching menu can be displayed. The application [side navigation](https://github.com/Alfresco/alfresco-content-app/tree/master/src/app/components/sidenav) has two features; a button menu and navigation links. -The New button displays a menu which allows users to create a new folder, upload a file, and upload a folder. + +#### New button + +The New button displays a menu which provides three actions: + +- Create a new folder - provides a dialog which allows the creation of a new folder, the folder name is mandatory and the description is optional. +- Upload a file - invokes the operating system file browser and allows a user to select file(s) to upload into their current location in the content repository. +- Upload a folder - invokes the operating system folder browser and allows a user to select folder(s) to upload to their current location in the content repository. + +When an upload starts the [upload component](https://github.com/Alfresco/alfresco-ng2-components/tree/master/lib/content-services/upload) +is displayed which shows the user the progress of the uploads they have started. +The upload dialog persists on the screen and can be minimised; users are able to continue using the application whilst uploads are in progress +and uploads can be canceled which will stop uploads in progress or permanently delete already completed uploads. + +#### Navigation + The navigation links are configurable via the [app.config.json](https://github.com/Alfresco/alfresco-content-app/blob/master/src/app.config.json). Default configuration creates two sections. +See [How to work with the side navigation](/) for more information about configuring the side navigation. ### Document List Layout (3) The main area of the application is composed from a number of individual ADF components: -- [Breadcrumb](https://github.com/Alfresco/alfresco-ng2-components/tree/master/lib/content-services/breadcrumb) +- [Breadcrumb](https://alfresco.github.io/adf-component-catalog/components/BreadcrumbComponent.html) - [Toolbar](https://alfresco.github.io/adf-component-catalog/components/ToolbarComponent.html) - [Document List](https://alfresco.github.io/adf-component-catalog/components/DocumentListComponent.html) - [Pagination](https://alfresco.github.io/adf-component-catalog/components/PaginationComponent.html) @@ -55,15 +71,121 @@ The application has six different Document List views which contain subtle diffe Personal Files retrieves all content from the logged in users home area (`/User Homes//` in the repository); if the user is ‘admin’ who does not have a home folder then the repository root folder is shown. -Personal Files is the [Files component](https://github.com/Alfresco/alfresco-content-app/tree/development/src/app/components/files), +Personal Files is the [Files component](https://github.com/Alfresco/alfresco-content-app/tree/master/src/app/components/files), using the [Nodes API](https://api-explorer.alfresco.com/api-explorer/#/nodes). #### File Libraries File Libraries retrieves all the sites that the user is a member including what type of site it is; public, moderated or private. -File Libraries is the [Libraries component](https://github.com/Alfresco/alfresco-content-app/tree/development/src/app/components/libraries), +File Libraries is the [Libraries component](https://github.com/Alfresco/alfresco-content-app/tree/master/src/app/components/libraries), using the [Sites API](https://api-explorer.alfresco.com/api-explorer/#/sites). When a user opens one of their sites then the content for that sites document library is shown. -To display the files and folders from a site (`/Sites//Document Library/`) the [Files component](https://github.com/Alfresco/alfresco-content-app/tree/development/src/app/components/files), +To display the files and folders from a site (`/Sites//Document Library/`) the [Files component](https://github.com/Alfresco/alfresco-content-app/tree/master/src/app/components/files), using the [Nodes API](https://api-explorer.alfresco.com/api-explorer/#/nodes) is used. + +#### Shared Files + +The Shared Files view aggregates all files that have been shared using the QuickShare feature in the content repository. +The [Shared Files component](https://github.com/Alfresco/alfresco-content-app/tree/master/src/app/components/shared-files) +uses the [shared-links API](https://api-explorer.alfresco.com/api-explorer/#/shared-links) +and includes extra columns to display where the file is +[located](https://github.com/Alfresco/alfresco-content-app/tree/master/src/app/components/location-link) +in the content repository and who created the shared link. + +A feature for creating and removing Shared Links will be added in the future. + +#### Recent Files + +The Recent Files view shows all the files that have been modified within the last 30 days by the current user. +The [Recent Files](https://github.com/Alfresco/alfresco-content-app/tree/master/src/app/components/current-user) +component uses the Search API to query SOLR for changes made by the user and includes an extra column to display where the file is +[located](https://github.com/Alfresco/alfresco-content-app/tree/master/src/app/components/location-link) +in the content repository. + +#### Favorites + +The Favorites view shows all files and folders from the content repository that have been marked as a favorite by the current user. +The [Favorites](https://github.com/Alfresco/alfresco-content-app/tree/master/src/app/components/favorites) component uses the +[favorites](https://api-explorer.alfresco.com/api-explorer/#/favorites) API to retrieve all the favorite nodes for the user +and includes an extra column to display where the file is +[located](https://github.com/Alfresco/alfresco-content-app/tree/master/src/app/components/location-link) +in the content repository. + +#### Trash + +The Trash view shows all the items that a user has deleted, admin will see items deleted by all users. +The actions available in this view are Restore and Permanently Delete. +The [Trashcan](https://github.com/Alfresco/alfresco-content-app/tree/master/src/app/components/trashcan) component uses the +[trashcan](https://api-explorer.alfresco.com/api-explorer/#/trashcan) API to retrieve the deleted items +and perform the actions requested by the user and includes an extra column to display where the file is +[located](https://github.com/Alfresco/alfresco-content-app/tree/master/src/app/components/location-link) +in the content repository. + +#### Actions and the Actions Toolbar + +All the views incorporate the [toolbar](https://alfresco.github.io/adf-component-catalog/components/ToolbarComponent.html) +component from the Alfresco Application Development Framework; +apart from the Trash view they all display the following actions when the current user has the necessary permissions, +actions are automatically hidden when the user does not have permission. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ActionFileFolder
View + Opens the selected file using the [Preview](https://github.com/Alfresco/alfresco-content-app/tree/development/src/app/components/preview) component, + where the file cannot be displayed natively in a browser a PDF rendition is obtained from the repository. + Not applicable
DownloadDownloads single files to the users computer, when multiple files are selected they are compressed into a ZIP and then downloaded.Folders are automatically compressed into a ZIP and then downloaded to the users computer.
EditNot applicableThe folder name and description can be edited in a dialog.
Favorite + Toggle the favorite mark on or off for files and folders, when multiple items are selected + and one or more are not favorites then the mark will be toggled on. +
Copy + Files and folders can be copied into other locations in the content repository using the + [content-node-selector](https://alfresco.github.io/adf-component-catalog/components/ContentNodeSelectorComponent.html) component; + once the copy action has completed the user is notified and can undo the action (which permanently deletes the copies created). +
Move + Files and folders can be moved into other locations in the content repository using the + [content-node-selector](https://alfresco.github.io/adf-component-catalog/components/ContentNodeSelectorComponent.html) component; + once the move action has completed the user is notified and can undo the action (which moves the items back to the original location). +
Delete + Files and folders can be deleted from their location in the content repository; + once the delete action has completed the user is notified and undo the action (which restores the items from the trash). +
+ +As well as the actions available in the toolbar users can single click an item to select it, +or double click on a file to view it, and a folder to open it.

  • - {{ item.icon }} + {{ item.icon }} {{ item.label | translate }}
  • J)IP&385FcFm0nlBsn!`k(HgUGvawRL81Gt+>$-ZMCq*rififLziYGkbJ+NNyo9W?tR$#=d~Dm0@=GDIHfNp0c5qm7 z!NOC53QxHl;3*q|r(Evvlz_%lE*p5t2IDCgK0M1pP8;1ZT{JQ^y)77AvGOu=vJw+I zvjsC<#)WL2-nB!08{e&_+c|!Uj0)Weett@M9VIcal5lEVEl{arYS*?MvJUw|b!O3BBOSsrw8}wOrR)DYAr(00CxKl1tnV*+9EXns(QcNN4~PAPMv<=|@_kbCQ3hcTIXid-C8% z9{SKfArF1&AJB)sl>Y9_N~{gEJ%MvPzdQ4rnS1Ztxiga1vKm2!G)}!}W_3K`bx1TK zF1vCjbt$e?)C&`|OAS%VAV)f0n&@s_-MW4at8hEGc{kPDy8c$G_1?`b)n8eHyK^&j z^~y~d7U&cWJ`9Vq%b6SfTj(G4iK4@n8wm7hP8Chn>Y|ddEwlY=H*ViWPuX#?s@zho zsM`jVe%>R%(&awaT%a+%?EC zn>o1+7;#T<>M|=l zuFR;HyTPq~Bpj2%yzQtI4(;+uyuBS078m1! znq0b|sv@dV9o}_@*9LWsKz(#BsaLR-sv{#2rA$yL>(Ue8J)WUzx1^Ah>&>oHZp5e6 zwaQ`)S7P{h4A&xzJLHJZc*tiwT{f4~6L;a;VFY#CX`Dna6k4Ks%NW18^JR#N|Xp`$}lsSLN zrK1MTd;VoHxad-%5d0axA+B}1=BAO)ljf1;n9Xh2=JnOnMhuPZ@=cW?1lWu_c?3#T8ybt^deMnV7D(?12f=tk^a&Q_9+PiN)ENe z>X<=OO|kzO-DwuR(0OE9ywf;`kZEu4A4_7f4Kwd89lNJmRg2tWK z*)9On_Gp5o4M-D^N;HLG4oH^>c%TclY0~k^bsVRr_z^17p$1Eb*4#)Y&1b&b{gOx}YI&R2;3}@K` ztS?WykT=n7h!G9k&Rwt-xYdIttI&THwY!(<84DQVYZFbl*dguoHa@A4(J*b{UHnAr zf=g4TEn2i6!8c|i;B4Vz`ac~!h+pj0YnC9{Yd}|b!h86DP@LZoTU07i3A^w$Y=Bin>QlF& z8PrYAi2s#=Ff37Jw6yvRy|xgh^&>48iHsL;G47cso2!;slKR%b(_2qw10k)( z%;)lGX`VLgVO2lE#vO$Npz%}t_}CRey+lh^`ME}kmj4$O5!?m+7}i9aDTuOI<(&^- zo*N8S%~fO?7e@p#E7HL-{>b5BxU`NGHA4qLOCf6(B#m-Tu|FuALNo>#@Az(tD66q3 zg-&1!@;Pa&th@IUA}NgfiMiwpp3R9gi=2#kF|*mm7RIvf-j7HgdQqJl3CHhYcR4{1 zxh&xX2C(lT0qpG)KrN(qvmMk86En179|}1O#(T;nP=qsX3Rwb+kVa(TfY_r6Mhwuo zAeF#R99o1CqAaq75N&gnC*{>^4BMnJk%zSlZdo*N z3!`Pr_cC~I8on5UfyIO~Rpt?{S)d;P=@R|W!k>eY$OTe$9`khOU1FX@Z!k}yA2Cm&H+fD6 zv>)@F41U6MGVpm$1_5*00GrHV&}9yT9&;G|@ zDaeFhE69Z3fO~2*-fyKO$NQavO#fIxrvDy2PpR?#pdb_ODaeFRtou3qnZD?D|mjB;TI?H^#7r3GOMI!rjmIv zBc(C>%gLSGPHG2_F6GcVVSlNu$p2DKYRzy~zqgJH{yjHL_L|`wOMl6JghxnM?saj? q1qH8Wye}Hr`Rw6ra(v-|{^(;$eTs9pc|YC5cRAr#Jowcm{{07$$(XYM literal 0 HcmV?d00001 diff --git a/src/assets/fonts/muli/Muli-LightItalic.ttf b/src/assets/fonts/muli/Muli-LightItalic.ttf new file mode 100755 index 0000000000000000000000000000000000000000..85ac2513289fbe0fa1a5eb3bf72fa30fe995c639 GIT binary patch literal 94556 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 Lbts8Q$G`sor|jUH literal 0 HcmV?d00001 diff --git a/src/assets/fonts/muli/Muli-SemiBold.ttf b/src/assets/fonts/muli/Muli-SemiBold.ttf new file mode 100755 index 0000000000000000000000000000000000000000..096a15e424aa909aab43fb8ede78767d7b143b11 GIT binary patch literal 93672 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 literal 0 HcmV?d00001 diff --git a/src/assets/fonts/muli/Muli-SemiBoldItalic.ttf b/src/assets/fonts/muli/Muli-SemiBoldItalic.ttf new file mode 100755 index 0000000000000000000000000000000000000000..6d7bcc856934b6bf14ae17b6cb70b1fc3995e266 GIT binary patch literal 95264 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%0DPlL}02C3b_Nipzy3^+9F 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