diff options
author | Vincent Petry <pvince81@owncloud.com> | 2015-08-12 17:29:54 +0200 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2015-08-12 17:29:54 +0200 |
commit | 997577cf7a5edc076c4039a7fc7c1c08c050a996 (patch) | |
tree | e44a81eb2ea465a80956c97709748e596e1afd76 /apps | |
parent | aac7c19ab7dd59772b3f6489013fe89540f7e5f2 (diff) | |
download | nextcloud-server-997577cf7a5edc076c4039a7fc7c1c08c050a996.tar.gz nextcloud-server-997577cf7a5edc076c4039a7fc7c1c08c050a996.zip |
Introduce FileInfoModel
FileInfoModel is a backbone model that will make it possible to track
changes and update views accordingly
Diffstat (limited to 'apps')
-rw-r--r-- | apps/files/index.php | 1 | ||||
-rw-r--r-- | apps/files/js/fileinfomodel.js | 71 |
2 files changed, 72 insertions, 0 deletions
diff --git a/apps/files/index.php b/apps/files/index.php index a41ec059b55..beae585cea4 100644 --- a/apps/files/index.php +++ b/apps/files/index.php @@ -41,6 +41,7 @@ OCP\Util::addscript('files', 'file-upload'); OCP\Util::addscript('files', 'jquery.iframe-transport'); OCP\Util::addscript('files', 'jquery.fileupload'); OCP\Util::addscript('files', 'jquery-visibility'); +OCP\Util::addscript('files', 'fileinfomodel'); OCP\Util::addscript('files', 'filesummary'); OCP\Util::addscript('files', 'breadcrumb'); OCP\Util::addscript('files', 'filelist'); diff --git a/apps/files/js/fileinfomodel.js b/apps/files/js/fileinfomodel.js new file mode 100644 index 00000000000..05060854fba --- /dev/null +++ b/apps/files/js/fileinfomodel.js @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2015 + * + * This file is licensed under the Affero General Public License version 3 + * or later. + * + * See the COPYING-README file. + * + */ + +(function(OC, OCA) { + + /** + * @class OC.Files.FileInfo + * @classdesc File information + * + * @param {Object} attributes file data + * @param {int} attributes.id file id + * @param {string} attributes.name file name + * @param {string} attributes.path path leading to the file, + * without the file name and with a leading slash + * @param {int} attributes.size size + * @param {string} attributes.mimetype mime type + * @param {string} attributes.icon icon URL + * @param {int} attributes.permissions permissions + * @param {Date} attributes.mtime modification time + * @param {string} attributes.etag etag + * @param {string} mountType mount type + * + * @since 8.2 + */ + var FileInfoModel = OC.Backbone.Model.extend({ + + initialize: function(data) { + if (!_.isUndefined(data.id)) { + data.id = parseInt(data.id, 10); + } + + // TODO: normalize path + data.path = data.path || ''; + data.name = data.name; + + data.mimetype = data.mimetype || 'application/octet-stream'; + }, + + /** + * Returns whether this file is a directory + * + * @return {boolean} true if this is a directory, false otherwise + */ + isDirectory: function() { + return this.get('mimetype') === 'httpd/unix-directory'; + }, + + /** + * Returns the full path to this file + * + * @return {string} full path + */ + getFullPath: function() { + return OC.joinPaths(this.get('path'), this.get('name')); + } + }); + + if (!OCA.Files) { + OCA.Files = {}; + } + OCA.Files.FileInfoModel = FileInfoModel; + +})(OC, OCA); + |