diff options
Diffstat (limited to 'apps/files_versions/js')
-rw-r--r-- | apps/files_versions/js/filesplugin.js | 34 | ||||
-rw-r--r-- | apps/files_versions/js/versioncollection.js | 97 | ||||
-rw-r--r-- | apps/files_versions/js/versionmodel.js | 77 | ||||
-rw-r--r-- | apps/files_versions/js/versionstabview.js | 218 |
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; -})(); |