diff --git a/src/js/src/bookmark/app.html b/src/js/src/bookmark/app.html
index 2b6de96..dd5409c 100644
--- a/src/js/src/bookmark/app.html
+++ b/src/js/src/bookmark/app.html
@@ -32,11 +32,11 @@
diff --git a/src/js/src/bookmark/main.js b/src/js/src/bookmark/main.js
index 099e205..777df6c 100644
--- a/src/js/src/bookmark/main.js
+++ b/src/js/src/bookmark/main.js
@@ -24,19 +24,19 @@
})();
- const handle = buttonHandlers.call({});
+ const handle = buttonHandlers({});
function Control(elemental) {
- if(elemental instanceof Element) {
- this.element = elemental;
+ if (elemental instanceof Element) {
+ this.element = elemental;
} else {
this.element = document.querySelector(elemental);
}
}
Control.prototype = {
set onClick(handler) {
- if(Array.isArray(handler)) {
- for(const listener of handler ) {
+ if (Array.isArray(handler)) {
+ for (const listener of handler) {
this.element.addEventListener("click", listener);
}
} else {
@@ -64,26 +64,39 @@
const fileChooser = new Control("#openReal");
fileChooser.onChange = handle.openReal;
+ const saveSvgLink = new Control("#saveSvgLink");
+ saveSvgLink.onClick = (event) => {
+ event.preventDefault();
+ alert("クリックは無効です");
+ };
+
+ const saveCsvLink = new Control("#saveCsvLink");
+ saveCsvLink.onClick = (event) => {
+ event.preventDefault();
+ alert("クリックは無効です");
+ };
+
+
const bars = document.querySelectorAll("div.top-bar,div.bottom-bar");
bars.forEach((elem) => {
const bar = new Control(elem);
bar.onClick = toggle;
});
- function buttonHandlers() {
+ function buttonHandlers(result) {
const nameOf = {
csv: "favorite.csv",
svg: "result.svg"
}
- this.appendCard = handleAppendCardButton;
- this.deleteCard = handleDeleteCardButton;
- this.export = handleExportButton;
- this.open = handleOpenButton;
- this.generate = handleGenerateButton;
- this.loadCSV = handleLoadCsvButton;
- this.save = handleSaveButton;
- this.openReal = handleOpenReal;
- return this;
+ result.appendCard = handleAppendCardButton;
+ result.deleteCard = handleDeleteCardButton;
+ result.export = handleExportButton;
+ result.open = handleOpenButton;
+ result.generate = handleGenerateButton;
+ result.loadCSV = handleLoadCsvButton;
+ result.save = handleSaveButton;
+ result.openReal = handleOpenReal;
+ return result;
function handleGenerateButton(event) {
if (event.target.id != "generate") {
@@ -98,14 +111,18 @@
const parser = new DOMParser();
const doc = parser.parseFromString(xml, "application/xml");
- const svgAttr = doc.documentElement.attributes;
- for(const attr of svgAttr) {
+ const svgAttr = doc.documentElement.attributes;
+ for (const attr of svgAttr) {
canvas.setAttribute(attr.name, attr.value);
}
canvas.setAttribute("overflow", "scroll")
canvas.innerHTML = doc.documentElement.innerHTML
+ const serializer = new XMLSerializer();
+ const serializedSvg = serializer.serializeToString(doc);
+
+ setDownloadLink(document.querySelector("#saveSvgLink"), serializedSvg, "image/svg+xml;charset=utf-8", nameOf.svg);
}).catch(err => {
console.log(err)
});
@@ -210,11 +227,19 @@
const addedCard = bigbrother.nextElementSibling;
- new nodeValues().write(addedCard, node)
+ new nodeValues().write(addedCard, node);
+ setSaveCsvLink();
}
function deleteCard(card) {
card.parentNode.removeChild(card);
+ setSaveCsvLink();
+ }
+
+ function setSaveCsvLink() {
+ const csv = card2csv();
+ const saveCsvLink = document.querySelector("#saveCsvLink");
+ setDownloadLink(saveCsvLink, csv, "text/csv;charset=UTF-8", "favorite.csv");
}
function csv2card(csv) {
@@ -405,17 +430,22 @@
return dataUri;
}
- function download(text, mimeType, name,) {
- const save = document.querySelector("#savelink");
+ function setDownloadLink(anchor, text, mimeType, name) {
+ const link = anchor;
const dataUri = text2DataUriScheme(text, mimeType);
- save.setAttribute("href", dataUri);
- save.setAttribute("download", name);
- setTimeout(() => {
- save.click();
- save.setAttribute("href", "");
- save.setAttribute("download", "");
- }, 50);
+ link.setAttribute("href", dataUri);
+ link.setAttribute("download", name);
+ }
+
+ function download(text, mimeType, name,) {
+
+ const save = document.querySelector("#savelink");
+ setDownloadLink(save, text, mimeType, name);
+
+ save.click();
+ save.setAttribute("href", "");
+ save.setAttribute("download", "");
}
}
})()