Changed from Alert to Toast to work well with mui v18

This commit is contained in:
Frikky
2023-08-17 03:16:43 +02:00
parent 1461d6ad6b
commit 99d1a96c63
36 changed files with 553 additions and 542 deletions
+13 -14
View File
@@ -1,10 +1,9 @@
import React, { useState, useEffect } from 'react';
import theme from '../theme.jsx';
import CytoscapeComponent from 'react-cytoscapejs';
import frameworkStyle from '../frameworkStyle.jsx';
import { v4 as uuidv4 } from "uuid";
import theme from '../theme.jsx';
import { useAlert } from "react-alert";
import AppSearch from '../components/Appsearch.jsx';
import PaperComponent from "../components/PaperComponent.jsx"
@@ -34,10 +33,10 @@ import {
import * as edgehandles from "cytoscape-edgehandles";
import * as cytoscape from "cytoscape";
import { toast } from 'react-toastify';
cytoscape.use(edgehandles);
const svgSize = "40px"
const parsedDatatypeImages = {
"SIEM": encodeURI(`data:image/svg+xml;utf-8,<svg fill="rgb(248,90,62)" width="${svgSize}" height="${svgSize}" viewBox="0 0 ${svgSize} ${svgSize}" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M6.93767 0C8.71083 0 10.4114 0.704386 11.6652 1.9582C12.919 3.21202 13.6234 4.91255 13.6234 6.68571C13.6234 8.34171 13.0165 9.864 12.0188 11.0366L12.2965 11.3143H13.1091L18.252 16.4571L16.7091 18L11.5662 12.8571V12.0446L11.2885 11.7669C10.116 12.7646 8.59367 13.3714 6.93767 13.3714C5.16451 13.3714 3.46397 12.667 2.21015 11.4132C0.956339 10.1594 0.251953 8.45888 0.251953 6.68571C0.251953 4.91255 0.956339 3.21202 2.21015 1.9582C3.46397 0.704386 5.16451 0 6.93767 0ZM6.93767 2.05714C4.36624 2.05714 2.3091 4.11429 2.3091 6.68571C2.3091 9.25714 4.36624 11.3143 6.93767 11.3143C9.5091 11.3143 11.5662 9.25714 11.5662 6.68571C11.5662 4.11429 9.5091 2.05714 6.93767 2.05714Z" /></svg>`),
@@ -521,7 +520,7 @@ const AppFramework = (props) => {
const scale = size === undefined ? 1 : size > 5 ? 3 : size
const alert = useAlert()
//const alert = useAlert()
const handleLoadNextSuggestion = (frameworkData) => {
@@ -784,16 +783,16 @@ const AppFramework = (props) => {
.then((responseJson) => {
if (responseJson.success === false) {
if (responseJson.reason !== undefined) {
alert.error("Failed updating: " + responseJson.reason)
toast("Failed updating: " + responseJson.reason)
} else {
alert.error("Failed to update framework for your org.")
toast("Failed to update framework for your org.")
}
} else {
alert.info("Updated usecase.")
toast("Updated usecase.")
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
//setFrameworkLoaded(true)
})
}
@@ -816,13 +815,13 @@ const AppFramework = (props) => {
})
.then((responseJson) => {
if (responseJson.success === false) {
alert.error("Failed to activate the app")
toast("Failed to activate the app")
} else {
//alert.success("App activated for your organization! Refresh the page to use the app.")
//toast("App activated for your organization! Refresh the page to use the app.")
}
})
.catch(error => {
//alert.error(error.toString())
//toast(error.toString())
console.log("Activate app error: ", error.toString())
});
}
@@ -852,9 +851,9 @@ const AppFramework = (props) => {
.then((responseJson) => {
if (responseJson.success === false) {
if (responseJson.reason !== undefined) {
alert.error("Failed updating: " + responseJson.reason)
toast("Failed updating: " + responseJson.reason)
} else {
alert.error("Failed to update framework for your org.")
toast("Failed to update framework for your org.")
}
}
@@ -863,7 +862,7 @@ const AppFramework = (props) => {
//setFrameworkData(responseJson)
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
//setFrameworkLoaded(true)
})
}
+1 -1
View File
@@ -74,7 +74,7 @@ const AppGrid = props => {
.then(response => {
if (response.success === true) {
setFormMessage(response.reason)
//alert.info("Thanks for submitting!")
//toast("Thanks for submitting!")
} else {
setFormMessage(errorMessage)
}
+4 -4
View File
@@ -2,8 +2,8 @@ import React, { useState, useEffect } from 'react';
import ReactGA from 'react-ga4';
import theme from '../theme';
import {Link} from 'react-router-dom';
import { useAlert } from "react-alert";
import { Search as SearchIcon, CloudQueue as CloudQueueIcon, Code as CodeIcon } from '@mui/icons-material';
import { toast } from 'react-toastify';
//import algoliasearch from 'algoliasearch/lite';
import algoliasearch from 'algoliasearch';
@@ -25,7 +25,7 @@ const Appsearch = props => {
const { maxRows, showName, showSuggestion, isMobile, globalUrl, parsedXs, newSelectedApp, setNewSelectedApp, defaultSearch, showSearch, ConfiguredHits, userdata, cy, isCreatorPage, actionImageList, setActionImageList} = props
const isCloud = window.location.host === "localhost:3002" || window.location.host === "shuffler.io";
const alert = useAlert();
//const alert = useAlert();
const rowHandler = maxRows === undefined || maxRows === null ? 50 : maxRows
const xs = parsedXs === undefined || parsedXs === null ? 12 : parsedXs
//const theme = useTheme();
@@ -68,12 +68,12 @@ const Appsearch = props => {
if (response.status !== 200) {
console.log("Status not 200 for set creator :O!");
}
alert.success("Sucessfully updated specialzed app.")
toast("Sucessfully updated specialzed app.")
return response.json();
})
.then((responseJson) => {
if (!responseJson.success && responseJson.reason !== undefined) {
alert.error("Failed updating user: " + responseJson.reason);
toast("Failed updating user: " + responseJson.reason);
}
})
.catch((error) => {
@@ -1,7 +1,8 @@
import React, { useState, useEffect } from "react";
import theme from '../theme.jsx';
import { useAlert } from "react-alert";
import { toast } from 'react-toastify';
import {
Tooltip,
IconButton,
@@ -34,7 +35,7 @@ const AuthenticationItem = (props) => {
const [selectedAuthenticationModalOpen, setSelectedAuthenticationModalOpen] = React.useState(false);
const [authenticationFields, setAuthenticationFields] = React.useState([]);
const alert = useAlert();
//const alert = useAlert();
var bgColor = "#27292d";
if (index % 2 === 0) {
bgColor = "#1f2023";
@@ -63,7 +64,7 @@ const AuthenticationItem = (props) => {
}
const deleteAuthentication = (data) => {
alert.info("Deleting auth " + data.label);
toast("Deleting auth " + data.label);
// Just use this one?
const url = globalUrl + "/api/v1/apps/authentication/" + data.id;
@@ -79,13 +80,13 @@ const AuthenticationItem = (props) => {
response.json().then((responseJson) => {
console.log("RESP: ", responseJson);
if (responseJson["success"] === false) {
alert.error("Failed deleting auth");
toast("Failed deleting auth");
} else {
// Need to wait because query in ES is too fast
setTimeout(() => {
getAppAuthentication();
}, 1000);
//alert.success("Successfully deleted authentication!")
//toast("Successfully deleted authentication!")
}
})
)
@@ -115,9 +116,9 @@ const AuthenticationItem = (props) => {
.then((response) =>
response.json().then((responseJson) => {
if (responseJson["success"] === false) {
alert.error("Failed overwriting appauth in workflows");
toast("Failed overwriting appauth in workflows");
} else {
alert.success("Successfully updated auth everywhere!");
toast("Successfully updated auth everywhere!");
//setSelectedUserModalOpen(false);
setTimeout(() => {
getAppAuthentication();
@@ -126,7 +127,7 @@ const AuthenticationItem = (props) => {
})
)
.catch((error) => {
alert.error("Err: " + error.toString());
toast("Err: " + error.toString());
});
};
@@ -1,7 +1,7 @@
import React, { useState, useEffect } from "react";
import theme from '../theme.jsx';
import { v4 as uuidv4 } from "uuid";
import { toast } from 'react-toastify';
import {
Button,
@@ -54,7 +54,7 @@ const AuthenticationData = (props) => {
})
.then((responseJson) => {
if (!responseJson.success) {
alert.error("Failed to set app auth: " + responseJson.reason);
toast("Failed to set app auth: " + responseJson.reason);
} else {
if (getAppAuthentication !== undefined) {
getAppAuthentication()
@@ -65,11 +65,11 @@ const AuthenticationData = (props) => {
}
// Needs a refresh with the new authentication..
//alert.success("Successfully saved new app auth")
//toast("Successfully saved new app auth")
}
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
console.log("New auth error: ", error.toString());
});
}
@@ -146,7 +146,7 @@ const AuthenticationData = (props) => {
selectedApp.authentication.parameters[key].name
] = "false";
} else {
alert.info(
toast(
"Field " +
selectedApp.authentication.parameters[key].name +
" can't be empty"
@@ -2,7 +2,7 @@ import React, { useState, useEffect } from "react";
import theme from '../theme.jsx';
import { v4 as uuidv4 } from "uuid";
import { useAlert } from "react-alert";
import { toast } from 'react-toastify';
import {
Divider,
@@ -44,7 +44,7 @@ const AuthenticationData = (props) => {
authFieldsOnly,
} = props
const alert = useAlert()
//const alert = useAlert()
let navigate = useNavigate();
const [submitSuccessful, setSubmitSuccessful] = useState(false)
const [authenticationOption, setAuthenticationOptions] = React.useState({
@@ -99,9 +99,9 @@ const AuthenticationData = (props) => {
.then((responseJson) => {
if (!responseJson.success) {
if (responseJson.reason === undefined) {
alert.error("Failed to set app auth. Are you logged in?")
toast("Failed to set app auth. Are you logged in?")
} else {
alert.error("Failed to set app auth: " + responseJson.reason);
toast("Failed to set app auth: " + responseJson.reason);
}
} else {
setSubmitSuccessful(true)
@@ -115,7 +115,7 @@ const AuthenticationData = (props) => {
}
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
console.log("New auth error: ", error.toString());
});
};
@@ -175,7 +175,7 @@ const AuthenticationData = (props) => {
selectedApp.authentication.parameters[paramkey].name
] = "false";
} else {
alert.info(
toast(
"Field " +
selectedApp.authentication.parameters[paramkey].name +
" can't be empty"
+2 -2
View File
@@ -11,11 +11,11 @@ import {
Card,
} from "@mui/material";
import { useAlert } from "react-alert";
//import { useAlert
const Branding = (props) => {
const { globalUrl, userdata, serverside, billingInfo, stripeKey, selectedOrganization, handleGetOrg, } = props;
const alert = useAlert();
//const alert = useAlert();
const [publishingInfo, setPublishingInfo] = useState("");
// Should enable / disable org branding
+11 -11
View File
@@ -16,7 +16,7 @@ import {
DialogTitle,
DialogActions,
} from "@mui/material";
import { useAlert } from "react-alert";
//import { useAlert
import {
Edit as EditIcon,
@@ -72,7 +72,7 @@ const CacheView = (props) => {
const [dataValue, setDataValue] = React.useState({});
const [editCache, setEditCache] = React.useState(false);
const [show, setShow] = useState({});
const alert = useAlert();
//const alert = useAlert();
useEffect(() => {
listOrgCache(orgId);
console.log("orgid", orgId);
@@ -105,7 +105,7 @@ const CacheView = (props) => {
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -148,7 +148,7 @@ const CacheView = (props) => {
const deleteCache = (orgId, key) => {
alert.info("Attempting to delete Cache");
toast("Attempting to delete Cache");
fetch(globalUrl + `/api/v1/orgs/${orgId}/cache/${key}`, {
method: "DELETE",
headers: {
@@ -158,16 +158,16 @@ const CacheView = (props) => {
})
.then((response) => {
if (response.status === 200) {
alert.success("Successfully deleted Cache");
toast("Successfully deleted Cache");
setTimeout(() => {
listOrgCache(orgId);
}, 1000);
} else {
alert.error("Failed deleting Cache. Does it still exist?");
toast("Failed deleting Cache. Does it still exist?");
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -197,12 +197,12 @@ const CacheView = (props) => {
})
.then((responseJson) => {
setAddCache(responseJson);
alert.success("Cache Edited Successfully!");
toast("Cache Edited Successfully!");
listOrgCache(orgId);
setModalOpen(false);
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -231,12 +231,12 @@ const CacheView = (props) => {
})
.then((responseJson) => {
setAddCache(responseJson);
alert.success("New Cache Added Successfully!");
toast("New Cache Added Successfully!");
listOrgCache(orgId);
setModalOpen(false);
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
+11 -11
View File
@@ -112,9 +112,9 @@ const ConfigureWorkflow = (props) => {
})
.then((response) => {
if (response.status === 200) {
//alert.success("Successfully GOT app "+appId)
//toast("Successfully GOT app "+appId)
} else {
alert.error("Failed getting app");
toast("Failed getting app");
}
return response.json();
@@ -128,7 +128,7 @@ const ConfigureWorkflow = (props) => {
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -566,7 +566,7 @@ const ConfigureWorkflow = (props) => {
.then((response) => {
if (response.status !== 200) {
//window.location.pathname = "/search"
//alert.error("Failed to find this app. Is it public?")
//toast("Failed to find this app. Is it public?")
}
return response.json();
@@ -574,16 +574,16 @@ const ConfigureWorkflow = (props) => {
.then((responseJson) => {
if (responseJson.success === false) {
if (responseJson.reason !== undefined) {
alert.error("Failed to activate the app: "+responseJson.reason);
toast("Failed to activate the app: "+responseJson.reason);
} else {
alert.error("Failed to activate the app");
toast("Failed to activate the app");
}
} else {
alert.success("App activated for your organization!");
toast("App activated for your organization!");
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -693,7 +693,7 @@ const ConfigureWorkflow = (props) => {
if (workflow.actions !== null) {
//console.log(workflow.actions)
alert.info("Setting action to version "+action.update_version)
toast("Setting action to version "+action.update_version)
for (let [key,keyval] in Object.entries(workflow.actions)) {
if (workflow.actions[key].app_name === action.app_name && workflow.actions[key].app_version === action.app_version) {
workflow.actions[key].app_version = action.update_version
@@ -851,7 +851,7 @@ const ConfigureWorkflow = (props) => {
console.log("NAVIGATOR: ", navigator);
const clipboard = navigator.clipboard;
if (clipboard === undefined) {
alert.error("Can only copy over HTTPS (port 3443)");
toast("Can only copy over HTTPS (port 3443)");
return;
}
@@ -864,7 +864,7 @@ const ConfigureWorkflow = (props) => {
/* Copy the text inside the text field */
document.execCommand("copy");
alert.success("Copied Webhook URL");
toast("Copied Webhook URL");
}
}}>
<Typography variant="body2" color="textSecondary">{webhook.description}</Typography>
+1 -1
View File
@@ -81,7 +81,7 @@ const CreatorGrid = props => {
.then(response => {
if (response.success === true) {
setFormMessage(response.reason)
//alert.info("Thanks for submitting!")
//toast("Thanks for submitting!")
} else {
setFormMessage(errorMessage)
}
+1 -1
View File
@@ -69,7 +69,7 @@ const DocsGrid = props => {
.then(response => {
if (response.success === true) {
setFormMessage(response.reason)
//alert.info("Thanks for submitting!")
//toast("Thanks for submitting!")
} else {
setFormMessage(errorMessage)
}
+1 -1
View File
@@ -127,7 +127,7 @@ const EditWorkflow = (props) => {
}
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
console.log("Get workflow error: ", error.toString());
})
}
+17 -17
View File
@@ -29,7 +29,7 @@ import {
Add as AddIcon,
} from "@mui/icons-material";
import { useAlert } from "react-alert";
//import { useAlert
import Dropzone from "../components/Dropzone.jsx";
import CodeEditor from "../components/ShuffleCodeEditor.jsx";
import theme from "../theme.jsx";
@@ -45,7 +45,7 @@ const Files = (props) => {
const [openEditor, setOpenEditor] = React.useState(false);
const [renderTextBox, setRenderTextBox] = React.useState(false);
const alert = useAlert();
//const alert = useAlert();
const allowedFileTypes = ["txt", "py", "yaml", "yml","json", "html", "js", "csv", "log"]
var upload = "";
@@ -113,7 +113,7 @@ const Files = (props) => {
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -139,12 +139,12 @@ const Files = (props) => {
})
.then((responseJson) => {
if (responseJson.success) {
alert.info("Successfully deleted file " + file.name);
toast("Successfully deleted file " + file.name);
} else if (
responseJson.reason !== undefined &&
responseJson.reason !== null
) {
alert.error("Failed to delete file: " + responseJson.reason);
toast("Failed to delete file: " + responseJson.reason);
}
setTimeout(() => {
getFiles();
@@ -153,7 +153,7 @@ const Files = (props) => {
console.log(responseJson);
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -178,7 +178,7 @@ const Files = (props) => {
// console.log("respdata type ->", typeof(respdata));
if (respdata.length === 0) {
alert.error("Failed getting file. Is it deleted?");
toast("Failed getting file. Is it deleted?");
return;
}
return respdata
@@ -189,7 +189,7 @@ const Files = (props) => {
//console.log("filecontent state ",fileContent);
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -210,7 +210,7 @@ const Files = (props) => {
})
.then((respdata) => {
if (respdata.length === 0) {
alert.error("Failed getting file. Is it deleted?");
toast("Failed getting file. Is it deleted?");
return;
}
@@ -249,7 +249,7 @@ const Files = (props) => {
//setSchedules(responseJson)
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -291,11 +291,11 @@ const Files = (props) => {
if (responseJson.success === true) {
handleFileUpload(responseJson.id, file);
} else {
alert.error("Failed to upload file ", filename);
toast("Failed to upload file ", filename);
}
})
.catch((error) => {
alert.error("Failed to upload file ", filename);
toast("Failed to upload file ", filename);
console.log(error.toString());
});
};
@@ -312,7 +312,7 @@ const Files = (props) => {
.then((response) => {
if (response.status !== 200 && response.status !== 201) {
console.log("Status not 200 for apps :O!");
alert.error("File was created, but failed to upload.");
toast("File was created, but failed to upload.");
return;
}
@@ -323,7 +323,7 @@ const Files = (props) => {
//setFiles(responseJson)
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -364,7 +364,7 @@ const Files = (props) => {
const files = isDropzone ? e.dataTransfer.files : e.target.files;
//const reader = new FileReader();
//alert.info("Starting fileupload")
//toast("Starting fileupload")
uploadFiles(files);
};
@@ -742,7 +742,7 @@ const Files = (props) => {
) {
const clipboard = navigator.clipboard;
if (clipboard === undefined) {
alert.error(
toast(
"Can only copy over HTTPS (port 3443)"
);
return;
@@ -758,7 +758,7 @@ const Files = (props) => {
/* Copy the text inside the text field */
document.execCommand("copy");
alert.info(file.id + " copied to clipboard");
toast(file.id + " copied to clipboard");
}
}}
>
+6 -6
View File
@@ -42,7 +42,7 @@ import {
Lightbulb as LightbulbIcon,
} from "@mui/icons-material";
import { useAlert } from "react-alert";
//import { useAlert
import SearchField from '../components/Searchfield.jsx'
const hoverColor = "#f85a3e"
@@ -51,7 +51,7 @@ const hoverOutColor = "#e8eaf6"
const Header = props => {
const { globalUrl, setNotifications, notifications, isLoggedIn, removeCookie, homePage, userdata, serverside, } = props;
//const theme = useTheme();
const alert = useAlert()
//const alert = useAlert()
const [HomeHoverColor, setHomeHoverColor] = useState(hoverOutColor);
@@ -101,7 +101,7 @@ const { globalUrl, setNotifications, notifications, isLoggedIn, removeCookie, ho
setNotifications([])
handleClose()
} else {
alert.error("Failed dismissing notifications. Please try again later.")
toast("Failed dismissing notifications. Please try again later.")
}
})
.catch(error => {
@@ -131,7 +131,7 @@ const { globalUrl, setNotifications, notifications, isLoggedIn, removeCookie, ho
console.log("NEW NOTIFICATIONS: ", newNotifications)
setNotifications(newNotifications)
} else {
alert.error("Failed dismissing notification. Please try again later.")
toast("Failed dismissing notification. Please try again later.")
}
})
.catch(error => {
@@ -406,9 +406,9 @@ const { globalUrl, setNotifications, notifications, isLoggedIn, removeCookie, ho
setTimeout(() => {
window.location.reload()
}, 2000)
alert.success("Successfully changed active organization - refreshing!")
toast("Successfully changed active organization - refreshing!")
} else {
alert.error("Failed changing org: ", responseJson.reason)
toast("Failed changing org: ", responseJson.reason)
}
})
.catch(error => {
+5 -5
View File
@@ -1,7 +1,7 @@
import React, { useRef, useState, useEffect, useLayoutEffect } from "react";
import { useParams, useNavigate, Link } from "react-router-dom";
import theme from '../theme.jsx';
import { useAlert } from "react-alert";
//import { useAlert
import { v4 as uuidv4 } from "uuid";
import {
@@ -99,7 +99,7 @@ const AuthenticationOauth2 = (props) => {
} = props;
let navigate = useNavigate();
const alert = useAlert()
//const alert = useAlert()
//const [update, setUpdate] = React.useState("|")
const [defaultConfigSet, setDefaultConfigSet] = React.useState(
@@ -422,7 +422,7 @@ const AuthenticationOauth2 = (props) => {
//}
//while(open === true)
} catch (e) {
alert.error(
toast(
"Failed authentication - probably bad credentials. Try again"
);
setButtonClicked(false);
@@ -451,7 +451,7 @@ const AuthenticationOauth2 = (props) => {
console.log("NEW AUTH: ", authenticationOption);
if (authenticationOption.label.length === 0) {
authenticationOption.label = `Auth for ${selectedApp.name}`;
//alert.info("Label can't be empty")
//toast("Label can't be empty")
//return
}
@@ -479,7 +479,7 @@ const AuthenticationOauth2 = (props) => {
selectedApp.authentication.parameters[key].name
] = "false";
} else {
alert.info(
toast(
"Field " + selectedApp.authentication.parameters[key].name.replace("_basic", "", -1).replace("_", " ", -1) + " can't be empty"
);
+4 -4
View File
@@ -17,7 +17,7 @@ import {
Save as SaveIcon,
} from "@mui/icons-material";
import { useAlert } from "react-alert";
//import { useAlert
const useStyles = makeStyles({
notchedOutline: {
@@ -39,7 +39,7 @@ const OrgHeader = (props) => {
handleEditOrg,
} = props;
const alert = useAlert();
//const alert = useAlert();
const classes = useStyles();
var upload = "";
@@ -210,13 +210,13 @@ const OrgHeader = (props) => {
const invalid = ["#", ":", "."];
for (var key in invalid) {
if (e.target.value.includes(invalid[key])) {
alert.error("Can't use " + invalid[key] + " in name");
toast("Can't use " + invalid[key] + " in name");
return;
}
}
if (e.target.value.length > 100) {
alert.error("Choose a shorter name.");
toast("Choose a shorter name.");
return;
}
+6 -6
View File
@@ -7,7 +7,7 @@ import { validateJson, GetIconInfo } from "../views/Workflows.jsx";
import { GetParsedPaths } from "../views/Apps.jsx";
import { sortByKey } from "../views/AngularWorkflow.jsx";
import { NestedMenuItem } from "mui-nested-menu";
import { useAlert } from "react-alert";
//import { useAlert
import {
ButtonGroup,
@@ -172,7 +172,7 @@ const ParsedAction = (props) => {
} = props;
const classes = useStyles();
const alert = useAlert()
//const alert = useAlert()
const [hideBody, setHideBody] = React.useState(true);
const [activateHidingBodyButton, setActivateHidingBodyButton] = React.useState(false);
@@ -227,9 +227,9 @@ const ParsedAction = (props) => {
})
.then((response) => {
if (response.status === 200) {
//alert.success("Successfully GOT app "+appId)
//toast("Successfully GOT app "+appId)
} else {
alert.error("Failed getting app");
toast("Failed getting app");
}
return response.json();
@@ -290,7 +290,7 @@ const ParsedAction = (props) => {
//foundparams.push(param.name)
}
} else {
alert.error("Couldn't find action " + selectedAction.name);
toast("Couldn't find action " + selectedAction.name);
}
selectedAction.errors = [];
@@ -306,7 +306,7 @@ const ParsedAction = (props) => {
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
+1 -1
View File
@@ -12,7 +12,7 @@ import {
} from "@mui/material";
import Priority from "../components/Priority.jsx";
import { useAlert } from "react-alert";
//import { useAlert
const Priorities = (props) => {
const { globalUrl, userdata, serverside, billingInfo, stripeKey, checkLogin, setAdminTab, setCurTab, } = props;
+4 -4
View File
@@ -17,7 +17,7 @@ import {
AutoFixHigh as AutoFixHighIcon,
ArrowForward as ArrowForwardIcon,
} from '@mui/icons-material';
import { useAlert } from "react-alert";
//import { useAlert
const Priority = (props) => {
const { globalUrl, userdata, serverside, priority, checkLogin, setAdminTab, setCurTab, } = props;
@@ -56,14 +56,14 @@ const Priority = (props) => {
}
} else {
if (responseJson.success === false && responseJson.reason !== undefined) {
alert.error("Failed change recommendation: ", responseJson.reason)
toast("Failed change recommendation: ", responseJson.reason)
} else {
alert.error("Failed change recommendation");
toast("Failed change recommendation");
}
}
})
.catch((error) => {
alert.info("Failed dismissing alert. Please contact support@shuffler.io if this persists.");
toast("Failed dismissing alert. Please contact support@shuffler.io if this persists.");
});
}
@@ -861,12 +861,12 @@ const CodeEditor = (props) => {
var newResult = {}
if (responseJson.success === true && responseJson.result !== null && responseJson.result !== undefined && responseJson.result.length > 0) {
const result = responseJson.result.slice(0, 50)+"..."
//alert.info("SUCCESS: "+result)
//toast("SUCCESS: "+result)
const validate = validateJson(responseJson.result)
newResult = validate
} else if (responseJson.success === false && responseJson.reason !== undefined && responseJson.reason !== null) {
alert.error(responseJson.reason)
toast(responseJson.reason)
newResult = {"valid": false, "result": responseJson.reason}
} else if (responseJson.success === true) {
newResult = {"valid": false, "result": "Couldn't finish execution. Please fill all the required fields, and retry the execution."}
@@ -882,7 +882,7 @@ const CodeEditor = (props) => {
setExecuting(false)
})
.catch(error => {
//alert.error("Execution error: "+error.toString())
//toast("Execution error: "+error.toString())
console.log("error: ", error)
setExecuting(false)
})
+20 -20
View File
@@ -1,7 +1,7 @@
import React, { useState, useEffect } from "react";
import theme from '../theme.jsx';
import { useNavigate, Link } from "react-router-dom";
import { useAlert } from "react-alert";
//import { useAlert
import ConfigureWorkflow from "../components/ConfigureWorkflow.jsx";
import PaperComponent from "../components/PaperComponent.jsx"
import AuthenticationOauth2 from "../components/Oauth2Auth.jsx";
@@ -349,14 +349,14 @@ const UsecaseSearch = (props) => {
const [firstRequest, setFirstRequest] = React.useState(true);
const isCloud = window.location.host === "localhost:3002" || window.location.host === "shuffler.io";
const alert = useAlert()
//const alert = useAlert()
useEffect(() => {
// if (firstRequest !== true && workflow.id !== undefined && autotry === true && setUsecaseSearch !== undefined && authenticationModalOpen === false && configureWorkflowModalOpen === false) {
//
if (autotry === true && configureWorkflowModalOpen === false && workflow.id !== undefined && setUsecaseSearch !== undefined) {
console.log("Close it?")
alert.info("Workflow successfully added! Add more apps, and we will suggest more workflows")
toast("Workflow successfully added! Add more apps, and we will suggest more workflows")
if (setCloseWindow !== undefined) {
setCloseWindow(true)
@@ -793,7 +793,7 @@ const UsecaseSearch = (props) => {
console.log("Deleted workflow")
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
console.log("Delete workflow error: ", error.toString());
})
}
@@ -822,7 +822,7 @@ const UsecaseSearch = (props) => {
}
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
console.log("Get workflows error: ", error.toString());
})
}
@@ -894,9 +894,9 @@ const UsecaseSearch = (props) => {
.then((responseJson) => {
if (responseJson.success === false) {
if (responseJson.reason !== undefined) {
alert.error("Error setting workflow: ", responseJson.reason)
toast("Error setting workflow: ", responseJson.reason)
} else {
alert.error("Error setting workflow.")
toast("Error setting workflow.")
}
return
@@ -905,7 +905,7 @@ const UsecaseSearch = (props) => {
return responseJson;
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
}
@@ -930,7 +930,7 @@ const UsecaseSearch = (props) => {
if (responseJson.success === false) {
if (responseJson.reason !== null && responseJson.reason !== undefined) {
//alert.error(responseJson.reason)
//toast(responseJson.reason)
}
if (responseJson.source === "") {
@@ -1009,13 +1009,13 @@ const UsecaseSearch = (props) => {
responseJson.status,
).then((response) => {
if (response !== undefined) {
alert.success("Successfully generated " + responseJson.name);
toast("Successfully generated " + responseJson.name);
}
});
}
})
.catch((error) => {
alert.error("Generate error: " + error.toString());
toast("Generate error: " + error.toString());
})
@@ -1057,7 +1057,7 @@ const UsecaseSearch = (props) => {
.catch((error) => {
setIsUploading(false)
console.log("Merge err: ", error.toString())
//alert.error("Err: " + error.toString());
//toast("Err: " + error.toString());
});
}
@@ -1207,7 +1207,7 @@ const UsecaseSearch = (props) => {
}
if (changed) {
//alert.error("Errors were found. Click them to sort sort them out or go to the next usecase.")
//toast("Errors were found. Click them to sort sort them out or go to the next usecase.")
//setUpdate(Math.random())
//setIsUploading(false)
@@ -1268,13 +1268,13 @@ const UsecaseSearch = (props) => {
})
.then((responseJson) => {
if (responseJson.success === false) {
alert.error("Failed to activate the app")
toast("Failed to activate the app")
} else {
//alert.success("App activated for your organization! Refresh the page to use the app.")
//toast("App activated for your organization! Refresh the page to use the app.")
}
})
.catch(error => {
//alert.error(error.toString())
//toast(error.toString())
console.log("Activate app error: ", error.toString())
});
}
@@ -1304,9 +1304,9 @@ const UsecaseSearch = (props) => {
.then((responseJson) => {
if (responseJson.success === false) {
if (responseJson.reason !== undefined) {
alert.error("Failed updating default app: " + responseJson.reason)
toast("Failed updating default app: " + responseJson.reason)
} else {
alert.error("Failed to update framework for your org.")
toast("Failed to update framework for your org.")
}
} else {
@@ -1319,7 +1319,7 @@ const UsecaseSearch = (props) => {
//setFrameworkData(responseJson)
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
//setFrameworkLoaded(true)
})
}
@@ -1516,7 +1516,7 @@ const UsecaseSearch = (props) => {
return (
<div key={curindex} style={{display: "flex", maxHeight: 40, minHeight: 40, borderTop: "1px solid rgba(255,255,255,0.3)", }} onClick={() => {
if (subdata.disabled === true) {
//alert.info("Usecase not available yet.")
//toast("Usecase not available yet.")
return
}
+8 -8
View File
@@ -38,7 +38,7 @@ import {
Chip,
ButtonGroup,
} from "@mui/material";
import { useAlert } from "react-alert";
//import { useAlert
import { useNavigate, Link } from "react-router-dom";
import WorkflowSearch from '../components/Workflowsearch.jsx';
@@ -134,7 +134,7 @@ const WelcomeForm = (props) => {
const isCloud = window.location.host === "localhost:3002" || window.location.host === "shuffler.io";
const alert = useAlert();
//const alert = useAlert();
let navigate = useNavigate();
const onNodeSelect = (label) => {
@@ -262,16 +262,16 @@ const WelcomeForm = (props) => {
response.json().then((responseJson) => {
if (responseJson["success"] === false) {
console.log("Update user success")
//alert.error("Failed updating org: ", responseJson.reason);
//toast("Failed updating org: ", responseJson.reason);
} else {
console.log("Update success!")
//alert.success("Successfully edited org!");
//toast("Successfully edited org!");
}
})
)
.catch((error) => {
console.log("Update err: ", error.toString())
//alert.error("Err: " + error.toString());
//toast("Err: " + error.toString());
});
}
@@ -308,15 +308,15 @@ const WelcomeForm = (props) => {
response.json().then((responseJson) => {
if (responseJson["success"] === false) {
console.log("Update of org failed")
//alert.error("Failed updating org: ", responseJson.reason);
//toast("Failed updating org: ", responseJson.reason);
} else {
//alert.success("Successfully edited org!");
//toast("Successfully edited org!");
}
})
)
.catch((error) => {
console.log("Update err: ", error.toString())
//alert.error("Err: " + error.toString());
//toast("Err: " + error.toString());
});
}
+2 -2
View File
@@ -69,7 +69,7 @@ const AppGrid = props => {
.then(response => {
if (response.success === true) {
setFormMessage(response.reason)
//alert.info("Thanks for submitting!")
//toast("Thanks for submitting!")
} else {
setFormMessage(errorMessage)
}
@@ -158,7 +158,7 @@ const AppGrid = props => {
}
})
.catch((error) => {
//alert.error("ERROR: " + error.toString());
//toast("ERROR: " + error.toString());
console.log("ERROR: " + error.toString());
});
};
+1 -1
View File
@@ -53,7 +53,7 @@ const WorkflowSearch = props => {
.then(response => {
if (response.success === true) {
setFormMessage(response.reason)
//alert.info("Thanks for submitting!")
//toast("Thanks for submitting!")
} else {
setFormMessage(errorMessage)
}
+95 -94
View File
@@ -75,7 +75,8 @@ import {
FmdGood as FmdGoodIcon,
} from "@mui/icons-material";
import { useAlert } from "react-alert";
//import { useAlert
import { ToastContainer, toast } from "react-toastify"
import Dropzone from "../components/Dropzone.jsx";
import HandlePaymentNew from "../views/HandlePaymentNew.jsx";
import OrgHeader from "../components/OrgHeader.jsx";
@@ -216,13 +217,13 @@ const Admin = (props) => {
.then((responseJson) => {
//console.log("RESPONSE: ", responseJson)
if (responseJson.success === true) {
//alert.info(responseJson.reason)
//toast(responseJson.reason)
setImage2FA(responseJson.reason);
setSecret2FA(responseJson.extra);
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -256,7 +257,7 @@ const Admin = (props) => {
//}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -287,7 +288,7 @@ const Admin = (props) => {
]
*/
const alert = useAlert();
//const alert = useAlert();
const handleStatusChange = (event) => {
const { value } = event.target;
console.log("value: ", value)
@@ -465,7 +466,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
}
const deleteAuthentication = (data) => {
alert.info("Deleting auth " + data.label);
toast("Deleting auth " + data.label);
// Just use this one?
const url = globalUrl + "/api/v1/apps/authentication/" + data.id;
@@ -480,13 +481,13 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
.then((response) =>
response.json().then((responseJson) => {
if (responseJson["success"] === false) {
alert.error("Failed deleting auth");
toast("Failed deleting auth");
} else {
// Need to wait because query in ES is too fast
setTimeout(() => {
getAppAuthentication();
}, 1000);
//alert.success("Successfully deleted authentication!")
//toast("Successfully deleted authentication!")
}
})
)
@@ -518,12 +519,12 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
response.json().then((responseJson) => {
console.log("RESP: ", responseJson);
if (responseJson["success"] === false) {
alert.error("Failed stopping schedule");
toast("Failed stopping schedule");
} else {
setTimeout(() => {
getSchedules();
}, 1500);
//alert.success("Successfully stopped schedule!")
//toast("Successfully stopped schedule!")
}
})
)
@@ -534,7 +535,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
if (userdata.support === true && selectedOrganization.id !== "" && selectedOrganization.id !== undefined && selectedOrganization.id !== null && selectedOrganization.id !== userdata.active_org.id) {
alert.info("Refreshing window to fix org support access")
toast("Refreshing window to fix org support access")
window.location.reload()
return null
}
@@ -559,15 +560,15 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
.then((response) => {
if (response.status === 200) {
} else {
//alert.info("Wrong code sent.")
//alert.info("Wrong code sent. Please try again.")
//toast("Wrong code sent.")
//toast("Wrong code sent. Please try again.")
}
return response.json();
})
.then((responseJson) => {
if (responseJson.success === true) {
alert.info("Successfully enabled 2fa");
toast("Successfully enabled 2fa");
setTimeout(() => {
getUsers();
@@ -579,19 +580,19 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
setSelectedUserModalOpen(false);
}, 1000);
} else {
alert.info("Wrong code sent. Please try again.");
//alert.error("Failed setting 2fa: ", responseJson.reason)
toast("Wrong code sent. Please try again.");
//toast("Failed setting 2fa: ", responseJson.reason)
}
})
.catch((error) => {
alert.info("Wrong code sent. Please try again.");
//alert.error("Err: " + error.toString())
toast("Wrong code sent. Please try again.");
//toast("Err: " + error.toString())
});
};
const handleStopOrgSync = (org_id) => {
if (org_id === undefined || org_id === null) {
alert.error("Couldn't get org " + org_id);
toast("Couldn't get org " + org_id);
return;
}
@@ -612,10 +613,10 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
.then((response) => {
if (response.status === 200) {
console.log("Cloud sync success?");
alert.success("Successfully stopped cloud sync");
toast("Successfully stopped cloud sync");
} else {
console.log("Cloud sync fail?");
alert.error(
toast(
"Failed stopping sync. Try again, and contact support if this persists."
);
}
@@ -628,7 +629,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
}, 1000);
})
.catch((error) => {
alert.error("Err: " + error.toString());
toast("Err: " + error.toString());
});
};
@@ -672,16 +673,16 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
responseJson.reason !== undefined
) {
setOrgSyncResponse(responseJson.reason);
alert.error("Failed to handle sync: " + responseJson.reason);
toast("Failed to handle sync: " + responseJson.reason);
} else if (!responseJson.success) {
alert.error("Failed to handle sync.");
toast("Failed to handle sync.");
} else {
getOrgs();
if (disableSync) {
alert.success("Successfully disabled sync!");
toast("Successfully disabled sync!");
setOrgSyncResponse("Successfully disabled syncronization");
} else {
alert.success("Cloud Syncronization successfully set up!");
toast("Cloud Syncronization successfully set up!");
setOrgSyncResponse(
"Successfully started syncronization. Cloud features you now have access to can be seen below."
);
@@ -696,7 +697,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
})
.catch((error) => {
setLoading(false);
alert.error("Err: " + error.toString());
toast("Err: " + error.toString());
});
};
@@ -718,16 +719,16 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
.then((response) =>
response.json().then((responseJson) => {
if (responseJson["success"] === false) {
alert.error("Failed changing authentication");
toast("Failed changing authentication");
} else {
//alert.success("Successfully password!")
//toast("Successfully password!")
setSelectedUserModalOpen(false);
getAppAuthentication();
}
})
)
.catch((error) => {
alert.error("Err: " + error.toString());
toast("Err: " + error.toString());
});
};
@@ -766,16 +767,16 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
.then((response) =>
response.json().then((responseJson) => {
if (responseJson["success"] === false) {
alert.error("Failed updating org: ", responseJson.reason);
toast("Failed updating org: ", responseJson.reason);
} else {
if (lead_info === undefined || lead_info === null || lead_info === []) {
alert.success("Successfully edited org!");
toast("Successfully edited org!");
}
}
})
)
.catch((error) => {
alert.error("Err: " + error.toString());
toast("Err: " + error.toString());
});
};
@@ -800,9 +801,9 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
.then((response) =>
response.json().then((responseJson) => {
if (responseJson["success"] === false) {
alert.error("Failed overwriting appauth in workflows");
toast("Failed overwriting appauth in workflows");
} else {
alert.success("Successfully updated auth everywhere!");
toast("Successfully updated auth everywhere!");
setSelectedUserModalOpen(false);
setTimeout(() => {
getAppAuthentication();
@@ -811,7 +812,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
})
)
.catch((error) => {
alert.error("Err: " + error.toString());
toast("Err: " + error.toString());
});
};
@@ -835,12 +836,12 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
response.json().then((responseJson) => {
if (responseJson["success"] === false) {
if (responseJson.reason !== undefined) {
alert.error(responseJson.reason);
toast(responseJson.reason);
} else {
alert.error("Failed creating suborg. Please try again");
toast("Failed creating suborg. Please try again");
}
} else {
alert.success(
toast(
"Successfully created suborg. Reloading in 3 seconds!"
);
setSelectedUserModalOpen(false);
@@ -855,7 +856,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
})
)
.catch((error) => {
alert.error("Err: " + error.toString());
toast("Err: " + error.toString());
});
};
@@ -878,18 +879,18 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
response.json().then((responseJson) => {
if (responseJson["success"] === false) {
if (responseJson.reason !== undefined) {
alert.error(responseJson.reason);
toast(responseJson.reason);
} else {
alert.error("Failed setting new password");
toast("Failed setting new password");
}
} else {
alert.success("Successfully updated password!");
toast("Successfully updated password!");
setSelectedUserModalOpen(false);
}
})
)
.catch((error) => {
alert.error("Err: " + error.toString());
toast("Err: " + error.toString());
});
};
@@ -914,9 +915,9 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
})
.then((responseJson) => {
if (!responseJson.success && responseJson.reason !== undefined) {
alert.error("Failed to deactivate user: " + responseJson.reason);
toast("Failed to deactivate user: " + responseJson.reason);
} else {
alert.success("Changed activation for user " + data.id);
toast("Changed activation for user " + data.id);
}
})
@@ -939,7 +940,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
}
if (orgId.length === 0) {
alert.error("Organization ID not defined. Please contact us on https://shuffler.io if this persists logout.");
toast("Organization ID not defined. Please contact us on https://shuffler.io if this persists logout.");
return;
}
@@ -960,7 +961,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
})
.then((responseJson) => {
if (responseJson["success"] === false) {
alert.error("Failed getting your org. If this persists, please contact support.");
toast("Failed getting your org. If this persists, please contact support.");
} else {
if (
responseJson.sync_features === undefined ||
@@ -1032,7 +1033,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
})
.catch((error) => {
console.log("Error getting org: ", error);
alert.error("Error getting current organization");
toast("Error getting current organization");
});
};
@@ -1061,7 +1062,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
response.json().then((responseJson) => {
if (responseJson["success"] === false) {
setLoginInfo("Error: " + responseJson.reason);
alert.error("Failed to send email (2). Please try again and contact support if this persists.")
toast("Failed to send email (2). Please try again and contact support if this persists.")
} else {
setLoginInfo("");
setModalOpen(false);
@@ -1069,13 +1070,13 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
getUsers();
}, 1000);
alert.info("Invite sent! They will show up in the list when they have accepted the invite.")
toast("Invite sent! They will show up in the list when they have accepted the invite.")
}
})
)
.catch((error) => {
console.log("Error in userdata: ", error);
alert.error("Failed to send email. Please try again and contact support if this persists.")
toast("Failed to send email. Please try again and contact support if this persists.")
});
};
@@ -1117,12 +1118,12 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
// Horrible frontend fix for environments
const setDefaultEnvironment = (environment) => {
// FIXME - add more checks to this
alert.info("Setting default env to " + environment.name);
toast("Setting default env to " + environment.name);
var newEnv = [];
for (var key in environments) {
if (environments[key].id == environment.id) {
if (environments[key].archived) {
alert.error("Can't set archived to default");
toast("Can't set archived to default");
return;
}
@@ -1150,7 +1151,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
.then((response) =>
response.json().then((responseJson) => {
if (responseJson["success"] === false) {
alert.error(responseJson.reason);
toast(responseJson.reason);
setTimeout(() => {
getEnvironments();
}, 1500);
@@ -1181,7 +1182,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
.then((response) =>
response.json().then((responseJson) => {
if (responseJson["success"] === false) {
alert.error(responseJson.reason);
toast(responseJson.reason);
getEnvironments();
} else {
setLoginInfo("");
@@ -1196,7 +1197,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
};
const rerunCloudWorkflows = (environment) => {
alert.info("Starting execution reruns. This can run in the background.")
toast("Starting execution reruns. This can run in the background.")
fetch(
`${globalUrl}/api/v1/environments/${environment.id}/rerun`,
{
@@ -1209,8 +1210,8 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
console.log("Status not 200 for apps :O!");
return;
} else {
alert.error(response.reason);
//alert.info("Aborted all dangling workflows");
toast(response.reason);
//toast("Aborted all dangling workflows");
}
return response.json();
@@ -1221,7 +1222,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
//setFiles(responseJson)
})
.catch((error) => {
//alert.error(error.toString())
//toast(error.toString())
});
};
@@ -1238,10 +1239,10 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
.then((response) => {
if (response.status !== 200) {
console.log("Status not 200 for apps :O!");
alert.error("Failed aborting dangling workflows");
toast("Failed aborting dangling workflows");
return;
} else {
alert.info("Aborted all dangling workflows");
toast("Aborted all dangling workflows");
}
return response.json();
@@ -1252,7 +1253,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
//setFiles(responseJson)
})
.catch((error) => {
//alert.error(error.toString())
//toast(error.toString())
});
};
@@ -1260,17 +1261,17 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
// FIXME - add some check here ROFL
//const name = environment.name
//alert.info("Modifying environment " + name)
//toast("Modifying environment " + name)
//var newEnv = []
//for (var key in environments) {
// if (environments[key].Name == name) {
// if (environments[key].default) {
// alert.error("Can't modify the default environment")
// toast("Can't modify the default environment")
// return
// }
// if (environments[key].type === "cloud" && !environments[key].archived) {
// alert.error("Can't modify cloud environments")
// toast("Can't modify cloud environments")
// return
// }
@@ -1281,17 +1282,17 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
//}
const id = environment.id;
//alert.info("Modifying environment " + environment.Name)
//toast("Modifying environment " + environment.Name)
var newEnv = [];
for (var key in environments) {
if (environments[key].id == id) {
if (environments[key].default) {
alert.error("Can't modify the default environment");
toast("Can't modify the default environment");
return;
}
if (environments[key].type === "cloud" && !environments[key].archived) {
alert.error("Can't modify cloud environments");
toast("Can't modify cloud environments");
return;
}
@@ -1314,7 +1315,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
.then((response) =>
response.json().then((responseJson) => {
if (responseJson["success"] === false) {
alert.error(responseJson.reason);
toast(responseJson.reason);
getEnvironments();
} else {
setLoginInfo("");
@@ -1387,7 +1388,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
setSchedules(responseJson);
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -1414,11 +1415,11 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
//console.log(responseJson)
setAuthentication(responseJson.data);
} else {
alert.error("Failed getting authentications");
toast("Failed getting authentications");
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -1443,7 +1444,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
setEnvironments(responseJson);
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -1471,7 +1472,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
setOrganizations(responseJson);
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -1497,7 +1498,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
setUsers(responseJson);
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -1672,10 +1673,10 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
})
.then((responseJson) => {
if (!responseJson.success && responseJson.reason !== undefined) {
alert.error("Failed setting user: " + responseJson.reason);
toast("Failed setting user: " + responseJson.reason);
} else {
//alert.success("Set the user field " + field + " to " + value);
alert.success("Successfully updated user field " + field)
//toast("Set the user field " + field + " to " + value);
toast("Successfully updated user field " + field)
if (field !== "suborgs") {
setSelectedUserModalOpen(false);
@@ -1712,9 +1713,9 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
.then((responseJson) => {
console.log("RESP: ", responseJson);
if (!responseJson.success && responseJson.reason !== undefined) {
alert.error("Failed getting new: " + responseJson.reason);
toast("Failed getting new: " + responseJson.reason);
} else {
alert.success("Got new API key");
toast("Got new API key");
}
})
.catch((error) => {
@@ -1808,9 +1809,9 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
}
if (error) {
alert.error("All fields must have a new value");
toast("All fields must have a new value");
} else {
alert.success("Saving new version of this authentication");
toast("Saving new version of this authentication");
selectedAuthentication.fields = authenticationFields;
saveAuthentication(selectedAuthentication);
setSelectedAuthentication({});
@@ -1827,7 +1828,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
const handleOrgEditChange = (event) => {
if (userdata.id === selectedUser.id) {
alert.info("Can't remove orgs from yourself");
toast("Can't remove orgs from yourself");
return;
}
@@ -2424,7 +2425,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
if (copyText !== null && copyText !== undefined) {
const clipboard = navigator.clipboard;
if (clipboard === undefined) {
alert.error("Can only copy over HTTPS (port 3443)");
toast("Can only copy over HTTPS (port 3443)");
return;
}
@@ -2438,7 +2439,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
/* Copy the text inside the text field */
document.execCommand("copy");
alert.info(org_id + " copied to clipboard");
toast(org_id + " copied to clipboard");
}
}}
>
@@ -3115,7 +3116,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
) {
const clipboard = navigator.clipboard;
if (clipboard === undefined) {
alert.error(
toast(
"Can only copy over HTTPS (port 3443)"
);
return;
@@ -3131,7 +3132,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
/* Copy the text inside the text field */
document.execCommand("copy");
alert.info("Apikey copied to clipboard");
toast("Apikey copied to clipboard");
}
}}
>
@@ -3786,14 +3787,14 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
}
} else {
if (responseJson.success === false && responseJson.reason !== undefined) {
alert.error("Failed change recommendation: ", responseJson.reason)
toast("Failed change recommendation: ", responseJson.reason)
} else {
alert.error("Failed change recommendation");
toast("Failed change recommendation");
}
}
})
.catch((error) => {
alert.info("Failed dismissing alert. Please contact support@shuffler.io if this persists.");
toast("Failed dismissing alert. Please contact support@shuffler.io if this persists.");
});
}
@@ -3953,7 +3954,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
disabled={environment.Type === "cloud"}
onClick={() => {
if (environment.Type === "cloud") {
alert.info("No Orborus necessary for environment cloud. Create and use a different environment to run executions on-premises.")
toast("No Orborus necessary for environment cloud. Create and use a different environment to run executions on-premises.")
return
}
@@ -3964,7 +3965,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
if (copyText !== null && copyText !== undefined) {
const clipboard = navigator.clipboard;
if (clipboard === undefined) {
alert.error("Can only copy over HTTPS (port 3443)");
toast("Can only copy over HTTPS (port 3443)");
return;
}
@@ -3978,7 +3979,7 @@ Let me know if you're interested, or set up a call here: https://drift.me/${user
/* Copy the text inside the text field */
document.execCommand("copy");
alert.info("Orborus command copied to clipboard");
toast("Orborus command copied to clipboard");
}
}}
>
+106 -105
View File
@@ -12,7 +12,8 @@ import { useBeforeunload } from "react-beforeunload";
import ReactJson from "react-json-view";
import { NestedMenuItem } from 'mui-nested-menu';
import ReactMarkdown from "react-markdown";
import { useAlert } from "react-alert";
//import { useAlert
import { ToastContainer, toast } from "react-toastify"
import { isMobile } from "react-device-detect"
import aa from 'search-insights'
import Drift from "react-driftjs";
@@ -384,7 +385,7 @@ const searchClient = algoliasearch("JNSS5CFDZZ", "db08e40265e2941b9a7d8f644b6e52
const AngularWorkflow = (defaultprops) => {
const { globalUrl, isLoggedIn, isLoaded, userdata, data_id } = defaultprops;
const referenceUrl = globalUrl + "/api/v1/hooks/";
const alert = useAlert()
//const alert = useAlert()
let navigate = useNavigate();
const params = useParams();
var props = JSON.parse(JSON.stringify(defaultprops))
@@ -584,9 +585,9 @@ const AngularWorkflow = (defaultprops) => {
})
.then((response) => {
if (response.status === 200) {
//alert.success("Successfully GOT app "+appId)
//toast("Successfully GOT app "+appId)
} else {
//alert.error("Failed getting app");
//toast("Failed getting app");
}
return response.json();
@@ -604,7 +605,7 @@ const AngularWorkflow = (defaultprops) => {
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -644,7 +645,7 @@ const AngularWorkflow = (defaultprops) => {
setListCache(responseJson);
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -746,7 +747,7 @@ const AngularWorkflow = (defaultprops) => {
}
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
console.log("Workflow error: ", error.toString())
});
};
@@ -893,17 +894,17 @@ const AngularWorkflow = (defaultprops) => {
})
.then((responseJson) => {
if (!responseJson.success) {
alert.error("Failed to set app auth: " + responseJson.reason);
toast("Failed to set app auth: " + responseJson.reason);
} else {
getAppAuthentication(true, false);
setAuthenticationModalOpen(false);
// Needs a refresh with the new authentication..
//alert.success("Successfully saved new app auth")
//toast("Successfully saved new app auth")
}
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
console.log("New auth error: ", error.toString());
});
};
@@ -992,7 +993,7 @@ const AngularWorkflow = (defaultprops) => {
}
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
console.log("Get execution error: ", error.toString());
});
};
@@ -1046,7 +1047,7 @@ const AngularWorkflow = (defaultprops) => {
return response.json();
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
console.log("Abort error: ", error.toString());
});
};
@@ -1159,7 +1160,7 @@ const AngularWorkflow = (defaultprops) => {
if (!visited.includes(label)) {
//if (item.action.result !== undefined && item.action.result !== null && !item.action.result.includes("failed condition")) {
// alert.error("Error for " + item.action.label + " with result " + item.result);
// toast("Error for " + item.action.label + " with result " + item.result);
//}
visited.push(label);
setVisited(visited);
@@ -1287,7 +1288,7 @@ const AngularWorkflow = (defaultprops) => {
})
.catch((error) => {
console.log("Stream send error: ", error.toString())
//alert.error(error.toString());
//toast(error.toString());
})
}
@@ -1458,7 +1459,7 @@ const AngularWorkflow = (defaultprops) => {
newComments.push(curworkflowComment);
} else {
alert.info("No handler for type: " + type);
toast("No handler for type: " + type);
}
}
}
@@ -1519,9 +1520,9 @@ const AngularWorkflow = (defaultprops) => {
if (!responseJson.success) {
console.log(responseJson);
if (responseJson.reason !== undefined && responseJson.reason !== null) {
alert.error("Failed to save: " + responseJson.reason);
toast("Failed to save: " + responseJson.reason);
} else {
alert.error("Failed to save. Please contact your support@shuffler.io or your local admin if this is unexpected.")
toast("Failed to save. Please contact your support@shuffler.io or your local admin if this is unexpected.")
}
} else {
@@ -1570,7 +1571,7 @@ const AngularWorkflow = (defaultprops) => {
})
.catch((error) => {
setSavingState(0);
//alert.error(error.toString());
//toast(error.toString());
console.log("Save workflow error: ", error.toString());
});
@@ -1615,12 +1616,12 @@ const AngularWorkflow = (defaultprops) => {
}
if (workflow.public) {
alert.info("Save it to get a new version");
toast("Save it to get a new version");
}
var returncheck = monitorUpdates();
if (!returncheck) {
alert.error("No startnode set.");
toast("No startnode set.");
return;
}
@@ -1656,7 +1657,7 @@ const AngularWorkflow = (defaultprops) => {
})
.then((responseJson) => {
if (!responseJson.success) {
alert.error("Failed to start: " + responseJson.reason);
toast("Failed to start: " + responseJson.reason);
setExecutionRunning(false);
setExecutionRequestStarted(false);
stop();
@@ -1676,7 +1677,7 @@ const AngularWorkflow = (defaultprops) => {
responseJson.authorization === "" ||
responseJson.authorization === undefined
) {
alert.error("Something went wrong during execution startup");
toast("Something went wrong during execution startup");
console.log("BAD RESPONSE FOR EXECUTION: ", responseJson);
setExecutionRunning(false);
setExecutionRequestStarted(false);
@@ -1698,7 +1699,7 @@ const AngularWorkflow = (defaultprops) => {
start();
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
setExecutionRequestStarted(false)
console.log("Execute workflow err: ", error.toString());
});
@@ -1809,16 +1810,16 @@ const AngularWorkflow = (defaultprops) => {
setSelectedAction(selectedAction);
setWorkflow(workflow);
saveWorkflow(workflow);
alert.info("Added and updated authentication!");
toast("Added and updated authentication!");
shouldClose = true
} else {
console.log("Closing auth modal? FAIL")
alert.error("Failed to find new authentication. See details in Oauth2 popup window where auth was attempted.");
toast("Failed to find new authentication. See details in Oauth2 popup window where auth was attempted.");
shouldClose = false
}
} else {
alert.info("No authentication to update");
toast("No authentication to update");
}
} else {
shouldClose = true
@@ -1835,7 +1836,7 @@ const AngularWorkflow = (defaultprops) => {
})
.catch((error) => {
setAppAuthentication([]);
//alert.error("Auth loading error: " + error.toString());
//toast("Auth loading error: " + error.toString());
console.log("AppAuth error: " + error.toString());
});
};
@@ -1867,7 +1868,7 @@ const AngularWorkflow = (defaultprops) => {
setFilteredApps(pretend_apps)
setPrioritizedApps(pretend_apps);
alert.error("Something went wrong while loading apps. Please refresh the window to try again.")
toast("Something went wrong while loading apps. Please refresh the window to try again.")
return
}
@@ -1930,7 +1931,7 @@ const AngularWorkflow = (defaultprops) => {
.catch((error) => {
console.log("App loading error: " + error.toString());
setAppsLoaded(true)
//alert.error("App loading error: "+error.toString());
//toast("App loading error: "+error.toString());
});
};
@@ -2008,7 +2009,7 @@ const AngularWorkflow = (defaultprops) => {
}
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
console.log("Error loading files: ", error)
});
};
@@ -2027,9 +2028,9 @@ const AngularWorkflow = (defaultprops) => {
console.log("Status not 200 for workflows :O!");
if (response.status >= 500) {
alert.info("Something went wrong while loading the workflow. Please reload.")
toast("Something went wrong while loading the workflow. Please reload.")
} else {
alert.info("You don't access to this workflow or loading failed.")
toast("You don't access to this workflow or loading failed.")
window.location.pathname = "/workflows";
}
}
@@ -2064,7 +2065,7 @@ const AngularWorkflow = (defaultprops) => {
fetchRecommendations(responseJson)
if (responseJson.public) {
//alert.info("This workflow is public. Save the workflow to use it in your organization.");
//toast("This workflow is public. Save the workflow to use it in your organization.");
setAppAuthentication([])
console.log("RESP: ", responseJson)
@@ -2280,7 +2281,7 @@ const AngularWorkflow = (defaultprops) => {
}
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
console.log("Get workflows error: ", error.toString());
});
};
@@ -2411,7 +2412,7 @@ const AngularWorkflow = (defaultprops) => {
event.target.data("type") !== "COMMENT" &&
event.target.data().decorator
) {
alert.info("This edge can't be edited.");
toast("This edge can't be edited.");
} else {
//console.log("DATA: ", event.target.data())
const destinationId = event.target.data("target");
@@ -2423,7 +2424,7 @@ const AngularWorkflow = (defaultprops) => {
curaction.app_name === "Shuffle Tools" &&
curaction.name === "router"
) {
alert.info("Router action can't have incoming conditions");
toast("Router action can't have incoming conditions");
event.target.unselect();
return;
}
@@ -2455,7 +2456,7 @@ const AngularWorkflow = (defaultprops) => {
if (nodedata.type === "TRIGGER" && (nodedata.app_name === "Shuffle Workflow" || nodedata.app_name === "User Input")) {
if (nodedata.parameters === null) {
alert.error("Set a workflow first");
toast("Set a workflow first");
return;
}
@@ -3045,7 +3046,7 @@ const AngularWorkflow = (defaultprops) => {
curaction = data
} else {
if (workflow.public !== true) {
alert.error("Action not found. Please remake it.");
toast("Action not found. Please remake it.");
}
event.target.remove();
@@ -3103,7 +3104,7 @@ const AngularWorkflow = (defaultprops) => {
if (!curapp || curapp === undefined) {
console.log("APPS - couldn't find it: ", newapps)
//alert.error(`App ${curaction.app_name}:${curaction.app_version} not found. Is it activated?`);
//toast(`App ${curaction.app_name}:${curaction.app_version} not found. Is it activated?`);
const tmpapp = {
name: curaction.app_name,
@@ -3295,7 +3296,7 @@ const AngularWorkflow = (defaultprops) => {
// workflow.actions.push(data)
// curaction = data
//} else {
// alert.error("Action not found. Please remake it.");
// toast("Action not found. Please remake it.");
// event.target.remove();
// return;
//}
@@ -3329,7 +3330,7 @@ const AngularWorkflow = (defaultprops) => {
} else if (data.type === "COMMENT") {
setSelectedComment(data);
} else {
alert.error("Can't handle node type " + data.type);
toast("Can't handle node type " + data.type);
return;
}
@@ -3383,16 +3384,16 @@ const AngularWorkflow = (defaultprops) => {
})
.then((responseJson) => {
if (responseJson.success === false) {
alert.error("Failed to auto-activate the app. Go to /apps and activate it.")
toast("Failed to auto-activate the app. Go to /apps and activate it.")
} else {
if (refresh === true) {
//alert.success("App activated for your organization! Refresh the page to use the app.")
//toast("App activated for your organization! Refresh the page to use the app.")
getApps()
}
}
})
.catch(error => {
//alert.error(error.toString())
//toast(error.toString())
console.log("Activate app error: ", error.toString())
});
}
@@ -3707,7 +3708,7 @@ const AngularWorkflow = (defaultprops) => {
event.target.remove()
//console.log("Found branch already!")
alert.info("Triggers can have exactly one target node")
toast("Triggers can have exactly one target node")
return
@@ -3740,7 +3741,7 @@ const AngularWorkflow = (defaultprops) => {
workflow.triggers[targetnode].app_name === "Shuffle Workflow"
) {
} else {
alert.error("Can't have triggers as target of branch");
toast("Can't have triggers as target of branch");
event.target.remove();
}
}
@@ -3793,7 +3794,7 @@ const AngularWorkflow = (defaultprops) => {
workflow.branches[branchkey].destination_id === edge.source &&
workflow.branches[branchkey].source_id === edge.target
) {
alert.error("A branch in the opposite direction already exists");
toast("A branch in the opposite direction already exists");
event.target.remove();
found = true;
break;
@@ -3803,7 +3804,7 @@ const AngularWorkflow = (defaultprops) => {
) {
console.log(edge.source);
//alert.error("That branch already exists");
//toast("That branch already exists");
event.target.remove();
found = true;
@@ -3814,7 +3815,7 @@ const AngularWorkflow = (defaultprops) => {
);
if (targetnode === -1) {
if (targetnode.type !== "TRIGGER") {
alert.error("Can't make arrow to starting node");
toast("Can't make arrow to starting node");
event.target.remove();
break;
}
@@ -3829,7 +3830,7 @@ const AngularWorkflow = (defaultprops) => {
// console.log("Destination: ", edge.target)
// console.log("CHECK SOURCE IF ITS A TRIGGER: ", targetnode)
// if (targetnode !== -1) {
// alert.error("Triggers can only target one target (startnode)")
// toast("Triggers can only target one target (startnode)")
// event.target.remove()
// found = true
// break
@@ -3844,7 +3845,7 @@ const AngularWorkflow = (defaultprops) => {
console.log("TARGETNODE: ", targetnode)
if (workflow.triggers[targetnode].app_name === "User Input" || workflow.triggers[targetnode].app_name === "Shuffle Workflow") {
} else {
alert.error("Can't have triggers as target of branch")
toast("Can't have triggers as target of branch")
event.target.remove()
found = true
break
@@ -3937,7 +3938,7 @@ const AngularWorkflow = (defaultprops) => {
/*
var curaction = workflow.actions.find((a) => a.id === nodedata.id);
if (curaction === null || curaction === undefined) {
alert.error("Node not found. Please remake it.")
toast("Node not found. Please remake it.")
event.target.remove();
}
*/
@@ -4016,7 +4017,7 @@ const AngularWorkflow = (defaultprops) => {
setWorkflow(workflow);
} else if (nodedata.type === "TRIGGER") {
if (nodedata.is_valid === false) {
alert.info("This trigger is not available to you");
toast("This trigger is not available to you");
node.remove();
return;
}
@@ -4101,7 +4102,7 @@ const AngularWorkflow = (defaultprops) => {
data: newdata,
})
alert.error("You must STOP the trigger before deleting its branches")
toast("You must STOP the trigger before deleting its branches")
} catch (e) {
console.log("Failed re-adding edge: ", e)
}
@@ -4258,7 +4259,7 @@ const AngularWorkflow = (defaultprops) => {
if (copyText !== null && copyText !== undefined) {
const clipboard = navigator.clipboard;
if (clipboard === undefined) {
alert.error("Can only copy over HTTPS (port 3443)");
toast("Can only copy over HTTPS (port 3443)");
return;
}
@@ -4266,7 +4267,7 @@ const AngularWorkflow = (defaultprops) => {
copyText.select();
copyText.setSelectionRange(0, 99999); /* For mobile devices */
document.execCommand("copy");
alert.success(`Copied ${cydata.length} element(s)`);
toast(`Copied ${cydata.length} element(s)`);
}
}
}
@@ -4279,7 +4280,7 @@ const AngularWorkflow = (defaultprops) => {
/*
const clipboard = navigator.clipboard
if (clipboard === undefined || window === undefined || window === null) {
alert.error("Can only use cliboard over HTTPS (port 3443)")
toast("Can only use cliboard over HTTPS (port 3443)")
return
}
@@ -4387,7 +4388,7 @@ const AngularWorkflow = (defaultprops) => {
}
} catch (e) {
console.log("Error pasting: ", e);
//alert.info("Failed parsing clipboard: ", e)
//toast("Failed parsing clipboard: ", e)
}
};
@@ -4458,7 +4459,7 @@ const AngularWorkflow = (defaultprops) => {
}
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
console.log("Get environments error: ", error.toString());
});
};
@@ -5478,7 +5479,7 @@ const AngularWorkflow = (defaultprops) => {
//}
const parsedSelection = cy.$(":selected");
if (selectedNode.data().decorator === true && selectedNode.data("type") !== "COMMENT") {
alert.info("This node can't be deleted.");
toast("This node can't be deleted.");
} else {
console.log("Deleted.")
selectedNode.remove();
@@ -5545,7 +5546,7 @@ const AngularWorkflow = (defaultprops) => {
}
})
.catch((error) => {
//alert.error("ERROR: " + error.toString());
//toast("ERROR: " + error.toString());
console.log("ERROR getting usecases: " + error.toString());
})
}
@@ -5574,7 +5575,7 @@ const AngularWorkflow = (defaultprops) => {
}
})
.catch((error) => {
//alert.error("ERROR: " + error.toString());
//toast("ERROR: " + error.toString());
console.log("ERROR getting usecases: " + error.toString());
})
}
@@ -5749,7 +5750,7 @@ const AngularWorkflow = (defaultprops) => {
console.log("END: ", cy)
var cydata = cy.$(":selected").jsons();
if (cydata !== undefined && cydata !== null && cydata.length > 0) {
alert.success(`Selected ${cydata.length} element(s). CTRL+C to copy them.`);
toast(`Selected ${cydata.length} element(s). CTRL+C to copy them.`);
}
});
@@ -5804,10 +5805,10 @@ const AngularWorkflow = (defaultprops) => {
// No matter what, it's being stopped.
if (!responseJson.success) {
if (responseJson.reason !== undefined) {
alert.error("Failed to stop schedule: " + responseJson.reason);
toast("Failed to stop schedule: " + responseJson.reason);
}
} else {
alert.success("Successfully stopped schedule");
toast("Successfully stopped schedule");
}
workflow.triggers[triggerindex].status = "stopped";
@@ -5817,14 +5818,14 @@ const AngularWorkflow = (defaultprops) => {
saveWorkflow(workflow);
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
console.log("Stop schedule error: ", error.toString());
});
};
const submitSchedule = (trigger, triggerindex) => {
if (trigger.name.length <= 0) {
alert.error("Error: name can't be empty");
toast("Error: name can't be empty");
return;
}
@@ -5841,7 +5842,7 @@ const AngularWorkflow = (defaultprops) => {
}
}
alert.info("Creating schedule")
toast("Creating schedule")
const data = {
name: trigger.name,
frequency: workflow.triggers[triggerindex].parameters[0].value,
@@ -5872,9 +5873,9 @@ const AngularWorkflow = (defaultprops) => {
})
.then((responseJson) => {
if (!responseJson.success) {
alert.error("Failed to set schedule: " + responseJson.reason);
toast("Failed to set schedule: " + responseJson.reason);
} else {
alert.success("Successfully created schedule");
toast("Successfully created schedule");
workflow.triggers[triggerindex].status = "running";
trigger.status = "running";
setSelectedTrigger(trigger);
@@ -5884,7 +5885,7 @@ const AngularWorkflow = (defaultprops) => {
}
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
console.log("Get schedule error: ", error.toString());
});
};
@@ -6397,7 +6398,7 @@ const AngularWorkflow = (defaultprops) => {
currentnode[0].renderedPosition("y", e.pageY - cycontainer.offsetTop);
} else {
if (workflow.start === "" || workflow.start === undefined) {
alert.error("Define a starting action first.");
toast("Define a starting action first.");
return;
}
@@ -6602,7 +6603,7 @@ const AngularWorkflow = (defaultprops) => {
app.actions === null ||
app.actions.length === 0
) {
alert.error(
toast(
"App " +
app.name +
" currently has no actions to perform. Please go to https://shuffler.io/apps to edit it."
@@ -7131,13 +7132,13 @@ const AngularWorkflow = (defaultprops) => {
return (
<div style={{ textDecoration: "none", color: "white", }} onClick={(event) => {
//if (!isCloud) {
// alert.info("Since this is an on-prem instance. You will need to activate the app yourself. Opening link to download it in a new window.")
// toast("Since this is an on-prem instance. You will need to activate the app yourself. Opening link to download it in a new window.")
// setTimeout(() => {
// event.preventDefault()
// window.open(parsedUrl, '_blank')
// }, 2000)
//} else {
alert.info(`Activating ${name}`)
toast(`Activating ${name}`)
//}
console.log("CLICK: ", hit)
@@ -7346,7 +7347,7 @@ const AngularWorkflow = (defaultprops) => {
);
if (newaction === undefined || newaction === null) {
alert.error("Failed to find the action");
toast("Failed to find the action");
return;
}
@@ -7696,7 +7697,7 @@ const AngularWorkflow = (defaultprops) => {
// Max 1 folder for office for some reason. MailFolders('MAILBOX_ID') in resource
// Can't parse URL with multiple folders.
if (selectedTrigger.name === "Office365" & value !== undefined && value !== null && value.length > 1) {
alert.info("Max 1 folder at a time allowed for Office365")
toast("Max 1 folder at a time allowed for Office365")
console.log("VALUE: ", value)
value = [value[0]]
}
@@ -8900,7 +8901,7 @@ const AngularWorkflow = (defaultprops) => {
(branch) => branch.source_id === selectedTrigger.id
);
if (branch === undefined || branch === null) {
alert.error(
toast(
"No startnode connected to node. Connect it to an action."
);
return;
@@ -8996,7 +8997,7 @@ const AngularWorkflow = (defaultprops) => {
(branch) => branch.source_id === selectedTrigger.id
);
if (branch === undefined || branch === null) {
alert.error(
toast(
"No startnode connected to node. Connect it to an action."
);
return;
@@ -10982,7 +10983,7 @@ const AngularWorkflow = (defaultprops) => {
console.log("NAVIGATOR: ", navigator);
const clipboard = navigator.clipboard;
if (clipboard === undefined) {
alert.error("Can only copy over HTTPS (port 3443)");
toast("Can only copy over HTTPS (port 3443)");
return;
}
@@ -10995,7 +10996,7 @@ const AngularWorkflow = (defaultprops) => {
/* Copy the text inside the text field */
document.execCommand("copy");
alert.success("Copied Webhook URL");
toast("Copied Webhook URL");
} else {
console.log("Couldn't find webhook URI field: ", copyText);
}
@@ -11207,7 +11208,7 @@ const AngularWorkflow = (defaultprops) => {
return;
}
alert.info("Stopping mail trigger");
toast("Stopping mail trigger");
const requesttype = triggerAuthentication.type;
fetch(
`${globalUrl}/api/v1/workflows/${props.match.params.key}/${requesttype}/${trigger.id}`,
@@ -11229,7 +11230,7 @@ const AngularWorkflow = (defaultprops) => {
})
.then((responseJson) => {
if (responseJson.success) {
alert.success("Successfully stopped trigger");
toast("Successfully stopped trigger");
// Set the status
workflow.triggers[triggerindex].status = "stopped";
trigger.status = "stopped";
@@ -11237,11 +11238,11 @@ const AngularWorkflow = (defaultprops) => {
setSelectedTrigger(trigger);
saveWorkflow(workflow);
} else {
alert.error("Failed stopping trigger: " + responseJson.reason);
toast("Failed stopping trigger: " + responseJson.reason);
}
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
console.log("Stop mailsub error: ", error.toString());
});
};
@@ -11263,7 +11264,7 @@ const AngularWorkflow = (defaultprops) => {
const item = splitItem[splitkey];
const curfolder = triggerFolders.find((a) => a.displayName === item);
if (curfolder === undefined) {
alert.error("Something went wrong with folder selection: " + item);
toast("Something went wrong with folder selection: " + item);
return;
}
@@ -11277,7 +11278,7 @@ const AngularWorkflow = (defaultprops) => {
};
const requesttype = triggerAuthentication.type;
alert.info(
toast(
"Creating " + requesttype + " subscription with name " + trigger.name
);
@@ -11306,9 +11307,9 @@ const AngularWorkflow = (defaultprops) => {
})
.then((responseJson) => {
if (!responseJson.success) {
alert.error("Failed to start trigger: " + responseJson.reason);
toast("Failed to start trigger: " + responseJson.reason);
} else {
alert.success(
toast(
"Successfully started folder subscription trigger. Test it by sending yoursend an email"
);
@@ -11320,7 +11321,7 @@ const AngularWorkflow = (defaultprops) => {
}
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
console.log("Start mailsub error: ", error.toString());
});
};
@@ -11328,12 +11329,12 @@ const AngularWorkflow = (defaultprops) => {
const newWebhook = (trigger) => {
const hookname = trigger.label;
if (hookname.length === 0) {
alert.error("Missing name");
toast("Missing name");
return;
}
if (trigger.id.length !== 36) {
alert.error("Missing id");
toast("Missing id");
return;
}
@@ -11343,10 +11344,10 @@ const AngularWorkflow = (defaultprops) => {
(branch) => branch.source_id === trigger.id
);
if (branch === undefined && (workflow.start === undefined || workflow.start === null || workflow.start.length === 0)) {
alert.error("No webhook node defined");
toast("No webhook node defined");
}
alert.info("Starting webhook");
toast("Starting webhook");
if (branch !== undefined) {
startNode = branch.destination_id;
}
@@ -11398,14 +11399,14 @@ const AngularWorkflow = (defaultprops) => {
.then((responseJson) => {
if (responseJson.success) {
// Set the status
alert.success("Successfully started webhook");
toast("Successfully started webhook");
trigger.status = "running";
setSelectedTrigger(trigger);
workflow.triggers[selectedTriggerIndex].status = "running";
setWorkflow(workflow);
saveWorkflow(workflow);
} else {
alert.error("Failed starting webhook: " + responseJson.reason);
toast("Failed starting webhook: " + responseJson.reason);
}
})
.catch((error) => {
@@ -11444,7 +11445,7 @@ const AngularWorkflow = (defaultprops) => {
saveWorkflow(workflow);
} else {
if (responseJson.reason !== undefined) {
alert.error("Failed stopping webhook: " + responseJson.reason);
toast("Failed stopping webhook: " + responseJson.reason);
}
}
@@ -11453,8 +11454,8 @@ const AngularWorkflow = (defaultprops) => {
setSelectedTrigger(trigger);
})
.catch((error) => {
//alert.error(error.toString());
alert.error("Delete webhook error. Contact support or check logs if this persists.")
//toast(error.toString());
toast("Delete webhook error. Contact support or check logs if this persists.")
});
};
@@ -13406,7 +13407,7 @@ const AngularWorkflow = (defaultprops) => {
const clipboard = navigator.clipboard;
if (clipboard === undefined) {
alert.error("Can only copy over HTTPS (port 3443)");
toast("Can only copy over HTTPS (port 3443)");
return;
}
@@ -13423,7 +13424,7 @@ const AngularWorkflow = (defaultprops) => {
document.execCommand("copy");
console.log("COPYING!");
alert.info("Copied value to clipboard, NOT json path.")
toast("Copied value to clipboard, NOT json path.")
} else {
console.log("Failed to copy from " + elementName + ": ", copyText);
}
@@ -13494,7 +13495,7 @@ const AngularWorkflow = (defaultprops) => {
console.log("NAVIGATOR: ", navigator);
const clipboard = navigator.clipboard;
if (clipboard === undefined) {
alert.error("Can only copy over HTTPS (port 3443)");
toast("Can only copy over HTTPS (port 3443)");
return;
}
@@ -13505,7 +13506,7 @@ const AngularWorkflow = (defaultprops) => {
/* Copy the text inside the text field */
document.execCommand("copy");
console.log("COPYING!");
alert.info("Copied JSON path to clipboard.")
toast("Copied JSON path to clipboard.")
} else {
console.log("Couldn't find element ", elementName);
}
@@ -14875,7 +14876,7 @@ const AngularWorkflow = (defaultprops) => {
console.log("NAVIGATOR: ", navigator);
const clipboard = navigator.clipboard;
if (clipboard === undefined) {
alert.error("Can only copy over HTTPS (port 3443)");
toast("Can only copy over HTTPS (port 3443)");
return;
}
@@ -15480,7 +15481,7 @@ const AngularWorkflow = (defaultprops) => {
selectedApp.authentication.parameters[paramkey].name
] = "false";
} else {
alert.info(
toast(
"Field " +
selectedApp.authentication.parameters[paramkey].name +
" can't be empty"
+41 -40
View File
@@ -46,7 +46,8 @@ import { v4 as uuidv4 } from "uuid";
import { Link, useParams } from "react-router-dom";
import YAML from "yaml";
import { MuiChipsInput } from "mui-chips-input";
import { useAlert } from "react-alert";
//import { useAlert
import { ToastContainer, toast } from "react-toastify"
import words from "shellwords";
import AvatarEditor from "react-avatar-editor";
@@ -350,7 +351,7 @@ const getJsonObject = (properties) => {
const AppCreator = (defaultprops) => {
const { globalUrl, isLoaded } = defaultprops;
const classes = useStyles();
const alert = useAlert();
//const alert = useAlert();
const params = useParams();
var props = JSON.parse(JSON.stringify(defaultprops))
@@ -451,7 +452,7 @@ const AppCreator = (defaultprops) => {
})
.then((responseJson) => {
if (responseJson.success === false) {
alert.error("Failed to get the app");
toast("Failed to get the app");
setIsAppLoaded(true);
window.location.pathname = "/search";
} else {
@@ -459,7 +460,7 @@ const AppCreator = (defaultprops) => {
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -494,14 +495,14 @@ const AppCreator = (defaultprops) => {
.then((responseJson) => {
setIsAppLoaded(true);
if (!responseJson.success) {
alert.error("Failed to get app config. Do you have access?");
toast("Failed to get app config. Do you have access?");
} else {
parseIncomingOpenapiData(responseJson);
}
})
.catch((error) => {
console.log("Error: ", error.toString());
alert.error(error.toString());
toast(error.toString());
});
};
@@ -568,7 +569,7 @@ const AppCreator = (defaultprops) => {
}
if (data.openapi === null) {
alert.info("Failed to load OpenAPI for app. Please contact support if this persists.")
toast("Failed to load OpenAPI for app. Please contact support if this persists.")
setIsAppLoaded(true);
return
}
@@ -600,7 +601,7 @@ const AppCreator = (defaultprops) => {
}
if (!jsonvalid) {
alert.info("OpenAPI data is invalid.");
toast("OpenAPI data is invalid.");
return;
}
@@ -726,7 +727,7 @@ const AppCreator = (defaultprops) => {
for (let [method, methodvalue] of Object.entries(pathvalue)) {
if (methodvalue === null) {
alert.info("Skipped method (null)" + method);
toast("Skipped method (null)" + method);
continue;
}
@@ -734,7 +735,7 @@ const AppCreator = (defaultprops) => {
// Typical YAML issue
if (method !== "parameters") {
console.log("Invalid method: ", method, "data: ", methodvalue);
//alert.info("Skipped method (not allowed): " + method);
//toast("Skipped method (not allowed): " + method);
}
continue;
}
@@ -1596,7 +1597,7 @@ const AppCreator = (defaultprops) => {
setParameterLocation(value.in);
if (!apikeySelection.includes(value.in)) {
console.log("APIKEY SELECT: ", apikeySelection);
alert.error("Might be error in setting up API key authentication");
toast("Might be error in setting up API key authentication");
}
console.log("PARAM NAME: ", value.name);
@@ -1637,7 +1638,7 @@ const AppCreator = (defaultprops) => {
optionset = true
} else if (value.type === "oauth2" || key === "Oauth2" || key === "Oauth2c" || (key !== undefined && key !== null && key.toLowerCase().includes("oauth2"))) {
//alert.info("Can't handle Oauth2 auth yet.")
//toast("Can't handle Oauth2 auth yet.")
setAuthenticationOption("Oauth2");
setAuthenticationRequired(true);
optionset = true
@@ -1686,7 +1687,7 @@ const AppCreator = (defaultprops) => {
const scopekeysplit = scopekey.split("/");
if (scopekeysplit.length < 5) {
console.log("Skipping scope: ", scopekey);
alert.info("Skipping scope: " + scopekey);
toast("Skipping scope: " + scopekey);
continue;
}
@@ -1707,7 +1708,7 @@ const AppCreator = (defaultprops) => {
);
}
} else {
alert.error("Couldn't handle AUTH type: ", key);
toast("Couldn't handle AUTH type: ", key);
//newauth.push({
// "name": key,
// "type": value.in,
@@ -1716,7 +1717,7 @@ const AppCreator = (defaultprops) => {
}
}
} catch (e) {
alert.error("Failed to handle auth")
toast("Failed to handle auth")
console.log("Error: ", e)
}
@@ -1790,7 +1791,7 @@ const AppCreator = (defaultprops) => {
//const isCloud = window.location.host === "localhost:3002" || window.location.host === "shuffler.io"
if (newActions.length > 1000 && isCloud) {
alert.error("Cut down actions from " + newActions.length + " to 999 because of limit");
toast("Cut down actions from " + newActions.length + " to 999 because of limit");
newActions = newActions.slice(0, 999);
}
@@ -1812,7 +1813,7 @@ const AppCreator = (defaultprops) => {
// Saving the app that's been configured.
// Save SAVE app
const submitApp = () => {
alert.info("Uploading and building app " + name);
toast("Uploading and building app " + name);
setAppBuilding(true);
setErrorCode("");
@@ -1881,7 +1882,7 @@ const AppCreator = (defaultprops) => {
for (let actionkey in actions) {
var item = JSON.parse(JSON.stringify(actions[actionkey]))
if (item.errors.length > 0) {
alert.error("Saving with error in action " + item.name);
toast("Saving with error in action " + item.name);
}
if (item.name === undefined && item.description !== undefined) {
@@ -2107,7 +2108,7 @@ const AppCreator = (defaultprops) => {
// Bad code as it doesn't allow for "anything".
if (skipped) {
alert.info(
toast(
"Bad configuration of " +
item.name +
". Skipping because queries are invalid."
@@ -2358,7 +2359,7 @@ const AppCreator = (defaultprops) => {
if (authenticationOption === "API key") {
if (parameterName.length === 0) {
alert.error("A field name for the APIkey must be defined");
toast("A field name for the APIkey must be defined");
setAppBuilding(false);
return;
}
@@ -2424,7 +2425,7 @@ const AppCreator = (defaultprops) => {
const curauth = extraAuth[authkey];
if (curauth.name.toLowerCase() == "url") {
alert.error("Can't add extra auth with Name URL");
toast("Can't add extra auth with Name URL");
setAppBuilding(false);
return;
}
@@ -2459,10 +2460,10 @@ const AppCreator = (defaultprops) => {
if (!responseJson.success) {
if (responseJson.reason !== undefined) {
setErrorCode(responseJson.reason);
alert.error("Failed to verify: " + responseJson.reason);
toast("Failed to verify: " + responseJson.reason);
}
} else {
alert.success("Successfully uploaded openapi");
toast("Successfully uploaded openapi");
if (window.location.pathname.includes("/new")) {
if (responseJson.id !== undefined && responseJson.id !== null) {
window.location = `/apps/edit/${responseJson.id}`;
@@ -2473,7 +2474,7 @@ const AppCreator = (defaultprops) => {
.catch((error) => {
setAppBuilding(false);
setErrorCode(error.toString());
alert.error(error.toString());
toast(error.toString());
});
};
@@ -2805,7 +2806,7 @@ const AppCreator = (defaultprops) => {
!tmpstring.startsWith("http") &&
!tmpstring.startsWith("ftp")
) {
alert.error("Auth URL must start with http(s)://");
toast("Auth URL must start with http(s)://");
}
if (tmpstring.includes("?")) {
@@ -2854,7 +2855,7 @@ const AppCreator = (defaultprops) => {
!tmpstring.startsWith("http") &&
!tmpstring.startsWith("ftp")
) {
alert.error("Token URL must start with http(s)://");
toast("Token URL must start with http(s)://");
}
if (tmpstring.includes("?")) {
@@ -2900,7 +2901,7 @@ const AppCreator = (defaultprops) => {
!tmpstring.startsWith("http") &&
!tmpstring.startsWith("ftp")
) {
alert.error("Refresh URL must start with http(s)://");
toast("Refresh URL must start with http(s)://");
}
if (tmpstring.includes("?")) {
@@ -3791,7 +3792,7 @@ const AppCreator = (defaultprops) => {
value = keysplit[1].trim()
} else {
alert.error("Removed key: ", key)
toast("Removed key: ", key)
continue
}
}
@@ -4626,11 +4627,11 @@ const AppCreator = (defaultprops) => {
setSelectedAction(selectedAction);
}
//alert.error("Failed getting authentications")
//toast("Failed getting authentications")
}
})
.catch((error) => {
alert.error("Auth loading error: " + error.toString());
toast("Auth loading error: " + error.toString());
});
};
@@ -4686,17 +4687,17 @@ const AppCreator = (defaultprops) => {
})
.then((responseJson) => {
if (!responseJson.success) {
alert.error("Failed to set app auth: " + responseJson.reason);
toast("Failed to set app auth: " + responseJson.reason);
} else {
getAppAuthentication(true);
setAuthenticationModalOpen(false);
// Needs a refresh with the new authentication..
//alert.success("Successfully saved new app auth")
//toast("Successfully saved new app auth")
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -4747,7 +4748,7 @@ const AppCreator = (defaultprops) => {
console.log("NEW AUTH: ", authenticationOption);
if (authenticationOption.label.length === 0) {
authenticationOption.label = `Auth for ${selectedApp.name}`;
//alert.info("Label can't be empty")
//toast("Label can't be empty")
//return
}
@@ -4757,7 +4758,7 @@ const AppCreator = (defaultprops) => {
selectedApp.authentication.parameters[key].name
].length === 0
) {
alert.info(
toast(
"Field " +
selectedApp.authentication.parameters[key].name +
" can't be empty"
@@ -5165,7 +5166,7 @@ const AppCreator = (defaultprops) => {
setFileBase64(canvasUrl);
}
} catch (e) {
alert.error("Failed to parse canvasurl!");
toast("Failed to parse canvasurl!");
}
};
@@ -5253,7 +5254,7 @@ const AppCreator = (defaultprops) => {
setOpenImageModal(false);
setDisableImageUpload(true);
} catch (e) {
alert.error("Failed to set image. Replace it if this persists.");
toast("Failed to set image. Replace it if this persists.");
}
}
};
@@ -5468,7 +5469,7 @@ const AppCreator = (defaultprops) => {
const invalid = ["#", ":", "."];
for (var key in invalid) {
if (e.target.value.includes(invalid[key])) {
alert.error("Can't use " + invalid[key] + " in name");
toast("Can't use " + invalid[key] + " in name");
setName(e.target.value.replaceAll(".", "").replaceAll("#", "").replaceAll(":", "").replaceAll(",", ""))
return;
@@ -5476,7 +5477,7 @@ const AppCreator = (defaultprops) => {
}
if (e.target.value.length > 29) {
alert.error("Choose a shorter name (max 29).");
toast("Choose a shorter name (max 29).");
setName(e.target.value.slice(0,28))
return;
}
@@ -5588,7 +5589,7 @@ const AppCreator = (defaultprops) => {
!tmpstring.startsWith("http") &&
!tmpstring.startsWith("ftp")
) {
alert.error("URL must start with http(s)://");
toast("URL must start with http(s)://");
}
if (tmpstring.includes("?")) {
+41 -40
View File
@@ -59,7 +59,8 @@ import algoliasearch from 'algoliasearch/lite';
import YAML from "yaml";
import { useNavigate, Link, useParams } from "react-router-dom";
import { useAlert } from "react-alert";
//import { useAlert
import { ToastContainer, toast } from "react-toastify"
import Dropzone from "../components/Dropzone.jsx";
const surfaceColor = "#27292D";
@@ -272,7 +273,7 @@ const Apps = (props) => {
//const [workflows, setWorkflows] = React.useState([]);
const baseRepository = "https://github.com/frikky/shuffle-apps";
const alert = useAlert();
//const alert = useAlert();
let navigate = useNavigate();
const [selectedApp, setSelectedApp] = React.useState({});
@@ -454,7 +455,7 @@ const Apps = (props) => {
//}, 5000)
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
setIsLoading(false);
});
};
@@ -462,7 +463,7 @@ const Apps = (props) => {
const downloadApp = (inputdata) => {
const id = inputdata.id;
alert.info("Downloading..");
toast("Downloading..");
fetch(globalUrl + "/api/v1/apps/" + id + "/config", {
method: "GET",
headers: {
@@ -480,7 +481,7 @@ const Apps = (props) => {
})
.then((responseJson) => {
if (!responseJson.success) {
alert.error("Failed to download file");
toast("Failed to download file");
} else {
console.log(responseJson);
const basedata = atob(responseJson.openapi);
@@ -538,7 +539,7 @@ const Apps = (props) => {
})
.catch((error) => {
console.log(error);
alert.error(error.toString());
toast(error.toString());
});
};
@@ -1152,7 +1153,7 @@ const Apps = (props) => {
<Select
value={sharingConfiguration}
onChange={(event) => {
alert.info("Changing sharing to " + event.target.value);
toast("Changing sharing to " + event.target.value);
setSharingConfiguration(event.target.value);
@@ -1479,7 +1480,7 @@ const Apps = (props) => {
try {
reader.readAsText(files[0]);
} catch (error) {
alert.error("Failed to read file");
toast("Failed to read file");
}
};
@@ -1578,9 +1579,9 @@ const Apps = (props) => {
})
.then((responseJson) => {
if (responseJson.success === false) {
alert.error("Failed to activate the app")
toast("Failed to activate the app")
} else {
alert.success("App activated for your organization! Refresh the page to use the app.")
toast("App activated for your organization! Refresh the page to use the app.")
if (refresh === true) {
getApps()
@@ -1588,7 +1589,7 @@ const Apps = (props) => {
}
})
.catch(error => {
//alert.error(error.toString())
//toast(error.toString())
console.log("Activate app error: ", error.toString())
});
}
@@ -1692,13 +1693,13 @@ const Apps = (props) => {
return (
<div style={{ textDecoration: "none", color: "white", }} onClick={(event) => {
//if (!isCloud) {
// alert.info("Since this is an on-prem instance. You will need to activate the app yourself. Opening link to download it in a new window.")
// toast("Since this is an on-prem instance. You will need to activate the app yourself. Opening link to download it in a new window.")
// setTimeout(() => {
// event.preventDefault()
// window.open(parsedUrl, '_blank')
// }, 2000)
//} else {
alert.info(`Activating ${name}`)
toast(`Activating ${name}`)
//}
console.log("CLICK: ", hit)
@@ -2010,7 +2011,7 @@ const Apps = (props) => {
parsedData["force_update"] = forceUpdate;
alert.success("Getting specific apps from your URL.");
toast("Getting specific apps from your URL.");
var cors = "cors";
fetch(globalUrl + "/api/v1/apps/get_existing", {
method: "POST",
@@ -2023,7 +2024,7 @@ const Apps = (props) => {
})
.then((response) => {
if (response.status === 200) {
alert.success("Loaded existing apps!");
toast("Loaded existing apps!");
}
//stop()
@@ -2034,12 +2035,12 @@ const Apps = (props) => {
.then((responseJson) => {
console.log("DATA: ", responseJson);
if (responseJson.reason !== undefined) {
alert.error("Failed loading: " + responseJson.reason);
toast("Failed loading: " + responseJson.reason);
}
})
.catch((error) => {
console.log("ERROR: ", error.toString());
//alert.error(error.toString());
//toast(error.toString());
//stop()
setIsLoading(false);
@@ -2049,7 +2050,7 @@ const Apps = (props) => {
// Locally hotloads app from folder
const hotloadApps = () => {
alert.info("Hotloading apps from location in .env");
toast("Hotloading apps from location in .env");
setIsLoading(true);
fetch(globalUrl + "/api/v1/apps/run_hotload", {
mode: "cors",
@@ -2061,7 +2062,7 @@ const Apps = (props) => {
.then((response) => {
setIsLoading(false);
if (response.status === 200) {
//alert.success("Hotloaded apps!")
//toast("Hotloaded apps!")
getApps();
}
@@ -2069,14 +2070,14 @@ const Apps = (props) => {
})
.then((responseJson) => {
if (responseJson.success === true) {
alert.info("Successfully finished hotload");
toast("Successfully finished hotload");
} else {
alert.error("Failed hotload: ", responseJson.reason);
toast("Failed hotload: ", responseJson.reason);
//(responseJson.reason !== undefined && responseJson.reason.length > 0) {
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -2100,7 +2101,7 @@ const Apps = (props) => {
});
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -2113,9 +2114,9 @@ const Apps = (props) => {
})
.then((response) => {
if (response.status === 200) {
//alert.success("Successfully GOT app "+appId)
//toast("Successfully GOT app "+appId)
} else {
alert.error("Failed getting app");
toast("Failed getting app");
}
return response.json();
@@ -2138,7 +2139,7 @@ const Apps = (props) => {
responseJson.loop_versions = selectedApp.loop_versions;
}
//alert.info("Should set app to selected")
//toast("Should set app to selected")
if (
responseJson.actions !== undefined &&
responseJson.actions !== null &&
@@ -2152,12 +2153,12 @@ const Apps = (props) => {
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
const deleteApp = (appId) => {
alert.info("Attempting to delete app");
toast("Attempting to delete app");
fetch(globalUrl + "/api/v1/apps/" + appId, {
method: "DELETE",
headers: {
@@ -2167,16 +2168,16 @@ const Apps = (props) => {
})
.then((response) => {
if (response.status === 200) {
alert.success("Successfully deleted app");
toast("Successfully deleted app");
setTimeout(() => {
getApps();
}, 1000);
} else {
alert.error("Failed deleting app. Does it still exist?");
toast("Failed deleting app. Does it still exist?");
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -2200,19 +2201,19 @@ const Apps = (props) => {
})
.then((responseJson) => {
//console.log(responseJson)
//alert.info(responseJson)
//toast(responseJson)
if (responseJson.success) {
alert.success("Successfully updated app configuration");
toast("Successfully updated app configuration");
} else {
if (responseJson.reason !== undefined && responseJson.reason !== null) {
alert.error("Error: "+responseJson.reason);
toast("Error: "+responseJson.reason);
} else {
alert.error("Error updating app configuration");
toast("Error updating app configuration");
}
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -2243,7 +2244,7 @@ const Apps = (props) => {
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -2281,7 +2282,7 @@ const Apps = (props) => {
validateOpenApi(responseJson);
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
setOpenApiError(error.toString());
});
};
@@ -2338,12 +2339,12 @@ const Apps = (props) => {
if (responseJson.reason !== undefined) {
setOpenApiError(responseJson.reason);
}
alert.error("An error occurred in the response");
toast("An error occurred in the response");
}
})
.catch((error) => {
setValidation(false);
alert.error(error.toString());
toast(error.toString());
setOpenApiError(error.toString());
});
};
+17 -16
View File
@@ -9,7 +9,8 @@ import { useNavigate, Link, useParams } from "react-router-dom";
// react plugin used to create charts
//import { Line, Bar } from "react-chartjs-2";
import { useAlert } from "react-alert";
//import { useAlert
import { ToastContainer, toast } from "react-toastify"
import {
Autocomplete,
@@ -155,7 +156,7 @@ const UsecaseListComponent = ({keys, isCloud, globalUrl, frameworkData, isLogged
}, 100);
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
setInputUsecase({})
setExpandedIndex(index)
setExpandedItem(subindex)
@@ -212,16 +213,16 @@ const UsecaseListComponent = ({keys, isCloud, globalUrl, frameworkData, isLogged
.then((responseJson) => {
if (responseJson.success === false) {
if (responseJson.reason !== undefined) {
//alert.error("Failed updating: " + responseJson.reason)
//toast("Failed updating: " + responseJson.reason)
} else {
//alert.error("Failed to update framework for your org.")
//toast("Failed to update framework for your org.")
}
} else {
//alert.info("Updated usecase.")
//toast("Updated usecase.")
}
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
//setFrameworkLoaded(true)
})
}
@@ -249,9 +250,9 @@ const UsecaseListComponent = ({keys, isCloud, globalUrl, frameworkData, isLogged
.then((responseJson) => {
if (responseJson.success === false) {
if (responseJson.reason !== undefined) {
alert.error("Error updating workflow: ", responseJson.reason)
toast("Error updating workflow: ", responseJson.reason)
} else {
alert.error("Error updating workflow.")
toast("Error updating workflow.")
}
return
@@ -260,7 +261,7 @@ const UsecaseListComponent = ({keys, isCloud, globalUrl, frameworkData, isLogged
return responseJson;
})
.catch((error) => {
alert.error("Problem setting workflow: ", error.toString());
toast("Problem setting workflow: ", error.toString());
});
};
@@ -1025,7 +1026,7 @@ const RadialChart = ({keys, setSelectedCategory}) => {
// What data do we fill in here? Idk
const Dashboard = (props) => {
const { globalUrl, isLoggedIn } = props;
const alert = useAlert();
//const alert = useAlert();
const [bigChartData, setBgChartData] = useState("data1");
const [dayAmount, setDayAmount] = useState(7);
const [firstRequest, setFirstRequest] = useState(true);
@@ -1117,16 +1118,16 @@ const Dashboard = (props) => {
.then((responseJson) => {
if (responseJson.success === false) {
if (responseJson.reason !== undefined) {
//alert.error("Failed loading: " + responseJson.reason)
//toast("Failed loading: " + responseJson.reason)
} else {
//alert.error("Failed to load framework for your org.")
//toast("Failed to load framework for your org.")
}
} else {
setFrameworkData(responseJson)
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
})
}
@@ -1157,7 +1158,7 @@ const Dashboard = (props) => {
})
.catch((error) => {
fetchUsecases()
//alert.error(error.toString());
//toast(error.toString());
});
}
@@ -1257,7 +1258,7 @@ const Dashboard = (props) => {
}
})
.catch((error) => {
//alert.error("ERROR: " + error.toString());
//toast("ERROR: " + error.toString());
console.log("ERROR: " + error.toString());
});
};
@@ -1291,7 +1292,7 @@ const Dashboard = (props) => {
setChangeme(stats_id);
})
.catch((error) => {
//alert.error("ERROR: " + error.toString());
//toast("ERROR: " + error.toString());
console.log("ERROR: " + error.toString());
});
};
+7 -6
View File
@@ -8,7 +8,8 @@ import { useNavigate, Link, useParams } from "react-router-dom";
// react plugin used to create charts
//import { Line, Bar } from "react-chartjs-2";
import { useAlert } from "react-alert";
//import { useAlert
import { ToastContainer, toast } from "react-toastify"
import Draggable from "react-draggable";
import {
@@ -332,7 +333,7 @@ const RadialChart = ({keys, setSelectedCategory}) => {
// What data do we fill in here? Idk
const Dashboard = (props) => {
const { globalUrl, isLoggedIn } = props;
const alert = useAlert();
//const alert = useAlert();
const [bigChartData, setBgChartData] = useState("data1");
const [dayAmount, setDayAmount] = useState(7);
const [firstRequest, setFirstRequest] = useState(true);
@@ -427,9 +428,9 @@ const Dashboard = (props) => {
console.log("Resp: ", responseJson)
if (responseJson.success === false) {
if (responseJson.reason !== undefined) {
//alert.error("Failed loading: " + responseJson.reason)
//toast("Failed loading: " + responseJson.reason)
} else {
//alert.error("Failed to load framework for your org.")
//toast("Failed to load framework for your org.")
}
} else {
var tmpdata = responseJson
@@ -452,7 +453,7 @@ const Dashboard = (props) => {
}
})
.catch((error) => {
//alert.error(error.toString());
//toast(error.toString());
})
}
@@ -504,7 +505,7 @@ const Dashboard = (props) => {
setChangeme(stats_id);
})
.catch((error) => {
//alert.error("ERROR: " + error.toString());
//toast("ERROR: " + error.toString());
console.log("ERROR: " + error.toString());
});
};
+6 -5
View File
@@ -2,7 +2,8 @@ import React, { useEffect, useState } from 'react';
import ReactDOM from "react-dom"
import AppFramework from "../components/AppFramework.jsx";
import { useAlert } from "react-alert";
//import { useAlert
import { ToastContainer, toast } from "react-toastify"
import { Link, useParams } from "react-router-dom";
import theme from '../theme.jsx';
@@ -13,7 +14,7 @@ import {
const Framework = (props) => {
const {globalUrl, isLoaded, isLoggedIn, showOptions, selectedOption, rolling, } = props;
const alert = useAlert()
//const alert = useAlert()
const [frameworkLoaded, setFrameworkLoaded] = useState(false)
const [frameworkData, setFrameworkData] = useState()
@@ -36,9 +37,9 @@ const Framework = (props) => {
.then((responseJson) => {
if (responseJson.success === false) {
if (responseJson.reason !== undefined) {
alert.error("Failed loading: " + responseJson.reason)
toast("Failed loading: " + responseJson.reason)
} else {
alert.error("Failed to load framework for your org.")
toast("Failed to load framework for your org.")
}
setFrameworkLoaded(true)
@@ -51,7 +52,7 @@ const Framework = (props) => {
})
.catch((error) => {
setFrameworkLoaded(true)
alert.error(error.toString());
toast(error.toString());
})
}
+39 -38
View File
@@ -66,7 +66,8 @@ import { DataGrid, GridToolbar } from "@mui/x-data-grid";
import Dropzone from "../components/Dropzone.jsx";
import { useNavigate, Link, useParams } from "react-router-dom";
import { useAlert } from "react-alert";
//import { useAlert
import { ToastContainer, toast } from "react-toastify"
import { MuiChipsInput } from "mui-chips-input";
import { v4 as uuidv4 } from "uuid";
@@ -123,7 +124,7 @@ const GettingStarted = (props) => {
const { globalUrl, isLoggedIn, isLoaded, userdata } = props;
document.title = "Getting Started with Shuffle";
const alert = useAlert();
//const alert = useAlert();
const classes = useStyles(theme);
let navigate = useNavigate();
const imgSize = 60;
@@ -442,7 +443,7 @@ const GettingStarted = (props) => {
const files = isDropzone ? e.dataTransfer.files : e.target.files;
const reader = new FileReader();
alert.info("Starting upload. Please wait while we validate the workflows");
toast("Starting upload. Please wait while we validate the workflows");
try {
reader.addEventListener("load", (e) => {
@@ -451,7 +452,7 @@ const GettingStarted = (props) => {
try {
data = JSON.parse(reader.result);
} catch (e) {
alert.error("Invalid JSON: " + e);
toast("Invalid JSON: " + e);
return;
}
@@ -479,13 +480,13 @@ const GettingStarted = (props) => {
false
).then((response) => {
if (response !== undefined) {
alert.success(`Successfully imported ${data.name}`);
toast(`Successfully imported ${data.name}`);
}
});
}
})
.catch((error) => {
alert.error("Import error: " + error.toString());
toast("Import error: " + error.toString());
});
});
} catch (e) {
@@ -518,7 +519,7 @@ const GettingStarted = (props) => {
window.location.pathname = "/login";
}
alert.info("Failed getting workflows.");
toast("Failed getting workflows.");
setWorkflowDone(true);
return;
@@ -559,7 +560,7 @@ const GettingStarted = (props) => {
}, 100)
} else {
if (isLoggedIn) {
alert.error("An error occurred while loading workflows");
toast("An error occurred while loading workflows");
}
return;
@@ -568,7 +569,7 @@ const GettingStarted = (props) => {
.catch((error) => {
setVideoViewOpen(true)
alert.error(error.toString());
toast(error.toString());
});
};
@@ -685,7 +686,7 @@ const GettingStarted = (props) => {
trigger.parameters[1].value = "webhook_" + trigger.id;
// FIXME: Add auth here?
} else {
alert.info("Something is wrong with the webhook in the copy");
toast("Something is wrong with the webhook in the copy");
}
}
@@ -803,7 +804,7 @@ const GettingStarted = (props) => {
data = sanitizeWorkflow(data);
if (data.subflows !== null && data.subflows !== undefined) {
alert.info(
toast(
"Not exporting with subflows when sanitizing. Please manually export them."
);
data.subflows = [];
@@ -830,7 +831,7 @@ const GettingStarted = (props) => {
const publishWorkflow = (data) => {
data = JSON.parse(JSON.stringify(data));
data = sanitizeWorkflow(data);
alert.info("Sanitizing and publishing " + data.name);
toast("Sanitizing and publishing " + data.name);
// This ALWAYS talks to Shuffle cloud
fetch(globalUrl + "/api/v1/workflows/" + data.id + "/publish", {
@@ -847,9 +848,9 @@ const GettingStarted = (props) => {
console.log("Status not 200 for workflow publish :O!");
} else {
if (isCloud) {
alert.success("Successfully published workflow");
toast("Successfully published workflow");
} else {
alert.success(
toast(
"Successfully published workflow to https://shuffler.io"
);
}
@@ -859,19 +860,19 @@ const GettingStarted = (props) => {
})
.then((responseJson) => {
if (responseJson.reason !== undefined) {
alert.error("Failed publishing: ", responseJson.reason);
toast("Failed publishing: ", responseJson.reason);
}
getAvailableWorkflows();
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
const copyWorkflow = (data) => {
data = JSON.parse(JSON.stringify(data));
alert.success("Copying workflow " + data.name);
toast("Copying workflow " + data.name);
data.id = "";
data.name = data.name + "_copy";
data = deduplicateIds(data);
@@ -898,7 +899,7 @@ const GettingStarted = (props) => {
}, 1000);
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -914,9 +915,9 @@ const GettingStarted = (props) => {
.then((response) => {
if (response.status !== 200) {
console.log("Status not 200 for setting workflows :O!");
alert.error("Failed deleting workflow. Do you have access?");
toast("Failed deleting workflow. Do you have access?");
} else {
alert.success("Deleted workflow " + id);
toast("Deleted workflow " + id);
}
return response.json();
@@ -927,7 +928,7 @@ const GettingStarted = (props) => {
}, 1000);
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -1272,7 +1273,7 @@ const GettingStarted = (props) => {
}}
onClick={() => {
if (subflows === 0) {
alert.info("No subflows for " + data.name);
toast("No subflows for " + data.name);
return;
}
@@ -1434,9 +1435,9 @@ const GettingStarted = (props) => {
.then((responseJson) => {
if (responseJson.success === false) {
if (responseJson.reason !== undefined) {
alert.error("Error setting workflow: ", responseJson.reason)
toast("Error setting workflow: ", responseJson.reason)
} else {
alert.error("Error setting workflow.")
toast("Error setting workflow.")
}
return
@@ -1453,14 +1454,14 @@ const GettingStarted = (props) => {
setImportLoading(false);
setModalOpen(false);
} else {
alert.info("Successfully changed basic info for workflow");
toast("Successfully changed basic info for workflow");
setModalOpen(false);
}
return responseJson;
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
setImportLoading(false);
setModalOpen(false);
setSubmitLoading(false);
@@ -1476,7 +1477,7 @@ const GettingStarted = (props) => {
const file = event.target.files[key];
if (file.type !== "application/json") {
if (file.type !== undefined) {
alert.error("File has to contain valid json");
toast("File has to contain valid json");
setImportLoading(false);
}
@@ -1490,7 +1491,7 @@ const GettingStarted = (props) => {
try {
data = JSON.parse(reader.result);
} catch (e) {
alert.error("Invalid JSON: " + e);
toast("Invalid JSON: " + e);
setImportLoading(false);
return;
}
@@ -1522,13 +1523,13 @@ const GettingStarted = (props) => {
false
).then((response) => {
if (response !== undefined) {
alert.success("Successfully imported " + data.name);
toast("Successfully imported " + data.name);
}
});
}
})
.catch((error) => {
alert.error("Import error: " + error.toString());
toast("Import error: " + error.toString());
});
});
@@ -1727,7 +1728,7 @@ const GettingStarted = (props) => {
}}
onClick={() => {
if (subflows === 0) {
alert.info("No subflows for " + data.name);
toast("No subflows for " + data.name);
return;
}
@@ -2168,7 +2169,7 @@ const GettingStarted = (props) => {
})
return
} else {
alert.success("TBD: Coming in version 1.0.0");
toast("TBD: Coming in version 1.0.0");
}
const ele = document.getElementById("shuffle_search_field")
@@ -2179,7 +2180,7 @@ const GettingStarted = (props) => {
ele.style.borderWidth = "2px"
} else {
//alert.success("TBD: Coming in version 1.0.0");
//toast("TBD: Coming in version 1.0.0");
}
}}>
workflows made by other creators</span>!
@@ -2599,7 +2600,7 @@ const GettingStarted = (props) => {
parsedData["field_2"] = field2;
}
alert.success("Getting specific workflows from your URL.");
toast("Getting specific workflows from your URL.");
fetch(globalUrl + "/api/v1/workflows/download_remote", {
method: "POST",
mode: "cors",
@@ -2611,7 +2612,7 @@ const GettingStarted = (props) => {
})
.then((response) => {
if (response.status === 200) {
alert.success("Successfully loaded workflows from " + downloadUrl);
toast("Successfully loaded workflows from " + downloadUrl);
setTimeout(() => {
getAvailableWorkflows();
}, 1000);
@@ -2622,14 +2623,14 @@ const GettingStarted = (props) => {
.then((responseJson) => {
if (!responseJson.success) {
if (responseJson.reason !== undefined) {
alert.error("Failed loading: " + responseJson.reason);
toast("Failed loading: " + responseJson.reason);
} else {
alert.error("Failed loading");
toast("Failed loading");
}
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
+11 -10
View File
@@ -10,11 +10,12 @@ import {
Divider,
TextField,
} from "@mui/material";
import { useAlert } from "react-alert";
//import { useAlert
import { ToastContainer, toast } from "react-toastify"
const Settings = (props) => {
const { globalUrl, isLoaded, userdata, setUserData } = props;
const alert = useAlert();
//const alert = useAlert();
let navigate = useNavigate();
const [username, setUsername] = useState("");
@@ -142,7 +143,7 @@ const Settings = (props) => {
if (responseJson["success"] === false) {
setPasswordFormMessage(responseJson["reason"]);
} else {
alert.success("Changed password!");
toast("Changed password!");
setPasswordFormMessage("");
}
})
@@ -294,22 +295,22 @@ const Settings = (props) => {
// detectEthereumProvider().then((provider) => {
// if (provider) {
// if (!provider.isMetaMask) {
// alert.error("Only MetaMask is supported as of now.");
// toast("Only MetaMask is supported as of now.");
// return;
// }
// // Find the ethereum network
// // Get the users' account(s)
// //alert.info("Connecting to MetaMask")
// //toast("Connecting to MetaMask")
// //console.log("Connected: ", provider.isConnected())
// if (!provider.isConnected()) {
// alert.error("Metamask is not connected.");
// toast("Metamask is not connected.");
// return;
// }
// provider.on("message", (event) => {
// alert.info("Ethereum message: ", event);
// toast("Ethereum message: ", event);
// });
// provider.on("chainChanged", (chainId) => {
@@ -330,12 +331,12 @@ const Settings = (props) => {
// console.log("INFO: ", userdata);
// setUserData(userdata);
// } else {
// alert.error("Couldn't find balance: ", result);
// toast("Couldn't find balance: ", result);
// }
// })
// .catch((error) => {
// // If the request fails, the Promise will reject with an error.
// alert.error("Failed getting info from ethereum API: " + error);
// toast("Failed getting info from ethereum API: " + error);
// });
// });
// }
@@ -858,7 +859,7 @@ const Settings = (props) => {
})
.then((responseJson) => {
if (!responseJson.success && responseJson.reason !== undefined) {
alert.error("Failed updating user: " + responseJson.reason);
toast("Failed updating user: " + responseJson.reason);
}
})
.catch((error) => {
+5 -4
View File
@@ -7,7 +7,8 @@ import {
Button,
} from "@mui/material";
import theme from '../theme.jsx';
import { useAlert } from "react-alert";
//import { useAlert
import { ToastContainer, toast } from "react-toastify"
import AuthenticationOauth2 from "../components/Oauth2Auth.jsx";
import AuthenticationWindow from "../components/AuthenticationWindow.jsx";
@@ -22,7 +23,7 @@ const SetAuthentication = (props) => {
const [appAuthentication, setAppAuthentication] = React.useState([]);
const isCloud = window.location.host === "localhost:3002" || window.location.host === "shuffler.io";
const alert = useAlert();
//const alert = useAlert();
const parseIncomingOpenapiData = (data) => {
if (data.app === undefined || data.app === null) {
@@ -84,7 +85,7 @@ const SetAuthentication = (props) => {
})
.then((responseJson) => {
if (responseJson.success === false || responseJson.success === undefined) {
alert.error("Failed to get the app. Does it exist?")
toast("Failed to get the app. Does it exist?")
setIsAppLoaded(true)
return;
}
@@ -92,7 +93,7 @@ const SetAuthentication = (props) => {
parseIncomingOpenapiData(responseJson);
})
.catch((error) => {
alert.error("Error in app fetch: " + error.toString());
toast("Error in app fetch: " + error.toString());
});
};
+2 -2
View File
@@ -195,9 +195,9 @@ const Welcome = (props) => {
setFrameworkData({})
if (responseJson.reason !== undefined) {
//alert.error("Failed loading: " + responseJson.reason)
//toast("Failed loading: " + responseJson.reason)
} else {
//alert.error("Failed to load framework for your org.")
//toast("Failed to load framework for your org.")
}
} else {
setFrameworkData(responseJson)
+41 -40
View File
@@ -80,7 +80,8 @@ import { DataGrid, GridToolbar } from "@mui/x-data-grid";
import Dropzone from "../components/Dropzone.jsx";
import { useNavigate, Link } from "react-router-dom";
import { useAlert } from "react-alert";
//import { useAlert
import { ToastContainer, toast } from "react-toastify"
import { MuiChipsInput } from "mui-chips-input";
import { v4 as uuidv4 } from "uuid";
import theme from "../theme.jsx";
@@ -529,7 +530,7 @@ const Workflows = (props) => {
document.title = "Shuffle - Workflows";
let navigate = useNavigate();
const alert = useAlert();
//const alert = useAlert();
const classes = useStyles(theme);
const imgSize = 60;
@@ -929,7 +930,7 @@ const Workflows = (props) => {
const files = isDropzone ? e.dataTransfer.files : e.target.files;
const reader = new FileReader();
alert.info("Starting upload. Please wait while we validate the workflows");
toast("Starting upload. Please wait while we validate the workflows");
try {
reader.addEventListener("load", (e) => {
@@ -938,7 +939,7 @@ const Workflows = (props) => {
try {
data = JSON.parse(reader.result);
} catch (e) {
alert.error("Invalid JSON: " + e);
toast("Invalid JSON: " + e);
return;
}
@@ -972,13 +973,13 @@ const Workflows = (props) => {
data.status
).then((response) => {
if (response !== undefined) {
alert.success(`Successfully imported ${data.name}`);
toast(`Successfully imported ${data.name}`);
}
});
}
})
.catch((error) => {
alert.error("Import error: " + error.toString());
toast("Import error: " + error.toString());
});
});
} catch (e) {
@@ -1016,9 +1017,9 @@ const Workflows = (props) => {
if (responseJson.success === false) {
setAppFramework({})
if (responseJson.reason !== undefined) {
//alert.error("Failed loading: " + responseJson.reason)
//toast("Failed loading: " + responseJson.reason)
} else {
//alert.error("Failed to load framework for your org.")
//toast("Failed to load framework for your org.")
}
} else {
setAppFramework(responseJson)
@@ -1046,7 +1047,7 @@ const Workflows = (props) => {
// navigate("/search?tab=workflows")
//}
alert.info("Failed getting workflows. Are you logged in?");
toast("Failed getting workflows. Are you logged in?");
return;
}
@@ -1111,14 +1112,14 @@ const Workflows = (props) => {
} else {
if (isLoggedIn) {
alert.error("An error occurred while loading workflows");
toast("An error occurred while loading workflows");
}
return;
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -1198,7 +1199,7 @@ const Workflows = (props) => {
}
})
.catch((error) => {
//alert.error("ERROR: " + error.toString());
//toast("ERROR: " + error.toString());
console.log("ERROR: " + error.toString());
setWorkflows(workflows);
setWorkflowDone(true);
@@ -1288,7 +1289,7 @@ const Workflows = (props) => {
}, i * 200);
}
alert.info(`exporting and keeping original for all ${allWorkflows.length} workflows`);
toast(`exporting and keeping original for all ${allWorkflows.length} workflows`);
};
const deduplicateIds = (data, skip_sanitize) => {
@@ -1329,7 +1330,7 @@ const Workflows = (props) => {
trigger.parameters[1].value = "webhook_" + trigger.id;
// FIXME: Add auth here?
} else {
alert.info("Something is wrong with the webhook in the copy");
toast("Something is wrong with the webhook in the copy");
}
}
@@ -1449,7 +1450,7 @@ const Workflows = (props) => {
data = sanitizeWorkflow(data);
if (data.subflows !== null && data.subflows !== undefined) {
alert.info(
toast(
"Not exporting with subflows when sanitizing. Please manually export them."
);
data.subflows = [];
@@ -1477,7 +1478,7 @@ const Workflows = (props) => {
const publishWorkflow = (data) => {
data = JSON.parse(JSON.stringify(data));
data = sanitizeWorkflow(data);
alert.info("Sanitizing and publishing " + data.name);
toast("Sanitizing and publishing " + data.name);
// This ALWAYS talks to Shuffle cloud
fetch(globalUrl + "/api/v1/workflows/" + data.id + "/publish", {
@@ -1494,9 +1495,9 @@ const Workflows = (props) => {
console.log("Status not 200 for workflow publish :O!");
} else {
if (isCloud) {
alert.success("Successfully published workflow");
toast("Successfully published workflow");
} else {
alert.success(
toast(
"Successfully published workflow to https://shuffler.io"
);
}
@@ -1506,20 +1507,20 @@ const Workflows = (props) => {
})
.then((responseJson) => {
if (responseJson.reason !== undefined) {
alert.error("Failed publishing: ", responseJson.reason);
toast("Failed publishing: ", responseJson.reason);
}
getAvailableWorkflows();
})
.catch((error) => {
alert.error("Failed publishing: is the workflow valid? Remember to save the workflow first.")
toast("Failed publishing: is the workflow valid? Remember to save the workflow first.")
console.log(error.toString());
});
};
const copyWorkflow = (data) => {
data = JSON.parse(JSON.stringify(data));
alert.success("Copying workflow " + data.name);
toast("Copying workflow " + data.name);
data.id = "";
data.name = data.name + "_copy";
data = deduplicateIds(data, true);
@@ -1546,7 +1547,7 @@ const Workflows = (props) => {
}, 1000);
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -1562,9 +1563,9 @@ const Workflows = (props) => {
.then((response) => {
if (response.status !== 200) {
console.log("Status not 200 for setting workflows :O!");
alert.error("Failed deleting workflow. Do you have access?");
toast("Failed deleting workflow. Do you have access?");
} else {
alert.success("Deleted workflow " + id);
toast("Deleted workflow " + id);
}
return response.json();
@@ -1575,7 +1576,7 @@ const Workflows = (props) => {
}, 1000);
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};
@@ -2032,7 +2033,7 @@ const Workflows = (props) => {
}}
onClick={() => {
if (subflows === 0) {
alert.info("No subflows for " + data.name);
toast("No subflows for " + data.name);
return;
}
@@ -2207,9 +2208,9 @@ const Workflows = (props) => {
.then((responseJson) => {
if (responseJson.success === false) {
if (responseJson.reason !== undefined) {
alert.error("Error setting workflow: ", responseJson.reason)
toast("Error setting workflow: ", responseJson.reason)
} else {
alert.error("Error setting workflow.")
toast("Error setting workflow.")
}
return
@@ -2227,14 +2228,14 @@ const Workflows = (props) => {
setSubmitLoading(false)
setModalOpen(false);
} else {
//alert.info("Successfully changed basic info for workflow");
//toast("Successfully changed basic info for workflow");
setModalOpen(false);
}
return responseJson;
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
setSubmitLoading(false)
setModalOpen(false);
setSubmitLoading(false);
@@ -2251,7 +2252,7 @@ const Workflows = (props) => {
const file = event.target.files[key];
if (file.type !== "application/json") {
if (file.type !== undefined) {
alert.error("File has to contain valid json");
toast("File has to contain valid json");
setSubmitLoading(false)
}
@@ -2265,7 +2266,7 @@ const Workflows = (props) => {
try {
data = JSON.parse(reader.result);
} catch (e) {
alert.error("Invalid JSON: " + e);
toast("Invalid JSON: " + e);
setSubmitLoading(false)
return;
}
@@ -2305,13 +2306,13 @@ const Workflows = (props) => {
data.status,
).then((response) => {
if (response !== undefined) {
alert.success("Successfully imported " + data.name);
toast("Successfully imported " + data.name);
}
});
}
})
.catch((error) => {
alert.error("Import error: " + error.toString());
toast("Import error: " + error.toString());
});
});
@@ -2535,7 +2536,7 @@ const Workflows = (props) => {
}}
onClick={() => {
if (subflows === 0) {
alert.info("No subflows for " + data.name);
toast("No subflows for " + data.name);
return;
}
@@ -3554,7 +3555,7 @@ const Workflows = (props) => {
parsedData["field_2"] = field2;
}
alert.success("Getting specific workflows from your URL.");
toast("Getting specific workflows from your URL.");
fetch(globalUrl + "/api/v1/workflows/download_remote", {
method: "POST",
mode: "cors",
@@ -3566,7 +3567,7 @@ const Workflows = (props) => {
})
.then((response) => {
if (response.status === 200) {
alert.success("Successfully loaded workflows from " + downloadUrl);
toast("Successfully loaded workflows from " + downloadUrl);
setTimeout(() => {
getAvailableWorkflows();
}, 1000);
@@ -3577,14 +3578,14 @@ const Workflows = (props) => {
.then((responseJson) => {
if (!responseJson.success) {
if (responseJson.reason !== undefined) {
alert.error("Failed loading: " + responseJson.reason);
toast("Failed loading: " + responseJson.reason);
} else {
alert.error("Failed loading");
toast("Failed loading");
}
}
})
.catch((error) => {
alert.error(error.toString());
toast(error.toString());
});
};