Fixed minor schedule location issues and app build revisions

This commit is contained in:
Frikky
2024-02-28 23:09:50 +01:00
parent d65e9215ff
commit fb626a7c21
7 changed files with 104 additions and 33 deletions
+16 -6
View File
@@ -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
+34 -7
View File
@@ -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={{}}
+46 -16
View File
@@ -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"
+3 -1
View File
@@ -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"