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.
This commit is contained in:
parent
e58dce2ee0
commit
dd7529da98
|
@ -291,14 +291,20 @@
|
||||||
if (actions['Delete']) {
|
if (actions['Delete']) {
|
||||||
var img = self.icons['Delete'];
|
var img = self.icons['Delete'];
|
||||||
var html;
|
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) {
|
if (img.call) {
|
||||||
img = img(file);
|
img = img(file);
|
||||||
}
|
}
|
||||||
if (typeof trashBinApp !== 'undefined' && trashBinApp) {
|
html = '<a href="#" original-title="' + escapeHTML(deleteTitle) + '" class="action delete delete-icon" />';
|
||||||
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" />';
|
|
||||||
}
|
|
||||||
var element = $(html);
|
var element = $(html);
|
||||||
element.data('action', actions['Delete']);
|
element.data('action', actions['Delete']);
|
||||||
element.on('click', {a: null, elem: parent, actionFunc: actions['Delete'].action}, actionHandler);
|
element.on('click', {a: null, elem: parent, actionFunc: actions['Delete'].action}, actionHandler);
|
||||||
|
|
|
@ -600,6 +600,10 @@
|
||||||
"data-permissions": fileData.permissions || this.getDirectoryPermissions()
|
"data-permissions": fileData.permissions || this.getDirectoryPermissions()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (fileData.mountType) {
|
||||||
|
tr.attr('data-mounttype', fileData.mountType);
|
||||||
|
}
|
||||||
|
|
||||||
if (!_.isUndefined(path)) {
|
if (!_.isUndefined(path)) {
|
||||||
tr.attr('data-path', path);
|
tr.attr('data-path', path);
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,6 +37,7 @@ class Helper
|
||||||
public static function determineIcon($file) {
|
public static function determineIcon($file) {
|
||||||
if($file['type'] === 'dir') {
|
if($file['type'] === 'dir') {
|
||||||
$icon = \OC_Helper::mimetypeIcon('dir');
|
$icon = \OC_Helper::mimetypeIcon('dir');
|
||||||
|
// TODO: move this part to the client side, using mountType
|
||||||
if ($file->isShared()) {
|
if ($file->isShared()) {
|
||||||
$icon = \OC_Helper::mimetypeIcon('dir-shared');
|
$icon = \OC_Helper::mimetypeIcon('dir-shared');
|
||||||
} elseif ($file->isMounted()) {
|
} elseif ($file->isMounted()) {
|
||||||
|
@ -125,6 +126,18 @@ class Helper
|
||||||
if (isset($i['is_share_mount_point'])) {
|
if (isset($i['is_share_mount_point'])) {
|
||||||
$entry['isShareMountPoint'] = $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;
|
return $entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -104,6 +104,7 @@
|
||||||
_makeFiles: function(data) {
|
_makeFiles: function(data) {
|
||||||
var files = _.map(data, function(fileData) {
|
var files = _.map(data, function(fileData) {
|
||||||
fileData.icon = OC.imagePath('core', 'filetypes/folder-external');
|
fileData.icon = OC.imagePath('core', 'filetypes/folder-external');
|
||||||
|
fileData.mountType = 'external';
|
||||||
return fileData;
|
return fileData;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -233,6 +233,7 @@
|
||||||
.each(function(data) {
|
.each(function(data) {
|
||||||
// convert the recipients map to a flat
|
// convert the recipients map to a flat
|
||||||
// array of sorted names
|
// array of sorted names
|
||||||
|
data.mountType = 'shared';
|
||||||
data.recipients = _.keys(data.recipients);
|
data.recipients = _.keys(data.recipients);
|
||||||
data.recipientsDisplayName = OCA.Sharing.Util.formatRecipients(
|
data.recipientsDisplayName = OCA.Sharing.Util.formatRecipients(
|
||||||
data.recipients,
|
data.recipients,
|
||||||
|
|
Loading…
Reference in New Issue