(folder)
| 497 | return p; |
| 498 | } |
| 499 | async function applyFolderCapabilities(folder) { |
| 500 | try { |
| 501 | const caps = await getFolderCapabilities(folder); |
| 502 | if (!caps) { disableAllFolderControls(); return; } |
| 503 | if (folder === window.currentFolder) window.currentFolderCaps = caps; |
| 504 | try { |
| 505 | window.dispatchEvent(new CustomEvent('folderCapsUpdated', { detail: { folder, caps } })); |
| 506 | } catch (e) { /* ignore */ } |
| 507 | const isRoot = (folder === 'root'); |
| 508 | setControlEnabled(document.getElementById('createFolderBtn'), !!caps.canCreate); |
| 509 | setControlEnabled(document.getElementById('moveFolderBtn'), !!caps.canMoveFolder); |
| 510 | setControlEnabled(document.getElementById('renameFolderBtn'), !isRoot && !!caps.canRename); |
| 511 | setControlEnabled(document.getElementById('colorFolderBtn'), !isRoot && !!caps.canEdit); |
| 512 | setControlEnabled(document.getElementById('deleteFolderBtn'), !isRoot && !!caps.canDeleteFolder); |
| 513 | setControlEnabled(document.getElementById('shareFolderBtn'), !isRoot && !!caps.canShareFolder); |
| 514 | } catch (e) { |
| 515 | disableAllFolderControls(); |
| 516 | } |
| 517 | } |
| 518 | // returns boolean whether user can view given folder |
| 519 | async function canViewFolder(folder) { |
| 520 | try { |
no test coverage detected