From 9738752f0f9c3814bbd12fd7fa55b564d25f2cd4 Mon Sep 17 00:00:00 2001 From: Adina Parpalita Date: Fri, 15 Nov 2019 14:57:34 +0200 Subject: [PATCH 01/19] [ACA-2822] add no-duplicate-imports rule (#1250) * add no-duplicate-imports rule and fix few issues * fix incorrect import :D --- e2e/utilities/repo-client/apis/sites/sites-api.ts | 3 +-- projects/aca-shared/src/lib/routing/shared.guard.ts | 3 +-- .../components/context-menu/context-menu.service.spec.ts | 3 +-- .../favorite-libraries.component.spec.ts | 4 ++-- src/app/components/files/files.component.ts | 7 +++++-- .../layout/app-layout/app-layout.component.spec.ts | 7 +++++-- src/app/components/preview/preview.component.ts | 4 ++-- .../search-libraries-results.component.ts | 3 +-- src/app/components/viewer/viewer.component.ts | 7 +++---- src/app/services/content-management.service.ts | 3 +-- tslint.json | 1 + 11 files changed, 23 insertions(+), 22 deletions(-) diff --git a/e2e/utilities/repo-client/apis/sites/sites-api.ts b/e2e/utilities/repo-client/apis/sites/sites-api.ts index cfff6c340..13f4b915b 100755 --- a/e2e/utilities/repo-client/apis/sites/sites-api.ts +++ b/e2e/utilities/repo-client/apis/sites/sites-api.ts @@ -24,10 +24,9 @@ */ import { RepoApi } from '../repo-api'; -import { SiteBody, SiteMemberRoleBody, SiteMemberBody, SiteEntry, SiteMembershipRequestEntry } from '@alfresco/js-api'; +import { SiteBody, SiteMemberRoleBody, SiteMemberBody, SiteEntry, SiteMembershipRequestEntry, SitesApi as AdfSiteApi } from '@alfresco/js-api'; import { SITE_VISIBILITY } from '../../../../configs'; import { Utils } from '../../../../utilities/utils'; -import { SitesApi as AdfSiteApi } from '@alfresco/js-api'; export class SitesApi extends RepoApi { sitesApi = new AdfSiteApi(this.alfrescoJsApi); diff --git a/projects/aca-shared/src/lib/routing/shared.guard.ts b/projects/aca-shared/src/lib/routing/shared.guard.ts index bb491f7c4..f2f06bb63 100644 --- a/projects/aca-shared/src/lib/routing/shared.guard.ts +++ b/projects/aca-shared/src/lib/routing/shared.guard.ts @@ -24,9 +24,8 @@ */ import { Injectable } from '@angular/core'; -import { CanActivate } from '@angular/router'; +import { CanActivate, ActivatedRouteSnapshot } from '@angular/router'; import { Observable } from 'rxjs'; -import { ActivatedRouteSnapshot } from '@angular/router'; import { Store } from '@ngrx/store'; import { AppStore, isQuickShareEnabled } from '@alfresco/aca-shared/store'; diff --git a/src/app/components/context-menu/context-menu.service.spec.ts b/src/app/components/context-menu/context-menu.service.spec.ts index a21d19e39..db0c30fb3 100644 --- a/src/app/components/context-menu/context-menu.service.spec.ts +++ b/src/app/components/context-menu/context-menu.service.spec.ts @@ -28,10 +28,9 @@ import { Overlay } from '@angular/cdk/overlay'; import { Injector } from '@angular/core'; import { Store } from '@ngrx/store'; import { of } from 'rxjs'; -import { CoreModule } from '@alfresco/adf-core'; +import { CoreModule, UserPreferencesService } from '@alfresco/adf-core'; import { ContextMenuService } from './context-menu.service'; import { ContextMenuModule } from './context-menu.module'; -import { UserPreferencesService } from '@alfresco/adf-core'; describe('ContextMenuService', () => { let contextMenuService; diff --git a/src/app/components/favorite-libraries/favorite-libraries.component.spec.ts b/src/app/components/favorite-libraries/favorite-libraries.component.spec.ts index 3671bb482..50601b881 100644 --- a/src/app/components/favorite-libraries/favorite-libraries.component.spec.ts +++ b/src/app/components/favorite-libraries/favorite-libraries.component.spec.ts @@ -25,13 +25,13 @@ import { TestBed, ComponentFixture } from '@angular/core/testing'; import { NO_ERRORS_SCHEMA } from '@angular/core'; -import { UserPreferencesService } from '@alfresco/adf-core'; import { Router } from '@angular/router'; import { AlfrescoApiService, NodeFavoriteDirective, DataTableComponent, - AppConfigPipe + AppConfigPipe, + UserPreferencesService } from '@alfresco/adf-core'; import { DocumentListComponent } from '@alfresco/adf-content-services'; import { FavoriteLibrariesComponent } from './favorite-libraries.component'; diff --git a/src/app/components/files/files.component.ts b/src/app/components/files/files.component.ts index 1e9424175..b8c4f1766 100644 --- a/src/app/components/files/files.component.ts +++ b/src/app/components/files/files.component.ts @@ -35,11 +35,14 @@ import { } from '@alfresco/js-api'; import { ContentManagementService } from '../../services/content-management.service'; import { NodeActionsService } from '../../services/node-actions.service'; -import { AppStore } from '@alfresco/aca-shared/store'; import { PageComponent } from '../page.component'; import { ContentApiService } from '@alfresco/aca-shared'; import { AppExtensionService } from '../../extensions/extension.service'; -import { SetCurrentFolderAction, isAdmin } from '@alfresco/aca-shared/store'; +import { + SetCurrentFolderAction, + isAdmin, + AppStore +} from '@alfresco/aca-shared/store'; import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout'; import { debounceTime, takeUntil } from 'rxjs/operators'; import { ShareDataRow } from '@alfresco/adf-content-services'; diff --git a/src/app/components/layout/app-layout/app-layout.component.spec.ts b/src/app/components/layout/app-layout/app-layout.component.spec.ts index bef3918cd..9ed6baa1b 100644 --- a/src/app/components/layout/app-layout/app-layout.component.spec.ts +++ b/src/app/components/layout/app-layout/app-layout.component.spec.ts @@ -29,10 +29,13 @@ import { AppConfigService, UserPreferencesService } from '@alfresco/adf-core'; import { AppLayoutComponent } from './app-layout.component'; import { AppTestingModule } from '../../../testing/app-testing.module'; import { Store } from '@ngrx/store'; -import { AppStore, SetSelectedNodesAction } from '@alfresco/aca-shared/store'; +import { + AppStore, + SetSelectedNodesAction, + ResetSelectionAction +} from '@alfresco/aca-shared/store'; import { Router, NavigationStart } from '@angular/router'; import { Subject } from 'rxjs'; -import { ResetSelectionAction } from '@alfresco/aca-shared/store'; class MockRouter { private url = 'some-url'; diff --git a/src/app/components/preview/preview.component.ts b/src/app/components/preview/preview.component.ts index f2224cac6..e0211aa4b 100644 --- a/src/app/components/preview/preview.component.ts +++ b/src/app/components/preview/preview.component.ts @@ -49,9 +49,9 @@ import { Store } from '@ngrx/store'; import { AppStore, ClosePreviewAction, - ViewerActionTypes + ViewerActionTypes, + SetSelectedNodesAction } from '@alfresco/aca-shared/store'; -import { SetSelectedNodesAction } from '@alfresco/aca-shared/store'; import { PageComponent } from '../page.component'; import { ContentApiService } from '@alfresco/aca-shared'; import { AppExtensionService } from '../../extensions/extension.service'; diff --git a/src/app/components/search/search-libraries-results/search-libraries-results.component.ts b/src/app/components/search/search-libraries-results/search-libraries-results.component.ts index 87afb8513..691591dd7 100644 --- a/src/app/components/search/search-libraries-results/search-libraries-results.component.ts +++ b/src/app/components/search/search-libraries-results/search-libraries-results.component.ts @@ -23,7 +23,7 @@ * along with Alfresco. If not, see . */ -import { NavigateLibraryAction } from '@alfresco/aca-shared/store'; +import { NavigateLibraryAction, AppStore } from '@alfresco/aca-shared/store'; import { NodePaging, Pagination, SiteEntry } from '@alfresco/js-api'; import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout'; import { Component, OnInit } from '@angular/core'; @@ -31,7 +31,6 @@ import { ActivatedRoute, Params } from '@angular/router'; import { Store } from '@ngrx/store'; import { AppExtensionService } from '../../../extensions/extension.service'; import { ContentManagementService } from '../../../services/content-management.service'; -import { AppStore } from '@alfresco/aca-shared/store'; import { PageComponent } from '../../page.component'; import { SearchLibrariesQueryBuilderService } from './search-libraries-query-builder.service'; diff --git a/src/app/components/viewer/viewer.component.ts b/src/app/components/viewer/viewer.component.ts index 69b4d0764..46d62e8e0 100644 --- a/src/app/components/viewer/viewer.component.ts +++ b/src/app/components/viewer/viewer.component.ts @@ -31,10 +31,11 @@ import { SetSelectedNodesAction, ClosePreviewAction, ViewerActionTypes, - ViewNodeAction + ViewNodeAction, + ReloadDocumentListAction } from '@alfresco/aca-shared/store'; import { ContentActionRef, SelectionState } from '@alfresco/adf-extensions'; -import { MinimalNodeEntryEntity } from '@alfresco/js-api'; +import { MinimalNodeEntryEntity, SearchRequest } from '@alfresco/js-api'; import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; import { ActivatedRoute, Router, PRIMARY_OUTLET } from '@angular/router'; import { @@ -49,8 +50,6 @@ import { from, Observable, Subject } from 'rxjs'; import { takeUntil, debounceTime } from 'rxjs/operators'; import { AppExtensionService } from '../../extensions/extension.service'; import { Actions, ofType } from '@ngrx/effects'; -import { SearchRequest } from '@alfresco/js-api'; -import { ReloadDocumentListAction } from '@alfresco/aca-shared/store'; @Component({ selector: 'app-viewer', templateUrl: './viewer.component.html', diff --git a/src/app/services/content-management.service.ts b/src/app/services/content-management.service.ts index 35a2864b5..63ecf1e3e 100644 --- a/src/app/services/content-management.service.ts +++ b/src/app/services/content-management.service.ts @@ -23,7 +23,7 @@ * along with Alfresco. If not, see . */ -import { ContentApiService } from '@alfresco/aca-shared'; +import { ContentApiService, NodePermissionService } from '@alfresco/aca-shared'; import { AppStore, DeletedNodeInfo, @@ -69,7 +69,6 @@ import { NodePermissionsDialogComponent } from '../components/permissions/permis import { NodeVersionUploadDialogComponent } from '../dialogs/node-version-upload/node-version-upload.dialog'; import { NodeVersionsDialogComponent } from '../dialogs/node-versions/node-versions.dialog'; import { NodeActionsService } from './node-actions.service'; -import { NodePermissionService } from '@alfresco/aca-shared'; interface RestoredNode { status: number; diff --git a/tslint.json b/tslint.json index eec9b8003..56115bf1a 100644 --- a/tslint.json +++ b/tslint.json @@ -36,6 +36,7 @@ "no-console": [true, "debug", "info", "time", "timeEnd", "trace"], "no-construct": true, "no-debugger": true, + "no-duplicate-imports": true, "no-duplicate-super": true, "no-empty": false, "no-empty-interface": true, From fd71e2daf441b13bb70eaf27cb6d69d064d56002 Mon Sep 17 00:00:00 2001 From: Adina Parpalita Date: Mon, 18 Nov 2019 17:27:56 +0200 Subject: [PATCH 02/19] upgrade js-api version to latest (#1252) --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1b452efce..594abae18 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,9 +29,9 @@ } }, "@alfresco/js-api": { - "version": "3.6.0-f44b015f801224c18cf4c8162562ee66551fa8df", - "resolved": "https://registry.npmjs.org/@alfresco/js-api/-/js-api-3.6.0-f44b015f801224c18cf4c8162562ee66551fa8df.tgz", - "integrity": "sha512-ntll1zGORMFoFuj64mu5YTn8X74kvI4RqshBZuQFkDc9rjQlpDTx/erIScO7njpfcKp8CdP3bsoDWnnrar0Www==", + "version": "3.6.0-7b7488124991a11478cb9b27699e4d0629d99365", + "resolved": "https://registry.npmjs.org/@alfresco/js-api/-/js-api-3.6.0-7b7488124991a11478cb9b27699e4d0629d99365.tgz", + "integrity": "sha512-FmA39yRdKQ/XmgdLEj1rj0trF1/xDyUBjzZKcwmJREPZ9q/XTuGKy3pP/zgMIrEN6r3s2WiPj95Lg1c9R/uU9w==", "requires": { "event-emitter": "^0.3.5", "minimatch": "3.0.4", diff --git a/package.json b/package.json index dd0740db0..d7b098203 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "@alfresco/adf-content-services": "3.6.0-58aef5a02986ad0a3e7a31a2805d83018143482e", "@alfresco/adf-core": "3.6.0-58aef5a02986ad0a3e7a31a2805d83018143482e", "@alfresco/adf-extensions": "3.6.0-58aef5a02986ad0a3e7a31a2805d83018143482e", - "@alfresco/js-api": "3.6.0-f44b015f801224c18cf4c8162562ee66551fa8df", + "@alfresco/js-api": "3.6.0-7b7488124991a11478cb9b27699e4d0629d99365", "@angular/animations": "7.2.15", "@angular/cdk": "^7.3.7", "@angular/common": "7.2.15", From b228ca2f6457aced550a7f1b607b671090bf8a83 Mon Sep 17 00:00:00 2001 From: Martin Muller Date: Mon, 18 Nov 2019 18:08:32 +0100 Subject: [PATCH 03/19] Try latest ACS com to see if e2e are passing (#1248) * use latest ACS com * add workaround for REPO-4772 * due to the workaround done for REPO-4772, files now have an initial version set to MAJOR 1.0 * add workaround for REPO-4772 for bulk create files * Get ACS log if something goes wrong * wait for the dialog to close only in specific cases * Import Custom Model into ACS. Update proxy to work with Share. --- .travis.yml | 5 + build-tomcat-e2e.sh | 2 +- cspell.json | 3 +- docker-compose-keycloak.yml | 2 +- docker-compose.yml | 120 +++++++++++------- docker/acs-cm/Readme.md | 20 +++ docker/acs-cm/acme-bootstrap-context.xml | 13 ++ docker/acs-cm/acme-content-model.xml | 66 ++++++++++ docker/proxy/nginx.conf | 59 +++++---- docker/tomcat/docker-compose.yml | 4 +- docs/getting-started/docker.md | 2 +- docs/ja/getting-started/docker.md | 4 +- .../dialog/upload-new-version-dialog.ts | 1 - e2e/suites/actions/upload-new-version.test.ts | 104 +++++++++------ .../apis/nodes/node-body-create.ts | 1 + .../apis/nodes/node-content-tree.ts | 4 +- .../repo-client/apis/nodes/nodes-api.ts | 3 +- package.json | 6 +- protractor.conf.js | 2 +- .../info-drawer/info-drawer.component.spec.ts | 12 -- .../info-drawer/info-drawer.component.ts | 8 +- start-sso.sh | 2 +- 22 files changed, 301 insertions(+), 142 deletions(-) create mode 100644 docker/acs-cm/Readme.md create mode 100644 docker/acs-cm/acme-bootstrap-context.xml create mode 100644 docker/acs-cm/acme-content-model.xml diff --git a/.travis.yml b/.travis.yml index a768059ad..8b0fe2f95 100644 --- a/.travis.yml +++ b/.travis.yml @@ -45,3 +45,8 @@ jobs: script: npm run build.e2e && SUITE="--suite sharingContent" npm run e2e:docker - name: Test Suite viewContent&metadata&extensions script: npm run build.e2e && SUITE="--suite viewer,infoDrawer,extensions" npm run e2e:docker + +after_failure: + - alfrescoContainerId=$(docker ps -a | grep 'alfresco-content-repository-community' | awk '{print $1}') + - docker logs $alfrescoContainerId > alfresco.log + - cat alfresco.log diff --git a/build-tomcat-e2e.sh b/build-tomcat-e2e.sh index 72d2f9d75..061f8a1a4 100755 --- a/build-tomcat-e2e.sh +++ b/build-tomcat-e2e.sh @@ -3,7 +3,7 @@ npm run build.e2e -- --base-href ./ node -e " const fs = require('fs'); const config = require('./dist/app/app.config.json'); -config.baseShareUrl = 'http://localhost:4000/content-app/#/preview/s/'; +config.baseShareUrl = 'http://localhost:8080/content-app/#/preview/s/'; fs.writeFileSync( './dist/app/app.config.json', JSON.stringify(config, null, 2) diff --git a/cspell.json b/cspell.json index 1ca728ea2..bbfeb7ade 100644 --- a/cspell.json +++ b/cspell.json @@ -64,7 +64,8 @@ "denysvuika", "submenu", "submenus", - "dateitem" + "dateitem", + "versionable" ], "dictionaries": ["html", "en-gb", "en_US"] } diff --git a/docker-compose-keycloak.yml b/docker-compose-keycloak.yml index 33c21fa03..9ef10c92c 100644 --- a/docker-compose-keycloak.yml +++ b/docker-compose-keycloak.yml @@ -190,7 +190,7 @@ services: - alfresco - share ports: - - 4000:80 + - 8080:8080 auth: image: jboss/keycloak:4.8.3.Final diff --git a/docker-compose.yml b/docker-compose.yml index a513d6a42..a110f11ad 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,10 +2,10 @@ version: '2' services: alfresco: - image: alfresco/alfresco-content-repository-community:6.1.2-ga + image: alfresco/alfresco-content-repository-community:latest mem_limit: 1500m - depends_on: - - postgres + volumes: + - ./docker/acs-cm:/usr/local/tomcat/shared/classes/alfresco/extension environment: JAVA_OPTS: ' -Ddb.driver=org.postgresql.Driver @@ -17,51 +17,92 @@ services: -Dsolr.secureComms=none -Dsolr.base.url=/solr -Dindex.subsystem.name=solr6 - -Dshare.host=localhost + -Dshare.host=127.0.0.1 + -Dshare.port=8080 + -Dalfresco.host=localhost -Dalfresco.port=8080 -Daos.baseUrlOverwrite=http://localhost:8080/alfresco/aos -Dmessaging.broker.url="failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true" -Ddeployment.method=DOCKER_COMPOSE + -Dlocal.transform.service.enabled=true + -DlocalTransform.pdfrenderer.url=http://alfresco-pdf-renderer:8090/ + -DlocalTransform.imagemagick.url=http://imagemagick:8090/ + -DlocalTransform.libreoffice.url=http://libreoffice:8090/ + -DlocalTransform.tika.url=http://tika:8090/ + -DlocalTransform.misc.url=http://transform-misc:8090/ + -Dlegacy.transform.service.enabled=true + -Dalfresco-pdf-renderer.url=http://alfresco-pdf-renderer:8090/ + -Djodconverter.url=http://libreoffice:8090/ + -Dimg.url=http://imagemagick:8090/ + -Dtika.url=http://tika:8090/ + -Dtransform.misc.url=http://transform-misc:8090/ -Dcsrf.filter.enabled=false - -Xms1g -Xmx1g + -Xms1500m -Xmx1500m ' - networks: - - internal + + alfresco-pdf-renderer: + image: alfresco/alfresco-pdf-renderer:2.1.0 + mem_limit: 1g + environment: + JAVA_OPTS: ' -Xms256m -Xmx512m' ports: - - 8080:8080 #Browser port + - 8090:8090 + + imagemagick: + image: alfresco/alfresco-imagemagick:2.1.0 + mem_limit: 1g + environment: + JAVA_OPTS: ' -Xms256m -Xmx512m' + ports: + - 8091:8090 + + libreoffice: + image: alfresco/alfresco-libreoffice:2.1.0 + mem_limit: 1g + environment: + JAVA_OPTS: ' -Xms256m -Xmx512m' + ports: + - 8092:8090 + + tika: + image: alfresco/alfresco-tika:2.1.0 + mem_limit: 1g + environment: + JAVA_OPTS: ' -Xms256m -Xmx512m' + ports: + - 8093:8090 + + transform-misc: + image: alfresco/alfresco-transform-misc:2.1.0 + mem_limit: 1g + environment: + JAVA_OPTS: ' -Xms256m -Xmx512m' + ports: + - 8094:8090 share: - image: alfresco/alfresco-share:6.1.0-RC3 + image: alfresco/alfresco-share:6.2.0 mem_limit: 1g depends_on: - alfresco environment: - REPO_HOST=alfresco - REPO_PORT=8080 - - 'CATALINA_OPTS= -Xms500m -Xmx500m' - networks: - - internal - ports: - - 8083:8080 postgres: - image: postgres:10.1 - mem_limit: 1500m + image: postgres:11.4 + mem_limit: 512m environment: - POSTGRES_PASSWORD=alfresco - POSTGRES_USER=alfresco - POSTGRES_DB=alfresco command: postgres -c max_connections=300 -c log_min_messages=LOG - networks: - - internal ports: - 5432:5432 solr6: - image: alfresco/alfresco-search-services:1.3.0-RC2 - mem_limit: 2500m - depends_on: - - alfresco + image: alfresco/alfresco-search-services:1.4.0 + mem_limit: 2g environment: #Solr needs to know how to register itself with Alfresco - SOLR_ALFRESCO_HOST=alfresco @@ -71,17 +112,15 @@ services: - SOLR_SOLR_PORT=8983 #Create the default alfresco and archive cores - SOLR_CREATE_ALFRESCO_DEFAULTS=alfresco,archive + #HTTP by default + - ALFRESCO_SECURE_COMMS=none - 'SOLR_JAVA_MEM=-Xms2g -Xmx2g' - networks: - - internal ports: - - 8983:8983 #Browser port + - 8083:8983 #Browser port activemq: - image: alfresco/alfresco-activemq:5.15.6 - mem_limit: 2048m - networks: - - internal + image: alfresco/alfresco-activemq:5.15.8 + mem_limit: 1g ports: - 8161:8161 # Web Console - 5672:5672 # AMQP @@ -93,24 +132,19 @@ services: build: . depends_on: - alfresco - networks: - - internal ports: - 4001:8080 - # volumes: - # - ./app.config.json:/usr/share/nginx/html/app.config.json - # - ./nginx.conf:/etc/nginx/conf.d/default.conf proxy: - image: nginx:stable-alpine + image: alfresco/acs-community-ngnix:1.0.0 + mem_limit: 128m depends_on: - - content-app + - alfresco volumes: - - ./docker/proxy/nginx.conf:/etc/nginx/conf.d/default.conf - networks: - - internal + - ./docker/proxy/nginx.conf:/etc/nginx/nginx.conf ports: - - 4000:80 - -networks: - internal: + - 8080:8080 + links: + - alfresco + - share + - content-app diff --git a/docker/acs-cm/Readme.md b/docker/acs-cm/Readme.md new file mode 100644 index 000000000..85498dfe9 --- /dev/null +++ b/docker/acs-cm/Readme.md @@ -0,0 +1,20 @@ +# Custom Node creation instruction + +Use the v1 POST node/{nodeId}/children for creating the custom node with a payload like: + +``` +{ + "name":"acme document2.txt", + "nodeType":"acme:document", + "properties": { + "acme:documentId": "DOC001", + "acme:securityClassification":"Public", + "cm:title":"My text" + }, + "aspectNames": [ + "acme:securityClassified" + ] +} +``` + +Tip: You could use the api explorer with /api-explorer/ diff --git a/docker/acs-cm/acme-bootstrap-context.xml b/docker/acs-cm/acme-bootstrap-context.xml new file mode 100644 index 000000000..31ed7299d --- /dev/null +++ b/docker/acs-cm/acme-bootstrap-context.xml @@ -0,0 +1,13 @@ + + + + + + +alfresco/extension/acme-content-model.xml + + + + diff --git a/docker/acs-cm/acme-content-model.xml b/docker/acs-cm/acme-content-model.xml new file mode 100644 index 000000000..2ef460104 --- /dev/null +++ b/docker/acs-cm/acme-content-model.xml @@ -0,0 +1,66 @@ + + + Sample Document Model + My Name + 1.0 + + + + + + + + + + + + + + + + + Public + Client Confidential + Company Confidential + Strictly Confidential + + + + + + + + Sample Document Type + cm:content + + + Document Identification Number + d:text + + + + acme:securityClassified + + + + + + + ACME Security Classified + Content has been security classified + + + d:text + + true + false + false + + + + + + + + + diff --git a/docker/proxy/nginx.conf b/docker/proxy/nginx.conf index ebc56e11f..25f275517 100644 --- a/docker/proxy/nginx.conf +++ b/docker/proxy/nginx.conf @@ -1,33 +1,44 @@ -server { - listen *:80; +worker_processes 1; - set $allowOriginSite *; - proxy_pass_request_headers on; - proxy_pass_header Set-Cookie; +events { + worker_connections 1024; +} - access_log off; +http { + server { + listen *:8080; - proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; - proxy_redirect off; - proxy_buffering off; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_pass_header Set-Cookie; + client_max_body_size 0; - location / { - proxy_pass http://content-app:8080; - } + set $allowOriginSite *; + proxy_pass_request_headers on; + proxy_pass_header Set-Cookie; - location /alfresco/ { - proxy_pass http://alfresco:8080; - } + # External settings, do not remove + #ENV_ACCESS_LOG - location /api-explorer/ { - proxy_pass http://alfresco:8080/api-explorer; - } + proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; + proxy_redirect off; + proxy_buffering off; + proxy_set_header Host $host:$server_port; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_pass_header Set-Cookie; - location /share/ { - proxy_pass http://share:8080; + location / { + proxy_pass http://content-app:8080; + } + + location /alfresco/ { + proxy_pass http://alfresco:8080; + } + + location /api-explorer/ { + proxy_pass http://alfresco:8080/api-explorer/; + } + + location /share/ { + proxy_pass http://share:8080; + } } } diff --git a/docker/tomcat/docker-compose.yml b/docker/tomcat/docker-compose.yml index d5b57119c..4ce088f1d 100644 --- a/docker/tomcat/docker-compose.yml +++ b/docker/tomcat/docker-compose.yml @@ -91,7 +91,7 @@ services: networks: - internal ports: - - 4000:80 + - 8080:80 networks: - ? internal + internal: diff --git a/docs/getting-started/docker.md b/docs/getting-started/docker.md index 67c932663..90040c8a6 100644 --- a/docs/getting-started/docker.md +++ b/docs/getting-started/docker.md @@ -20,7 +20,7 @@ npm run build npm run start:docker ``` -The ACA runs on port `4000` when served from within container. +The ACA runs on port `8080` when served from within container. Use the following command to stop all the containers: diff --git a/docs/ja/getting-started/docker.md b/docs/ja/getting-started/docker.md index 4b6468e7f..9752ce18e 100644 --- a/docs/ja/getting-started/docker.md +++ b/docs/ja/getting-started/docker.md @@ -7,7 +7,7 @@ nav: ja ACA には ACS 6.0 Community 版が事前構成されています。 -アプリケーションは2つのモードで実行されます: +アプリケーションは 2 つのモードで実行されます: - Development (最新のソースコードを実行し、アプリケーションのビルドが必要) - Preview (最新の公開されたコンテナー、マスターブランチで実行) @@ -21,7 +21,7 @@ npm run build npm run start:docker ``` -コンテナ内から提供される場合、ACA は `4000` ポートで実行されます。 +コンテナ内から提供される場合、ACA は `8080` ポートで実行されます。 次のコマンドを使用して、すべてのコンテナを停止します: diff --git a/e2e/components/dialog/upload-new-version-dialog.ts b/e2e/components/dialog/upload-new-version-dialog.ts index 9ed40472f..2e88c17da 100755 --- a/e2e/components/dialog/upload-new-version-dialog.ts +++ b/e2e/components/dialog/upload-new-version-dialog.ts @@ -100,7 +100,6 @@ export class UploadNewVersionDialog extends Component { async clickUpload() { await this.uploadButton.click(); - await this.waitForDialogToClose(); } diff --git a/e2e/suites/actions/upload-new-version.test.ts b/e2e/suites/actions/upload-new-version.test.ts index 0363a68e0..3a3594679 100755 --- a/e2e/suites/actions/upload-new-version.test.ts +++ b/e2e/suites/actions/upload-new-version.test.ts @@ -52,6 +52,8 @@ describe('Upload new version', () => { const parentFav = `parentFav-${Utils.random()}`; let parentFavId; const parentSearch = `parentSearch-${Utils.random()}`; let parentSearchId; + const nameConflictMessage = 'New version not uploaded, another file with the same name already exists'; + const file = FILES.pdfFile; let fileId; const fileToUpload1 = FILES.docxFile; const fileToUpload2 = FILES.xlsxFile; @@ -116,7 +118,7 @@ describe('Upload new version', () => { }); afterEach(async (done) => { - // await Utils.pressEscape(); + await Utils.pressEscape(); await page.refresh(); done(); }); @@ -147,10 +149,11 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickMajor(); await uploadNewVersionDialog.enterDescription('new major version description'); await uploadNewVersionDialog.clickUpload(); + await uploadNewVersionDialog.waitForDialogToClose(); expect(await dataTable.isItemPresent(fileToUpload1)).toBe(true, 'File not updated'); expect(await apis.user.nodes.getFileVersionType(file1Id)).toEqual('MAJOR', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(file1Id)).toEqual('1.0', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionLabel(file1Id)).toEqual('2.0', 'File has incorrect version label'); }); it('file is updated after uploading a new version - minor - [C297546]', async () => { @@ -163,10 +166,11 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickMinor(); await uploadNewVersionDialog.enterDescription('new minor version description'); await uploadNewVersionDialog.clickUpload(); + await uploadNewVersionDialog.waitForDialogToClose(); expect(await dataTable.isItemPresent(fileToUpload2)).toBe(true, 'File not updated'); expect(await apis.user.nodes.getFileVersionType(file2Id)).toEqual('MINOR', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(file2Id)).toEqual('0.1', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionLabel(file2Id)).toEqual('1.1', 'File has incorrect version label'); }); it('file is not updated when clicking Cancel - [C297547]', async () => { @@ -181,8 +185,8 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickCancel(); expect(await dataTable.isItemPresent(file3)).toBe(true, 'File was updated'); - expect(await apis.user.nodes.getFileVersionType(file3Id)).toEqual('', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(file3Id)).toEqual('', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionType(file3Id)).toEqual('MAJOR', 'File has incorrect version type'); + expect(await apis.user.nodes.getFileVersionLabel(file3Id)).toEqual('1.0', 'File has incorrect version label'); }); it('upload new version fails when new file name already exists - [C297548]', async () => { @@ -196,11 +200,12 @@ describe('Upload new version', () => { await uploadNewVersionDialog.enterDescription('new version description'); await uploadNewVersionDialog.clickUpload(); - await page.refresh(); + const message = await page.getSnackBarMessage(); + expect(message).toContain(nameConflictMessage); expect(await dataTable.isItemPresent(file4)).toBe(true, 'File was updated'); - expect(await apis.user.nodes.getFileVersionType(file4Id)).toEqual('', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(file4Id)).toEqual('', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionType(file4Id)).toEqual('MAJOR', 'File has incorrect version type'); + expect(await apis.user.nodes.getFileVersionLabel(file4Id)).toEqual('1.0', 'File has incorrect version label'); }); it('file is unlocked after uploading a new version - [C297549]', async () => { @@ -213,11 +218,12 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickMinor(); await uploadNewVersionDialog.enterDescription('new version description'); await uploadNewVersionDialog.clickUpload(); + await uploadNewVersionDialog.waitForDialogToClose(); expect(await dataTable.isItemPresent(fileToUpload4)).toBe(true, 'File name was not changed'); expect(await apis.user.nodes.isFileLockedWrite(fileLocked1Id)).toBe(false, `${fileLocked1} is still locked`); expect(await apis.user.nodes.getFileVersionType(fileLocked1Id)).toEqual('MINOR', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(fileLocked1Id)).toEqual('0.1', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionLabel(fileLocked1Id)).toEqual('1.1', 'File has incorrect version label'); }); it('file remains locked after canceling of uploading a new version - [C297550]', async () => { @@ -294,10 +300,11 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickMajor(); await uploadNewVersionDialog.enterDescription('new major version description'); await uploadNewVersionDialog.clickUpload(); + await uploadNewVersionDialog.waitForDialogToClose(); expect(await dataTable.isItemPresent(fileToUpload1)).toBe(true, 'File not updated'); expect(await apis.user.nodes.getFileVersionType(file1Id)).toEqual('MAJOR', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(file1Id)).toEqual('1.0', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionLabel(file1Id)).toEqual('2.0', 'File has incorrect version label'); }); it('file is updated after uploading a new version - minor - [C297553]', async () => { @@ -310,10 +317,11 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickMinor(); await uploadNewVersionDialog.enterDescription('new minor version description'); await uploadNewVersionDialog.clickUpload(); + await uploadNewVersionDialog.waitForDialogToClose(); expect(await dataTable.isItemPresent(fileToUpload2)).toBe(true, 'File not updated'); expect(await apis.user.nodes.getFileVersionType(file2Id)).toEqual('MINOR', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(file2Id)).toEqual('0.1', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionLabel(file2Id)).toEqual('1.1', 'File has incorrect version label'); }); it('file is not updated when clicking Cancel - [C297554]', async () => { @@ -328,8 +336,8 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickCancel(); expect(await dataTable.isItemPresent(file3)).toBe(true, 'File was updated'); - expect(await apis.user.nodes.getFileVersionType(file3Id)).toEqual('', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(file3Id)).toEqual('', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionType(file3Id)).toEqual('MAJOR', 'File has incorrect version type'); + expect(await apis.user.nodes.getFileVersionLabel(file3Id)).toEqual('1.0', 'File has incorrect version label'); }); it('upload new version fails when new file name already exists - [C297555]', async () => { @@ -343,11 +351,12 @@ describe('Upload new version', () => { await uploadNewVersionDialog.enterDescription('new version description'); await uploadNewVersionDialog.clickUpload(); - await page.refresh(); + const message = await page.getSnackBarMessage(); + expect(message).toContain(nameConflictMessage); expect(await dataTable.isItemPresent(file4)).toBe(true, 'File was updated'); - expect(await apis.user.nodes.getFileVersionType(file4Id)).toEqual('', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(file4Id)).toEqual('', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionType(file4Id)).toEqual('MAJOR', 'File has incorrect version type'); + expect(await apis.user.nodes.getFileVersionLabel(file4Id)).toEqual('1.0', 'File has incorrect version label'); }); it('file is unlocked after uploading a new version - [C297556]', async () => { @@ -360,11 +369,12 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickMinor(); await uploadNewVersionDialog.enterDescription('new version description'); await uploadNewVersionDialog.clickUpload(); + await uploadNewVersionDialog.waitForDialogToClose(); expect(await dataTable.isItemPresent(fileToUpload4)).toBe(true, 'File name was not changed'); expect(await apis.user.nodes.isFileLockedWrite(fileLocked1Id)).toBe(false, `${fileLocked1} is still locked`); expect(await apis.user.nodes.getFileVersionType(fileLocked1Id)).toEqual('MINOR', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(fileLocked1Id)).toEqual('0.1', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionLabel(fileLocked1Id)).toEqual('1.1', 'File has incorrect version label'); }); it('file remains locked after canceling of uploading a new version - [C297557]', async () => { @@ -440,10 +450,11 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickMajor(); await uploadNewVersionDialog.enterDescription('new major version description'); await uploadNewVersionDialog.clickUpload(); + await uploadNewVersionDialog.waitForDialogToClose(); expect(await dataTable.isItemPresent(fileToUpload1, parentRF)).toBe(true, 'File not updated'); expect(await apis.user.nodes.getFileVersionType(file1Id)).toEqual('MAJOR', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(file1Id)).toEqual('1.0', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionLabel(file1Id)).toEqual('2.0', 'File has incorrect version label'); }); it('file is updated after uploading a new version - minor - [C297560]', async () => { @@ -456,10 +467,11 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickMinor(); await uploadNewVersionDialog.enterDescription('new minor version description'); await uploadNewVersionDialog.clickUpload(); + await uploadNewVersionDialog.waitForDialogToClose(); expect(await dataTable.isItemPresent(fileToUpload2, parentRF)).toBe(true, 'File not updated'); expect(await apis.user.nodes.getFileVersionType(file2Id)).toEqual('MINOR', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(file2Id)).toEqual('0.1', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionLabel(file2Id)).toEqual('1.1', 'File has incorrect version label'); }); it('file is not updated when clicking Cancel - [C297561]', async () => { @@ -474,8 +486,8 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickCancel(); expect(await dataTable.isItemPresent(file3, parentRF)).toBe(true, 'File was updated'); - expect(await apis.user.nodes.getFileVersionType(file3Id)).toEqual('', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(file3Id)).toEqual('', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionType(file3Id)).toEqual('MAJOR', 'File has incorrect version type'); + expect(await apis.user.nodes.getFileVersionLabel(file3Id)).toEqual('1.0', 'File has incorrect version label'); }); it('upload new version fails when new file name already exists - [C297562]', async () => { @@ -489,11 +501,12 @@ describe('Upload new version', () => { await uploadNewVersionDialog.enterDescription('new version description'); await uploadNewVersionDialog.clickUpload(); - await page.refresh(); + const message = await page.getSnackBarMessage(); + expect(message).toContain(nameConflictMessage); expect(await dataTable.isItemPresent(file4, parentRF)).toBe(true, 'File was updated'); - expect(await apis.user.nodes.getFileVersionType(file4Id)).toEqual('', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(file4Id)).toEqual('', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionType(file4Id)).toEqual('MAJOR', 'File has incorrect version type'); + expect(await apis.user.nodes.getFileVersionLabel(file4Id)).toEqual('1.0', 'File has incorrect version label'); }); it('file is unlocked after uploading a new version - [C297563]', async () => { @@ -506,11 +519,12 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickMinor(); await uploadNewVersionDialog.enterDescription('new version description'); await uploadNewVersionDialog.clickUpload(); + await uploadNewVersionDialog.waitForDialogToClose(); expect(await dataTable.isItemPresent(fileToUpload4, parentRF)).toBe(true, 'File name was not changed'); expect(await apis.user.nodes.isFileLockedWrite(fileLocked1Id)).toBe(false, `${fileLocked1} is still locked`); expect(await apis.user.nodes.getFileVersionType(fileLocked1Id)).toEqual('MINOR', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(fileLocked1Id)).toEqual('0.1', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionLabel(fileLocked1Id)).toEqual('1.1', 'File has incorrect version label'); }); it('file remains locked after canceling of uploading a new version - [C297564]', async () => { @@ -587,10 +601,11 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickMajor(); await uploadNewVersionDialog.enterDescription('new major version description'); await uploadNewVersionDialog.clickUpload(); + await uploadNewVersionDialog.waitForDialogToClose(); expect(await dataTable.isItemPresent(fileToUpload1)).toBe(true, 'File not updated'); expect(await apis.user.nodes.getFileVersionType(file1Id)).toEqual('MAJOR', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(file1Id)).toEqual('1.0', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionLabel(file1Id)).toEqual('2.0', 'File has incorrect version label'); }); it('file is updated after uploading a new version - minor - [C297567]', async () => { @@ -603,10 +618,11 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickMinor(); await uploadNewVersionDialog.enterDescription('new minor version description'); await uploadNewVersionDialog.clickUpload(); + await uploadNewVersionDialog.waitForDialogToClose(); expect(await dataTable.isItemPresent(fileToUpload2)).toBe(true, 'File not updated'); expect(await apis.user.nodes.getFileVersionType(file2Id)).toEqual('MINOR', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(file2Id)).toEqual('0.1', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionLabel(file2Id)).toEqual('1.1', 'File has incorrect version label'); }); it('file is not updated when clicking Cancel - [C297568]', async () => { @@ -621,8 +637,8 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickCancel(); expect(await dataTable.isItemPresent(file3)).toBe(true, 'File was updated'); - expect(await apis.user.nodes.getFileVersionType(file3Id)).toEqual('', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(file3Id)).toEqual('', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionType(file3Id)).toEqual('MAJOR', 'File has incorrect version type'); + expect(await apis.user.nodes.getFileVersionLabel(file3Id)).toEqual('1.0', 'File has incorrect version label'); }); it('upload new version fails when new file name already exists - [C297569]', async () => { @@ -636,11 +652,12 @@ describe('Upload new version', () => { await uploadNewVersionDialog.enterDescription('new version description'); await uploadNewVersionDialog.clickUpload(); - await page.refresh(); + const message = await page.getSnackBarMessage(); + expect(message).toContain(nameConflictMessage); expect(await dataTable.isItemPresent(file4)).toBe(true, 'File was updated'); - expect(await apis.user.nodes.getFileVersionType(file4Id)).toEqual('', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(file4Id)).toEqual('', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionType(file4Id)).toEqual('MAJOR', 'File has incorrect version type'); + expect(await apis.user.nodes.getFileVersionLabel(file4Id)).toEqual('1.0', 'File has incorrect version label'); }); it('file is unlocked after uploading a new version - [C297570]', async () => { @@ -653,11 +670,12 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickMinor(); await uploadNewVersionDialog.enterDescription('new version description'); await uploadNewVersionDialog.clickUpload(); + await uploadNewVersionDialog.waitForDialogToClose(); expect(await dataTable.isItemPresent(fileToUpload4)).toBe(true, 'File name was not changed'); expect(await apis.user.nodes.isFileLockedWrite(fileLocked1Id)).toBe(false, `${fileLocked1} is still locked`); expect(await apis.user.nodes.getFileVersionType(fileLocked1Id)).toEqual('MINOR', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(fileLocked1Id)).toEqual('0.1', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionLabel(fileLocked1Id)).toEqual('1.1', 'File has incorrect version label'); }); it('file remains locked after canceling of uploading a new version - [C297571]', async () => { @@ -738,11 +756,12 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickMajor(); await uploadNewVersionDialog.enterDescription('new major version description'); await uploadNewVersionDialog.clickUpload(); + await uploadNewVersionDialog.waitForDialogToClose(); // TODO: enable when ACA-2329 is fixed // expect(await dataTable.isItemPresent(fileToUpload1, parentSearch)).toBe(true, 'File not updated'); expect(await apis.user.nodes.getFileVersionType(fileSearch1Id)).toEqual('MAJOR', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(fileSearch1Id)).toEqual('1.0', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionLabel(fileSearch1Id)).toEqual('2.0', 'File has incorrect version label'); }); it('file is updated after uploading a new version - minor - [C307005]', async () => { @@ -759,11 +778,12 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickMinor(); await uploadNewVersionDialog.enterDescription('new minor version description'); await uploadNewVersionDialog.clickUpload(); + await uploadNewVersionDialog.waitForDialogToClose(); // TODO: enable when ACA-2329 is fixed // expect(await dataTable.isItemPresent(fileToUpload2, parentSearch)).toBe(true, 'File not updated'); expect(await apis.user.nodes.getFileVersionType(fileSearch2Id)).toEqual('MINOR', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(fileSearch2Id)).toEqual('0.1', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionLabel(fileSearch2Id)).toEqual('1.1', 'File has incorrect version label'); }); it('file is not updated when clicking Cancel - [C307006]', async () => { @@ -782,8 +802,8 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickCancel(); expect(await dataTable.isItemPresent(fileSearch3, parentSearch)).toBe(true, 'File was updated'); - expect(await apis.user.nodes.getFileVersionType(fileSearch3Id)).toEqual('', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(fileSearch3Id)).toEqual('', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionType(fileSearch3Id)).toEqual('MAJOR', 'File has incorrect version type'); + expect(await apis.user.nodes.getFileVersionLabel(fileSearch3Id)).toEqual('1.0', 'File has incorrect version label'); }); it('upload new version fails when new file name already exists - [C307007]', async () => { @@ -801,11 +821,12 @@ describe('Upload new version', () => { await uploadNewVersionDialog.enterDescription('new version description'); await uploadNewVersionDialog.clickUpload(); - await page.refresh(); + const message = await page.getSnackBarMessage(); + expect(message).toContain(nameConflictMessage); expect(await dataTable.isItemPresent(fileSearch4, parentSearch)).toBe(true, 'File was updated'); - expect(await apis.user.nodes.getFileVersionType(fileSearch4Id)).toEqual('', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(fileSearch4Id)).toEqual('', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionType(fileSearch4Id)).toEqual('MAJOR', 'File has incorrect version type'); + expect(await apis.user.nodes.getFileVersionLabel(fileSearch4Id)).toEqual('1.0', 'File has incorrect version label'); }); it('file is unlocked after uploading a new version - [C307008]', async () => { @@ -822,12 +843,13 @@ describe('Upload new version', () => { await uploadNewVersionDialog.clickMinor(); await uploadNewVersionDialog.enterDescription('new version description'); await uploadNewVersionDialog.clickUpload(); + await uploadNewVersionDialog.waitForDialogToClose(); // TODO: enable when ACA-2329 is fixed // expect(await dataTable.isItemPresent(fileToUpload4, parentSearch)).toBe(true, 'File name was not changed'); expect(await apis.user.nodes.isFileLockedWrite(fileLockedSearch1Id)).toBe(false, `${fileLockedSearch1} is still locked`); expect(await apis.user.nodes.getFileVersionType(fileLockedSearch1Id)).toEqual('MINOR', 'File has incorrect version type'); - expect(await apis.user.nodes.getFileVersionLabel(fileLockedSearch1Id)).toEqual('0.1', 'File has incorrect version label'); + expect(await apis.user.nodes.getFileVersionLabel(fileLockedSearch1Id)).toEqual('1.1', 'File has incorrect version label'); }); it('file remains locked after canceling of uploading a new version - [C307009]', async () => { 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 cbb76069b..c22d1f1fe 100755 --- a/e2e/utilities/repo-client/apis/nodes/node-body-create.ts +++ b/e2e/utilities/repo-client/apis/nodes/node-body-create.ts @@ -33,6 +33,7 @@ export class NodeBodyCreate { public name: string, public nodeType: string, public relativePath: string = '/', + public aspectNames?: string[], // workaround for REPO-4772 public properties?: any[] ) {} } 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 642e0aa76..1a99300d7 100755 --- a/e2e/utilities/repo-client/apis/nodes/node-content-tree.ts +++ b/e2e/utilities/repo-client/apis/nodes/node-content-tree.ts @@ -35,6 +35,7 @@ export interface NodeContentTree { export function flattenNodeContentTree(content: NodeContentTree, relativePath: string = '/'): NodeBodyCreate[] { const { name, files, folders, title, description } = content; + const aspectNames: string[] = ['cm:versionable']; let data: NodeBodyCreate[] = []; let properties: any; @@ -75,7 +76,8 @@ export function flattenNodeContentTree(content: NodeContentTree, relativePath: s .map((filename: string): NodeBodyCreate => ({ nodeType: NODE_TYPE_FILE, name: filename, - relativePath + relativePath, + aspectNames })); data = data.concat(filesData); diff --git a/e2e/utilities/repo-client/apis/nodes/nodes-api.ts b/e2e/utilities/repo-client/apis/nodes/nodes-api.ts index 6f8c406d4..e7535ee36 100755 --- a/e2e/utilities/repo-client/apis/nodes/nodes-api.ts +++ b/e2e/utilities/repo-client/apis/nodes/nodes-api.ts @@ -222,7 +222,8 @@ export class NodesApi extends RepoApi { 'cm:title': title, 'cm:description': description, 'cm:author': author - } + }, + aspectNames: ['cm:versionable'] // workaround for REPO-4772 }; if (imageProps) { nodeBody.properties = Object.assign(nodeBody.properties, imageProps); diff --git a/package.json b/package.json index d7b098203..86b501c51 100644 --- a/package.json +++ b/package.json @@ -17,9 +17,9 @@ "lint": "ng lint && npm run spellcheck && npm run format:check && npm run e2e.typecheck", "wd:update": "webdriver-manager update --gecko=false $VERSION_CHROME", "e2e.typecheck": "tsc -p ./e2e/tsconfig.e2e.typecheck.json", - "e2e": "npm run wd:update && protractor --baseUrl=${TEST_BASE_URL:-http://localhost:4000} $SUITE", + "e2e": "npm run wd:update && protractor --baseUrl=${TEST_BASE_URL:-http://localhost:8080} $SUITE", "e2e.local": "npm run wd:update && protractor --baseUrl=http://localhost:4200 $SUITE", - "wait:app": "wait-on http://localhost:8080 && wait-on http://localhost:4000", + "wait:app": "wait-on http://localhost:8080/alfresco/ -t 1000000 && wait-on http://localhost:8080 -t 400000", "start:docker": "docker-compose up -d --build && npm run wait:app", "stop:docker": "docker-compose stop", "e2e:docker": "npm run start:docker && npm run e2e && npm run stop:docker", @@ -29,7 +29,7 @@ "format:fix": "prettier --write \"src/{app,environments}/**/*.{ts,js,css,scss,html}\"", "build.tomcat": "npm run build.shared && npm run build.extensions && npm run build.app -- --prod --base-href ./ && jar -cvf docker/tomcat/artifacts/content-app.war -C dist/app/ .", "build.tomcat.e2e": "./build-tomcat-e2e.sh", - "e2e.tomcat": "npm run wd:update && protractor --baseUrl=http://localhost:4000/content-app/ $SUITE", + "e2e.tomcat": "npm run wd:update && protractor --baseUrl=http://localhost:8080/content-app/ $SUITE", "docker.tomcat.start": "cd docker/tomcat && docker-compose up -d --build && npm run wait:app", "docker.tomcat.stop": "cd docker/tomcat && docker-compose stop", "docker.tomcat.e2e": "npm run docker.tomcat.start && npm run e2e.tomcat" diff --git a/protractor.conf.js b/protractor.conf.js index 1df8d849f..5b4226e30 100755 --- a/protractor.conf.js +++ b/protractor.conf.js @@ -120,7 +120,7 @@ exports.config = { directConnect: true, - // baseUrl: 'http://localhost:4000', + // baseUrl: 'http://localhost:8080', getPageTimeout: 50000, framework: 'jasmine', diff --git a/src/app/components/info-drawer/info-drawer.component.spec.ts b/src/app/components/info-drawer/info-drawer.component.spec.ts index 57a442605..f25441c43 100644 --- a/src/app/components/info-drawer/info-drawer.component.spec.ts +++ b/src/app/components/info-drawer/info-drawer.component.spec.ts @@ -85,18 +85,6 @@ describe('InfoDrawerComponent', () => { ); }); - it('should set displayNode when node is from personal list', () => { - spyOn(contentApiService, 'getNodeInfo'); - const nodeMock = { entry: { id: 'nodeId', aspectNames: [] } }; - component.node = nodeMock; - - fixture.detectChanges(); - component.ngOnChanges(); - - expect(component.displayNode).toBe(nodeMock.entry); - expect(contentApiService.getNodeInfo).not.toHaveBeenCalled(); - }); - it('should set displayNode when node is library', async(() => { spyOn(contentApiService, 'getNodeInfo'); const nodeMock = { diff --git a/src/app/components/info-drawer/info-drawer.component.ts b/src/app/components/info-drawer/info-drawer.component.ts index 55c3b80d2..447080b89 100644 --- a/src/app/components/info-drawer/info-drawer.component.ts +++ b/src/app/components/info-drawer/info-drawer.component.ts @@ -71,12 +71,8 @@ export class InfoDrawerComponent implements OnChanges, OnInit, OnDestroy { const entry: any = this.node.entry; - if (!entry.aspectNames) { - const id = entry.nodeId || entry.id; - return this.loadNodeInfo(id); - } - - this.setDisplayNode(entry); + const id = entry.nodeId || entry.id; + return this.loadNodeInfo(id); } } diff --git a/start-sso.sh b/start-sso.sh index 97c9236a5..dd5054dd3 100755 --- a/start-sso.sh +++ b/start-sso.sh @@ -1,5 +1,5 @@ export HOST_IP=$(ifconfig | grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" | grep -v 127.0.0.1 | awk '{ print $2 }' | cut -f2 -d: | head -n1) -export APP_URL="http://${HOST_IP}:4000" +export APP_URL="http://${HOST_IP}:8080" export APP_CONFIG_AUTH_TYPE="OAUTH" export APP_CONFIG_OAUTH2_HOST="http://${HOST_IP}:8085/auth/realms/alfresco" From 4175471c011c3171369bcd481ffc4118a7aa7f79 Mon Sep 17 00:00:00 2001 From: Adina Parpalita Date: Tue, 19 Nov 2019 13:34:06 +0200 Subject: [PATCH 04/19] [ACA-2824] upgrade to adf latest version (#1251) * upgrade to adf latest * upgrade to adf beta6 --- package-lock.json | 26 +++++++++++++------------- package.json | 7 ++++--- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 594abae18..e515b04d9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,25 +5,25 @@ "requires": true, "dependencies": { "@alfresco/adf-content-services": { - "version": "3.6.0-58aef5a02986ad0a3e7a31a2805d83018143482e", - "resolved": "https://registry.npmjs.org/@alfresco/adf-content-services/-/adf-content-services-3.6.0-58aef5a02986ad0a3e7a31a2805d83018143482e.tgz", - "integrity": "sha512-7p5xq+4HLNsWNgCIGDfdpX6/GY31CpOMIEG2sC1H4RTiWxpzWGFANPaTLcvKi7l5J4SbKZcB+2axRhrIxdSxXQ==", + "version": "3.6.0-beta6", + "resolved": "https://registry.npmjs.org/@alfresco/adf-content-services/-/adf-content-services-3.6.0-beta6.tgz", + "integrity": "sha512-1u3ojCj2Is0RwnWqg3AbQHAv1BvoPm56SBBkCZ1LKFcnMkxVdGRKRDCqcWHh1odhe0c0woez7h+yu31f2NaEwQ==", "requires": { "tslib": "^1.9.0" } }, "@alfresco/adf-core": { - "version": "3.6.0-58aef5a02986ad0a3e7a31a2805d83018143482e", - "resolved": "https://registry.npmjs.org/@alfresco/adf-core/-/adf-core-3.6.0-58aef5a02986ad0a3e7a31a2805d83018143482e.tgz", - "integrity": "sha512-odQ0ldG2mw/WyRXZPTYA6u0P7U7WMlojgB8qhj+QkbWqnCvoV+5vuyaqrhdqVkc4V+4Kh5kSaMsohVXDP+2vxw==", + "version": "3.6.0-beta6", + "resolved": "https://registry.npmjs.org/@alfresco/adf-core/-/adf-core-3.6.0-beta6.tgz", + "integrity": "sha512-++CTO2N4xvdam+z3A/2/vJgzuNd7/eWmW6ynixov8Ygajss6T8Z7iarXIlSvVmrorGtl34f7Z9wPSLD9AKKe2g==", "requires": { "tslib": "^1.9.0" } }, "@alfresco/adf-extensions": { - "version": "3.6.0-58aef5a02986ad0a3e7a31a2805d83018143482e", - "resolved": "https://registry.npmjs.org/@alfresco/adf-extensions/-/adf-extensions-3.6.0-58aef5a02986ad0a3e7a31a2805d83018143482e.tgz", - "integrity": "sha512-/Vv/JaJrTzVOiNrHJOa8IDtzdNTO9rbg5LW+DcfWZaMVrqpsEQ9n43TQVjgrXicJmrucfR6Rdob28X566SwMhQ==", + "version": "3.6.0-beta6", + "resolved": "https://registry.npmjs.org/@alfresco/adf-extensions/-/adf-extensions-3.6.0-beta6.tgz", + "integrity": "sha512-wBxePM91z4EpF3+rLmBfcrfgdzV9PMYSkLjZP/xOOS6nuVV4ZheVRFw2IqKHS6hphOcbWUMHYSc0UWqBrE9kbQ==", "requires": { "tslib": "^1.9.0" } @@ -8981,9 +8981,9 @@ } }, "node-sass": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz", - "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.0.tgz", + "integrity": "sha512-W1XBrvoJ1dy7VsvTAS5q1V45lREbTlZQqFbiHb3R3OTTCma0XBtuG6xZ6Z4506nR4lmHPTqVRwxT6KgtWC97CA==", "dev": true, "requires": { "async-foreach": "^0.1.3", @@ -8993,7 +8993,7 @@ "get-stdin": "^4.0.1", "glob": "^7.0.3", "in-publish": "^2.0.0", - "lodash": "^4.17.11", + "lodash": "^4.17.15", "meow": "^3.7.0", "mkdirp": "^0.5.1", "nan": "^2.13.2", diff --git a/package.json b/package.json index 86b501c51..15a9b0a99 100644 --- a/package.json +++ b/package.json @@ -36,9 +36,9 @@ }, "private": true, "dependencies": { - "@alfresco/adf-content-services": "3.6.0-58aef5a02986ad0a3e7a31a2805d83018143482e", - "@alfresco/adf-core": "3.6.0-58aef5a02986ad0a3e7a31a2805d83018143482e", - "@alfresco/adf-extensions": "3.6.0-58aef5a02986ad0a3e7a31a2805d83018143482e", + "@alfresco/adf-content-services": "3.6.0-beta6", + "@alfresco/adf-core": "3.6.0-beta6", + "@alfresco/adf-extensions": "3.6.0-beta6", "@alfresco/js-api": "3.6.0-7b7488124991a11478cb9b27699e4d0629d99365", "@angular/animations": "7.2.15", "@angular/cdk": "^7.3.7", @@ -97,6 +97,7 @@ "karma-jasmine-html-reporter": "^0.2.2", "lint-staged": "^8.2.0", "ng-packagr": "^4.7.1", + "node-sass": "4.13.0", "node-stream-zip": "1.8.0", "prettier": "^1.17.1", "protractor": "5.4.2", From 236d80106d7c4bf08cda8038f613847b296e60be Mon Sep 17 00:00:00 2001 From: Martin Muller Date: Fri, 22 Nov 2019 11:11:39 +0100 Subject: [PATCH 05/19] Introduce new SERVER_PATH variable. Create Readme.md for docker information (#1254) --- Dockerfile | 3 +-- docker/Readme.md | 20 ++++++++++++++++++++ docker/entrypoint.sh | 9 +++++++++ 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 docker/Readme.md diff --git a/Dockerfile b/Dockerfile index b4c6e8aad..5060e7228 100644 --- a/Dockerfile +++ b/Dockerfile @@ -28,8 +28,7 @@ COPY --from=builder /usr/src/alfresco/licenses ./licenses RUN addgroup -g ${GROUPID} ${GROUPNAME} && \ adduser -S -u ${USERID} -G ${GROUPNAME} -s "/bin/bash" ${USERNAME} && \ - chown -R ${USERNAME}:${GROUPNAME} ./app.config.json && \ - chown -R ${USERNAME}:${GROUPNAME} ./index.html && \ + chown -R ${USERNAME}:${GROUPNAME} /usr/share/nginx/html && \ chown -R ${USERNAME}:${GROUPNAME} /var/cache/nginx && \ touch /var/run/nginx.pid && \ chown -R ${USERNAME}:${GROUPNAME} /var/run/nginx.pid && \ diff --git a/docker/Readme.md b/docker/Readme.md new file mode 100644 index 000000000..9fa52c7ca --- /dev/null +++ b/docker/Readme.md @@ -0,0 +1,20 @@ +# ACA Docker Image + +Docker images are released to [docker hub](https://hub.docker.com/r/alfresco/alfresco-content-app) + +## Environment Variables + +OAUTH2: + +- APP_CONFIG_AUTH_TYPE: ... +- APP_CONFIG_OAUTH2_HOST: ... +- APP_CONFIG_OAUTH2_CLIENTID: ... +- APP_CONFIG_OAUTH2_REDIRECT_LOGIN: ... +- APP_CONFIG_OAUTH2_REDIRECT_LOGOUT: ... +- APP_CONFIG_OAUTH2_REDIRECT_SILENT_IFRAME_URI: ... + +APP Misc: + +- BASE_PATH: ... +- APP_BASE_SHARE_URL: ... +- SERVER_PATH: Server path (usefull if behind a reverse proxy). E.g.: `/content-app` . Defaults to `/` diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index a7a391468..2c2f08024 100644 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -81,4 +81,13 @@ if [ -n "${APP_BASE_SHARE_URL}" ];then cat /tmp/app.config.json > ./app.config.json fi +if [[ $SERVER_PATH ]]; then + mkdir -p .$SERVER_PATH + cp -R * .$SERVER_PATH + replace="\/" + encoded=${SERVER_PATH//\//$replace} + sed -ri 's%href=".?/"%href="'$encoded/'"%g' /tmp/index.html && \ + cat /tmp/index.html > .$SERVER_PATH/index.html +fi + nginx -g "daemon off;" From f526db9657768657f44b70b05348981b97f0f016 Mon Sep 17 00:00:00 2001 From: Cilibiu Bogdan Date: Fri, 22 Nov 2019 14:16:23 +0200 Subject: [PATCH 06/19] [ACA-2621] Shared link - when dialog is closed focus is not returned to trigger (#1255) * use custom component action * adjust component. to render icon and menu action * pass action data * update selection after dialog closes * update mocks --- .../context-submenus-ext.json | 15 ++++++ .../toggle-shared.component.html | 36 ++++++++++---- .../toggle-shared/toggle-shared.component.ts | 4 +- .../services/content-management.service.ts | 4 +- src/assets/app.extensions.json | 47 +++++-------------- 5 files changed, 58 insertions(+), 48 deletions(-) diff --git a/e2e/resources/extensibility-configs/context-submenus-ext.json b/e2e/resources/extensibility-configs/context-submenus-ext.json index afd0c4e68..4d541388f 100644 --- a/e2e/resources/extensibility-configs/context-submenus-ext.json +++ b/e2e/resources/extensibility-configs/context-submenus-ext.json @@ -422,6 +422,9 @@ "id": "app.toolbar.share", "type": "custom", "order": 600, + "data": { + "iconButton": true + }, "component": "app.shared-link.toggleSharedLink", "rules": { "visible": "app.selection.file.canShare" @@ -517,6 +520,9 @@ "id": "item3", "type": "custom", "order": 400, + "data": { + "iconButton": false + }, "component": "app.shared-link.toggleSharedLink", "rules": { "visible": "app.selection.file.canShare" @@ -538,6 +544,9 @@ "id": "item3", "type": "custom", "order": 400, + "data": { + "iconButton": false + }, "component": "app.shared-link.toggleSharedLink", "rules": { "visible": "app.selection.file.canShare" @@ -586,6 +595,9 @@ "id": "app.context.menu.share", "type": "custom", "order": 400, + "data": { + "iconButton": false + }, "component": "app.shared-link.toggleSharedLink", "rules": { "visible": "app.selection.file.canShare" @@ -805,6 +817,9 @@ "id": "app.viewer.share", "type": "custom", "order": 300, + "data": { + "iconButton": true + }, "component": "app.shared-link.toggleSharedLink", "rules": { "visible": "app.selection.file.canShare" diff --git a/src/app/components/common/toggle-shared/toggle-shared.component.html b/src/app/components/common/toggle-shared/toggle-shared.component.html index e21e736eb..5ad56b496 100644 --- a/src/app/components/common/toggle-shared/toggle-shared.component.html +++ b/src/app/components/common/toggle-shared/toggle-shared.component.html @@ -1,14 +1,30 @@ - + + + + + + + diff --git a/src/app/components/common/toggle-shared/toggle-shared.component.ts b/src/app/components/common/toggle-shared/toggle-shared.component.ts index ca3968859..648c8b02c 100644 --- a/src/app/components/common/toggle-shared/toggle-shared.component.ts +++ b/src/app/components/common/toggle-shared/toggle-shared.component.ts @@ -23,7 +23,7 @@ * along with Alfresco. If not, see . */ -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit, Input } from '@angular/core'; import { Observable } from 'rxjs'; import { Store } from '@ngrx/store'; import { SelectionState } from '@alfresco/adf-extensions'; @@ -38,6 +38,8 @@ import { templateUrl: './toggle-shared.component.html' }) export class ToggleSharedComponent implements OnInit { + @Input() data: any; + selection$: Observable; constructor(private store: Store) {} diff --git a/src/app/services/content-management.service.ts b/src/app/services/content-management.service.ts index 63ecf1e3e..a76aec2b8 100644 --- a/src/app/services/content-management.service.ts +++ b/src/app/services/content-management.service.ts @@ -214,9 +214,7 @@ export class ContentManagementService { }) .afterClosed() .subscribe(deletedSharedLink => { - this.store.dispatch( - new SetSelectedNodesAction([deletedSharedLink || node]) - ); + this.store.dispatch(new SetSelectedNodesAction([node])); if (deletedSharedLink) { this.linksUnshared.next(deletedSharedLink); } diff --git a/src/assets/app.extensions.json b/src/assets/app.extensions.json index cb24b7745..8a8c989b9 100644 --- a/src/assets/app.extensions.json +++ b/src/assets/app.extensions.json @@ -197,26 +197,14 @@ }, { "id": "app.toolbar.share", + "type": "custom", "order": 100, - "title": "APP.ACTIONS.SHARE", - "icon": "link", - "actions": { - "click": "SHARE_NODE" + "data": { + "iconButton": true }, + "component": "app.shared-link.toggleSharedLink", "rules": { - "visible": "app.selection.file.canShare" - } - }, - { - "id": "app.toolbar.share.edit", - "order": 101, - "title": "APP.ACTIONS.SHARE_EDIT", - "icon": "link", - "actions": { - "click": "SHARE_NODE" - }, - "rules": { - "visible": "app.selection.file.isShared" + "visible": "canToggleSharedLink" } }, { @@ -486,6 +474,9 @@ "id": "app.context.menu.share", "type": "custom", "order": 100, + "data": { + "iconButton": false + }, "component": "app.shared-link.toggleSharedLink", "rules": { "visible": "canToggleSharedLink" @@ -747,26 +738,14 @@ }, { "id": "app.viewer.share", + "type": "custom", "order": 200, - "title": "APP.ACTIONS.SHARE", - "icon": "link", - "actions": { - "click": "SHARE_NODE" + "data": { + "iconButton": true }, + "component": "app.shared-link.toggleSharedLink", "rules": { - "visible": "app.selection.file.canShare" - } - }, - { - "id": "app.viewer.share.edit", - "order": 250, - "title": "APP.ACTIONS.SHARE_EDIT", - "icon": "link", - "actions": { - "click": "SHARE_NODE" - }, - "rules": { - "visible": "app.selection.file.isShared" + "visible": "canToggleSharedLink" } }, { From b869bde294be23f89f32fd03c4217b2ac4c9e0cd Mon Sep 17 00:00:00 2001 From: Adina Parpalita Date: Mon, 25 Nov 2019 14:12:50 +0200 Subject: [PATCH 07/19] add new translation files (#1257) --- src/assets/i18n/ar.json | 21 ++++++++++++++++- src/assets/i18n/cs.json | 23 +++++++++++++++++-- src/assets/i18n/da.json | 23 +++++++++++++++++-- src/assets/i18n/de.json | 23 +++++++++++++++++-- src/assets/i18n/en.json | 2 +- src/assets/i18n/es.json | 21 ++++++++++++++++- src/assets/i18n/fi.json | 23 +++++++++++++++++-- src/assets/i18n/fr.json | 23 +++++++++++++++++-- src/assets/i18n/it.json | 47 ++++++++++++++++++++++++++------------ src/assets/i18n/ja.json | 23 +++++++++++++++++-- src/assets/i18n/nb.json | 21 ++++++++++++++++- src/assets/i18n/nl.json | 23 +++++++++++++++++-- src/assets/i18n/pl.json | 23 +++++++++++++++++-- src/assets/i18n/pt-BR.json | 23 +++++++++++++++++-- src/assets/i18n/ru.json | 23 +++++++++++++++++-- src/assets/i18n/sv.json | 23 +++++++++++++++++-- src/assets/i18n/zh-CN.json | 25 +++++++++++++++++--- 17 files changed, 347 insertions(+), 43 deletions(-) diff --git a/src/assets/i18n/ar.json b/src/assets/i18n/ar.json index e8e65f6b9..b5e876dde 100644 --- a/src/assets/i18n/ar.json +++ b/src/assets/i18n/ar.json @@ -211,7 +211,9 @@ "CANCEL_JOIN": "إلغاء طلب الانضمام", "LEAVE": "مغادرة المكتبة", "EDIT_OFFLINE": "تحرير دون اتصال بالإنترنت", - "EDIT_OFFLINE_CANCEL": "إلغاء التحرير" + "EDIT_OFFLINE_CANCEL": "إلغاء التحرير", + "LIST_MODE": "عرض القائمة", + "GALLERY_MODE": "عرض المعرض" }, "DIALOGS": { "CONFIRM_PURGE": { @@ -475,6 +477,11 @@ "THIS_YEAR": "هذا العام" } }, + "AVATAR": { + "ACCESSIBILITY": { + "AVATAR_BUTTON_ARIA_LABEL": "خيارات المستخدم" + } + }, "CORE": { "METADATA": { "ACTIONS": { @@ -499,5 +506,17 @@ "TOOLTIP": "تحميل إصدار جديد" } } + }, + "CUSTOM_NAME_COLUMN": { + "ACCESSIBILITY": { + "FILE_LINK_ARIA_LABEL": "عرض {{ name }}", + "FOLDER_LINK_ARIA_LABEL": "فتح مجلد {{ name }}" + } + }, + "ADF-DATATABLE": { + "FILE_TYPE": { + "BOOKS-24PX": "مكتبة ملفات", + "BASELINE-LOCK-24PX": "ملف مؤمن" + } } } diff --git a/src/assets/i18n/cs.json b/src/assets/i18n/cs.json index a46078ffe..a6f20733d 100644 --- a/src/assets/i18n/cs.json +++ b/src/assets/i18n/cs.json @@ -211,7 +211,9 @@ "CANCEL_JOIN": "Zrušit žádost o připojení", "LEAVE": "Opustit knihovnu", "EDIT_OFFLINE": "Upravit offline", - "EDIT_OFFLINE_CANCEL": "Zrušit úpravu" + "EDIT_OFFLINE_CANCEL": "Zrušit úpravu", + "LIST_MODE": "Zobrazit seznam", + "GALLERY_MODE": "Zobrazit galerii" }, "DIALOGS": { "CONFIRM_PURGE": { @@ -475,6 +477,11 @@ "THIS_YEAR": "Letos" } }, + "AVATAR": { + "ACCESSIBILITY": { + "AVATAR_BUTTON_ARIA_LABEL": "Uživatelské možnosti" + } + }, "CORE": { "METADATA": { "ACTIONS": { @@ -499,5 +506,17 @@ "TOOLTIP": "Odeslat novou verzi" } } + }, + "CUSTOM_NAME_COLUMN": { + "ACCESSIBILITY": { + "FILE_LINK_ARIA_LABEL": "Zobrazit {{ name }}", + "FOLDER_LINK_ARIA_LABEL": "Otevřít složku {{ name }}" + } + }, + "ADF-DATATABLE": { + "FILE_TYPE": { + "BOOKS-24PX": "knihovnu souborů", + "BASELINE-LOCK-24PX": "uzamčený soubor" + } } -} \ No newline at end of file +} diff --git a/src/assets/i18n/da.json b/src/assets/i18n/da.json index 77436f797..fe98e639e 100644 --- a/src/assets/i18n/da.json +++ b/src/assets/i18n/da.json @@ -211,7 +211,9 @@ "CANCEL_JOIN": "Annuller anmodning om tilmelding", "LEAVE": "Forlad bibliotek", "EDIT_OFFLINE": "Rediger offline", - "EDIT_OFFLINE_CANCEL": "Annuller redigering" + "EDIT_OFFLINE_CANCEL": "Annuller redigering", + "LIST_MODE": "Vis liste", + "GALLERY_MODE": "Vis galleri" }, "DIALOGS": { "CONFIRM_PURGE": { @@ -475,6 +477,11 @@ "THIS_YEAR": "I år" } }, + "AVATAR": { + "ACCESSIBILITY": { + "AVATAR_BUTTON_ARIA_LABEL": "Valgmuligheder for bruger" + } + }, "CORE": { "METADATA": { "ACTIONS": { @@ -499,5 +506,17 @@ "TOOLTIP": "Upload ny version" } } + }, + "CUSTOM_NAME_COLUMN": { + "ACCESSIBILITY": { + "FILE_LINK_ARIA_LABEL": "Vis {{ name }}", + "FOLDER_LINK_ARIA_LABEL": "Åbn mappen {{ name }}" + } + }, + "ADF-DATATABLE": { + "FILE_TYPE": { + "BOOKS-24PX": "filbibliotek", + "BASELINE-LOCK-24PX": "låst fil" + } } -} \ No newline at end of file +} diff --git a/src/assets/i18n/de.json b/src/assets/i18n/de.json index 8882e029e..798a1a2f6 100644 --- a/src/assets/i18n/de.json +++ b/src/assets/i18n/de.json @@ -211,7 +211,9 @@ "CANCEL_JOIN": "Beitrittsanfrage zurückziehen", "LEAVE": "Bibliothek verlassen", "EDIT_OFFLINE": "Offline bearbeiten", - "EDIT_OFFLINE_CANCEL": "Bearbeitung abbrechen" + "EDIT_OFFLINE_CANCEL": "Bearbeitung abbrechen", + "LIST_MODE": "Liste anzeigen", + "GALLERY_MODE": "Galerie anzeigen" }, "DIALOGS": { "CONFIRM_PURGE": { @@ -475,6 +477,11 @@ "THIS_YEAR": "dieses Jahr" } }, + "AVATAR": { + "ACCESSIBILITY": { + "AVATAR_BUTTON_ARIA_LABEL": "Benutzeroptionen" + } + }, "CORE": { "METADATA": { "ACTIONS": { @@ -499,5 +506,17 @@ "TOOLTIP": "Neue Version hochladen" } } + }, + "CUSTOM_NAME_COLUMN": { + "ACCESSIBILITY": { + "FILE_LINK_ARIA_LABEL": "{{ name }} anzeigen", + "FOLDER_LINK_ARIA_LABEL": "Ordner '{{ name }}' öffnen" + } + }, + "ADF-DATATABLE": { + "FILE_TYPE": { + "BOOKS-24PX": "Dateibibliothek", + "BASELINE-LOCK-24PX": "gesperrte Datei" + } } -} \ No newline at end of file +} diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 21beb16b1..ec473ac55 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -509,7 +509,7 @@ }, "CUSTOM_NAME_COLUMN": { "ACCESSIBILITY": { - "FILE_LINK_ARIA_LABEL": "View file {{ name }}", + "FILE_LINK_ARIA_LABEL": "View {{ name }}", "FOLDER_LINK_ARIA_LABEL": "Open {{ name }} folder" } }, diff --git a/src/assets/i18n/es.json b/src/assets/i18n/es.json index f9bb68698..9a2267db4 100644 --- a/src/assets/i18n/es.json +++ b/src/assets/i18n/es.json @@ -211,7 +211,9 @@ "CANCEL_JOIN": "Cancelar solicitud de unirse", "LEAVE": "Abandonar biblioteca", "EDIT_OFFLINE": "Editar fuera de línea", - "EDIT_OFFLINE_CANCEL": "Cancelar edición" + "EDIT_OFFLINE_CANCEL": "Cancelar edición", + "LIST_MODE": "Ver lista", + "GALLERY_MODE": "Ver galería" }, "DIALOGS": { "CONFIRM_PURGE": { @@ -475,6 +477,11 @@ "THIS_YEAR": "Este año" } }, + "AVATAR": { + "ACCESSIBILITY": { + "AVATAR_BUTTON_ARIA_LABEL": "Opciones de usuario" + } + }, "CORE": { "METADATA": { "ACTIONS": { @@ -499,5 +506,17 @@ "TOOLTIP": "Cargue nueva versión" } } + }, + "CUSTOM_NAME_COLUMN": { + "ACCESSIBILITY": { + "FILE_LINK_ARIA_LABEL": "Ver {{ name }}", + "FOLDER_LINK_ARIA_LABEL": "Abrir carpeta {{ name }}" + } + }, + "ADF-DATATABLE": { + "FILE_TYPE": { + "BOOKS-24PX": "Biblioteca de ficheros", + "BASELINE-LOCK-24PX": "fichero bloqueado" + } } } diff --git a/src/assets/i18n/fi.json b/src/assets/i18n/fi.json index 67b5c27bf..30924fc7f 100644 --- a/src/assets/i18n/fi.json +++ b/src/assets/i18n/fi.json @@ -211,7 +211,9 @@ "CANCEL_JOIN": "Peruuta liittymispyyntö", "LEAVE": "Poistu kirjastosta", "EDIT_OFFLINE": "Muokkaa offline-tilassa", - "EDIT_OFFLINE_CANCEL": "Peruuta muokkaus" + "EDIT_OFFLINE_CANCEL": "Peruuta muokkaus", + "LIST_MODE": "Tarkastele luetteloa", + "GALLERY_MODE": "Tarkastele galleriaa" }, "DIALOGS": { "CONFIRM_PURGE": { @@ -475,6 +477,11 @@ "THIS_YEAR": "Tänä vuonna" } }, + "AVATAR": { + "ACCESSIBILITY": { + "AVATAR_BUTTON_ARIA_LABEL": "Käyttäjän valinnat" + } + }, "CORE": { "METADATA": { "ACTIONS": { @@ -499,5 +506,17 @@ "TOOLTIP": "Lataa uusi versio" } } + }, + "CUSTOM_NAME_COLUMN": { + "ACCESSIBILITY": { + "FILE_LINK_ARIA_LABEL": "Tarkastele kohdetta {{ name }}", + "FOLDER_LINK_ARIA_LABEL": "Avaa kansio {{ name }}" + } + }, + "ADF-DATATABLE": { + "FILE_TYPE": { + "BOOKS-24PX": "tiedostokirjasto", + "BASELINE-LOCK-24PX": "tiedosto lukittu" + } } -} \ No newline at end of file +} diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json index 40b7d6202..29b02fcf2 100644 --- a/src/assets/i18n/fr.json +++ b/src/assets/i18n/fr.json @@ -211,7 +211,9 @@ "CANCEL_JOIN": "Annuler la demande pour rejoindre", "LEAVE": "Quitter la bibliothèque", "EDIT_OFFLINE": "Editer hors-ligne", - "EDIT_OFFLINE_CANCEL": "Annuler l'édition" + "EDIT_OFFLINE_CANCEL": "Annuler l'édition", + "LIST_MODE": "Afficher la liste", + "GALLERY_MODE": "Afficher la galerie" }, "DIALOGS": { "CONFIRM_PURGE": { @@ -475,6 +477,11 @@ "THIS_YEAR": "Cette année" } }, + "AVATAR": { + "ACCESSIBILITY": { + "AVATAR_BUTTON_ARIA_LABEL": "Options utilisateur" + } + }, "CORE": { "METADATA": { "ACTIONS": { @@ -499,5 +506,17 @@ "TOOLTIP": "Importer une nouvelle version" } } + }, + "CUSTOM_NAME_COLUMN": { + "ACCESSIBILITY": { + "FILE_LINK_ARIA_LABEL": "Afficher {{ name }}", + "FOLDER_LINK_ARIA_LABEL": "Ouvrir le dossier {{ name }}" + } + }, + "ADF-DATATABLE": { + "FILE_TYPE": { + "BOOKS-24PX": "bibliothèque de fichiers", + "BASELINE-LOCK-24PX": "fichier verrouillé" + } } -} \ No newline at end of file +} diff --git a/src/assets/i18n/it.json b/src/assets/i18n/it.json index 14373cc79..f2078249b 100644 --- a/src/assets/i18n/it.json +++ b/src/assets/i18n/it.json @@ -8,7 +8,7 @@ "ID": "ID", "NAME": "Nome", "VERSION": "Versione", - "VENDOR": "Fornitore", + "VENDOR": "Venditore", "LICENSE": "Licenza", "RUNTIME": "Runtime", "DESCRIPTION": "Descrizione" @@ -103,9 +103,9 @@ } }, "FAVORITE_LIBRARIES": { - "TITLE": "Raccolte preferite", + "TITLE": "Raccolte preferite", "SIDENAV_LINK": { - "LABEL": "Raccolte preferite", + "LABEL": "Raccolte preferite", "TOOLTIP": "Accedi alle raccolte preferite" } } @@ -201,7 +201,7 @@ "UNSHARE": "Rimuovi condivisione", "DETAILS": "Visualizza dettagli", "VERSIONS": "Gestione versioni", - "UPLOAD_VERSION": "Caricare la nuova versione", + "UPLOAD_VERSION": "Carica la nuova versione", "TOGGLE-SIDENAV": "Attiva/disattiva barra di navigazione laterale", "SHARE": "Condividi", "SHARE_EDIT": "Impostazioni di collegamento condiviso", @@ -211,7 +211,9 @@ "CANCEL_JOIN": "Annulla richiesta di partecipazione", "LEAVE": "Esci dalla raccolta", "EDIT_OFFLINE": "Modifica offline", - "EDIT_OFFLINE_CANCEL": "Annulla modifica" + "EDIT_OFFLINE_CANCEL": "Annulla modifica", + "LIST_MODE": "Visualizza elenco", + "GALLERY_MODE": "Visualizza raccolta" }, "DIALOGS": { "CONFIRM_PURGE": { @@ -278,13 +280,13 @@ "JOIN_REQUEST_FAILED": "Impossibile partecipare alla raccolta", "JOIN_CANCEL_FAILED": "Impossibile annullare la richiesta di partecipazione", "LEAVE_LIBRARY_FAILED": "Impossibile uscire dalla raccolta", - "INVALID_SENDER_EMAIL": "L'indirizzo email deve essere valido prima della richiesta di accesso.", - "INVALID_RECEIVER_EMAIL": "Indirizzo email del destinatario non valido. Contattare l'IT." + "INVALID_SENDER_EMAIL": "L'indirizzo e-mail deve essere valido prima della richiesta di accesso.", + "INVALID_RECEIVER_EMAIL": "Indirizzo e-mail del destinatario non valido. Contattare l'IT." }, "UPLOAD": { "ERROR": { "GENERIC": "Caricamento non riuscito. Se il problema persiste, contattare l'IT", - "CONFLICT": "Nuova versione non caricata. Esiste già un fil con lo stesso nome.", + "CONFLICT": "Nuova versione non caricata. Esiste già un file con lo stesso nome.", "500": "Errore interno del server. Riprovare o contattare il supporto IT [500]", "504": "Timeout del server. Riprovare o contattare il supporto IT [504]", "403": "Autorizzazioni insufficienti per caricare in questa posizione [403]", @@ -295,7 +297,7 @@ "TRASH": { "NODES_PURGE": { "PLURAL": "{{ number }} elementi eliminati", - "SINGULAR": "Elemento {{ name }} eliminato", + "SINGULAR": "{{ name }} eliminato", "PARTIAL_SINGULAR": "Elemento {{ name }} eliminato. Impossibile eliminare l'elemento {{ failed }}.", "PARTIAL_PLURAL": "{{ number }} elementi eliminati, impossibile eliminare {{ failed }}" }, @@ -306,7 +308,7 @@ }, "NODE_DELETION": { "SINGULAR": "{{ name }} eliminato", - "PLURAL": "{{ number }} elementi eliminati", + "PLURAL": "Eliminati {{ number }} elementi", "PARTIAL_SINGULAR": "Elemento {{ success }} eliminato, impossibile eliminare {{ failed }}", "PARTIAL_PLURAL": "Elementi {{ success }} eliminati, impossibile eliminare {{ failed }}" }, @@ -343,7 +345,7 @@ "TABS": { "PROPERTIES": "Proprietà", "LIBRARY_PROPERTIES": "Informazioni su", - "VERSIONS": "Versione", + "VERSIONS": "Versioni", "COMMENTS": "Commenti" } } @@ -365,7 +367,7 @@ } }, "SHARED_LINK": { - "UNSHARE_PERMISSION_ERROR": "Non hai il permesso per rimuovere la condivisione di questo file" + "UNSHARE_PERMISSION_ERROR": "Non si dispone dei permessi per rimuovere la condivisione di questo file" }, "VERSION": { "DIALOG_ADF": { @@ -373,7 +375,7 @@ "CLOSE": "Chiudi" }, "DIALOG": { - "TITLE": "Utilizza nuova versione", + "TITLE": "Carica la nuova versione", "CANCEL": "Annulla", "UPLOAD": "Carica" }, @@ -475,6 +477,11 @@ "THIS_YEAR": "Quest'anno" } }, + "AVATAR": { + "ACCESSIBILITY": { + "AVATAR_BUTTON_ARIA_LABEL": "Opzioni utente" + } + }, "CORE": { "METADATA": { "ACTIONS": { @@ -496,8 +503,20 @@ "ADF_VERSION_LIST": { "ACTIONS": { "UPLOAD": { - "TOOLTIP": "Caricare la nuova versione" + "TOOLTIP": "Carica la nuova versione" } } + }, + "CUSTOM_NAME_COLUMN": { + "ACCESSIBILITY": { + "FILE_LINK_ARIA_LABEL": "Visualizza {{ name }}", + "FOLDER_LINK_ARIA_LABEL": "Apri cartella {{ name }}" + } + }, + "ADF-DATATABLE": { + "FILE_TYPE": { + "BOOKS-24PX": "Raccolta di file", + "BASELINE-LOCK-24PX": "File bloccato" + } } } diff --git a/src/assets/i18n/ja.json b/src/assets/i18n/ja.json index bc1958859..a06a48857 100644 --- a/src/assets/i18n/ja.json +++ b/src/assets/i18n/ja.json @@ -211,7 +211,9 @@ "CANCEL_JOIN": "参加リクエストのキャンセル", "LEAVE": "ライブラリから脱退", "EDIT_OFFLINE": "オフライン編集", - "EDIT_OFFLINE_CANCEL": "編集のキャンセル" + "EDIT_OFFLINE_CANCEL": "編集のキャンセル", + "LIST_MODE": "リストを表示", + "GALLERY_MODE": "ギャラリーを表示" }, "DIALOGS": { "CONFIRM_PURGE": { @@ -475,6 +477,11 @@ "THIS_YEAR": "今年" } }, + "AVATAR": { + "ACCESSIBILITY": { + "AVATAR_BUTTON_ARIA_LABEL": "ユーザーオプション" + } + }, "CORE": { "METADATA": { "ACTIONS": { @@ -499,5 +506,17 @@ "TOOLTIP": "新しいバージョンをアップロードします" } } + }, + "CUSTOM_NAME_COLUMN": { + "ACCESSIBILITY": { + "FILE_LINK_ARIA_LABEL": "{{ name }} を表示", + "FOLDER_LINK_ARIA_LABEL": "{{ name }} フォルダを開く" + } + }, + "ADF-DATATABLE": { + "FILE_TYPE": { + "BOOKS-24PX": "ファイルライブラリ", + "BASELINE-LOCK-24PX": "ロックされているファイル" + } } -} \ No newline at end of file +} diff --git a/src/assets/i18n/nb.json b/src/assets/i18n/nb.json index 80bb2982f..8e537a7cf 100644 --- a/src/assets/i18n/nb.json +++ b/src/assets/i18n/nb.json @@ -211,7 +211,9 @@ "CANCEL_JOIN": "Avbryt forespørsel om tilslutning", "LEAVE": "Forlat bibliotek", "EDIT_OFFLINE": "Rediger frakoblet", - "EDIT_OFFLINE_CANCEL": "Avbryt redigering" + "EDIT_OFFLINE_CANCEL": "Avbryt redigering", + "LIST_MODE": "Vis liste", + "GALLERY_MODE": "Vis galleri" }, "DIALOGS": { "CONFIRM_PURGE": { @@ -475,6 +477,11 @@ "THIS_YEAR": "Dette året" } }, + "AVATAR": { + "ACCESSIBILITY": { + "AVATAR_BUTTON_ARIA_LABEL": "Brukeralternativer" + } + }, "CORE": { "METADATA": { "ACTIONS": { @@ -499,5 +506,17 @@ "TOOLTIP": "Last opp ny versjon" } } + }, + "CUSTOM_NAME_COLUMN": { + "ACCESSIBILITY": { + "FILE_LINK_ARIA_LABEL": "Vis {{ name }}", + "FOLDER_LINK_ARIA_LABEL": "Åpne {{ name }}-mappe" + } + }, + "ADF-DATATABLE": { + "FILE_TYPE": { + "BOOKS-24PX": "Filbibliotek", + "BASELINE-LOCK-24PX": "låst fil" + } } } diff --git a/src/assets/i18n/nl.json b/src/assets/i18n/nl.json index 9da09b0e3..2a0ed49eb 100644 --- a/src/assets/i18n/nl.json +++ b/src/assets/i18n/nl.json @@ -211,7 +211,9 @@ "CANCEL_JOIN": "Verzoek om lid te worden annuleren", "LEAVE": "Bibliotheek verlaten", "EDIT_OFFLINE": "Offline bewerken", - "EDIT_OFFLINE_CANCEL": "Bewerken annuleren" + "EDIT_OFFLINE_CANCEL": "Bewerken annuleren", + "LIST_MODE": "Lijst weergeven", + "GALLERY_MODE": "Galerie weergeven" }, "DIALOGS": { "CONFIRM_PURGE": { @@ -475,6 +477,11 @@ "THIS_YEAR": "Dit jaar" } }, + "AVATAR": { + "ACCESSIBILITY": { + "AVATAR_BUTTON_ARIA_LABEL": "Gebruikersopties" + } + }, "CORE": { "METADATA": { "ACTIONS": { @@ -499,5 +506,17 @@ "TOOLTIP": "Nieuwe versie uploaden" } } + }, + "CUSTOM_NAME_COLUMN": { + "ACCESSIBILITY": { + "FILE_LINK_ARIA_LABEL": "{{ name }} weergeven", + "FOLDER_LINK_ARIA_LABEL": "Map {{ name }} openen" + } + }, + "ADF-DATATABLE": { + "FILE_TYPE": { + "BOOKS-24PX": "Bestandsbibliotheek", + "BASELINE-LOCK-24PX": "Vergrendeld bestand" + } } -} \ No newline at end of file +} diff --git a/src/assets/i18n/pl.json b/src/assets/i18n/pl.json index 0bd91f159..11daa02fa 100644 --- a/src/assets/i18n/pl.json +++ b/src/assets/i18n/pl.json @@ -211,7 +211,9 @@ "CANCEL_JOIN": "Anuluj żądanie dołączenia", "LEAVE": "Opuść bibliotekę", "EDIT_OFFLINE": "Edytuj w trybie offline", - "EDIT_OFFLINE_CANCEL": "Anuluj edytowanie" + "EDIT_OFFLINE_CANCEL": "Anuluj edytowanie", + "LIST_MODE": "Wyświetl listę", + "GALLERY_MODE": "Wyświetl galerię" }, "DIALOGS": { "CONFIRM_PURGE": { @@ -475,6 +477,11 @@ "THIS_YEAR": "W tym roku" } }, + "AVATAR": { + "ACCESSIBILITY": { + "AVATAR_BUTTON_ARIA_LABEL": "Opcje użytkownika" + } + }, "CORE": { "METADATA": { "ACTIONS": { @@ -499,5 +506,17 @@ "TOOLTIP": "Prześlij nową wersję" } } + }, + "CUSTOM_NAME_COLUMN": { + "ACCESSIBILITY": { + "FILE_LINK_ARIA_LABEL": "Wyświetl {{ name }}", + "FOLDER_LINK_ARIA_LABEL": "Otwórz folder {{ name }}" + } + }, + "ADF-DATATABLE": { + "FILE_TYPE": { + "BOOKS-24PX": "bibliotekę plików", + "BASELINE-LOCK-24PX": "zablokowany plik" + } } -} \ No newline at end of file +} diff --git a/src/assets/i18n/pt-BR.json b/src/assets/i18n/pt-BR.json index 2023e460b..b90beadb0 100644 --- a/src/assets/i18n/pt-BR.json +++ b/src/assets/i18n/pt-BR.json @@ -211,7 +211,9 @@ "CANCEL_JOIN": "Cancelar solicitação de ingressar", "LEAVE": "Sair da biblioteca", "EDIT_OFFLINE": "Editar offline", - "EDIT_OFFLINE_CANCEL": "Cancelar a edição" + "EDIT_OFFLINE_CANCEL": "Cancelar a edição", + "LIST_MODE": "Exibir lista", + "GALLERY_MODE": "Exibir galeria" }, "DIALOGS": { "CONFIRM_PURGE": { @@ -475,6 +477,11 @@ "THIS_YEAR": "Este ano" } }, + "AVATAR": { + "ACCESSIBILITY": { + "AVATAR_BUTTON_ARIA_LABEL": "Opções de usuário" + } + }, "CORE": { "METADATA": { "ACTIONS": { @@ -499,5 +506,17 @@ "TOOLTIP": "Carregar nova versão" } } + }, + "CUSTOM_NAME_COLUMN": { + "ACCESSIBILITY": { + "FILE_LINK_ARIA_LABEL": "Exibir {{ name }}", + "FOLDER_LINK_ARIA_LABEL": "Abrir pasta {{ name }}" + } + }, + "ADF-DATATABLE": { + "FILE_TYPE": { + "BOOKS-24PX": "Biblioteca de arquivo", + "BASELINE-LOCK-24PX": "arquivo bloqueado" + } } -} \ No newline at end of file +} diff --git a/src/assets/i18n/ru.json b/src/assets/i18n/ru.json index ec190141d..82ff91604 100644 --- a/src/assets/i18n/ru.json +++ b/src/assets/i18n/ru.json @@ -211,7 +211,9 @@ "CANCEL_JOIN": "Отменить запрос на присоединение", "LEAVE": "Покинуть библиотеку", "EDIT_OFFLINE": "Редактировать в автономном режиме", - "EDIT_OFFLINE_CANCEL": "Отменить редактирование" + "EDIT_OFFLINE_CANCEL": "Отменить редактирование", + "LIST_MODE": "Просмотреть список", + "GALLERY_MODE": "Просмотреть галерею" }, "DIALOGS": { "CONFIRM_PURGE": { @@ -475,6 +477,11 @@ "THIS_YEAR": "В этом году" } }, + "AVATAR": { + "ACCESSIBILITY": { + "AVATAR_BUTTON_ARIA_LABEL": "Пользовательские настройки" + } + }, "CORE": { "METADATA": { "ACTIONS": { @@ -499,5 +506,17 @@ "TOOLTIP": "Загрузить новую версию" } } + }, + "CUSTOM_NAME_COLUMN": { + "ACCESSIBILITY": { + "FILE_LINK_ARIA_LABEL": "Просмотреть {{ name }}", + "FOLDER_LINK_ARIA_LABEL": "Открыть папку {{ name }}" + } + }, + "ADF-DATATABLE": { + "FILE_TYPE": { + "BOOKS-24PX": "Библиотека файлов", + "BASELINE-LOCK-24PX": "заблокированный файл" + } } -} \ No newline at end of file +} diff --git a/src/assets/i18n/sv.json b/src/assets/i18n/sv.json index b15802d7d..bd37a7457 100644 --- a/src/assets/i18n/sv.json +++ b/src/assets/i18n/sv.json @@ -211,7 +211,9 @@ "CANCEL_JOIN": "Avbryt förfrågan om att gå med", "LEAVE": "Lämna bibliotek", "EDIT_OFFLINE": "Redigera offline", - "EDIT_OFFLINE_CANCEL": "Avbryt redigering" + "EDIT_OFFLINE_CANCEL": "Avbryt redigering", + "LIST_MODE": "Visa lista", + "GALLERY_MODE": "Visa galleri" }, "DIALOGS": { "CONFIRM_PURGE": { @@ -475,6 +477,11 @@ "THIS_YEAR": "Detta år" } }, + "AVATAR": { + "ACCESSIBILITY": { + "AVATAR_BUTTON_ARIA_LABEL": "Användaralternativ" + } + }, "CORE": { "METADATA": { "ACTIONS": { @@ -499,5 +506,17 @@ "TOOLTIP": "Ladda upp ny version" } } + }, + "CUSTOM_NAME_COLUMN": { + "ACCESSIBILITY": { + "FILE_LINK_ARIA_LABEL": "Visa {{ name }}", + "FOLDER_LINK_ARIA_LABEL": "Öppna mappen {{ name }}" + } + }, + "ADF-DATATABLE": { + "FILE_TYPE": { + "BOOKS-24PX": "filbibliotek", + "BASELINE-LOCK-24PX": "låst fil" + } } -} \ No newline at end of file +} diff --git a/src/assets/i18n/zh-CN.json b/src/assets/i18n/zh-CN.json index ea024e32b..3e659188a 100644 --- a/src/assets/i18n/zh-CN.json +++ b/src/assets/i18n/zh-CN.json @@ -211,7 +211,9 @@ "CANCEL_JOIN": "取消加入请求", "LEAVE": "离开库", "EDIT_OFFLINE": "离线编辑", - "EDIT_OFFLINE_CANCEL": "取消编辑" + "EDIT_OFFLINE_CANCEL": "取消编辑", + "LIST_MODE": "查看列表", + "GALLERY_MODE": "查看图库" }, "DIALOGS": { "CONFIRM_PURGE": { @@ -420,7 +422,7 @@ "ERRORS": { "GENERIC": "我们遇到一个问题", "EXISTENT_SITE": "此库 ID 不可用。请尝试使用其他库 ID。", - "CONFLICT": "此库 ID 已被使用。请检查回收站。", + "CONFLICT": "此库 ID 已被使用。请检查垃圾桶。", "ID_TOO_LONG": "对 URL 名称使用 72 个字符或更少字符", "DESCRIPTION_TOO_LONG": "对描述使用 512 个字符或更少字符", "TITLE_TOO_LONG": "对标题使用 256 个字符或更少字符", @@ -475,6 +477,11 @@ "THIS_YEAR": "今年" } }, + "AVATAR": { + "ACCESSIBILITY": { + "AVATAR_BUTTON_ARIA_LABEL": "用户选项" + } + }, "CORE": { "METADATA": { "ACTIONS": { @@ -499,5 +506,17 @@ "TOOLTIP": "上传新版本" } } + }, + "CUSTOM_NAME_COLUMN": { + "ACCESSIBILITY": { + "FILE_LINK_ARIA_LABEL": "查看 {{ name }}", + "FOLDER_LINK_ARIA_LABEL": "打开 {{ name }} 文件夹" + } + }, + "ADF-DATATABLE": { + "FILE_TYPE": { + "BOOKS-24PX": "文件库", + "BASELINE-LOCK-24PX": "已锁定文件" + } } -} \ No newline at end of file +} From 9c224e55385fe986c3b0a5b3d720116e1da76866 Mon Sep 17 00:00:00 2001 From: john-knowles <18680913+john-knowles@users.noreply.github.com> Date: Tue, 26 Nov 2019 10:09:56 +0000 Subject: [PATCH 08/19] Update README.md (#1259) --- docs/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/README.md b/docs/README.md index 51b3ed916..b689bc3f9 100644 --- a/docs/README.md +++ b/docs/README.md @@ -24,6 +24,7 @@ The documentation is divided into the following sections: | ACA Version | Built with | Tested on | | ----------- | ---------- | --------- | +| ACA 1.9 | ADF 3.6.0 | ACS 6.2 | | ACA 1.8 | ADF 3.3.0 | ACS 6.1 | | ACA 1.7 | ADF 3.0.0 | ACS 6.1 | | ACA 1.6 | ADF 2.6.1 | ACS 6.1 | From c439587f0995a1ba5f7ba059a0633d82362d9b40 Mon Sep 17 00:00:00 2001 From: Martin Muller Date: Tue, 26 Nov 2019 12:35:47 +0100 Subject: [PATCH 09/19] [ACA-2665] update ADF to 3.6.0 (#1261) * Update adf libraries --- package-lock.json | 79 +++++++++++++++++++++++++++++------------------ package.json | 8 ++--- 2 files changed, 53 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index e515b04d9..8340f2ff3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,33 +5,33 @@ "requires": true, "dependencies": { "@alfresco/adf-content-services": { - "version": "3.6.0-beta6", - "resolved": "https://registry.npmjs.org/@alfresco/adf-content-services/-/adf-content-services-3.6.0-beta6.tgz", - "integrity": "sha512-1u3ojCj2Is0RwnWqg3AbQHAv1BvoPm56SBBkCZ1LKFcnMkxVdGRKRDCqcWHh1odhe0c0woez7h+yu31f2NaEwQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@alfresco/adf-content-services/-/adf-content-services-3.6.0.tgz", + "integrity": "sha512-npEPJ4eAIalIWd4lmTltYiS3XyLdagzfqDUfC9oHwFz8QfX7y8mUtaSDBVYqTGRm3lZ7vElczfsbuKlknLaxog==", "requires": { "tslib": "^1.9.0" } }, "@alfresco/adf-core": { - "version": "3.6.0-beta6", - "resolved": "https://registry.npmjs.org/@alfresco/adf-core/-/adf-core-3.6.0-beta6.tgz", - "integrity": "sha512-++CTO2N4xvdam+z3A/2/vJgzuNd7/eWmW6ynixov8Ygajss6T8Z7iarXIlSvVmrorGtl34f7Z9wPSLD9AKKe2g==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@alfresco/adf-core/-/adf-core-3.6.0.tgz", + "integrity": "sha512-WlYvxuBpJ6sug5iPfJprdWDZcDtJ7Y6/SFzEchEhan30O4Efb/MgWY+3s1nCsIwX0eYhyv8pj9NHQjHNjPotLw==", "requires": { "tslib": "^1.9.0" } }, "@alfresco/adf-extensions": { - "version": "3.6.0-beta6", - "resolved": "https://registry.npmjs.org/@alfresco/adf-extensions/-/adf-extensions-3.6.0-beta6.tgz", - "integrity": "sha512-wBxePM91z4EpF3+rLmBfcrfgdzV9PMYSkLjZP/xOOS6nuVV4ZheVRFw2IqKHS6hphOcbWUMHYSc0UWqBrE9kbQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@alfresco/adf-extensions/-/adf-extensions-3.6.0.tgz", + "integrity": "sha512-/B2+TKrjQswXsTkkuU7qgK9Ud8Wn02bZRgRuKZiPwUxIo8s4wSMZpgWkfrIw58WDNDiL/MDgDeNiCrpxxrzdow==", "requires": { "tslib": "^1.9.0" } }, "@alfresco/js-api": { - "version": "3.6.0-7b7488124991a11478cb9b27699e4d0629d99365", - "resolved": "https://registry.npmjs.org/@alfresco/js-api/-/js-api-3.6.0-7b7488124991a11478cb9b27699e4d0629d99365.tgz", - "integrity": "sha512-FmA39yRdKQ/XmgdLEj1rj0trF1/xDyUBjzZKcwmJREPZ9q/XTuGKy3pP/zgMIrEN6r3s2WiPj95Lg1c9R/uU9w==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@alfresco/js-api/-/js-api-3.6.0.tgz", + "integrity": "sha512-aXc4twC3jDTZqyyhrlQX5DvyuSAnsfmZ7LT03itm/II9EqFEHcpXGWzyOA2VyZSyfuYz5e13KuM6v1VqBZxCwQ==", "requires": { "event-emitter": "^0.3.5", "minimatch": "3.0.4", @@ -4225,12 +4225,12 @@ } }, "es5-ext": { - "version": "0.10.52", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.52.tgz", - "integrity": "sha512-bWCbE9fbpYQY4CU6hJbJ1vSz70EClMlDgJ7BmwI+zEJhxrwjesZRPglGJlsZhu0334U3hI+gaspwksH9IGD6ag==", + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", "requires": { "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.2", + "es6-symbol": "~3.1.3", "next-tick": "~1.0.0" } }, @@ -4655,9 +4655,9 @@ } }, "ext": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.2.0.tgz", - "integrity": "sha512-0ccUQK/9e3NreLFg6K6np8aPyRgwycx+oFGtfx1dSp7Wj00Ozw9r05FgBRlzjf2XBM7LAzwgLyDscRrtSU91hA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.2.1.tgz", + "integrity": "sha512-x+OKKC57tNiLhDW26UmWtvQBpvO+2wxdC/A0jP7RkmjAc4gze9/U98hQyIYJUzo9A+o9ntMHpC+LH3pWMSbrVQ==", "requires": { "type": "^2.0.0" }, @@ -5187,7 +5187,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -5208,12 +5209,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5228,17 +5231,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -5355,7 +5361,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -5367,6 +5374,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -5381,6 +5389,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -5388,12 +5397,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -5412,6 +5423,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -5492,7 +5504,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -5504,6 +5517,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -5589,7 +5603,8 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -5625,6 +5640,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5644,6 +5660,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5687,12 +5704,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, diff --git a/package.json b/package.json index 15a9b0a99..78c457248 100644 --- a/package.json +++ b/package.json @@ -36,10 +36,10 @@ }, "private": true, "dependencies": { - "@alfresco/adf-content-services": "3.6.0-beta6", - "@alfresco/adf-core": "3.6.0-beta6", - "@alfresco/adf-extensions": "3.6.0-beta6", - "@alfresco/js-api": "3.6.0-7b7488124991a11478cb9b27699e4d0629d99365", + "@alfresco/adf-content-services": "3.6.0", + "@alfresco/adf-core": "3.6.0", + "@alfresco/adf-extensions": "3.6.0", + "@alfresco/js-api": "3.6.0", "@angular/animations": "7.2.15", "@angular/cdk": "^7.3.7", "@angular/common": "7.2.15", From b347bf53b45043ffce6df44330bcd4ad2b79cae4 Mon Sep 17 00:00:00 2001 From: john-knowles <18680913+john-knowles@users.noreply.github.com> Date: Tue, 26 Nov 2019 16:57:53 +0000 Subject: [PATCH 10/19] Update README.md (#1260) * Update README.md * Update README.md --- README.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 095b75fda..35d1154b8 100644 --- a/README.md +++ b/README.md @@ -30,16 +30,14 @@ There are a number of resources available to help get you started with the Conte Issues can be raised in [GitHub] or in the Alfresco JIRA project. Please include a clear description, steps to reproduce and screenshots where appropriate. All issues will be reviewed; bugs will be categorized if reproducible and enhancement/feature suggestions will be considered against existing priorities if the use case serves a general-purpose need. -#### Features added in the latest release +#### What's new in the latest release -- New language translations (Arabic, Czech, Danish, Finnish, Polish and Swedish) -- Automatic display of metadata aspects and properties -- Search result facet improvements -- Various extensibility improvements and enhancements +- Single Sign On improvements and fixes +- Accessibility enhancements WCAG AA compliance Please refer to the [release notes] for details of all changes. -#### High level feature themes planned for 2019 +#### High level feature themes under consideration for future releases - Extensibility - Building on the existing framework to further enhance the developer experience @@ -61,6 +59,7 @@ Read up on our guidelines for [contributing] and then check out one of our issue | ACA Version | Built with | Tested on | | ----------- | ---------- | --------- | +| ACA 1.9 | ADF 3.6.0 | ACS 6.2 | | ACA 1.8 | ADF 3.3.0 | ACS 6.1 | | ACA 1.7 | ADF 3.0.0 | ACS 6.1 | | ACA 1.6 | ADF 2.6.1 | ACS 6.1 | @@ -98,7 +97,9 @@ Read up on our guidelines for [contributing] and then check out one of our issue | 1.8 | Localizations . | Arabic, Czech, Danish, Finnish, Polish and Swedish | | 1.8 | Metadata improvements | Automatic display of aspects and properties | | 1.8 | Search facet improvements | Facet intervals and grouped facet queries | -| 1.8 | Extensibility improvements | Various - see [release notes](https://github.com/Alfresco/alfresco-content-app/releases) for details | +| 1.8 | Extensibility improvements | Various - see [release notes](https://github.com/Alfresco/alfresco-content-app/releases) for details | +| 1.9 | Accessibility improvements | Various - see [release notes](https://github.com/Alfresco/alfresco-content-app/releases) for details | +| 1.9 | Extensibility improvements | Various - see [release notes](https://github.com/Alfresco/alfresco-content-app/releases) for details | [contributing]: https://github.com/Alfresco/alfresco-content-app/blob/master/CONTRIBUTING.md [github]: https://github.com/Alfresco/alfresco-content-app/issues From 73b29184c6e066645ef63bb4191d4bedd79ca55a Mon Sep 17 00:00:00 2001 From: john-knowles <18680913+john-knowles@users.noreply.github.com> Date: Wed, 27 Nov 2019 11:31:49 +0000 Subject: [PATCH 11/19] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 35d1154b8..10ddf62ab 100644 --- a/README.md +++ b/README.md @@ -32,8 +32,8 @@ Please include a clear description, steps to reproduce and screenshots where app #### What's new in the latest release -- Single Sign On improvements and fixes -- Accessibility enhancements WCAG AA compliance +- Single Sign On enhancements and fixes +- WCAG AA accessibility improvements Please refer to the [release notes] for details of all changes. From c98591596c2824a4ceea66ebaf3feeeff6c6c09a Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Wed, 27 Nov 2019 12:44:33 +0000 Subject: [PATCH 12/19] hide node selector columns (#1262) --- src/app/ui/custom-theme.scss | 3 +-- src/app/ui/overrides/adf-style-fixes.theme.scss | 10 ++++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/app/ui/custom-theme.scss b/src/app/ui/custom-theme.scss index d1a1b3be0..db39d309c 100644 --- a/src/app/ui/custom-theme.scss +++ b/src/app/ui/custom-theme.scss @@ -58,8 +58,6 @@ $foreground: map-get($custom-theme, foreground); $warn: map-get($custom-theme, warn); @mixin custom-theme($theme) { - @include adf-style-fixes($theme); - @include layout-theme($theme); @include aca-search-input-theme($theme); @include app-permission-manager-theme($theme); @@ -70,6 +68,7 @@ $warn: map-get($custom-theme, warn); @include aca-current-user-theme($theme); @include aca-context-menu-theme($theme); @include app-create-menu-theme($theme); + @include adf-style-fixes($theme); .mat-toolbar { color: var(--theme-text-color, rgba(0, 0, 0, 0.54)); diff --git a/src/app/ui/overrides/adf-style-fixes.theme.scss b/src/app/ui/overrides/adf-style-fixes.theme.scss index 6fee88c6c..52383281a 100644 --- a/src/app/ui/overrides/adf-style-fixes.theme.scss +++ b/src/app/ui/overrides/adf-style-fixes.theme.scss @@ -3,4 +3,14 @@ @mixin adf-style-fixes($theme) { // add here all ADF style overrides // and create a task to move them to ADF + + .adf-content-node-selector-content-list { + .adf-content-selector-modified-cell { + display: none; + } + + .adf-content-selector-modifier-cell { + display: none; + } + } } From 80fcdd47ad4bea849c36e81f5e68fcf8ed0545f2 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Wed, 27 Nov 2019 12:45:21 +0000 Subject: [PATCH 13/19] configurable viewer retries (#1263) --- src/app.config.json | 1 + src/app/components/viewer/viewer.component.html | 1 + 2 files changed, 2 insertions(+) diff --git a/src/app.config.json b/src/app.config.json index c2d8d447a..2b0259620 100644 --- a/src/app.config.json +++ b/src/app.config.json @@ -22,6 +22,7 @@ "logo": "assets/images/alfresco-logo-flower.svg", "copyright": "APP.COPYRIGHT" }, + "viewer.maxRetries": 1, "sharedLinkDateTimePickerType": "date", "headerColor": "#2196F3", "languagePicker": true, diff --git a/src/app/components/viewer/viewer.component.html b/src/app/components/viewer/viewer.component.html index 71b416ebc..d5f014d12 100644 --- a/src/app/components/viewer/viewer.component.html +++ b/src/app/components/viewer/viewer.component.html @@ -4,6 +4,7 @@ 'right_side--hide': !showRightSide }" [displayName]="fileName" + [maxRetries]="'viewer.maxRetries' | adfAppConfig" [nodeId]="nodeId" [allowNavigate]="navigateMultiple" [allowRightSidebar]="true" From 4be35b0284aae7f1d140e56763f626fd5e80059c Mon Sep 17 00:00:00 2001 From: john-knowles <18680913+john-knowles@users.noreply.github.com> Date: Wed, 27 Nov 2019 14:29:04 +0000 Subject: [PATCH 14/19] Update README.md (#1265) * Update README.md * fix misspelling --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 10ddf62ab..6ef203b5a 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Please include a clear description, steps to reproduce and screenshots where app #### What's new in the latest release -- Single Sign On enhancements and fixes +- Single Sign Out - WCAG AA accessibility improvements Please refer to the [release notes] for details of all changes. @@ -98,8 +98,8 @@ Read up on our guidelines for [contributing] and then check out one of our issue | 1.8 | Metadata improvements | Automatic display of aspects and properties | | 1.8 | Search facet improvements | Facet intervals and grouped facet queries | | 1.8 | Extensibility improvements | Various - see [release notes](https://github.com/Alfresco/alfresco-content-app/releases) for details | +| 1.9 | Single Sign Out | Users will be automatically logged out from the Digital Workspace application after logging out from another application in the same browser session | | 1.9 | Accessibility improvements | Various - see [release notes](https://github.com/Alfresco/alfresco-content-app/releases) for details | -| 1.9 | Extensibility improvements | Various - see [release notes](https://github.com/Alfresco/alfresco-content-app/releases) for details | [contributing]: https://github.com/Alfresco/alfresco-content-app/blob/master/CONTRIBUTING.md [github]: https://github.com/Alfresco/alfresco-content-app/issues From a182bbe1def891fa09f1e05f5819eacaccc2c2b0 Mon Sep 17 00:00:00 2001 From: Martin Mueller Date: Wed, 27 Nov 2019 18:01:20 +0100 Subject: [PATCH 15/19] prepare extension versions --- projects/aca-shared/package.json | 2 +- projects/adf-office-services-ext/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/aca-shared/package.json b/projects/aca-shared/package.json index 1c8ef9489..232e60e55 100644 --- a/projects/aca-shared/package.json +++ b/projects/aca-shared/package.json @@ -1,6 +1,6 @@ { "name": "@alfresco/aca-shared", - "version": "1.9.0", + "version": "1.9.1", "peerDependencies": { "@angular/common": "^7.2.0", "@angular/core": "^7.2.0", diff --git a/projects/adf-office-services-ext/package.json b/projects/adf-office-services-ext/package.json index 4f5225737..96c2dca87 100644 --- a/projects/adf-office-services-ext/package.json +++ b/projects/adf-office-services-ext/package.json @@ -1,6 +1,6 @@ { "name": "@alfresco/adf-office-services-ext", - "version": "0.0.7", + "version": "0.0.8", "license": "Apache-2.0", "homepage": "https://github.com/Alfresco/alfresco-content-app", "keywords": ["Alfresco", "ADF", "ACA", "Content Application"], From 1ce013bb74d14b842f255f62c7d0da7d44dcdd76 Mon Sep 17 00:00:00 2001 From: john-knowles <18680913+john-knowles@users.noreply.github.com> Date: Thu, 28 Nov 2019 09:53:53 +0000 Subject: [PATCH 16/19] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6ef203b5a..20ca051d8 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Please include a clear description, steps to reproduce and screenshots where app #### What's new in the latest release -- Single Sign Out +- Single Log Out - WCAG AA accessibility improvements Please refer to the [release notes] for details of all changes. @@ -98,7 +98,7 @@ Read up on our guidelines for [contributing] and then check out one of our issue | 1.8 | Metadata improvements | Automatic display of aspects and properties | | 1.8 | Search facet improvements | Facet intervals and grouped facet queries | | 1.8 | Extensibility improvements | Various - see [release notes](https://github.com/Alfresco/alfresco-content-app/releases) for details | -| 1.9 | Single Sign Out | Users will be automatically logged out from the Digital Workspace application after logging out from another application in the same browser session | +| 1.9 | Single Log Out | Users will be automatically logged out from the Content App after logging out from another application in the same browser session | | 1.9 | Accessibility improvements | Various - see [release notes](https://github.com/Alfresco/alfresco-content-app/releases) for details | [contributing]: https://github.com/Alfresco/alfresco-content-app/blob/master/CONTRIBUTING.md From 5791622f6eff670bf1914bf852b8e28244ccacbf Mon Sep 17 00:00:00 2001 From: Martin Muller Date: Thu, 28 Nov 2019 10:57:31 +0100 Subject: [PATCH 17/19] [ACA-2832] Select node after reload (#1267) * Select node after reload --- src/app/components/files/files.component.ts | 8 +++++--- src/app/components/page.component.ts | 8 ++++++-- src/app/directives/document-list.directive.ts | 13 ++++++++++--- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/app/components/files/files.component.ts b/src/app/components/files/files.component.ts index b8c4f1766..59b2c8d85 100644 --- a/src/app/components/files/files.component.ts +++ b/src/app/components/files/files.component.ts @@ -54,6 +54,7 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { isValidPath = true; isSmallScreen = false; isAdmin = false; + selectedNode: MinimalNodeEntity; private nodePath: PathElement[]; @@ -147,6 +148,7 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { navigateTo(node: MinimalNodeEntity) { if (node && node.entry) { + this.selectedNode = node; const { id, isFolder } = node.entry; if (isFolder) { @@ -176,7 +178,7 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { // check root and child nodes if (node && node.entry && node.entry.parentId === this.getParentNodeId()) { - this.reload(); + this.reload(this.selectedNode); return; } @@ -214,7 +216,7 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { if (alreadyDisplayedParentFolder) { return; } - this.reload(); + this.reload(this.selectedNode); } onContentCopied(nodes: MinimalNodeEntity[]) { @@ -224,7 +226,7 @@ export class FilesComponent extends PageComponent implements OnInit, OnDestroy { ); }); if (newNode) { - this.reload(); + this.reload(this.selectedNode); } } diff --git a/src/app/components/page.component.ts b/src/app/components/page.component.ts index 505c5f5f0..2dc13c691 100644 --- a/src/app/components/page.component.ts +++ b/src/app/components/page.component.ts @@ -44,7 +44,8 @@ import { isInfoDrawerOpened, getSharedUrl, ViewNodeAction, - ViewNodeExtras + ViewNodeExtras, + SetSelectedNodesAction } from '@alfresco/aca-shared/store'; import { isLocked, isLibrary } from '../utils/node.utils'; @@ -131,8 +132,11 @@ export abstract class PageComponent implements OnInit, OnDestroy { return null; } - reload(): void { + reload(selectedNode?: MinimalNodeEntity): void { this.store.dispatch(new ReloadDocumentListAction()); + if (selectedNode) { + this.store.dispatch(new SetSelectedNodesAction([selectedNode])); + } } trackByActionId(_: number, action: ContentActionRef) { diff --git a/src/app/directives/document-list.directive.ts b/src/app/directives/document-list.directive.ts index 23f96d0d8..771172ca0 100644 --- a/src/app/directives/document-list.directive.ts +++ b/src/app/directives/document-list.directive.ts @@ -32,12 +32,14 @@ import { Store } from '@ngrx/store'; import { SetSelectedNodesAction } from '@alfresco/aca-shared/store'; import { takeUntil, filter } from 'rxjs/operators'; import { ContentManagementService } from '../services/content-management.service'; +import { MinimalNodeEntity } from '@alfresco/js-api'; @Directive({ selector: '[acaDocumentList]' }) export class DocumentListDirective implements OnInit, OnDestroy { private isLibrary = false; + selectedNode: MinimalNodeEntity; onDestroy$ = new Subject(); @@ -88,7 +90,7 @@ export class DocumentListDirective implements OnInit, OnDestroy { .subscribe(() => this.onReady()); this.content.reload.pipe(takeUntil(this.onDestroy$)).subscribe(() => { - this.reload(); + this.reload(this.selectedNode); }); this.content.reset.pipe(takeUntil(this.onDestroy$)).subscribe(() => { @@ -119,6 +121,7 @@ export class DocumentListDirective implements OnInit, OnDestroy { onNodeSelect(event: CustomEvent) { if (!!event.detail && !!event.detail.node) { this.updateSelection(); + this.selectedNode = event.detail.node; } } @@ -140,9 +143,13 @@ export class DocumentListDirective implements OnInit, OnDestroy { this.store.dispatch(new SetSelectedNodesAction(selection)); } - private reload() { + private reload(selectedNode?: MinimalNodeEntity) { this.documentList.resetSelection(); - this.store.dispatch(new SetSelectedNodesAction([])); + if (selectedNode) { + this.store.dispatch(new SetSelectedNodesAction([selectedNode])); + } else { + this.store.dispatch(new SetSelectedNodesAction([])); + } this.documentList.reload(); } From 5ae12259d750c24f485830d6aa7445c0f1c67751 Mon Sep 17 00:00:00 2001 From: Martin Muller Date: Thu, 28 Nov 2019 10:57:53 +0100 Subject: [PATCH 18/19] prepare extension versions (#1269) --- projects/adf-office-services-ext/assets/aos.plugin.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/adf-office-services-ext/assets/aos.plugin.json b/projects/adf-office-services-ext/assets/aos.plugin.json index 7b953b4e5..487666617 100644 --- a/projects/adf-office-services-ext/assets/aos.plugin.json +++ b/projects/adf-office-services-ext/assets/aos.plugin.json @@ -1,7 +1,7 @@ { "$schema": "../../../extension.schema.json", "$id": "9a635542-d87a-4558-ae64-ffa199d1a364", - "$version": "0.0.7", + "$version": "0.0.8", "$name": "keensoft.aos.plugin", "$description": "Extension that provides Office Edit Online Action", "$vendor": "Keensoft", From 961d3896e2b08e3788667ac3c8d4ed50ecd8ce4b Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Thu, 28 Nov 2019 18:53:24 +0000 Subject: [PATCH 19/19] [ACA-2834][ACA-2837][ACA-2835] regression fixes (#1270) * disable lazy loading for certain routes * backwards compatibility for old viewer routes * remove old lazy modules --- .../aca-shared/rules/src/navigation.rules.ts | 19 +++- src/app/app.module.ts | 9 +- src/app/app.routes.ts | 93 +++++++++++++++++-- .../components/favorites/favorites.module.ts | 66 ------------- .../recent-files/recent-files.module.ts | 65 ------------- .../shared-files/shared-files.module.ts | 66 ------------- 6 files changed, 111 insertions(+), 207 deletions(-) delete mode 100644 src/app/components/favorites/favorites.module.ts delete mode 100644 src/app/components/recent-files/recent-files.module.ts delete mode 100644 src/app/components/shared-files/shared-files.module.ts diff --git a/projects/aca-shared/rules/src/navigation.rules.ts b/projects/aca-shared/rules/src/navigation.rules.ts index 2cf05544f..1a8c02a3a 100644 --- a/projects/aca-shared/rules/src/navigation.rules.ts +++ b/projects/aca-shared/rules/src/navigation.rules.ts @@ -31,7 +31,12 @@ import { RuleContext } from '@alfresco/adf-extensions'; */ export function isPreview(context: RuleContext): boolean { const { url } = context.navigation; - return url && (url.includes('viewer:view') || url.includes('/view/')); + return ( + url && + (url.includes('/preview/') || + url.includes('viewer:view') || + url.includes('/view/')) + ); } /** @@ -165,7 +170,11 @@ export function isNotSearchResults(context: RuleContext): boolean { */ export function isSharedPreview(context: RuleContext): boolean { const { url } = context.navigation; - return url && url.startsWith('/shared') && url.includes('viewer:view'); + return ( + url && + (url.startsWith('/shared/preview/') || + (url.startsWith('/shared') && url.includes('viewer:view'))) + ); } /** @@ -174,7 +183,11 @@ export function isSharedPreview(context: RuleContext): boolean { */ export function isFavoritesPreview(context: RuleContext): boolean { const { url } = context.navigation; - return url && url.startsWith('/favorites') && url.includes('viewer:view'); + return ( + url && + (url.startsWith('/favorites/preview/') || + (url.startsWith('/favorites') && url.includes('viewer:view'))) + ); } /** diff --git a/src/app/app.module.ts b/src/app/app.module.ts index bdb487aff..ec362240d 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -73,6 +73,10 @@ import { AppSearchResultsModule } from './components/search/search-results.modul import { AppLoginModule } from './components/login/login.module'; import { AppHeaderModule } from './components/header/header.module'; import { AppNodeVersionModule } from './components/node-version/node-version.module'; +import { FavoritesComponent } from './components/favorites/favorites.component'; +import { RecentFilesComponent } from './components/recent-files/recent-files.component'; +import { SharedFilesComponent } from './components/shared-files/shared-files.component'; + import { environment } from '../environments/environment'; import { registerLocaleData } from '@angular/common'; @@ -151,7 +155,10 @@ registerLocaleData(localeSv); LibrariesComponent, FavoriteLibrariesComponent, NodeVersionUploadDialogComponent, - NodeVersionsDialogComponent + NodeVersionsDialogComponent, + FavoritesComponent, + RecentFilesComponent, + SharedFilesComponent ], providers: [ { provide: RouteReuseStrategy, useClass: AppRouteReuseStrategy }, diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index 1d27ecc25..45f8d7818 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -36,6 +36,9 @@ import { GenericErrorComponent } from '@alfresco/aca-shared'; import { AuthGuardEcm, AuthGuard } from '@alfresco/adf-core'; +import { FavoritesComponent } from './components/favorites/favorites.component'; +import { RecentFilesComponent } from './components/recent-files/recent-files.component'; +import { SharedFilesComponent } from './components/shared-files/shared-files.component'; export const APP_ROUTES: Routes = [ { @@ -92,6 +95,14 @@ export const APP_ROUTES: Routes = [ defaultNodeId: '-my-' } }, + // deprecated, backwards compatibility with ACA 1.8 + { + path: 'preview/:nodeId', + loadChildren: './components/preview/preview.module#PreviewModule', + data: { + navigateSource: 'personal-files' + } + }, { path: 'view/:nodeId', outlet: 'viewer', @@ -119,6 +130,22 @@ export const APP_ROUTES: Routes = [ sortingPreferenceKey: 'personal-files' } }, + // deprecated, backwards compatibility with ACA 1.8 + { + path: 'preview/:nodeId', + loadChildren: './components/preview/preview.module#PreviewModule', + data: { + navigateSource: 'personal-files' + } + }, + // deprecated, backwards compatibility with ACA 1.8 + { + path: ':folderId/preview/:nodeId', + loadChildren: './components/preview/preview.module#PreviewModule', + data: { + navigateSource: 'personal-files' + } + }, { path: 'view/:nodeId', outlet: 'viewer', @@ -159,6 +186,14 @@ export const APP_ROUTES: Routes = [ sortingPreferenceKey: 'libraries-files' } }, + // deprecated, backwards compatibility with ACA 1.8 + { + path: 'preview/:nodeId', + loadChildren: './components/preview/preview.module#PreviewModule', + data: { + navigateSource: 'libraries' + } + }, { path: 'view/:nodeId', outlet: 'viewer', @@ -196,8 +231,21 @@ export const APP_ROUTES: Routes = [ children: [ { path: '', - loadChildren: - './components/favorites/favorites.module#AppFavoritesModule' + component: FavoritesComponent, + data: { + title: 'APP.BROWSE.FAVORITES.TITLE', + sortingPreferenceKey: 'favorites' + } + // loadChildren: + // './components/favorites/favorites.module#AppFavoritesModule' + }, + // deprecated, backwards compatibility with ACA 1.8 + { + path: 'preview/:nodeId', + loadChildren: './components/preview/preview.module#PreviewModule', + data: { + navigateSource: 'favorites' + } }, { path: 'view/:nodeId', @@ -223,8 +271,20 @@ export const APP_ROUTES: Routes = [ children: [ { path: '', - loadChildren: - './components/recent-files/recent-files.module#AppRecentFilesModule' + component: RecentFilesComponent, + data: { + title: 'APP.BROWSE.RECENT.TITLE' + } + // loadChildren: + // './components/recent-files/recent-files.module#AppRecentFilesModule' + }, + // deprecated, backwards compatibility with ACA 1.8 + { + path: 'preview/:nodeId', + loadChildren: './components/preview/preview.module#PreviewModule', + data: { + navigateSource: 'recent-files' + } }, { path: 'view/:nodeId', @@ -247,8 +307,21 @@ export const APP_ROUTES: Routes = [ children: [ { path: '', - loadChildren: - './components/shared-files/shared-files.module#AppSharedFilesModule' + data: { + title: 'APP.BROWSE.SHARED.TITLE', + sortingPreferenceKey: 'shared-files' + }, + component: SharedFilesComponent + // loadChildren: + // './components/shared-files/shared-files.module#AppSharedFilesModule' + }, + // deprecated, backwards compatibility with ACA 1.8 + { + path: 'preview/:nodeId', + loadChildren: './components/preview/preview.module#PreviewModule', + data: { + navigateSource: 'shared' + } }, { path: 'view/:nodeId', @@ -286,6 +359,14 @@ export const APP_ROUTES: Routes = [ title: 'APP.BROWSE.SEARCH.TITLE' } }, + // deprecated, backwards compatibility with ACA 1.8 + { + path: 'preview/:nodeId', + loadChildren: './components/preview/preview.module#PreviewModule', + data: { + navigateSource: 'search' + } + }, { path: 'view/:nodeId', outlet: 'viewer', diff --git a/src/app/components/favorites/favorites.module.ts b/src/app/components/favorites/favorites.module.ts deleted file mode 100644 index 006ef1f7e..000000000 --- a/src/app/components/favorites/favorites.module.ts +++ /dev/null @@ -1,66 +0,0 @@ -/*! - * @license - * Alfresco Example Content Application - * - * Copyright (C) 2005 - 2019 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 { NgModule } from '@angular/core'; -import { FavoritesComponent } from './favorites.component'; -import { CommonModule } from '@angular/common'; -import { CoreModule } from '@alfresco/adf-core'; -import { RouterModule, Routes } from '@angular/router'; -import { ContentModule } from '@alfresco/adf-content-services'; -import { DirectivesModule } from '../../directives/directives.module'; -import { AppCommonModule } from '../common/common.module'; -import { AppToolbarModule } from '../toolbar/toolbar.module'; -import { ContextMenuModule } from '../context-menu/context-menu.module'; -import { AppInfoDrawerModule } from '../info-drawer/info.drawer.module'; -import { AppLayoutModule } from '../layout/layout.module'; - -const routes: Routes = [ - { - path: '', - component: FavoritesComponent, - data: { - title: 'APP.BROWSE.FAVORITES.TITLE', - sortingPreferenceKey: 'favorites' - } - } -]; - -@NgModule({ - imports: [ - CommonModule, - CoreModule.forChild(), - RouterModule.forChild(routes), - ContentModule.forChild(), - DirectivesModule, - AppCommonModule, - AppToolbarModule, - ContextMenuModule, - AppInfoDrawerModule, - AppLayoutModule - ], - declarations: [FavoritesComponent], - exports: [FavoritesComponent] -}) -export class AppFavoritesModule {} diff --git a/src/app/components/recent-files/recent-files.module.ts b/src/app/components/recent-files/recent-files.module.ts deleted file mode 100644 index 908dc49fb..000000000 --- a/src/app/components/recent-files/recent-files.module.ts +++ /dev/null @@ -1,65 +0,0 @@ -/*! - * @license - * Alfresco Example Content Application - * - * Copyright (C) 2005 - 2019 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 { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { CoreModule } from '@alfresco/adf-core'; -import { RouterModule, Routes } from '@angular/router'; -import { ContentModule } from '@alfresco/adf-content-services'; -import { DirectivesModule } from '../../directives/directives.module'; -import { AppCommonModule } from '../common/common.module'; -import { AppToolbarModule } from '../toolbar/toolbar.module'; -import { ContextMenuModule } from '../context-menu/context-menu.module'; -import { RecentFilesComponent } from './recent-files.component'; -import { AppInfoDrawerModule } from '../info-drawer/info.drawer.module'; -import { AppLayoutModule } from '../layout/layout.module'; - -const routes: Routes = [ - { - path: '', - component: RecentFilesComponent, - data: { - title: 'APP.BROWSE.RECENT.TITLE' - } - } -]; - -@NgModule({ - imports: [ - CommonModule, - CoreModule.forChild(), - RouterModule.forChild(routes), - ContentModule.forChild(), - DirectivesModule, - AppCommonModule, - AppToolbarModule, - ContextMenuModule, - AppInfoDrawerModule, - AppLayoutModule - ], - declarations: [RecentFilesComponent], - exports: [RecentFilesComponent] -}) -export class AppRecentFilesModule {} diff --git a/src/app/components/shared-files/shared-files.module.ts b/src/app/components/shared-files/shared-files.module.ts deleted file mode 100644 index eb10d2fd8..000000000 --- a/src/app/components/shared-files/shared-files.module.ts +++ /dev/null @@ -1,66 +0,0 @@ -/*! - * @license - * Alfresco Example Content Application - * - * Copyright (C) 2005 - 2019 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 { NgModule } from '@angular/core'; -import { SharedFilesComponent } from './shared-files.component'; -import { CommonModule } from '@angular/common'; -import { CoreModule } from '@alfresco/adf-core'; -import { RouterModule, Routes } from '@angular/router'; -import { ContentModule } from '@alfresco/adf-content-services'; -import { DirectivesModule } from '../../directives/directives.module'; -import { AppCommonModule } from '../common/common.module'; -import { AppToolbarModule } from '../toolbar/toolbar.module'; -import { ContextMenuModule } from '../context-menu/context-menu.module'; -import { AppInfoDrawerModule } from '../info-drawer/info.drawer.module'; -import { AppLayoutModule } from '../layout/layout.module'; - -const routes: Routes = [ - { - path: '', - component: SharedFilesComponent, - data: { - title: 'APP.BROWSE.SHARED.TITLE', - sortingPreferenceKey: 'shared-files' - } - } -]; - -@NgModule({ - imports: [ - CommonModule, - CoreModule.forChild(), - RouterModule.forChild(routes), - ContentModule.forChild(), - DirectivesModule, - AppCommonModule, - AppToolbarModule, - ContextMenuModule, - AppInfoDrawerModule, - AppLayoutModule - ], - declarations: [SharedFilesComponent], - exports: [SharedFilesComponent] -}) -export class AppSharedFilesModule {}