summaryrefslogtreecommitdiffstats
path: root/apps/files_versions/js/versionmodel.js
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_versions/js/versionmodel.js')
-rw-r--r--apps/files_versions/js/versionmodel.js63
1 files changed, 29 insertions, 34 deletions
diff --git a/apps/files_versions/js/versionmodel.js b/apps/files_versions/js/versionmodel.js
index dc610fc2144..15469927475 100644
--- a/apps/files_versions/js/versionmodel.js
+++ b/apps/files_versions/js/versionmodel.js
@@ -8,50 +8,50 @@
*
*/
-(function() {
+/* global moment */
+
+(function () {
/**
* @memberof OCA.Versions
*/
var VersionModel = OC.Backbone.Model.extend({
+ sync: OC.Backbone.davSync,
+
+ davProperties: {
+ 'size': '{DAV:}getcontentlength',
+ 'mimetype': '{DAV:}getcontenttype',
+ 'timestamp': '{DAV:}getlastmodified',
+ },
/**
* Restores the original file to this revision
*/
- revert: function(options) {
+ 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);
+ var client = this.get('client');
+
+ return client.move('/versions/' + this.get('fileId') + '/' + this.get('id'), '/restore/target', true)
+ .done(function () {
+ if (options.success) {
+ options.success.call(options.context, model, {}, options);
+ }
+ model.trigger('revert', model, options);
+ })
+ .fail(function () {
+ if (options.error) {
+ options.error.call(options.context, model, {}, options);
}
- }
- });
+ model.trigger('error', model, {}, options);
+ });
},
- getFullPath: function() {
+ getFullPath: function () {
return this.get('fullPath');
},
- getPreviewUrl: function() {
+ getPreviewUrl: function () {
var url = OC.generateUrl('/apps/files_versions/preview');
var params = {
file: this.get('fullPath'),
@@ -60,13 +60,8 @@
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);
+ getDownloadUrl: function () {
+ return OC.linkToRemoteBase('dav') + '/versions/' + this.get('user') + '/versions/' + this.get('fileId') + '/' + this.get('id');
}
});