diff options
author | Vincent Petry <pvince81@owncloud.com> | 2014-06-06 13:50:41 +0200 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2014-06-06 15:06:26 +0200 |
commit | 710d017eec7a97c1e58ef0cd4556555cf84b9b8f (patch) | |
tree | ebf8f42347da4c727926bd09774db61322c8bd42 | |
parent | a47ef52ae2958a08ff3aca272c73973eb74d20ed (diff) | |
download | nextcloud-server-710d017eec7a97c1e58ef0cd4556555cf84b9b8f.tar.gz nextcloud-server-710d017eec7a97c1e58ef0cd4556555cf84b9b8f.zip |
Added more columns to ext storage list
Now using system mount and personal mount calls to get the relevant
mount points including backend information.
-rw-r--r-- | apps/files_external/js/mountsfilelist.js | 10 | ||||
-rw-r--r-- | apps/files_external/lib/api.php | 61 | ||||
-rw-r--r-- | apps/files_external/templates/list.php | 6 |
3 files changed, 55 insertions, 22 deletions
diff --git a/apps/files_external/js/mountsfilelist.js b/apps/files_external/js/mountsfilelist.js index fffe994268f..95b596bca8d 100644 --- a/apps/files_external/js/mountsfilelist.js +++ b/apps/files_external/js/mountsfilelist.js @@ -29,8 +29,16 @@ _createRow: function(fileData) { // TODO: hook earlier and render the whole row here var $tr = OCA.Files.FileList.prototype._createRow.apply(this, arguments); + var $scopeColumn = $('<td></td>'); + var $backendColumn = $('<td></td>'); + var scopeText = t('files_external', 'Personal'); + if (fileData.scope === 'system') { + scopeText = t('files_external', 'System'); + } $tr.find('.filesize,.date').remove(); - $tr.find('td.filename').after('<td></td>'); + $scopeColumn.text(scopeText); + $backendColumn.text(fileData.backend); + $tr.find('td.filename').after($scopeColumn).after($backendColumn); $tr.find('td.filename input:checkbox').remove(); return $tr; }, diff --git a/apps/files_external/lib/api.php b/apps/files_external/lib/api.php index d94dbcffc8f..51c48427aa3 100644 --- a/apps/files_external/lib/api.php +++ b/apps/files_external/lib/api.php @@ -25,6 +25,39 @@ namespace OCA\Files\External; class Api { /** + * Formats the given mount config to a mount entry. + * + * @param bool $isSystemMount true for system mount, false + * for personal mount + * + * @return array entry + */ + private static function formatMount($mountConfig, $isSystemMount = false) { + // split user name from mount point + $path = dirname($mountConfig['mountpoint']); + if ($path === '.') { + $path = ''; + } + + $permissions = \OCP\PERMISSION_READ; + // personal mounts can be deleted + if (!$isSystemMount) { + $permissions |= \OCP\PERMISSION_DELETE; + } + + // TODO: add storageType, might need to use another OC_Mount_Config method + $entry = array( + 'name' => basename($mountConfig['mountpoint']), + 'path' => $path, + 'type' => 'dir', + 'backend' => $mountConfig['backend'], + 'scope' => ( $isSystemMount ? 'system' : 'personal' ), + 'permissions' => $permissions + ); + return $entry; + } + + /** * Returns the mount points visible for this user. * * @param array $params @@ -33,30 +66,16 @@ class Api { public static function getUserMounts($params) { $entries = array(); $user = \OC_User::getUser(); - $mounts = \OC_Mount_Config::getAbsoluteMountPoints($user); - foreach ($mounts as $mountPoint => $config) { - // split user name from mount point - $parts = explode('/', ltrim($mountPoint, '/')); - array_shift($parts); // use name - array_shift($parts); // files - $mountPoint = implode('/', $parts); + $personalMounts = \OC_Mount_Config::getPersonalMountPoints(); + $systemMounts = \OC_Mount_Config::getSystemMountPoints(); - $path = dirname($mountPoint); - if ($path === '.') { - $path = ''; - } - - // TODO: give delete permissions if mount type is personal - $permissions = \OCP\PERMISSION_READ; + foreach ($systemMounts as $mountConfig) { + $entries[] = self::formatMount($mountConfig, true); + } - // TODO: add storageType, might need to use another OC_Mount_Config method - $entries[] = array( - 'name' => basename($mountPoint), - 'path' => $path, - 'type' => 'dir', - 'permissions' => $permissions - ); + foreach ($personalMounts as $mountConfig) { + $entries[] = self::formatMount($mountConfig, false); } return new \OC_OCS_Result($entries); diff --git a/apps/files_external/templates/list.php b/apps/files_external/templates/list.php index 225616e8cf2..900a17be717 100644 --- a/apps/files_external/templates/list.php +++ b/apps/files_external/templates/list.php @@ -16,6 +16,12 @@ <a class="name sort columntitle" data-sort="name"><span><?php p($l->t( 'Name' )); ?></span><span class="sort-indicator"></span></a> </div> </th> + <th id="headerBackend" class="hidden column-backend"> + <a class="backend sort columntitle" data-sort="backend"><span><?php p($l->t('Storage type')); ?></span><span class="sort-indicator"></span></a> + </th> + <th id="headerScope" class="hidden column-size"> + <a class="scope sort columntitle" data-sort="scope"><span><?php p($l->t('Scope')); ?></span><span class="sort-indicator"></span></a> + </th> </tr> </thead> <tbody id="fileList"> |