[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:
davidcanonieto
2020-06-20 10:59:48 +01:00
committed by GitHub
parent 8ba36ea21c
commit 2baae61cc5
2 changed files with 25 additions and 2 deletions

View File

@@ -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;
}
}

View File

@@ -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';