allow trash backends to overwrite the tooltip for trash items
Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
parent
2169c26195
commit
ce433637da
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -79,6 +79,10 @@ abstract class AbstractTrash implements ITrash {
|
||||||
return $this->data->getOriginalLocation();
|
return $this->data->getOriginalLocation();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getTitle(): string {
|
||||||
|
return $this->data->getTitle();
|
||||||
|
}
|
||||||
|
|
||||||
public function delete() {
|
public function delete() {
|
||||||
$this->trashManager->removeItem($this->data);
|
$this->trashManager->removeItem($this->data);
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,8 @@ interface ITrash {
|
||||||
|
|
||||||
public function getOriginalLocation(): string;
|
public function getOriginalLocation(): string;
|
||||||
|
|
||||||
|
public function getTitle(): string;
|
||||||
|
|
||||||
public function getDeletionTime(): int;
|
public function getDeletionTime(): int;
|
||||||
|
|
||||||
public function getSize();
|
public function getSize();
|
||||||
|
|
|
@ -37,6 +37,7 @@ class PropfindPlugin extends ServerPlugin {
|
||||||
const TRASHBIN_FILENAME = '{http://nextcloud.org/ns}trashbin-filename';
|
const TRASHBIN_FILENAME = '{http://nextcloud.org/ns}trashbin-filename';
|
||||||
const TRASHBIN_ORIGINAL_LOCATION = '{http://nextcloud.org/ns}trashbin-original-location';
|
const TRASHBIN_ORIGINAL_LOCATION = '{http://nextcloud.org/ns}trashbin-original-location';
|
||||||
const TRASHBIN_DELETION_TIME = '{http://nextcloud.org/ns}trashbin-deletion-time';
|
const TRASHBIN_DELETION_TIME = '{http://nextcloud.org/ns}trashbin-deletion-time';
|
||||||
|
const TRASHBIN_TITLE = '{http://nextcloud.org/ns}trashbin-title';
|
||||||
|
|
||||||
/** @var Server */
|
/** @var Server */
|
||||||
private $server;
|
private $server;
|
||||||
|
@ -70,6 +71,10 @@ class PropfindPlugin extends ServerPlugin {
|
||||||
return $node->getOriginalLocation();
|
return $node->getOriginalLocation();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$propFind->handle(self::TRASHBIN_TITLE, function () use ($node) {
|
||||||
|
return $node->getTitle();
|
||||||
|
});
|
||||||
|
|
||||||
$propFind->handle(self::TRASHBIN_DELETION_TIME, function () use ($node) {
|
$propFind->handle(self::TRASHBIN_DELETION_TIME, function () use ($node) {
|
||||||
return $node->getDeletionTime();
|
return $node->getDeletionTime();
|
||||||
});
|
});
|
||||||
|
|
|
@ -75,4 +75,6 @@ interface ITrashItem extends FileInfo {
|
||||||
* @since 15.0.0
|
* @since 15.0.0
|
||||||
*/
|
*/
|
||||||
public function getUser(): IUser;
|
public function getUser(): IUser;
|
||||||
|
|
||||||
|
public function getTitle(): string;
|
||||||
}
|
}
|
||||||
|
|
|
@ -173,4 +173,8 @@ class TrashItem implements ITrashItem {
|
||||||
public function getExtension(): string {
|
public function getExtension(): string {
|
||||||
return $this->fileInfo->getExtension();
|
return $this->fileInfo->getExtension();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getTitle(): string {
|
||||||
|
return $this->getOriginalLocation();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
var FILENAME_PROP = '{http://nextcloud.org/ns}trashbin-filename'
|
var FILENAME_PROP = '{http://nextcloud.org/ns}trashbin-filename'
|
||||||
var DELETION_TIME_PROP = '{http://nextcloud.org/ns}trashbin-deletion-time'
|
var DELETION_TIME_PROP = '{http://nextcloud.org/ns}trashbin-deletion-time'
|
||||||
var TRASHBIN_ORIGINAL_LOCATION = '{http://nextcloud.org/ns}trashbin-original-location'
|
var TRASHBIN_ORIGINAL_LOCATION = '{http://nextcloud.org/ns}trashbin-original-location'
|
||||||
|
var TRASHBIN_TITLE = '{http://nextcloud.org/ns}trashbin-title'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a file name in the format filename.d12345 to the real file name.
|
* Convert a file name in the format filename.d12345 to the real file name.
|
||||||
|
@ -45,32 +46,33 @@
|
||||||
}
|
}
|
||||||
FileList.prototype = _.extend({}, OCA.Files.FileList.prototype,
|
FileList.prototype = _.extend({}, OCA.Files.FileList.prototype,
|
||||||
/** @lends OCA.Trashbin.FileList.prototype */ {
|
/** @lends OCA.Trashbin.FileList.prototype */ {
|
||||||
id: 'trashbin',
|
id: 'trashbin',
|
||||||
appName: t('files_trashbin', 'Deleted files'),
|
appName: t('files_trashbin', 'Deleted files'),
|
||||||
/** @type {OC.Files.Client} */
|
/** @type {OC.Files.Client} */
|
||||||
client: null,
|
client: null,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
initialize: function() {
|
initialize: function() {
|
||||||
this.client.addFileInfoParser(function(response, data) {
|
this.client.addFileInfoParser(function(response, data) {
|
||||||
var props = response.propStat[0].properties
|
var props = response.propStat[0].properties
|
||||||
var path = props[TRASHBIN_ORIGINAL_LOCATION]
|
var path = props[TRASHBIN_ORIGINAL_LOCATION]
|
||||||
return {
|
var title = props[TRASHBIN_TITLE]
|
||||||
displayName: props[FILENAME_PROP],
|
return {
|
||||||
mtime: parseInt(props[DELETION_TIME_PROP], 10) * 1000,
|
displayName: props[FILENAME_PROP],
|
||||||
hasPreview: true,
|
mtime: parseInt(props[DELETION_TIME_PROP], 10) * 1000,
|
||||||
path: path,
|
hasPreview: true,
|
||||||
extraData: path
|
path: path,
|
||||||
}
|
extraData: title
|
||||||
})
|
}
|
||||||
|
})
|
||||||
|
|
||||||
var result = OCA.Files.FileList.prototype.initialize.apply(this, arguments)
|
var result = OCA.Files.FileList.prototype.initialize.apply(this, arguments)
|
||||||
this.$el.find('.undelete').click('click', _.bind(this._onClickRestoreSelected, this))
|
this.$el.find('.undelete').click('click', _.bind(this._onClickRestoreSelected, this))
|
||||||
|
|
||||||
this.setSort('mtime', 'desc')
|
this.setSort('mtime', 'desc')
|
||||||
/**
|
/**
|
||||||
* Override crumb making to add "Deleted Files" entry
|
* Override crumb making to add "Deleted Files" entry
|
||||||
* and convert files with ".d" extensions to a more
|
* and convert files with ".d" extensions to a more
|
||||||
* user friendly name.
|
* user friendly name.
|
||||||
|
@ -252,7 +254,7 @@
|
||||||
* Returns list of webdav properties to request
|
* Returns list of webdav properties to request
|
||||||
*/
|
*/
|
||||||
_getWebdavProperties: function() {
|
_getWebdavProperties: function() {
|
||||||
return [FILENAME_PROP, DELETION_TIME_PROP, TRASHBIN_ORIGINAL_LOCATION].concat(this.filesClient.getPropfindProperties())
|
return [FILENAME_PROP, DELETION_TIME_PROP, TRASHBIN_ORIGINAL_LOCATION, TRASHBIN_TITLE].concat(this.filesClient.getPropfindProperties())
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue