[ADF-1889] fix preview of the APS content (#2663)

* fix preview of the APS content

* test fixes

* viewer integration enhancements

* code fixes

* test fixes
This commit is contained in:
Denys Vuika
2017-11-17 20:53:53 +00:00
committed by Eugenio Romano
parent 2d6861e96f
commit 8a52d6fed5
7 changed files with 53 additions and 17 deletions

View File

@@ -162,7 +162,7 @@ describe('ContentWidgetComponent', () => {
it('should load the thumbnail preview of a pdf', (done) => {
let blob = createFakePdfBlob();
spyOn(processContentService, 'getContentThumbnailUrl').and.returnValue(Observable.of(blob));
spyOn(processContentService, 'getContentThumbnail').and.returnValue(Observable.of(blob));
component.thumbnailLoaded.subscribe((res) => {
fixture.detectChanges();
@@ -244,6 +244,7 @@ describe('ContentWidgetComponent', () => {
it('should open the viewer when the view button is clicked', (done) => {
let blob = createFakePdfBlob();
spyOn(processContentService, 'getContentPreview').and.returnValue(Observable.of(blob));
spyOn(processContentService, 'getFileRawContent').and.returnValue(Observable.of(blob));
component.content = new ContentLinkModel({

View File

@@ -85,7 +85,7 @@ export class ContentWidgetComponent implements OnChanges {
if (this.content.isTypeImage()) {
observable = this.processContentService.getFileRawContent(content.id);
} else {
observable = this.processContentService.getContentThumbnailUrl(content.id);
observable = this.processContentService.getContentThumbnail(content.id);
}
if (observable) {
@@ -104,7 +104,11 @@ export class ContentWidgetComponent implements OnChanges {
}
openViewer(content: ContentLinkModel): void {
this.processContentService.getFileRawContent(content.id).subscribe(
let fetch = this.processContentService.getContentPreview(content.id);
if (content.isTypeImage() || content.isTypePdf()) {
fetch = this.processContentService.getFileRawContent(content.id);
}
fetch.subscribe(
(blob: Blob) => {
content.contentBlob = blob;
this.contentClick.emit(content);

View File

@@ -18,6 +18,8 @@
import { DebugElement } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { Observable } from 'rxjs/Rx';
import { EcmModelService } from '../../../services/ecm-model.service';
import { FormService } from '../../../services/form.service';
import { ProcessContentService } from '../../../services/process-content.service';
@@ -60,6 +62,8 @@ declare let jasmine: any;
describe('UploadWidgetComponent', () => {
let contentService: ProcessContentService;
let filePngFake = new File(['fakePng'], 'file-fake.png', {type: 'image/png'});
let filJpgFake = new File(['fakeJpg'], 'file-fake.jpg', {type: 'image/jpg'});
@@ -81,6 +85,7 @@ describe('UploadWidgetComponent', () => {
uploadWidgetComponent = fixture.componentInstance;
element = fixture.nativeElement;
debugElement = fixture.debugElement;
contentService = TestBed.get(ProcessContentService);
});
}));
@@ -393,6 +398,9 @@ describe('UploadWidgetComponent', () => {
it('should emit form content clicked event on icon click', (done) => {
spyOn(contentService, 'getContentPreview').and.returnValue(Observable.of(new Blob()));
spyOn(contentService, 'getFileRawContent').and.returnValue(Observable.of(new Blob()));
formServiceInstance.formContentClicked.subscribe((content: any) => {
expect(content.name).toBe(fakeJpgAnswer.name);
expect(content.id).toBe(fakeJpgAnswer.id);
@@ -409,11 +417,6 @@ describe('UploadWidgetComponent', () => {
fixture.whenStable().then(() => {
let fileJpegIcon = debugElement.query(By.css('#file-1156-icon'));
fileJpegIcon.nativeElement.dispatchEvent(new MouseEvent('click'));
jasmine.Ajax.requests.mostRecent().respondWith({
status: 200,
contentType: 'json',
responseText: new Blob()
});
});
});

View File

@@ -129,14 +129,19 @@ export class UploadWidgetComponent extends WidgetComponent implements OnInit {
return this.thumbnailService.getMimeTypeIcon(mimeType);
}
fileClicked(file: ContentLinkModel): void {
this.processContentService.getFileRawContent(file.id).subscribe(
fileClicked(obj: any): void {
const file = new ContentLinkModel(obj);
let fetch = this.processContentService.getContentPreview(file.id);
if (file.isTypeImage() || file.isTypePdf()) {
fetch = this.processContentService.getFileRawContent(file.id);
}
fetch.subscribe(
(blob: Blob) => {
file.contentBlob = blob;
this.formService.formContentClicked.next(file);
},
(error) => {
this.logService.error('Unable to send evento for file ' + file.name);
this.logService.error('Unable to send event for file ' + file.name);
}
);
}