You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

165 lines
4.6 KiB

document.addEventListener("DOMContentLoaded", function () {
const svgFile = document.getElementById("fileInput");
// Event listener for file selection
svgFile.addEventListener("change", function (event) {
const file = event.target.files[0];
if (file) {
handleDotFileUpload(file);
}
});
const textFile = document.getElementById("prismModelInput");
textFile.addEventListener("change", function (event) {
const file = event.target.files[0];
if (file) {
handleCodeFileUpload(file);
}
});
const specs = document.getElementById("specificationsInput");
specs.addEventListener("change", function (event) {
const file = event.target.files[0];
if (file) {
handleSpecsFileUpload(file);
}
});
// Function to handle file upload for editor
function handleCodeFileUpload(file) {
const reader = new FileReader();
reader.onload = function (event) {
const fileContents = event.target.result;
editor.setValue(fileContents);
};
reader.onerror = function (event) {
console.error("Error reading file:", event);
};
// Read the file as text
reader.readAsText(file);
}
// Function to handle file upload for specs
function handleSpecsFileUpload(file) {
const reader = new FileReader();
reader.onload = function (event) {
const fileContents = event.target.result;
editor2.setValue(fileContents);
};
reader.onerror = function (event) {
console.error("Error reading file:", event);
};
// Read the file as text
reader.readAsText(file);
}
// Function to handle file upload for SVG
function handleDotFileUpload(file) {
const reader = new FileReader();
reader.onload = function (event) {
const fileContents = event.target.result;
Viz.instance().then(function (viz) {
var svg = viz.renderSVGElement(fileContents);
graphFunction(svg);
updateTextarea(getActiveTabContent());
});
};
reader.onerror = function (event) {
console.error("Error reading file:", event);
};
// Read the file as text
reader.readAsText(file);
}
// Function for converting input to text format and automatically downloading the content
(function () {
// Declare a variable for the text file URL
var textFile = null;
// Function to create the text file and return its URL
var makeTextFile = function (text) {
// Create a Blob from the text
var data = new Blob([text], { type: "text/plain" });
// Revoke any previous object URL to avoid memory leaks
if (textFile !== null) {
window.URL.revokeObjectURL(textFile);
}
// Create a new object URL for the Blob and return it
textFile = window.URL.createObjectURL(data);
return textFile;
};
var downloadEditorText = document.getElementById("downloadFirstEditor");
var downloadSpecifications = document.getElementById("downloadSpecifications");
var input1 = editor;
var input2 = editor2;
// Add an event listener to the button for the click event
downloadEditorText.addEventListener("click", function () {
// Check if the editor is empty
if (!editor.getValue()) {
Toastify({
text: "Editor field empty",
duration: 3000,
close: true,
gravity: "top",
}).showToast();
} else {
// Create the text file URL from the input editor value
var fileURL = makeTextFile(input1.getValue());
// Create a temporary link element
var tempLink = document.createElement("a");
tempLink.setAttribute("download", "prism.txt");
// Set the link's href attribute to the file URL
tempLink.href = fileURL;
// Append the link to the document body (required for the click event to work in some browsers)
document.body.appendChild(tempLink);
tempLink.click();
// Remove the link from the document body after the download
document.body.removeChild(tempLink);
}
});
downloadSpecifications.addEventListener("click", function () {
if (!editor2.getValue()) {
Toastify({
text: "Specifications field empty",
duration: 3000,
close: true,
gravity: "top",
}).showToast();
} else {
var fileURL = makeTextFile(input2.getValue());
var tempLink = document.createElement("a");
tempLink.setAttribute("download", "specifications.txt");
tempLink.href = fileURL;
document.body.appendChild(tempLink);
tempLink.click();
document.body.removeChild(tempLink);
}
});
})();
});