mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-18 22:33:33 +00:00
You can now download modified IDSes via the webapp
This commit is contained in:
@@ -7,6 +7,7 @@ var xs = 'http://www.w3.org/2001/XMLSchema';
|
|||||||
|
|
||||||
class IDSContainer extends HTMLElement {
|
class IDSContainer extends HTMLElement {
|
||||||
connectedCallback() {
|
connectedCallback() {
|
||||||
|
this.filename = 'specifications.ids';
|
||||||
this.ids = null;
|
this.ids = null;
|
||||||
this.containerId = crypto.randomUUID();
|
this.containerId = crypto.randomUUID();
|
||||||
}
|
}
|
||||||
@@ -805,7 +806,7 @@ class IDSLoader extends HTMLElement {
|
|||||||
var inputElement = document.createElement("input");
|
var inputElement = document.createElement("input");
|
||||||
inputElement.idsLoader = this;
|
inputElement.idsLoader = this;
|
||||||
inputElement.type = "file";
|
inputElement.type = "file";
|
||||||
inputElement.accept = '.xml';
|
inputElement.accept = '.ids,.xml';
|
||||||
inputElement.multiple = false;
|
inputElement.multiple = false;
|
||||||
inputElement.addEventListener("change", this.loadFile)
|
inputElement.addEventListener("change", this.loadFile)
|
||||||
inputElement.dispatchEvent(new MouseEvent("click"));
|
inputElement.dispatchEvent(new MouseEvent("click"));
|
||||||
@@ -813,6 +814,8 @@ class IDSLoader extends HTMLElement {
|
|||||||
|
|
||||||
loadFile(e) {
|
loadFile(e) {
|
||||||
var self = this.idsLoader;
|
var self = this.idsLoader;
|
||||||
|
var container = self.closest('ids-container')
|
||||||
|
container.filename = this.files[0].name;
|
||||||
var read = new FileReader();
|
var read = new FileReader();
|
||||||
read.readAsBinaryString(this.files[0]);
|
read.readAsBinaryString(this.files[0]);
|
||||||
read.onloadend = function() {
|
read.onloadend = function() {
|
||||||
@@ -844,6 +847,18 @@ class IDSSave extends HTMLElement {
|
|||||||
click() {
|
click() {
|
||||||
var xmlString = new XMLSerializer().serializeToString(this.closest('ids-container').ids);
|
var xmlString = new XMLSerializer().serializeToString(this.closest('ids-container').ids);
|
||||||
console.log(xmlString);
|
console.log(xmlString);
|
||||||
|
var container = this.closest('ids-container')
|
||||||
|
this.download(container.filename, xmlString);
|
||||||
|
}
|
||||||
|
|
||||||
|
download(filename, text) {
|
||||||
|
var element = document.createElement('a');
|
||||||
|
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
|
||||||
|
element.setAttribute('download', filename);
|
||||||
|
element.style.display = 'none';
|
||||||
|
document.body.appendChild(element);
|
||||||
|
element.click();
|
||||||
|
document.body.removeChild(element);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user