mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ACA-4589] Remove requirement for update permission on node to open manage versions dialog (#8483)
This commit is contained in:
@@ -20,7 +20,6 @@ import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testin
|
|||||||
import { MatDialog, MatDialogConfig } from '@angular/material/dialog';
|
import { MatDialog, MatDialogConfig } from '@angular/material/dialog';
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
import { BehaviorSubject, of, Subject } from 'rxjs';
|
import { BehaviorSubject, of, Subject } from 'rxjs';
|
||||||
import { ContentService } from '../common/services/content.service';
|
|
||||||
import { mockFile, mockNewVersionUploaderData, mockNode } from '../mock';
|
import { mockFile, mockNewVersionUploaderData, mockNode } from '../mock';
|
||||||
import { ContentTestingModule } from '../testing/content.testing.module';
|
import { ContentTestingModule } from '../testing/content.testing.module';
|
||||||
import {
|
import {
|
||||||
@@ -51,7 +50,6 @@ class TestDialogComponent {
|
|||||||
describe('NewVersionUploaderService', () => {
|
describe('NewVersionUploaderService', () => {
|
||||||
let fixture: ComponentFixture<TestDialogComponent>;
|
let fixture: ComponentFixture<TestDialogComponent>;
|
||||||
let service: NewVersionUploaderService;
|
let service: NewVersionUploaderService;
|
||||||
let contentService: ContentService;
|
|
||||||
let dialog: MatDialog;
|
let dialog: MatDialog;
|
||||||
let spyOnDialogOpen: jasmine.Spy;
|
let spyOnDialogOpen: jasmine.Spy;
|
||||||
let dialogRefSpyObj;
|
let dialogRefSpyObj;
|
||||||
@@ -68,7 +66,6 @@ describe('NewVersionUploaderService', () => {
|
|||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
service = TestBed.inject(NewVersionUploaderService);
|
service = TestBed.inject(NewVersionUploaderService);
|
||||||
contentService = TestBed.inject(ContentService);
|
|
||||||
dialog = TestBed.inject(MatDialog);
|
dialog = TestBed.inject(MatDialog);
|
||||||
fixture = TestBed.createComponent(TestDialogComponent);
|
fixture = TestBed.createComponent(TestDialogComponent);
|
||||||
|
|
||||||
@@ -83,29 +80,9 @@ describe('NewVersionUploaderService', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('openUploadNewVersionDialog', () => {
|
describe('openUploadNewVersionDialog', () => {
|
||||||
it('Should not open dialog if update operation is not allowed', () => {
|
|
||||||
spyOn(contentService, 'hasAllowableOperations').and.returnValue(false);
|
|
||||||
expect(spyOnDialogOpen).not.toHaveBeenCalled();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('Should return error if update operation is not allowed', async () => {
|
|
||||||
spyOn(contentService, 'hasAllowableOperations').and.returnValue(false);
|
|
||||||
const mockNewVersionUploaderDialogData: NewVersionUploaderDialogData = {
|
|
||||||
node: mockNode,
|
|
||||||
file: mockFile
|
|
||||||
};
|
|
||||||
try {
|
|
||||||
await service.openUploadNewVersionDialog(mockNewVersionUploaderDialogData).toPromise();
|
|
||||||
fail('An error should have been thrown');
|
|
||||||
} catch (error) {
|
|
||||||
expect(error).toEqual({ value: 'OPERATION.ERROR.PERMISSION' });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('Mat Dialog configuration', () => {
|
describe('Mat Dialog configuration', () => {
|
||||||
let mockNewVersionUploaderDialogData: NewVersionUploaderDialogData;
|
let mockNewVersionUploaderDialogData: NewVersionUploaderDialogData;
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
spyOn(contentService, 'hasAllowableOperations').and.returnValue(true);
|
|
||||||
spyOn(service.versionsApi, 'listVersionHistory').and.returnValue(Promise.resolve({
|
spyOn(service.versionsApi, 'listVersionHistory').and.returnValue(Promise.resolve({
|
||||||
list: { entries: [{ entry: '2' }] }
|
list: { entries: [{ entry: '2' }] }
|
||||||
} as any));
|
} as any));
|
||||||
@@ -220,7 +197,6 @@ describe('NewVersionUploaderService', () => {
|
|||||||
let mockNewVersionUploaderDialogData: NewVersionUploaderDialogData;
|
let mockNewVersionUploaderDialogData: NewVersionUploaderDialogData;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
spyOn(contentService, 'hasAllowableOperations').and.returnValue(true);
|
|
||||||
spyOn(service.versionsApi, 'listVersionHistory').and.returnValue(Promise.resolve({
|
spyOn(service.versionsApi, 'listVersionHistory').and.returnValue(Promise.resolve({
|
||||||
list: { entries: [{ entry: '2' }] }
|
list: { entries: [{ entry: '2' }] }
|
||||||
}) as any);
|
}) as any);
|
||||||
|
@@ -18,7 +18,6 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { MatDialog, MatDialogConfig } from '@angular/material/dialog';
|
import { MatDialog, MatDialogConfig } from '@angular/material/dialog';
|
||||||
import { AlfrescoApiService } from '@alfresco/adf-core';
|
import { AlfrescoApiService } from '@alfresco/adf-core';
|
||||||
import { ContentService } from '../common/services/content.service';
|
|
||||||
|
|
||||||
import { NewVersionUploaderDialogComponent } from './new-version-uploader.dialog';
|
import { NewVersionUploaderDialogComponent } from './new-version-uploader.dialog';
|
||||||
import { VersionPaging, VersionsApi } from '@alfresco/js-api';
|
import { VersionPaging, VersionsApi } from '@alfresco/js-api';
|
||||||
@@ -38,7 +37,6 @@ export class NewVersionUploaderService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private contentService: ContentService,
|
|
||||||
private apiService: AlfrescoApiService,
|
private apiService: AlfrescoApiService,
|
||||||
private dialog: MatDialog,
|
private dialog: MatDialog,
|
||||||
private overlayContainer: OverlayContainer
|
private overlayContainer: OverlayContainer
|
||||||
@@ -61,30 +59,26 @@ export class NewVersionUploaderService {
|
|||||||
const allowDownload = true;
|
const allowDownload = true;
|
||||||
|
|
||||||
return new Observable((observer) => {
|
return new Observable((observer) => {
|
||||||
if (this.contentService.hasAllowableOperations(node, 'update')) {
|
this.versionsApi.listVersionHistory(node.id).then((versionPaging: VersionPaging) => {
|
||||||
this.versionsApi.listVersionHistory(node.id).then((versionPaging: VersionPaging) => {
|
const dialogRef = this.dialog.open(NewVersionUploaderDialogComponent, {
|
||||||
const dialogRef = this.dialog.open(NewVersionUploaderDialogComponent, {
|
data: { file, node, currentVersion: versionPaging.list.entries[0].entry, showComments, allowDownload, showVersionsOnly },
|
||||||
data: { file, node, currentVersion: versionPaging.list.entries[0].entry, showComments, allowDownload, showVersionsOnly },
|
panelClass: this.composePanelClass(showVersionsOnly),
|
||||||
panelClass: this.composePanelClass(showVersionsOnly),
|
width: '630px',
|
||||||
width: '630px',
|
...(config && Object.keys(config).length > 0 && config)
|
||||||
...(config && Object.keys(config).length > 0 && config)
|
|
||||||
});
|
|
||||||
dialogRef.componentInstance.dialogAction.asObservable()
|
|
||||||
.subscribe((newVersionUploaderData: NewVersionUploaderData) => {
|
|
||||||
observer.next(newVersionUploaderData);
|
|
||||||
});
|
|
||||||
dialogRef.componentInstance.uploadError.asObservable().subscribe(error => {
|
|
||||||
observer.error(error);
|
|
||||||
});
|
|
||||||
dialogRef.afterClosed().subscribe(() => {
|
|
||||||
this.overlayContainer.getContainerElement().setAttribute('role', 'region');
|
|
||||||
NewVersionUploaderService.focusOnClose(selectorAutoFocusedOnClose);
|
|
||||||
});
|
|
||||||
this.overlayContainer.getContainerElement().setAttribute('role', 'main');
|
|
||||||
});
|
});
|
||||||
} else {
|
dialogRef.componentInstance.dialogAction.asObservable()
|
||||||
observer.error({ value: 'OPERATION.ERROR.PERMISSION' });
|
.subscribe((newVersionUploaderData: NewVersionUploaderData) => {
|
||||||
}
|
observer.next(newVersionUploaderData);
|
||||||
|
});
|
||||||
|
dialogRef.componentInstance.uploadError.asObservable().subscribe(error => {
|
||||||
|
observer.error(error);
|
||||||
|
});
|
||||||
|
dialogRef.afterClosed().subscribe(() => {
|
||||||
|
this.overlayContainer.getContainerElement().setAttribute('role', 'region');
|
||||||
|
NewVersionUploaderService.focusOnClose(selectorAutoFocusedOnClose);
|
||||||
|
});
|
||||||
|
this.overlayContainer.getContainerElement().setAttribute('role', 'main');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user