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/versions.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/versions.js')
-rw-r--r-- | apps/files_versions/js/versions.js | 193 |
1 files changed, 0 insertions, 193 deletions
diff --git a/apps/files_versions/js/versions.js b/apps/files_versions/js/versions.js deleted file mode 100644 index e86bb4c3307..00000000000 --- a/apps/files_versions/js/versions.js +++ /dev/null @@ -1,193 +0,0 @@ -/* - * Copyright (c) 2014 - * - * This file is licensed under the Affero General Public License version 3 - * or later. - * - * See the COPYING-README file. - * - */ - -/* global scanFiles, escapeHTML, formatDate */ -$(document).ready(function(){ - - // TODO: namespace all this as OCA.FileVersions - - if ($('#isPublic').val()){ - // no versions actions in public mode - // beware of https://github.com/owncloud/core/issues/4545 - // as enabling this might hang Chrome - return; - } - - if (OCA.Files) { - // Add versions button to 'files/index.php' - OCA.Files.fileActions.register( - 'file', - 'Versions', - OC.PERMISSION_UPDATE, - function() { - // Specify icon for hitory button - return OC.imagePath('core','actions/history'); - }, function(filename, context){ - // Action to perform when clicked - if (scanFiles.scanning){return;}//workaround to prevent additional http request block scanning feedback - - var file = context.dir.replace(/(?!<=\/)$|\/$/, '/' + filename); - var createDropDown = true; - // Check if drop down is already visible for a different file - if (($('#dropdown').length > 0) ) { - if ( $('#dropdown').hasClass('drop-versions') && file == $('#dropdown').data('file')) { - createDropDown = false; - } - $('#dropdown').slideUp(OC.menuSpeed); - $('#dropdown').remove(); - $('tr').removeClass('mouseOver'); - } - - if(createDropDown === true) { - createVersionsDropdown(filename, file, context.fileList); - } - }, t('files_versions', 'Versions') - ); - } - - $(document).on("click", 'span[class="revertVersion"]', function() { - var revision = $(this).attr('id'); - var file = $(this).attr('value'); - revertFile(file, revision); - }); - -}); - -function revertFile(file, revision) { - - $.ajax({ - type: 'GET', - url: OC.linkTo('files_versions', 'ajax/rollbackVersion.php'), - dataType: 'json', - data: {file: file, revision: revision}, - async: false, - success: function(response) { - if (response.status === 'error') { - OC.Notification.show( t('files_version', 'Failed to revert {file} to revision {timestamp}.', {file:file, timestamp:formatDate(revision * 1000)}) ); - } else { - $('#dropdown').slideUp(OC.menuSpeed, function() { - $('#dropdown').closest('tr').find('.modified:first').html(relative_modified_date(revision)); - $('#dropdown').remove(); - $('tr').removeClass('mouseOver'); - }); - } - } - }); - -} - -function goToVersionPage(url){ - window.location.assign(url); -} - -function createVersionsDropdown(filename, files, fileList) { - - var start = 0; - var fileEl; - - var html = '<div id="dropdown" class="drop drop-versions" data-file="'+escapeHTML(files)+'">'; - html += '<div id="private">'; - html += '<ul id="found_versions">'; - html += '</ul>'; - html += '</div>'; - html += '<input type="button" value="'+ t('files_versions', 'More versions...') + '" name="show-more-versions" id="show-more-versions" style="display: none;" />'; - - if (filename) { - fileEl = fileList.findFileEl(filename); - fileEl.addClass('mouseOver'); - $(html).appendTo(fileEl.find('td.filename')); - } else { - $(html).appendTo($('thead .share')); - } - - getVersions(start); - start = start + 5; - - $("#show-more-versions").click(function() { - //get more versions - getVersions(start); - start = start + 5; - }); - - function getVersions(start) { - $.ajax({ - type: 'GET', - url: OC.filePath('files_versions', 'ajax', 'getVersions.php'), - dataType: 'json', - data: {source: files, start: start}, - async: false, - success: function(result) { - var versions = result.data.versions; - if (result.data.endReached === true) { - $("#show-more-versions").css("display", "none"); - } else { - $("#show-more-versions").css("display", "block"); - } - if (versions) { - $.each(versions, function(index, row) { - addVersion(row); - }); - } else { - $('<div style="text-align:center;">'+ t('files_versions', 'No other versions available') + '</div>').appendTo('#dropdown'); - } - $('#found_versions').change(function() { - var revision = parseInt($(this).val()); - revertFile(files, revision); - }); - } - }); - } - - function addVersion( revision ) { - var title = formatDate(revision.version*1000); - var name ='<span class="versionDate" title="' + title + '">' + revision.humanReadableTimestamp + '</span>'; - - var path = OC.filePath('files_versions', '', 'download.php'); - - var preview = '<img class="preview" src="'+revision.preview+'"/>'; - - var download ='<a href="' + path + "?file=" + encodeURIComponent(files) + '&revision=' + revision.version + '">'; - download+='<img'; - download+=' src="' + OC.imagePath('core', 'actions/download') + '"'; - download+=' name="downloadVersion" />'; - download+=name; - download+='</a>'; - - var revert='<span class="revertVersion"'; - revert+=' id="' + revision.version + '">'; - revert+='<img'; - revert+=' src="' + OC.imagePath('core', 'actions/history') + '"'; - revert+=' name="revertVersion"'; - revert+='/>'+t('files_versions', 'Restore')+'</span>'; - - var version=$('<li/>'); - version.attr('value', revision.version); - version.html(preview + download + revert); - // add file here for proper name escaping - version.find('span.revertVersion').attr('value', files); - - version.appendTo('#found_versions'); - } - - $('#dropdown').slideDown(1000); -} - -$(this).click( - function(event) { - if ($('#dropdown').has(event.target).length === 0 && $('#dropdown').hasClass('drop-versions')) { - $('#dropdown').slideUp(OC.menuSpeed, function() { - $('#dropdown').remove(); - $('tr').removeClass('mouseOver'); - }); - } - - - } -); |