[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:
Iulia Burcă
2020-09-25 11:30:27 +03:00
committed by GitHub
parent 0119c743ba
commit df2e53110c
6 changed files with 158 additions and 7 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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