* Called when any file folder is clicked * @param {MouseEvent} e * @param {"contextmenu"} [isContextMenu]
(e, isContextMenu)
| 776 | * @param {"contextmenu"} [isContextMenu] |
| 777 | */ |
| 778 | function handleClick(e, isContextMenu) { |
| 779 | /** |
| 780 | * @type {HTMLElement} |
| 781 | */ |
| 782 | const $el = e.target; |
| 783 | |
| 784 | if (isSelectionMode) { |
| 785 | const checkbox = $el.closest(".tile")?.querySelector(".input-checkbox"); |
| 786 | if (checkbox && !$el.closest(".selection-header")) { |
| 787 | checkbox.checked = !checkbox.checked; |
| 788 | const url = $el |
| 789 | .closest(".tile") |
| 790 | .querySelector("data-url").textContent; |
| 791 | if (checkbox.checked) { |
| 792 | selectedItems.add(url); |
| 793 | } else { |
| 794 | selectedItems.delete(url); |
| 795 | } |
| 796 | const $count = $content.querySelector(".selection-count"); |
| 797 | updateSelectionCount($count); |
| 798 | } |
| 799 | return; |
| 800 | } |
| 801 | |
| 802 | let action = $el.getAttribute("action") || $el.dataset.action; |
| 803 | if (!action) return; |
| 804 | |
| 805 | let url = $el.dataset.url; |
| 806 | let name = $el.dataset.name || $el.getAttribute("name"); |
| 807 | const idOpenDoc = $el.hasAttribute("open-doc"); |
| 808 | const uuid = $el.getAttribute("uuid"); |
| 809 | const type = $el.getAttribute("type"); |
| 810 | const storageType = $el.getAttribute("storageType"); |
| 811 | const home = $el.getAttribute("home"); |
| 812 | const isDir = ["dir", "directory", "folder"].includes(type); |
| 813 | |
| 814 | if (!url) { |
| 815 | const $url = $el.get("data-url"); |
| 816 | if ($url) { |
| 817 | url = $url.textContent; |
| 818 | } |
| 819 | } |
| 820 | |
| 821 | if (storageType === "notification") { |
| 822 | switch (uuid) { |
| 823 | case "addstorage": |
| 824 | addStorage(); |
| 825 | break; |
| 826 | |
| 827 | default: |
| 828 | break; |
| 829 | } |
| 830 | return; |
| 831 | } |
| 832 | |
| 833 | if (!url && action === "open" && isDir && !idOpenDoc && !isContextMenu) { |
| 834 | loader.hide(); |
| 835 | util.addPath(name, uuid).then((res) => { |
no test coverage detected