mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ADF-5161] Add query token injection for search query builder (#5799)
* [ADF-5161] Add query token injection for search query builder * Improve logic
This commit is contained in:
@@ -17,15 +17,26 @@
|
||||
|
||||
import { QueryBody } from '@alfresco/js-api';
|
||||
import { SearchConfigurationInterface } from '@alfresco/adf-core';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Injectable, Optional, Inject, InjectionToken } from '@angular/core';
|
||||
|
||||
export const SEARCH_QUERY_TOKEN = new InjectionToken<QueryProvider>('Alfresco Search Query Token');
|
||||
export interface QueryProvider {
|
||||
query: string;
|
||||
}
|
||||
|
||||
@Injectable()
|
||||
export class SearchPermissionConfigurationService implements SearchConfigurationInterface {
|
||||
|
||||
constructor(
|
||||
@Optional()
|
||||
@Inject(SEARCH_QUERY_TOKEN)
|
||||
private queryProvider: QueryProvider) {
|
||||
}
|
||||
|
||||
public generateQueryBody(searchTerm: string, maxResults: number, skipCount: number): QueryBody {
|
||||
const defaultQueryBody: QueryBody = {
|
||||
query: {
|
||||
query: searchTerm ? `authorityName:*${searchTerm}* OR userName:*${searchTerm}*` : searchTerm
|
||||
query: this.getQuery(searchTerm)
|
||||
},
|
||||
include: ['properties', 'aspectNames'],
|
||||
paging: {
|
||||
@@ -39,4 +50,15 @@ export class SearchPermissionConfigurationService implements SearchConfiguration
|
||||
|
||||
return defaultQueryBody;
|
||||
}
|
||||
|
||||
private getQuery(searchTerm: string) {
|
||||
let query: string;
|
||||
if (this.queryProvider && this.queryProvider.query) {
|
||||
query = this.queryProvider.query.replace(
|
||||
new RegExp(/\${([^}]+)}/g), searchTerm);
|
||||
} else {
|
||||
query = `authorityName:*${searchTerm}* OR userName:*${searchTerm}*`;
|
||||
}
|
||||
return query;
|
||||
}
|
||||
}
|
||||
|
@@ -25,5 +25,6 @@ export * from './components/add-permission/add-permission-dialog-data.interface'
|
||||
export * from './components/add-permission/add-permission-panel.component';
|
||||
export * from './components/add-permission/add-permission.component';
|
||||
export * from './components/add-permission/add-permission-dialog.component';
|
||||
export * from './components/add-permission/search-config-permission.service';
|
||||
|
||||
export * from './permission-manager.module';
|
||||
|
Reference in New Issue
Block a user