fix: ng2-alfresco-search

This commit is contained in:
Denys Vuika 2016-12-08 18:35:29 +00:00
parent f954930678
commit d973c39462
12 changed files with 45 additions and 11 deletions

View File

@ -26,8 +26,8 @@ declare let componentHandler: any;
declare let dialogPolyfill: any; declare let dialogPolyfill: any;
@Component({ @Component({
moduleId: module.id,
selector: 'activiti-process-instance-comments', selector: 'activiti-process-instance-comments',
moduleId: module.id,
templateUrl: './activiti-comments.component.html', templateUrl: './activiti-comments.component.html',
styleUrls: ['./activiti-comments.component.css'], styleUrls: ['./activiti-comments.component.css'],
providers: [ActivitiProcessService] providers: [ActivitiProcessService]

View File

@ -24,8 +24,8 @@ import { Observable, Observer } from 'rxjs/Rx';
declare let componentHandler: any; declare let componentHandler: any;
@Component({ @Component({
moduleId: module.id,
selector: 'activiti-process-instance-filters', selector: 'activiti-process-instance-filters',
moduleId: module.id,
templateUrl: './activiti-filters.component.html', templateUrl: './activiti-filters.component.html',
styleUrls: ['activiti-filters.component.css'] styleUrls: ['activiti-filters.component.css']
}) })

View File

@ -26,8 +26,8 @@ import { ProcessInstance } from '../models/process-instance.model';
declare let componentHandler: any; declare let componentHandler: any;
@Component({ @Component({
moduleId: module.id,
selector: 'activiti-process-instance-details', selector: 'activiti-process-instance-details',
moduleId: module.id,
templateUrl: './activiti-process-instance-details.component.html', templateUrl: './activiti-process-instance-details.component.html',
styleUrls: ['./activiti-process-instance-details.component.css'] styleUrls: ['./activiti-process-instance-details.component.css']
}) })

View File

@ -24,8 +24,8 @@ import { DatePipe } from '@angular/common';
declare let componentHandler: any; declare let componentHandler: any;
@Component({ @Component({
moduleId: module.id,
selector: 'activiti-process-instance-header', selector: 'activiti-process-instance-header',
moduleId: module.id,
templateUrl: './activiti-process-instance-header.component.html', templateUrl: './activiti-process-instance-header.component.html',
styleUrls: ['./activiti-process-instance-header.component.css'] styleUrls: ['./activiti-process-instance-header.component.css']
}) })

View File

@ -27,8 +27,8 @@ declare let componentHandler: any;
declare let dialogPolyfill: any; declare let dialogPolyfill: any;
@Component({ @Component({
moduleId: module.id,
selector: 'activiti-process-instance-tasks', selector: 'activiti-process-instance-tasks',
moduleId: module.id,
templateUrl: './activiti-process-instance-tasks.component.html', templateUrl: './activiti-process-instance-tasks.component.html',
styleUrls: ['./activiti-process-instance-tasks.component.css'] styleUrls: ['./activiti-process-instance-tasks.component.css']
}) })

View File

@ -24,8 +24,8 @@ import { ProcessInstance } from '../models/process-instance.model';
import { ActivitiProcessService } from '../services/activiti-process.service'; import { ActivitiProcessService } from '../services/activiti-process.service';
@Component({ @Component({
moduleId: module.id,
selector: 'activiti-process-instance-list', selector: 'activiti-process-instance-list',
moduleId: module.id,
styleUrls: [ './activiti-processlist.component.css' ], styleUrls: [ './activiti-processlist.component.css' ],
templateUrl: './activiti-processlist.component.html' templateUrl: './activiti-processlist.component.html'
}) })

View File

@ -24,8 +24,8 @@ declare let componentHandler: any;
declare let dialogPolyfill: any; declare let dialogPolyfill: any;
@Component({ @Component({
moduleId: module.id,
selector: 'activiti-start-process-dialog', selector: 'activiti-start-process-dialog',
moduleId: module.id,
templateUrl: './activiti-start-process-dialog.component.html', templateUrl: './activiti-start-process-dialog.component.html',
styleUrls: ['./activiti-start-process-dialog.component.css'] styleUrls: ['./activiti-start-process-dialog.component.css']
}) })

View File

@ -26,8 +26,8 @@ declare let componentHandler: any;
declare let dialogPolyfill: any; declare let dialogPolyfill: any;
@Component({ @Component({
moduleId: module.id,
selector: 'activiti-start-process', selector: 'activiti-start-process',
moduleId: module.id,
templateUrl: './activiti-start-process.component.html', templateUrl: './activiti-start-process.component.html',
styleUrls: ['./activiti-start-process.component.css'] styleUrls: ['./activiti-start-process.component.css']
}) })

View File

@ -24,6 +24,7 @@ import {
import { DocumentList } from '../document-list'; import { DocumentList } from '../document-list';
@Component({ @Component({
moduleId: module.id,
selector: 'alfresco-document-list-breadcrumb', selector: 'alfresco-document-list-breadcrumb',
templateUrl: './breadcrumb.component.html', templateUrl: './breadcrumb.component.html',
styleUrls: ['./breadcrumb.component.css'] styleUrls: ['./breadcrumb.component.css']

View File

@ -134,11 +134,14 @@ describe('AlfrescoSearchAutocompleteComponent', () => {
spyOn(thumbnailService, 'getMimeTypeIcon').and.returnValue('fake-type-icon.svg'); spyOn(thumbnailService, 'getMimeTypeIcon').and.returnValue('fake-type-icon.svg');
spyOn(thumbnailService, 'getMimeTypeKey').and.returnValue('FAKE_TYPE'); spyOn(thumbnailService, 'getMimeTypeKey').and.returnValue('FAKE_TYPE');
let path = 'http://localhost/fake-type-icon.svg';
spyOn(component, 'resolveIconPath').and.returnValue(path);
component.resultsLoad.subscribe(() => { component.resultsLoad.subscribe(() => {
fixture.detectChanges(); fixture.detectChanges();
let imgEl = <any> element.querySelector('#result_row_0 img'); let imgEl = <any> element.querySelector('#result_row_0 img');
expect(imgEl).not.toBeNull(); expect(imgEl).not.toBeNull();
expect(imgEl.src).toBe('../img/fake-type-icon.svg'); expect(imgEl.src).toBe(path);
expect(imgEl.alt).toBe('SEARCH.ICONS.FAKE_TYPE'); expect(imgEl.alt).toBe('SEARCH.ICONS.FAKE_TYPE');
done(); done();
}); });

View File

@ -124,10 +124,25 @@ export class AlfrescoSearchAutocompleteComponent implements OnInit, OnChanges {
getMimeTypeIcon(node: any): string { getMimeTypeIcon(node: any): string {
if (node.entry.content && node.entry.content.mimeType) { if (node.entry.content && node.entry.content.mimeType) {
let icon = this.alfrescoThumbnailService.getMimeTypeIcon(node.entry.content.mimeType); let icon = this.alfrescoThumbnailService.getMimeTypeIcon(node.entry.content.mimeType);
return require(`./../img/${icon}`); return this.resolveIconPath(icon);
} }
} }
resolveIconPath(icon: string): string {
let result = null;
try {
// webpack
result = require(`./../img/${icon}`);
} catch (e) {
// system.js
if (module && module.id) {
let baseComponentPath = module.id.replace('/components/alfresco-search-autocomplete.component.js', '');
result = `${baseComponentPath}/img/${icon}`;
}
}
return result;
}
/** /**
* Gets thumbnail message key for the given document node, which can be used to look up alt text * Gets thumbnail message key for the given document node, which can be used to look up alt text
* @param node Node to get URL for. * @param node Node to get URL for.

View File

@ -91,10 +91,25 @@ export class AlfrescoSearchComponent implements OnChanges, OnInit {
getMimeTypeIcon(node: any): string { getMimeTypeIcon(node: any): string {
if (node.entry.content && node.entry.content.mimeType) { if (node.entry.content && node.entry.content.mimeType) {
let icon = this._alfrescoThumbnailService.getMimeTypeIcon(node.entry.content.mimeType); let icon = this._alfrescoThumbnailService.getMimeTypeIcon(node.entry.content.mimeType);
return require(`./../img/${icon}`); return this.resolveIconPath(icon);
} }
} }
private resolveIconPath(icon: string): string {
let result = null;
try {
// webpack
result = require(`./../img/${icon}`);
} catch (e) {
// system.js
if (module && module.id) {
let baseComponentPath = module.id.replace('/components/alfresco-search.component.js', '');
result = `${baseComponentPath}/img/${icon}`;
}
}
return result;
}
/** /**
* Gets thumbnail message key for the given document node, which can be used to look up alt text * Gets thumbnail message key for the given document node, which can be used to look up alt text
* @param node Node to get URL for. * @param node Node to get URL for.