diff options
author | Robin Appelman <icewind@owncloud.com> | 2012-05-17 02:16:33 +0200 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2012-05-17 02:16:33 +0200 |
commit | bfdb374a2c8287b4dea80696928d27aef96fa343 (patch) | |
tree | 492824ad438bba1e5677efea4a74b60e486655e0 /apps/files_versions | |
parent | 4ccfd27fa233ca737dbd10f65d680ed853e7efcf (diff) | |
download | nextcloud-server-bfdb374a2c8287b4dea80696928d27aef96fa343.tar.gz nextcloud-server-bfdb374a2c8287b4dea80696928d27aef96fa343.zip |
allow reverting file from history dropdown
Diffstat (limited to 'apps/files_versions')
-rw-r--r-- | apps/files_versions/ajax/getVersions.php | 12 | ||||
-rw-r--r-- | apps/files_versions/ajax/rollbackVersion.php | 28 | ||||
-rw-r--r-- | apps/files_versions/js/versions.js | 31 |
3 files changed, 29 insertions, 42 deletions
diff --git a/apps/files_versions/ajax/getVersions.php b/apps/files_versions/ajax/getVersions.php index 8ef17d5a25c..1d107c1bda0 100644 --- a/apps/files_versions/ajax/getVersions.php +++ b/apps/files_versions/ajax/getVersions.php @@ -1,7 +1,4 @@ <?php - -require_once('lib/base.php'); - OCP\JSON::checkAppEnabled('files_versions'); require_once('apps/files_versions/versions.php'); @@ -14,15 +11,8 @@ if( OCA_Versions\Storage::isversioned( $source ) ) { $count=5; //show the newest revisions $versions = OCA_Versions\Storage::getversions( $source, $count); - $versionsFormatted = array(); - - foreach ( $versions AS $version ) { - - $versionsFormatted[] = OCP\Util::formatDate( $version ); - - } - $versionsSorted = array_reverse( $versionsFormatted ); + $versionsSorted = array_reverse( $versions ); if ( !empty( $versionsSorted ) ) { OCP\JSON::encodedPrint($versionsSorted); diff --git a/apps/files_versions/ajax/rollbackVersion.php b/apps/files_versions/ajax/rollbackVersion.php index 3faaafe935d..127592f3b58 100644 --- a/apps/files_versions/ajax/rollbackVersion.php +++ b/apps/files_versions/ajax/rollbackVersion.php @@ -1,26 +1,18 @@ <?php -require_once('../../../lib/base.php'); OCP\JSON::checkAppEnabled('files_versions'); -require_once('../versions.php'); -$userDirectory = "/".OCP\USER::getUser()."/files"; - -$source = $_GET['source']; - -$source = strip_tags( $source ); - -echo "\n\n$source\n\n"; +require_once('apps/files_versions/versions.php'); -$revision = strtotime( $source ); - -echo "\n\n$revision\n\n"; - -if( OCA_Versions\Storage::isversioned( $source ) ) { +$userDirectory = "/".OCP\USER::getUser()."/files"; +$file = $_GET['file']; +$revision=(int)$_GET['revision']; - #\OCA_Versions\Storage::rollback( $source, $revision ); - +if( OCA_Versions\Storage::isversioned( $file ) ) { + if(OCA_Versions\Storage::rollback( $file, $revision )){ + OCP\JSON::success(array("data" => array( "revision" => $revision, "file" => $file ))); + }else{ + OCP\JSON::error(array("data" => array( "message" => "Could not revert:" . $file ))); + } } - -?>
\ No newline at end of file diff --git a/apps/files_versions/js/versions.js b/apps/files_versions/js/versions.js index eadf7a51039..61090f956f0 100644 --- a/apps/files_versions/js/versions.js +++ b/apps/files_versions/js/versions.js @@ -34,7 +34,7 @@ function createVersionsDropdown(filename, files) { html += '</select>'; html += '</div>'; //html += '<input type="button" value="Revert file" onclick="revertFile()" />'; - html += '<input type="button" value="Revert file..." onclick="window.location=\''+historyUrl+'\'" name="makelink" id="makelink" />'; + html += '<input type="button" value="All versions..." onclick="window.location=\''+historyUrl+'\'" name="makelink" id="makelink" />'; html += '<br />'; html += '<input id="link" style="display:none; width:90%;" />'; @@ -47,7 +47,7 @@ function createVersionsDropdown(filename, files) { $.ajax({ type: 'GET', - url: OC.linkTo('files_versions', 'ajax/getVersions.php'), + url: OC.filePath('files_versions', 'ajax', 'getVersions.php'), dataType: 'json', data: { source: files }, async: false, @@ -58,34 +58,39 @@ function createVersionsDropdown(filename, files) { if (versions) { $.each( versions, function(index, row ) { - - addVersion( row ); + addVersion( row ); }); } - + $('#found_versions').change(function(){ + var revision=parseInt($(this).val()); + revertFile(files,revision); + }) } }); - function revertFile() { + function revertFile(file, revision) { $.ajax({ type: 'GET', url: OC.linkTo('files_versions', 'ajax/rollbackVersion.php'), dataType: 'json', - data: {path: file, revision: 'revision'}, + data: {file: file, revision: revision}, async: false, - success: function(versions) { - if (versions) { + success: function(response) { + if (response.status=='error') { + OC.dialogs.alert('Failed to revert '+file+' to revision '+formatDate(revision*1000)+'.','Failed to revert'); } } }); } - function addVersion( name ) { - - var version = '<option>'+name+'</option>'; + function addVersion(revision ) { + name=formatDate(revision*1000); + var version=$('<option/>'); + version.attr('value',revision); + version.text(name); // } else { // var checked = ((permissions > 0) ? 'checked="checked"' : 'style="display:none;"'); @@ -98,7 +103,7 @@ function createVersionsDropdown(filename, files) { // user += '</li>'; // } - $(version).appendTo('#found_versions'); + version.appendTo('#found_versions'); } $('#dropdown').show('blind'); |