-
Robin Leber authoredRobin Leber authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
naming.js 3.00 KiB
import { showCheck } from "./visualValidation";
import { appState } from "./state";
import { renamePipeNamesInCode } from "./pipeBinding";
export const namePipe = (instance) => {
let newPipeName;
const selectedPipe = window.selectedPipe;
const pipeWasNamedBefore = appState.getPipe(selectedPipe);
const allConnections = instance.getAllConnections();
const pipeHasConnection = allConnections.some(
(con) => con.sourceId === selectedPipe || con.targetId === selectedPipe
);
while (true) {
newPipeName = prompt("Please enter a pipe name:");
let nameExists = Array.from(appState.getState().pipes.values()).includes(
newPipeName
);
if (nameExists) {
alert("This name is already taken. Please enter another name.");
} else if (pipeHasConnection && pipeWasNamedBefore && newPipeName) {
if (
confirm(
"Changing the pipe name will adjust your code in the filter! All old pipe names will be replaced by the new one."
)
) {
const oldPipeName = appState.getPipe(selectedPipe);
const tagetIds = allConnections
.filter((con) => con.sourceId === selectedPipe)
.map((con) => con.targetId);
const sourceIds = allConnections
.filter((con) => con.targetId === selectedPipe)
.map((con) => con.sourceId);
const filterIDs = [...tagetIds, ...sourceIds];
const filterEditors = [];
filterIDs.forEach((id) => {
const codeEditorEl = document.getElementById(`codeEditor${id}`);
if (codeEditorEl) {
const editor = codeEditorEl.editor;
filterEditors.push(editor);
}
});
if (filterEditors.length !== 0) {
filterEditors.forEach((editor) =>
renamePipeNamesInCode(editor, oldPipeName, newPipeName)
);
}
break;
} else {
newPipeName = null;
break;
}
} else {
break;
}
}
if (window.selectedPipe && newPipeName) {
appState.addPipe(window.selectedPipe, newPipeName);
const spanToChange = document.querySelector(
`#${window.selectedPipe} #PipeName`
);
spanToChange.innerHTML = `${newPipeName}`;
showCheck(window.selectedPipe);
instance.repaintEverything();
}
};
export const nameFilter = (instance) => {
let newFilterName;
while (true) {
newFilterName = prompt("Please enter a filter name:");
const allFilterNames = document.querySelectorAll("#Diagram #FilterName");
let nodeArray = Array.from(allFilterNames);
let innerHTMLArray = nodeArray.map((node) => node.innerHTML);
const nameExists = innerHTMLArray.includes(newFilterName);
if (nameExists) {
alert("This name is already taken. Please enter another name.");
} else {
break;
}
}
if (window.selectedFilter && newFilterName) {
const spanToChange = document.querySelector(
`#${window.selectedFilter} #FilterName`
);
spanToChange.innerHTML = `${newFilterName}`;
instance.repaintEverything();
}
};