diff options
author | Vincent Petry <pvince81@owncloud.com> | 2014-07-10 17:25:46 +0200 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2014-07-14 10:36:04 +0200 |
commit | dd7529da9853dff43b8e81685f3a1c7151bc9e24 (patch) | |
tree | 96b10553284bb0424dac027b8af18bc117bc3513 /apps | |
parent | e58dce2ee0768248f3ef4ee9070af5432a97f541 (diff) | |
download | nextcloud-server-dd7529da9853dff43b8e81685f3a1c7151bc9e24.tar.gz nextcloud-server-dd7529da9853dff43b8e81685f3a1c7151bc9e24.zip |
Added mountType attribute and adapted Delete action text
Added mountType attribute for files/folder to indicated whether they are
regular, external or shared.
The client side then adapts the "Delete" action hint text based on this
information.
Only the mount roots must have the delete icon hint adapted.
To make this detectable on the client side, the mountType can now
be null, "shared", "shared-root", "external" or "external-root".
This also gives room to icon customization on the client side.
Diffstat (limited to 'apps')
-rw-r--r-- | apps/files/js/fileactions.js | 16 | ||||
-rw-r--r-- | apps/files/js/filelist.js | 4 | ||||
-rw-r--r-- | apps/files/lib/helper.php | 13 | ||||
-rw-r--r-- | apps/files_external/js/mountsfilelist.js | 1 | ||||
-rw-r--r-- | apps/files_sharing/js/sharedfilelist.js | 1 |
5 files changed, 30 insertions, 5 deletions
diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index fd038765ea5..4aefd61a19a 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -291,14 +291,20 @@ if (actions['Delete']) { var img = self.icons['Delete']; var html; + var mountType = $tr.attr('data-mounttype'); + var deleteTitle = t('files', 'Delete'); + if (mountType === 'external-root') { + deleteTitle = t('files', 'Disconnect storage'); + } else if (mountType === 'shared-root') { + deleteTitle = t('files', 'Unshare'); + } else if (fileList.id === 'trashbin') { + deleteTitle = t('files', 'Delete permanently'); + } + if (img.call) { img = img(file); } - if (typeof trashBinApp !== 'undefined' && trashBinApp) { - html = '<a href="#" original-title="' + t('files', 'Delete permanently') + '" class="action delete delete-icon" />'; - } else { - html = '<a href="#" original-title="' + t('files', 'Delete') + '" class="action delete delete-icon" />'; - } + html = '<a href="#" original-title="' + escapeHTML(deleteTitle) + '" class="action delete delete-icon" />'; var element = $(html); element.data('action', actions['Delete']); element.on('click', {a: null, elem: parent, actionFunc: actions['Delete'].action}, actionHandler); diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 96436d33a2c..61e73b7bebc 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -600,6 +600,10 @@ "data-permissions": fileData.permissions || this.getDirectoryPermissions() }); + if (fileData.mountType) { + tr.attr('data-mounttype', fileData.mountType); + } + if (!_.isUndefined(path)) { tr.attr('data-path', path); } diff --git a/apps/files/lib/helper.php b/apps/files/lib/helper.php index b84b6c06d30..be0992b1985 100644 --- a/apps/files/lib/helper.php +++ b/apps/files/lib/helper.php @@ -37,6 +37,7 @@ class Helper public static function determineIcon($file) { if($file['type'] === 'dir') { $icon = \OC_Helper::mimetypeIcon('dir'); + // TODO: move this part to the client side, using mountType if ($file->isShared()) { $icon = \OC_Helper::mimetypeIcon('dir-shared'); } elseif ($file->isMounted()) { @@ -125,6 +126,18 @@ class Helper if (isset($i['is_share_mount_point'])) { $entry['isShareMountPoint'] = $i['is_share_mount_point']; } + $mountType = null; + if ($i->isShared()) { + $mountType = 'shared'; + } else if ($i->isMounted()) { + $mountType = 'external'; + } + if ($mountType !== null) { + if ($i->getInternalPath() === '') { + $mountType .= '-root'; + } + $entry['mountType'] = $mountType; + } return $entry; } diff --git a/apps/files_external/js/mountsfilelist.js b/apps/files_external/js/mountsfilelist.js index 0f61f78aac8..20bf0f785db 100644 --- a/apps/files_external/js/mountsfilelist.js +++ b/apps/files_external/js/mountsfilelist.js @@ -104,6 +104,7 @@ _makeFiles: function(data) { var files = _.map(data, function(fileData) { fileData.icon = OC.imagePath('core', 'filetypes/folder-external'); + fileData.mountType = 'external'; return fileData; }); diff --git a/apps/files_sharing/js/sharedfilelist.js b/apps/files_sharing/js/sharedfilelist.js index 861bbaff5de..d5c65a6c681 100644 --- a/apps/files_sharing/js/sharedfilelist.js +++ b/apps/files_sharing/js/sharedfilelist.js @@ -233,6 +233,7 @@ .each(function(data) { // convert the recipients map to a flat // array of sorted names + data.mountType = 'shared'; data.recipients = _.keys(data.recipients); data.recipientsDisplayName = OCA.Sharing.Util.formatRecipients( data.recipients, |