Fixed jumpyness of Triggers during state updates. Also now understand how to potentially do it for actions

This commit is contained in:
Frikky
2023-08-16 00:44:01 +02:00
parent 53956b3f38
commit f9e9f0feb7
+125 -110
View File
@@ -7648,6 +7648,8 @@ const AngularWorkflow = (defaultprops) => {
resize: "vertical", resize: "vertical",
overflow: "auto", overflow: "auto",
paddingBottom: 100, paddingBottom: 100,
overflowAnchor: "none",
}; };
var rightsidebarStyle = { var rightsidebarStyle = {
@@ -7664,6 +7666,8 @@ const AngularWorkflow = (defaultprops) => {
borderRadius: theme.palette.borderRadius, borderRadius: theme.palette.borderRadius,
resize: "both", resize: "both",
overflow: "auto", overflow: "auto",
overflowAnchor: "none",
}; };
const setTriggerFolderWrapperMulti = (event) => { const setTriggerFolderWrapperMulti = (event) => {
@@ -9252,7 +9256,7 @@ const AngularWorkflow = (defaultprops) => {
placeholder={selectedTrigger.label} placeholder={selectedTrigger.label}
onChange={selectedTriggerChange} onChange={selectedTriggerChange}
/> />
{/*
<div style={{ marginTop: "20px" }}> <div style={{ marginTop: "20px" }}>
Environment: Environment:
<TextField <TextField
@@ -9271,6 +9275,7 @@ const AngularWorkflow = (defaultprops) => {
value={selectedTrigger.environment} value={selectedTrigger.environment}
/> />
</div> </div>
*/}
<Divider <Divider
style={{ style={{
marginTop: "20px", marginTop: "20px",
@@ -10617,58 +10622,75 @@ const AngularWorkflow = (defaultprops) => {
return null; return null;
}; };
const WebhookSidebar = () => { // Special SCHEDULE handler
if (Object.getOwnPropertyNames(selectedTrigger).length > 0) { var trigger_header_auth = ""
if (workflow.triggers[selectedTriggerIndex] === undefined) { if (Object.getOwnPropertyNames(selectedTrigger).length > 0 && workflow.triggers[selectedTriggerIndex] !== undefined ) {
return null; if (selectedTrigger.trigger_type === "SCHEDULE" && workflow.triggers[selectedTriggerIndex].parameters === undefined || workflow.triggers[selectedTriggerIndex].parameters === null || workflow.triggers[selectedTriggerIndex].parameters.length === 0) {
} console.log("Autofixing schedule")
if (
workflow.triggers[selectedTriggerIndex].parameters === undefined ||
workflow.triggers[selectedTriggerIndex].parameters === null ||
workflow.triggers[selectedTriggerIndex].parameters.length === 0
) {
workflow.triggers[selectedTriggerIndex].parameters = []; workflow.triggers[selectedTriggerIndex].parameters = [];
workflow.triggers[selectedTriggerIndex].parameters[0] = { workflow.triggers[selectedTriggerIndex].parameters[0] = {
name: "url", name: "cron",
value: referenceUrl + "webhook_" + selectedTrigger.id, value: isCloud ? "*/25 * * * *" : "60",
}; };
workflow.triggers[selectedTriggerIndex].parameters[1] = { workflow.triggers[selectedTriggerIndex].parameters[1] = {
name: "tmp", name: "execution_argument",
value: "webhook_" + selectedTrigger.id, value: '{"example": {"json": "is cool"}}',
};
workflow.triggers[selectedTriggerIndex].parameters[2] = {
name: "auth_headers",
value: "",
};
workflow.triggers[selectedTriggerIndex].parameters[3] = {
name: "custom_response_body",
value: "",
};
workflow.triggers[selectedTriggerIndex].parameters[4] = {
name: "await_response",
value: "v1",
}; };
setWorkflow(workflow); setWorkflow(workflow);
} else { } else if (selectedTrigger.trigger_type === "WEBHOOK") {
// Always update if (workflow.triggers[selectedTriggerIndex] === undefined) {
const newUrl = referenceUrl + "webhook_" + selectedTrigger.id; return null;
//console.log("Validating webhook url: ", newUrl); }
if (selectedTrigger.environment !== "cloud") {
if (newUrl !== workflow.triggers[selectedTriggerIndex].parameters[0].value) {
console.log("Url is wrong. NOT updating because of hybrid.");
//workflow.triggers[selectedTriggerIndex].parameters[0].value = newUrl;
//setWorkflow(workflow);
}
}
}
const trigger_header_auth = if (
workflow.triggers[selectedTriggerIndex].parameters.length > 2 workflow.triggers[selectedTriggerIndex].parameters === undefined ||
? workflow.triggers[selectedTriggerIndex].parameters[2].value workflow.triggers[selectedTriggerIndex].parameters === null ||
: ""; workflow.triggers[selectedTriggerIndex].parameters.length === 0
) {
workflow.triggers[selectedTriggerIndex].parameters = [];
workflow.triggers[selectedTriggerIndex].parameters[0] = {
name: "url",
value: referenceUrl + "webhook_" + selectedTrigger.id,
};
workflow.triggers[selectedTriggerIndex].parameters[1] = {
name: "tmp",
value: "webhook_" + selectedTrigger.id,
};
workflow.triggers[selectedTriggerIndex].parameters[2] = {
name: "auth_headers",
value: "",
};
workflow.triggers[selectedTriggerIndex].parameters[3] = {
name: "custom_response_body",
value: "",
};
workflow.triggers[selectedTriggerIndex].parameters[4] = {
name: "await_response",
value: "v1",
};
setWorkflow(workflow);
} else {
// Always update
const newUrl = referenceUrl + "webhook_" + selectedTrigger.id;
//console.log("Validating webhook url: ", newUrl);
if (selectedTrigger.environment !== "cloud") {
if (newUrl !== workflow.triggers[selectedTriggerIndex].parameters[0].value) {
console.log("Url is wrong. NOT updating because of hybrid.");
//workflow.triggers[selectedTriggerIndex].parameters[0].value = newUrl;
//setWorkflow(workflow);
}
}
}
return ( trigger_header_auth =
workflow.triggers[selectedTriggerIndex].parameters.length > 2
? workflow.triggers[selectedTriggerIndex].parameters[2].value
: "";
}
}
const WebhookSidebar = Object.getOwnPropertyNames(selectedTrigger).length === 0 || workflow.triggers[selectedTriggerIndex] === undefined || selectedTrigger.trigger_type !== "WEBHOOK" ? null :
<div style={appApiViewStyle}> <div style={appApiViewStyle}>
<div style={{ flex: "1" }}> <div style={{ flex: "1" }}>
<h3 style={{ marginBottom: "5px" }}> <h3 style={{ marginBottom: "5px" }}>
@@ -11170,11 +11192,6 @@ const AngularWorkflow = (defaultprops) => {
</div> </div>
</div> </div>
</div> </div>
);
}
return null;
};
const stopMailSub = (trigger, triggerindex) => { const stopMailSub = (trigger, triggerindex) => {
// DELETE // DELETE
@@ -11819,29 +11836,9 @@ const AngularWorkflow = (defaultprops) => {
return null; return null;
}; };
const ScheduleSidebar = () => {
if (
Object.getOwnPropertyNames(selectedTrigger).length > 0 &&
workflow.triggers[selectedTriggerIndex] !== undefined
) {
if (
workflow.triggers[selectedTriggerIndex].parameters === undefined ||
workflow.triggers[selectedTriggerIndex].parameters === null ||
workflow.triggers[selectedTriggerIndex].parameters.length === 0
) {
workflow.triggers[selectedTriggerIndex].parameters = [];
workflow.triggers[selectedTriggerIndex].parameters[0] = {
name: "cron",
value: isCloud ? "*/25 * * * *" : "60",
};
workflow.triggers[selectedTriggerIndex].parameters[1] = {
name: "execution_argument",
value: '{"example": {"json": "is cool"}}',
};
setWorkflow(workflow);
}
return (
const ScheduleSidebar = Object.getOwnPropertyNames(selectedTrigger).length === 0 || workflow.triggers[selectedTriggerIndex] === undefined && selectedTrigger.trigger_type !== "SCHEDULE" ? null :
<div style={appApiViewStyle}> <div style={appApiViewStyle}>
<div style={{ flex: "1" }}> <div style={{ flex: "1" }}>
<h3 style={{ marginBottom: "5px" }}> <h3 style={{ marginBottom: "5px" }}>
@@ -12031,7 +12028,9 @@ const AngularWorkflow = (defaultprops) => {
multiline multiline
color="primary" color="primary"
defaultValue={ defaultValue={
workflow.triggers[selectedTriggerIndex].parameters[1].value workflow.triggers[selectedTriggerIndex] !== undefined && workflow.triggers[selectedTriggerIndex].parameters.length > 1 ?
workflow.triggers[selectedTriggerIndex].parameters[1].value
: ""
} }
placeholder='{"example": {"json": "is cool"}}' placeholder='{"example": {"json": "is cool"}}'
onBlur={(e) => { onBlur={(e) => {
@@ -12079,11 +12078,6 @@ const AngularWorkflow = (defaultprops) => {
</div> </div>
</div> </div>
</div> </div>
);
}
return null;
};
const cytoscapeViewWidths = isMobile ? 50 : 850; const cytoscapeViewWidths = isMobile ? 50 : 850;
const bottomBarStyle = { const bottomBarStyle = {
@@ -12721,34 +12715,34 @@ const AngularWorkflow = (defaultprops) => {
const RightSideBar = (props) => { const RightSideBar = (props) => {
const { const {
workflow, //workflow,
setWorkflow, //setWorkflow,
setSelectedAction, //setSelectedAction,
setUpdate, //setUpdate,
selectedApp, //selectedApp,
workflowExecutions, //workflowExecutions,
setSelectedResult, //setSelectedResult,
selectedAction, //selectedAction,
setSelectedApp, //setSelectedApp,
setSelectedTrigger, //setSelectedTrigger,
setSelectedEdge, //setSelectedEdge,
setCurrentView, //setCurrentView,
cy, //cy,
setAuthenticationModalOpen, //setAuthenticationModalOpen,
setVariablesModalOpen, //setVariablesModalOpen,
setCodeModalOpen, //setCodeModalOpen,
selectedNameChange, //selectedNameChange,
rightsidebarStyle, //rightsidebarStyle,
showEnvironment, //showEnvironment,
selectedActionEnvironment, //selectedActionEnvironment,
environments, //environments,
setNewSelectedAction, //setNewSelectedAction,
appApiViewStyle, //appApiViewStyle,
globalUrl, //globalUrl,
setSelectedActionEnvironment, //setSelectedActionEnvironment,
requiresAuthentication, //requiresAuthentication,
scrollConfig, //scrollConfig,
setScrollConfig, //setScrollConfig,
} = props; } = props;
if (!rightSideBarOpen) { if (!rightSideBarOpen) {
@@ -12766,7 +12760,7 @@ const AngularWorkflow = (defaultprops) => {
files={files} files={files}
isCloud={isCloud} isCloud={isCloud}
getParents={getParents} getParents={getParents}
toolsAppId={toolsApp.id} toolsAppId={toolsApp.id}
setShowVideo={setShowVideo} setShowVideo={setShowVideo}
actionDelayChange={actionDelayChange} actionDelayChange={actionDelayChange}
getAppAuthentication={getAppAuthentication} getAppAuthentication={getAppAuthentication}
@@ -12805,18 +12799,19 @@ const AngularWorkflow = (defaultprops) => {
setLastSaved={setLastSaved} setLastSaved={setLastSaved}
lastSaved={lastSaved} lastSaved={lastSaved}
aiSubmit={aiSubmit} aiSubmit={aiSubmit}
/> />
} else if (Object.getOwnPropertyNames(selectedComment).length > 0) { } else if (Object.getOwnPropertyNames(selectedComment).length > 0) {
defaultReturn = <CommentSidebar /> defaultReturn = <CommentSidebar />
} else if (Object.getOwnPropertyNames(selectedTrigger).length > 0) { } else if (Object.getOwnPropertyNames(selectedTrigger).length > 0) {
if (selectedTrigger.trigger_type === "SCHEDULE") { if (selectedTrigger.trigger_type === "SCHEDULE") {
defaultReturn = <ScheduleSidebar /> // Handled elsewhere as an experiment
defaultReturn = null
} else if (selectedTrigger.trigger_type === "WEBHOOK") { } else if (selectedTrigger.trigger_type === "WEBHOOK") {
defaultReturn = <WebhookSidebar /> defaultReturn = null
} else if (selectedTrigger.trigger_type === "SUBFLOW") { } else if (selectedTrigger.trigger_type === "SUBFLOW") {
defaultReturn = <SubflowSidebar /> defaultReturn = <SubflowSidebar />
} else if (selectedTrigger.trigger_type === "EMAIL") { } else if (selectedTrigger.trigger_type === "EMAIL") {
defaultReturn = <EmailSidebar /> defaultReturn = <EmailSidebar />
} else if (selectedTrigger.trigger_type === "USERINPUT") { } else if (selectedTrigger.trigger_type === "USERINPUT") {
@@ -14993,6 +14988,25 @@ const AngularWorkflow = (defaultprops) => {
)} )}
</div> </div>
{executionModal} {executionModal}
<RightSideBar />
{/* Looks for triggers" */}
{/* Only fixed the ones that require scrolling on a small screen */}
{/* Most prominent: Actions. But these are a lot more complex */}
{rightSideBarOpen ?
<div id="rightside_actions" style={rightsidebarStyle}>
{Object.getOwnPropertyNames(selectedTrigger).length > 0 ?
selectedTrigger.trigger_type === "SCHEDULE" ?
ScheduleSidebar
: selectedTrigger.trigger_type === "WEBHOOK" ?
WebhookSidebar
: null
: null}
</div>
: null}
{/*
<RightSideBar <RightSideBar
scrollConfig={scrollConfig} scrollConfig={scrollConfig}
setScrollConfig={setScrollConfig} setScrollConfig={setScrollConfig}
@@ -15025,6 +15039,7 @@ const AngularWorkflow = (defaultprops) => {
setSelectedActionEnvironment={setSelectedActionEnvironment} setSelectedActionEnvironment={setSelectedActionEnvironment}
requiresAuthentication={requiresAuthentication} requiresAuthentication={requiresAuthentication}
/> />
*/}
{showWorkflowRevisions ? null : {showWorkflowRevisions ? null :
<span> <span>