mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ACA-3312] Add user-filter util class (#6098)
* Add user-filter api * typo * Add user-filters API * Add isFilterNotHighlighted method * Add isProcessFilterNotHighlighted methods * Add process-list constructor * Add isTasksFilterNotHighlighted methods and methods for custom task filter * Add getDataTable for process- list * Simplify the Logger.error * typo
This commit is contained in:
@@ -20,3 +20,4 @@ export * from './integration.service';
|
||||
export * from './models.service';
|
||||
export * from './process.util';
|
||||
export * from './task.util';
|
||||
export * from './user-filters.util';
|
||||
|
@@ -0,0 +1,83 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2019 Alfresco Software, Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Logger } from '../../core/utils/logger';
|
||||
import { ApiService } from '../../core/actions/api.service';
|
||||
import { UserFilterOrderRepresentation, UserTaskFilterRepresentation } from '@alfresco/js-api';
|
||||
|
||||
export class UserFiltersUtil {
|
||||
|
||||
apiService: ApiService;
|
||||
|
||||
constructor(apiService: ApiService) {
|
||||
this.apiService = apiService;
|
||||
}
|
||||
|
||||
async createATaskFilter(newTaskFilterName: string, sortType?: string, stateType?: string, assignmentType?: string, iconName?: string, appId?: number): Promise<any> {
|
||||
try {
|
||||
return this.apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(new UserTaskFilterRepresentation(
|
||||
{appId: appId, name: newTaskFilterName, icon: iconName, filter: {sort: sortType, state: stateType, assignment: assignmentType}}));
|
||||
} catch (error) {
|
||||
Logger.error('Create Task Filter - Service error, Response: ', error);
|
||||
}
|
||||
}
|
||||
|
||||
async orderUserTaskFilters(filtersIdOrder: number[], appId?: number): Promise<any> {
|
||||
try {
|
||||
return this.apiService.getInstance().activiti.userFiltersApi.orderUserTaskFilters(new UserFilterOrderRepresentation({appId: appId, order: filtersIdOrder}));
|
||||
} catch (error) {
|
||||
Logger.error('Re-order the list of user task filters - Service error, Response: ', error);
|
||||
}
|
||||
}
|
||||
|
||||
async getUserTaskFilters(appId?: number): Promise<any> {
|
||||
try {
|
||||
return this.apiService.getInstance().activiti.userFiltersApi.getUserTaskFilters({appId: appId});
|
||||
} catch (error) {
|
||||
Logger.error('List task filters - Service error, Response: ', error);
|
||||
}
|
||||
}
|
||||
|
||||
async getUserTaskFilterByName(taskFilterName: string, appId?: number): Promise<any> {
|
||||
try {
|
||||
const taskFiltersList = this.apiService.getInstance().activiti.userFiltersApi.getUserTaskFilters({appId: appId});
|
||||
const chosenTaskFilter = (await taskFiltersList).data.find( (taskFilter) => {
|
||||
return taskFilter.name === taskFilterName;
|
||||
});
|
||||
return chosenTaskFilter;
|
||||
} catch (error) {
|
||||
Logger.error('Get user task filters by name - Service error, Response: ', error);
|
||||
}
|
||||
}
|
||||
|
||||
async deleteUserTaskFilter(filterId: number): Promise<any> {
|
||||
try {
|
||||
return this.apiService.getInstance().activiti.userFiltersApi.deleteUserTaskFilter(filterId);
|
||||
} catch (error) {
|
||||
Logger.error('Delete a task filter - Service error, Response: ', error);
|
||||
}
|
||||
}
|
||||
|
||||
async updateUserTaskFilter(filterId: number, updatedTaskFilterName?: string, updatedSortType?: string, updatedStateType?: string, updatedAssignmentType?: string, updatedIconName?: string, appId?: number): Promise<any> {
|
||||
try {
|
||||
return this.apiService.getInstance().activiti.userFiltersApi.updateUserTaskFilter(filterId, new UserTaskFilterRepresentation(
|
||||
{appId: appId, name: updatedTaskFilterName, icon: updatedIconName, filter: {sort: updatedSortType, state: updatedStateType, assignment: updatedAssignmentType}}));
|
||||
} catch (error) {
|
||||
Logger.error('Update a task filter - Service error, Response: ', error);
|
||||
}
|
||||
}
|
||||
}
|
@@ -34,9 +34,19 @@ export class FiltersPage {
|
||||
}
|
||||
|
||||
async isFilterHighlighted(filterName: string): Promise<boolean> {
|
||||
const processNameHighlighted = element(by.css(`.adf-active [data-automation-id='${filterName}_filter']`));
|
||||
const filterNameHighlighted = element(by.css(`.adf-active [data-automation-id='${filterName}_filter']`));
|
||||
try {
|
||||
await BrowserVisibility.waitUntilElementIsVisible(processNameHighlighted);
|
||||
await BrowserVisibility.waitUntilElementIsVisible(filterNameHighlighted);
|
||||
return true;
|
||||
} catch (error) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
async isFilterNotHighlighted(filterName: string): Promise<boolean> {
|
||||
const filterNameHighlighted = element(by.css(`.adf-active [data-automation-id='${filterName}_filter']`));
|
||||
try {
|
||||
await BrowserVisibility.waitUntilElementIsNotVisible(filterNameHighlighted);
|
||||
return true;
|
||||
} catch (error) {
|
||||
return false;
|
||||
|
@@ -48,14 +48,26 @@ export class ProcessFiltersPage {
|
||||
return this.filtersPage.isFilterHighlighted(this.defaultProcessFilters.running);
|
||||
}
|
||||
|
||||
async isRunningFilterNotHighlighted(): Promise<boolean> {
|
||||
return this.filtersPage.isFilterNotHighlighted(this.defaultProcessFilters.running);
|
||||
}
|
||||
|
||||
async isCompletedFilterHighlighted(): Promise<boolean> {
|
||||
return this.filtersPage.isFilterHighlighted(this.defaultProcessFilters.completed);
|
||||
}
|
||||
|
||||
async isCompletedFilterNotHighlighted(): Promise<boolean> {
|
||||
return this.filtersPage.isFilterNotHighlighted(this.defaultProcessFilters.completed);
|
||||
}
|
||||
|
||||
async isAllFilterHighlighted(): Promise<boolean> {
|
||||
return this.filtersPage.isFilterHighlighted(this.defaultProcessFilters.all);
|
||||
}
|
||||
|
||||
async isAllFilterNotHighlighted(): Promise<boolean> {
|
||||
return this.filtersPage.isFilterNotHighlighted(this.defaultProcessFilters.all);
|
||||
}
|
||||
|
||||
async isRunningFilterDisplayed(): Promise<boolean> {
|
||||
return this.filtersPage.isFilterDisplayed(this.defaultProcessFilters.running);
|
||||
}
|
||||
|
@@ -18,13 +18,26 @@
|
||||
import { BrowserVisibility } from '../../core/utils/browser-visibility';
|
||||
import { DataTableComponentPage } from '../../core/pages/data-table-component.page';
|
||||
import { BrowserActions } from '../../core/utils/browser-actions';
|
||||
import { element, by } from 'protractor';
|
||||
import { element, by, ElementFinder } from 'protractor';
|
||||
|
||||
export class ProcessListPage {
|
||||
rootElement: ElementFinder;
|
||||
dataTable: DataTableComponentPage;
|
||||
processListEmptyTitle: ElementFinder;
|
||||
|
||||
processListEmptyTitle = element(by.css('.adf-empty-content__title'));
|
||||
processInstanceList = element(by.css('adf-process-instance-list'));
|
||||
dataTable = new DataTableComponentPage(this.processInstanceList);
|
||||
constructor(
|
||||
rootElement = element.all(by.css('adf-process-instance-list')).first()
|
||||
) {
|
||||
this.rootElement = rootElement;
|
||||
this.dataTable = new DataTableComponentPage(this.rootElement);
|
||||
this.processListEmptyTitle = this.rootElement.element(
|
||||
by.css('.adf-empty-content__title')
|
||||
);
|
||||
}
|
||||
|
||||
getDataTable() {
|
||||
return this.dataTable;
|
||||
}
|
||||
|
||||
getDisplayedProcessListEmptyTitle(): Promise<string> {
|
||||
return BrowserActions.getText(this.processListEmptyTitle);
|
||||
@@ -36,7 +49,7 @@ export class ProcessListPage {
|
||||
|
||||
async isProcessListDisplayed(): Promise<boolean> {
|
||||
try {
|
||||
await BrowserVisibility.waitUntilElementIsVisible(this.processInstanceList);
|
||||
await BrowserVisibility.waitUntilElementIsVisible(this.rootElement);
|
||||
return true;
|
||||
} catch (error) {
|
||||
return false;
|
||||
|
@@ -50,22 +50,50 @@ export class TaskFiltersPage {
|
||||
await this.filtersPage.clickFilterButton(this.involvedTask);
|
||||
}
|
||||
|
||||
async clickCustomFilterButton(customFilterName): Promise<void> {
|
||||
await this.filtersPage.clickFilterButton(element(by.css(`[data-automation-id="${customFilterName}_filter"]`)));
|
||||
}
|
||||
|
||||
async isMyTasksFilterHighlighted(): Promise<boolean> {
|
||||
return this.filtersPage.isFilterHighlighted(this.defaultTaskFilters.myTasks);
|
||||
}
|
||||
|
||||
async isMyTasksFilterNotHighlighted(): Promise<boolean> {
|
||||
return this.filtersPage.isFilterNotHighlighted(this.defaultTaskFilters.myTasks);
|
||||
}
|
||||
|
||||
async isQueuedFilterHighlighted(): Promise<boolean> {
|
||||
return this.filtersPage.isFilterHighlighted(this.defaultTaskFilters.queuedTasks);
|
||||
}
|
||||
|
||||
async isQueuedFilterNotHighlighted(): Promise<boolean> {
|
||||
return this.filtersPage.isFilterNotHighlighted(this.defaultTaskFilters.queuedTasks);
|
||||
}
|
||||
|
||||
async isCompletedFilterHighlighted(): Promise<boolean> {
|
||||
return this.filtersPage.isFilterHighlighted(this.defaultTaskFilters.completedTasks);
|
||||
}
|
||||
|
||||
async isCompletedFilterNotHighlighted(): Promise<boolean> {
|
||||
return this.filtersPage.isFilterNotHighlighted(this.defaultTaskFilters.completedTasks);
|
||||
}
|
||||
|
||||
async isInvolvedFilterHighlighted(): Promise<boolean> {
|
||||
return this.filtersPage.isFilterHighlighted(this.defaultTaskFilters.involvedTasks);
|
||||
}
|
||||
|
||||
async isInvolvedFilterNotHighlighted(): Promise<boolean> {
|
||||
return this.filtersPage.isFilterNotHighlighted(this.defaultTaskFilters.involvedTasks);
|
||||
}
|
||||
|
||||
async isCustomFilterHighlighted(customFilterName): Promise<boolean> {
|
||||
return this.filtersPage.isFilterHighlighted(`${customFilterName}`);
|
||||
}
|
||||
|
||||
async isCustomFilterNotHighlighted(customFilterName): Promise<boolean> {
|
||||
return this.filtersPage.isFilterNotHighlighted(`${customFilterName}`);
|
||||
}
|
||||
|
||||
async isMyTasksFilterDisplayed(): Promise<boolean> {
|
||||
return this.filtersPage.isFilterDisplayed(this.defaultTaskFilters.myTasks);
|
||||
}
|
||||
@@ -81,4 +109,8 @@ export class TaskFiltersPage {
|
||||
async isInvolvedFilterDisplayed(): Promise<boolean> {
|
||||
return this.filtersPage.isFilterDisplayed(this.defaultTaskFilters.involvedTasks);
|
||||
}
|
||||
|
||||
async isCustomFilterDisplayed(customFilterName): Promise<boolean> {
|
||||
return this.filtersPage.isFilterDisplayed(customFilterName);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user