]> source.dussan.org Git - nextcloud-server.git/commitdiff
Added more columns to ext storage list
authorVincent Petry <pvince81@owncloud.com>
Fri, 6 Jun 2014 11:50:41 +0000 (13:50 +0200)
committerVincent Petry <pvince81@owncloud.com>
Fri, 6 Jun 2014 13:06:26 +0000 (15:06 +0200)
Now using system mount and personal mount calls to get the relevant
mount points including backend information.

apps/files_external/js/mountsfilelist.js
apps/files_external/lib/api.php
apps/files_external/templates/list.php

index fffe994268f1603211ac6a335e2685d5fdc3aa86..95b596bca8d6a265fa2b839a2ab68e418d20d5f1 100644 (file)
                _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;
                },
index d94dbcffc8f5be605afdda870360d65f33b3e95a..51c48427aa3ea70e00eaf49d6458dcdab8bdaae0 100644 (file)
@@ -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);
index 225616e8cf2464ccc835c9c2ac5ec49bce6e7b91..900a17be71790076c58618ce68c6f15ef2b28adc 100644 (file)
                                        <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">