[ACA-2077] viewer - filter recent files (#866)

* [ACA-2077] get filtered recent files from viewer

* [ACA-2077] use same filters
This commit is contained in:
Suzana Dirla 2018-12-11 12:35:32 +02:00 committed by Denys Vuika
parent 9c5bc74fbe
commit caa44b1fc2
2 changed files with 50 additions and 47 deletions

View File

@ -47,6 +47,8 @@ import { ContentApiService } from '../../services/content-api.service';
import { AppExtensionService } from '../../extensions/extension.service'; import { AppExtensionService } from '../../extensions/extension.service';
import { ContentManagementService } from '../../services/content-management.service'; import { ContentManagementService } from '../../services/content-management.service';
import { ContentActionRef, ViewerExtensionRef } from '@alfresco/adf-extensions'; import { ContentActionRef, ViewerExtensionRef } from '@alfresco/adf-extensions';
import { SearchRequest } from 'alfresco-js-api';
import { AppDataService } from '../../services/data.service';
@Component({ @Component({
selector: 'app-preview', selector: 'app-preview',
@ -79,6 +81,7 @@ export class PreviewComponent extends PageComponent
constructor( constructor(
private contentApi: ContentApiService, private contentApi: ContentApiService,
private preferences: UserPreferencesService, private preferences: UserPreferencesService,
private appDataService: AppDataService,
private route: ActivatedRoute, private route: ActivatedRoute,
private router: Router, private router: Router,
store: Store<AppStore>, store: Store<AppStore>,
@ -336,29 +339,29 @@ export class PreviewComponent extends PageComponent
const sortingDirection = const sortingDirection =
this.preferences.get('recent-files.sorting.direction') || 'desc'; this.preferences.get('recent-files.sorting.direction') || 'desc';
const nodes = await this.contentApi const query: SearchRequest = {
.search({ query: {
query: { query: '*',
query: '*', language: 'afts'
language: 'afts' },
}, filterQueries: [
filterQueries: [ { query: `cm:modified:[NOW/DAY-30DAYS TO NOW/DAY+1DAY]` },
{ query: `cm:modified:[NOW/DAY-30DAYS TO NOW/DAY+1DAY]` }, { query: `cm:modifier:${username} OR cm:creator:${username}` },
{ query: `cm:modifier:${username} OR cm:creator:${username}` }, {
{ query: this.appDataService.recentFileFilters.join(' AND ')
query: `TYPE:"content" AND -TYPE:"app:filelink" AND -TYPE:"fm:post"` }
} ],
], fields: ['id', this.getRootField(sortingKey)],
fields: ['id', this.getRootField(sortingKey)], include: ['path', 'properties', 'allowableOperations'],
sort: [ sort: [
{ {
type: 'FIELD', type: 'FIELD',
field: 'cm:modified', field: 'cm:modified',
ascending: false ascending: false
} }
] ]
}) };
.toPromise(); const nodes = await this.contentApi.search(query).toPromise();
const entries = nodes.list.entries.map(obj => obj.entry); const entries = nodes.list.entries.map(obj => obj.entry);
this.sort(entries, sortingKey, sortingDirection); this.sort(entries, sortingKey, sortingDirection);

View File

@ -37,6 +37,29 @@ import { PersonEntry, SearchRequest, ResultSetPaging } from 'alfresco-js-api';
providedIn: 'root' providedIn: 'root'
}) })
export class AppDataService extends CustomResourcesService { export class AppDataService extends CustomResourcesService {
recentFileFilters = [
'TYPE:"content"',
'-PNAME:"0/wiki"',
'-TYPE:"app:filelink"',
'-TYPE:"fm:post"',
'-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:"lnk:link"'
];
constructor(private api: AlfrescoApiService, logService: LogService) { constructor(private api: AlfrescoApiService, logService: LogService) {
super(api, logService); super(api, logService);
} }
@ -45,29 +68,6 @@ export class AppDataService extends CustomResourcesService {
personId: string, personId: string,
pagination: PaginationModel pagination: PaginationModel
): Observable<ResultSetPaging> { ): Observable<ResultSetPaging> {
const filters = [
'TYPE:"content"',
'-PNAME:"0/wiki"',
'-TYPE:"app:filelink"',
'-TYPE:"fm:post"',
'-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:"lnk:link"'
];
return new Observable(observer => { return new Observable(observer => {
this.api.peopleApi.getPerson(personId).then( this.api.peopleApi.getPerson(personId).then(
(person: PersonEntry) => { (person: PersonEntry) => {
@ -81,7 +81,7 @@ export class AppDataService extends CustomResourcesService {
{ query: `cm:modified:[NOW/DAY-30DAYS TO NOW/DAY+1DAY]` }, { query: `cm:modified:[NOW/DAY-30DAYS TO NOW/DAY+1DAY]` },
{ query: `cm:modifier:${username} OR cm:creator:${username}` }, { query: `cm:modifier:${username} OR cm:creator:${username}` },
{ {
query: filters.join(' AND ') query: this.recentFileFilters.join(' AND ')
} }
], ],
include: ['path', 'properties', 'allowableOperations'], include: ['path', 'properties', 'allowableOperations'],