mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-07-31 17:38:28 +00:00
[ACS-880] Enable digital-work-space to join link to site with workspace template (#1800)
* [ACS-880] Enable digital-work-space to join link to site with workspace template * fix changes * ut added * * conflicts fixed * * prettier fixed
This commit is contained in:
@@ -29,7 +29,7 @@ import { AppTestingModule } from '../testing/app-testing.module';
|
|||||||
import { DirectivesModule } from './directives.module';
|
import { DirectivesModule } from './directives.module';
|
||||||
import { LibraryMembershipDirective } from './library-membership.directive';
|
import { LibraryMembershipDirective } from './library-membership.directive';
|
||||||
import { NO_ERRORS_SCHEMA, SimpleChange } from '@angular/core';
|
import { NO_ERRORS_SCHEMA, SimpleChange } from '@angular/core';
|
||||||
import { of, throwError } from 'rxjs';
|
import { of, throwError, Subject } from 'rxjs';
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
|
|
||||||
describe('LibraryMembershipDirective', () => {
|
describe('LibraryMembershipDirective', () => {
|
||||||
@@ -40,6 +40,7 @@ describe('LibraryMembershipDirective', () => {
|
|||||||
let addMembershipSpy;
|
let addMembershipSpy;
|
||||||
let getMembershipSpy;
|
let getMembershipSpy;
|
||||||
let deleteMembershipSpy;
|
let deleteMembershipSpy;
|
||||||
|
let mockSupportedVersion = false;
|
||||||
|
|
||||||
const testSiteEntry = {
|
const testSiteEntry = {
|
||||||
id: 'id-1',
|
id: 'id-1',
|
||||||
@@ -61,7 +62,10 @@ describe('LibraryMembershipDirective', () => {
|
|||||||
alfrescoApiService = new AlfrescoApiServiceMock(new AppConfigService(null), new StorageService());
|
alfrescoApiService = new AlfrescoApiServiceMock(new AppConfigService(null), new StorageService());
|
||||||
sitesService = new SitesService(alfrescoApiService);
|
sitesService = new SitesService(alfrescoApiService);
|
||||||
peopleApi = alfrescoApiService.getInstance().core.peopleApi;
|
peopleApi = alfrescoApiService.getInstance().core.peopleApi;
|
||||||
directive = new LibraryMembershipDirective(alfrescoApiService, sitesService);
|
directive = new LibraryMembershipDirective(alfrescoApiService, sitesService, {
|
||||||
|
ecmProductInfo$: new Subject(),
|
||||||
|
isVersionSupported: () => mockSupportedVersion
|
||||||
|
} as any);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('markMembershipRequest', () => {
|
describe('markMembershipRequest', () => {
|
||||||
@@ -106,6 +110,7 @@ describe('LibraryMembershipDirective', () => {
|
|||||||
|
|
||||||
describe('toggleMembershipRequest', () => {
|
describe('toggleMembershipRequest', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
mockSupportedVersion = false;
|
||||||
getMembershipSpy = spyOn(peopleApi, 'getSiteMembershipRequest').and.returnValue(Promise.resolve({ entry: requestedMembershipResponse }));
|
getMembershipSpy = spyOn(peopleApi, 'getSiteMembershipRequest').and.returnValue(Promise.resolve({ entry: requestedMembershipResponse }));
|
||||||
addMembershipSpy = spyOn(peopleApi, 'addSiteMembershipRequest').and.returnValue(Promise.resolve({ entry: requestedMembershipResponse }));
|
addMembershipSpy = spyOn(peopleApi, 'addSiteMembershipRequest').and.returnValue(Promise.resolve({ entry: requestedMembershipResponse }));
|
||||||
deleteMembershipSpy = spyOn(peopleApi, 'removeSiteMembershipRequest').and.returnValue(Promise.resolve({}));
|
deleteMembershipSpy = spyOn(peopleApi, 'removeSiteMembershipRequest').and.returnValue(Promise.resolve({}));
|
||||||
@@ -139,7 +144,19 @@ describe('LibraryMembershipDirective', () => {
|
|||||||
tick();
|
tick();
|
||||||
directive.toggleMembershipRequest();
|
directive.toggleMembershipRequest();
|
||||||
tick();
|
tick();
|
||||||
expect(addMembershipSpy).toHaveBeenCalled();
|
expect(addMembershipSpy).toHaveBeenCalledWith('-me-', { id: 'no-membership-requested' });
|
||||||
|
expect(deleteMembershipSpy).not.toHaveBeenCalled();
|
||||||
|
}));
|
||||||
|
|
||||||
|
it("should add 'workspace' to send appropriate email", fakeAsync(() => {
|
||||||
|
mockSupportedVersion = true;
|
||||||
|
const selection = { entry: { id: 'no-membership-requested' } };
|
||||||
|
const change = new SimpleChange(null, selection, true);
|
||||||
|
directive.ngOnChanges({ selection: change });
|
||||||
|
tick();
|
||||||
|
directive.toggleMembershipRequest();
|
||||||
|
tick();
|
||||||
|
expect(addMembershipSpy).toHaveBeenCalledWith('-me-', { id: 'no-membership-requested', client: 'workspace' });
|
||||||
expect(deleteMembershipSpy).not.toHaveBeenCalled();
|
expect(deleteMembershipSpy).not.toHaveBeenCalled();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
@@ -24,9 +24,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { Directive, EventEmitter, HostListener, Input, OnChanges, Output, SimpleChanges } from '@angular/core';
|
import { Directive, EventEmitter, HostListener, Input, OnChanges, Output, SimpleChanges } from '@angular/core';
|
||||||
import { SiteEntry, SiteMemberEntry, SiteMembershipRequestBody } from '@alfresco/js-api';
|
import { SiteEntry, SiteMembershipRequestBody, SiteMemberEntry, SiteMembershipRequestEntry } from '@alfresco/js-api';
|
||||||
import { AlfrescoApiService, SitesService } from '@alfresco/adf-core';
|
import { AlfrescoApiService, SitesService, VersionCompatibilityService } from '@alfresco/adf-core';
|
||||||
import { BehaviorSubject, from } from 'rxjs';
|
import { BehaviorSubject, from, Observable } from 'rxjs';
|
||||||
|
|
||||||
export interface LibraryMembershipToggleEvent {
|
export interface LibraryMembershipToggleEvent {
|
||||||
updatedEntry?: any;
|
updatedEntry?: any;
|
||||||
@@ -68,7 +68,11 @@ export class LibraryMembershipDirective implements OnChanges {
|
|||||||
this.toggleMembershipRequest();
|
this.toggleMembershipRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(private alfrescoApiService: AlfrescoApiService, private sitesService: SitesService) {}
|
constructor(
|
||||||
|
private alfrescoApiService: AlfrescoApiService,
|
||||||
|
private sitesService: SitesService,
|
||||||
|
private versionCompatibilityService: VersionCompatibilityService
|
||||||
|
) {}
|
||||||
|
|
||||||
ngOnChanges(changes: SimpleChanges) {
|
ngOnChanges(changes: SimpleChanges) {
|
||||||
if (!changes.selection.currentValue || !changes.selection.currentValue.entry) {
|
if (!changes.selection.currentValue || !changes.selection.currentValue.entry) {
|
||||||
@@ -203,11 +207,14 @@ export class LibraryMembershipDirective implements OnChanges {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private joinLibraryRequest() {
|
private joinLibraryRequest(): Observable<SiteMembershipRequestEntry> {
|
||||||
const memberBody = {
|
const memberBody = {
|
||||||
id: this.targetSite.id
|
id: this.targetSite.id
|
||||||
} as SiteMembershipRequestBody;
|
} as SiteMembershipRequestBody;
|
||||||
|
|
||||||
|
if (this.versionCompatibilityService.isVersionSupported('7.0.0')) {
|
||||||
|
memberBody.client = 'workspace';
|
||||||
|
}
|
||||||
return from(this.alfrescoApiService.peopleApi.addSiteMembershipRequest('-me-', memberBody));
|
return from(this.alfrescoApiService.peopleApi.addSiteMembershipRequest('-me-', memberBody));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user