7ec83fc9fb
This makes it possible to also store custom properties passed through the data object like tags or shareOwner.
138 lines
2 KiB
JavaScript
138 lines
2 KiB
JavaScript
/*
|
|
* Copyright (c) 2015
|
|
*
|
|
* This file is licensed under the Affero General Public License version 3
|
|
* or later.
|
|
*
|
|
* See the COPYING-README file.
|
|
*
|
|
*/
|
|
|
|
(function(OC) {
|
|
|
|
/**
|
|
* @class OC.Files.FileInfo
|
|
* @classdesc File information
|
|
*
|
|
* @param {Object} data file data, see attributes for details
|
|
*
|
|
* @since 8.2
|
|
*/
|
|
var FileInfo = function(data) {
|
|
var self = this;
|
|
_.each(data, function(value, key) {
|
|
if (!_.isFunction(value)) {
|
|
self[key] = value;
|
|
}
|
|
});
|
|
|
|
if (!_.isUndefined(this.id)) {
|
|
this.id = parseInt(data.id, 10);
|
|
}
|
|
|
|
// TODO: normalize path
|
|
this.path = data.path || '';
|
|
|
|
if (this.type === 'dir') {
|
|
this.mimetype = 'httpd/unix-directory';
|
|
} else {
|
|
this.mimetype = this.mimetype || 'application/octet-stream';
|
|
}
|
|
|
|
if (!this.type) {
|
|
if (this.mimetype === 'httpd/unix-directory') {
|
|
this.type = 'dir';
|
|
} else {
|
|
this.type = 'file';
|
|
}
|
|
}
|
|
};
|
|
|
|
/**
|
|
* @memberof OC.Files
|
|
*/
|
|
FileInfo.prototype = {
|
|
/**
|
|
* File id
|
|
*
|
|
* @type int
|
|
*/
|
|
id: null,
|
|
|
|
/**
|
|
* File name
|
|
*
|
|
* @type String
|
|
*/
|
|
name: null,
|
|
|
|
/**
|
|
* Path leading to the file, without the file name,
|
|
* and with a leading slash.
|
|
*
|
|
* @type String
|
|
*/
|
|
path: null,
|
|
|
|
/**
|
|
* Mime type
|
|
*
|
|
* @type String
|
|
*/
|
|
mimetype: null,
|
|
|
|
/**
|
|
* Icon URL.
|
|
*
|
|
* Can be used to override the mime type icon.
|
|
*
|
|
* @type String
|
|
*/
|
|
icon: null,
|
|
|
|
/**
|
|
* File type. 'file' for files, 'dir' for directories.
|
|
*
|
|
* @type String
|
|
* @deprecated rely on mimetype instead
|
|
*/
|
|
type: null,
|
|
|
|
/**
|
|
* Permissions.
|
|
*
|
|
* @see OC#PERMISSION_ALL for permissions
|
|
* @type int
|
|
*/
|
|
permissions: null,
|
|
|
|
/**
|
|
* Modification time
|
|
*
|
|
* @type int
|
|
*/
|
|
mtime: null,
|
|
|
|
/**
|
|
* Etag
|
|
*
|
|
* @type String
|
|
*/
|
|
etag: null,
|
|
|
|
/**
|
|
* Mount type.
|
|
*
|
|
* One of null, "external-root", "shared" or "shared-root"
|
|
*
|
|
* @type string
|
|
*/
|
|
mountType: null
|
|
};
|
|
|
|
if (!OC.Files) {
|
|
OC.Files = {};
|
|
}
|
|
OC.Files.FileInfo = FileInfo;
|
|
})(OC);
|
|
|