aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_versions/js
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_versions/js')
-rw-r--r--apps/files_versions/js/filesplugin.js34
-rw-r--r--apps/files_versions/js/versioncollection.js97
-rw-r--r--apps/files_versions/js/versionmodel.js77
-rw-r--r--apps/files_versions/js/versionstabview.js218
4 files changed, 0 insertions, 426 deletions
diff --git a/apps/files_versions/js/filesplugin.js b/apps/files_versions/js/filesplugin.js
deleted file mode 100644
index a9457c522d6..00000000000
--- a/apps/files_versions/js/filesplugin.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2015
- *
- * This file is licensed under the Affero General Public License version 3
- * or later.
- *
- * See the COPYING-README file.
- *
- */
-
-(function() {
- OCA.Versions = OCA.Versions || {};
-
- /**
- * @namespace
- */
- OCA.Versions.Util = {
- /**
- * Initialize the versions plugin.
- *
- * @param {OCA.Files.FileList} fileList file list to be extended
- */
- attach: function(fileList) {
- if (fileList.id === 'trashbin' || fileList.id === 'files.public') {
- return;
- }
-
- fileList.registerTabView(new OCA.Versions.VersionsTabView('versionsTabView', {order: -10}));
- }
- };
-})();
-
-OC.Plugins.register('OCA.Files.FileList', OCA.Versions.Util);
-
diff --git a/apps/files_versions/js/versioncollection.js b/apps/files_versions/js/versioncollection.js
deleted file mode 100644
index fdb12bae0a9..00000000000
--- a/apps/files_versions/js/versioncollection.js
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * 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
- };
- });
- this._endReached = result.data.endReached;
- this._currentIndex += results.length;
- return results;
- }
- });
-
- OCA.Versions = OCA.Versions || {};
-
- OCA.Versions.VersionCollection = VersionCollection;
-})();
-
diff --git a/apps/files_versions/js/versionmodel.js b/apps/files_versions/js/versionmodel.js
deleted file mode 100644
index dc610fc2144..00000000000
--- a/apps/files_versions/js/versionmodel.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * 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;
-})();
-
diff --git a/apps/files_versions/js/versionstabview.js b/apps/files_versions/js/versionstabview.js
deleted file mode 100644
index 0e17fff466a..00000000000
--- a/apps/files_versions/js/versionstabview.js
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Copyright (c) 2015
- *
- * This file is licensed under the Affero General Public License version 3
- * or later.
- *
- * See the COPYING-README file.
- *
- */
-
-(function() {
- var TEMPLATE_ITEM =
- '<li data-revision="{{timestamp}}">' +
- '<img class="preview" src="{{previewUrl}}"/>' +
- '<a href="{{downloadUrl}}" class="downloadVersion"><img src="{{downloadIconUrl}}" />' +
- '<span class="versiondate has-tooltip" title="{{formattedTimestamp}}">{{relativeTimestamp}}</span>' +
- '</a>' +
- '<a href="#" class="revertVersion" title="{{revertLabel}}"><img src="{{revertIconUrl}}" /></a>' +
- '</li>';
-
- var TEMPLATE =
- '<ul class="versions"></ul>' +
- '<div class="clear-float"></div>' +
- '<div class="empty hidden">{{emptyResultLabel}}</div>' +
- '<input type="button" class="showMoreVersions hidden" value="{{moreVersionsLabel}}"' +
- ' name="show-more-versions" id="show-more-versions" />' +
- '<div class="loading hidden" style="height: 50px"></div>';
-
- /**
- * @memberof OCA.Versions
- */
- var VersionsTabView = OCA.Files.DetailTabView.extend(
- /** @lends OCA.Versions.VersionsTabView.prototype */ {
- id: 'versionsTabView',
- className: 'tab versionsTabView',
-
- _template: null,
-
- $versionsContainer: null,
-
- events: {
- 'click .revertVersion': '_onClickRevertVersion',
- 'click .showMoreVersions': '_onClickShowMoreVersions'
- },
-
- initialize: function() {
- OCA.Files.DetailTabView.prototype.initialize.apply(this, arguments);
- this.collection = new OCA.Versions.VersionCollection();
- this.collection.on('request', this._onRequest, this);
- this.collection.on('sync', this._onEndRequest, this);
- this.collection.on('update', this._onUpdate, this);
- this.collection.on('error', this._onError, this);
- this.collection.on('add', this._onAddModel, this);
- },
-
- getLabel: function() {
- return t('files_versions', 'Versions');
- },
-
- nextPage: function() {
- if (this._loading || !this.collection.hasMoreResults()) {
- return;
- }
-
- if (this.collection.getFileInfo() && this.collection.getFileInfo().isDirectory()) {
- return;
- }
- this.collection.fetchNext();
- },
-
- _onClickShowMoreVersions: function(ev) {
- ev.preventDefault();
- this.nextPage();
- },
-
- _onClickRevertVersion: function(ev) {
- var self = this;
- var $target = $(ev.target);
- var fileInfoModel = this.collection.getFileInfo();
- var revision;
- if (!$target.is('li')) {
- $target = $target.closest('li');
- }
-
- ev.preventDefault();
- revision = $target.attr('data-revision');
-
- this.$el.find('.versions, .showMoreVersions').addClass('hidden');
-
- var versionModel = this.collection.get(revision);
- versionModel.revert({
- success: function() {
- // reset and re-fetch the updated collection
- self.$versionsContainer.empty();
- self.collection.setFileInfo(fileInfoModel);
- self.collection.reset([], {silent: true});
- self.collection.fetchNext();
-
- self.$el.find('.versions').removeClass('hidden');
-
- // update original model
- fileInfoModel.trigger('busy', fileInfoModel, false);
- fileInfoModel.set({
- size: versionModel.get('size'),
- mtime: versionModel.get('timestamp') * 1000,
- // temp dummy, until we can do a PROPFIND
- etag: versionModel.get('id') + versionModel.get('timestamp')
- });
- },
-
- error: function() {
- OC.Notification.showTemporary(
- t('files_version', 'Failed to revert {file} to revision {timestamp}.', {
- file: versionModel.getFullPath(),
- timestamp: OC.Util.formatDate(versionModel.get('timestamp') * 1000)
- })
- );
- }
- });
-
- // spinner
- this._toggleLoading(true);
- fileInfoModel.trigger('busy', fileInfoModel, true);
- },
-
- _toggleLoading: function(state) {
- this._loading = state;
- this.$el.find('.loading').toggleClass('hidden', !state);
- },
-
- _onRequest: function() {
- this._toggleLoading(true);
- this.$el.find('.showMoreVersions').addClass('hidden');
- },
-
- _onEndRequest: function() {
- this._toggleLoading(false);
- this.$el.find('.empty').toggleClass('hidden', !!this.collection.length);
- this.$el.find('.showMoreVersions').toggleClass('hidden', !this.collection.hasMoreResults());
- },
-
- _onAddModel: function(model) {
- var $el = $(this.itemTemplate(this._formatItem(model)));
- this.$versionsContainer.append($el);
- $el.find('.has-tooltip').tooltip();
- },
-
- template: function(data) {
- if (!this._template) {
- this._template = Handlebars.compile(TEMPLATE);
- }
-
- return this._template(data);
- },
-
- itemTemplate: function(data) {
- if (!this._itemTemplate) {
- this._itemTemplate = Handlebars.compile(TEMPLATE_ITEM);
- }
-
- return this._itemTemplate(data);
- },
-
- setFileInfo: function(fileInfo) {
- if (fileInfo) {
- this.render();
- this.collection.setFileInfo(fileInfo);
- this.collection.reset([], {silent: true});
- this.nextPage();
- } else {
- this.render();
- this.collection.reset();
- }
- },
-
- _formatItem: function(version) {
- var timestamp = version.get('timestamp') * 1000;
- return _.extend({
- formattedTimestamp: OC.Util.formatDate(timestamp),
- relativeTimestamp: OC.Util.relativeModifiedDate(timestamp),
- downloadUrl: version.getDownloadUrl(),
- downloadIconUrl: OC.imagePath('core', 'actions/download'),
- revertIconUrl: OC.imagePath('core', 'actions/history'),
- previewUrl: version.getPreviewUrl(),
- revertLabel: t('files_versions', 'Restore'),
- }, version.attributes);
- },
-
- /**
- * Renders this details view
- */
- render: function() {
- this.$el.html(this.template({
- emptyResultLabel: t('files_versions', 'No other versions available'),
- moreVersionsLabel: t('files_versions', 'More versions...')
- }));
- this.$el.find('.has-tooltip').tooltip();
- this.$versionsContainer = this.$el.find('ul.versions');
- this.delegateEvents();
- },
-
- /**
- * Returns true for files, false for folders.
- *
- * @return {bool} true for files, false for folders
- */
- canDisplay: function(fileInfo) {
- if (!fileInfo) {
- return false;
- }
- return !fileInfo.isDirectory();
- }
- });
-
- OCA.Versions = OCA.Versions || {};
-
- OCA.Versions.VersionsTabView = VersionsTabView;
-})();