|
|
|
@@ -1198,96 +1198,89 @@ function prepareMenu() { |
|
|
|
const menubar = document.querySelector("#popout-menu"); |
|
|
|
|
|
|
|
[ |
|
|
|
[ |
|
|
|
{ |
|
|
|
name: "Show/hide sidebar", |
|
|
|
id: "menu-toggle-sidebar", |
|
|
|
icon: "fas fa-chevron-circle-down", |
|
|
|
rotates: true |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: "Fullscreen", |
|
|
|
id: "menu-fullscreen", |
|
|
|
icon: "fas fa-compress" |
|
|
|
} |
|
|
|
], |
|
|
|
[ |
|
|
|
{ |
|
|
|
name: "Clear", |
|
|
|
id: "menu-clear", |
|
|
|
icon: "fas fa-file" |
|
|
|
} |
|
|
|
], |
|
|
|
[ |
|
|
|
{ |
|
|
|
name: "Sort by height", |
|
|
|
id: "menu-order-height", |
|
|
|
icon: "fas fa-sort-numeric-up" |
|
|
|
} |
|
|
|
], |
|
|
|
[ |
|
|
|
{ |
|
|
|
name: "Permalink", |
|
|
|
id: "menu-permalink", |
|
|
|
icon: "fas fa-link" |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: "Export to clipboard", |
|
|
|
id: "menu-export", |
|
|
|
icon: "fas fa-share" |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: "Import from clipboard", |
|
|
|
id: "menu-import", |
|
|
|
icon: "fas fa-share" |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: "Save", |
|
|
|
id: "menu-save", |
|
|
|
icon: "fas fa-download" |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: "Load", |
|
|
|
id: "menu-load", |
|
|
|
icon: "fas fa-upload" |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: "Load Autosave", |
|
|
|
id: "menu-load-autosave", |
|
|
|
icon: "fas fa-redo" |
|
|
|
} |
|
|
|
] |
|
|
|
].forEach(group => { |
|
|
|
// we no longer group things, so I'll just ignore the groups |
|
|
|
// for now |
|
|
|
group.forEach(entry => { |
|
|
|
const buttonHolder = document.createElement("div"); |
|
|
|
buttonHolder.classList.add("menu-button-holder"); |
|
|
|
const button = document.createElement("button"); |
|
|
|
button.id = entry.id; |
|
|
|
button.classList.add("menu-button"); |
|
|
|
const icon = document.createElement("i"); |
|
|
|
icon.classList.add(...entry.icon.split(" ")); |
|
|
|
|
|
|
|
if (entry.rotates) { |
|
|
|
icon.classList.add("rotate-backward", "transitions"); |
|
|
|
} |
|
|
|
{ |
|
|
|
name: "Show/hide sidebar", |
|
|
|
id: "menu-toggle-sidebar", |
|
|
|
icon: "fas fa-chevron-circle-down", |
|
|
|
rotates: true |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: "Fullscreen", |
|
|
|
id: "menu-fullscreen", |
|
|
|
icon: "fas fa-compress" |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: "Clear", |
|
|
|
id: "menu-clear", |
|
|
|
icon: "fas fa-file" |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: "Sort by height", |
|
|
|
id: "menu-order-height", |
|
|
|
icon: "fas fa-sort-numeric-up" |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: "Permalink", |
|
|
|
id: "menu-permalink", |
|
|
|
icon: "fas fa-link" |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: "Export to clipboard", |
|
|
|
id: "menu-export", |
|
|
|
icon: "fas fa-share" |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: "Import from clipboard", |
|
|
|
id: "menu-import", |
|
|
|
icon: "fas fa-share" |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: "Save", |
|
|
|
id: "menu-save", |
|
|
|
icon: "fas fa-download" |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: "Load", |
|
|
|
id: "menu-load", |
|
|
|
icon: "fas fa-upload" |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: "Load Autosave", |
|
|
|
id: "menu-load-autosave", |
|
|
|
icon: "fas fa-redo" |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: "Add Image", |
|
|
|
id: "menu-add-image", |
|
|
|
icon: "fas fa-camera" |
|
|
|
} |
|
|
|
].forEach(entry => { |
|
|
|
const buttonHolder = document.createElement("div"); |
|
|
|
buttonHolder.classList.add("menu-button-holder"); |
|
|
|
const button = document.createElement("button"); |
|
|
|
button.id = entry.id; |
|
|
|
button.classList.add("menu-button"); |
|
|
|
const icon = document.createElement("i"); |
|
|
|
icon.classList.add(...entry.icon.split(" ")); |
|
|
|
|
|
|
|
const actionText = document.createElement("span"); |
|
|
|
actionText.innerText = entry.name; |
|
|
|
actionText.classList.add("menu-text"); |
|
|
|
if (entry.rotates) { |
|
|
|
icon.classList.add("rotate-backward", "transitions"); |
|
|
|
} |
|
|
|
|
|
|
|
const srText = document.createElement("span"); |
|
|
|
srText.classList.add("sr-only"); |
|
|
|
srText.innerText = entry.name; |
|
|
|
const actionText = document.createElement("span"); |
|
|
|
actionText.innerText = entry.name; |
|
|
|
actionText.classList.add("menu-text"); |
|
|
|
|
|
|
|
button.appendChild(icon); |
|
|
|
button.appendChild(srText); |
|
|
|
const srText = document.createElement("span"); |
|
|
|
srText.classList.add("sr-only"); |
|
|
|
srText.innerText = entry.name; |
|
|
|
|
|
|
|
buttonHolder.appendChild(button); |
|
|
|
buttonHolder.appendChild(actionText); |
|
|
|
menubar.appendChild(buttonHolder); |
|
|
|
}); |
|
|
|
button.appendChild(icon); |
|
|
|
button.appendChild(srText); |
|
|
|
|
|
|
|
buttonHolder.appendChild(button); |
|
|
|
buttonHolder.appendChild(actionText); |
|
|
|
menubar.appendChild(buttonHolder); |
|
|
|
}); |
|
|
|
|
|
|
|
if (checkHelpDate()) { |
|
|
|
@@ -1858,6 +1851,19 @@ document.addEventListener("DOMContentLoaded", () => { |
|
|
|
loadScene("autosave"); |
|
|
|
}); |
|
|
|
|
|
|
|
document.querySelector("#menu-add-image").addEventListener("click", e => { |
|
|
|
document.querySelector("#file-upload-picker").click(); |
|
|
|
}); |
|
|
|
|
|
|
|
document.querySelector("#file-upload-picker").addEventListener("change", e => { |
|
|
|
if (e.target.files.length > 0) { |
|
|
|
for (let i=0; i<e.target.files.length; i++) { |
|
|
|
customEntityFromFile(e.target.files[i]); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
document.addEventListener("paste", e => { |
|
|
|
|
|
|
|
let index = 0; |
|
|
|
|