diff --git a/lib/core/form/components/widgets/core/form.model.ts b/lib/core/form/components/widgets/core/form.model.ts index 2ad7009110..551e7e8312 100644 --- a/lib/core/form/components/widgets/core/form.model.ts +++ b/lib/core/form/components/widgets/core/form.model.ts @@ -201,9 +201,7 @@ export class FormModel { } } - if (errorsField.length > 0) { - this._isValid = false; - } + this._isValid = errorsField.length > 0 ? false : true; if (this.formService) { validateFormEvent.isValid = this._isValid; diff --git a/lib/core/form/components/widgets/dynamic-table/editors/dropdown/dropdown.editor.html b/lib/core/form/components/widgets/dynamic-table/editors/dropdown/dropdown.editor.html index 12d0aaf91b..28f6a2a071 100644 --- a/lib/core/form/components/widgets/dynamic-table/editors/dropdown/dropdown.editor.html +++ b/lib/core/form/components/widgets/dynamic-table/editors/dropdown/dropdown.editor.html @@ -8,7 +8,7 @@ [(ngModel)]="value" [required]="column.required" [disabled]="!column.editable" - (selectionChange)="onValueChanged(row, column, $event)"> + (ngModelChange)="onValueChanged(row, column, $event)"> {{opt.name}} diff --git a/lib/core/services/settings.service.ts b/lib/core/services/settings.service.ts index 008d2da41d..531124a048 100644 --- a/lib/core/services/settings.service.ts +++ b/lib/core/services/settings.service.ts @@ -72,7 +72,7 @@ export class SettingsService { /** @deprecated in 1.7.0 */ public setProviders(providers: string) { - this.logService.log(`SettingsService.aetProviders is deprecated. Use the app-config.json`); + this.logService.log(`SettingsService.setProviders is deprecated. Use the app-config.json`); if (providers) { this.storage.setItem(AppConfigValues.PROVIDERS, providers); } diff --git a/lib/core/viewer/components/viewer.component.html b/lib/core/viewer/components/viewer.component.html index 48f6f699b0..b4218f3f03 100644 --- a/lib/core/viewer/components/viewer.component.html +++ b/lib/core/viewer/components/viewer.component.html @@ -142,8 +142,6 @@
- showSidebar 1 {{showSidebar}} - showSidebar {{showSidebar}}
diff --git a/lib/process-services/task-list/components/task-details.component.html b/lib/process-services/task-list/components/task-details.component.html index 96721c271a..e8fc2f0041 100644 --- a/lib/process-services/task-list/components/task-details.component.html +++ b/lib/process-services/task-list/components/task-details.component.html @@ -124,7 +124,7 @@
; public errorDialogRef: MatDialogRef>; @@ -306,7 +307,9 @@ export class TaskDetailsComponent implements OnInit, OnChanges { let endDate: any = res.endDate; if (endDate && !isNaN(endDate.getTime())) { - this.readOnlyForm = true; + this.internalReadOnlyForm = true; + } else { + this.internalReadOnlyForm = this.readOnlyForm } if (this.taskDetails && this.taskDetails.involvedPeople) { diff --git a/protractor.conf.js b/protractor.conf.js index 4ccd2917ba..eabb9c4852 100644 --- a/protractor.conf.js +++ b/protractor.conf.js @@ -9,6 +9,7 @@ const TestConfig = require('./e2e/test.config'); var argv = require('yargs').argv; const fs = require('fs'); +const rimraf = require('rimraf'); const projectRoot = path.resolve(__dirname); @@ -25,7 +26,7 @@ var NAME_TEST = process.env.NAME_TEST ? true : false var specsToRun = './**/' + FOLDER + '**/*.e2e.ts'; if (process.env.NAME_TEST) { - specsToRun = './e2e/**/' + process.env.NAME_TEST; + specsToRun = './e2e/**/' + process.env.NAME_TEST; } var args_options = []; @@ -38,6 +39,15 @@ if (BROWSER_RUN === 'true') { var downloadFolder = path.join(__dirname, 'e2e/downloads'); +var buildNumber = () => { + let buildNumber = process.env.TRAVIS_BUILD_NUMBER; + if (!buildNumber) { + process.env.TRAVIS_BUILD_NUMBER = Date.now(); + } + + return process.env.TRAVIS_BUILD_NUMBER; +} + exports.config = { allScriptsTimeout: 60000, @@ -135,7 +145,7 @@ exports.config = { }, - onComplete: async function () { + afterLaunch: async function () { var retryCount = 1; if (argv.retry) { retryCount = ++argv.retry; @@ -145,7 +155,6 @@ exports.config = { console.log(filenameReport); - let buildNumber = process.env.TRAVIS_BUILD_NUMBER; let saveScreenshot = process.env.SAVE_SCREENSHOT; let alfrescoJsApi = new AlfrescoApi({ @@ -155,31 +164,31 @@ exports.config = { alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword); if (saveScreenshot === 'true') { - if (!buildNumber) { - buildNumber = Date.now(); - } + let files = fs.readdirSync(path.join(__dirname, './e2e-output/screenshots')); if (files && files.length > 0) { try { - folder = await alfrescoJsApi.nodes.addNode('-my-', { - 'name': 'screenshot', - 'relativePath': `Builds/${buildNumber}`, - 'nodeType': 'cm:folder' - }, {}, { - 'overwrite': true - }); + folder = await + alfrescoJsApi.nodes.addNode('-my-', { + 'name': `retry-${retryCount}`, + 'relativePath': `Builds/${buildNumber()}/screenshot`, + 'nodeType': 'cm:folder' + }, {}, { + 'overwrite': true + }); } catch (error) { console.log('Folder screenshot already present'); - folder = await alfrescoJsApi.nodes.getNode('-my-', { - 'relativePath': `Builds/${buildNumber}/screenshot`, - 'nodeType': 'cm:folder' - }, {}, { - 'overwrite': true - }); + folder = await + alfrescoJsApi.nodes.getNode('-my-', { + 'relativePath': `Builds/${buildNumber()}/screenshot/retry-${retryCount}`, + 'nodeType': 'cm:folder' + }, {}, { + 'overwrite': true + }); } for (const fileName of files) { @@ -187,29 +196,30 @@ exports.config = { let pathFile = path.join(__dirname, './e2e-output/screenshots', fileName); let file = fs.createReadStream(pathFile); - await alfrescoJsApi.upload.uploadFile( - file, - '', - folder.entry.id, - null, - { - 'name': file.name, - 'nodeType': 'cm:content' - } - ); + await + alfrescoJsApi.upload.uploadFile( + file, + '', + folder.entry.id, + null, + { + 'name': file.name, + 'nodeType': 'cm:content' + } + ); } } } - testConfig = { + testConfigReport = { reportTitle: 'Protractor Test Execution Report', outputPath: `${projectRoot}/e2e-output/junit-report`, outputFilename: filenameReport, - screenshotPath: '`${projectRoot}/e2e-output/screenshots/`', + screenshotPath: `${projectRoot}/e2e-output/screenshots/`, screenshotsOnlyOnFailure: true, }; - new htmlReporter().from(`${projectRoot}/e2e-output/junit-report/results.xml`, testConfig); + new htmlReporter().from(`${projectRoot}/e2e-output/junit-report/results.xml`, testConfigReport); let pathFile = path.join(__dirname, './e2e-output/junit-report', filenameReport + '.html'); let reportFile = fs.createReadStream(pathFile); @@ -217,44 +227,50 @@ exports.config = { let reportFolder; try { - reportFolder = await alfrescoJsApi.nodes.addNode('-my-', { - 'name': 'report', - 'relativePath': `Builds/${buildNumber}`, - 'nodeType': 'cm:folder' - }, {}, { - 'overwrite': true - }); + reportFolder = await + alfrescoJsApi.nodes.addNode('-my-', { + 'name': 'report', + 'relativePath': `Builds/${buildNumber()}`, + 'nodeType': 'cm:folder' + }, {}, { + 'overwrite': true + }); } catch (error) { console.log('Folder report already present' + error); - reportFolder = await alfrescoJsApi.nodes.getNode('-my-', { - 'relativePath': `Builds/${buildNumber}/report`, - 'nodeType': 'cm:folder' - }, {}, { - 'overwrite': true - }); + reportFolder = await + alfrescoJsApi.nodes.getNode('-my-', { + 'relativePath': `Builds/${buildNumber()}/report`, + 'nodeType': 'cm:folder' + }, {}, { + 'overwrite': true + }); } try { - await alfrescoJsApi.upload.uploadFile( - reportFile, - '', - reportFolder.entry.id, - null, - { - 'name': reportFile.name, - 'nodeType': 'cm:content' - } - ); + await + alfrescoJsApi.upload.uploadFile( + reportFile, + '', + reportFolder.entry.id, + null, + { + 'name': reportFile.name, + 'nodeType': 'cm:content' + } + ); } catch (error) { console.log('error' + error); } - }, - afterLaunch() { + rimraf(`${projectRoot}/e2e-output/screenshots/`, function () { console.log('done delete screenshot'); }); + return retry.afterLaunch(3); } }; + + +