2019-02-12 01:18:43 +00:00

176 lines
4.0 KiB
TypeScript

/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { Component, ViewChild } from '@angular/core';
import { SearchComponent } from '../search/components/search.component';
import { QueryBody } from '@alfresco/js-api';
const entryItem = {
entry: {
id: '123',
name: 'MyDoc',
isFile : true,
content: {
mimeType: 'text/plain'
},
createdByUser: {
displayName: 'John Doe'
},
modifiedByUser: {
displayName: 'John Doe'
}
}
};
const entryDifferentItem = {
entry: {
id: '999',
name: 'TEST_DOC',
isFile : true,
content: {
mimeType: 'text/plain'
},
createdByUser: {
displayName: 'John TEST'
},
modifiedByUser: {
displayName: 'John TEST'
}
}
};
export let result = {
list: {
entries: [
entryItem
]
}
};
export let differentResult = {
list: {
entries: [
entryDifferentItem
]
}
};
export let results = {
list: {
entries: [
entryItem,
entryItem,
entryItem
]
}
};
export let folderResult = {
list: {
entries: [
{
entry: {
id: '123',
name: 'MyFolder',
isFile : false,
isFolder : true,
createdByUser: {
displayName: 'John Doe'
},
modifiedByUser: {
displayName: 'John Doe'
}
}
}
]
}
};
export let noResult = {
list: {
entries: []
}
};
export let errorJson = {
error: {
errorKey: 'Search failed',
statusCode: 400,
briefSummary: '08220082 search failed',
stackTrace: 'For security reasons the stack trace is no longer displayed, but the property is kept for previous versions.',
descriptionURL: 'https://api-explorer.alfresco.com'
}
};
@Component({
template: `
<adf-search [searchTerm]="searchedWord" [maxResults]="maxResults"
(error)="showSearchResult('ERROR')"
(success)="showSearchResult('success')" #search>
<ng-template let-data>
<ul id="autocomplete-search-result-list">
<li *ngFor="let item of data?.list?.entries; let idx = index" (click)="elementClicked(item)">
<div id="result_option_{{idx}}">
<span>{{ item?.entry.name }}</span>
</div>
</li>
</ul>
</ng-template>
</adf-search>
<span id="component-result-message">{{message}}</span>
`
})
export class SimpleSearchTestComponent {
@ViewChild('search')
search: SearchComponent;
message: string = '';
searchedWord = '';
maxResults: number = 5;
searchNode: QueryBody;
constructor() {
}
showSearchResult(event: any) {
this.message = event;
}
elementClicked(event: any) {
this.message = 'element clicked';
}
setSearchWordTo(str: string) {
this.searchedWord = str;
}
setSearchNodeTo(searchNode: QueryBody) {
this.searchNode = searchNode;
}
changeMaxResultTo(newMax: number) {
this.maxResults = newMax;
}
forceHidePanel() {
this.search.hidePanel();
}
}