diff options
author | Vincent Petry <pvince81@owncloud.com> | 2015-09-01 19:29:55 +0200 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2015-09-03 16:47:24 +0200 |
commit | 310d79728447ecf69f18d0b61a527397bd961888 (patch) | |
tree | 805b2a0a40ed5ce7acb58afb90ad7c18e760e037 /apps/files_versions/js/versionmodel.js | |
parent | e9e42fff61a922f11a3b1014d810562537950b6a (diff) | |
download | nextcloud-server-310d79728447ecf69f18d0b61a527397bd961888.tar.gz nextcloud-server-310d79728447ecf69f18d0b61a527397bd961888.zip |
Add versions tab to files sidebar
- move versions to a tab in the files sidebar
- added mechanism to auto-update the row in the FileList whenever values
are set to the FileInfoModel given to the sidebar
- updated tags/favorite action to make use of that new mechanism
Diffstat (limited to 'apps/files_versions/js/versionmodel.js')
-rw-r--r-- | apps/files_versions/js/versionmodel.js | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/apps/files_versions/js/versionmodel.js b/apps/files_versions/js/versionmodel.js new file mode 100644 index 00000000000..dc610fc2144 --- /dev/null +++ b/apps/files_versions/js/versionmodel.js @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2015 + * + * This file is licensed under the Affero General Public License version 3 + * or later. + * + * See the COPYING-README file. + * + */ + +(function() { + /** + * @memberof OCA.Versions + */ + var VersionModel = OC.Backbone.Model.extend({ + + /** + * Restores the original file to this revision + */ + revert: function(options) { + options = options ? _.clone(options) : {}; + var model = this; + var file = this.getFullPath(); + var revision = this.get('timestamp'); + + $.ajax({ + type: 'GET', + url: OC.generateUrl('/apps/files_versions/ajax/rollbackVersion.php'), + dataType: 'json', + data: { + file: file, + revision: revision + }, + success: function(response) { + if (response.status === 'error') { + if (options.error) { + options.error.call(options.context, model, response, options); + } + model.trigger('error', model, response, options); + } else { + if (options.success) { + options.success.call(options.context, model, response, options); + } + model.trigger('revert', model, response, options); + } + } + }); + }, + + getFullPath: function() { + return this.get('fullPath'); + }, + + getPreviewUrl: function() { + var url = OC.generateUrl('/apps/files_versions/preview'); + var params = { + file: this.get('fullPath'), + version: this.get('timestamp') + }; + return url + '?' + OC.buildQueryString(params); + }, + + getDownloadUrl: function() { + var url = OC.generateUrl('/apps/files_versions/download.php'); + var params = { + file: this.get('fullPath'), + revision: this.get('timestamp') + }; + return url + '?' + OC.buildQueryString(params); + } + }); + + OCA.Versions = OCA.Versions || {}; + + OCA.Versions.VersionModel = VersionModel; +})(); + |