作者:Alfresc
项目:alfresco-ng2-component
/**
* Get process instance filter for given filter id
* @param appName Name of the target app
* @param id Id of the target process instance filter
* @returns Details of process filter
*/
getProcessFilterById(appName: string, id: string): ProcessFilterCloudModel {
const user: IdentityUserModel = this.identityUserService.getCurrentUserInfo();
const key = `process-filters-${appName}-${user.username}`;
let filters = [];
filters = JSON.parse(this.storage.getItem(key)) || [];
return filters.filter((filterTmp: ProcessFilterCloudModel) => id === filterTmp.id)[0];
}
作者:Alfresc
项目:alfresco-ng2-component
/**
* Adds a new process instance filter
* @param filter The new filter to add
* @returns Details of process filter just added
*/
addFilter(filter: ProcessFilterCloudModel) {
const user: IdentityUserModel = this.identityUserService.getCurrentUserInfo();
const key = `process-filters-${filter.appName}-${user.username}`;
const storedFilters = JSON.parse(this.storage.getItem(key) || '[]');
storedFilters.push(filter);
this.storage.setItem(key, JSON.stringify(storedFilters));
this.addFiltersToStream(storedFilters);
}
作者:Alfresc
项目:alfresco-ng2-component
/**
* Update process instance filter
* @param filter The new filter to update
*/
updateFilter(filter: ProcessFilterCloudModel) {
const user: IdentityUserModel = this.identityUserService.getCurrentUserInfo();
const key = `process-filters-${filter.appName}-${user.username}`;
if (key) {
let filters = JSON.parse(this.storage.getItem(key) || '[]');
let itemIndex = filters.findIndex((flt: ProcessFilterCloudModel) => flt.id === filter.id);
filters[itemIndex] = filter;
this.storage.setItem(key, JSON.stringify(filters));
this.addFiltersToStream(filters);
}
}
作者:Alfresc
项目:alfresco-ng2-component
/**
* Gets all process instance filters for a process app.
* @param appName Name of the target app
* @returns Observable of process filter details
*/
getProcessFilters(appName: string): Observable<ProcessFilterCloudModel[]> {
const user: IdentityUserModel = this.identityUserService.getCurrentUserInfo();
const key = `process-filters-${appName}-${user.username}`;
const filters = JSON.parse(this.storage.getItem(key) || '[]');
if (filters.length === 0) {
this.createDefaultFilters(appName);
} else {
this.addFiltersToStream(filters);
}
return this.filters$;
}
作者:Alfresc
项目:alfresco-ng2-component
/**
* Delete process instance filter
* @param filter The new filter to delete
*/
deleteFilter(filter: ProcessFilterCloudModel) {
const user: IdentityUserModel = this.identityUserService.getCurrentUserInfo();
const key = `process-filters-${filter.appName}-${user.username}`;
if (key) {
let filters = JSON.parse(this.storage.getItem(key) || '[]');
filters = filters.filter((item) => item.id !== filter.id);
this.storage.setItem(key, JSON.stringify(filters));
if (filters.length === 0) {
this.createDefaultFilters(filter.appName);
} else {
this.addFiltersToStream(filters);
}
}
}