Fixed some loading problems for images & changed Workflow UI slightly
This commit is contained in:
@@ -35,7 +35,7 @@ import edgehandles from "cytoscape-edgehandles";
|
||||
import cytoscape from "cytoscape";
|
||||
import { toast } from 'react-toastify';
|
||||
|
||||
cytoscape.use(edgehandles);
|
||||
cytoscape.use(edgehandles)
|
||||
|
||||
export const findSpecificApp = (framework, inputcategory) => {
|
||||
// Get the frameworkinfo for the org and fill in
|
||||
@@ -59,7 +59,7 @@ export const findSpecificApp = (framework, inputcategory) => {
|
||||
|
||||
return {
|
||||
name: "EDR :default",
|
||||
large_image: parsedDatatypeImages["EDR & AV"],
|
||||
large_image: parsedDatatypeImages()["EDR & AV"],
|
||||
count: 0,
|
||||
description: "",
|
||||
id: "",
|
||||
@@ -71,7 +71,7 @@ export const findSpecificApp = (framework, inputcategory) => {
|
||||
|
||||
return {
|
||||
name: "COMMS :default",
|
||||
large_image: parsedDatatypeImages["COMMS"],
|
||||
large_image: parsedDatatypeImages()["COMMS"],
|
||||
count: 0,
|
||||
description: "",
|
||||
id: "",
|
||||
@@ -83,7 +83,7 @@ export const findSpecificApp = (framework, inputcategory) => {
|
||||
|
||||
return {
|
||||
name: "COMMS :default",
|
||||
large_image: parsedDatatypeImages["COMMS"],
|
||||
large_image: parsedDatatypeImages()["COMMS"],
|
||||
count: 0,
|
||||
description: "",
|
||||
id: "",
|
||||
@@ -95,7 +95,7 @@ export const findSpecificApp = (framework, inputcategory) => {
|
||||
|
||||
return {
|
||||
name: "ASSETS :default",
|
||||
large_image: parsedDatatypeImages["ASSETS"],
|
||||
large_image: parsedDatatypeImages()["ASSETS"],
|
||||
count: 0,
|
||||
description: "",
|
||||
id: "",
|
||||
@@ -107,7 +107,7 @@ export const findSpecificApp = (framework, inputcategory) => {
|
||||
|
||||
return {
|
||||
name: "CASES :default",
|
||||
large_image: parsedDatatypeImages["CASES"],
|
||||
large_image: parsedDatatypeImages()["CASES"],
|
||||
count: 0,
|
||||
description: "",
|
||||
id: "",
|
||||
@@ -119,7 +119,7 @@ export const findSpecificApp = (framework, inputcategory) => {
|
||||
|
||||
return {
|
||||
name: "IAM :default",
|
||||
large_image: parsedDatatypeImages["IAM"],
|
||||
large_image: parsedDatatypeImages()["IAM"],
|
||||
count: 0,
|
||||
description: "",
|
||||
id: "",
|
||||
@@ -131,7 +131,7 @@ export const findSpecificApp = (framework, inputcategory) => {
|
||||
|
||||
return {
|
||||
name: "Network :default",
|
||||
large_image: parsedDatatypeImages["NETWORK"],
|
||||
large_image: parsedDatatypeImages()["NETWORK"],
|
||||
count: 0,
|
||||
description: "",
|
||||
id: "",
|
||||
@@ -143,7 +143,7 @@ export const findSpecificApp = (framework, inputcategory) => {
|
||||
|
||||
return {
|
||||
name: "INTEL :default",
|
||||
large_image: parsedDatatypeImages["INTEL"],
|
||||
large_image: parsedDatatypeImages()["INTEL"],
|
||||
count: 0,
|
||||
description: "",
|
||||
id: "",
|
||||
@@ -155,7 +155,7 @@ export const findSpecificApp = (framework, inputcategory) => {
|
||||
|
||||
return {
|
||||
name: "SIEM :default",
|
||||
large_image: parsedDatatypeImages["SIEM"],
|
||||
large_image: parsedDatatypeImages()["SIEM"],
|
||||
count: 0,
|
||||
description: "",
|
||||
id: "",
|
||||
@@ -168,24 +168,30 @@ export const findSpecificApp = (framework, inputcategory) => {
|
||||
}
|
||||
|
||||
const svgSize = "40px"
|
||||
export 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>`),
|
||||
export const parsedDatatypeImages = () => {
|
||||
const isWorkflow = window.location.pathname.includes("/workflows/")
|
||||
const svgSize = isWorkflow ? "24px" : "40px"
|
||||
const colorfill = isWorkflow ? "rgb(240,240,240)" : "rgb(248,90,62)"
|
||||
|
||||
"CASES": 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="M15.6408 8.39233H18.0922V10.0287H15.6408V8.39233ZM0.115234 8.39233H2.56663V10.0287H0.115234V8.39233ZM9.92083 0.21051V2.66506H8.28656V0.21051H9.92083ZM3.31839 2.25596L5.05889 4.00687L3.89856 5.16051L2.15807 3.42596L3.31839 2.25596ZM13.1485 3.99869L14.8808 2.25596L16.0493 3.42596L14.3088 5.16051L13.1485 3.99869ZM9.10369 4.30142C10.404 4.30142 11.651 4.81863 12.5705 5.73926C13.4899 6.65989 14.0065 7.90854 14.0065 9.21051C14.0065 11.0269 13.0178 12.6141 11.5551 13.4651V14.9378C11.5551 15.1548 11.469 15.3629 11.3158 15.5163C11.1625 15.6698 10.9547 15.756 10.738 15.756H7.46943C7.25271 15.756 7.04487 15.6698 6.89163 15.5163C6.73839 15.3629 6.6523 15.1548 6.6523 14.9378V13.4651C5.18963 12.6141 4.2009 11.0269 4.2009 9.21051C4.2009 7.90854 4.71744 6.65989 5.63689 5.73926C6.55635 4.81863 7.80339 4.30142 9.10369 4.30142ZM10.738 16.5741V17.3923C10.738 17.6093 10.6519 17.8174 10.4986 17.9709C10.3454 18.1243 10.1375 18.2105 9.92083 18.2105H8.28656C8.06984 18.2105 7.862 18.1243 7.70876 17.9709C7.55552 17.8174 7.46943 17.6093 7.46943 17.3923V16.5741H10.738ZM8.28656 14.1196H9.92083V12.3769C11.3345 12.0169 12.3722 10.7323 12.3722 9.21051C12.3722 8.34253 12.0279 7.5101 11.4149 6.89634C10.8019 6.28259 9.97056 5.93778 9.10369 5.93778C8.23683 5.93778 7.40546 6.28259 6.79249 6.89634C6.17953 7.5101 5.83516 8.34253 5.83516 9.21051C5.83516 10.7323 6.87292 12.0169 8.28656 12.3769V14.1196Z" /></svg>`),
|
||||
return {
|
||||
"SIEM": encodeURI(`data:image/svg+xml;utf-8,<svg fill="${colorfill}" 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>`),
|
||||
|
||||
"EDR & AV": 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="M19.1722 8.9957L17.0737 6.60487L17.3661 3.44004L14.2615 2.73483L12.6361 -3.28068e-08L9.71206 1.25561L6.78803 -3.28068e-08L5.16261 2.73483L2.05797 3.43144L2.35038 6.59627L0.251953 8.9957L2.35038 11.3865L2.05797 14.56L5.16261 15.2652L6.78803 18L9.71206 16.7358L12.6361 17.9914L14.2615 15.2566L17.3661 14.5514L17.0737 11.3865L19.1722 8.9957ZM10.5721 13.2957H8.85205V11.5757H10.5721V13.2957ZM10.5721 9.85571H8.85205V4.69565H10.5721V9.85571Z" /></svg>`),
|
||||
"CASES": encodeURI(`data:image/svg+xml;utf-8,<svg fill="${colorfill}" width="${svgSize}" height="${svgSize}" viewBox="0 0 ${svgSize} ${svgSize}" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M15.6408 8.39233H18.0922V10.0287H15.6408V8.39233ZM0.115234 8.39233H2.56663V10.0287H0.115234V8.39233ZM9.92083 0.21051V2.66506H8.28656V0.21051H9.92083ZM3.31839 2.25596L5.05889 4.00687L3.89856 5.16051L2.15807 3.42596L3.31839 2.25596ZM13.1485 3.99869L14.8808 2.25596L16.0493 3.42596L14.3088 5.16051L13.1485 3.99869ZM9.10369 4.30142C10.404 4.30142 11.651 4.81863 12.5705 5.73926C13.4899 6.65989 14.0065 7.90854 14.0065 9.21051C14.0065 11.0269 13.0178 12.6141 11.5551 13.4651V14.9378C11.5551 15.1548 11.469 15.3629 11.3158 15.5163C11.1625 15.6698 10.9547 15.756 10.738 15.756H7.46943C7.25271 15.756 7.04487 15.6698 6.89163 15.5163C6.73839 15.3629 6.6523 15.1548 6.6523 14.9378V13.4651C5.18963 12.6141 4.2009 11.0269 4.2009 9.21051C4.2009 7.90854 4.71744 6.65989 5.63689 5.73926C6.55635 4.81863 7.80339 4.30142 9.10369 4.30142ZM10.738 16.5741V17.3923C10.738 17.6093 10.6519 17.8174 10.4986 17.9709C10.3454 18.1243 10.1375 18.2105 9.92083 18.2105H8.28656C8.06984 18.2105 7.862 18.1243 7.70876 17.9709C7.55552 17.8174 7.46943 17.6093 7.46943 17.3923V16.5741H10.738ZM8.28656 14.1196H9.92083V12.3769C11.3345 12.0169 12.3722 10.7323 12.3722 9.21051C12.3722 8.34253 12.0279 7.5101 11.4149 6.89634C10.8019 6.28259 9.97056 5.93778 9.10369 5.93778C8.23683 5.93778 7.40546 6.28259 6.79249 6.89634C6.17953 7.5101 5.83516 8.34253 5.83516 9.21051C5.83516 10.7323 6.87292 12.0169 8.28656 12.3769V14.1196Z" /></svg>`),
|
||||
|
||||
"INTEL": 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="M16.1091 8.57143H14.8234V5.14286C14.8234 4.19143 14.052 3.42857 13.1091 3.42857H9.68052V2.14286C9.68052 1.57454 9.45476 1.02949 9.0529 0.627628C8.65103 0.225765 8.10599 0 7.53767 0C6.96935 0 6.4243 0.225765 6.02244 0.627628C5.62057 1.02949 5.39481 1.57454 5.39481 2.14286V3.42857H1.96624C1.51158 3.42857 1.07555 3.60918 0.754056 3.93067C0.432565 4.25216 0.251953 4.6882 0.251953 5.14286V8.4H1.53767C2.82338 8.4 3.85195 9.42857 3.85195 10.7143C3.85195 12 2.82338 13.0286 1.53767 13.0286H0.251953V16.2857C0.251953 16.7404 0.432565 17.1764 0.754056 17.4979C1.07555 17.8194 1.51158 18 1.96624 18H5.22338V16.7143C5.22338 15.4286 6.25195 14.4 7.53767 14.4C8.82338 14.4 9.85195 15.4286 9.85195 16.7143V18H13.1091C13.5638 18 13.9998 17.8194 14.3213 17.4979C14.6428 17.1764 14.8234 16.7404 14.8234 16.2857V12.8571H16.1091C16.6774 12.8571 17.2225 12.6314 17.6243 12.2295C18.0262 11.8277 18.252 11.2826 18.252 10.7143C18.252 10.146 18.0262 9.60092 17.6243 9.19906C17.2225 8.79719 16.6774 8.57143 16.1091 8.57143Z" /></svg>`),
|
||||
"EDR & AV": encodeURI(`data:image/svg+xml;utf-8,<svg fill="${colorfill}" width="${svgSize}" height="${svgSize}" viewBox="0 0 ${svgSize} ${svgSize}" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M19.1722 8.9957L17.0737 6.60487L17.3661 3.44004L14.2615 2.73483L12.6361 -3.28068e-08L9.71206 1.25561L6.78803 -3.28068e-08L5.16261 2.73483L2.05797 3.43144L2.35038 6.59627L0.251953 8.9957L2.35038 11.3865L2.05797 14.56L5.16261 15.2652L6.78803 18L9.71206 16.7358L12.6361 17.9914L14.2615 15.2566L17.3661 14.5514L17.0737 11.3865L19.1722 8.9957ZM10.5721 13.2957H8.85205V11.5757H10.5721V13.2957ZM10.5721 9.85571H8.85205V4.69565H10.5721V9.85571Z" /></svg>`),
|
||||
|
||||
"COMMS": 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="M9.89516 7.71433H8.60945V5.1429H9.89516V7.71433ZM9.89516 10.2858H8.60945V9.00004H9.89516V10.2858ZM14.3952 2.57147H4.10944C3.76845 2.57147 3.44143 2.70693 3.20031 2.94805C2.95919 3.18917 2.82373 3.51619 2.82373 3.85719V15.4286L5.39516 12.8572H14.3952C14.7362 12.8572 15.0632 12.7217 15.3043 12.4806C15.5454 12.2395 15.6809 11.9125 15.6809 11.5715V3.85719C15.6809 3.14361 15.1023 2.57147 14.3952 2.57147Z" /></svg>`),
|
||||
"INTEL": encodeURI(`data:image/svg+xml;utf-8,<svg fill="${colorfill}" width="${svgSize}" height="${svgSize}" viewBox="0 0 ${svgSize} ${svgSize}" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M16.1091 8.57143H14.8234V5.14286C14.8234 4.19143 14.052 3.42857 13.1091 3.42857H9.68052V2.14286C9.68052 1.57454 9.45476 1.02949 9.0529 0.627628C8.65103 0.225765 8.10599 0 7.53767 0C6.96935 0 6.4243 0.225765 6.02244 0.627628C5.62057 1.02949 5.39481 1.57454 5.39481 2.14286V3.42857H1.96624C1.51158 3.42857 1.07555 3.60918 0.754056 3.93067C0.432565 4.25216 0.251953 4.6882 0.251953 5.14286V8.4H1.53767C2.82338 8.4 3.85195 9.42857 3.85195 10.7143C3.85195 12 2.82338 13.0286 1.53767 13.0286H0.251953V16.2857C0.251953 16.7404 0.432565 17.1764 0.754056 17.4979C1.07555 17.8194 1.51158 18 1.96624 18H5.22338V16.7143C5.22338 15.4286 6.25195 14.4 7.53767 14.4C8.82338 14.4 9.85195 15.4286 9.85195 16.7143V18H13.1091C13.5638 18 13.9998 17.8194 14.3213 17.4979C14.6428 17.1764 14.8234 16.7404 14.8234 16.2857V12.8571H16.1091C16.6774 12.8571 17.2225 12.6314 17.6243 12.2295C18.0262 11.8277 18.252 11.2826 18.252 10.7143C18.252 10.146 18.0262 9.60092 17.6243 9.19906C17.2225 8.79719 16.6774 8.57143 16.1091 8.57143Z" /></svg>`),
|
||||
|
||||
"NETWORK": 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="M0.251953 10.6011H3.8391L9.38052 -4.92572e-08L10.8977 11.5696L15.0377 6.28838L19.3191 10.6011H23.3948V13.1836H18.252L15.2562 10.175L9.1491 18L7.88909 8.41894L5.39481 13.1836H0.251953V10.6011Z" /></svg>`),
|
||||
"COMMS": encodeURI(`data:image/svg+xml;utf-8,<svg fill="${colorfill}" width="${svgSize}" height="${svgSize}" viewBox="0 0 ${svgSize} ${svgSize}" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M9.89516 7.71433H8.60945V5.1429H9.89516V7.71433ZM9.89516 10.2858H8.60945V9.00004H9.89516V10.2858ZM14.3952 2.57147H4.10944C3.76845 2.57147 3.44143 2.70693 3.20031 2.94805C2.95919 3.18917 2.82373 3.51619 2.82373 3.85719V15.4286L5.39516 12.8572H14.3952C14.7362 12.8572 15.0632 12.7217 15.3043 12.4806C15.5454 12.2395 15.6809 11.9125 15.6809 11.5715V3.85719C15.6809 3.14361 15.1023 2.57147 14.3952 2.57147Z" /></svg>`),
|
||||
|
||||
"NETWORK": encodeURI(`data:image/svg+xml;utf-8,<svg fill="${colorfill}" width="${svgSize}" height="${svgSize}" viewBox="0 0 ${svgSize} ${svgSize}" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M0.251953 10.6011H3.8391L9.38052 -4.92572e-08L10.8977 11.5696L15.0377 6.28838L19.3191 10.6011H23.3948V13.1836H18.252L15.2562 10.175L9.1491 18L7.88909 8.41894L5.39481 13.1836H0.251953V10.6011Z" /></svg>`),
|
||||
|
||||
"INTEL": 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="M16.1091 8.57143H14.8234V5.14286C14.8234 4.19143 14.052 3.42857 13.1091 3.42857H9.68052V2.14286C9.68052 1.57454 9.45476 1.02949 9.0529 0.627628C8.65103 0.225765 8.10599 0 7.53767 0C6.96935 0 6.4243 0.225765 6.02244 0.627628C5.62057 1.02949 5.39481 1.57454 5.39481 2.14286V3.42857H1.96624C1.51158 3.42857 1.07555 3.60918 0.754056 3.93067C0.432565 4.25216 0.251953 4.6882 0.251953 5.14286V8.4H1.53767C2.82338 8.4 3.85195 9.42857 3.85195 10.7143C3.85195 12 2.82338 13.0286 1.53767 13.0286H0.251953V16.2857C0.251953 16.7404 0.432565 17.1764 0.754056 17.4979C1.07555 17.8194 1.51158 18 1.96624 18H5.22338V16.7143C5.22338 15.4286 6.25195 14.4 7.53767 14.4C8.82338 14.4 9.85195 15.4286 9.85195 16.7143V18H13.1091C13.5638 18 13.9998 17.8194 14.3213 17.4979C14.6428 17.1764 14.8234 16.7404 14.8234 16.2857V12.8571H16.1091C16.6774 12.8571 17.2225 12.6314 17.6243 12.2295C18.0262 11.8277 18.252 11.2826 18.252 10.7143C18.252 10.146 18.0262 9.60092 17.6243 9.19906C17.2225 8.79719 16.6774 8.57143 16.1091 8.57143Z" /></svg>`),
|
||||
"INTEL": encodeURI(`data:image/svg+xml;utf-8,<svg fill="${colorfill}" width="${svgSize}" height="${svgSize}" viewBox="0 0 ${svgSize} ${svgSize}" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M16.1091 8.57143H14.8234V5.14286C14.8234 4.19143 14.052 3.42857 13.1091 3.42857H9.68052V2.14286C9.68052 1.57454 9.45476 1.02949 9.0529 0.627628C8.65103 0.225765 8.10599 0 7.53767 0C6.96935 0 6.4243 0.225765 6.02244 0.627628C5.62057 1.02949 5.39481 1.57454 5.39481 2.14286V3.42857H1.96624C1.51158 3.42857 1.07555 3.60918 0.754056 3.93067C0.432565 4.25216 0.251953 4.6882 0.251953 5.14286V8.4H1.53767C2.82338 8.4 3.85195 9.42857 3.85195 10.7143C3.85195 12 2.82338 13.0286 1.53767 13.0286H0.251953V16.2857C0.251953 16.7404 0.432565 17.1764 0.754056 17.4979C1.07555 17.8194 1.51158 18 1.96624 18H5.22338V16.7143C5.22338 15.4286 6.25195 14.4 7.53767 14.4C8.82338 14.4 9.85195 15.4286 9.85195 16.7143V18H13.1091C13.5638 18 13.9998 17.8194 14.3213 17.4979C14.6428 17.1764 14.8234 16.7404 14.8234 16.2857V12.8571H16.1091C16.6774 12.8571 17.2225 12.6314 17.6243 12.2295C18.0262 11.8277 18.252 11.2826 18.252 10.7143C18.252 10.146 18.0262 9.60092 17.6243 9.19906C17.2225 8.79719 16.6774 8.57143 16.1091 8.57143Z" /></svg>`),
|
||||
|
||||
"ASSETS": 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="M11.223 10.971L3.85195 14.4L7.28095 7.029L14.652 3.6L11.223 10.971ZM9.25195 0C8.07006 0 6.89973 0.232792 5.8078 0.685084C4.71587 1.13738 3.72372 1.80031 2.88799 2.63604C1.20016 4.32387 0.251953 6.61305 0.251953 9C0.251953 11.3869 1.20016 13.6761 2.88799 15.364C3.72372 16.1997 4.71587 16.8626 5.8078 17.3149C6.89973 17.7672 8.07006 18 9.25195 18C11.6389 18 13.9281 17.0518 15.6159 15.364C17.3037 13.6761 18.252 11.3869 18.252 9C18.252 7.8181 18.0192 6.64778 17.5669 5.55585C17.1146 4.46392 16.4516 3.47177 15.6159 2.63604C14.7802 1.80031 13.788 1.13738 12.6961 0.685084C11.6042 0.232792 10.4338 0 9.25195 0ZM9.25195 8.01C8.98939 8.01 8.73758 8.1143 8.55192 8.29996C8.36626 8.48563 8.26195 8.73744 8.26195 9C8.26195 9.26256 8.36626 9.51437 8.55192 9.70004C8.73758 9.8857 8.98939 9.99 9.25195 9.99C9.51452 9.99 9.76633 9.8857 9.95199 9.70004C10.1376 9.51437 10.242 9.26256 10.242 9C10.242 8.73744 10.1376 8.48563 9.95199 8.29996C9.76633 8.1143 9.51452 8.01 9.25195 8.01Z" /></svg>`),
|
||||
"ASSETS": encodeURI(`data:image/svg+xml;utf-8,<svg fill="${colorfill}" width="${svgSize}" height="${svgSize}" viewBox="0 0 ${svgSize} ${svgSize}" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M11.223 10.971L3.85195 14.4L7.28095 7.029L14.652 3.6L11.223 10.971ZM9.25195 0C8.07006 0 6.89973 0.232792 5.8078 0.685084C4.71587 1.13738 3.72372 1.80031 2.88799 2.63604C1.20016 4.32387 0.251953 6.61305 0.251953 9C0.251953 11.3869 1.20016 13.6761 2.88799 15.364C3.72372 16.1997 4.71587 16.8626 5.8078 17.3149C6.89973 17.7672 8.07006 18 9.25195 18C11.6389 18 13.9281 17.0518 15.6159 15.364C17.3037 13.6761 18.252 11.3869 18.252 9C18.252 7.8181 18.0192 6.64778 17.5669 5.55585C17.1146 4.46392 16.4516 3.47177 15.6159 2.63604C14.7802 1.80031 13.788 1.13738 12.6961 0.685084C11.6042 0.232792 10.4338 0 9.25195 0ZM9.25195 8.01C8.98939 8.01 8.73758 8.1143 8.55192 8.29996C8.36626 8.48563 8.26195 8.73744 8.26195 9C8.26195 9.26256 8.36626 9.51437 8.55192 9.70004C8.73758 9.8857 8.98939 9.99 9.25195 9.99C9.51452 9.99 9.76633 9.8857 9.95199 9.70004C10.1376 9.51437 10.242 9.26256 10.242 9C10.242 8.73744 10.1376 8.48563 9.95199 8.29996C9.76633 8.1143 9.51452 8.01 9.25195 8.01Z" /></svg>`),
|
||||
|
||||
"IAM": 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="M13.3318 2.223C13.2598 2.223 13.1878 2.205 13.1248 2.169C11.3968 1.278 9.90284 0.9 8.11184 0.9C6.32984 0.9 4.63784 1.323 3.09884 2.169C2.88284 2.286 2.61284 2.205 2.48684 1.989C2.36984 1.773 2.45084 1.494 2.66684 1.377C4.34084 0.468 6.17684 0 8.11184 0C10.0288 0 11.7028 0.423 13.5388 1.368C13.7638 1.485 13.8448 1.755 13.7278 1.971C13.6468 2.133 13.4938 2.223 13.3318 2.223ZM0.452843 6.948C0.362843 6.948 0.272843 6.921 0.191843 6.867C-0.015157 6.723 -0.0601571 6.444 0.0838429 6.237C0.974843 4.977 2.10884 3.987 3.45884 3.294C6.28484 1.836 9.90284 1.827 12.7378 3.285C14.0878 3.978 15.2218 4.959 16.1128 6.21C16.2568 6.408 16.2118 6.696 16.0048 6.84C15.7978 6.984 15.5188 6.939 15.3748 6.732C14.5648 5.598 13.5388 4.707 12.3238 4.086C9.74084 2.763 6.43784 2.763 3.86384 4.095C2.63984 4.725 1.61384 5.625 0.803843 6.759C0.731843 6.885 0.596843 6.948 0.452843 6.948ZM6.07784 17.811C5.96084 17.811 5.84384 17.766 5.76284 17.676C4.97984 16.893 4.55684 16.389 3.95384 15.3C3.33284 14.193 3.00884 12.843 3.00884 11.394C3.00884 8.721 5.29484 6.543 8.10284 6.543C10.9108 6.543 13.1968 8.721 13.1968 11.394C13.1968 11.646 12.9988 11.844 12.7468 11.844C12.4948 11.844 12.2968 11.646 12.2968 11.394C12.2968 9.216 10.4158 7.443 8.10284 7.443C5.78984 7.443 3.90884 9.216 3.90884 11.394C3.90884 12.69 4.19684 13.887 4.74584 14.859C5.32184 15.894 5.71784 16.335 6.41084 17.037C6.58184 17.217 6.58184 17.496 6.41084 17.676C6.31184 17.766 6.19484 17.811 6.07784 17.811ZM12.5308 16.146C11.4598 16.146 10.5148 15.876 9.74084 15.345C8.39984 14.436 7.59884 12.96 7.59884 11.394C7.59884 11.142 7.79684 10.944 8.04884 10.944C8.30084 10.944 8.49884 11.142 8.49884 11.394C8.49884 12.663 9.14684 13.86 10.2448 14.598C10.8838 15.03 11.6308 15.237 12.5308 15.237C12.7468 15.237 13.1068 15.21 13.4668 15.147C13.7098 15.102 13.9438 15.264 13.9888 15.516C14.0338 15.759 13.8718 15.993 13.6198 16.038C13.1068 16.137 12.6568 16.146 12.5308 16.146ZM10.7218 18C10.6858 18 10.6408 17.991 10.6048 17.982C9.17384 17.586 8.23784 17.055 7.25684 16.092C5.99684 14.841 5.30384 13.176 5.30384 11.394C5.30384 9.936 6.54584 8.748 8.07584 8.748C9.60584 8.748 10.8478 9.936 10.8478 11.394C10.8478 12.357 11.6848 13.14 12.7198 13.14C13.7548 13.14 14.5918 12.357 14.5918 11.394C14.5918 8.001 11.6668 5.247 8.06684 5.247C5.51084 5.247 3.17084 6.669 2.11784 8.874C1.76684 9.603 1.58684 10.458 1.58684 11.394C1.58684 12.096 1.64984 13.203 2.18984 14.643C2.27984 14.877 2.16284 15.138 1.92884 15.219C1.69484 15.309 1.43384 15.183 1.35284 14.958C0.911843 13.779 0.695843 12.609 0.695843 11.394C0.695843 10.314 0.902843 9.333 1.30784 8.478C2.50484 5.967 5.15984 4.338 8.06684 4.338C12.1618 4.338 15.4918 7.497 15.4918 11.385C15.4918 12.843 14.2498 14.031 12.7198 14.031C11.1898 14.031 9.94784 12.843 9.94784 11.385C9.94784 10.422 9.11084 9.639 8.07584 9.639C7.04084 9.639 6.20384 10.422 6.20384 11.385C6.20384 12.924 6.79784 14.364 7.88684 15.444C8.74184 16.29 9.56084 16.758 10.8298 17.109C11.0728 17.172 11.2078 17.424 11.1448 17.658C11.0998 17.865 10.9108 18 10.7218 18Z" /></svg>`),
|
||||
"IAM": encodeURI(`data:image/svg+xml;utf-8,<svg fill="${colorfill}" width="${svgSize}" height="${svgSize}" viewBox="0 0 ${svgSize} ${svgSize}" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M13.3318 2.223C13.2598 2.223 13.1878 2.205 13.1248 2.169C11.3968 1.278 9.90284 0.9 8.11184 0.9C6.32984 0.9 4.63784 1.323 3.09884 2.169C2.88284 2.286 2.61284 2.205 2.48684 1.989C2.36984 1.773 2.45084 1.494 2.66684 1.377C4.34084 0.468 6.17684 0 8.11184 0C10.0288 0 11.7028 0.423 13.5388 1.368C13.7638 1.485 13.8448 1.755 13.7278 1.971C13.6468 2.133 13.4938 2.223 13.3318 2.223ZM0.452843 6.948C0.362843 6.948 0.272843 6.921 0.191843 6.867C-0.015157 6.723 -0.0601571 6.444 0.0838429 6.237C0.974843 4.977 2.10884 3.987 3.45884 3.294C6.28484 1.836 9.90284 1.827 12.7378 3.285C14.0878 3.978 15.2218 4.959 16.1128 6.21C16.2568 6.408 16.2118 6.696 16.0048 6.84C15.7978 6.984 15.5188 6.939 15.3748 6.732C14.5648 5.598 13.5388 4.707 12.3238 4.086C9.74084 2.763 6.43784 2.763 3.86384 4.095C2.63984 4.725 1.61384 5.625 0.803843 6.759C0.731843 6.885 0.596843 6.948 0.452843 6.948ZM6.07784 17.811C5.96084 17.811 5.84384 17.766 5.76284 17.676C4.97984 16.893 4.55684 16.389 3.95384 15.3C3.33284 14.193 3.00884 12.843 3.00884 11.394C3.00884 8.721 5.29484 6.543 8.10284 6.543C10.9108 6.543 13.1968 8.721 13.1968 11.394C13.1968 11.646 12.9988 11.844 12.7468 11.844C12.4948 11.844 12.2968 11.646 12.2968 11.394C12.2968 9.216 10.4158 7.443 8.10284 7.443C5.78984 7.443 3.90884 9.216 3.90884 11.394C3.90884 12.69 4.19684 13.887 4.74584 14.859C5.32184 15.894 5.71784 16.335 6.41084 17.037C6.58184 17.217 6.58184 17.496 6.41084 17.676C6.31184 17.766 6.19484 17.811 6.07784 17.811ZM12.5308 16.146C11.4598 16.146 10.5148 15.876 9.74084 15.345C8.39984 14.436 7.59884 12.96 7.59884 11.394C7.59884 11.142 7.79684 10.944 8.04884 10.944C8.30084 10.944 8.49884 11.142 8.49884 11.394C8.49884 12.663 9.14684 13.86 10.2448 14.598C10.8838 15.03 11.6308 15.237 12.5308 15.237C12.7468 15.237 13.1068 15.21 13.4668 15.147C13.7098 15.102 13.9438 15.264 13.9888 15.516C14.0338 15.759 13.8718 15.993 13.6198 16.038C13.1068 16.137 12.6568 16.146 12.5308 16.146ZM10.7218 18C10.6858 18 10.6408 17.991 10.6048 17.982C9.17384 17.586 8.23784 17.055 7.25684 16.092C5.99684 14.841 5.30384 13.176 5.30384 11.394C5.30384 9.936 6.54584 8.748 8.07584 8.748C9.60584 8.748 10.8478 9.936 10.8478 11.394C10.8478 12.357 11.6848 13.14 12.7198 13.14C13.7548 13.14 14.5918 12.357 14.5918 11.394C14.5918 8.001 11.6668 5.247 8.06684 5.247C5.51084 5.247 3.17084 6.669 2.11784 8.874C1.76684 9.603 1.58684 10.458 1.58684 11.394C1.58684 12.096 1.64984 13.203 2.18984 14.643C2.27984 14.877 2.16284 15.138 1.92884 15.219C1.69484 15.309 1.43384 15.183 1.35284 14.958C0.911843 13.779 0.695843 12.609 0.695843 11.394C0.695843 10.314 0.902843 9.333 1.30784 8.478C2.50484 5.967 5.15984 4.338 8.06684 4.338C12.1618 4.338 15.4918 7.497 15.4918 11.385C15.4918 12.843 14.2498 14.031 12.7198 14.031C11.1898 14.031 9.94784 12.843 9.94784 11.385C9.94784 10.422 9.11084 9.639 8.07584 9.639C7.04084 9.639 6.20384 10.422 6.20384 11.385C6.20384 12.924 6.79784 14.364 7.88684 15.444C8.74184 16.29 9.56084 16.758 10.8298 17.109C11.0728 17.172 11.2078 17.424 11.1448 17.658C11.0998 17.865 10.9108 18 10.7218 18Z" /></svg>`),
|
||||
}
|
||||
}
|
||||
|
||||
export const usecases = {
|
||||
@@ -1506,7 +1512,7 @@ const AppFramework = (props) => {
|
||||
margin_y: casescheck ? `${19*scale}px` : `0px`,
|
||||
width: casescheck ? iconSize : defaultSize,
|
||||
height: casescheck ? iconSize : defaultSize,
|
||||
large_image: parsedFrameworkData.Cases.large_image === undefined ? parsedDatatypeImages["CASES"] : parsedFrameworkData.Cases.large_image,
|
||||
large_image: parsedFrameworkData.Cases.large_image === undefined ? parsedDatatypeImages()["CASES"] : parsedFrameworkData.Cases.large_image,
|
||||
|
||||
label: securityFramework[0].text.toUpperCase(),
|
||||
id: securityFramework[0].text.toUpperCase(),
|
||||
@@ -1535,7 +1541,7 @@ const AppFramework = (props) => {
|
||||
margin_y: iamcheck ? `${19*scale}px` : `0px`,
|
||||
width: iamcheck ? iconSize : defaultSize,
|
||||
height: iamcheck ? iconSize : defaultSize,
|
||||
large_image: parsedFrameworkData.IAM.large_image === undefined ? parsedDatatypeImages["IAM"] : parsedFrameworkData.IAM.large_image,
|
||||
large_image: parsedFrameworkData.IAM.large_image === undefined ? parsedDatatypeImages()["IAM"] : parsedFrameworkData.IAM.large_image,
|
||||
|
||||
label: securityFramework[3].text.toUpperCase(),
|
||||
id: securityFramework[3].text.toUpperCase(),
|
||||
@@ -1563,7 +1569,7 @@ const AppFramework = (props) => {
|
||||
margin_y: assetscheck ? `${19*scale}px` : `0px`,
|
||||
width: assetscheck ? iconSize : defaultSize,
|
||||
height: assetscheck ? iconSize : defaultSize,
|
||||
large_image: parsedFrameworkData.Assets.large_image === undefined ? parsedDatatypeImages["ASSETS"] : parsedFrameworkData.Assets.large_image,
|
||||
large_image: parsedFrameworkData.Assets.large_image === undefined ? parsedDatatypeImages()["ASSETS"] : parsedFrameworkData.Assets.large_image,
|
||||
|
||||
label: securityFramework[2].text.toUpperCase(),
|
||||
id: securityFramework[2].text.toUpperCase(),
|
||||
@@ -1591,7 +1597,7 @@ const AppFramework = (props) => {
|
||||
margin_y: intelcheck ? `${19*scale}px` : `0px`,
|
||||
width: intelcheck ? iconSize : defaultSize,
|
||||
height: intelcheck ? iconSize : defaultSize,
|
||||
large_image: parsedFrameworkData.Intel.large_image === undefined ? parsedDatatypeImages["INTEL"] : parsedFrameworkData.Intel.large_image,
|
||||
large_image: parsedFrameworkData.Intel.large_image === undefined ? parsedDatatypeImages()["INTEL"] : parsedFrameworkData.Intel.large_image,
|
||||
|
||||
label: securityFramework[4].text.toUpperCase(),
|
||||
id: securityFramework[4].text.toUpperCase(),
|
||||
@@ -1619,7 +1625,7 @@ const AppFramework = (props) => {
|
||||
margin_y: commscheck ? `${19*scale}px` : `0px`,
|
||||
width: commscheck ? iconSize : defaultSize,
|
||||
height: commscheck ? iconSize : defaultSize,
|
||||
large_image: parsedFrameworkData.Comms.large_image === undefined ? parsedDatatypeImages["COMMS"] : parsedFrameworkData.Comms.large_image,
|
||||
large_image: parsedFrameworkData.Comms.large_image === undefined ? parsedDatatypeImages()["COMMS"] : parsedFrameworkData.Comms.large_image,
|
||||
|
||||
label: securityFramework[5].text.toUpperCase(),
|
||||
id: securityFramework[5].text.toUpperCase(),
|
||||
@@ -1647,7 +1653,7 @@ const AppFramework = (props) => {
|
||||
margin_y: edrcheck ? `${19*scale}px` : `0px`,
|
||||
width: edrcheck ? iconSize : defaultSize,
|
||||
height: edrcheck ? iconSize : defaultSize,
|
||||
large_image: parsedFrameworkData["EDR & AV"].large_image === undefined ? parsedDatatypeImages["EDR & AV"] : parsedFrameworkData["EDR & AV"].large_image,
|
||||
large_image: parsedFrameworkData["EDR & AV"].large_image === undefined ? parsedDatatypeImages()["EDR & AV"] : parsedFrameworkData["EDR & AV"].large_image,
|
||||
|
||||
label: securityFramework[7].text.toUpperCase(),
|
||||
id: securityFramework[7].text.toUpperCase(),
|
||||
@@ -1675,7 +1681,7 @@ const AppFramework = (props) => {
|
||||
margin_y: networkcheck ? `${19*scale}px` : `0px`,
|
||||
width: networkcheck ? iconSize : defaultSize,
|
||||
height: networkcheck ? iconSize : defaultSize,
|
||||
large_image: parsedFrameworkData.Network.large_image === undefined ? parsedDatatypeImages["NETWORK"] : parsedFrameworkData.Network.large_image,
|
||||
large_image: parsedFrameworkData.Network.large_image === undefined ? parsedDatatypeImages()["NETWORK"] : parsedFrameworkData.Network.large_image,
|
||||
label: securityFramework[6].text.toUpperCase(),
|
||||
id: securityFramework[6].text.toUpperCase(),
|
||||
animate: false,
|
||||
@@ -1702,7 +1708,7 @@ const AppFramework = (props) => {
|
||||
margin_y: siemcheck ? `${19*scale}px` : `0px`,
|
||||
width: siemcheck ? iconSize : defaultSize,
|
||||
height: siemcheck ? iconSize : defaultSize,
|
||||
large_image: parsedFrameworkData.SIEM.large_image === undefined ? parsedDatatypeImages["SIEM"] : parsedFrameworkData.SIEM.large_image,
|
||||
large_image: parsedFrameworkData.SIEM.large_image === undefined ? parsedDatatypeImages()["SIEM"] : parsedFrameworkData.SIEM.large_image,
|
||||
label: securityFramework[1].text.toUpperCase(),
|
||||
id: securityFramework[1].text.toUpperCase(),
|
||||
animate: false,
|
||||
@@ -1838,8 +1844,8 @@ const AppFramework = (props) => {
|
||||
const UsecaseHandler = (props) => {
|
||||
const { data, index, diff } = props
|
||||
|
||||
const leftImage = data.left_image !== undefined ? parsedDatatypeImages[data.left_image.toUpperCase()] : undefined
|
||||
const rightImage = data.right_image !== undefined ? parsedDatatypeImages[data.right_image.toUpperCase()] : undefined
|
||||
const leftImage = data.left_image !== undefined ? parsedDatatypeImages()[data.left_image.toUpperCase()] : undefined
|
||||
const rightImage = data.right_image !== undefined ? parsedDatatypeImages()[data.right_image.toUpperCase()] : undefined
|
||||
|
||||
if (leftImage === undefined) {
|
||||
console.log("LEFT MISSING: ", leftImage)
|
||||
@@ -2220,7 +2226,7 @@ const AppFramework = (props) => {
|
||||
if (foundelement !== undefined && foundelement !== null) {
|
||||
//console.log("element: ", foundelement)
|
||||
//console.log("DISC: ", discoveryData)
|
||||
foundelement.data("large_image", parsedDatatypeImages[discoveryData.id.toUpperCase()])
|
||||
foundelement.data("large_image", parsedDatatypeImages()[discoveryData.id.toUpperCase()])
|
||||
foundelement.data("text_margin_y", "14px")
|
||||
foundelement.data("margin_x", "32px")
|
||||
foundelement.data("margin_y", "19x")
|
||||
|
||||
+526
-445
File diff suppressed because it is too large
Load Diff
@@ -434,7 +434,7 @@ const CacheView = (props) => {
|
||||
style={{
|
||||
minWidth: 300,
|
||||
maxWidth: 300,
|
||||
height:200,
|
||||
// height:200,
|
||||
overflowX: "hidden",
|
||||
}}
|
||||
primary={validate.valid ?
|
||||
|
||||
@@ -219,6 +219,11 @@ const ConfigureWorkflow = (props) => {
|
||||
action.app_name = action.app_name.slice(0, -4)
|
||||
}
|
||||
|
||||
if (action.app_name === "Integration Framework") {
|
||||
console.log("Skipping integration framework: ", action)
|
||||
continue
|
||||
}
|
||||
|
||||
// ID match OR name match + version match
|
||||
//const app = apps.find((app) => app.id === action.app_id || (app.name === action.app_name && (app.app_version === action.app_version || (app.loop_versions !== null && app.loop_versions.includes(action.app_version)))))
|
||||
//
|
||||
@@ -227,8 +232,6 @@ const ConfigureWorkflow = (props) => {
|
||||
const newappname = action.app_name.toLowerCase().replaceAll(" ", "_")
|
||||
const app = apps.find((app) => app.id === action.app_id || app.name.toLowerCase().replaceAll(" ", "_") === newappname)
|
||||
|
||||
|
||||
|
||||
if (app === undefined || app === null) {
|
||||
|
||||
const subapp = apps.find(app => app.name === action.app_name)
|
||||
@@ -532,7 +535,7 @@ const ConfigureWorkflow = (props) => {
|
||||
<TextField
|
||||
style={{
|
||||
backgroundColor: theme.palette.inputColor,
|
||||
borderRadius: 5,
|
||||
borderRadius: theme.palette.borderRadius,
|
||||
}}
|
||||
InputProps={{
|
||||
endAdornment: <InputAdornment position="end"></InputAdornment>,
|
||||
@@ -917,6 +920,7 @@ const ConfigureWorkflow = (props) => {
|
||||
parsedName = parsedName.substring(0, parsedName.length - 4);
|
||||
}
|
||||
|
||||
|
||||
return (
|
||||
<ListItem>
|
||||
{action.must_authenticate ?
|
||||
@@ -1061,7 +1065,7 @@ const ConfigureWorkflow = (props) => {
|
||||
src={action.large_image}
|
||||
/>
|
||||
<Typography style={{ margin: 0, marginLeft: 10 }} variant="body1">
|
||||
Activate
|
||||
Activate {action.app_name.replaceAll("_", " ")}
|
||||
</Typography>
|
||||
</Button>
|
||||
:
|
||||
|
||||
@@ -18,11 +18,11 @@ import {
|
||||
MenuItem,
|
||||
Select,
|
||||
Button,
|
||||
ButtonGroup,
|
||||
Grid,
|
||||
IconButton,
|
||||
Divider,
|
||||
LinearProgress,
|
||||
|
||||
AppBar,
|
||||
} from "@mui/material";
|
||||
|
||||
@@ -50,13 +50,14 @@ const Header = (props) => {
|
||||
globalUrl,
|
||||
setNotifications,
|
||||
notifications,
|
||||
isLoaded,
|
||||
isLoaded,
|
||||
isLoggedIn,
|
||||
removeCookie,
|
||||
homePage,
|
||||
userdata,
|
||||
isMobile,
|
||||
isMobile,
|
||||
serverside,
|
||||
setModalOpen,
|
||||
} = props;
|
||||
|
||||
const [HomeHoverColor, setHomeHoverColor] = useState(hoverOutColor);
|
||||
@@ -80,7 +81,7 @@ const Header = (props) => {
|
||||
setAnchorElAvatar(null);
|
||||
};
|
||||
// Should be based on some path
|
||||
const logoCheck = !homePage ? null : null
|
||||
const logoCheck = !homePage ? null : null
|
||||
|
||||
const hrefStyle = {
|
||||
color: hoverOutColor,
|
||||
@@ -88,25 +89,25 @@ const Header = (props) => {
|
||||
};
|
||||
|
||||
const menuText = {
|
||||
textTransform: "none",
|
||||
color: "#FFF",
|
||||
textAlign: "center",
|
||||
fontSize: 16,
|
||||
fontStyle: "normal",
|
||||
fontWeight: 400,
|
||||
lineHeight: "normal",
|
||||
textTransform: "none",
|
||||
color: "#FFF",
|
||||
textAlign: "center",
|
||||
fontSize: 16,
|
||||
fontStyle: "normal",
|
||||
fontWeight: 400,
|
||||
lineHeight: "normal",
|
||||
}
|
||||
|
||||
const isCloud =
|
||||
serverside === true || typeof window === "undefined"
|
||||
? true
|
||||
: window.location.host === "localhost:3002" ||
|
||||
window.location.host === "shuffler.io" ||
|
||||
window.location.host === "localhost:5002";
|
||||
window.location.host === "shuffler.io" ||
|
||||
window.location.host === "localhost:5002";
|
||||
|
||||
const clearNotifications = () => {
|
||||
// Don't really care about the logout
|
||||
|
||||
|
||||
toast("Clearing notifications")
|
||||
fetch(`${globalUrl}/api/v1/notifications/clear`, {
|
||||
credentials: "include",
|
||||
@@ -235,12 +236,12 @@ const Header = (props) => {
|
||||
setLoginHoverColor(hoverOutColor);
|
||||
};
|
||||
|
||||
const notificationWidth = 335
|
||||
const imagesize = 22;
|
||||
const boxColor = "#86c142";
|
||||
const notificationWidth = 335
|
||||
const imagesize = 22;
|
||||
const boxColor = "#86c142";
|
||||
|
||||
const NotificationItem = (props) => {
|
||||
const {data} = props
|
||||
const NotificationItem = (props) => {
|
||||
const { data } = props
|
||||
|
||||
var image = "";
|
||||
var orgName = "";
|
||||
@@ -279,7 +280,7 @@ const Header = (props) => {
|
||||
alt={foundOrg.name}
|
||||
src={foundOrg.image}
|
||||
style={imageStyle}
|
||||
onClick={() => {}}
|
||||
onClick={() => { }}
|
||||
/>
|
||||
);
|
||||
|
||||
@@ -297,31 +298,31 @@ const Header = (props) => {
|
||||
borderBottom: "1px solid rgba(255,255,255,0.4)",
|
||||
}}
|
||||
>
|
||||
{data.reference_url !== undefined && data.reference_url !== null && data.reference_url.length > 0 ?
|
||||
<Link to={data.reference_url} style={{color: "#f86a3e", textDecoration: "none",}}>
|
||||
<Typography variant="body1">
|
||||
{data.title} ({data.amount})
|
||||
</Typography >
|
||||
</Link>
|
||||
:
|
||||
<Typography variant="body1" color="textSecondary">
|
||||
{data.title}
|
||||
</Typography >
|
||||
}
|
||||
{data.reference_url !== undefined && data.reference_url !== null && data.reference_url.length > 0 ?
|
||||
<Link to={data.reference_url} style={{ color: "#f86a3e", textDecoration: "none", }}>
|
||||
<Typography variant="body1">
|
||||
{data.title} ({data.amount})
|
||||
</Typography >
|
||||
</Link>
|
||||
:
|
||||
<Typography variant="body1" color="textSecondary">
|
||||
{data.title}
|
||||
</Typography >
|
||||
}
|
||||
|
||||
{data.image !== undefined && data.image !== null && data.image.length > 0 ?
|
||||
<img alt={data.title} src={data.image} style={{height: 100, width: 100, }} />
|
||||
:
|
||||
null
|
||||
}
|
||||
<Typography variant="body2" style={{marginTop: 10, maxHeight: 200, overflowX: "hidden", overflowY: "auto", }}>
|
||||
{data.description}
|
||||
</Typography >
|
||||
{data.image !== undefined && data.image !== null && data.image.length > 0 ?
|
||||
<img alt={data.title} src={data.image} style={{ height: 100, width: 100, }} />
|
||||
:
|
||||
null
|
||||
}
|
||||
<Typography variant="body2" style={{ marginTop: 10, maxHeight: 200, overflowX: "hidden", overflowY: "auto", }}>
|
||||
{data.description}
|
||||
</Typography >
|
||||
<div style={{ display: "flex" }}>
|
||||
{data.read === false ? (
|
||||
<Button
|
||||
color="primary"
|
||||
variant="contained"
|
||||
variant="outlined"
|
||||
style={{ marginTop: 15 }}
|
||||
onClick={() => {
|
||||
dismissNotification(data.id);
|
||||
@@ -333,7 +334,7 @@ const Header = (props) => {
|
||||
<Tooltip title={`Org "${orgName}"`} placement="bottom">
|
||||
<div
|
||||
style={{ cursor: "pointer", marginLeft: 10, marginTop: 20 }}
|
||||
onClick={() => {}}
|
||||
onClick={() => { }}
|
||||
>
|
||||
{image}
|
||||
</div>
|
||||
@@ -393,34 +394,44 @@ const Header = (props) => {
|
||||
>
|
||||
<div style={{ display: "flex", marginBottom: 5 }}>
|
||||
<Typography variant="body1">
|
||||
Your Notifications ({notifications.filter((data) => !data.read).length})
|
||||
Notifications ({notifications.filter((data) => !data.read).length})
|
||||
</Typography>
|
||||
{notifications.length > 1 ? (
|
||||
<Button
|
||||
color="primary"
|
||||
variant="contained"
|
||||
disabled={notifications.filter((data) => !data.read).length === 0}
|
||||
style={{ marginLeft: 30, }}
|
||||
onClick={() => {
|
||||
clearNotifications();
|
||||
}}
|
||||
>
|
||||
Flush
|
||||
</Button>
|
||||
) : null}
|
||||
<ButtonGroup style={{height: 40, marginLeft: 50, }}>
|
||||
{notifications.length > 1 ? (
|
||||
<Button
|
||||
color="primary"
|
||||
variant="outlined"
|
||||
disabled={notifications.filter((data) => !data.read).length === 0}
|
||||
onClick={() => {
|
||||
clearNotifications();
|
||||
}}
|
||||
>
|
||||
Flush
|
||||
</Button>
|
||||
) : null}
|
||||
<Button
|
||||
color="primary"
|
||||
variant="contained"
|
||||
onClick={() => {
|
||||
navigate("/admin?tab=organization&admin_tab=priorities")
|
||||
}}
|
||||
>
|
||||
Explore
|
||||
</Button>
|
||||
</ButtonGroup>
|
||||
</div>
|
||||
<Typography variant="body2">
|
||||
Notifications generated made by Shuffle to help you discover issues or
|
||||
improvements. <a href="/docs/organizations#notifications" target="_blank" rel="noopener noreferrer" style={{color: "#f86a3e", textDecoration: "none", }}>
|
||||
Learn more</a>
|
||||
Notifications generated made by Shuffle to help you discover issues or
|
||||
improvements. <a href="/docs/organizations#notifications" target="_blank" rel="noopener noreferrer" style={{ color: "#f86a3e", textDecoration: "none", }}>
|
||||
Learn more</a>
|
||||
</Typography>
|
||||
</Paper>
|
||||
{notifications.map((data, index) => {
|
||||
if (data.read) {
|
||||
return null
|
||||
}
|
||||
if (data.read) {
|
||||
return null
|
||||
}
|
||||
|
||||
return <NotificationItem data={data} key={index} />;
|
||||
return <NotificationItem data={data} key={index} />;
|
||||
})}
|
||||
</Menu>
|
||||
</span>
|
||||
@@ -456,7 +467,7 @@ const Header = (props) => {
|
||||
return response.json();
|
||||
})
|
||||
.then(function (responseJson) {
|
||||
console.log("In here?")
|
||||
console.log("In here?")
|
||||
if (responseJson.success === true) {
|
||||
if (responseJson.region_url !== undefined && responseJson.region_url !== null && responseJson.region_url.length > 0) {
|
||||
console.log("Region Change: ", responseJson.region_url);
|
||||
@@ -470,11 +481,11 @@ const Header = (props) => {
|
||||
|
||||
toast("Successfully changed active organization - refreshing!");
|
||||
} else {
|
||||
if (responseJson.reason !== undefined && responseJson.reason !== null && responseJson.reason.length > 0) {
|
||||
toast(responseJson.reason);
|
||||
} else {
|
||||
toast("Failed changing org. Try again or contact support@shuffler.io if this persists.");
|
||||
}
|
||||
if (responseJson.reason !== undefined && responseJson.reason !== null && responseJson.reason.length > 0) {
|
||||
toast(responseJson.reason);
|
||||
} else {
|
||||
toast("Failed changing org. Try again or contact support@shuffler.io if this persists.");
|
||||
}
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
@@ -497,7 +508,7 @@ const Header = (props) => {
|
||||
style={{}}
|
||||
aria-controls="simple-menu"
|
||||
aria-haspopup="true"
|
||||
onClick={(event) => {}}
|
||||
onClick={(event) => { }}
|
||||
>
|
||||
<img
|
||||
alt="Discord Community Join"
|
||||
@@ -513,8 +524,8 @@ const Header = (props) => {
|
||||
// Should be based on some path
|
||||
const parsedAvatar =
|
||||
userdata.avatar !== undefined &&
|
||||
userdata.avatar !== null &&
|
||||
userdata.avatar.length > 0
|
||||
userdata.avatar !== null &&
|
||||
userdata.avatar.length > 0
|
||||
? userdata.avatar
|
||||
: "";
|
||||
|
||||
@@ -551,7 +562,7 @@ const Header = (props) => {
|
||||
handleClose();
|
||||
}}
|
||||
>
|
||||
<BusinessIcon style={{ marginRight: 5 }} /> Organisation
|
||||
<BusinessIcon style={{ marginRight: 5 }} /> Organisation
|
||||
</MenuItem>
|
||||
</Link>
|
||||
<Link to="/settings" style={hrefStyle}>
|
||||
@@ -560,10 +571,10 @@ const Header = (props) => {
|
||||
handleClose();
|
||||
}}
|
||||
>
|
||||
<SettingsIcon style={{ marginRight: 5 }} /> Account
|
||||
<SettingsIcon style={{ marginRight: 5 }} /> Account
|
||||
</MenuItem>
|
||||
</Link>
|
||||
<Divider style={{marginTop: 10, marginBottom: 10, }} />
|
||||
<Divider style={{ marginTop: 10, marginBottom: 10, }} />
|
||||
<Link to="/docs" style={hrefStyle}>
|
||||
<MenuItem
|
||||
onClick={(event) => {
|
||||
@@ -602,7 +613,7 @@ const Header = (props) => {
|
||||
<EmojiObjectsIcon style={{ marginRight: 5 }} /> Creator page
|
||||
</MenuItem>
|
||||
</Link>
|
||||
<Divider style={{marginTop: 10, marginBottom: 10, }}/>
|
||||
<Divider style={{ marginTop: 10, marginBottom: 10, }} />
|
||||
<MenuItem
|
||||
style={{ color: "white" }}
|
||||
onClick={(event) => {
|
||||
@@ -613,11 +624,11 @@ const Header = (props) => {
|
||||
>
|
||||
<MeetingRoomIcon style={{ marginRight: 5 }} /> Logout
|
||||
</MenuItem>
|
||||
<Divider style={{marginBottom: 10, }}/>
|
||||
<Divider style={{ marginBottom: 10, }} />
|
||||
|
||||
<Typography variant="body2" color="textSecondary" align="center" style={{marginTop: 5, marginBottom: 5,}}>
|
||||
Version: 1.4.0
|
||||
</Typography>
|
||||
<Typography variant="body2" color="textSecondary" align="center" style={{ marginTop: 5, marginBottom: 5, }}>
|
||||
Version: 1.4.0
|
||||
</Typography>
|
||||
</Menu>
|
||||
</span>
|
||||
);
|
||||
@@ -628,7 +639,7 @@ const Header = (props) => {
|
||||
marginBottom: "auto",
|
||||
marginRight: 10,
|
||||
};
|
||||
|
||||
|
||||
// Handle top bar or something
|
||||
const defaultTop = -2
|
||||
const loginTextBrowser = !isLoggedIn ? (
|
||||
@@ -641,163 +652,163 @@ const Header = (props) => {
|
||||
textAlign: "center",
|
||||
}}
|
||||
>
|
||||
<List style={{ flex: 2, display: "flex", flexDirection: "row", }} component="nav">
|
||||
<List style={{ flex: 2, display: "flex", flexDirection: "row", }} component="nav">
|
||||
<ListItem
|
||||
style={{ textAlign: "center", marginLeft: "0px", paddingRight: 0 }}
|
||||
>
|
||||
<Link to="/" style={hrefStyle}>
|
||||
<Grid
|
||||
variant="text"
|
||||
color="secondary"
|
||||
style={{ textTransform: "none", display: "flex" }}
|
||||
onClick={() => {
|
||||
if (isCloud) {
|
||||
ReactGA.event({
|
||||
category: "header",
|
||||
action: "home_click",
|
||||
label: "",
|
||||
});
|
||||
}
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src={"/images/logos/topleft_logo.svg"}
|
||||
alt="shuffle logo"
|
||||
style={{ height: 25, }}
|
||||
/>
|
||||
</Grid>
|
||||
</Link>
|
||||
</ListItem>
|
||||
</List>
|
||||
<List style={{ flex: 1.5, display: "flex", flexDirect: "row", marginTop: 10, itemAlign: "center", }} component="nav">
|
||||
<ListItem style={{ textAlign: "center", marginLeft: "0px" }}>
|
||||
<Link to="/usecases" style={hrefStyle}>
|
||||
<Button
|
||||
variant="text"
|
||||
color="secondary"
|
||||
style={menuText}
|
||||
onClick={() => {
|
||||
if (isCloud) {
|
||||
ReactGA.event({
|
||||
category: "header",
|
||||
action: "usecases_click",
|
||||
label: "",
|
||||
});
|
||||
}
|
||||
}}
|
||||
>
|
||||
Usecases
|
||||
</Button>
|
||||
</Link>
|
||||
</ListItem>
|
||||
{isCloud ? (
|
||||
<ListItem
|
||||
style={{ textAlign: "center", marginLeft: "0px", paddingRight: 0 }}
|
||||
style={{
|
||||
textAlign: "center",
|
||||
marginLeft: "0px",
|
||||
paddingRight: 0,
|
||||
}}
|
||||
>
|
||||
<Link to="/" style={hrefStyle}>
|
||||
<Grid
|
||||
variant="text"
|
||||
color="secondary"
|
||||
style={{ textTransform: "none", display: "flex" }}
|
||||
onClick={() => {
|
||||
if (isCloud) {
|
||||
ReactGA.event({
|
||||
category: "header",
|
||||
action: "home_click",
|
||||
label: "",
|
||||
});
|
||||
}
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src={"/images/logos/topleft_logo.svg"}
|
||||
alt="shuffle logo"
|
||||
style={{ height: 25, }}
|
||||
/>
|
||||
</Grid>
|
||||
</Link>
|
||||
</ListItem>
|
||||
</List>
|
||||
<List style={{ flex: 1.5, display: "flex", flexDirect: "row", marginTop: 10, itemAlign: "center", }} component="nav">
|
||||
<ListItem style={{ textAlign: "center", marginLeft: "0px" }}>
|
||||
<Link to="/usecases" style={hrefStyle}>
|
||||
<Link to="/pricing" style={hrefStyle}>
|
||||
<Button
|
||||
variant="text"
|
||||
color="secondary"
|
||||
style={menuText}
|
||||
onClick={() => {
|
||||
if (isCloud) {
|
||||
ReactGA.event({
|
||||
category: "header",
|
||||
action: "usecases_click",
|
||||
label: "",
|
||||
});
|
||||
}
|
||||
ReactGA.event({
|
||||
category: "header",
|
||||
action: "pricing_click",
|
||||
label: "",
|
||||
});
|
||||
}}
|
||||
>
|
||||
Usecases
|
||||
Pricing
|
||||
</Button>
|
||||
</Link>
|
||||
</ListItem>
|
||||
{isCloud ? (
|
||||
<ListItem
|
||||
style={{
|
||||
textAlign: "center",
|
||||
marginLeft: "0px",
|
||||
paddingRight: 0,
|
||||
}}
|
||||
>
|
||||
<Link to="/pricing" style={hrefStyle}>
|
||||
<Button
|
||||
variant="text"
|
||||
color="secondary"
|
||||
style={menuText}
|
||||
onClick={() => {
|
||||
ReactGA.event({
|
||||
category: "header",
|
||||
action: "pricing_click",
|
||||
label: "",
|
||||
});
|
||||
}}
|
||||
>
|
||||
Pricing
|
||||
</Button>
|
||||
</Link>
|
||||
</ListItem>
|
||||
) : null}
|
||||
<ListItem
|
||||
style={{
|
||||
textAlign: "center",
|
||||
marginLeft: 0,
|
||||
paddingRight: 0,
|
||||
}}
|
||||
>
|
||||
<Link rel="noopener noreferrer" to="/docs" style={hrefStyle}>
|
||||
<Button
|
||||
variant="text"
|
||||
color="secondary"
|
||||
style={menuText}
|
||||
onClick={() => {}}
|
||||
>
|
||||
Docs
|
||||
</Button>
|
||||
</Link>
|
||||
</ListItem>
|
||||
</List>
|
||||
<List
|
||||
style={{ flex: 2, display: "flex", alignItems: "flex-start", }}
|
||||
component="nav"
|
||||
) : null}
|
||||
<ListItem
|
||||
style={{
|
||||
textAlign: "center",
|
||||
marginLeft: 0,
|
||||
paddingRight: 0,
|
||||
}}
|
||||
>
|
||||
<div style={{maxWidth: 70, minWidth: 70, }}/>
|
||||
<span style={{marginTop: 8, marginRight: 15, }}>
|
||||
<SearchField globalUrl={globalUrl} isHeader={true} isLoggedIn={isLoggedIn} isLoaded={isLoaded} serverside={serverside} userdata={userdata} small={true} rounded={true} />
|
||||
</span>
|
||||
<Link to="/register" style={hrefStyle}>
|
||||
<Button
|
||||
variant="contained"
|
||||
color="primary"
|
||||
style={{
|
||||
marginTop: 13,
|
||||
minWidth: 100,
|
||||
maxWidth: 100,
|
||||
padding: "7px 14px 7px 14px",
|
||||
borderRadius: 25,
|
||||
textTransform: "none",
|
||||
backgroundImage: "linear-gradient(to right, #f86a3e, #f34079)",
|
||||
color: "white",
|
||||
}}
|
||||
onClick={() => {
|
||||
if (isCloud) {
|
||||
ReactGA.event({
|
||||
category: "header",
|
||||
action: "register_click",
|
||||
label: "",
|
||||
});
|
||||
}
|
||||
}}
|
||||
>
|
||||
Sign Up
|
||||
</Button>
|
||||
</Link>
|
||||
<Link to="/login" style={hrefStyle}>
|
||||
<Button
|
||||
style={{
|
||||
marginTop: 12,
|
||||
textTransform: "none",
|
||||
borderRadius: 25,
|
||||
color:"white",
|
||||
fontWeight: 400,
|
||||
fontSize: 16,
|
||||
padding: "7px 14px 7px 14px",
|
||||
maxWidth: 100,
|
||||
minWidth: 100,
|
||||
}}
|
||||
onClick={() => {
|
||||
if (isCloud) {
|
||||
ReactGA.event({
|
||||
category: "header",
|
||||
action: "signin_click",
|
||||
label: "",
|
||||
});
|
||||
}
|
||||
}}
|
||||
>
|
||||
Login
|
||||
</Button>
|
||||
</Link>
|
||||
<Link rel="noopener noreferrer" to="/docs" style={hrefStyle}>
|
||||
<Button
|
||||
variant="text"
|
||||
color="secondary"
|
||||
style={menuText}
|
||||
onClick={() => { }}
|
||||
>
|
||||
Docs
|
||||
</Button>
|
||||
</Link>
|
||||
</ListItem>
|
||||
</List>
|
||||
<List
|
||||
style={{ flex: 2, display: "flex", alignItems: "flex-start", }}
|
||||
component="nav"
|
||||
>
|
||||
<div style={{ maxWidth: 70, minWidth: 70, }} />
|
||||
<span style={{ marginTop: 8, marginRight: 15, }}>
|
||||
<SearchField globalUrl={globalUrl} isHeader={true} isLoggedIn={isLoggedIn} isLoaded={isLoaded} serverside={serverside} userdata={userdata} small={true} rounded={true} />
|
||||
</span>
|
||||
<Link to="/register" style={hrefStyle}>
|
||||
<Button
|
||||
variant="contained"
|
||||
color="primary"
|
||||
style={{
|
||||
marginTop: 13,
|
||||
minWidth: 100,
|
||||
maxWidth: 100,
|
||||
padding: "7px 14px 7px 14px",
|
||||
borderRadius: 25,
|
||||
textTransform: "none",
|
||||
backgroundImage: "linear-gradient(to right, #f86a3e, #f34079)",
|
||||
color: "white",
|
||||
}}
|
||||
onClick={() => {
|
||||
if (isCloud) {
|
||||
ReactGA.event({
|
||||
category: "header",
|
||||
action: "register_click",
|
||||
label: "",
|
||||
});
|
||||
}
|
||||
}}
|
||||
>
|
||||
Sign Up
|
||||
</Button>
|
||||
</Link>
|
||||
<Link to="/login" style={hrefStyle}>
|
||||
<Button
|
||||
style={{
|
||||
marginTop: 12,
|
||||
textTransform: "none",
|
||||
borderRadius: 25,
|
||||
color: "white",
|
||||
fontWeight: 400,
|
||||
fontSize: 16,
|
||||
padding: "7px 14px 7px 14px",
|
||||
maxWidth: 100,
|
||||
minWidth: 100,
|
||||
}}
|
||||
onClick={() => {
|
||||
if (isCloud) {
|
||||
ReactGA.event({
|
||||
category: "header",
|
||||
action: "signin_click",
|
||||
label: "",
|
||||
});
|
||||
}
|
||||
}}
|
||||
>
|
||||
Login
|
||||
</Button>
|
||||
</Link>
|
||||
|
||||
</List>
|
||||
</List>
|
||||
</div>
|
||||
) : (
|
||||
<div style={{ display: "flex" }}>
|
||||
@@ -830,91 +841,91 @@ const Header = (props) => {
|
||||
style={{ color: HomeHoverColor, cursor: "pointer" }}
|
||||
>
|
||||
<Grid container direction="row" alignItems="center">
|
||||
<Grid item style={{ }}>
|
||||
<Grid item style={{}}>
|
||||
<img
|
||||
src={"/images/logos/orange_logo.svg"}
|
||||
alt="logo"
|
||||
style={{ height: 20, width: 20, marginTop:4}}
|
||||
style={{ height: 20, width: 20, marginTop: 4 }}
|
||||
/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</div>
|
||||
</Link>
|
||||
<ListItem style={listItemStyle}>
|
||||
<Link to="/workflows" style={hrefStyle}>
|
||||
<div
|
||||
onMouseOver={handleSoarHover}
|
||||
onMouseOut={handleSoarHoverOut}
|
||||
style={{
|
||||
color: SoarHoverColor,
|
||||
cursor: "pointer",
|
||||
display: "flex",
|
||||
marginLeft: 25,
|
||||
}}
|
||||
>
|
||||
{/*
|
||||
<Link to="/workflows" style={hrefStyle}>
|
||||
<div
|
||||
onMouseOver={handleSoarHover}
|
||||
onMouseOut={handleSoarHoverOut}
|
||||
style={{
|
||||
color: SoarHoverColor,
|
||||
cursor: "pointer",
|
||||
display: "flex",
|
||||
marginLeft: 25,
|
||||
}}
|
||||
>
|
||||
{/*
|
||||
<PolylineIcon style={{marginRight: "5px"}} />
|
||||
*/}
|
||||
<Typography style={{ marginTop: defaultTop, marginRight: 8 }}>
|
||||
Workflows
|
||||
</Typography>
|
||||
</div>
|
||||
</Link>
|
||||
</ListItem>
|
||||
<ListItem style={listItemStyle}>
|
||||
<Link to="/apps" style={hrefStyle}>
|
||||
<div
|
||||
onMouseOver={handleHelpHover}
|
||||
onMouseOut={handleHelpHoverOut}
|
||||
style={{
|
||||
color: HelpHoverColor,
|
||||
cursor: "pointer",
|
||||
display: "flex",
|
||||
}}
|
||||
>
|
||||
{/*
|
||||
<Typography style={{ marginTop: defaultTop, marginRight: 8 }}>
|
||||
Workflows
|
||||
</Typography>
|
||||
</div>
|
||||
</Link>
|
||||
</ListItem>
|
||||
<ListItem style={listItemStyle}>
|
||||
<Link to="/apps" style={hrefStyle}>
|
||||
<div
|
||||
onMouseOver={handleHelpHover}
|
||||
onMouseOut={handleHelpHoverOut}
|
||||
style={{
|
||||
color: HelpHoverColor,
|
||||
cursor: "pointer",
|
||||
display: "flex",
|
||||
}}
|
||||
>
|
||||
{/*
|
||||
<AppsIcon style={{marginRight: "5px"}} />
|
||||
*/}
|
||||
<Typography style={{ marginTop: defaultTop, marginRight: 5 }}>
|
||||
Apps
|
||||
</Typography>
|
||||
</div>
|
||||
</Link>
|
||||
</ListItem>
|
||||
{/*
|
||||
<Typography style={{ marginTop: defaultTop, marginRight: 5 }}>
|
||||
Apps
|
||||
</Typography>
|
||||
</div>
|
||||
</Link>
|
||||
</ListItem>
|
||||
{/*
|
||||
<ListItem style={{textAlign: "center"}}>
|
||||
<Link to="/dashboard" style={hrefStyle}>
|
||||
<div onMouseOver={handleDocsHover} onMouseOut={handleDocsHoverOut} style={{color: DocsHoverColor, cursor: "pointer"}}>Dashboard</div>
|
||||
</Link>
|
||||
</ListItem>
|
||||
*/}
|
||||
<ListItem style={listItemStyle}>
|
||||
<Link to="/docs" style={hrefStyle}>
|
||||
<div
|
||||
onMouseOver={handleDocsHover}
|
||||
onMouseOut={handleDocsHoverOut}
|
||||
style={{
|
||||
color: DocsHoverColor,
|
||||
cursor: "pointer",
|
||||
display: "flex",
|
||||
}}
|
||||
>
|
||||
{/*
|
||||
<ListItem style={listItemStyle}>
|
||||
<Link to="/docs" style={hrefStyle}>
|
||||
<div
|
||||
onMouseOver={handleDocsHover}
|
||||
onMouseOut={handleDocsHoverOut}
|
||||
style={{
|
||||
color: DocsHoverColor,
|
||||
cursor: "pointer",
|
||||
display: "flex",
|
||||
}}
|
||||
>
|
||||
{/*
|
||||
<DescriptionIcon style={{marginRight: "5px"}} />
|
||||
*/}
|
||||
<Typography style={{ marginTop: defaultTop }}>
|
||||
Docs
|
||||
</Typography>
|
||||
</div>
|
||||
</Link>
|
||||
</ListItem>
|
||||
<Typography style={{ marginTop: defaultTop }}>
|
||||
Docs
|
||||
</Typography>
|
||||
</div>
|
||||
</Link>
|
||||
</ListItem>
|
||||
</ListItem>
|
||||
</List>
|
||||
</div>
|
||||
<div style={{ flex: 1, marginTop: 10, }}>
|
||||
<SearchField globalUrl={globalUrl} isHeader={true} isLoggedIn={isLoggedIn} isLoaded={isLoaded} serverside={serverside} userdata={userdata} hidemargins={true}/>
|
||||
<SearchField globalUrl={globalUrl} isHeader={true} isLoggedIn={isLoggedIn} isLoaded={isLoaded} serverside={serverside} userdata={userdata} hidemargins={true} />
|
||||
</div>
|
||||
<div style={{ flex: isLoggedIn ? null : 1, display: "flex", flexDirection: "row-reverse" }}>
|
||||
<div style={{ flex: isLoggedIn ? null : 1, display: "flex", flexDirection: "row-reverse" }}>
|
||||
<List
|
||||
style={{
|
||||
display: "flex",
|
||||
@@ -1011,8 +1022,8 @@ const Header = (props) => {
|
||||
marginRight: 10,
|
||||
marginLeft:
|
||||
data.creator_org !== undefined &&
|
||||
data.creator_org !== null &&
|
||||
data.creator_org.length > 0
|
||||
data.creator_org !== null &&
|
||||
data.creator_org.length > 0
|
||||
? data.id === userdata.active_org.id
|
||||
? 0
|
||||
: 20
|
||||
@@ -1021,8 +1032,8 @@ const Header = (props) => {
|
||||
|
||||
const parsedTitle =
|
||||
data.creator_org !== undefined &&
|
||||
data.creator_org !== null &&
|
||||
data.creator_org.length > 0
|
||||
data.creator_org !== null &&
|
||||
data.creator_org.length > 0
|
||||
? `Suborg of ${data.creator_org}`
|
||||
: "";
|
||||
|
||||
@@ -1056,11 +1067,11 @@ const Header = (props) => {
|
||||
|
||||
regiontag = namesplit[namesplit.length - 1];
|
||||
|
||||
if (regiontag === "california") {
|
||||
regiontag = "us"
|
||||
} else if (regiontag === "frankfurt") {
|
||||
regiontag = "fr"
|
||||
}
|
||||
if (regiontag === "california") {
|
||||
regiontag = "us"
|
||||
} else if (regiontag === "frankfurt") {
|
||||
regiontag = "fr"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1134,61 +1145,62 @@ const Header = (props) => {
|
||||
|
||||
{/* Show on cloud, if not suborg and if not customer/pov/internal */}
|
||||
{
|
||||
userdata.licensed !== undefined &&
|
||||
userdata.licensed !== null &&
|
||||
userdata.licensed === false ?
|
||||
<ListItem
|
||||
style={{
|
||||
textAlign: "center",
|
||||
marginLeft: 0,
|
||||
marginRight: 7,
|
||||
marginTop: 0,
|
||||
}}
|
||||
>
|
||||
<Link to="/admin?tab=billing" style={hrefStyle}>
|
||||
<Button
|
||||
variant="contained"
|
||||
color="primary"
|
||||
style={{ textTransform: "none" }}
|
||||
onMouseOver={() => {setUpgradeHovered(true)}}
|
||||
onMouseOut={() => {setUpgradeHovered(false)}}
|
||||
onClick={() => {
|
||||
if (isCloud) {
|
||||
ReactGA.event({
|
||||
category: "header",
|
||||
action: "pricing_upgrade_click",
|
||||
label: "",
|
||||
});
|
||||
}
|
||||
userdata.licensed !== undefined &&
|
||||
userdata.licensed !== null &&
|
||||
userdata.licensed === false ?
|
||||
<ListItem
|
||||
style={{
|
||||
textAlign: "center",
|
||||
marginLeft: 0,
|
||||
marginRight: 7,
|
||||
marginTop: 0,
|
||||
}}
|
||||
>
|
||||
<Link style={hrefStyle}>
|
||||
<Button
|
||||
variant="contained"
|
||||
color="primary"
|
||||
style={{ textTransform: "none" }}
|
||||
onMouseOver={() => { setUpgradeHovered(true) }}
|
||||
onMouseOut={() => { setUpgradeHovered(false) }}
|
||||
onClick={() => {
|
||||
// if (isCloud) {
|
||||
// ReactGA.event({
|
||||
// category: "header",
|
||||
// action: "pricing_upgrade_click",
|
||||
// label: "",
|
||||
// });
|
||||
// }
|
||||
setModalOpen(true);
|
||||
|
||||
if (window.drift !== undefined) {
|
||||
if (isCloud) {
|
||||
window.drift.api.startInteraction({
|
||||
interactionId: 386404,
|
||||
})
|
||||
} else {
|
||||
window.drift.api.startInteraction({
|
||||
interactionId: 386403,
|
||||
})
|
||||
}
|
||||
}
|
||||
}}
|
||||
>
|
||||
{upgradeHovered ?
|
||||
isCloud ? "Upgrade License" : "Upgrade License"
|
||||
:
|
||||
isCloud ? "Upgrade" : "Upgrade"
|
||||
}
|
||||
// if (window.drift !== undefined) {
|
||||
// if (isCloud) {
|
||||
// window.drift.api.startInteraction({
|
||||
// interactionId: 386404,
|
||||
// })
|
||||
// } else {
|
||||
// window.drift.api.startInteraction({
|
||||
// interactionId: 386403,
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
}}
|
||||
>
|
||||
{upgradeHovered ?
|
||||
isCloud ? "Upgrade License" : "Upgrade License"
|
||||
:
|
||||
isCloud ? "Upgrade" : "Upgrade"
|
||||
}
|
||||
|
||||
</Button>
|
||||
</Link>
|
||||
</ListItem>
|
||||
: null}
|
||||
</Button>
|
||||
</Link>
|
||||
</ListItem>
|
||||
: null}
|
||||
|
||||
{userdata === undefined ||
|
||||
userdata.app_execution_limit === undefined ||
|
||||
userdata.app_execution_usage === undefined ||
|
||||
userdata.app_execution_usage < 1000 ? null : (
|
||||
userdata.app_execution_limit === undefined ||
|
||||
userdata.app_execution_usage === undefined ||
|
||||
userdata.app_execution_usage < 1000 ? null : (
|
||||
<Tooltip
|
||||
title={`Amount of App Runs used: ${userdata.app_execution_usage} / ${userdata.app_execution_limit}. When the limit is reached, you can still use Shuffle normally, but your Workflow triggers will stop workflows from starting. Reach out to support@shuffler.io to extend this limit.`}
|
||||
>
|
||||
@@ -1207,14 +1219,14 @@ const Header = (props) => {
|
||||
border:
|
||||
userdata.app_execution_usage /
|
||||
userdata.app_execution_limit >=
|
||||
0.9
|
||||
0.9
|
||||
? "2px solid #f86a3e"
|
||||
: null,
|
||||
}}
|
||||
onClick={() => {
|
||||
console.log(
|
||||
userdata.appe_execution_usage /
|
||||
userdata.app_execution_limit
|
||||
userdata.app_execution_limit
|
||||
);
|
||||
if (window.drift !== undefined) {
|
||||
window.drift.api.startInteraction({
|
||||
@@ -1398,29 +1410,36 @@ const Header = (props) => {
|
||||
);
|
||||
|
||||
// <Divider style={{height: "1px", width: "100%", backgroundColor: "rgb(91, 96, 100)"}}/>
|
||||
//
|
||||
/*
|
||||
!isLoggedIn ?
|
||||
<div style={{minHeight: 68, maxHeight: 68, backgroundColor: theme.palette.backgroundColor, }}>
|
||||
<BrowserView style={{position: "sticky", top: 0, }}>
|
||||
{loginTextBrowser}
|
||||
</BrowserView>
|
||||
</div>
|
||||
:
|
||||
*/
|
||||
return !isMobile ?
|
||||
<AppBar
|
||||
position="sticky"
|
||||
color="transparent"
|
||||
elevation={0}
|
||||
style={{backgroundColor: "transparent", boxShadow: "none", minHeight: 68, maxHeight: 68, backgroundColor: theme.palette.backgroundColor, }}
|
||||
>
|
||||
<BrowserView style={{position: "sticky", top: 0, }}>
|
||||
{loginTextBrowser}
|
||||
</BrowserView>
|
||||
</AppBar>
|
||||
:
|
||||
<MobileView>{loginTextMobile}</MobileView>
|
||||
//
|
||||
/*
|
||||
!isLoggedIn ?
|
||||
<div style={{minHeight: 68, maxHeight: 68, backgroundColor: theme.palette.backgroundColor, }}>
|
||||
<BrowserView style={{position: "sticky", top: 0, }}>
|
||||
{loginTextBrowser}
|
||||
</BrowserView>
|
||||
</div>
|
||||
:
|
||||
*/
|
||||
return !isMobile ?
|
||||
<div style={{}}>
|
||||
<AppBar
|
||||
color="transparent"
|
||||
elevation={0}
|
||||
style={{
|
||||
backgroundColor: "transparent",
|
||||
boxShadow: "none",
|
||||
minHeight: 68,
|
||||
maxHeight: 68,
|
||||
backgroundColor: theme.palette.backgroundColor,
|
||||
}}
|
||||
>
|
||||
<div style={{position: "sticky", top: 0, }}>
|
||||
{loginTextBrowser}
|
||||
</div>
|
||||
</AppBar>
|
||||
</div>
|
||||
:
|
||||
<MobileView>{loginTextMobile}</MobileView>
|
||||
};
|
||||
|
||||
export default Header;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -8,6 +8,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 { parsedDatatypeImages } from "../components/AppFramework.jsx";
|
||||
//import { useAlert
|
||||
|
||||
import {
|
||||
@@ -163,6 +164,8 @@ const ParsedAction = (props) => {
|
||||
|
||||
expansionModalOpen,
|
||||
setExpansionModalOpen,
|
||||
|
||||
listCache,
|
||||
|
||||
apps,
|
||||
setEditorData,
|
||||
@@ -431,20 +434,59 @@ const ParsedAction = (props) => {
|
||||
})
|
||||
}
|
||||
|
||||
/*
|
||||
actionlist.push({
|
||||
type: "Shuffle DB",
|
||||
name: "Shuffle DB",
|
||||
value: "$shuffle_cache",
|
||||
highlight: "shuffle_cache",
|
||||
autocomplete: "shuffle_cache",
|
||||
example: "",
|
||||
example: {
|
||||
"what": "",
|
||||
"unique gmail ids new": "",
|
||||
},
|
||||
})
|
||||
*/
|
||||
|
||||
if (
|
||||
workflow.workflow_variables !== null &&
|
||||
workflow.workflow_variables !== undefined &&
|
||||
workflow.workflow_variables.length > 0
|
||||
) {
|
||||
var cachekey = {
|
||||
type: "Shuffle DB",
|
||||
name: "Shuffle DB",
|
||||
value: "$shuffle_cache",
|
||||
highlight: "shuffle_cache",
|
||||
autocomplete: "shuffle_cache",
|
||||
example: "",
|
||||
}
|
||||
|
||||
if (listCache !== undefined && listCache !== null && listCache.keys !== undefined && listCache.keys !== null && listCache.keys.length > 0) {
|
||||
cachekey.example = {}
|
||||
|
||||
for (var i in listCache.keys) {
|
||||
const item = listCache.keys[i]
|
||||
if (item.key === undefined || item.key === null || item.key.length === 0) {
|
||||
continue
|
||||
}
|
||||
|
||||
var itemvalue = item.value === undefined || item.value === null ? "" : item.value
|
||||
try{
|
||||
if (itemvalue.length > 10000) {
|
||||
itemvalue = ""
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
itemvalue = ""
|
||||
}
|
||||
|
||||
var itemkey = item.key.split(" ").join("_")
|
||||
cachekey.example[itemkey] = {
|
||||
"value": itemvalue,
|
||||
}
|
||||
}
|
||||
} else {
|
||||
}
|
||||
|
||||
actionlist.push(cachekey)
|
||||
|
||||
if (workflow.workflow_variables !== null && workflow.workflow_variables !== undefined && workflow.workflow_variables.length > 0) {
|
||||
for (let [key,keyval] in Object.entries(workflow.workflow_variables)) {
|
||||
const item = workflow.workflow_variables[key];
|
||||
actionlist.push({
|
||||
@@ -1083,26 +1125,104 @@ const ParsedAction = (props) => {
|
||||
|
||||
|
||||
// FIXME: Issue #40 - selectedActionParameters not reset
|
||||
if (
|
||||
Object.getOwnPropertyNames(selectedAction).length > 0 &&
|
||||
selectedActionParameters.length > 0
|
||||
) {
|
||||
if (Object.getOwnPropertyNames(selectedAction).length > 0 && selectedActionParameters.length > 0) {
|
||||
|
||||
var wrapperapp = {
|
||||
"id": "",
|
||||
"name": "noapp",
|
||||
"large_image": "",
|
||||
}
|
||||
|
||||
var actionname = selectedAction.name.toLowerCase()
|
||||
if (actionname === "email" || actionname === "communication") {
|
||||
actionname = "comms"
|
||||
}
|
||||
|
||||
if (isIntegration) {
|
||||
|
||||
// Check if actionname uppercase is in the parsedDatatypeImages() dictionary
|
||||
if (parsedDatatypeImages()[actionname.toUpperCase()] !== undefined) {
|
||||
var newimage = parsedDatatypeImages()[actionname.toUpperCase()]
|
||||
//newimage = <img src={newimage} style={{width: 35, height: 35, marginRight: 5, borderRadius: 5, cursor: "pointer", border: noAppSelected ? "3px solid #86c142" : "2px solid rgba(255,255,255,0.6)"}} />
|
||||
wrapperapp.large_image = newimage
|
||||
} else {
|
||||
console.log("Couldn't find actionname: ", actionname)
|
||||
}
|
||||
}
|
||||
|
||||
var authWritten = false;
|
||||
var noAppSelected = false
|
||||
const paramIndex = selectedAction.parameters.findIndex((param) => param.name === "app_name")
|
||||
if (paramIndex === -1 || selectedAction.parameters[paramIndex].value === "" || selectedAction.parameters[paramIndex].value === "noapp") {
|
||||
// Check the actual value and if it's the same
|
||||
noAppSelected = true
|
||||
}
|
||||
return (
|
||||
<div style={{ marginTop: hideExtraTypes ? 10 : 30 }}>
|
||||
{isIntegration ?
|
||||
apps !== undefined && apps !== null && apps.length > 0 ?
|
||||
<div style={{display: "flex", }}>
|
||||
<div style={{display: "flex", maxWidth: 335, overflowX: "auto", overflowY: "hidden",}}>
|
||||
<div onClick={() => {
|
||||
|
||||
selectedAction.example = "noapp"
|
||||
selectedAction.large_image = newimage
|
||||
if (cy !== undefined && cy !== null) {
|
||||
const foundnode = cy.getElementById(selectedAction.id)
|
||||
if (foundnode !== undefined && foundnode !== null) {
|
||||
foundnode.data("large_image", newimage)
|
||||
}
|
||||
}
|
||||
|
||||
const iconInfo = GetIconInfo(selectedAction)
|
||||
if (iconInfo !== undefined && iconInfo !== null) {
|
||||
selectedAction.fillGradient = iconInfo.fillGradient
|
||||
|
||||
selectedAction.iconBackground = iconInfo.iconBackgroundColor
|
||||
selectedAction.fillstyle = "linear-gradient"
|
||||
}
|
||||
|
||||
if (paramIndex === -1) {
|
||||
console.log("Couldn't find app_name parameter")
|
||||
selectedAction.parameters.push({
|
||||
name: "app_name",
|
||||
value: wrapperapp.name,
|
||||
autocompleted: false,
|
||||
})
|
||||
} else {
|
||||
selectedAction.parameters[paramIndex].value = wrapperapp.name
|
||||
}
|
||||
|
||||
setSelectedAction(selectedAction)
|
||||
setUpdate(Math.random())
|
||||
|
||||
}}>
|
||||
<Tooltip title={"Unselect which App to use"} placement="top">
|
||||
<div style={{textAlign: "center", }}>
|
||||
<img
|
||||
src={wrapperapp.large_image}
|
||||
style={{
|
||||
minWidth: 30,
|
||||
maxWidth: 30,
|
||||
minHeight: 30,
|
||||
maxHeight: 30,
|
||||
|
||||
marginRight: 5,
|
||||
borderRadius: 5,
|
||||
cursor: "pointer",
|
||||
border: noAppSelected ? "3px solid #86c142" : "2px solid rgba(255,255,255,0.6)",
|
||||
|
||||
paddingLeft: 5,
|
||||
paddingTop: 5,
|
||||
}} />
|
||||
</div>
|
||||
</Tooltip>
|
||||
</div>
|
||||
{apps.map((app, appIndex) => {
|
||||
if (app.categories === undefined || app.categories === null || app.categories.length === 0) {
|
||||
return null
|
||||
}
|
||||
|
||||
var found = false
|
||||
var actionname = selectedAction.name.toLowerCase()
|
||||
if (actionname === "email") {
|
||||
actionname = "communication"
|
||||
}
|
||||
|
||||
|
||||
for (var key in app.categories) {
|
||||
@@ -1129,16 +1249,14 @@ const ParsedAction = (props) => {
|
||||
|
||||
return (
|
||||
<div onClick={() => {
|
||||
selectedAction.example = ""
|
||||
selectedAction.large_image = app.large_image
|
||||
|
||||
/*
|
||||
if (cy !== undefined) {
|
||||
const foundnode = cy.getElementById(selectedAction.id)
|
||||
if (foundnode !== undefined && foundnode !== null) {
|
||||
foundnode.data("large_image", app.large_image)
|
||||
}
|
||||
}
|
||||
*/
|
||||
if (cy !== undefined && cy !== null) {
|
||||
const foundnode = cy.getElementById(selectedAction.id)
|
||||
if (foundnode !== undefined && foundnode !== null) {
|
||||
foundnode.data("large_image", app.large_image)
|
||||
}
|
||||
}
|
||||
|
||||
if (paramIndex === -1) {
|
||||
console.log("Couldn't find app_name parameter")
|
||||
@@ -1155,7 +1273,7 @@ const ParsedAction = (props) => {
|
||||
setUpdate(Math.random())
|
||||
|
||||
}}>
|
||||
<Tooltip title={app.name.replace("_", " ", -1)} placement="top">
|
||||
<Tooltip title={`Select ${app.name.replaceAll("_", " ")}`} placement="top">
|
||||
<img
|
||||
src={app.large_image}
|
||||
style={{
|
||||
|
||||
@@ -24,10 +24,29 @@ const Priorities = (props) => {
|
||||
const [showDismissed, setShowDismissed] = React.useState(false);
|
||||
const [showRead, setShowRead] = React.useState(false);
|
||||
const [appFramework, setAppFramework] = React.useState({});
|
||||
const [selectedWorkflow, setSelectedWorkflow] = React.useState("");
|
||||
const [selectedExecutionId, setSelectedExecutionId] = React.useState("");
|
||||
let navigate = useNavigate();
|
||||
|
||||
useEffect(() => {
|
||||
getFramework()
|
||||
|
||||
// Check "workflow" and "execution_id" in URL
|
||||
const urlParams = new URLSearchParams(window.location.search)
|
||||
const workflow = urlParams.get("workflow")
|
||||
const execution_id = urlParams.get("execution_id")
|
||||
|
||||
if (execution_id !== null) {
|
||||
setSelectedExecutionId(execution_id)
|
||||
|
||||
//toast.info("Execution-related notifications are highlighted.")
|
||||
}
|
||||
|
||||
if (workflow !== null) {
|
||||
setSelectedWorkflow(workflow)
|
||||
|
||||
toast.info("Workflow-related notifications are highlighted.")
|
||||
}
|
||||
}, [])
|
||||
|
||||
if (userdata === undefined || userdata === null) {
|
||||
@@ -157,6 +176,10 @@ const Priorities = (props) => {
|
||||
var image = "";
|
||||
var orgName = "";
|
||||
var orgId = "";
|
||||
|
||||
|
||||
const highlighted = data.reference_url === undefined || data.reference_url === null || data.reference_url.length === 0 ? false : data.reference_url.includes(selectedExecutionId) || data.reference_url.includes(selectedWorkflow)
|
||||
|
||||
if (userdata.orgs !== undefined) {
|
||||
const foundOrg = userdata.orgs.find((org) => org.id === data["org_id"]);
|
||||
if (foundOrg !== undefined && foundOrg !== null) {
|
||||
@@ -207,6 +230,8 @@ const Priorities = (props) => {
|
||||
padding: 30,
|
||||
borderBottom: "1px solid rgba(255,255,255,0.4)",
|
||||
marginBottom: 20,
|
||||
border: highlighted ? "2px solid #f85a3e" : null,
|
||||
borderRadius: theme.palette.borderRadius,
|
||||
}}
|
||||
>
|
||||
<div style={{display: "flex", }}>
|
||||
@@ -313,7 +338,42 @@ const Priorities = (props) => {
|
||||
|
||||
return (
|
||||
<div style={{width: clickedFromOrgTab ? 1030:1000, padding: clickedFromOrgTab ? 27:null, height: clickedFromOrgTab ? "auto":null, backgroundColor: clickedFromOrgTab ? '#212121':null, borderRadius: clickedFromOrgTab ? '16px':null, }}>
|
||||
<h2 style={{ display: clickedFromOrgTab ?null:"inline", marginBottom: clickedFromOrgTab ? 8:null, marginTop: clickedFromOrgTab ?0:null, color: clickedFromOrgTab ?"#ffffff":null }}>Suggestions</h2>
|
||||
<h2 style={{ display: clickedFromOrgTab?null:"inline", marginBottom: clickedFromOrgTab? 8:null, marginTop: clickedFromOrgTab?40:null, color: clickedFromOrgTab?"#ffffff":null }}>Notifications</h2>
|
||||
<span style={{ marginLeft: clickedFromOrgTab?null:25, color: clickedFromOrgTab?"#9E9E9E":null, }}>
|
||||
Notifications help you find potential problems with your workflows and apps.
|
||||
<a
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
href="/docs/organizations#notifications"
|
||||
style={{ textDecoration: clickedFromOrgTab?null:"none", color: clickedFromOrgTab?"#FF8444":"#f85a3e" }}
|
||||
>
|
||||
Learn more
|
||||
</a>
|
||||
</span>
|
||||
<div/>
|
||||
<Switch
|
||||
checked={showRead}
|
||||
onChange={() => {
|
||||
setShowRead(!showRead);
|
||||
}}
|
||||
/> Show read
|
||||
{notifications === null || notifications === undefined || notifications.length === 0 ? null :
|
||||
<div>
|
||||
{notifications.map((notification, index) => {
|
||||
if (showRead === false && notification.read === true) {
|
||||
return null
|
||||
}
|
||||
|
||||
return (
|
||||
<NotificationItem data={notification} key={index} />
|
||||
)
|
||||
})}
|
||||
</div>
|
||||
}
|
||||
|
||||
{clickedFromOrgTab? null : <Divider style={{marginTop: 50, marginBottom: 50, }} />}
|
||||
|
||||
<h2 style={{ display: clickedFromOrgTab ? null:"inline", marginBottom: clickedFromOrgTab ? 8:null, marginTop: clickedFromOrgTab ?0:null, color: clickedFromOrgTab ? "#ffffff" : null }}>Suggestions</h2>
|
||||
<span style={{ color: clickedFromOrgTab ?"#9E9E9E":null,marginLeft: clickedFromOrgTab ?null:25 }}>
|
||||
Suggestions are tasks identified by Shuffle to help you discover ways to protect your and customers' company. <br/>These range from simple configurations in Shuffle to Usecases you may have missed.
|
||||
<a
|
||||
@@ -356,39 +416,6 @@ const Priorities = (props) => {
|
||||
)
|
||||
})
|
||||
}
|
||||
{clickedFromOrgTab?null:<Divider style={{marginTop: 50, marginBottom: 50, }} />}
|
||||
<h2 style={{ display: clickedFromOrgTab?null:"inline", marginBottom: clickedFromOrgTab? 8:null, marginTop: clickedFromOrgTab?40:null, color: clickedFromOrgTab?"#ffffff":null }}>Notifications</h2>
|
||||
<span style={{ marginLeft: clickedFromOrgTab?null:25, color: clickedFromOrgTab?"#9E9E9E":null, }}>
|
||||
Notifications help you find potential problems with your workflows and apps.
|
||||
<a
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
href="/docs/organizations#notifications"
|
||||
style={{ textDecoration: clickedFromOrgTab?null:"none", color: clickedFromOrgTab?"#FF8444":"#f85a3e" }}
|
||||
>
|
||||
Learn more
|
||||
</a>
|
||||
</span>
|
||||
<div/>
|
||||
<Switch
|
||||
checked={showRead}
|
||||
onChange={() => {
|
||||
setShowRead(!showRead);
|
||||
}}
|
||||
/> Show read
|
||||
{notifications === null || notifications === undefined || notifications.length === 0 ? null :
|
||||
<div>
|
||||
{notifications.map((notification, index) => {
|
||||
if (showRead === false && notification.read === true) {
|
||||
return null
|
||||
}
|
||||
|
||||
return (
|
||||
<NotificationItem data={notification} key={index} />
|
||||
)
|
||||
})}
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
)
|
||||
|
||||
@@ -42,7 +42,7 @@ const WorkflowTemplatePopup = (props) => {
|
||||
const [appAuthentication, setAppAuthentication] = React.useState(undefined);
|
||||
const [missingSource, setMissingSource] = React.useState(undefined)
|
||||
const [missingDestination, setMissingDestination] = React.useState(undefined);
|
||||
const [configurationFinished, setConfigurationFinished] = React.useState(false);
|
||||
const [configurationFinished, setConfigurationFinished] = React.useState(false)
|
||||
const [appSetupDone, setAppSetupDone] = React.useState(false)
|
||||
|
||||
const [requestSent, setRequestSent] = React.useState(false)
|
||||
@@ -75,6 +75,16 @@ const WorkflowTemplatePopup = (props) => {
|
||||
}
|
||||
}, [modalOpen, missingSource, missingDestination])
|
||||
|
||||
useEffect(() => {
|
||||
//console.log("IN USEEFFECT FOR CONFIG: ", configurationFinished)
|
||||
if (configurationFinished === true && workflow.id !== undefined && workflow.id !== null && workflow.id !== "") {
|
||||
toast.success("Generation Successful. Redirecting to the workflow..")
|
||||
setTimeout(() => {
|
||||
navigate("/workflows/" + workflow.id)
|
||||
}, 2000)
|
||||
}
|
||||
}, [configurationFinished, workflow])
|
||||
|
||||
|
||||
const imagestyleWrapper = {
|
||||
height: 40,
|
||||
@@ -305,13 +315,13 @@ const WorkflowTemplatePopup = (props) => {
|
||||
if (srcapp.includes(":default") || dstapp.includes(":default")) {
|
||||
toast("You need to select both a source and destination app before generating this workflow.")
|
||||
|
||||
if (srcapp.includes(":default")) {
|
||||
if (srcapp !== undefined && srcapp !== null && srcapp.includes(":default")) {
|
||||
setMissingSource({
|
||||
"type": srcapp.split(":")[0],
|
||||
})
|
||||
}
|
||||
|
||||
if (dstapp.includes(":default")) {
|
||||
if (dstapp !== undefined && dstapp !== null && dstapp.includes(":default")) {
|
||||
setMissingDestination({
|
||||
"type": dstapp.split(":")[0],
|
||||
})
|
||||
@@ -490,7 +500,7 @@ const WorkflowTemplatePopup = (props) => {
|
||||
<div style={{marginTop: 75, textAlign: "center", }}>
|
||||
<Typography variant="h4"> Generating the Workflow...
|
||||
</Typography>
|
||||
<CircularProgress style={{marginLeft: 125, marginTop: 10, }}/>
|
||||
<CircularProgress style={{marginLeft: 0, marginTop: 25, }}/>
|
||||
</div>
|
||||
:
|
||||
<div>
|
||||
@@ -572,18 +582,7 @@ const WorkflowTemplatePopup = (props) => {
|
||||
setConfigurationFinished={setConfigurationFinished}
|
||||
/>
|
||||
|
||||
|
||||
{/*workflow !== undefined && workflow !== null && workflow.id !== undefined && workflow.id !== null && workflow.id !== "" ?
|
||||
<div style={{position: "fixed", right: "5%", top: "20%", border: "1px solid rgba(255,255,255,0.3)", height: divHeight, width: divWidth, borderRadius: theme.palette.borderRadius, }}>
|
||||
<RenderCytoscape
|
||||
inworkflow={workflow}
|
||||
height={divHeight}
|
||||
width={divWidth}
|
||||
/>
|
||||
</div>
|
||||
: null*/}
|
||||
|
||||
{errorMessage === "" && configurationFinished === true && workflow.id !== undefined && workflowLoading === false ?
|
||||
{/*errorMessage === "" && configurationFinished === true && workflow.id !== undefined && workflowLoading === false ?
|
||||
<Tooltip title="Click to explore the workflow" placement="top">
|
||||
<span
|
||||
style={{position: "fixed", display: "flex", right: "10%", top: "20%", border: "1px solid rgba(255,255,255,0.3)", borderRadius: theme.palette.borderRadius, padding: "15px 30px 15px 30px", backgroundColor: theme.palette.platformColor, cursor: "pointer", }}
|
||||
@@ -592,25 +591,13 @@ const WorkflowTemplatePopup = (props) => {
|
||||
window.open("/workflows/" + workflow.id, "_blank")
|
||||
}}
|
||||
>
|
||||
{/*<CheckIcon color="primary" sx={{ borderRadius: 4 }} /> */}
|
||||
<Typography variant="h5" style={{ }}>
|
||||
Workflow Successfully Generated!
|
||||
</Typography>
|
||||
</span>
|
||||
</Tooltip>
|
||||
: null}
|
||||
|
||||
{/*errorMessage === "" ?
|
||||
<Button
|
||||
style={{marginTop: 50, }}
|
||||
variant={isFinished() ? "contained" : "outlined"}
|
||||
onClick={() => {
|
||||
setModalOpen(false);
|
||||
}}
|
||||
>
|
||||
Done
|
||||
</Button>
|
||||
: null*/}
|
||||
|
||||
</DialogContent>
|
||||
</Drawer>
|
||||
)
|
||||
|
||||
@@ -2,7 +2,16 @@ const data = [
|
||||
{
|
||||
selector: "node",
|
||||
css: {
|
||||
label: "data(label)",
|
||||
label: function(element) {
|
||||
var elementname = element.data("label")
|
||||
if (elementname === null || elementname === undefined) {
|
||||
return ""
|
||||
}
|
||||
|
||||
elementname = elementname.replace("_", " ", -1)
|
||||
elementname = elementname.charAt(0).toUpperCase() + elementname.slice(1)
|
||||
return elementname
|
||||
},
|
||||
"text-valign": "center",
|
||||
"font-family": "Segoe UI, Tahoma, Geneva, Verdana, sans-serif, sans-serif",
|
||||
"font-weight": "lighter",
|
||||
@@ -79,6 +88,36 @@ const data = [
|
||||
"text-wrap": "wrap",
|
||||
},
|
||||
},
|
||||
{
|
||||
selector: `node[app_name="Integration Framework"]`,
|
||||
css: {
|
||||
width: "60px",
|
||||
height: "60px",
|
||||
"z-index": 5000,
|
||||
|
||||
//'border-width': 3,
|
||||
//'border-color': 'transparent',
|
||||
//'border-style': 'solid',
|
||||
//'border-gradient': 'linear-gradient(to right, #FF0000, #FF7F00, #FFFF00, #00FF00, #0000FF, #4B0082, #8A2BE2)'
|
||||
},
|
||||
},
|
||||
{
|
||||
selector: `node[example="noapp"]`,
|
||||
css: {
|
||||
// Make background image padding on the left side 20px
|
||||
"background-width": "75%",
|
||||
"background-height": "75%",
|
||||
"background-position-x": "17px",
|
||||
"background-position-y": "17px",
|
||||
|
||||
"background-color": "data(iconBackground)",
|
||||
"background-fill": "data(fillstyle)",
|
||||
"background-gradient-direction": "to-bottom-right",
|
||||
"background-gradient-stop-colors": "data(fillGradient)",
|
||||
// Change transparency of background
|
||||
"background-opacity": "0.3",
|
||||
},
|
||||
},
|
||||
{
|
||||
selector: `node[app_name="Shuffle Tools"]`,
|
||||
css: {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -6262,23 +6262,15 @@ If you're interested, please let me know a time that works for you, or set up a
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Name"
|
||||
style={{ minWidth: 250, maxWidth: 250 }}
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Your role"
|
||||
style={{ minWidth: 150, maxWidth: 150 }}
|
||||
style={{ minWidth: 350, maxWidth: 350 }}
|
||||
/>
|
||||
<ListItemText
|
||||
primary="id"
|
||||
style={{ minWidth: 400, maxWidth: 400 }}
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Selected"
|
||||
style={{ minWidth: 150, maxWidth: 150 }}
|
||||
/>
|
||||
<ListItemText
|
||||
primary="Cloud Sync"
|
||||
style={{ minWidth: 150, maxWidth: 150 }}
|
||||
primary="action"
|
||||
style={{ minWidth: 200, maxWidth: 200 }}
|
||||
/>
|
||||
</ListItem>
|
||||
{userdata.orgs !== undefined &&
|
||||
@@ -6317,33 +6309,29 @@ If you're interested, please let me know a time that works for you, or set up a
|
||||
/>
|
||||
<ListItemText
|
||||
primary={data.name}
|
||||
style={{ minWidth: 250, maxWidth: 250 }}
|
||||
/>
|
||||
<ListItemText
|
||||
primary={data.role}
|
||||
style={{ minWidth: 150, maxWidth: 150 }}
|
||||
style={{ minWidth: 350, maxWidth: 350}}
|
||||
/>
|
||||
<ListItemText
|
||||
primary={data.id}
|
||||
style={{ minWidth: 400, maxWidth: 400 }}
|
||||
style={{ minWidth: 400, maxWidth: 400}}
|
||||
/>
|
||||
<ListItemText
|
||||
primary={isSelected}
|
||||
style={{ minWidth: 150, maxWidth: 150 }}
|
||||
/>
|
||||
<ListItemText
|
||||
primary=<Switch
|
||||
checked={data.cloud_sync}
|
||||
onChange={() => {
|
||||
setCloudSyncModalOpen(true);
|
||||
setSelectedOrganization(data);
|
||||
console.log("INVERT CLOUD SYNC");
|
||||
}}
|
||||
/>
|
||||
style={{ minWidth: 150, maxWidth: 150 }}
|
||||
/>
|
||||
</ListItem>
|
||||
);
|
||||
style={{ minWidth: 200, maxWidth: 200 }}
|
||||
primary={
|
||||
<Button
|
||||
variant="outlined"
|
||||
color="primary"
|
||||
disabled={data.id === selectedOrganization.id}
|
||||
onClick={() => {
|
||||
handleClickChangeOrg(data.id)
|
||||
}}
|
||||
>
|
||||
Change Active Org
|
||||
</Button>
|
||||
}
|
||||
/>
|
||||
</ListItem>
|
||||
)
|
||||
})}
|
||||
</span>
|
||||
) : null}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -2813,7 +2813,7 @@ const AppCreator = (defaultprops) => {
|
||||
paddingLeft: "10px",
|
||||
color: "white",
|
||||
height: 50,
|
||||
borderRadius: 5,
|
||||
borderRadius: theme.shape.borderRadius,
|
||||
}}
|
||||
inputProps={{
|
||||
name: "age",
|
||||
@@ -3195,7 +3195,7 @@ const AppCreator = (defaultprops) => {
|
||||
}}
|
||||
value={parameterLocation}
|
||||
style={{
|
||||
borderRadius: 5,
|
||||
borderRadius: theme.shape.borderRadius,
|
||||
backgroundColor: inputColor,
|
||||
paddingLeft: 10,
|
||||
color: "white",
|
||||
@@ -3883,7 +3883,7 @@ const AppCreator = (defaultprops) => {
|
||||
<Chip
|
||||
style={{
|
||||
color: "white",
|
||||
borderRadius: 5,
|
||||
borderRadius: theme.shape.borderRadius,
|
||||
minWidth: 80,
|
||||
marginRight: 10,
|
||||
marginTop: 2,
|
||||
@@ -4392,7 +4392,7 @@ const AppCreator = (defaultprops) => {
|
||||
style={{
|
||||
backgroundColor: bgColor,
|
||||
color: "white",
|
||||
borderRadius: 5,
|
||||
borderRadius: theme.shape.borderRadius,
|
||||
minWidth: 80,
|
||||
marginRight: 10,
|
||||
marginTop: 2,
|
||||
|
||||
@@ -418,7 +418,7 @@ const Apps = (props) => {
|
||||
minWidth: "100%",
|
||||
maxWidth: 612.5,
|
||||
marginBottom: 5,
|
||||
borderRadius: 5,
|
||||
borderRadius: theme.palette.borderRadius,
|
||||
color: "white",
|
||||
backgroundColor: surfaceColor,
|
||||
cursor: "pointer",
|
||||
@@ -600,8 +600,8 @@ const Apps = (props) => {
|
||||
|
||||
// dropdown with copy etc I guess
|
||||
const AppPaper = (props) => {
|
||||
const { app } = props
|
||||
const data = app
|
||||
const { app } = props
|
||||
const data = app
|
||||
|
||||
if (data.name === "" && data.id === "") {
|
||||
return null;
|
||||
@@ -631,6 +631,7 @@ const Apps = (props) => {
|
||||
data.large_image === undefined || data.large_image.length === 0 ? (
|
||||
<img
|
||||
alt={data.title}
|
||||
src={theme.palette.defaultImage}
|
||||
style={{
|
||||
borderRadius: borderRadius,
|
||||
width: 100,
|
||||
@@ -841,7 +842,7 @@ const Apps = (props) => {
|
||||
minWidth: viewWidth,
|
||||
maxWidth: viewWidth,
|
||||
color: "white",
|
||||
borderRadius: 5,
|
||||
borderRadius: theme.palette.borderRadius,
|
||||
backgroundColor: surfaceColor,
|
||||
//display: "flex",
|
||||
marginBottom: 10,
|
||||
@@ -2132,7 +2133,7 @@ const Apps = (props) => {
|
||||
</div>
|
||||
<div style={{ height: 50 }}>
|
||||
<TextField
|
||||
style={{ backgroundColor: inputColor, borderRadius: 5 }}
|
||||
style={{ backgroundColor: inputColor, borderRadius: theme.palette.borderRadius, }}
|
||||
InputProps={{
|
||||
style: {
|
||||
},
|
||||
@@ -2183,7 +2184,7 @@ const Apps = (props) => {
|
||||
minWidth: viewWidth,
|
||||
maxWidth: viewWidth,
|
||||
color: "white",
|
||||
borderRadius: 5,
|
||||
borderRadius: theme.palette.borderRadius,
|
||||
//display: "flex",
|
||||
marginBottom: 10,
|
||||
overflow: "hidden",
|
||||
|
||||
@@ -98,9 +98,11 @@ const Search = (props) => {
|
||||
display: 'none',
|
||||
},
|
||||
customTab: {
|
||||
justifyContent: 'center',
|
||||
gap: '46px',
|
||||
}
|
||||
justifyContent: "center",
|
||||
"& .MuiButtonBase-root": {
|
||||
color: "white",
|
||||
},
|
||||
},
|
||||
});
|
||||
const classes = useStyles();
|
||||
|
||||
@@ -128,7 +130,6 @@ const Search = (props) => {
|
||||
display: "flex",
|
||||
flexDirection: "column",
|
||||
overflowX: "hidden",
|
||||
width: "100%",
|
||||
minHeight: 400,
|
||||
};
|
||||
|
||||
@@ -150,6 +151,8 @@ const Search = (props) => {
|
||||
document.title = "Shuffle - search - documentation";
|
||||
} else if (newValue === 3) {
|
||||
document.title = "Shuffle - search - creators";
|
||||
} else if (newValue === 4) {
|
||||
document.title = "Shuffle - search - Discord Chat";
|
||||
} else {
|
||||
document.title = "Shuffle - search";
|
||||
}
|
||||
@@ -202,14 +205,12 @@ const Search = (props) => {
|
||||
color: 'white'
|
||||
}
|
||||
|
||||
|
||||
// Random names for type & autoComplete. Didn't research :^)
|
||||
const landingpageDataBrowser = (
|
||||
<div
|
||||
style={{
|
||||
paddingBottom: hidemargins === true ? 0 : 100,
|
||||
color: "white",
|
||||
width: "100%",
|
||||
}}
|
||||
>
|
||||
<div style={boxStyle}>
|
||||
@@ -286,7 +287,7 @@ const Search = (props) => {
|
||||
label={
|
||||
<span style={tabSpanStyling}>
|
||||
<ChatIcon style={{ iconStyle, color: "#F1F1F1" }} />
|
||||
<Typography variant="body1" style={{ tabTextStyling, whiteSpace: "nowrap", color: "#F1F1F1" }}>Discord Chat</Typography>
|
||||
<Typography variant="body1" style={{ marginLeft: 5, whiteSpace: "nowrap", color: "#F1F1F1" }}>Discord Chat</Typography>
|
||||
</span>
|
||||
}
|
||||
/>
|
||||
|
||||
@@ -129,6 +129,7 @@ export const GetIconInfo = (action) => {
|
||||
// Finds the icon based on the action. Should be verbs.
|
||||
const iconList = [
|
||||
{ key: "cases", values: ["cases"] },
|
||||
{ key: "communication", values: ["communication", "comms", "email",] },
|
||||
{ key: "cache_add", values: ["set_cache"] },
|
||||
{ key: "cache_get", values: ["get_cache"] },
|
||||
{ key: "filter", values: ["filter"] },
|
||||
@@ -200,18 +201,20 @@ export const GetIconInfo = (action) => {
|
||||
{ key: "close", values: ["close", "stop", "cancel", "block"] },
|
||||
];
|
||||
|
||||
var selectedKey = "";
|
||||
if (action.name === undefined || action.name === null) {
|
||||
var selectedKey = ""
|
||||
if (action.app_name == "Integration Framework") {
|
||||
selectedKey = "magic"
|
||||
}else if (action.name === undefined || action.name === null) {
|
||||
} else {
|
||||
const actionname = action.name.toLowerCase();
|
||||
const actionname = action.name.toLowerCase()
|
||||
for (var key in iconList) {
|
||||
//console.log(iconList[key], actionname)
|
||||
const found = iconList[key].values.find((value) =>
|
||||
actionname.includes(value)
|
||||
);
|
||||
)
|
||||
if (found !== null && found !== undefined) {
|
||||
selectedKey = iconList[key].key;
|
||||
break;
|
||||
selectedKey = iconList[key].key
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -223,8 +226,22 @@ export const GetIconInfo = (action) => {
|
||||
const defaultColor = "#f76b1c";
|
||||
const defaultGradient = ["#fad961", "#f76b1c"];
|
||||
const parsedIcons = {
|
||||
magic: {
|
||||
icon: "M7.5 5.6 10 7 8.6 4.5 10 2 7.5 3.4 5 2l1.4 2.5L5 7zm12 9.8L17 14l1.4 2.5L17 19l2.5-1.4L22 19l-1.4-2.5L22 14zM22 2l-2.5 1.4L17 2l1.4 2.5L17 7l2.5-1.4L22 7l-1.4-2.5zm-7.63 5.29a.9959.9959 0 0 0-1.41 0L1.29 18.96c-.39.39-.39 1.02 0 1.41l2.34 2.34c.39.39 1.02.39 1.41 0L16.7 11.05c.39-.39.39-1.02 0-1.41zm-1.03 5.49-2.12-2.12 2.44-2.44 2.12 2.12z",
|
||||
iconColor: "white",
|
||||
iconBackgroundColor: "red",
|
||||
originalIcon: "",
|
||||
fillGradient: ["#FF0000", "#FF7F00", "#FFFF00", "#00FF00", "#0000FF", "#4B0082", "#8A2BE2"],
|
||||
},
|
||||
communication: {
|
||||
icon: "M9.89516 7.71433H8.60945V5.1429H9.89516V7.71433ZM9.89516 10.2858H8.60945V9.00004H9.89516V10.2858ZM14.3952 2.57147H4.10944C3.76845 2.57147 3.44143 2.70693 3.20031 2.94805C2.95919 3.18917 2.82373 3.51619 2.82373 3.85719V15.4286L5.39516 12.8572H14.3952C14.7362 12.8572 15.0632 12.7217 15.3043 12.4806C15.5454 12.2395 15.6809 11.9125 15.6809 11.5715V3.85719C15.6809 3.14361 15.1023 2.57147 14.3952 2.57147Z",
|
||||
iconColor: "white",
|
||||
iconBackgroundColor: "#8acc3f",
|
||||
originalIcon: "",
|
||||
fillGradient: ["#8acc3f", "#459622"],
|
||||
},
|
||||
cases: {
|
||||
icon: "M11 3C6.58 3 3 4.79 3 7C3 9.21 6.58 11 11 11C15.42 11 19 9.21 19 7C19 4.79 15.42 3 11 3ZM3 9V12C3 14.21 6.58 16 11 16C15.42 16 19 14.21 19 12V9C19 11.21 15.42 13 11 13C6.58 13 3 11.21 3 9ZM3 14V17C3 19.21 6.58 21 11 21C12.41 21 13.79 20.81 15 20.46V17.46C13.79 17.81 12.41 18 11 18C6.58 18 3 16.21 3 14ZM20 14V17H17V19H20V22H22V19H25V17H22V14",
|
||||
icon: "M15.6408 8.39233H18.0922V10.0287H15.6408V8.39233ZM0.115234 8.39233H2.56663V10.0287H0.115234V8.39233ZM9.92083 0.21051V2.66506H8.28656V0.21051H9.92083ZM3.31839 2.25596L5.05889 4.00687L3.89856 5.16051L2.15807 3.42596L3.31839 2.25596ZM13.1485 3.99869L14.8808 2.25596L16.0493 3.42596L14.3088 5.16051L13.1485 3.99869ZM9.10369 4.30142C10.404 4.30142 11.651 4.81863 12.5705 5.73926C13.4899 6.65989 14.0065 7.90854 14.0065 9.21051C14.0065 11.0269 13.0178 12.6141 11.5551 13.4651V14.9378C11.5551 15.1548 11.469 15.3629 11.3158 15.5163C11.1625 15.6698 10.9547 15.756 10.738 15.756H7.46943C7.25271 15.756 7.04487 15.6698 6.89163 15.5163C6.73839 15.3629 6.6523 15.1548 6.6523 14.9378V13.4651C5.18963 12.6141 4.2009 11.0269 4.2009 9.21051C4.2009 7.90854 4.71744 6.65989 5.63689 5.73926C6.55635 4.81863 7.80339 4.30142 9.10369 4.30142ZM10.738 16.5741V17.3923C10.738 17.6093 10.6519 17.8174 10.4986 17.9709C10.3454 18.1243 10.1375 18.2105 9.92083 18.2105H8.28656C8.06984 18.2105 7.862 18.1243 7.70876 17.9709C7.55552 17.8174 7.46943 17.6093 7.46943 17.3923V16.5741H10.738ZM8.28656 14.1196H9.92083V12.3769C11.3345 12.0169 12.3722 10.7323 12.3722 9.21051C12.3722 8.34253 12.0279 7.5101 11.4149 6.89634C10.8019 6.28259 9.97056 5.93778 9.10369 5.93778C8.23683 5.93778 7.40546 6.28259 6.79249 6.89634C6.17953 7.5101 5.83516 8.34253 5.83516 9.21051C5.83516 10.7323 6.87292 12.0169 8.28656 12.3769V14.1196Z",
|
||||
iconColor: "white",
|
||||
iconBackgroundColor: "#8acc3f",
|
||||
originalIcon: "",
|
||||
@@ -1318,10 +1335,10 @@ const Workflows = (props) => {
|
||||
width: "100%",
|
||||
color: "white",
|
||||
padding: "12px 12px 0px 15px",
|
||||
borderRadius: 5,
|
||||
display: "flex",
|
||||
boxSizing: "border-box",
|
||||
position: "relative",
|
||||
borderRadius: theme.palette.borderRadius,
|
||||
backgroundColor: theme.palette.surfaceColor,
|
||||
};
|
||||
|
||||
@@ -3423,9 +3440,14 @@ const Workflows = (props) => {
|
||||
}
|
||||
|
||||
if (data.app_name.toLowerCase() === "shuffle tools") {
|
||||
data.large_image = theme.palette.defaultImage;
|
||||
//data.large_image = theme.palette.defaultImage
|
||||
}
|
||||
|
||||
if (data.app_name.toLowerCase() === "integration framework") {
|
||||
console.log("Skipping: ", data.app_name)
|
||||
return null
|
||||
}
|
||||
|
||||
const returnData =
|
||||
<span key={index} style={{ zIndex: 10 }}>
|
||||
<IconButton
|
||||
|
||||
Reference in New Issue
Block a user