mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-05-12 17:04:46 +00:00
[ACA-2471] - close preview action (#1129)
This commit is contained in:
parent
e6b959df7b
commit
5491545ac9
@ -122,3 +122,4 @@ Below is the list of public actions types you can use in the plugin definitions
|
||||
| 1.7.0 | SHOW_SEARCH_FILTER | n/a | Show Filter component in Search Results. |
|
||||
| 1.7.0 | HIDE_SEARCH_FILTER | n/a | Hide Filter component in Search Results |
|
||||
| 1.8.0 | VIEW_NODE | string | Lightweight preview of a node by id. Can be invoked from extensions. |
|
||||
| 1.8.0 | CLOSE_PREVIEW | n/a | Closes the viewer ( preview of the item ) |
|
||||
|
@ -29,7 +29,8 @@ import { MinimalNodeEntity } from '@alfresco/js-api';
|
||||
export enum ViewerActionTypes {
|
||||
ViewFile = 'VIEW_FILE',
|
||||
ViewNode = 'VIEW_NODE',
|
||||
FullScreen = 'FULLSCREEN_VIEWER'
|
||||
FullScreen = 'FULLSCREEN_VIEWER',
|
||||
ClosePreview = 'CLOSE_PREVIEW'
|
||||
}
|
||||
|
||||
export class ViewFileAction implements Action {
|
||||
@ -49,3 +50,8 @@ export class FullscreenViewerAction implements Action {
|
||||
|
||||
constructor(public payload: MinimalNodeEntity) {}
|
||||
}
|
||||
|
||||
export class ClosePreviewAction implements Action {
|
||||
readonly type = ViewerActionTypes.ClosePreview;
|
||||
constructor(public payload?: MinimalNodeEntity) {}
|
||||
}
|
||||
|
@ -1,14 +1,14 @@
|
||||
module.exports = {
|
||||
"/alfresco": {
|
||||
"target": "http://0.0.0.0:8080",
|
||||
"secure": false,
|
||||
"changeOrigin": true,
|
||||
// workaround for REPO-2260
|
||||
onProxyRes: function (proxyRes, req, res) {
|
||||
const header = proxyRes.headers['www-authenticate'];
|
||||
if (header && header.startsWith('Basic')) {
|
||||
proxyRes.headers['www-authenticate'] = 'x' + header;
|
||||
}
|
||||
}
|
||||
'/alfresco': {
|
||||
target: 'http://0.0.0.0:8080',
|
||||
secure: false,
|
||||
changeOrigin: true,
|
||||
// workaround for REPO-2260
|
||||
onProxyRes: function(proxyRes, req, res) {
|
||||
const header = proxyRes.headers['www-authenticate'];
|
||||
if (header && header.startsWith('Basic')) {
|
||||
proxyRes.headers['www-authenticate'] = 'x' + header;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -39,6 +39,7 @@ import {
|
||||
UploadService,
|
||||
AlfrescoApiService
|
||||
} from '@alfresco/adf-core';
|
||||
import { ClosePreviewAction } from '@alfresco/aca-shared/store';
|
||||
import { PreviewComponent } from './preview.component';
|
||||
import { of, throwError } from 'rxjs';
|
||||
import { EffectsModule } from '@ngrx/effects';
|
||||
@ -46,6 +47,7 @@ import { NodeEffects } from '../../store/effects/node.effects';
|
||||
import { AppTestingModule } from '../../testing/app-testing.module';
|
||||
import { ContentApiService } from '@alfresco/aca-shared';
|
||||
import { ContentManagementService } from '../../services/content-management.service';
|
||||
import { Store } from '@ngrx/store';
|
||||
|
||||
describe('PreviewComponent', () => {
|
||||
let fixture: ComponentFixture<PreviewComponent>;
|
||||
@ -57,6 +59,7 @@ describe('PreviewComponent', () => {
|
||||
let uploadService: UploadService;
|
||||
let alfrescoApiService: AlfrescoApiService;
|
||||
let contentManagementService: ContentManagementService;
|
||||
let store: Store<any>;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({
|
||||
@ -76,6 +79,7 @@ describe('PreviewComponent', () => {
|
||||
uploadService = TestBed.get(UploadService);
|
||||
alfrescoApiService = TestBed.get(AlfrescoApiService);
|
||||
contentManagementService = TestBed.get(ContentManagementService);
|
||||
store = TestBed.get(Store);
|
||||
});
|
||||
|
||||
it('should extract the property path root', () => {
|
||||
@ -732,4 +736,11 @@ describe('PreviewComponent', () => {
|
||||
|
||||
expect(alfrescoApiService.nodeUpdated.next).toHaveBeenCalled();
|
||||
}));
|
||||
|
||||
it('should return to parent folder when event emitted from extension', async(() => {
|
||||
spyOn(component, 'navigateToFileLocation');
|
||||
fixture.detectChanges();
|
||||
store.dispatch(new ClosePreviewAction());
|
||||
expect(component.navigateToFileLocation).toHaveBeenCalled();
|
||||
}));
|
||||
});
|
||||
|
@ -38,7 +38,7 @@ import {
|
||||
UrlSegment,
|
||||
PRIMARY_OUTLET
|
||||
} from '@angular/router';
|
||||
import { debounceTime, takeUntil } from 'rxjs/operators';
|
||||
import { debounceTime, map, takeUntil } from 'rxjs/operators';
|
||||
import {
|
||||
UserPreferencesService,
|
||||
ObjectUtils,
|
||||
@ -46,7 +46,11 @@ import {
|
||||
AlfrescoApiService
|
||||
} from '@alfresco/adf-core';
|
||||
import { Store } from '@ngrx/store';
|
||||
import { AppStore } from '@alfresco/aca-shared/store';
|
||||
import {
|
||||
AppStore,
|
||||
ClosePreviewAction,
|
||||
ViewerActionTypes
|
||||
} from '@alfresco/aca-shared/store';
|
||||
import { SetSelectedNodesAction } from '@alfresco/aca-shared/store';
|
||||
import { PageComponent } from '../page.component';
|
||||
import { ContentApiService } from '@alfresco/aca-shared';
|
||||
@ -55,6 +59,7 @@ import { ContentManagementService } from '../../services/content-management.serv
|
||||
import { ContentActionRef, ViewerExtensionRef } from '@alfresco/adf-extensions';
|
||||
import { SearchRequest } from '@alfresco/js-api';
|
||||
import { from } from 'rxjs';
|
||||
import { Actions, ofType } from '@ngrx/effects';
|
||||
|
||||
@Component({
|
||||
selector: 'app-preview',
|
||||
@ -115,6 +120,7 @@ export class PreviewComponent extends PageComponent
|
||||
private router: Router,
|
||||
private apiService: AlfrescoApiService,
|
||||
private uploadService: UploadService,
|
||||
private actions$: Actions,
|
||||
store: Store<AppStore>,
|
||||
extensions: AppExtensionService,
|
||||
content: ContentManagementService
|
||||
@ -167,7 +173,14 @@ export class PreviewComponent extends PageComponent
|
||||
|
||||
this.uploadService.fileUploadComplete
|
||||
.pipe(debounceTime(300))
|
||||
.subscribe(file => this.apiService.nodeUpdated.next(file.data.entry))
|
||||
.subscribe(file => this.apiService.nodeUpdated.next(file.data.entry)),
|
||||
|
||||
this.actions$
|
||||
.pipe(
|
||||
ofType<ClosePreviewAction>(ViewerActionTypes.ClosePreview),
|
||||
map(() => this.navigateToFileLocation(true))
|
||||
)
|
||||
.subscribe(() => {})
|
||||
]);
|
||||
|
||||
this.openWith = this.extensions.openWithActions;
|
||||
|
Loading…
x
Reference in New Issue
Block a user