mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
[ADF-4384] improve recent files query (#4585)
* improve recent files query * remove duplicate filter
This commit is contained in:
@@ -51,23 +51,55 @@ export class CustomResourcesService {
|
|||||||
* Gets files recently accessed by a user.
|
* Gets files recently accessed by a user.
|
||||||
* @param personId ID of the user
|
* @param personId ID of the user
|
||||||
* @param pagination Specifies how to paginate the results
|
* @param pagination Specifies how to paginate the results
|
||||||
|
* @param filters Specifies additional filters to apply (joined with **AND**)
|
||||||
* @returns List of nodes for the recently used files
|
* @returns List of nodes for the recently used files
|
||||||
*/
|
*/
|
||||||
getRecentFiles(personId: string, pagination: PaginationModel): Observable<NodePaging> {
|
getRecentFiles(personId: string, pagination: PaginationModel, filters?: string[]): Observable<NodePaging> {
|
||||||
|
const defaultFilter = [
|
||||||
|
'TYPE:"content"',
|
||||||
|
'-PNAME:"0/wiki"',
|
||||||
|
'-TYPE:"app:filelink"',
|
||||||
|
'-TYPE:"cm:thumbnail"',
|
||||||
|
'-TYPE:"cm:failedThumbnail"',
|
||||||
|
'-TYPE:"cm:rating"',
|
||||||
|
'-TYPE:"dl:dataList"',
|
||||||
|
'-TYPE:"dl:todoList"',
|
||||||
|
'-TYPE:"dl:issue"',
|
||||||
|
'-TYPE:"dl:contact"',
|
||||||
|
'-TYPE:"dl:eventAgenda"',
|
||||||
|
'-TYPE:"dl:event"',
|
||||||
|
'-TYPE:"dl:task"',
|
||||||
|
'-TYPE:"dl:simpletask"',
|
||||||
|
'-TYPE:"dl:meetingAgenda"',
|
||||||
|
'-TYPE:"dl:location"',
|
||||||
|
'-TYPE:"fm:topic"',
|
||||||
|
'-TYPE:"fm:post"',
|
||||||
|
'-TYPE:"ia:calendarEvent"',
|
||||||
|
'-TYPE:"lnk:link"'
|
||||||
|
];
|
||||||
|
|
||||||
return new Observable((observer) => {
|
return new Observable((observer) => {
|
||||||
this.apiService.peopleApi.getPerson(personId)
|
this.apiService.peopleApi.getPerson(personId)
|
||||||
.then((person: PersonEntry) => {
|
.then((person: PersonEntry) => {
|
||||||
const username = person.entry.id;
|
const username = person.entry.id;
|
||||||
|
const filterQueries = [
|
||||||
|
{ query: `cm:modified:[NOW/DAY-30DAYS TO NOW/DAY+1DAY]` },
|
||||||
|
{ query: `cm:modifier:${username} OR cm:creator:${username}` },
|
||||||
|
{ query: defaultFilter.join(' AND ') }
|
||||||
|
];
|
||||||
|
|
||||||
|
if (filters && filters.length > 0) {
|
||||||
|
filterQueries.push({
|
||||||
|
query: filters.join()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const query: SearchRequest = new SearchRequest({
|
const query: SearchRequest = new SearchRequest({
|
||||||
query: {
|
query: {
|
||||||
query: '*',
|
query: '*',
|
||||||
language: 'afts'
|
language: 'afts'
|
||||||
},
|
},
|
||||||
filterQueries: [
|
filterQueries,
|
||||||
{ query: `cm:modified:[NOW/DAY-30DAYS TO NOW/DAY+1DAY]` },
|
|
||||||
{ query: `cm:modifier:${username} OR cm:creator:${username}` },
|
|
||||||
{ query: `TYPE:"content" AND -TYPE:"app:filelink" AND -TYPE:"fm:post"` }
|
|
||||||
],
|
|
||||||
include: ['path', 'properties', 'allowableOperations'],
|
include: ['path', 'properties', 'allowableOperations'],
|
||||||
sort: [{
|
sort: [{
|
||||||
type: 'FIELD',
|
type: 'FIELD',
|
||||||
|
Reference in New Issue
Block a user