summaryrefslogtreecommitdiffstats
path: root/apps/files
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2014-07-10 17:25:46 +0200
committerMorris Jobke <morris.jobke@gmail.com>2014-07-14 11:54:05 +0200
commit1cc8be07018ec02cbc534a86f2cbb1b6a7326f97 (patch)
tree6e8c0912eb1b7a071b5d444bbea8bd53d03c6aa6 /apps/files
parentbae4579d60e8d3bde493df9f834ae00df08cecce (diff)
downloadnextcloud-server-1cc8be07018ec02cbc534a86f2cbb1b6a7326f97.tar.gz
nextcloud-server-1cc8be07018ec02cbc534a86f2cbb1b6a7326f97.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;
}