diff options
Diffstat (limited to 'apps/files/src')
-rw-r--r-- | apps/files/src/sidebar.js | 8 | ||||
-rw-r--r-- | apps/files/src/views/Sidebar.vue | 37 |
2 files changed, 40 insertions, 5 deletions
diff --git a/apps/files/src/sidebar.js b/apps/files/src/sidebar.js index b508e8aee20..2f6b898f328 100644 --- a/apps/files/src/sidebar.js +++ b/apps/files/src/sidebar.js @@ -31,11 +31,13 @@ Vue.use(VueClipboard) Vue.prototype.t = t window.addEventListener('DOMContentLoaded', () => { + // Init Sidebar Service - if (window.OCA && window.OCA.Files) { - Object.assign(window.OCA.Files, { Sidebar: new Sidebar() }) - Object.assign(window.OCA.Files.Sidebar, { Tab }) + if (!window.OCA.Files) { + window.OCA.Files = {} } + Object.assign(window.OCA.Files, { Sidebar: new Sidebar() }) + Object.assign(window.OCA.Files.Sidebar, { Tab }) // Make sure we have a proper layout if (document.getElementById('content')) { diff --git a/apps/files/src/views/Sidebar.vue b/apps/files/src/views/Sidebar.vue index 47a2174b8cb..1758b510b17 100644 --- a/apps/files/src/views/Sidebar.vue +++ b/apps/files/src/views/Sidebar.vue @@ -199,6 +199,8 @@ export default { defaultAction() { return this.fileInfo && OCA.Files && OCA.Files.App && OCA.Files.App.fileList + && OCA.Files.App.fileList.fileActions + && OCA.Files.App.fileList.fileActions.getDefaultFileAction && OCA.Files.App.fileList .fileActions.getDefaultFileAction(this.fileInfo.mimetype, this.fileInfo.type, OC.PERMISSION_READ) @@ -239,7 +241,7 @@ export default { }) } catch (error) { this.error = t('files', 'Error while loading the file data') - console.error('Error while loading the file data') + console.error('Error while loading the file data', error) } } } @@ -272,11 +274,42 @@ export default { } }) }, + getPreviewIfAny(fileInfo) { if (fileInfo.hasPreview) { return OC.generateUrl(`/core/preview?fileId=${fileInfo.id}&x=${screen.width}&y=${screen.height}&a=true`) } - return OCA.Files.App.fileList._getIconUrl(fileInfo) + return this.getIconUrl(fileInfo) + }, + + /** + * Copied from https://github.com/nextcloud/server/blob/16e0887ec63591113ee3f476e0c5129e20180cde/apps/files/js/filelist.js#L1377 + * TODO: We also need this as a standalone library + * + * @param {Object} fileInfo the fileinfo + * @returns {string} Url to the icon for mimeType + */ + getIconUrl(fileInfo) { + var mimeType = fileInfo.mimetype || 'application/octet-stream' + if (mimeType === 'httpd/unix-directory') { + // use default folder icon + if (fileInfo.mountType === 'shared' || fileInfo.mountType === 'shared-root') { + return OC.MimeType.getIconUrl('dir-shared') + } else if (fileInfo.mountType === 'external-root') { + return OC.MimeType.getIconUrl('dir-external') + } else if (fileInfo.mountType !== undefined && fileInfo.mountType !== '') { + return OC.MimeType.getIconUrl('dir-' + fileInfo.mountType) + } else if (fileInfo.shareTypes && ( + fileInfo.shareTypes.indexOf(OC.Share.SHARE_TYPE_LINK) > -1 + || fileInfo.shareTypes.indexOf(OC.Share.SHARE_TYPE_EMAIL) > -1) + ) { + return OC.MimeType.getIconUrl('dir-public') + } else if (fileInfo.shareTypes && fileInfo.shareTypes.length > 0) { + return OC.MimeType.getIconUrl('dir-shared') + } + return OC.MimeType.getIconUrl('dir') + } + return OC.MimeType.getIconUrl(mimeType) }, tabComponent(tab) { |