mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-12 17:04:57 +00:00
176 lines
4.0 KiB
TypeScript
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();
|
|
}
|
|
|
|
}
|