diff options
author | Jan-Christoph Borchardt <hey@jancborchardt.net> | 2013-09-12 07:48:00 -0700 |
---|---|---|
committer | Jan-Christoph Borchardt <hey@jancborchardt.net> | 2013-09-12 07:48:00 -0700 |
commit | c7ca86799b2608609ead7ecd2d84d0bbd47c6548 (patch) | |
tree | 2c6ad385dba6a944bf396dbb69e32d4fb7074c7e | |
parent | b7205d97d7797daf057d47a5a07d2bad3b0db4da (diff) | |
parent | 9d661eab23f9ba284e4a5060b5de5d868b330d45 (diff) | |
download | nextcloud-server-c7ca86799b2608609ead7ecd2d84d0bbd47c6548.tar.gz nextcloud-server-c7ca86799b2608609ead7ecd2d84d0bbd47c6548.zip |
Merge pull request #4816 from owncloud/fixing-723-master
Fixing 723 master
-rw-r--r-- | apps/files/ajax/list.php | 1 | ||||
-rw-r--r-- | apps/files/index.php | 1 | ||||
-rw-r--r-- | apps/files/lib/helper.php | 29 | ||||
-rw-r--r-- | apps/files/templates/part.list.php | 23 | ||||
-rw-r--r-- | apps/files_sharing/public.php | 15 | ||||
-rw-r--r-- | apps/files_trashbin/index.php | 1 | ||||
-rw-r--r-- | lib/helper.php | 8 |
7 files changed, 56 insertions, 22 deletions
diff --git a/apps/files/ajax/list.php b/apps/files/ajax/list.php index c50e96b2429..14ed43cbb3a 100644 --- a/apps/files/ajax/list.php +++ b/apps/files/ajax/list.php @@ -34,6 +34,7 @@ if($doBreadcrumb) { $files = array(); foreach( \OC\Files\Filesystem::getDirectoryContent( $dir ) as $i ) { $i["date"] = OCP\Util::formatDate($i["mtime"] ); + $i['icon'] = \OCA\files\lib\Helper::determineIcon($i); $files[] = $i; } diff --git a/apps/files/index.php b/apps/files/index.php index f1e120c872c..4443bf5fde0 100644 --- a/apps/files/index.php +++ b/apps/files/index.php @@ -75,6 +75,7 @@ foreach ($content as $i) { } $i['directory'] = $dir; $i['isPreviewAvailable'] = \OCP\Preview::isMimeSupported($i['mimetype']); + $i['icon'] = \OCA\files\lib\Helper::determineIcon($i); $files[] = $i; } diff --git a/apps/files/lib/helper.php b/apps/files/lib/helper.php index 7135ef9f656..9170c6e3fc0 100644 --- a/apps/files/lib/helper.php +++ b/apps/files/lib/helper.php @@ -17,4 +17,33 @@ class Helper 'maxHumanFilesize' => $maxHumanFilesize, 'usedSpacePercent' => (int)$storageInfo['relative']); } + + public static function determineIcon($file) { + if($file['type'] === 'dir') { + $dir = $file['directory']; + $absPath = \OC\Files\Filesystem::getView()->getAbsolutePath($dir.'/'.$file['name']); + $mount = \OC\Files\Filesystem::getMountManager()->find($absPath); + if (!is_null($mount)) { + $sid = $mount->getStorageId(); + if (!is_null($sid)) { + $sid = explode(':', $sid); + if ($sid[0] === 'shared') { + return \OC_Helper::mimetypeIcon('dir-shared'); + } + if ($sid[0] !== 'local') { + return \OC_Helper::mimetypeIcon('dir-external'); + } + } + } + return \OC_Helper::mimetypeIcon('dir'); + } + + if($file['isPreviewAvailable']) { + $relativePath = substr($file['path'], 6); + return \OC_Helper::previewIcon($relativePath); + } + return \OC_Helper::mimetypeIcon($file['mimetype']); + } + + } diff --git a/apps/files/templates/part.list.php b/apps/files/templates/part.list.php index 4076c1bb331..9e1750faddf 100644 --- a/apps/files/templates/part.list.php +++ b/apps/files/templates/part.list.php @@ -1,7 +1,5 @@ <input type="hidden" id="disableSharing" data-status="<?php p($_['disableSharing']); ?>"> <?php foreach($_['files'] as $file): - //strlen('files/') => 6 - $relativePath = substr($file['path'], 6); // the bigger the file, the darker the shade of grey; megabytes*2 $simple_size_color = intval(160-$file['size']/(1024*1024)*2); if($simple_size_color<0) $simple_size_color = 0; @@ -22,26 +20,7 @@ <?php else: ?> <td class="filename svg" <?php endif; ?> - <?php if($file['type'] == 'dir'): ?> - style="background-image:url(<?php print_unescaped(OCP\mimetype_icon('dir')); ?>)" - <?php else: ?> - <?php if($_['isPublic']): ?> - <?php - $relativePath = substr($relativePath, strlen($_['sharingroot'])); - ?> - <?php if($file['isPreviewAvailable']): ?> - style="background-image:url(<?php print_unescaped(OCP\publicPreview_icon($relativePath, $_['sharingtoken'])); ?>)" - <?php else: ?> - style="background-image:url(<?php print_unescaped(OCP\mimetype_icon($file['mimetype'])); ?>)" - <?php endif; ?> - <?php else: ?> - <?php if($file['isPreviewAvailable']): ?> - style="background-image:url(<?php print_unescaped(OCP\preview_icon($relativePath)); ?>)" - <?php else: ?> - style="background-image:url(<?php print_unescaped(OCP\mimetype_icon($file['mimetype'])); ?>)" - <?php endif; ?> - <?php endif; ?> - <?php endif; ?> + style="background-image:url(<?php print_unescaped($file['icon']); ?>)" > <?php if(!isset($_['readonly']) || !$_['readonly']): ?> <input id="select-<?php p($file['fileid']); ?>" type="checkbox" /> diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php index ec6b4e815f8..ae3e27cab3f 100644 --- a/apps/files_sharing/public.php +++ b/apps/files_sharing/public.php @@ -19,6 +19,20 @@ function fileCmp($a, $b) { } } +function determineIcon($file, $sharingRoot, $sharingToken) { + // for folders we simply reuse the files logic + if($file['type'] == 'dir') { + return \OCA\files\lib\Helper::determineIcon($file); + } + + $relativePath = substr($file['path'], 6); + $relativePath = substr($relativePath, strlen($sharingRoot)); + if($file['isPreviewAvailable']) { + return OCP\publicPreview_icon($relativePath, $sharingToken); + } + return OCP\mimetype_icon($file['mimetype']); +} + if (isset($_GET['t'])) { $token = $_GET['t']; $linkItem = OCP\Share::getShareByToken($token); @@ -176,6 +190,7 @@ if (isset($path)) { } $i['directory'] = $getPath; $i['permissions'] = OCP\PERMISSION_READ; + $i['icon'] = determineIcon($i, $basePath, $token); $files[] = $i; } usort($files, "fileCmp"); diff --git a/apps/files_trashbin/index.php b/apps/files_trashbin/index.php index 0baeab1de97..d7eb143f9af 100644 --- a/apps/files_trashbin/index.php +++ b/apps/files_trashbin/index.php @@ -65,6 +65,7 @@ foreach ($result as $r) { } $i['permissions'] = OCP\PERMISSION_READ; $i['isPreviewAvailable'] = \OCP\Preview::isMimeSupported($r['mime']); + $i['icon'] = \OCA\files\lib\Helper::determineIcon($i); $files[] = $i; } diff --git a/lib/helper.php b/lib/helper.php index 5fb8fed3459..1f1ce8451c0 100644 --- a/lib/helper.php +++ b/lib/helper.php @@ -232,6 +232,14 @@ class OC_Helper { self::$mimetypeIcons[$mimetype] = OC::$WEBROOT . '/core/img/filetypes/folder.png'; return OC::$WEBROOT . '/core/img/filetypes/folder.png'; } + if ($mimetype === 'dir-shared') { + self::$mimetypeIcons[$mimetype] = OC::$WEBROOT . '/core/img/filetypes/folder-shared.png'; + return OC::$WEBROOT . '/core/img/filetypes/folder-shared.png'; + } + if ($mimetype === 'dir-external') { + self::$mimetypeIcons[$mimetype] = OC::$WEBROOT . '/core/img/filetypes/folder-external.png'; + return OC::$WEBROOT . '/core/img/filetypes/folder-external.png'; + } // Icon exists? if (file_exists(OC::$SERVERROOT . '/core/img/filetypes/' . $icon . '.png')) { |