Fixed minor schedule location issues and app build revisions
This commit is contained in:
@@ -874,10 +874,11 @@ const Billing = (props) => {
|
||||
});
|
||||
};
|
||||
|
||||
const isChildOrg = userdata.active_org.creator_org !== "" && userdata.active_org.creator_org !== undefined && userdata.active_org.creator_org !== null
|
||||
return (
|
||||
<div>
|
||||
{addDealModal}
|
||||
<Typography variant="h6" style={{ marginTop: 20, marginBottom: 10 }}>
|
||||
<Typography variant="h4" style={{ marginTop: 20, marginBottom: 10 }}>
|
||||
Billing
|
||||
</Typography>
|
||||
<Typography variant="body1" color="textSecondary" style={{ marginTop: 0, marginBottom: 10}}>
|
||||
@@ -912,8 +913,16 @@ const Billing = (props) => {
|
||||
:
|
||||
null
|
||||
}
|
||||
|
||||
|
||||
{isChildOrg ?
|
||||
<Typography variant="h6" style={{marginBottom: 50, }}>
|
||||
Billing is handled by your parent organisation. Reach out to support@shuffler.io if you have questions about this.
|
||||
</Typography>
|
||||
: null}
|
||||
|
||||
<div style={{display: "flex", maxWidth: 768, minWidth: 768, }}>
|
||||
{isCloud && billingInfo.subscription !== undefined && billingInfo.subscription !== null ?
|
||||
{isCloud && billingInfo.subscription !== undefined && billingInfo.subscription !== null ? isChildOrg ? null :
|
||||
<SubscriptionObject
|
||||
index={0}
|
||||
globalUrl={globalUrl}
|
||||
@@ -967,11 +976,12 @@ const Billing = (props) => {
|
||||
/>
|
||||
</span>
|
||||
: null}
|
||||
|
||||
{isCloud &&
|
||||
selectedOrganization.subscriptions !== undefined &&
|
||||
selectedOrganization.subscriptions !== null &&
|
||||
selectedOrganization.subscriptions.length > 0 ?
|
||||
|
||||
selectedOrganization.subscriptions.length > 0 &&
|
||||
!isChildOrg ?
|
||||
selectedOrganization.subscriptions
|
||||
.reverse()
|
||||
.map((sub, index) => {
|
||||
@@ -1224,9 +1234,9 @@ const Billing = (props) => {
|
||||
<div style={{ marginTop: 30, }}>
|
||||
<Typography
|
||||
style={{ marginTop: 40, marginLeft: 10, marginBottom: 5 }}
|
||||
variant="h6"
|
||||
variant="h4"
|
||||
>
|
||||
Shuffle Utilization
|
||||
Utilization & Stats
|
||||
</Typography>
|
||||
</div>
|
||||
<BillingStats
|
||||
|
||||
@@ -24,15 +24,16 @@ import {
|
||||
} from "@mui/material";
|
||||
|
||||
import {
|
||||
Link as LinkIcon,
|
||||
OpenInNew as OpenInNewIcon,
|
||||
Edit as EditIcon,
|
||||
CloudDownload as CloudDownloadIcon,
|
||||
Delete as DeleteIcon,
|
||||
FileCopy as FileCopyIcon,
|
||||
Cached as CachedIcon,
|
||||
Cached as CachedIcon,
|
||||
Publish as PublishIcon,
|
||||
Clear as ClearIcon,
|
||||
Add as AddIcon,
|
||||
Clear as ClearIcon,
|
||||
Add as AddIcon,
|
||||
} from "@mui/icons-material";
|
||||
|
||||
import Dropzone from "../components/Dropzone.jsx";
|
||||
@@ -439,10 +440,10 @@ const Files = (props) => {
|
||||
};
|
||||
|
||||
const downloadFile = (file) => {
|
||||
fetch(globalUrl + "/api/v1/files/" + file.id + "/content", {
|
||||
method: "GET",
|
||||
credentials: "include",
|
||||
})
|
||||
fetch(globalUrl + "/api/v1/files/" + file.id + "/content", {
|
||||
method: "GET",
|
||||
credentials: "include",
|
||||
})
|
||||
.then((response) => {
|
||||
if (response.status !== 200) {
|
||||
console.log("Status not 200 for apps :O!");
|
||||
@@ -972,6 +973,32 @@ const Files = (props) => {
|
||||
</IconButton>
|
||||
</span>
|
||||
</Tooltip>
|
||||
{/*
|
||||
<Tooltip
|
||||
title={"Public URL"}
|
||||
style={{}}
|
||||
>
|
||||
<span>
|
||||
<IconButton
|
||||
style = {{padding: "6px"}}
|
||||
disabled={file.status !== "active"}
|
||||
onClick={() => {
|
||||
// Open the file, without downloading it
|
||||
window.open(`${globalUrl}/api/v1/files/${file.id}/content?type=text&authorization=${file.public_authorization}`, "_blank noreferrer noopener")
|
||||
}}
|
||||
>
|
||||
<LinkIcon
|
||||
style={{
|
||||
color:
|
||||
file.status === "active"
|
||||
? "white"
|
||||
: "grey",
|
||||
}}
|
||||
/>
|
||||
</IconButton>
|
||||
</span>
|
||||
</Tooltip>
|
||||
*/}
|
||||
<Tooltip
|
||||
title={"Download file"}
|
||||
style={{}}
|
||||
|
||||
@@ -3098,17 +3098,20 @@ const AngularWorkflow = (defaultprops) => {
|
||||
ReactDOM.unstable_batchedUpdates(() => {
|
||||
setSelectedAction({});
|
||||
setSelectedApp({});
|
||||
setSelectedTrigger({});
|
||||
setSelectedComment({})
|
||||
setSelectedEdge({});
|
||||
|
||||
|
||||
setSelectedEdge({})
|
||||
setSelectedActionEnvironment({})
|
||||
setTriggerAuthentication({})
|
||||
setSelectedTriggerIndex(-1)
|
||||
setTriggerFolders([])
|
||||
setLocalFirstrequest(true)
|
||||
|
||||
setSelectedTrigger({});
|
||||
setSelectedTriggerIndex(-1)
|
||||
setUpdate(Math.random())
|
||||
|
||||
// Can be used for right side view
|
||||
setRightSideBarOpen(false);
|
||||
setScrollConfig({
|
||||
@@ -3551,7 +3554,9 @@ const AngularWorkflow = (defaultprops) => {
|
||||
const onNodeSelect = (event, newAppAuth) => {
|
||||
// Forces all states to update at the same time,
|
||||
// Otherwise everything is SUPER slow
|
||||
const data = event.target.data();
|
||||
|
||||
//const data = JSON.parse(JSON.stringify(event.target.data()))
|
||||
const data = event.target.data()
|
||||
if (data.isSuggestion === true) {
|
||||
console.log("Suggestion! Replace with a real action.")
|
||||
|
||||
@@ -4171,9 +4176,11 @@ const AngularWorkflow = (defaultprops) => {
|
||||
|
||||
console.log("TRIGGER: ", data)
|
||||
|
||||
setSelectedTriggerIndex(trigger_index);
|
||||
setSelectedTrigger(data);
|
||||
setSelectedActionEnvironment(data.env);
|
||||
setTimeout(() => {
|
||||
setSelectedTriggerIndex(trigger_index);
|
||||
setSelectedTrigger(data)
|
||||
setSelectedActionEnvironment(data.env)
|
||||
}, 25)
|
||||
} else if (data.type === "COMMENT") {
|
||||
setSelectedComment(data);
|
||||
} else {
|
||||
@@ -6993,13 +7000,14 @@ const AngularWorkflow = (defaultprops) => {
|
||||
});
|
||||
};
|
||||
|
||||
const parsedHeight = isMobile ? bodyHeight - appBarSize * 4 : bodyHeight - appBarSize - 50
|
||||
const appViewStyle = {
|
||||
marginLeft: 5,
|
||||
marginRight: 5,
|
||||
display: "flex",
|
||||
flexDirection: "column",
|
||||
minHeight: isMobile ? bodyHeight - appBarSize * 4 : "100%",
|
||||
maxHeight: isMobile ? bodyHeight - appBarSize * 4 : "100%",
|
||||
minHeight: isMobile ? bodyHeight - appBarSize * 4 : parsedHeight,
|
||||
maxHeight: isMobile ? bodyHeight - appBarSize * 4 : parsedHeight,
|
||||
};
|
||||
|
||||
const paperAppStyle = {
|
||||
@@ -7321,7 +7329,6 @@ const AngularWorkflow = (defaultprops) => {
|
||||
marginRight: 5,
|
||||
};
|
||||
|
||||
const parsedHeight = isMobile ? bodyHeight - appBarSize * 4 : bodyHeight - appBarSize - 50
|
||||
return (
|
||||
<div>
|
||||
<div
|
||||
@@ -8972,7 +8979,7 @@ const AngularWorkflow = (defaultprops) => {
|
||||
workflow.triggers[selectedTriggerIndex].parameters[0] = {
|
||||
value: value,
|
||||
name: "cron",
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
workflow.triggers[selectedTriggerIndex].parameters[1] = {
|
||||
@@ -13289,7 +13296,7 @@ const AngularWorkflow = (defaultprops) => {
|
||||
const pipelineConfig = {
|
||||
"name": selectedTrigger.label,
|
||||
"type": "create",
|
||||
"command": "load tcp://0.0.0.0:514 | read syslog | to http://api.com X-Token:Secret",
|
||||
"command": "load tcp://0.0.0.0:514 | read syslog | export",
|
||||
"environment": selectedTrigger.environment,
|
||||
}
|
||||
|
||||
@@ -13299,6 +13306,29 @@ const AngularWorkflow = (defaultprops) => {
|
||||
Start Syslog listener
|
||||
</div>
|
||||
|
||||
<div
|
||||
style={{
|
||||
border: "1px solid rgba(255,255,255,0.3)",
|
||||
borderRadius: theme.palette.borderRadius,
|
||||
padding: 10,
|
||||
cursor: "pointer",
|
||||
marginTop: 5,
|
||||
|
||||
}}
|
||||
onClick={() => {
|
||||
const pipelineConfig = {
|
||||
"name": selectedTrigger.label,
|
||||
"type": "create",
|
||||
"command": "export --live | sigma /path/to/rules | to http://192.168.86.44:5002/api/v1/hooks/webhook_665ace5f-f27b-496a-a365-6e07eb61078c write lines",
|
||||
"environment": selectedTrigger.environment,
|
||||
}
|
||||
|
||||
submitPipeline(selectedTrigger, selectedTriggerIndex, pipelineConfig)
|
||||
}}
|
||||
>
|
||||
Run Sigma Rulesearch
|
||||
</div>
|
||||
|
||||
<div
|
||||
style={{
|
||||
border: "1px solid rgba(255,255,255,0.3)",
|
||||
@@ -13488,10 +13518,10 @@ const AngularWorkflow = (defaultprops) => {
|
||||
}}
|
||||
fullWidth
|
||||
disabled={
|
||||
workflow.triggers[selectedTriggerIndex].status === "running"
|
||||
selectedTrigger.status === "running"
|
||||
}
|
||||
defaultValue={
|
||||
workflow.triggers[selectedTriggerIndex].parameters === undefined ? "" : workflow.triggers[selectedTriggerIndex].parameters[0].value
|
||||
selectedTrigger.parameters === undefined ? "" : selectedTrigger.parameters[0].value
|
||||
}
|
||||
color="primary"
|
||||
placeholder=""
|
||||
@@ -13544,7 +13574,7 @@ const AngularWorkflow = (defaultprops) => {
|
||||
multiline
|
||||
color="primary"
|
||||
defaultValue={
|
||||
workflow.triggers[selectedTriggerIndex] !== undefined && workflow.triggers[selectedTriggerIndex].parameters !== undefined && workflow.triggers[selectedTriggerIndex].parameters !== null && workflow.triggers[selectedTriggerIndex].parameters.length > 1 ?
|
||||
workflow.triggers[selectedTriggerIndex] !== undefined && workflow.triggers[selectedTriggerIndex].parameters !== undefined && workflow.triggers[selectedTriggerIndex].parameters !== null && workflow.triggers[selectedTriggerIndex].parameters.length > 1 ?
|
||||
workflow.triggers[selectedTriggerIndex].parameters[1].value
|
||||
: ""
|
||||
}
|
||||
@@ -14022,8 +14052,8 @@ const AngularWorkflow = (defaultprops) => {
|
||||
}}
|
||||
>
|
||||
<Typography variant="body22">
|
||||
<WarningIcon style={{marginRight: 5, height: 15, width: 15, }} />
|
||||
<b>{workflow.errors.length} Workflow Issue{workflow.errors.length > 1 ? "s" : ""}</b>
|
||||
{/*<WarningIcon style={{marginRight: 5, height: 15, width: 15, }} />*/}
|
||||
<b>Workflow Issues:</b> {workflow.errors.length}
|
||||
</Typography>
|
||||
<Typography
|
||||
variant="body2"
|
||||
|
||||
@@ -1242,7 +1242,9 @@ const Apps = (props) => {
|
||||
})}
|
||||
</Select>
|
||||
|
||||
{isCloud && (selectedApp.sharing === true || selectedApp.public === true || creatorProfile.github_avatar !== undefined) && !internalIds.includes(selectedApp.name.toLowerCase()) ?
|
||||
{/*isCloud && (selectedApp.sharing === true || selectedApp.public === true || creatorProfile.github_avatar !== undefined) && !internalIds.includes(selectedApp.name.toLowerCase()) */}
|
||||
|
||||
{isCloud && !internalIds.includes(selectedApp.name.toLowerCase()) ?
|
||||
<Tooltip title="Deactivates this app for the current organisation. This means the app will not be usable again until you re-activate it." placement="top">
|
||||
<Button
|
||||
variant="contained"
|
||||
|
||||
Reference in New Issue
Block a user