Skip to content
Snippets Groups Projects
Commit 38136c8b authored by Robin Leber's avatar Robin Leber
Browse files

FIX: pipe name uniqueness and editable

parent 4507bd30
No related branches found
No related tags found
No related merge requests found
......@@ -2,12 +2,13 @@ import { v4 as uuidv4 } from "uuid";
import { createEndpoints } from "./endpoints";
import { appState } from "./state";
import { showWarning } from "./visualValidation";
import { shortenId } from "./id";
export const duplicatePipe = (instance) => {
const selectedPipe = document.getElementById(window.selectedPipe);
const newPipe = selectedPipe.cloneNode(true);
newPipe.id = uuidv4();
newPipe.id = shortenId(uuidv4());
const top = selectedPipe.offsetTop + 36;
const topStr = top.toString() + "px";
......@@ -30,7 +31,7 @@ export const duplicateFilter = (instance) => {
const selectedFilter = document.getElementById(window.selectedFilter);
const newFilter = selectedFilter.cloneNode(true);
newFilter.id = uuidv4();
newFilter.id = shortenId(uuidv4());
const top = selectedFilter.offsetTop + 48;
const topStr = top.toString() + "px";
......@@ -50,25 +51,31 @@ export const duplicateFilter = (instance) => {
};
export const extendPipe = () => {
let newPipeName = prompt("Bitte geben Sie einen Pipe Namen ein:");
const pipeToName = document.getElementById(window.selectedPipe);
if (pipeToName) {
var textIndex = pipeToName.innerHTML.indexOf("Queue");
textIndex === -1
? (textIndex = pipeToName.innerHTML.indexOf("Topic"))
: null;
if (textIndex !== -1) {
var beforeQueue = pipeToName.innerHTML.slice(
0,
textIndex + "Queue".length
);
var afterQueue = pipeToName.innerHTML.slice(textIndex + "Queue".length);
let newPipeName;
while (true) {
newPipeName = prompt("Bitte geben Sie einen Pipe Namen ein:");
var newContent = beforeQueue + `<br> "${newPipeName}"` + afterQueue;
let nameExists = Array.from(appState.getState().pipes.values()).includes(
newPipeName
);
pipeToName.innerHTML = newContent;
if (nameExists) {
alert(
"Dieser Name ist bereits vergeben. Bitte geben Sie einen anderen Namen ein."
);
} else {
break;
}
appState.addPipe(pipeToName.id, newPipeName);
}
if (window.selectedPipe && newPipeName) {
appState.addPipe(window.selectedPipe, newPipeName);
const spanToChange = document.querySelector(
`#${window.selectedPipe} #PipeName`
);
spanToChange.innerHTML = `"${newPipeName}"`;
console.log(appState.getState().pipes);
}
};
export const shortenId = (uuid) => {
const startsWithNumber = /^\d/.test(uuid);
if (startsWithNumber) {
uuid = uuid.replace(/^\d+/, "");
}
return uuid;
};
......@@ -27,6 +27,8 @@
<h5>PIPES</h5>
<div class="Pipe" data-type="Default">
Queue
<br />
<span id="PipeName"></span>
<i
id="Warning"
class="fa-sharp fa-solid fa-xl fa-circle-exclamation"
......
......@@ -14,6 +14,7 @@ import {
} from "./functions/api";
import { getScaleValues } from "./functions/scaling";
import { showAllWarning } from "./functions/visualValidation";
import { shortenId } from "./functions/id";
function App() {
const instance = jsPlumb.getInstance({});
......@@ -61,7 +62,7 @@ function App() {
// Diagramm DIV droppable machen
$("#Diagram").droppable({
drop: function (event, ui) {
var id = uuidv4();
var id = shortenId(uuidv4());
var clone = $(ui.helper).clone(true);
clone.attr("id", id);
clone.appendTo(this);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment