summaryrefslogtreecommitdiffstats
path: root/apps/files
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2014-07-10 17:25:46 +0200
committerVincent Petry <pvince81@owncloud.com>2014-07-14 10:36:04 +0200
commitdd7529da9853dff43b8e81685f3a1c7151bc9e24 (patch)
tree96b10553284bb0424dac027b8af18bc117bc3513 /apps/files
parente58dce2ee0768248f3ef4ee9070af5432a97f541 (diff)
downloadnextcloud-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/files')
-rw-r--r--apps/files/js/fileactions.js16
-rw-r--r--apps/files/js/filelist.js4
-rw-r--r--apps/files/lib/helper.php13
3 files changed, 28 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;
}