mirror of
https://github.com/OneUptime/oneuptime.git
synced 2026-04-06 00:32:12 +02:00
fix workflow
This commit is contained in:
@@ -10,7 +10,7 @@ import { VeryLightGrey } from 'Common/Types/BrandColors';
|
|||||||
|
|
||||||
export enum ModalWidth {
|
export enum ModalWidth {
|
||||||
Normal,
|
Normal,
|
||||||
Large
|
Large,
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ComponentProps {
|
export interface ComponentProps {
|
||||||
@@ -28,7 +28,7 @@ export interface ComponentProps {
|
|||||||
isBodyLoading?: boolean | undefined;
|
isBodyLoading?: boolean | undefined;
|
||||||
icon?: IconProp | undefined;
|
icon?: IconProp | undefined;
|
||||||
iconType?: IconType | undefined;
|
iconType?: IconType | undefined;
|
||||||
modalWidth?: ModalWidth | undefined
|
modalWidth?: ModalWidth | undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
const Modal: FunctionComponent<ComponentProps> = (
|
const Modal: FunctionComponent<ComponentProps> = (
|
||||||
@@ -57,7 +57,14 @@ const Modal: FunctionComponent<ComponentProps> = (
|
|||||||
|
|
||||||
<div className="fixed inset-0 z-10 overflow-y-auto">
|
<div className="fixed inset-0 z-10 overflow-y-auto">
|
||||||
<div className="flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0">
|
<div className="flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0">
|
||||||
<div className={`relative transform rounded-lg bg-white text-left shadow-xl transition-all sm:my-8 sm:w-full ${props.modalWidth && props.modalWidth === ModalWidth.Large ? "sm:max-w-7xl" : "sm:max-w-lg"} `}>
|
<div
|
||||||
|
className={`relative transform rounded-lg bg-white text-left shadow-xl transition-all sm:my-8 sm:w-full ${
|
||||||
|
props.modalWidth &&
|
||||||
|
props.modalWidth === ModalWidth.Large
|
||||||
|
? 'sm:max-w-7xl'
|
||||||
|
: 'sm:max-w-lg'
|
||||||
|
} `}
|
||||||
|
>
|
||||||
{props.onClose && (
|
{props.onClose && (
|
||||||
<div className="absolute top-0 right-0 hidden pt-4 pr-4 sm:block">
|
<div className="absolute top-0 right-0 hidden pt-4 pr-4 sm:block">
|
||||||
<Button
|
<Button
|
||||||
@@ -91,8 +98,9 @@ const Modal: FunctionComponent<ComponentProps> = (
|
|||||||
)}
|
)}
|
||||||
<div className="mt-3 text-center sm:mt-0 sm:ml-4 sm:mr-4 sm:text-left">
|
<div className="mt-3 text-center sm:mt-0 sm:ml-4 sm:mr-4 sm:text-left">
|
||||||
<h3
|
<h3
|
||||||
className={`text-lg font-medium leading-6 text-gray-900 ${props.icon ? 'ml-10 -mt-8 mb-5' : ''
|
className={`text-lg font-medium leading-6 text-gray-900 ${
|
||||||
}`}
|
props.icon ? 'ml-10 -mt-8 mb-5' : ''
|
||||||
|
}`}
|
||||||
id="modal-title"
|
id="modal-title"
|
||||||
>
|
>
|
||||||
{props.title}
|
{props.title}
|
||||||
|
|||||||
@@ -64,14 +64,14 @@ export enum ShowTableAs {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface ComponentProps<TBaseModel extends BaseModel> {
|
export interface ComponentProps<TBaseModel extends BaseModel> {
|
||||||
modelType: { new(): TBaseModel };
|
modelType: { new (): TBaseModel };
|
||||||
id: string;
|
id: string;
|
||||||
onFetchInit?:
|
onFetchInit?:
|
||||||
| undefined
|
| undefined
|
||||||
| ((pageNumber: number, itemsOnPage: number) => void);
|
| ((pageNumber: number, itemsOnPage: number) => void);
|
||||||
onFetchSuccess?:
|
onFetchSuccess?:
|
||||||
| undefined
|
| undefined
|
||||||
| ((data: Array<TBaseModel>, totalCount: number) => void);
|
| ((data: Array<TBaseModel>, totalCount: number) => void);
|
||||||
cardProps?: CardComponentProps | undefined;
|
cardProps?: CardComponentProps | undefined;
|
||||||
columns: Columns<TBaseModel>;
|
columns: Columns<TBaseModel>;
|
||||||
selectMoreFields?: Select<TBaseModel>;
|
selectMoreFields?: Select<TBaseModel>;
|
||||||
@@ -203,8 +203,8 @@ const ModelTable: Function = <TBaseModel extends BaseModel>(
|
|||||||
alignItem: column.alignItem,
|
alignItem: column.alignItem,
|
||||||
getElement: column.getElement
|
getElement: column.getElement
|
||||||
? (item: JSONObject): ReactElement => {
|
? (item: JSONObject): ReactElement => {
|
||||||
return column.getElement!(item, onBeforeFetchData);
|
return column.getElement!(item, onBeforeFetchData);
|
||||||
}
|
}
|
||||||
: undefined,
|
: undefined,
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -236,7 +236,7 @@ const ModelTable: Function = <TBaseModel extends BaseModel>(
|
|||||||
try {
|
try {
|
||||||
setErrorModalText(
|
setErrorModalText(
|
||||||
(err as HTTPErrorResponse).message ||
|
(err as HTTPErrorResponse).message ||
|
||||||
'Server Error. Please try again'
|
'Server Error. Please try again'
|
||||||
);
|
);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
setErrorModalText('Server Error. Please try again');
|
setErrorModalText('Server Error. Please try again');
|
||||||
@@ -349,7 +349,7 @@ const ModelTable: Function = <TBaseModel extends BaseModel>(
|
|||||||
try {
|
try {
|
||||||
setTableFilterError(
|
setTableFilterError(
|
||||||
(err as HTTPErrorResponse).message ||
|
(err as HTTPErrorResponse).message ||
|
||||||
'Server Error. Please try again'
|
'Server Error. Please try again'
|
||||||
);
|
);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
setTableFilterError('Server Error. Please try again');
|
setTableFilterError('Server Error. Please try again');
|
||||||
@@ -385,8 +385,8 @@ const ModelTable: Function = <TBaseModel extends BaseModel>(
|
|||||||
getSelect(),
|
getSelect(),
|
||||||
sortBy
|
sortBy
|
||||||
? {
|
? {
|
||||||
[sortBy as any]: sortOrder,
|
[sortBy as any]: sortOrder,
|
||||||
}
|
}
|
||||||
: {},
|
: {},
|
||||||
getPopulate(),
|
getPopulate(),
|
||||||
props.fetchRequestOptions
|
props.fetchRequestOptions
|
||||||
@@ -398,7 +398,7 @@ const ModelTable: Function = <TBaseModel extends BaseModel>(
|
|||||||
try {
|
try {
|
||||||
setError(
|
setError(
|
||||||
(err as HTTPErrorResponse).message ||
|
(err as HTTPErrorResponse).message ||
|
||||||
'Server Error. Please try again'
|
'Server Error. Please try again'
|
||||||
);
|
);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
setError('Server Error. Please try again');
|
setError('Server Error. Please try again');
|
||||||
@@ -511,8 +511,9 @@ const ModelTable: Function = <TBaseModel extends BaseModel>(
|
|||||||
showTableAs !== ShowTableAs.OrderedStatesList
|
showTableAs !== ShowTableAs.OrderedStatesList
|
||||||
) {
|
) {
|
||||||
headerbuttons.push({
|
headerbuttons.push({
|
||||||
title: `${props.createVerb || 'Create'} ${props.singularName || model.singularName
|
title: `${props.createVerb || 'Create'} ${
|
||||||
}`,
|
props.singularName || model.singularName
|
||||||
|
}`,
|
||||||
buttonStyle: ButtonStyleType.NORMAL,
|
buttonStyle: ButtonStyleType.NORMAL,
|
||||||
className:
|
className:
|
||||||
props.showFilterButton || props.showRefreshButton
|
props.showFilterButton || props.showRefreshButton
|
||||||
@@ -730,9 +731,13 @@ const ModelTable: Function = <TBaseModel extends BaseModel>(
|
|||||||
|
|
||||||
if (
|
if (
|
||||||
(permissions &&
|
(permissions &&
|
||||||
((props.isDeleteable && model.hasDeletePermissions(permissions)) ||
|
((props.isDeleteable &&
|
||||||
(props.isEditable && model.hasUpdatePermissions(permissions)) ||
|
model.hasDeletePermissions(permissions)) ||
|
||||||
(props.isViewable && model.hasReadPermissions(permissions)))) || (props.actionButtons && props.actionButtons.length > 0)
|
(props.isEditable &&
|
||||||
|
model.hasUpdatePermissions(permissions)) ||
|
||||||
|
(props.isViewable &&
|
||||||
|
model.hasReadPermissions(permissions)))) ||
|
||||||
|
(props.actionButtons && props.actionButtons.length > 0)
|
||||||
) {
|
) {
|
||||||
columns.push({
|
columns.push({
|
||||||
title: 'Actions',
|
title: 'Actions',
|
||||||
@@ -999,9 +1004,9 @@ const ModelTable: Function = <TBaseModel extends BaseModel>(
|
|||||||
|
|
||||||
let getTitleElement:
|
let getTitleElement:
|
||||||
| ((
|
| ((
|
||||||
item: JSONObject,
|
item: JSONObject,
|
||||||
onBeforeFetchData?: JSONObject | undefined
|
onBeforeFetchData?: JSONObject | undefined
|
||||||
) => ReactElement)
|
) => ReactElement)
|
||||||
| undefined = undefined;
|
| undefined = undefined;
|
||||||
let getDescriptionElement:
|
let getDescriptionElement:
|
||||||
| ((item: JSONObject) => ReactElement)
|
| ((item: JSONObject) => ReactElement)
|
||||||
@@ -1045,10 +1050,10 @@ const ModelTable: Function = <TBaseModel extends BaseModel>(
|
|||||||
onCreateNewItem={
|
onCreateNewItem={
|
||||||
props.isCreateable
|
props.isCreateable
|
||||||
? (order: number) => {
|
? (order: number) => {
|
||||||
setOrderedStatesListNewItemOrder(order);
|
setOrderedStatesListNewItemOrder(order);
|
||||||
setModalType(ModalType.Create);
|
setModalType(ModalType.Create);
|
||||||
setShowModal(true);
|
setShowModal(true);
|
||||||
}
|
}
|
||||||
: undefined
|
: undefined
|
||||||
}
|
}
|
||||||
singularLabel={
|
singularLabel={
|
||||||
@@ -1113,8 +1118,9 @@ const ModelTable: Function = <TBaseModel extends BaseModel>(
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Pill
|
<Pill
|
||||||
text={`${new props.modelType().readBillingPlan
|
text={`${
|
||||||
} Plan`}
|
new props.modelType().readBillingPlan
|
||||||
|
} Plan`}
|
||||||
color={Yellow}
|
color={Yellow}
|
||||||
/>
|
/>
|
||||||
</span>
|
</span>
|
||||||
@@ -1188,16 +1194,19 @@ const ModelTable: Function = <TBaseModel extends BaseModel>(
|
|||||||
<ModelFormModal<TBaseModel>
|
<ModelFormModal<TBaseModel>
|
||||||
title={
|
title={
|
||||||
modalType === ModalType.Create
|
modalType === ModalType.Create
|
||||||
? `${props.createVerb || 'Create'} New ${props.singularName || model.singularName
|
? `${props.createVerb || 'Create'} New ${
|
||||||
}`
|
props.singularName || model.singularName
|
||||||
|
}`
|
||||||
: `Edit ${props.singularName || model.singularName}`
|
: `Edit ${props.singularName || model.singularName}`
|
||||||
}
|
}
|
||||||
name={
|
name={
|
||||||
modalType === ModalType.Create
|
modalType === ModalType.Create
|
||||||
? `${props.name} > ${props.createVerb || 'Create'
|
? `${props.name} > ${
|
||||||
} New ${props.singularName || model.singularName}`
|
props.createVerb || 'Create'
|
||||||
: `${props.name} > Edit ${props.singularName || model.singularName
|
} New ${props.singularName || model.singularName}`
|
||||||
}`
|
: `${props.name} > Edit ${
|
||||||
|
props.singularName || model.singularName
|
||||||
|
}`
|
||||||
}
|
}
|
||||||
initialValues={
|
initialValues={
|
||||||
modalType === ModalType.Create
|
modalType === ModalType.Create
|
||||||
@@ -1209,8 +1218,9 @@ const ModelTable: Function = <TBaseModel extends BaseModel>(
|
|||||||
}}
|
}}
|
||||||
submitButtonText={
|
submitButtonText={
|
||||||
modalType === ModalType.Create
|
modalType === ModalType.Create
|
||||||
? `${props.createVerb || 'Create'} ${props.singularName || model.singularName
|
? `${props.createVerb || 'Create'} ${
|
||||||
}`
|
props.singularName || model.singularName
|
||||||
|
}`
|
||||||
: `Save Changes`
|
: `Save Changes`
|
||||||
}
|
}
|
||||||
onSuccess={async (item: TBaseModel) => {
|
onSuccess={async (item: TBaseModel) => {
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ const TableRow: FunctionComponent<ComponentProps> = (
|
|||||||
props.item[column.key] ? (
|
props.item[column.key] ? (
|
||||||
OneUptimeDate.getDateAsLocalFormattedString(
|
OneUptimeDate.getDateAsLocalFormattedString(
|
||||||
props.item[
|
props.item[
|
||||||
column.key
|
column.key
|
||||||
] as string,
|
] as string,
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
@@ -90,11 +90,11 @@ const TableRow: FunctionComponent<ComponentProps> = (
|
|||||||
''
|
''
|
||||||
)
|
)
|
||||||
) : column.type ===
|
) : column.type ===
|
||||||
FieldType.DateTime ? (
|
FieldType.DateTime ? (
|
||||||
props.item[column.key] ? (
|
props.item[column.key] ? (
|
||||||
OneUptimeDate.getDateAsLocalFormattedString(
|
OneUptimeDate.getDateAsLocalFormattedString(
|
||||||
props.item[
|
props.item[
|
||||||
column.key
|
column.key
|
||||||
] as string,
|
] as string,
|
||||||
false
|
false
|
||||||
)
|
)
|
||||||
@@ -102,7 +102,7 @@ const TableRow: FunctionComponent<ComponentProps> = (
|
|||||||
''
|
''
|
||||||
)
|
)
|
||||||
) : column.type ===
|
) : column.type ===
|
||||||
FieldType.Boolean ? (
|
FieldType.Boolean ? (
|
||||||
props.item[column.key] ? (
|
props.item[column.key] ? (
|
||||||
<Icon
|
<Icon
|
||||||
icon={IconProp.Check}
|
icon={IconProp.Check}
|
||||||
@@ -183,7 +183,7 @@ const TableRow: FunctionComponent<ComponentProps> = (
|
|||||||
}
|
}
|
||||||
isLoading={
|
isLoading={
|
||||||
isButtonLoading[
|
isButtonLoading[
|
||||||
i
|
i
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ const WorkflowElement: FunctionComponent<ComponentProps> = (
|
|||||||
const projectId: string | undefined = props.workflow.projectId
|
const projectId: string | undefined = props.workflow.projectId
|
||||||
? props.workflow.projectId.toString()
|
? props.workflow.projectId.toString()
|
||||||
: props.workflow.project
|
: props.workflow.project
|
||||||
? props.workflow.project._id
|
? props.workflow.project._id
|
||||||
: '';
|
: '';
|
||||||
return (
|
return (
|
||||||
<Link
|
<Link
|
||||||
onNavigateComplete={props.onNavigateComplete}
|
onNavigateComplete={props.onNavigateComplete}
|
||||||
|
|||||||
@@ -20,9 +20,6 @@ import Modal, { ModalWidth } from 'CommonUI/src/Components/Modal/Modal';
|
|||||||
const Workflows: FunctionComponent<PageComponentProps> = (
|
const Workflows: FunctionComponent<PageComponentProps> = (
|
||||||
_props: PageComponentProps
|
_props: PageComponentProps
|
||||||
): ReactElement => {
|
): ReactElement => {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const [showViewLogsModal, setShowViewLogsModal] = useState<boolean>(false);
|
const [showViewLogsModal, setShowViewLogsModal] = useState<boolean>(false);
|
||||||
const [logs, setLogs] = useState<string>('');
|
const [logs, setLogs] = useState<string>('');
|
||||||
|
|
||||||
@@ -65,8 +62,7 @@ const Workflows: FunctionComponent<PageComponentProps> = (
|
|||||||
item: JSONObject,
|
item: JSONObject,
|
||||||
onCompleteAction: Function
|
onCompleteAction: Function
|
||||||
) => {
|
) => {
|
||||||
|
setLogs(item['logs'] as string);
|
||||||
setLogs((item['logs'] as string));
|
|
||||||
setShowViewLogsModal(true);
|
setShowViewLogsModal(true);
|
||||||
|
|
||||||
onCompleteAction();
|
onCompleteAction();
|
||||||
@@ -78,7 +74,7 @@ const Workflows: FunctionComponent<PageComponentProps> = (
|
|||||||
name="Workflow Logs"
|
name="Workflow Logs"
|
||||||
isViewable={false}
|
isViewable={false}
|
||||||
selectMoreFields={{
|
selectMoreFields={{
|
||||||
logs: true
|
logs: true,
|
||||||
}}
|
}}
|
||||||
cardProps={{
|
cardProps={{
|
||||||
icon: IconProp.Logs,
|
icon: IconProp.Logs,
|
||||||
@@ -107,7 +103,9 @@ const Workflows: FunctionComponent<PageComponentProps> = (
|
|||||||
<WorkflowElement
|
<WorkflowElement
|
||||||
workflow={
|
workflow={
|
||||||
JSONFunctions.fromJSON(
|
JSONFunctions.fromJSON(
|
||||||
(item['workflow'] as JSONObject) || [],
|
(item[
|
||||||
|
'workflow'
|
||||||
|
] as JSONObject) || [],
|
||||||
Workflow
|
Workflow
|
||||||
) as Workflow
|
) as Workflow
|
||||||
}
|
}
|
||||||
@@ -126,29 +124,25 @@ const Workflows: FunctionComponent<PageComponentProps> = (
|
|||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{showViewLogsModal && <Modal
|
{showViewLogsModal && (
|
||||||
title={'Workflow Logs'}
|
<Modal
|
||||||
description="Here are the logs for this workflow"
|
title={'Workflow Logs'}
|
||||||
isLoading={false}
|
description="Here are the logs for this workflow"
|
||||||
modalWidth={ModalWidth.Large}
|
isLoading={false}
|
||||||
onSubmit={() => {
|
modalWidth={ModalWidth.Large}
|
||||||
setShowViewLogsModal(false);
|
onSubmit={() => {
|
||||||
}}
|
setShowViewLogsModal(false);
|
||||||
|
}}
|
||||||
submitButtonText={
|
submitButtonText={'Close'}
|
||||||
'Close'
|
submitButtonStyleType={ButtonStyleType.NORMAL}
|
||||||
}
|
>
|
||||||
submitButtonStyleType={
|
<div className="text-gray-500 mt-5 text-sm h-96 overflow-scroll overflow-x-hidden p-5 border-gray-50 border border-2 bg-gray-100 rounded">
|
||||||
ButtonStyleType.NORMAL
|
{logs}
|
||||||
}
|
</div>
|
||||||
>
|
</Modal>
|
||||||
<div className="text-gray-500 mt-5 text-sm h-96 overflow-scroll overflow-x-hidden p-5 border-gray-50 border border-2 bg-gray-100 rounded">
|
)}
|
||||||
{logs}
|
|
||||||
</div>
|
|
||||||
</Modal>}
|
|
||||||
|
|
||||||
</>
|
</>
|
||||||
</Page >
|
</Page>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -96,8 +96,7 @@ const Workflows: FunctionComponent<PageComponentProps> = (
|
|||||||
content: true,
|
content: true,
|
||||||
},
|
},
|
||||||
title: 'Content',
|
title: 'Content',
|
||||||
description:
|
description: 'Enter the content of the variable',
|
||||||
'Enter the content of the variable',
|
|
||||||
fieldType: FormFieldSchemaType.LongText,
|
fieldType: FormFieldSchemaType.LongText,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ const Delete: FunctionComponent<PageComponentProps> = (
|
|||||||
isEnabled: true,
|
isEnabled: true,
|
||||||
},
|
},
|
||||||
title: 'Enabled',
|
title: 'Enabled',
|
||||||
fieldType: FormFieldSchemaType.Checkbox
|
fieldType: FormFieldSchemaType.Checkbox,
|
||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
modelDetailProps={{
|
modelDetailProps={{
|
||||||
@@ -120,7 +120,7 @@ const Delete: FunctionComponent<PageComponentProps> = (
|
|||||||
isEnabled: true,
|
isEnabled: true,
|
||||||
},
|
},
|
||||||
title: 'Enabled',
|
title: 'Enabled',
|
||||||
fieldType: FieldType.Boolean
|
fieldType: FieldType.Boolean,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
modelId: modelId,
|
modelId: modelId,
|
||||||
|
|||||||
@@ -24,12 +24,9 @@ const Delete: FunctionComponent<PageComponentProps> = (
|
|||||||
): ReactElement => {
|
): ReactElement => {
|
||||||
const modelId: ObjectID = Navigation.getLastParamAsObjectID(1);
|
const modelId: ObjectID = Navigation.getLastParamAsObjectID(1);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const [showViewLogsModal, setShowViewLogsModal] = useState<boolean>(false);
|
const [showViewLogsModal, setShowViewLogsModal] = useState<boolean>(false);
|
||||||
const [logs, setLogs] = useState<string>('');
|
const [logs, setLogs] = useState<string>('');
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Page
|
<Page
|
||||||
title={'Workflow'}
|
title={'Workflow'}
|
||||||
@@ -75,10 +72,11 @@ const Delete: FunctionComponent<PageComponentProps> = (
|
|||||||
name="Workflow Logs"
|
name="Workflow Logs"
|
||||||
query={{
|
query={{
|
||||||
workflowId: modelId,
|
workflowId: modelId,
|
||||||
projectId: DashboardNavigation.getProjectId()?.toString(),
|
projectId:
|
||||||
|
DashboardNavigation.getProjectId()?.toString(),
|
||||||
}}
|
}}
|
||||||
selectMoreFields={{
|
selectMoreFields={{
|
||||||
logs: true
|
logs: true,
|
||||||
}}
|
}}
|
||||||
actionButtons={[
|
actionButtons={[
|
||||||
{
|
{
|
||||||
@@ -89,8 +87,7 @@ const Delete: FunctionComponent<PageComponentProps> = (
|
|||||||
item: JSONObject,
|
item: JSONObject,
|
||||||
onCompleteAction: Function
|
onCompleteAction: Function
|
||||||
) => {
|
) => {
|
||||||
|
setLogs(item['logs'] as string);
|
||||||
setLogs((item['logs'] as string));
|
|
||||||
setShowViewLogsModal(true);
|
setShowViewLogsModal(true);
|
||||||
|
|
||||||
onCompleteAction();
|
onCompleteAction();
|
||||||
@@ -125,7 +122,9 @@ const Delete: FunctionComponent<PageComponentProps> = (
|
|||||||
<WorkflowElement
|
<WorkflowElement
|
||||||
workflow={
|
workflow={
|
||||||
JSONFunctions.fromJSON(
|
JSONFunctions.fromJSON(
|
||||||
(item['workflow'] as JSONObject) || [],
|
(item[
|
||||||
|
'workflow'
|
||||||
|
] as JSONObject) || [],
|
||||||
Workflow
|
Workflow
|
||||||
) as Workflow
|
) as Workflow
|
||||||
}
|
}
|
||||||
@@ -144,28 +143,24 @@ const Delete: FunctionComponent<PageComponentProps> = (
|
|||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{showViewLogsModal && <Modal
|
{showViewLogsModal && (
|
||||||
title={'Workflow Logs'}
|
<Modal
|
||||||
description="Here are the logs for this workflow"
|
title={'Workflow Logs'}
|
||||||
isLoading={false}
|
description="Here are the logs for this workflow"
|
||||||
modalWidth={ModalWidth.Large}
|
isLoading={false}
|
||||||
onSubmit={() => {
|
modalWidth={ModalWidth.Large}
|
||||||
setShowViewLogsModal(false);
|
onSubmit={() => {
|
||||||
}}
|
setShowViewLogsModal(false);
|
||||||
|
}}
|
||||||
submitButtonText={
|
submitButtonText={'Close'}
|
||||||
'Close'
|
submitButtonStyleType={ButtonStyleType.NORMAL}
|
||||||
}
|
>
|
||||||
submitButtonStyleType={
|
<div className="text-gray-500 mt-5 text-sm h-96 overflow-scroll overflow-x-hidden p-5 border-gray-50 border border-2 bg-gray-100 rounded">
|
||||||
ButtonStyleType.NORMAL
|
{logs}
|
||||||
}
|
</div>
|
||||||
>
|
</Modal>
|
||||||
<div className="text-gray-500 mt-5 text-sm h-96 overflow-scroll overflow-x-hidden p-5 border-gray-50 border border-2 bg-gray-100 rounded">
|
)}
|
||||||
{logs}
|
|
||||||
</div>
|
|
||||||
</Modal>}
|
|
||||||
</>
|
</>
|
||||||
|
|
||||||
</Page>
|
</Page>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -114,8 +114,7 @@ const Workflows: FunctionComponent<PageComponentProps> = (
|
|||||||
content: true,
|
content: true,
|
||||||
},
|
},
|
||||||
title: 'Content',
|
title: 'Content',
|
||||||
description:
|
description: 'Enter the content of the variable',
|
||||||
'Enter the content of the variable',
|
|
||||||
fieldType: FormFieldSchemaType.LongText,
|
fieldType: FormFieldSchemaType.LongText,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ const Workflows: FunctionComponent<PageComponentProps> = (
|
|||||||
isEnabled: true,
|
isEnabled: true,
|
||||||
},
|
},
|
||||||
title: 'Enabled',
|
title: 'Enabled',
|
||||||
fieldType: FormFieldSchemaType.Checkbox
|
fieldType: FormFieldSchemaType.Checkbox,
|
||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
showRefreshButton={true}
|
showRefreshButton={true}
|
||||||
|
|||||||
@@ -302,7 +302,7 @@ export class RouteUtil {
|
|||||||
if (
|
if (
|
||||||
route.toString() === RouteMap[PageMap.USER_PROFILE]?.toString() ||
|
route.toString() === RouteMap[PageMap.USER_PROFILE]?.toString() ||
|
||||||
route.toString() ===
|
route.toString() ===
|
||||||
RouteMap[PageMap.PROJECT_INVITATIONS]?.toString() ||
|
RouteMap[PageMap.PROJECT_INVITATIONS]?.toString() ||
|
||||||
route.toString() === RouteMap[PageMap.ACTIVE_INCIDENTS]?.toString()
|
route.toString() === RouteMap[PageMap.ACTIVE_INCIDENTS]?.toString()
|
||||||
) {
|
) {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -246,10 +246,12 @@ export default class WorkflowVariable extends BaseModel {
|
|||||||
Permission.ProjectAdmin,
|
Permission.ProjectAdmin,
|
||||||
Permission.CanCreateWorkflowVariable,
|
Permission.CanCreateWorkflowVariable,
|
||||||
],
|
],
|
||||||
read: [Permission.ProjectOwner,
|
read: [
|
||||||
Permission.ProjectAdmin,
|
Permission.ProjectOwner,
|
||||||
Permission.ProjectMember,
|
Permission.ProjectAdmin,
|
||||||
Permission.CanReadWorkflowVariable],
|
Permission.ProjectMember,
|
||||||
|
Permission.CanReadWorkflowVariable,
|
||||||
|
],
|
||||||
update: [],
|
update: [],
|
||||||
})
|
})
|
||||||
@TableColumn({ required: true, type: TableColumnType.Boolean })
|
@TableColumn({ required: true, type: TableColumnType.Boolean })
|
||||||
|
|||||||
Reference in New Issue
Block a user