Skip to content
Snippets Groups Projects
Commit 710d017e authored by Vincent Petry's avatar Vincent Petry
Browse files

Added more columns to ext storage list

Now using system mount and personal mount calls to get the relevant
mount points including backend information.
parent a47ef52a
No related branches found
No related tags found
No related merge requests found
......@@ -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;
},
......
......@@ -24,6 +24,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.
*
......@@ -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);
......
......@@ -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">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment