From a7d450c5839614dc22bd9ca3dbca92b60fbe70cf Mon Sep 17 00:00:00 2001 From: Will Abson Date: Mon, 27 Jun 2016 17:03:09 +0100 Subject: [PATCH 1/3] Load viewer on search results click Refs #283 --- .../components/search/search.component.html | 10 +++++-- .../app/components/search/search.component.ts | 29 +++++++++++++++---- .../components/alfresco-search.component.html | 2 +- .../components/alfresco-search.component.ts | 18 +++++++++++- 4 files changed, 49 insertions(+), 10 deletions(-) diff --git a/demo-shell-ng2/app/components/search/search.component.html b/demo-shell-ng2/app/components/search/search.component.html index 8adba65974..93568e6b8d 100644 --- a/demo-shell-ng2/app/components/search/search.component.html +++ b/demo-shell-ng2/app/components/search/search.component.html @@ -1,4 +1,8 @@ -
+

Search results

- -
\ No newline at end of file + +
+ + +
+
diff --git a/demo-shell-ng2/app/components/search/search.component.ts b/demo-shell-ng2/app/components/search/search.component.ts index 4a8bf72da3..77067b5ff6 100644 --- a/demo-shell-ng2/app/components/search/search.component.ts +++ b/demo-shell-ng2/app/components/search/search.component.ts @@ -16,7 +16,9 @@ */ import { Component } from '@angular/core'; +import { AlfrescoContentService } from 'ng2-alfresco-core'; import { ALFRESCO_SEARCH_DIRECTIVES } from 'ng2-alfresco-search'; +import { VIEWERCOMPONENT } from 'ng2-alfresco-viewer'; declare let __moduleName: string; @@ -25,17 +27,34 @@ declare let __moduleName: string; selector: 'search-component', templateUrl: './search.component.html', styles: [` - :host div { - padding: 0 20px; + :host div.search-results-container { + padding: 0 20px 20px 20px; } :host h1 { font-size: 22px; } + :host tbody tr { + cursor: pointer; + } `], - directives: [ ALFRESCO_SEARCH_DIRECTIVES ] + directives: [ ALFRESCO_SEARCH_DIRECTIVES, VIEWERCOMPONENT ] }) export class SearchComponent { - constructor() { - console.log('SearchComponent constructor'); + + previewContentUrl: string; + previewName: string; + previewMimeType: string; + previewActive: boolean = false; + + constructor(public contentService: AlfrescoContentService) { + } + + onFileClicked(event) { + if (event.value.entry.isFile) { + this.previewName = event.value.entry.name; + this.previewMimeType = event.value.entry.content.mimeType; + this.previewContentUrl = this.contentService.getContentUrl(event.value); + this.previewActive = true; + } } } diff --git a/ng2-components/ng2-alfresco-search/src/components/alfresco-search.component.html b/ng2-components/ng2-alfresco-search/src/components/alfresco-search.component.html index 42797d84a7..622d0678ea 100644 --- a/ng2-components/ng2-alfresco-search/src/components/alfresco-search.component.html +++ b/ng2-components/ng2-alfresco-search/src/components/alfresco-search.component.html @@ -19,7 +19,7 @@ - + {{result.entry.name}} diff --git a/ng2-components/ng2-alfresco-search/src/components/alfresco-search.component.ts b/ng2-components/ng2-alfresco-search/src/components/alfresco-search.component.ts index 28ba3a2831..2c81a0ffbc 100644 --- a/ng2-components/ng2-alfresco-search/src/components/alfresco-search.component.ts +++ b/ng2-components/ng2-alfresco-search/src/components/alfresco-search.component.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { Component, Input, Optional, OnChanges, OnInit } from '@angular/core'; +import { Component, EventEmitter, Input, Output, Optional, OnChanges, OnInit } from '@angular/core'; import { RouteParams } from '@angular/router-deprecated'; import { AlfrescoSearchService } from './../services/alfresco-search.service'; import { AlfrescoThumbnailService } from './../services/alfresco-thumbnail.service'; @@ -38,6 +38,9 @@ export class AlfrescoSearchComponent implements OnChanges, OnInit { @Input() searchTerm: string = ''; + @Output() + preview: EventEmitter = new EventEmitter(); + results: any; errorMessage; @@ -100,4 +103,17 @@ export class AlfrescoSearchComponent implements OnChanges, OnInit { } } + onItemClick(node, event?: Event): void { + if (event) { + event.preventDefault(); + } + if (node && node.entry) { + if (node.entry.isFile) { + this.preview.emit({ + value: node + }); + } + } + } + } From 52209f06f9692b4f964f5ad744515d26df929ef8 Mon Sep 17 00:00:00 2001 From: Will Abson Date: Mon, 27 Jun 2016 17:12:42 +0100 Subject: [PATCH 2/3] Remove console.log() statements from search service Refs #283 --- .../ng2-alfresco-search/src/services/alfresco-search.service.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/ng2-components/ng2-alfresco-search/src/services/alfresco-search.service.ts b/ng2-components/ng2-alfresco-search/src/services/alfresco-search.service.ts index c06f58ca69..2e09bd5b6f 100644 --- a/ng2-components/ng2-alfresco-search/src/services/alfresco-search.service.ts +++ b/ng2-components/ng2-alfresco-search/src/services/alfresco-search.service.ts @@ -59,7 +59,6 @@ export class AlfrescoSearchService { public getLiveSearchResults(term: string): Observable { return Observable.fromPromise(this.getSearchNodesPromise(term)) .map(res => res) - .do(data => console.log('Search data', data)) // eyeball results in the console .catch(this.handleError); } From a9a416a907f04aa602a591b63289f5d1049b063f Mon Sep 17 00:00:00 2001 From: Will Abson Date: Mon, 27 Jun 2016 17:49:34 +0100 Subject: [PATCH 3/3] Add test for preview event Refs #283 --- .../alfresco-search.component.spec.ts | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/ng2-components/ng2-alfresco-search/src/components/alfresco-search.component.spec.ts b/ng2-components/ng2-alfresco-search/src/components/alfresco-search.component.spec.ts index 8486802bd1..7699fab4cf 100644 --- a/ng2-components/ng2-alfresco-search/src/components/alfresco-search.component.spec.ts +++ b/ng2-components/ng2-alfresco-search/src/components/alfresco-search.component.spec.ts @@ -109,4 +109,35 @@ describe('AlfrescoSearchComponent', () => { }); + describe('search result actions', () => { + + it('should emit preview when file item clicked', + inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { + return tcb + .overrideProviders(AlfrescoSearchComponent, [ + { provide: AlfrescoSearchService, useClass: SearchServiceMock } + ]) + .createAsync(AlfrescoSearchComponent) + .then((fixture) => { + let componentInstance = fixture.componentInstance; + componentInstance.results = [{ + entry: { + id: '123', + name: 'MyDoc', + content: { + mimetype: 'text/plain' + }, + isFile: true + } + }]; + fixture.detectChanges(componentInstance.results[0]); + componentInstance.preview.subscribe(e => { + expect(e.value).toBe(componentInstance.results[0]); + }); + componentInstance.onItemClick(); + + }); + })); + }); + });