Merge remote-tracking branch 'origin/develop' into ACS-5328-create-folder-aca-playwright-tests

# Conflicts:
#	projects/aca-playwright-shared/src/base-config/index.ts
#	projects/aca-playwright-shared/src/page-objects/components/aca-page-layout-header.component.ts
#	projects/aca-playwright-shared/src/page-objects/components/adf-folder-dialog.component.ts
#	projects/aca-playwright-shared/src/page-objects/components/manageRules/manage-rules.component.ts
#	projects/aca-playwright-shared/src/page-objects/pages/personal-files.page.ts
This commit is contained in:
adam.zakrzewski
2023-06-18 17:39:05 +02:00
419 changed files with 2051 additions and 2209 deletions

View File

@@ -5,6 +5,15 @@
],
"plugins": ["@nrwl/nx"],
"overrides": [
{
"files": ["*.ts"],
"plugins": ["@alfresco/eslint-angular"],
"extends": ["plugin:@angular-eslint/template/process-inline-templates"],
"excludedFiles": ["*.spec.ts"],
"rules": {
"@alfresco/eslint-angular/use-none-component-view-encapsulation": "error"
}
},
{
"files": [
"*.ts"
@@ -15,7 +24,6 @@
"extends": [
"plugin:@nrwl/nx/typescript",
"plugin:@nrwl/nx/angular",
"plugin:@angular-eslint/template/process-inline-templates",
"plugin:@cspell/recommended"
],
"plugins": [
@@ -315,10 +323,12 @@
"*.html"
],
"extends": ["plugin:@nrwl/nx/angular-template", "plugin:@angular-eslint/template/accessibility"],
"parser": "@angular-eslint/template-parser",
"rules": {
"@angular-eslint/template/no-negated-async": "off",
"@angular-eslint/template/no-positive-tabindex": "error",
"@angular-eslint/template/eqeqeq": "error"
"@angular-eslint/template/eqeqeq": "error",
"@angular-eslint/template/no-call-expression": "warn"
}
},
{

View File

@@ -12,7 +12,6 @@ fi
export PROJECTS=(
'aca-content'
'aca-folder-rules'
'aca-preview'
'aca-shared'
'aca-viewer'

View File

@@ -0,0 +1,57 @@
name: "Run e2e Playwright"
description: "Run e2e Playwright"
inputs:
options:
description: 'Options'
required: true
type: string
test-runner:
description: 'Test runner'
required: false
type: string
default: 'Playwright'
artifact-name:
description: Name of the artifact cache
required: true
type: string
runs:
using: "composite"
steps:
- name: Setup and run with options
shell: bash
run: |
# npx http-server -c-1 $CONTENT_CE_DIST_PATH -p 4200 > /dev/null &\
{
echo "APP_CONFIG_ECM_HOST={protocol}//{hostname}{:port}"
echo "APP_CONFIG_PLUGIN_FOLDER_RULES=true"
echo "APP_CONFIG_PLUGIN_AOS=true"
echo "APP_CONFIG_PLUGIN_CONTENT_SERVICE=true"
echo "APP_CONFIG_ENABLE_MOBILE_APP_SWITCH=false"
echo "APP_CONFIG_PROVIDER=ECM"
echo "APP_CONFIG_AUTH_TYPE=BASIC"
echo "APP_CONFIG_OAUTH2_HOST=http://localhost:4200/auth/realms/alfresco"
echo "APP_CONFIG_OAUTH2_CLIENTID=alfresco"
echo "APP_CONFIG_SESSION_TIME_FOR_OPEN_APP_DIALOG_DISPLAY_IN_HOURS=12"
echo "APP_CONFIG_OAUTH2_IMPLICIT_FLOW=true"
echo "APP_CONFIG_OAUTH2_SILENT_LOGIN=true"
echo "APP_CONFIG_OAUTH2_REDIRECT_LOGOUT=/"
echo "APP_CONFIG_OAUTH2_REDIRECT_LOGIN=/"
echo "APP_CONFIG_OAUTH2_REDIRECT_SILENT_IFRAME_URI={protocol}//{hostname}{:port}/assets/silent-refresh.html"
} >> .env
npm start > /dev/null &\
echo "Running playwright tests with options ${{ inputs.options }}"
sleep 90
npx nx run ${{ inputs.options }}-e2e:e2e
- name: Upload E2Es results
if: ${{ always() }}
uses: actions/upload-artifact@v3
with:
name: ${{ inputs.artifact-name }}
path: test-results/

View File

@@ -22,7 +22,7 @@ runs:
- name: Setup and run with options
shell: bash
run: |
./node_modules/.bin/tsc -p "./e2e/$E2E_TSCONFIG" || exit 1;
./node_modules/.bin/tsc -p "./e2e/protractor/$E2E_TSCONFIG" || exit 1;
# npx http-server -c-1 $CONTENT_CE_DIST_PATH -p 4200 > /dev/null &\
{
@@ -48,7 +48,7 @@ runs:
if [ ${{ inputs.test-runner }} == "playwright" ]; then
echo "Running playwright tests with options ${{ inputs.options }}"
sleep 90
npx playwright test --config ${{ inputs.options }}
npx nx run ${{ inputs.options }}-e2e:e2e
else
echo "Running protractor tests with options ${{ inputs.options }}"
echo "./node_modules/.bin/protractor \"./protractor.conf.js\" ${{ inputs.options }} || exit 1"

View File

@@ -11,7 +11,6 @@ fi
export PROJECTS=(
'aca-content'
'aca-folder-rules'
'aca-preview'
'aca-shared'
'aca-viewer'

View File

@@ -13,6 +13,14 @@ env:
APP_CONFIG_ECM_HOST: ${{ secrets.PIPELINE_ENV_URL }}
ADMIN_EMAIL: ${{ secrets.PIPELINE_ADMIN_USERNAME }}
ADMIN_PASSWORD: ${{ secrets.PIPELINE_ADMIN_PASSWORD }}
HR_USER: ${{ secrets.HR_USER }}
HR_USER_PASSWORD: ${{ secrets.HR_USER_PASSWORD }}
SUPERADMIN_EMAIL: ${{ secrets.SUPERADMIN_EMAIL }}
SUPERADMIN_PASSWORD: ${{ secrets.SUPERADMIN_PASSWORD }}
IDENTITY_USER_EMAIL: ${{ secrets.IDENTITY_USER_EMAIL }}
IDENTITY_USER_PASSWORD: ${{ secrets.IDENTITY_USER_PASSWORD }}
CONTENT_IDENTITY_USERNAME: ${{ secrets.CONTENT_IDENTITY_USERNAME }}
CONTENT_IDENTITY_PASSWORD: ${{ secrets.CONTENT_IDENTITY_PASSWORD }}
SCREENSHOT_USERNAME: ${{ secrets.SCREENSHOT_USERNAME }}
SCREENSHOT_PASSWORD: ${{ secrets.SCREENSHOT_PASSWORD}}
AWS_REGION: "eu-west-2"
@@ -96,7 +104,6 @@ jobs:
unit-tests:
- name: "aca-content"
- name: "aca-shared"
- name: "aca-folder-rules"
- name: "aca-preview"
steps:
- name: Checkout
@@ -178,8 +185,16 @@ jobs:
e2es-playwright:
needs: [lint, build, unit-tests]
name: 'E2e test suites: Folder Rules - Playwright'
name: 'E2e test suites: Playwright'
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
e2e-suites:
- name: "actions"
id: 1
- name: "folder-rules"
id: 2
steps:
- name: Checkout
uses: actions/checkout@v3
@@ -204,10 +219,10 @@ jobs:
- name: before playwright
shell: bash
run: npx playwright install chromium
- uses: ./.github/actions/run-e2e
- uses: ./.github/actions/run-e2e-playwright
with:
options: "e2e/playwright/tests/folder-rules/playwright.config.ts"
artifact-name: folder-rules
options: "${{ matrix.e2e-suites.name }}"
artifact-name: ${{ matrix.e2e-suites.name }}
test-runner: playwright
- uses: ./.github/actions/after-e2e

View File

@@ -11,10 +11,14 @@ Please refer to the public [documentation](https://alfresco-content-app.netlify.
## Compatibility
| ACA | ACS | Node | ADF | Angular |
| --- | --- | --- | --- | --- |
| 4.1 | 7.4 | 18.x | 6.1.0 | 14.x |
| 4.0 | 7.4 | 14.x | 6.0.0 | 14.x |
| ACA | ADF | ACS | Node | Angular |
| ---- | --- | --- | ---- | ------- |
| 4.1 | 6.1 | 7.4 | 18.x | 14.x |
| 4.0 | 6.1 | 7.4 | 14.x | 14.x |
| 3.1 | 5.1 | 7.3 | | |
| 3.0 | 5.0 | 7.3 | | |
> See <https://angular.io/guide/versions> for more details on Angular and Node.js compatibility
## Running
@@ -48,7 +52,6 @@ APP_CONFIG_DOWNLOAD_PROMPT_DELAY=<time>
APP_CONFIG_DOWNLOAD_PROMPT_REMINDER_DELAY=<time>
APP_CONFIG_ENABLE_FILE_AUTO_DOWNLOAD=true
APP_CONFIG_FILE_AUTO_DOWNLOAD_SIZE_THRESHOLD_IN_MB=<file-size>
```
Where `<URL>` is the address of the ACS.

View File

@@ -79,13 +79,13 @@
},
{
"glob": "folder-rules.plugin.json",
"input": "projects/aca-folder-rules/assets",
"input": "projects/aca-content/folder-rules/assets",
"output": "./assets/plugins"
},
{
"glob": "**/*",
"input": "projects/aca-folder-rules/assets",
"output": "./assets/aca-folder-rules"
"input": "projects/aca-content/folder-rules/assets",
"output": "./assets/folder-rules"
},
{
"glob": "**/*",
@@ -253,7 +253,11 @@
"assets": [
"app/src/assets",
"app/src/favicon-96x96.png",
"projects/aca-content/assets",
{
"glob": "**/*",
"input": "projects/aca-content/assets",
"output": "/assets"
},
{
"input": "app/.tmp",
"output": "/",

View File

@@ -39,7 +39,6 @@
"copyright": "APP.COPYRIGHT"
},
"viewer.maxRetries": 1,
"sharedLinkDateTimePickerType": "datetime",
"customCssPath": "",
"webFontPath": "",
"pagination": {
@@ -65,77 +64,6 @@
"preserveState": true,
"expandedSidenav": true
},
"languages": [
{
"key": "de",
"label": "Deutsch"
},
{
"key": "en",
"label": "English"
},
{
"key": "es",
"label": "Español"
},
{
"key": "fr",
"label": "Français"
},
{
"key": "it",
"label": "Italiano"
},
{
"key": "ja",
"label": "日本語"
},
{
"key": "nb",
"label": "Bokmål"
},
{
"key": "nl",
"label": "Nederlands"
},
{
"key": "pt-BR",
"label": "Português (Brasil)"
},
{
"key": "ru",
"label": "Русский"
},
{
"key": "zh-CN",
"label": "中文简体"
},
{
"key": "cs",
"label": "Čeština"
},
{
"key": "da",
"label": "Dansk"
},
{
"key": "fi",
"label": "Suomi"
},
{
"key": "pl",
"label": "Polski"
},
{
"key": "sv",
"label": "Svenska"
},
{
"key": "ar",
"label": "العربية",
"direction": "rtl"
}
],
"mimeTypes": [
{
"value": "video/3gpp",
@@ -1017,6 +945,19 @@
"TAG"
],
"categories": [
{
"id": "logic",
"name": "SEARCH.CATEGORIES.LOGIC",
"enabled": true,
"component": {
"selector": "logical-filter",
"settings": {
"allowUpdateOnChange": false,
"hideDefaultAction": true,
"field": "cm:name,cm:title,cm:description,TEXT,TAG"
}
}
},
{
"id": "queryName",
"name": "SEARCH.SEARCH_HEADER.FILTERS.NAME.TITLE",

View File

@@ -1,4 +1,4 @@
:host {
app-root {
display: flex;
flex: 1;

View File

@@ -22,14 +22,15 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { Component } from '@angular/core';
import { Component, ViewEncapsulation } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { AppService } from '@alfresco/aca-shared';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
styleUrls: ['./app.component.scss'],
encapsulation: ViewEncapsulation.None
})
export class AppComponent {
onDestroy$: Subject<boolean> = new Subject<boolean>();

View File

@@ -64,7 +64,7 @@ import { STORE_INITIAL_APP_DATA } from '@alfresco/aca-shared/store';
import { ShellModule, SHELL_APP_SERVICE, SHELL_AUTH_TOKEN } from '@alfresco/adf-core/shell';
import { StoreDevtoolsModule } from '@ngrx/store-devtools';
import { APP_ROUTES } from './app.routes';
import { AppLoginModule } from './components/login/login.module';
import { LoginComponent } from './components/login/login.component';
registerLocaleData(localeFr);
registerLocaleData(localeDe);
@@ -90,7 +90,7 @@ registerLocaleData(localeSv);
CoreModule.forRoot(),
SharedModule,
CoreExtensionsModule.forRoot(),
AppLoginModule,
LoginComponent,
environment.e2e ? NoopAnimationsModule : BrowserAnimationsModule,
!environment.production ? StoreDevtoolsModule.instrument({ maxAge: 25 }) : [],
RouterModule.forRoot(APP_ROUTES, {

View File

@@ -22,9 +22,14 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { Component } from '@angular/core';
import { AppConfigModule, LoginModule } from '@alfresco/adf-core';
import { Component, ViewEncapsulation } from '@angular/core';
import { TranslateModule } from '@ngx-translate/core';
@Component({
templateUrl: './login.component.html'
standalone: true,
imports: [LoginModule, AppConfigModule, TranslateModule],
templateUrl: './login.component.html',
encapsulation: ViewEncapsulation.None
})
export class LoginComponent {}

View File

@@ -1,36 +0,0 @@
/*!
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Alfresco Example Content Application
*
* 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
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { CoreModule } from '@alfresco/adf-core';
import { LoginComponent } from './login.component';
import { TranslateModule } from '@ngx-translate/core';
@NgModule({
imports: [CommonModule, CoreModule.forChild(), TranslateModule.forChild()],
exports: [LoginComponent],
declarations: [LoginComponent]
})
export class AppLoginModule {}

View File

@@ -23,9 +23,9 @@
*/
import { NgModule } from '@angular/core';
import { AcaFolderRulesModule } from '@alfresco/aca-content/folder-rules';
import { AosExtensionModule } from '@alfresco/aca-content/ms-office';
import { AcaAboutModule, DEV_MODE_TOKEN, PACKAGE_JSON } from '@alfresco/aca-content/about';
import { AcaFolderRulesModule } from '@alfresco/aca-folder-rules';
import { environment } from '../environments/environment';
import packageJson from 'package.json';

View File

@@ -1,45 +0,0 @@
/*!
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Alfresco Example Content Application
*
* 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
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { NgModule } from '@angular/core';
import { MatMenuModule } from '@angular/material/menu';
import { MatIconModule } from '@angular/material/icon';
import { MatButtonModule } from '@angular/material/button';
import { MatDialogModule, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';
import { MatInputModule } from '@angular/material/input';
import { MatSnackBarModule } from '@angular/material/snack-bar';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import { MatCardModule } from '@angular/material/card';
@NgModule({
imports: [MatMenuModule, MatIconModule, MatButtonModule, MatDialogModule, MatInputModule, MatSnackBarModule, MatProgressBarModule, MatCardModule],
exports: [MatMenuModule, MatIconModule, MatButtonModule, MatDialogModule, MatInputModule, MatSnackBarModule, MatProgressBarModule, MatCardModule],
providers: [
{
provide: MAT_DIALOG_DEFAULT_OPTIONS,
useValue: { closeOnNavigation: true, hasBackdrop: true, autoFocus: true }
}
]
})
export class MaterialModule {}

View File

@@ -1,21 +0,0 @@
{
"$schema": "../../../../extension.schema.json",
"$id": "app.demo.cardView",
"$name": "app.demo.cardView",
"$version": "1.0.0",
"$vendor": "Hyland Software, Inc. and its affiliates",
"$license": "LGPL-3.0",
"$runtime": "1.5.0",
"$description": "Simple extension that provides Card View toolbar button",
"features": {
"toolbar": [
{
"id": "app.toolbar.cardView",
"order": 50,
"type": "custom",
"component": "app.toolbar.cardView"
}
]
}
}

View File

@@ -1,129 +0,0 @@
{
"$schema": "../../../../extension.schema.json",
"$id": "app.debug.plugin",
"$version": "1.0.0",
"$name": "app.debug.plugin",
"$vendor": "Hyland Software, Inc. and its affiliates",
"$license": "LGPL-3.0",
"$runtime": "1.5.0",
"$description": "Plugin for debugging and testing purposes",
"actions": [
{
"id": "plugin1.actions.settings",
"type": "NAVIGATE_URL",
"payload": "/settings"
},
{
"id": "plugin1.actions.info",
"type": "SNACKBAR_INFO",
"payload": "I'm a nice little popup raised by extension."
},
{
"id": "plugin1.actions.node-name",
"type": "SNACKBAR_INFO",
"payload": "$('Action for ' + context.selection.first.entry.name)"
}
],
"features": {
"viewer": {
"openWith": [
{
"id": "plugin1.viewer.openWith.action1",
"type": "button",
"icon": "build",
"title": "Snackbar",
"actions": {
"click": "plugin1.actions.info"
}
}
]
},
"navbar": [
{
"id": "__app.navbar.primary",
"disabled": true,
"items": [
{
"id": "app.navbar.personalFiles",
"icon": "extension",
"title": "APP.BROWSE.PERSONAL.SIDENAV_LINK.LABEL",
"route": "personal-files"
}
]
}
],
"toolbar": [
{
"disabled": true,
"id": "app.toolbar.createFolder",
"type": "button",
"order": 10,
"title": "APP.NEW_MENU.MENU_ITEMS.CREATE_FOLDER",
"description": "APP.NEW_MENU.TOOLTIPS.CREATE_FOLDER",
"icon": "create_new_folder",
"actions": {
"click": "CREATE_FOLDER"
},
"rules": {
"visible": "app.navigation.folder.canCreate"
}
},
{
"disabled": true,
"id": "app.toolbar.uploadFile",
"order": 11,
"type": "button",
"icon": "file_upload",
"title": "APP.NEW_MENU.MENU_ITEMS.UPLOAD_FILE",
"description": "APP.NEW_MENU.TOOLTIPS.UPLOAD_FILES",
"actions": {
"click": "UPLOAD_FILES"
},
"rules": {
"visible": "app.navigation.folder.canUpload"
}
},
{
"disabled": true,
"id": "app.toolbar.uploadFolder",
"order": 12,
"type": "button",
"icon": "cloud_upload",
"title": "APP.NEW_MENU.MENU_ITEMS.UPLOAD_FOLDER",
"description": "APP.NEW_MENU.TOOLTIPS.UPLOAD_FOLDERS",
"actions": {
"click": "UPLOAD_FOLDER"
},
"rules": {
"visible": "app.navigation.folder.canUpload"
}
},
{
"disabled": true,
"id": "plugin1.toolbar.menu1",
"type": "menu",
"icon": "storage",
"order": 300,
"children": [
{
"id": "plugin1.toolbar.menu1.settings",
"type": "button",
"title": "Settings",
"icon": "settings_applications",
"actions": {
"click": "plugin1.actions.settings"
}
}
]
},
{
"disabled": true,
"id": "plugin1.toolbar.separator3",
"order": 301,
"type": "separator"
}
]
}
}

View File

@@ -1,63 +0,0 @@
{
"$schema": "../../../../extension.schema.json",
"$id": "app.demo.metadata",
"$name": "metadata-plugin",
"$version": "1.0.0",
"$vendor": "Hyland Software, Inc. and its affiliates",
"$license": "LGPL-3.0",
"$runtime": "1.5.0",
"$description": "metadata card configuration plugin - testing purpose",
"features": {
"content-metadata-presets": [
{
"id": "app.content.metadata.custom",
"custom": [
{
"id": "app.content.metadata.customGroup",
"title": "testing extension props",
"items": [
{
"id": "app.content.metadata.exifAspect",
"disabled": true
},
{
"id": "app.content.metadata.exifAspect2",
"aspect": "exif:exif",
"properties": [
"exif:orientation",
"exif:manufacturer",
"exif:model",
"exif:software"
]
}
]
},
{
"id": "app.content.metadata.customGroup2",
"title": "testing extension props2",
"items": [
{
"id": "app.content.metadata.exifAspect",
"aspect": "exif:exif",
"properties": [
"exif:pixelXDimension",
"exif:pixelYDimension",
"exif:dateTimeOriginal"
]
}
]
}
]
},
{
"id": "app.content.metadata.kitten-images",
"kitten-images": {
"id": "app.content.metadata.kittenAspect",
"custom:aspect": "*",
"exif:exif": [ "exif:pixelXDimension", "exif:pixelYDimension"]
}
}
]
}
}

View File

@@ -1,157 +0,0 @@
{
"$schema": "../../../../extension.schema.json",
"$id": "app.debug-search.plugin",
"$version": "1.0.0",
"$name": "app.debug-search.plugin",
"$vendor": "Hyland Software, Inc. and its affiliates",
"$license": "LGPL-3.0",
"$runtime": "1.5.0",
"$description": "Plugin for debugging and testing purposes",
"features": {
"search": [
{
"id": "app.search.example",
"order": 200,
"name": "Extension search (folder)",
"default": true,
"filterWithContains": true,
"aca:fields": ["cm:name", "cm:title", "cm:description", "TEXT", "TAG"],
"include": ["path", "allowableOperations", "properties"],
"sorting": {
"options": [
{
"key": "score",
"label": "SEARCH.SORT.RELEVANCE",
"type": "SCORE",
"field": "score",
"ascending": false
},
{
"key": "name",
"label": "SEARCH.SORT.FILENAME",
"type": "FIELD",
"field": "cm:name",
"ascending": true
},
{
"key": "title",
"label": "SEARCH.SORT.TITLE",
"type": "FIELD",
"field": "cm:title",
"ascending": true
},
{
"key": "modified",
"label": "SEARCH.SORT.MODIFIED_DATE",
"type": "FIELD",
"field": "cm:modified",
"ascending": true
},
{
"key": "modifier",
"label": "SEARCH.SORT.MODIFIER",
"type": "FIELD",
"field": "cm:modifier",
"ascending": true
},
{
"key": "created",
"label": "SEARCH.SORT.CREATE_DATE",
"type": "FIELD",
"field": "cm:created",
"ascending": true
},
{
"key": "content.sizeInBytes",
"label": "SEARCH.SORT.SIZE",
"type": "FIELD",
"field": "content.size",
"ascending": true
},
{
"key": "content.mimetype",
"label": "SEARCH.SORT.TYPE",
"type": "FIELD",
"field": "content.mimetype",
"ascending": true
}
],
"defaults": [
{
"key": "score",
"type": "SCORE",
"field": "score",
"ascending": false
}
]
},
"aca:triggeredOnChange": false,
"resetButton": true,
"filterQueries": [
{ "query": "+TYPE:'cm:folder'" },
{
"query": "-TYPE:'cm:thumbnail' AND -TYPE:'cm:failedThumbnail' AND -TYPE:'cm:rating'"
},
{ "query": "-cm:creator:System AND -QNAME:comment" },
{
"query": "-TYPE:'st:site' AND -ASPECT:'st:siteContainer' AND -ASPECT:'sys:hidden'"
},
{
"query": "-TYPE:'dl:dataList' AND -TYPE:'dl:todoList' AND -TYPE:'dl:issue'"
},
{ "query": "-TYPE:'fm:topic' AND -TYPE:'fm:post'" },
{ "query": "-TYPE:'lnk:link'" },
{ "query": "-PNAME:'0/wiki'" }
],
"facetQueries": {
"label": "SEARCH.CATEGORIES.MODIFIED_DATE",
"expanded": true,
"queries": [
{
"label": "SEARCH.FACET_QUERIES.TODAY",
"query": "cm:modified:[TODAY to TODAY]"
},
{
"label": "SEARCH.FACET_QUERIES.THIS_WEEK",
"query": "cm:modified:[NOW/DAY-7DAYS TO NOW/DAY+1DAY]"
},
{
"label": "SEARCH.FACET_QUERIES.THIS_MONTH",
"query": "cm:modified:[NOW/DAY-1MONTH TO NOW/DAY+1DAY]"
},
{
"label": "SEARCH.FACET_QUERIES.LAST_6_MONTHS",
"query": "cm:modified:[NOW/DAY-6MONTHS TO NOW/DAY+1DAY]"
},
{
"label": "SEARCH.FACET_QUERIES.THIS_YEAR",
"query": "cm:modified:[NOW/DAY-1YEAR TO NOW/DAY+1DAY]"
}
],
"settings": {
"allowUpdateOnChange": false,
"hideDefaultAction": true
}
},
"categories": [
{
"id": "createdDateRange",
"name": "SEARCH.CATEGORIES.CREATED_DATE",
"enabled": true,
"component": {
"selector": "date-range",
"settings": {
"allowUpdateOnChange": false,
"hideDefaultAction": true,
"field": "cm:created",
"dateFormat": "DD-MMM-YY",
"maxDate": "today"
}
}
}
]
}
]
}
}

View File

@@ -38,27 +38,31 @@ The documentation is divided into the following sections:
## Compatibility
| ACA Version | Built with | Tested on |
| ----------- | ---------- | --------- |
| ACA 3.1.0 | ADF 5.1.0 | ACS 7.3 |
| ACA 3.0.0 | ADF 5.0.0 | ACS 7.3 |
| ACA 2.4.0 | ADF 4.4.0 | ACS 6.2 |
| ACA 2.3.0 | ADF 4.3.0 | ACS 6.2 |
| ACA 2.2.0 | ADF 4.2.0 | ACS 6.2 |
| ACA 2.1.0 | ADF 4.1.0 | ACS 6.2 |
| ACA 1.12 | ADF 3.9.0 | ACS 6.2 |
| ACA 1.11 | ADF 3.8.0 | ACS 6.2 |
| ACA 1.10 | ADF 3.7.0 | ACS 6.2 |
| 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 |
| ACA 1.5 | ADF 2.6.0 | ACS 6.0 |
| ACA 1.4 | ADF 2.5.0 | ACS 6.0 |
| ACA 1.3 | ADF 2.4.0 | ACS 6.0 |
| ACA 1.2 | ADF 2.3.0 | ACS 5.2 |
| ACA 1.1 | ADF 2.2.0 | ACS 5.2 |
| ACA 1.0 | ADF 2.0.0 | ACS 5.2 |
| ACA | ADF | ACS | Node | Angular |
| ---- | --- | --- | ---- | ------- |
| 4.1 | 6.1 | 7.4 | 18.x | 14.x |
| 4.0 | 6.1 | 7.4 | 14.x | 14.x |
| 3.1 | 5.1 | 7.3 | | |
| 3.0 | 5.0 | 7.3 | | |
| 2.4 | 4.4 | 6.2 | | |
| 2.3 | 4.3 | 6.2 | | |
| 2.2 | 4.2 | 6.2 | | |
| 2.1 | 4.1 | 6.2 | | |
| 1.12 | 3.9 | 6.2 | | |
| 1.11 | 3.8 | 6.2 | | |
| 1.10 | 3.7 | 6.2 | | |
| 1.9 | 3.6 | 6.2 | | |
| 1.8 | 3.3 | 6.1 | | |
| 1.7 | 3.0 | 6.1 | | |
| 1.6 | 2.6 | 6.1 | | |
| 1.5 | 2.6 | 6.0 | | |
| 1.4 | 2.5 | 6.0 | | |
| 1.3 | 2.4 | 6.0 | | |
| 1.2 | 2.3 | 5.2 | | |
| 1.1 | 2.2 | 5.2 | | |
| 1.0 | 2.0 | 5.2 | | |
> See <https://angular.io/guide/versions> for more details on Angular and Node.js compatibility
## Available Features

View File

@@ -8,8 +8,8 @@ The Content App is based on [Angular CLI](https://cli.angular.io), and you can u
## Prerequisites for building
- [Node.js](https://nodejs.org/en/) 14.x
- NPM 6.x
- [Node.js](https://nodejs.org/en/) 18.x
- NPM 9.x
- (optional) [Angular CLI](https://cli.angular.io/) 14.x or later
> The Angular CLI libraries are already part of the setup.

View File

@@ -13,6 +13,7 @@ To install nvm you can run following:
```sh
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash
```
for other installation options and troubleshooting instructions please follow [nvm installation docs](https://github.com/nvm-sh/nvm#install--update-script).
## Usage

View File

@@ -1,6 +1,5 @@
path = require("path");
module.exports = {
"extends": "../../.eslintrc.json",
{
"extends": "../../../.eslintrc.json",
"ignorePatterns": [
"!**/*"
],
@@ -11,12 +10,16 @@ module.exports = {
],
"parserOptions": {
"project": [
path.join(__dirname, "tsconfig.lib.json"),
path.join(__dirname, "tsconfig.spec.json")
"e2e/playwright/actions/tsconfig.e2e.json"
],
"createDefaultProgram": true
},
"plugins": [
"rxjs",
"unicorn"
],
"rules": {
"@typescript-eslint/no-floating-promises": "off"
}
}
]

View File

@@ -0,0 +1 @@
{}

View File

@@ -22,15 +22,23 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { BasePage, DataTableComponent } from '@alfresco/playwright-shared';
import { Page } from '@playwright/test';
import { PlaywrightTestConfig } from '@playwright/test';
import { CustomConfig, getGlobalConfig, getExcludedTestsRegExpArray } from '@alfresco/playwright-shared';
import EXCLUDED_JSON from './exclude.tests.json';
export class PersonalFilesPage extends BasePage {
private static pageUrl = 'personal-files';
const config: PlaywrightTestConfig<CustomConfig> = {
...getGlobalConfig,
constructor(page: Page) {
super(page, PersonalFilesPage.pageUrl);
}
grepInvert: getExcludedTestsRegExpArray(EXCLUDED_JSON, 'Actions'),
projects: [
{
name: 'Actions',
testDir: './src/tests',
use: {
users: ['hruser']
}
}
]
};
public dataTable = new DataTableComponent(this.page);
}
export default config;

View File

@@ -0,0 +1,34 @@
{
"$schema": "../../../node_modules/nx/schemas/project-schema.json",
"name": "actions-e2e",
"sourceRoot": "e2e/playwright/actions/src",
"projectType": "application",
"targets": {
"e2e": {
"executor": "nx:run-commands",
"options": {
"commands": [
"npx playwright test --config=e2e/playwright/actions/playwright.config.ts"
]
},
"configurations": {
"production": {
"devServerTarget": "content-ce:serve:production"
}
}
},
"lint": {
"executor": "@angular-eslint/builder:lint",
"options": {
"lintFilePatterns": [
"e2e/**/*.ts",
"e2e/**/*.html"
],
"cache": true,
"cacheLocation": ".eslintcache",
"ignorePath": ".eslintignore"
},
"outputs": ["{options.outputFile}"]
}
}
}

View File

@@ -22,17 +22,29 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { Page } from '@playwright/test';
import { BaseComponent } from '../base.component';
import { expect } from '@playwright/test';
import { getUserState, test } from '@alfresco/playwright-shared';
export class MatMenuComponent extends BaseComponent {
private static rootElement = '.mat-menu-content';
test.use({ storageState: getUserState('hruser') });
test.describe('Create actions', () => {
let randomFolderName: string;
constructor(page: Page) {
super(page, MatMenuComponent.rootElement);
}
test.beforeEach(async ({ personalFiles }) => {
randomFolderName = `playwright-folder-${(Math.random() + 1).toString(36).substring(6)}`;
await personalFiles.navigate();
});
public getMenuItemsLocator = this.getChild('button');
test.afterEach(async ({ personalFiles }) => {
await personalFiles.dataTable.performActionFromExpandableMenu(randomFolderName, 'Delete');
});
public getButtonByText = (text: string) => this.getChild('button', { hasText: text });
}
test('[C216341] Create a folder with name only', async ({ personalFiles }) => {
await personalFiles.acaHeader.createButton.click();
await personalFiles.matMenu.createFolder.click();
await personalFiles.folderDialog.folderNameInputLocator.fill(randomFolderName);
await personalFiles.folderDialog.createButton.click();
await personalFiles.dataTable.goThroughPagesLookingForRowWithName(randomFolderName);
await expect(personalFiles.dataTable.getRowByName(randomFolderName)).toBeVisible();
});
});

View File

@@ -0,0 +1,15 @@
{
"extends": "../../../tsconfig.adf.json",
"compilerOptions": {
"outDir": "../../out-tsc/e2e",
"baseUrl": "./",
"module": "commonjs",
"target": "es2017",
"types": ["jasmine", "jasminewd2", "node"],
"skipLibCheck": true,
"paths": {
"@alfresco/playwright-shared": ["../../../projects/aca-playwright-shared/src/index.ts"]
}
},
"exclude": ["node_modules"]
}

View File

@@ -0,0 +1,12 @@
{
"extends": "../../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/e2e",
"baseUrl": "./",
"module": "commonjs",
"target": "es2017",
"types": ["jasmine", "jasminewd2", "node", "@playwright/test"],
"skipLibCheck": true,
},
"exclude": ["node_modules"]
}

View File

@@ -0,0 +1,26 @@
{
"extends": "../../../.eslintrc.json",
"ignorePatterns": [
"!**/*"
],
"overrides": [
{
"files": [
"*.ts"
],
"parserOptions": {
"project": [
"e2e/playwright/folder-rules/tsconfig.e2e.json"
],
"createDefaultProgram": true
},
"plugins": [
"rxjs",
"unicorn"
],
"rules": {
"@typescript-eslint/no-floating-promises": "off"
}
}
]
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -22,16 +22,23 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { BaseComponent } from './base.component';
import { Page } from '@playwright/test';
import { PlaywrightTestConfig } from '@playwright/test';
import { CustomConfig, getGlobalConfig, getExcludedTestsRegExpArray } from '@alfresco/playwright-shared';
import EXCLUDED_JSON from './exclude.tests.json';
export class AdfFolderDialogComponent extends BaseComponent {
private static rootElement = 'adf-folder-dialog';
const config: PlaywrightTestConfig<CustomConfig> = {
...getGlobalConfig,
public folderNameInputLocator = this.getChild('[id="adf-folder-name-input"]');
public createButton = this.getChild('[id="adf-folder-create-button"]');
grepInvert: getExcludedTestsRegExpArray(EXCLUDED_JSON, 'Folder Rules'),
projects: [
{
name: 'Folder Rules',
testDir: './src/tests',
use: {
users: ['admin']
}
}
]
};
constructor(page: Page) {
super(page, AdfFolderDialogComponent.rootElement);
}
}
export default config;

View File

@@ -0,0 +1,34 @@
{
"$schema": "../../../node_modules/nx/schemas/project-schema.json",
"name": "folder-rules-e2e",
"sourceRoot": "e2e/playwright/folder-rules/src",
"projectType": "application",
"targets": {
"e2e": {
"executor": "nx:run-commands",
"options": {
"commands": [
"npx playwright test --config=e2e/playwright/folder-rules/playwright.config.ts"
]
},
"configurations": {
"production": {
"devServerTarget": "content-ce:serve:production"
}
}
},
"lint": {
"executor": "@angular-eslint/builder:lint",
"options": {
"lintFilePatterns": [
"e2e/**/*.ts",
"e2e/**/*.html"
],
"cache": true,
"cacheLocation": ".eslintcache",
"ignorePath": ".eslintignore"
},
"outputs": ["{options.outputFile}"]
}
}
}

View File

@@ -22,10 +22,10 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { test } from '../fixtures/page-initialization';
import { ActionType } from '../page-objects/components/actions-dropdown.component';
import { expect } from '@playwright/test';
import { ActionType, getUserState, test } from '@alfresco/playwright-shared';
test.use({ storageState: getUserState('admin') });
test.describe('Folder Rules Actions', () => {
const randomFolderName = `playwright-folder-${(Math.random() + 1).toString(36).substring(6)}`;
const randomRuleName = `playwright-rule-${(Math.random() + 1).toString(36).substring(6)}`;
@@ -36,8 +36,8 @@ test.describe('Folder Rules Actions', () => {
let folderId: string;
test.beforeAll(async ({ apiClient }) => {
const node = await apiClient.nodes.createNode('-my-', { name: randomFolderName, nodeType: 'cm:folder', relativePath: '/' });
test.beforeAll(async ({ superAdminApiClient }) => {
const node = await superAdminApiClient.nodes.createNode('-my-', { name: randomFolderName, nodeType: 'cm:folder', relativePath: '/' });
folderId = node.entry.id;
});
@@ -45,15 +45,15 @@ test.describe('Folder Rules Actions', () => {
await personalFiles.navigate({ waitUntil: 'domcontentloaded' });
});
test.afterAll(async ({ apiClient }) => {
await apiClient.nodes.deleteNode(folderId);
test.afterAll(async ({ superAdminApiClient }) => {
await superAdminApiClient.nodes.deleteNode(folderId);
});
test('Create a rule with actions', async ({ personalFiles, nodesPage }) => {
test('[C691637] Create a rule with actions', async ({ personalFiles, nodesPage }) => {
await personalFiles.dataTable.performActionFromExpandableMenu(randomFolderName, 'Manage rules');
await nodesPage.toolbar.clickCreateRuleButton();
await nodesPage.manageRulesDialog.typeRuleName(randomRuleName);
await nodesPage.manageRulesDialog.ruleNameInputLocator.type(randomRuleName);
await nodesPage.actionsDropdown.selectAction(ActionType.HideRecord, 0);
await nodesPage.actionsDropdown.selectAction(ActionType.IncrementCounter, 1);

View File

@@ -22,11 +22,10 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { test } from '../fixtures/page-initialization';
import { ActionType } from '../page-objects/components/actions-dropdown.component';
import { Comparator, Field } from '../page-objects/components/conditions.component';
import { expect } from '@playwright/test';
import { ActionType, Comparator, Field, getUserState, test } from '@alfresco/playwright-shared';
test.use({ storageState: getUserState('admin') });
test.describe('Folder Rules Conditions', () => {
const randomFolderName = `playwright-folder-${(Math.random() + 1).toString(36).substring(6)}`;
const randomRuleName = `playwright-rule-${(Math.random() + 1).toString(36).substring(6)}`;
@@ -34,8 +33,8 @@ test.describe('Folder Rules Conditions', () => {
let folderId: string;
test.beforeAll(async ({ apiClient }) => {
const node = await apiClient.nodes.createNode('-my-', { name: randomFolderName, nodeType: 'cm:folder', relativePath: '/' });
test.beforeAll(async ({ superAdminApiClient }) => {
const node = await superAdminApiClient.nodes.createNode('-my-', { name: randomFolderName, nodeType: 'cm:folder', relativePath: '/' });
folderId = node.entry.id;
});
@@ -43,18 +42,18 @@ test.describe('Folder Rules Conditions', () => {
await personalFiles.navigate();
});
test.afterAll(async ({ apiClient }) => {
await apiClient.nodes.deleteNode(folderId);
test.afterAll(async ({ superAdminApiClient }) => {
await superAdminApiClient.nodes.deleteNode(folderId);
});
test('Create a rule with condition', async ({ personalFiles, nodesPage }) => {
test('[C691638] Create a rule with condition', async ({ personalFiles, nodesPage }) => {
await personalFiles.dataTable.performActionFromExpandableMenu(randomFolderName, 'Manage rules');
await nodesPage.toolbar.clickCreateRuleButton();
await nodesPage.manageRulesDialog.typeRuleName(randomRuleName);
await nodesPage.manageRulesDialog.ruleNameInputLocator.type(randomRuleName);
await nodesPage.conditionsDropdown.addCondition(Field.Size, Comparator.Equals, specialChars, 0);
await nodesPage.conditionsDropdown.addCondition(Field.Size, Comparator.Equals, specialChars, 1);
await nodesPage.conditionsDropdown.createConditionGroup();
await nodesPage.conditionsDropdown.addConditionGroupButton.click();
await nodesPage.conditionsDropdown.addConditionGroup(Field.Size, Comparator.Equals, specialChars, 0);
await nodesPage.conditionsDropdown.addConditionGroup(Field.Size, Comparator.Equals, specialChars, 1);
await nodesPage.actionsDropdown.selectAction(ActionType.IncrementCounter, 0);

View File

@@ -22,29 +22,30 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { test } from '../fixtures/page-initialization';
import { getUserState, test } from '@alfresco/playwright-shared';
test.use({ storageState: getUserState('admin') });
test.describe('Rules - Manage Rules', () => {
const randomName = `playwright-folder-${(Math.random() + 1).toString(36).substring(6)}`;
const randomRuleName = `playwright-rule-${(Math.random() + 1).toString(36).substring(6)}`;
let folderId: string;
test.beforeAll(async ({ apiClient }) => {
const node = await apiClient.nodes.createNode('-my-', { name: randomName, nodeType: 'cm:folder', relativePath: '/' });
test.beforeAll(async ({ superAdminApiClient }) => {
const node = await superAdminApiClient.nodes.createNode('-my-', { name: randomName, nodeType: 'cm:folder', relativePath: '/' });
folderId = node.entry.id;
await apiClient.createRandomRule(folderId, randomRuleName);
await superAdminApiClient.createRandomRule(folderId, randomRuleName);
});
test.beforeEach(async ({ personalFiles }) => {
await personalFiles.navigate();
});
test.afterAll(async ({ apiClient }) => {
await apiClient.nodes.deleteNode(folderId);
test.afterAll(async ({ superAdminApiClient }) => {
await superAdminApiClient.nodes.deleteNode(folderId);
});
test('Disable an existing rule', async ({ personalFiles, nodesPage }) => {
test('[C691651] Disable an existing rule', async ({ personalFiles, nodesPage }) => {
await personalFiles.dataTable.performActionFromExpandableMenu(randomName, 'Manage rules');
await nodesPage.manageRules.disableRuleToggle.click();
});

View File

@@ -0,0 +1,15 @@
{
"extends": "../../../tsconfig.adf.json",
"compilerOptions": {
"outDir": "../../out-tsc/e2e",
"baseUrl": "./",
"module": "commonjs",
"target": "es2017",
"types": ["jasmine", "jasminewd2", "node"],
"skipLibCheck": true,
"paths": {
"@alfresco/playwright-shared": ["../../../projects/aca-playwright-shared/src/index.ts"]
}
},
"exclude": ["node_modules"]
}

View File

@@ -0,0 +1,12 @@
{
"extends": "../../../tsconfig.json",
"compilerOptions": {
"outDir": "../../out-tsc/e2e",
"baseUrl": "./",
"module": "commonjs",
"target": "es2017",
"types": ["jasmine", "jasminewd2", "node", "@playwright/test"],
"skipLibCheck": true,
},
"exclude": ["node_modules"]
}

View File

@@ -1,8 +0,0 @@
{
"name": "playwright-shared",
"version": "3.0.0",
"main": "index.ts",
"dependencies": {
"tslib": "^2.0.0"
}
}

View File

@@ -1,35 +0,0 @@
/*!
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Alfresco Example Content Application
*
* 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
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
import { BaseComponent } from './base.component';
import { Page } from '@playwright/test';
export class AcaPageLayoutHeader extends BaseComponent {
private static rootElement = 'adf-toolbar';
public createButton = this.getChild('[id="app.toolbar.create"]');
constructor(page: Page) {
super(page, AcaPageLayoutHeader.rootElement);
}
}

View File

@@ -1,30 +0,0 @@
/*!
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Alfresco Example Content Application
*
* 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
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
export * from './global-variables';
export * from './playwright-base';
export * from './components';
export * from './components/dataTable';
export * from './pages';
export * from './pages/personal-files.page';

View File

@@ -1,9 +0,0 @@
{
"C589205": "https://alfresco.atlassian.net/browse/ACA-4353",
"C261153": "https://alfresco.atlassian.net/browse/AAE-7517",
"C306959": "https://alfresco.atlassian.net/browse/ACA-4620",
"C213134": "temp, see https://alfresco.atlassian.net/browse/ACS-5189",
"C286252": "temp, see https://alfresco.atlassian.net/browse/ACS-5189",
"C284666": "temp, see https://alfresco.atlassian.net/browse/ACS-5189",
"C286269": "temp, see https://alfresco.atlassian.net/browse/ACS-5189"
}

View File

@@ -1,5 +1,5 @@
{
"extends": "../.eslintrc.json",
"extends": "../../.eslintrc.json",
"ignorePatterns": [
"!**/*"
],
@@ -10,7 +10,7 @@
],
"parserOptions": {
"project": [
"e2e/tsconfig.e2e.json"
"e2e/protractor/tsconfig.e2e.json"
],
"createDefaultProgram": true
},

View File

@@ -1,5 +1,5 @@
{
"$schema": "../node_modules/nx/schemas/project-schema.json",
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"name": "app-e2e",
"sourceRoot": "e2e",
"projectType": "application",

View File

@@ -0,0 +1,29 @@
{
"C589205": "https://alfresco.atlassian.net/browse/ACA-4353",
"C261153": "https://alfresco.atlassian.net/browse/AAE-7517",
"C306959": "https://alfresco.atlassian.net/browse/ACA-4620",
"C213134": "temp, see https://alfresco.atlassian.net/browse/ACS-5189",
"C286252": "temp, see https://alfresco.atlassian.net/browse/ACS-5189",
"C284666": "temp, see https://alfresco.atlassian.net/browse/ACS-5189",
"C286269": "temp, see https://alfresco.atlassian.net/browse/ACS-5189",
"C279186": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4986",
"C279230": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4986",
"C279231": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4986",
"C279232": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4986",
"C279233": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4986",
"C279191": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
"C279192": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
"C279193": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
"C279195": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
"C280051": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
"C280052": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
"C279188": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
"C308042": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
"C279219": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4985",
"C279221": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4985",
"C279220": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4985",
"C325006": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4985",
"C286327": "https://alfresco.atlassian.net/browse/PRODSEC-6575",
"C286332": "https://alfresco.atlassian.net/browse/PRODSEC-6575",
"C286333": "https://alfresco.atlassian.net/browse/PRODSEC-6575"
}

View File

@@ -1,5 +1,5 @@
{
"$schema": "../../extension.schema.json",
"$schema": "../../../../extension.schema.json",
"$id": "app.core",
"$name": "app.core",
"$version": "1.0.0",

View File

@@ -1,5 +1,5 @@
{
"$schema": "../../extension.schema.json",
"$schema": "../../../../extension.schema.json",
"$id": "app.core",
"$name": "app.core",
"$version": "1.0.0",

View File

@@ -1,5 +1,5 @@
{
"$schema": "../../extension.schema.json",
"$schema": "../../../../extension.schema.json",
"$id": "app.core",
"$name": "app.core",
"$version": "1.0.0",

View File

@@ -1,5 +1,5 @@
{
"$schema": "../../extension.schema.json",
"$schema": "../../../../extension.schema.json",
"$id": "app.core",
"$name": "app.core",
"$version": "1.0.0",

View File

@@ -1,5 +1,5 @@
{
"$schema": "../../extension.schema.json",
"$schema": "../../../../extension.schema.json",
"$id": "app.core",
"$name": "app.core",
"$version": "1.0.0",

View File

@@ -1,5 +1,5 @@
{
"$schema": "../../extension.schema.json",
"$schema": "../../../../extension.schema.json",
"$id": "app.core",
"$name": "app.core",
"$version": "1.0.0",

View File

@@ -1,5 +1,5 @@
{
"$schema": "../../extension.schema.json",
"$schema": "../../../../extension.schema.json",
"$id": "app.core",
"$name": "app.core",
"$version": "1.0.0",

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -136,6 +136,7 @@ describe('Destination picker dialog : ', () => {
afterEach(async () => {
await page.closeOpenDialogs();
await page.dataTable.clearSelection();
});
describe('general', () => {

Some files were not shown because too many files have changed in this diff Show More