From 31340b8be944fbf86237c10bff87b5ca3a2ffa8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Thu, 31 Jan 2019 11:22:46 +0100 Subject: [PATCH] Add icon for resource type and icons for folder/file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- .../Collaboration/Resources/ResourceProvider.php | 13 ++++++++++++- apps/files_sharing/src/files_sharing.js | 3 ++- core/css/icons.scss | 4 ++++ core/src/OCP/collaboration.js | 2 +- 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/apps/files/lib/Collaboration/Resources/ResourceProvider.php b/apps/files/lib/Collaboration/Resources/ResourceProvider.php index 155dcbd7b1..1a6089b485 100644 --- a/apps/files/lib/Collaboration/Resources/ResourceProvider.php +++ b/apps/files/lib/Collaboration/Resources/ResourceProvider.php @@ -48,6 +48,13 @@ class ResourceProvider implements IProvider { $this->urlGenerator = $urlGenerator; } + private function getNode(IResource $resource): ?Node { + if (isset($this->nodes[(int) $resource->getId()])) { + return $this->nodes[(int) $resource->getId()]; + } + return null; + } + /** * Get the display name of a resource * @@ -94,7 +101,11 @@ class ResourceProvider implements IProvider { * @since 15.0.0 */ public function getIconClass(IResource $resource): string { - return 'icon-folder'; + $node = $this->getNode($resource); + if ($node && $node->getMimetype() === 'httpd/unix-directory') { + return 'icon-files-dark'; + } + return 'icon-filetype-file'; } /** diff --git a/apps/files_sharing/src/files_sharing.js b/apps/files_sharing/src/files_sharing.js index 4e90afaf94..54bf71d8a1 100644 --- a/apps/files_sharing/src/files_sharing.js +++ b/apps/files_sharing/src/files_sharing.js @@ -22,7 +22,8 @@ window.OCP.Collaboration.registerType('files', { }); }, /** used in "Link to a {typeString}" */ - typeString: t('files_sharing', 'file') + typeString: t('files_sharing', 'file'), + typeIconClass: 'icon-files-dark' }); window.OCA.Sharing = OCA.Sharing; diff --git a/core/css/icons.scss b/core/css/icons.scss index 9a95001709..d1d3d91094 100644 --- a/core/css/icons.scss +++ b/core/css/icons.scss @@ -384,6 +384,10 @@ img, object, video, button, textarea, input, select, div[contenteditable='true'] @include icon-color('text', 'filetypes', $color-black, 1, true); } +.icon-filetype-file { + @include icon-color('file', 'filetypes', $color-black, 1, true); +} + @include icon-black-white('folder', 'filetypes', 1, true); .icon-filetype-folder { @include icon-color('folder', 'filetypes', $color-black, 1, true); diff --git a/core/src/OCP/collaboration.js b/core/src/OCP/collaboration.js index 54b580406e..96a20bffc9 100644 --- a/core/src/OCP/collaboration.js +++ b/core/src/OCP/collaboration.js @@ -49,7 +49,7 @@ export default { return Object.keys(types); }, getIcon(type) { - return types[type].icon || ''; + return types[type].typeIconClass || ''; }, getLabel(type) { return t('files_sharing', 'Link to a {label}', { label: types[type].typeString || type }, 1)