2023-04-24 03:18:24 -07:00
|
|
|
import type { ExecutionStatus, IDataObject } from 'n8n-workflow';
|
|
|
|
import type { ExecutionFilterType, ExecutionsQueryFilter } from '@/Interface';
|
2023-03-23 10:07:46 -07:00
|
|
|
import { isEmpty } from '@/utils/typesUtils';
|
|
|
|
|
|
|
|
export const executionFilterToQueryFilter = (
|
|
|
|
filter: ExecutionFilterType,
|
|
|
|
): ExecutionsQueryFilter => {
|
|
|
|
const queryFilter: IDataObject = {};
|
|
|
|
if (filter.workflowId !== 'all') {
|
|
|
|
queryFilter.workflowId = filter.workflowId;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!isEmpty(filter.tags)) {
|
|
|
|
queryFilter.tags = filter.tags;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!isEmpty(filter.metadata)) {
|
|
|
|
queryFilter.metadata = filter.metadata;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!!filter.startDate) {
|
|
|
|
queryFilter.startedAfter = filter.startDate;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!!filter.endDate) {
|
|
|
|
queryFilter.startedBefore = filter.endDate;
|
|
|
|
}
|
|
|
|
|
|
|
|
switch (filter.status as ExecutionStatus) {
|
|
|
|
case 'waiting':
|
|
|
|
queryFilter.status = ['waiting'];
|
|
|
|
break;
|
|
|
|
case 'error':
|
2024-03-25 09:52:07 -07:00
|
|
|
queryFilter.status = ['crashed', 'error'];
|
2023-03-23 10:07:46 -07:00
|
|
|
break;
|
|
|
|
case 'success':
|
|
|
|
queryFilter.status = ['success'];
|
|
|
|
break;
|
|
|
|
case 'running':
|
2023-06-20 10:13:18 -07:00
|
|
|
queryFilter.status = ['running', 'new'];
|
|
|
|
break;
|
|
|
|
case 'canceled':
|
|
|
|
queryFilter.status = ['canceled'];
|
2023-03-23 10:07:46 -07:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
return queryFilter;
|
|
|
|
};
|
2023-10-16 21:09:30 -07:00
|
|
|
|
|
|
|
export const openPopUpWindow = (
|
|
|
|
url: string,
|
|
|
|
options?: { width?: number; height?: number; alwaysInNewTab?: boolean },
|
|
|
|
) => {
|
|
|
|
const windowWidth = window.innerWidth;
|
|
|
|
const smallScreen = windowWidth <= 800;
|
|
|
|
if (options?.alwaysInNewTab || smallScreen) {
|
|
|
|
window.open(url, '_blank');
|
|
|
|
} else {
|
|
|
|
const height = options?.width || 700;
|
|
|
|
const width = options?.height || window.innerHeight - 50;
|
|
|
|
const left = (window.innerWidth - height) / 2;
|
|
|
|
const top = 50;
|
|
|
|
const features = `width=${height},height=${width},left=${left},top=${top},resizable=yes,scrollbars=yes`;
|
|
|
|
|
|
|
|
window.open(url, '_blank', features);
|
|
|
|
}
|
|
|
|
};
|