Fixed Theme name issue and updated backend to 0.4.17
This commit is contained in:
@@ -66,7 +66,7 @@ SHUFFLE_BASE_IMAGE_TAG_SUFFIX="-1.1.0"
|
||||
SHUFFLE_CONTAINER_AUTO_CLEANUP=false
|
||||
SHUFFLE_ELASTIC=true
|
||||
SHUFFLE_LOGS_DISABLED=false
|
||||
SHUFFLE_CHAT_DISABLED=false # Controls support chat
|
||||
SHUFFLE_CHAT_DISABLED=false # Controls support chat
|
||||
SHUFFLE_RERUN_SCHEDULE=300
|
||||
SHUFFLE_DISABLE_RERUN_AND_ABORT=false
|
||||
SHUFFLE_WORKER_SERVER_URL= # Definition in case Worker & Orborus is talking to the wrong server
|
||||
|
||||
+3
-3
@@ -1,10 +1,10 @@
|
||||
#!/bin/sh
|
||||
docker stop shuffle-backend
|
||||
docker rm shuffle-backend
|
||||
docker rmi ghcr.io/shuffle/shuffle-backend:latest
|
||||
docker rmi ghcr.io/shuffle/shuffle-backend:nightly
|
||||
|
||||
docker build . -t ghcr.io/shuffle/shuffle-backend:latest
|
||||
#docker push ghcr.io/shuffle/shuffle-backend:latest
|
||||
docker build . -t ghcr.io/shuffle/shuffle-backend:nightly
|
||||
docker push ghcr.io/shuffle/shuffle-backend:nightly
|
||||
|
||||
echo "Starting server"
|
||||
#docker run -it \
|
||||
|
||||
@@ -19,7 +19,7 @@ require (
|
||||
github.com/gorilla/mux v1.8.0
|
||||
github.com/h2non/filetype v1.1.3
|
||||
github.com/satori/go.uuid v1.2.0
|
||||
github.com/shuffle/shuffle-shared v0.4.14
|
||||
github.com/shuffle/shuffle-shared v0.4.17
|
||||
golang.org/x/crypto v0.3.0
|
||||
google.golang.org/api v0.103.0
|
||||
google.golang.org/appengine v1.6.7
|
||||
|
||||
@@ -400,7 +400,7 @@ func handleGetWorkflowqueue(resp http.ResponseWriter, request *http.Request) {
|
||||
// Add to start of org.Priorities
|
||||
org.Priorities = append(org.Priorities, shuffle.Priority{
|
||||
Name: fmt.Sprintf("High CPU in environment %s", orgId),
|
||||
Description: fmt.Sprintf("The environment %s has been using more than %d percent CPU.", orgId, percentageCheck),
|
||||
Description: fmt.Sprintf("The environment %s has been using more than %d percent CPU. This indicates you may need to look at scaling.", orgId, percentageCheck),
|
||||
Type: "scale",
|
||||
Active: true,
|
||||
URL: fmt.Sprintf("/admin?tab=environments"),
|
||||
|
||||
@@ -3,7 +3,7 @@ import React, { useState, useEffect } from 'react';
|
||||
import CytoscapeComponent from 'react-cytoscapejs';
|
||||
import frameworkStyle from '../frameworkStyle.jsx';
|
||||
import { v4 as uuidv4 } from "uuid";
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
import { useAlert } from "react-alert";
|
||||
|
||||
import AppSearch from '../components/Appsearch.jsx';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import React, { useState, useEffect } from 'react';
|
||||
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
import AppSearch from './Appsearch.jsx';
|
||||
|
||||
import {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import React, { useState, useEffect } from "react";
|
||||
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
import { useAlert } from "react-alert";
|
||||
import {
|
||||
Tooltip,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React, { useState, useEffect } from "react";
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
import { v4 as uuidv4 } from "uuid";
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import React, { useState, useEffect } from "react";
|
||||
import ReactGA from 'react-ga4';
|
||||
import theme from "../theme";
|
||||
import theme from "../theme.jsx";
|
||||
|
||||
import { useTheme } from "@material-ui/core/styles";
|
||||
import {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React, { useState, useEffect } from "react";
|
||||
import theme from "../theme";
|
||||
import theme from "../theme.jsx";
|
||||
import {
|
||||
Tooltip,
|
||||
Divider,
|
||||
@@ -48,9 +48,10 @@ const CacheView = (props) => {
|
||||
const [listCache, setListCache] = React.useState([]);
|
||||
const [addCache, setAddCache] = React.useState("");
|
||||
const [modalOpen, setModalOpen] = React.useState(false);
|
||||
const [key,setKey]= React.useState("");
|
||||
const [key, setKey]= React.useState("");
|
||||
const [value, setValue]= React.useState("");
|
||||
const [cacheInput, setCacheInput]= React.useState('');
|
||||
const [cacheInput, setCacheInput]= React.useState("");
|
||||
const [cacheCursor, setCacheCursor]= React.useState("");
|
||||
|
||||
const alert = useAlert();
|
||||
useEffect(() => {
|
||||
@@ -67,20 +68,26 @@ const CacheView = (props) => {
|
||||
},
|
||||
credentials: "include",
|
||||
})
|
||||
.then((response) => {
|
||||
if (response.status !== 200) {
|
||||
console.log("Status not 200 for apps :O!");
|
||||
return;
|
||||
}
|
||||
.then((response) => {
|
||||
if (response.status !== 200) {
|
||||
console.log("Status not 200 for apps :O!");
|
||||
return;
|
||||
}
|
||||
|
||||
return response.json();
|
||||
})
|
||||
.then((responseJson) => {
|
||||
setListCache(responseJson);
|
||||
})
|
||||
.catch((error) => {
|
||||
alert.error(error.toString());
|
||||
});
|
||||
return response.json();
|
||||
})
|
||||
.then((responseJson) => {
|
||||
if (responseJson.success === true) {
|
||||
setListCache(responseJson.keys);
|
||||
}
|
||||
|
||||
if (responseJson.cursor !== undefined && responseJson.cursor !== null && responseJson.cursor !== "") {
|
||||
setCacheCursor(responseJson.cursor);
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
alert.error(error.toString());
|
||||
});
|
||||
};
|
||||
|
||||
// const getCacheList = (orgId) => {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React, { useEffect, useContext } from "react";
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
import { isMobile } from "react-device-detect"
|
||||
import ChipInput from "material-ui-chip-input";
|
||||
import UsecaseSearch from "../components/UsecaseSearch.jsx"
|
||||
|
||||
@@ -32,7 +32,7 @@ import {
|
||||
import { useAlert } from "react-alert";
|
||||
import Dropzone from "../components/Dropzone.jsx";
|
||||
import CodeEditor from "../components/ShuffleCodeEditor.jsx";
|
||||
import theme from "../theme";
|
||||
import theme from "../theme.jsx";
|
||||
|
||||
const Files = (props) => {
|
||||
const { globalUrl, userdata, serverside, selectedOrganization, isCloud, } = props;
|
||||
|
||||
@@ -77,7 +77,7 @@ const { globalUrl, setNotifications, notifications, isLoggedIn, removeCookie, ho
|
||||
textDecoration: "none",
|
||||
}
|
||||
|
||||
const isCloud = serverside === true ? true : window.location.host === "localhost:3002" || window.location.host === "shuffler.io";
|
||||
const isCloud = serverside === true || typeof window === 'undefined' ? true : window.location.host === "localhost:3002" || window.location.host === "shuffler.io";
|
||||
|
||||
const clearNotifications = () => {
|
||||
// Don't really care about the logout
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import React, { useRef, useState, useEffect, useLayoutEffect } from "react";
|
||||
import { useParams, useNavigate, Link } from "react-router-dom";
|
||||
import { useTheme } from "@material-ui/core/styles";
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
|
||||
import { v4 as uuidv4 } from "uuid";
|
||||
import {
|
||||
@@ -90,7 +90,6 @@ const AuthenticationOauth2 = (props) => {
|
||||
appAuthentication,
|
||||
setSelectedAction,
|
||||
setNewAppAuth,
|
||||
setAuthenticationModalOpen,
|
||||
isCloud,
|
||||
autoAuth,
|
||||
authButtonOnly,
|
||||
@@ -118,7 +117,7 @@ const AuthenticationOauth2 = (props) => {
|
||||
const [oauthUrl, setOauthUrl] = React.useState("");
|
||||
const [buttonClicked, setButtonClicked] = React.useState(false);
|
||||
|
||||
const [offlineAccess, setOfflineAccess] = React.useState(false);
|
||||
const [offlineAccess, setOfflineAccess] = React.useState(true);
|
||||
const allscopes = authenticationType.scope !== undefined ? authenticationType.scope : [];
|
||||
|
||||
|
||||
@@ -365,9 +364,6 @@ const AuthenticationOauth2 = (props) => {
|
||||
if (newwin.closed) {
|
||||
console.log("Closing?")
|
||||
|
||||
if (setAuthenticationModalOpen !== undefined) {
|
||||
setAuthenticationModalOpen(false)
|
||||
}
|
||||
|
||||
setButtonClicked(false);
|
||||
clearInterval(timer);
|
||||
@@ -375,7 +371,7 @@ const AuthenticationOauth2 = (props) => {
|
||||
//
|
||||
|
||||
if (getAppAuthentication !== undefined) {
|
||||
getAppAuthentication(true, true);
|
||||
getAppAuthentication(true, true, true);
|
||||
}
|
||||
} else {
|
||||
console.log("Not closed")
|
||||
@@ -574,7 +570,6 @@ const AuthenticationOauth2 = (props) => {
|
||||
return autoAuthButton
|
||||
}
|
||||
|
||||
console.log("Window: ", window.location)
|
||||
return (
|
||||
<div>
|
||||
<DialogTitle>
|
||||
|
||||
@@ -7,7 +7,7 @@ import { sortByKey } from "../views/AngularWorkflow.jsx";
|
||||
import { useTheme } from "@material-ui/core/styles";
|
||||
import NestedMenuItem from "material-ui-nested-menu-item";
|
||||
import { useAlert } from "react-alert";
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
|
||||
import {
|
||||
ButtonGroup,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import React, { useState, useEffect, useLayoutEffect } from "react";
|
||||
import * as cytoscape from "cytoscape";
|
||||
import CytoscapeComponent from "react-cytoscapejs";
|
||||
import cystyle from "../defaultCytoscapeStyle";
|
||||
import cystyle from "../defaultCytoscapeStyle.jsx";
|
||||
|
||||
const surfaceColor = "#27292D";
|
||||
const CytoscapeWrapper = (props) => {
|
||||
|
||||
@@ -14,7 +14,7 @@ import {
|
||||
Button,
|
||||
} from '@material-ui/core';
|
||||
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
import Checkbox from '@mui/material/Checkbox';
|
||||
import { orange } from '@mui/material/colors';
|
||||
import { isMobile } from "react-device-detect"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import ReactGA from 'react-ga4';
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
import PaperComponent from "../components/PaperComponent.jsx"
|
||||
import UsecaseSearch, { usecaseTypes } from "../components/UsecaseSearch.jsx"
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React, { useState, useEffect } from "react";
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
import { useNavigate, Link } from "react-router-dom";
|
||||
import { useAlert } from "react-alert";
|
||||
import ConfigureWorkflow from "../components/ConfigureWorkflow.jsx";
|
||||
|
||||
@@ -14,7 +14,7 @@ import LightbulbIcon from '@mui/icons-material/Lightbulb';
|
||||
import ArrowBackIosNewIcon from '@mui/icons-material/ArrowBackIosNew';
|
||||
import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';
|
||||
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
import {
|
||||
Fade,
|
||||
IconButton,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React, { useState, useEffect, useLayoutEffect } from "react";
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
|
||||
import {
|
||||
Chip,
|
||||
@@ -30,19 +30,6 @@ const workflowActionStyle = {
|
||||
justifyContent: "space-between",
|
||||
}
|
||||
|
||||
const paperAppStyle = {
|
||||
minHeight: 130,
|
||||
maxHeight: 130,
|
||||
overflow: "hidden",
|
||||
width: "100%",
|
||||
color: "white",
|
||||
backgroundColor: theme.palette.surfaceColor,
|
||||
padding: "12px 12px 0px 15px",
|
||||
borderRadius: 5,
|
||||
display: "flex",
|
||||
boxSizing: "border-box",
|
||||
position: "relative",
|
||||
}
|
||||
|
||||
const chipStyle = {
|
||||
backgroundColor: "#3d3f43",
|
||||
@@ -70,6 +57,20 @@ const WorkflowPaper = (props) => {
|
||||
//console.log("Workflow: ", data)
|
||||
var boxColor = "#86c142";
|
||||
|
||||
const paperAppStyle = {
|
||||
minHeight: 130,
|
||||
maxHeight: 130,
|
||||
overflow: "hidden",
|
||||
width: "100%",
|
||||
color: "white",
|
||||
backgroundColor: theme.palette.surfaceColor,
|
||||
padding: "12px 12px 0px 15px",
|
||||
borderRadius: 5,
|
||||
display: "flex",
|
||||
boxSizing: "border-box",
|
||||
position: "relative",
|
||||
}
|
||||
|
||||
var parsedName = data.name;
|
||||
if (
|
||||
parsedName !== undefined &&
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React, { useState, useEffect, useLayoutEffect } from "react";
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
|
||||
import {
|
||||
Chip,
|
||||
|
||||
@@ -6,7 +6,7 @@ import countries from "../components/Countries.jsx";
|
||||
import CodeEditor from "../components/ShuffleCodeEditor.jsx";
|
||||
import getLocalCodeData from "../components/ShuffleCodeEditor.jsx";
|
||||
import CacheView from "../components/CacheView.jsx";
|
||||
import theme from "../theme";
|
||||
import theme from "../theme.jsx";
|
||||
import AddIcon from "@mui/icons-material/Add";
|
||||
import ClearIcon from '@mui/icons-material/Clear';
|
||||
import StorageIcon from '@mui/icons-material/Storage';
|
||||
|
||||
@@ -13,7 +13,7 @@ import ReactJson from "react-json-view";
|
||||
import NestedMenuItem from "material-ui-nested-menu-item";
|
||||
import ReactMarkdown from "react-markdown";
|
||||
import { useAlert } from "react-alert";
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
import { isMobile } from "react-device-detect"
|
||||
import aa from 'search-insights'
|
||||
import Drift from "react-driftjs";
|
||||
@@ -128,7 +128,7 @@ import undoRedo from "cytoscape-undo-redo";
|
||||
|
||||
import Draggable from "react-draggable";
|
||||
|
||||
import cytoscapestyle from "../defaultCytoscapeStyle";
|
||||
import cytoscapestyle from "../defaultCytoscapeStyle.jsx";
|
||||
import cxtmenu from "cytoscape-cxtmenu";
|
||||
|
||||
import { validateJson, GetIconInfo } from "./Workflows.jsx";
|
||||
@@ -1710,7 +1710,7 @@ const AngularWorkflow = (defaultprops) => {
|
||||
//"Testing",
|
||||
const internalIds = ["Shuffle Tools", "http", "email"];
|
||||
|
||||
const getAppAuthentication = (reset, updateAction) => {
|
||||
const getAppAuthentication = (reset, updateAction, closeMenu) => {
|
||||
fetch(globalUrl + "/api/v1/apps/authentication", {
|
||||
method: "GET",
|
||||
headers: {
|
||||
@@ -1727,6 +1727,7 @@ const AngularWorkflow = (defaultprops) => {
|
||||
return response.json();
|
||||
})
|
||||
.then((responseJson) => {
|
||||
var shouldClose = false
|
||||
if (responseJson.success) {
|
||||
var newauth = [];
|
||||
for (let authkey in responseJson.data) {
|
||||
@@ -1757,13 +1758,18 @@ const AngularWorkflow = (defaultprops) => {
|
||||
for (let authkey in tmpAuth) {
|
||||
var item = tmpAuth[authkey];
|
||||
|
||||
//console.log("Got auth: ", item);
|
||||
|
||||
const newfields = {};
|
||||
for (let filterkey in item.fields) {
|
||||
newfields[item.fields[filterkey].key] = item.fields[filterkey].value;
|
||||
}
|
||||
|
||||
item.fields = newfields;
|
||||
if (item.app.name === selectedApp.name) {
|
||||
|
||||
const appname = selectedApp.name.toLowerCase().replace(" ", "_", -1)
|
||||
const itemname = item.app.name.toLowerCase().replace(" ", "_", -1)
|
||||
if (itemname === appname) {
|
||||
authenticationOptions.push(item);
|
||||
|
||||
// Always becoming the last one
|
||||
@@ -1772,14 +1778,19 @@ const AngularWorkflow = (defaultprops) => {
|
||||
selectedAction.selectedAuthentication = item;
|
||||
|
||||
for (let actionkey in workflow.actions) {
|
||||
if (workflow.actions[actionkey].app_name === selectedApp.name) {
|
||||
const actionAppname = workflow.actions[actionkey].app_name.toLowerCase().replace(" ", "_", -1)
|
||||
if (actionAppname === appname) {
|
||||
workflow.actions[actionkey].selectedAuthentication = item;
|
||||
workflow.actions[actionkey].authentication_id = item.id;
|
||||
appUpdates = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//console.log("Not newer: ", item.edited, " vs ", latest)
|
||||
}
|
||||
} else {
|
||||
//console.log("Appname is wrong: ", appname, " vs ", itemname)
|
||||
}
|
||||
}
|
||||
|
||||
selectedAction.authentication = authenticationOptions;
|
||||
@@ -1799,18 +1810,28 @@ const AngularWorkflow = (defaultprops) => {
|
||||
setWorkflow(workflow);
|
||||
saveWorkflow(workflow);
|
||||
alert.info("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.");
|
||||
shouldClose = false
|
||||
}
|
||||
} else {
|
||||
alert.info("No authentication to update");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
shouldClose = true
|
||||
}
|
||||
} else {
|
||||
setAppAuthentication([]);
|
||||
shouldClose = true
|
||||
}
|
||||
|
||||
// Auto-closing if changes were made
|
||||
if (closeMenu === true && shouldClose === true) {
|
||||
setAuthenticationModalOpen(false);
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
setAppAuthentication([]);
|
||||
@@ -3364,7 +3385,7 @@ const AngularWorkflow = (defaultprops) => {
|
||||
alert.error("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.")
|
||||
//alert.success("App activated for your organization! Refresh the page to use the app.")
|
||||
getApps()
|
||||
}
|
||||
}
|
||||
@@ -14760,7 +14781,7 @@ const AngularWorkflow = (defaultprops) => {
|
||||
{curapp === null ? null : (
|
||||
<img
|
||||
alt={selectedResult.action.app_name}
|
||||
src={selectedResult === undefined ? theme.palette.defaultImage : selectedResult.action.app_name === "shuffle-subflow" ? triggers[4].large_image : selectedResult.action.app_name === "User Input" ? triggers[5].large_image : selectedResult.action.large_image}
|
||||
src={selectedResult === undefined ? theme.palette.defaultImage : selectedResult.action.app_name === "shuffle-subflow" ? triggers[4].large_image : selectedResult.action.app_name === "User Input" ? triggers[5].large_image : selectedResult.action.large_image !== undefined && selectedResult.action.large_image !== null && selectedResult.action.large_image !== "" ? selectedResult.action.large_image : curapp.large_image}
|
||||
style={{
|
||||
marginRight: 20,
|
||||
width: imgsize,
|
||||
|
||||
@@ -4,7 +4,7 @@ import AppFramework from "../components/AppFramework.jsx";
|
||||
import { makeStyles, useTheme } from "@material-ui/core/styles";
|
||||
// nodejs library that concatenates classes
|
||||
import classNames from "classnames";
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
import { useNavigate, Link, useParams } from "react-router-dom";
|
||||
|
||||
// react plugin used to create charts
|
||||
|
||||
@@ -3,7 +3,7 @@ import { useInterval } from "react-powerhooks";
|
||||
import { makeStyles, useTheme } from "@material-ui/core/styles";
|
||||
// nodejs library that concatenates classes
|
||||
import classNames from "classnames";
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
import { useNavigate, Link, useParams } from "react-router-dom";
|
||||
|
||||
// react plugin used to create charts
|
||||
|
||||
@@ -4,7 +4,7 @@ import ReactDOM from "react-dom"
|
||||
import AppFramework from "../components/AppFramework.jsx";
|
||||
import { useAlert } from "react-alert";
|
||||
import { Link, useParams } from "react-router-dom";
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
|
||||
import {
|
||||
Button,
|
||||
|
||||
@@ -6,7 +6,7 @@ import { useInterval } from "react-powerhooks";
|
||||
import { makeStyles } from '@material-ui/styles';
|
||||
import { useNavigate, Link, useParams } from "react-router-dom";
|
||||
import {isMobile} from "react-device-detect";
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
import { validateJson, GetIconInfo } from "./Workflows.jsx";
|
||||
import { green, yellow } from "./AngularWorkflow.jsx";
|
||||
|
||||
@@ -39,15 +39,6 @@ const bodyDivStyle = {
|
||||
position: "relative",
|
||||
}
|
||||
|
||||
const boxStyle = {
|
||||
color: "white",
|
||||
paddingLeft: "30px",
|
||||
paddingRight: "30px",
|
||||
paddingBottom: "30px",
|
||||
paddingTop: "30px",
|
||||
backgroundColor: theme.palette.surfaceColor,
|
||||
marginBottom: 150,
|
||||
}
|
||||
|
||||
const RunWorkflow = (defaultprops) => {
|
||||
const { globalUrl, isLoaded, isLoggedIn, setIsLoggedIn, setCookie, register, serverside } = defaultprops;
|
||||
@@ -65,11 +56,25 @@ const RunWorkflow = (defaultprops) => {
|
||||
const [apps, setApps] = React.useState([]);
|
||||
const [buttonClicked, setButtonClicked] = React.useState("");
|
||||
|
||||
const boxStyle = {
|
||||
color: "white",
|
||||
paddingLeft: "30px",
|
||||
paddingRight: "30px",
|
||||
paddingBottom: "30px",
|
||||
paddingTop: "30px",
|
||||
backgroundColor: theme.palette.surfaceColor,
|
||||
marginBottom: 150,
|
||||
}
|
||||
|
||||
const params = useParams();
|
||||
var props = JSON.parse(JSON.stringify(defaultprops))
|
||||
props.match = {}
|
||||
props.match.params = params
|
||||
|
||||
const defaultTitle = "Run Workflow"
|
||||
if (document != undefined && document.title != defaultTitle) {
|
||||
document.title = defaultTitle
|
||||
}
|
||||
|
||||
const parsedsearch = serverside === true ? "" : window.location.search
|
||||
if (serverside !== true) {
|
||||
@@ -513,6 +518,9 @@ const RunWorkflow = (defaultprops) => {
|
||||
if (responseJson.sync_features === undefined || responseJson.sync_features === null) {
|
||||
}
|
||||
|
||||
if (document != undefined && document.title != defaultTitle) {
|
||||
document.title = responseJson.name + " - " + defaultTitle
|
||||
}
|
||||
setSelectedOrganization(responseJson)
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import React, { useState, useEffect } from "react";
|
||||
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
import {isMobile} from "react-device-detect";
|
||||
import AppGrid from "../components/AppGrid.jsx"
|
||||
import WorkflowGrid from "../components/WorkflowGrid.jsx"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import React, { useState } from "react";
|
||||
|
||||
import { Typography, CircularProgress } from "@material-ui/core";
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
|
||||
const SetAuthentication = (props) => {
|
||||
const { globalUrl } = props;
|
||||
|
||||
@@ -17,7 +17,7 @@ import {
|
||||
CardContent,
|
||||
CardActionArea,
|
||||
} from '@mui/material';
|
||||
import theme from '../theme';
|
||||
import theme from '../theme.jsx';
|
||||
import { useNavigate, Link } from "react-router-dom";
|
||||
import Drift from "react-driftjs";
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@ import { useNavigate, Link } from "react-router-dom";
|
||||
import { useAlert } from "react-alert";
|
||||
import ChipInput from "material-ui-chip-input";
|
||||
import { v4 as uuidv4 } from "uuid";
|
||||
import theme from "../theme";
|
||||
import theme from "../theme.jsx";
|
||||
|
||||
const inputColor = "#383B40";
|
||||
const surfaceColor = "#27292D";
|
||||
@@ -3447,8 +3447,8 @@ const Workflows = (props) => {
|
||||
</div>
|
||||
) : null}
|
||||
|
||||
{/*userdata.priorities !== undefined && userdata.priorities !== null && userdata.priorities.length > 0 ?
|
||||
<div style={{width: "100%", border: "1px solid rgba(255,255,255,0.1)", borderRadius: theme.palette.borderRadius, marginTop: 10, marginBottom: 10, padding: 15, textAlign: "center", height: 70, textAlign: "left", backgroundColor: theme.palette.surfaceColor, display: "flex", }}>
|
||||
{userdata.priorities !== undefined && userdata.priorities !== null && userdata.priorities.length > 0 && userdata.priorities[0].name.includes("CPU") ?
|
||||
<div style={{border: "1px solid rgba(255,255,255,0.1)", borderRadius: theme.palette.borderRadius, marginTop: 10, marginBottom: 10, padding: 15, textAlign: "center", height: 70, textAlign: "left", backgroundColor: theme.palette.surfaceColor, display: "flex", }}>
|
||||
<div style={{flex: 2, overflow: "hidden",}}>
|
||||
<Typography variant="body1" >
|
||||
{userdata.priorities[0].name}
|
||||
@@ -3459,14 +3459,16 @@ const Workflows = (props) => {
|
||||
</div>
|
||||
<div style={{flex: 1, display: "flex", marginLeft: 30, }}>
|
||||
<Button style={{height: 50, borderRadius: 25, marginTop: 8, width: 200, }} variant="contained" color="secondary" onClick={() => {navigate(userdata.priorities[0].url)}}>
|
||||
Continue
|
||||
explore
|
||||
</Button>
|
||||
{/*
|
||||
<Button style={{borderRadius: 25, width: 200, height: 50, marginTop: 8, }} variant="text" color="secondary">
|
||||
Ignore
|
||||
</Button>
|
||||
*/}
|
||||
</div>
|
||||
</div>
|
||||
: null*/}
|
||||
: null}
|
||||
|
||||
<div style={{marginTop: 15, }}>
|
||||
{view === "grid" ? (
|
||||
|
||||
@@ -9,7 +9,7 @@ require (
|
||||
github.com/mackerelio/go-osstat v0.2.3
|
||||
github.com/satori/go.uuid v1.2.0
|
||||
github.com/shirou/gopsutil v3.21.11+incompatible
|
||||
github.com/shuffle/shuffle-shared v0.4.14
|
||||
github.com/shuffle/shuffle-shared v0.4.17
|
||||
)
|
||||
|
||||
require (
|
||||
|
||||
@@ -202,6 +202,8 @@ github.com/shuffle/shuffle-shared v0.4.11 h1:qTYQ/kGzKbbMGMrKL2OLoabIpQABdtMurmk
|
||||
github.com/shuffle/shuffle-shared v0.4.11/go.mod h1:jQrYySmvp/0De5ftrAaY6xwwr7TMfqBmBxQ2AX9yrjQ=
|
||||
github.com/shuffle/shuffle-shared v0.4.14 h1:jDhvGRdnwDDfsJaNdaww8LlXmjDAlVTHarcO4F+9vKs=
|
||||
github.com/shuffle/shuffle-shared v0.4.14/go.mod h1:jQrYySmvp/0De5ftrAaY6xwwr7TMfqBmBxQ2AX9yrjQ=
|
||||
github.com/shuffle/shuffle-shared v0.4.17 h1:56ll366bdmIJu/7GFqNC2XTjjl0SGBf430PSq+EB6Ro=
|
||||
github.com/shuffle/shuffle-shared v0.4.17/go.mod h1:jQrYySmvp/0De5ftrAaY6xwwr7TMfqBmBxQ2AX9yrjQ=
|
||||
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e h1:MRM5ITcdelLK2j1vwZ3Je0FKVCfqOLp5zO6trqMLYs0=
|
||||
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e/go.mod h1:XV66xRDqSt+GTGFMVlhk3ULuV0y9ZmzeVGR4mloJI3M=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
|
||||
@@ -935,6 +935,13 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
// Handle Cleanup
|
||||
// var cleanupEnv = strings.ToLower(os.Getenv("CLEANUP"))
|
||||
// SHUFFLE_CONTAINER_AUTO_CLEANUP=false
|
||||
if strings.ToLower(os.Getenv("SHUFFLE_CONTAINER_AUTO_CLEANUP")) == "true" {
|
||||
cleanupEnv = "true"
|
||||
}
|
||||
|
||||
workerTimeout := 600
|
||||
if workerTimeoutEnv != "" {
|
||||
tmpInt, err := strconv.Atoi(workerTimeoutEnv)
|
||||
@@ -1173,6 +1180,7 @@ func main() {
|
||||
|
||||
if shuffle.ArrayContains(executionIds, execution.ExecutionId) {
|
||||
log.Printf("[INFO] Execution already handled: %s", execution.ExecutionId)
|
||||
toBeRemoved.Data = append(toBeRemoved.Data, execution)
|
||||
continue
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ require (
|
||||
github.com/gorilla/mux v1.8.0
|
||||
github.com/patrickmn/go-cache v2.1.0+incompatible
|
||||
github.com/satori/go.uuid v1.2.0
|
||||
github.com/shuffle/shuffle-shared v0.4.14
|
||||
github.com/shuffle/shuffle-shared v0.4.17
|
||||
)
|
||||
|
||||
require (
|
||||
|
||||
@@ -220,6 +220,8 @@ github.com/shuffle/shuffle-shared v0.4.2 h1:GzDAOHN4YMMLzRmmToyO/KSYDziRuEuxLhea
|
||||
github.com/shuffle/shuffle-shared v0.4.2/go.mod h1:jQrYySmvp/0De5ftrAaY6xwwr7TMfqBmBxQ2AX9yrjQ=
|
||||
github.com/shuffle/shuffle-shared v0.4.9 h1:mGCaLcSbrsQCy26pJXPlZAtitEzEEwqotGNjnsvOM/U=
|
||||
github.com/shuffle/shuffle-shared v0.4.9/go.mod h1:jQrYySmvp/0De5ftrAaY6xwwr7TMfqBmBxQ2AX9yrjQ=
|
||||
github.com/shuffle/shuffle-shared v0.4.17 h1:56ll366bdmIJu/7GFqNC2XTjjl0SGBf430PSq+EB6Ro=
|
||||
github.com/shuffle/shuffle-shared v0.4.17/go.mod h1:jQrYySmvp/0De5ftrAaY6xwwr7TMfqBmBxQ2AX9yrjQ=
|
||||
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e h1:MRM5ITcdelLK2j1vwZ3Je0FKVCfqOLp5zO6trqMLYs0=
|
||||
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e/go.mod h1:XV66xRDqSt+GTGFMVlhk3ULuV0y9ZmzeVGR4mloJI3M=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
|
||||
Reference in New Issue
Block a user