()
| 168 | } |
| 169 | |
| 170 | function refreshEncryptedFolderIconsInList() { |
| 171 | // Folder strip icons |
| 172 | try { |
| 173 | const strip = document.getElementById('folderStripContainer'); |
| 174 | if (strip) { |
| 175 | strip.querySelectorAll('.folder-item').forEach(item => { |
| 176 | const folder = item.getAttribute('data-folder') || ''; |
| 177 | if (!folder) return; |
| 178 | const iconSpan = item.querySelector('.folder-svg'); |
| 179 | if (!iconSpan) return; |
| 180 | const kind = iconSpan.dataset.kind || 'empty'; |
| 181 | iconSpan.innerHTML = folderSVG(kind, { encrypted: isEncryptedForFolderIcon(folder) }); |
| 182 | }); |
| 183 | } |
| 184 | } catch (e) { /* best effort */ } |
| 185 | |
| 186 | // Inline folder rows |
| 187 | try { |
| 188 | document.querySelectorAll('#fileList tr.folder-row[data-folder], #fileListSecondary tr.folder-row[data-folder]').forEach(row => { |
| 189 | const folder = row.getAttribute('data-folder') || ''; |
| 190 | if (!folder) return; |
| 191 | const iconSpan = row.querySelector('.folder-svg'); |
| 192 | if (!iconSpan) return; |
| 193 | const kind = iconSpan.dataset.kind || 'empty'; |
| 194 | iconSpan.innerHTML = folderSVG(kind, { encrypted: isEncryptedForFolderIcon(folder) }); |
| 195 | }); |
| 196 | } catch (e) { /* best effort */ } |
| 197 | } |
| 198 | |
| 199 | function decodeHtmlEntities(str) { |
| 200 | if (!str) return ""; |
no test coverage detected