123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- /*
- * 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 VersionCollection = OC.Backbone.Collection.extend({
- model: OCA.Versions.VersionModel,
- /**
- * @var OCA.Files.FileInfoModel
- */
- _fileInfo: null,
- _endReached: false,
- _currentIndex: 0,
- url: function() {
- var url = OC.generateUrl('/apps/files_versions/ajax/getVersions.php');
- var query = {
- source: this._fileInfo.getFullPath(),
- start: this._currentIndex
- };
- return url + '?' + OC.buildQueryString(query);
- },
- setFileInfo: function(fileInfo) {
- this._fileInfo = fileInfo;
- // reset
- this._endReached = false;
- this._currentIndex = 0;
- },
- getFileInfo: function() {
- return this._fileInfo;
- },
- hasMoreResults: function() {
- return !this._endReached;
- },
- fetch: function(options) {
- if (!options || options.remove) {
- this._currentIndex = 0;
- }
- return OC.Backbone.Collection.prototype.fetch.apply(this, arguments);
- },
- /**
- * Fetch the next set of results
- */
- fetchNext: function() {
- if (!this.hasMoreResults()) {
- return null;
- }
- if (this._currentIndex === 0) {
- return this.fetch();
- }
- return this.fetch({remove: false});
- },
- reset: function() {
- this._currentIndex = 0;
- OC.Backbone.Collection.prototype.reset.apply(this, arguments);
- },
- parse: function(result) {
- var fullPath = this._fileInfo.getFullPath();
- var results = _.map(result.data.versions, function(version) {
- var revision = parseInt(version.version, 10);
- return {
- id: revision,
- name: version.name,
- fullPath: fullPath,
- timestamp: revision,
- size: version.size,
- mimetype: version.mimetype
- };
- });
- this._endReached = result.data.endReached;
- this._currentIndex += results.length;
- return results;
- }
- });
- OCA.Versions = OCA.Versions || {};
- OCA.Versions.VersionCollection = VersionCollection;
- })();
|