diff options
author | Sam Tuke <samtuke@owncloud.com> | 2012-06-20 18:25:12 +0100 |
---|---|---|
committer | Sam Tuke <samtuke@owncloud.com> | 2012-06-20 18:25:12 +0100 |
commit | 72215a818d0e222af80000909f9fa78243112533 (patch) | |
tree | 54716cbc93bdfef0513043ef4528e49ac395b3cf /apps/files_versions | |
parent | d6bf62ea4eb39cba5fbf8100cd8b56351cee6d0b (diff) | |
download | nextcloud-server-72215a818d0e222af80000909f9fa78243112533.tar.gz nextcloud-server-72215a818d0e222af80000909f9fa78243112533.zip |
added new user settings interface for deleting old file versions
fixed OCA_VersionsexpireAll() to use native PHP readdir()
removed local storage implementation of readdir()
Diffstat (limited to 'apps/files_versions')
-rw-r--r-- | apps/files_versions/ajax/expireAll.php | 41 | ||||
-rw-r--r-- | apps/files_versions/appinfo/app.php | 4 | ||||
-rw-r--r-- | apps/files_versions/js/settings-personal.js | 51 | ||||
-rw-r--r-- | apps/files_versions/settings-personal.php | 8 | ||||
-rw-r--r-- | apps/files_versions/templates/settings-personal.php | 9 | ||||
-rw-r--r-- | apps/files_versions/versions.php | 26 |
6 files changed, 124 insertions, 15 deletions
diff --git a/apps/files_versions/ajax/expireAll.php b/apps/files_versions/ajax/expireAll.php new file mode 100644 index 00000000000..f9cd74aed02 --- /dev/null +++ b/apps/files_versions/ajax/expireAll.php @@ -0,0 +1,41 @@ +<?php + +/** + * ownCloud - user_migrate + * + * @author Sam Tuke + * @copyright 2012 Sam Tuke samtuke@owncloud.com + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + +// TODO: Allow admins to expire versions of any user +// TODO: Provide feedback as to how many versions were deleted + +// Check user and app status +OCP\JSON::checkLoggedIn(); +OCP\App::checkAppEnabled('files_versions'); + +if( OCA_Versions\Storage::expireAll() ){ + + OCP\JSON::success(); + die(); + +} else { + + OCP\JSON::error(); + die(); + +}
\ No newline at end of file diff --git a/apps/files_versions/appinfo/app.php b/apps/files_versions/appinfo/app.php index 8b891848c57..ef2f54dd3f9 100644 --- a/apps/files_versions/appinfo/app.php +++ b/apps/files_versions/appinfo/app.php @@ -3,7 +3,9 @@ require_once('apps/files_versions/versions.php'); OCP\App::registerAdmin('files_versions', 'settings'); +OCP\App::registerPersonal('files_versions','settings-personal'); + OCP\Util::addscript('files_versions', 'versions'); // Listen to write signals -OCP\Util::connectHook('OC_Filesystem', 'post_write', "OCA_Versions\Storage", "write_hook"); +OCP\Util::connectHook('OC_Filesystem', 'post_write', "OCA_Versions\Storage", "write_hook");
\ No newline at end of file diff --git a/apps/files_versions/js/settings-personal.js b/apps/files_versions/js/settings-personal.js new file mode 100644 index 00000000000..d9456f3f2af --- /dev/null +++ b/apps/files_versions/js/settings-personal.js @@ -0,0 +1,51 @@ +// $(document).ready(function(){ +// $('#versions').change( function(){ +// OC.msg.startSaving('#calendar .msg') +// // Serialize the data +// var post = $( '#timezone' ).serialize(); +// $.post( OC.filePath('calendar', 'ajax/settings', 'settimezone.php'), post, function(data){ +// //OC.msg.finishedSaving('#calendar .msg', data); +// }); +// return false; +// }); +// }); + +$(document).ready(function(){ + // + $('#expireAllBtn').click(function(){ + + // Prevent page from reloading + event.preventDefault(); + + // Show loading gif + $('.expireAllLoading').show(); + + $.getJSON( + OC.filePath('files_versions','ajax','expireAll.php'), + function(result){ + if (result.status == 'success') { + $('.expireAllLoading').hide(); + $('#expireAllBtn').html('Expiration successful'); + } else { + + // Cancel loading + $('#expireAllBtn').html('Expiration failed'); + + // Show Dialog + OC.dialogs.alert( + 'Something went wrong, your files may not have been expired', + 'An error has occurred', + function(){ + $('#expireAllBtn').html(t('files_versions', 'Expire all versions')+'<img style="display: none;" class="loading" src="'+OC.filePath('core','img','loading.gif')+'" />'); + } + + ); + + } + } + + ); + + }); + +});
\ No newline at end of file diff --git a/apps/files_versions/settings-personal.php b/apps/files_versions/settings-personal.php new file mode 100644 index 00000000000..db80172979d --- /dev/null +++ b/apps/files_versions/settings-personal.php @@ -0,0 +1,8 @@ +<?php + +$tmpl = new OCP\Template( 'files_versions', 'settings-personal'); + +OCP\Util::addscript('files_versions','settings-personal'); + +return $tmpl->fetchPage(); +?>
\ No newline at end of file diff --git a/apps/files_versions/templates/settings-personal.php b/apps/files_versions/templates/settings-personal.php new file mode 100644 index 00000000000..7ff016b585e --- /dev/null +++ b/apps/files_versions/templates/settings-personal.php @@ -0,0 +1,9 @@ +<form id="versions"> + <fieldset class="personalblock"> + <legend> + <strong>Versions</strong><!-- translate using echo $l->t('foo'); --> + </legend> + <p>This will delete all existing backup versions of your files</p><!-- translate using echo $l->t('foo'); --> + <button id="expireAllBtn">Expire all versions<img style="display: none;" class="expireAllLoading" src="<?php echo OCP\Util::linkTo('core', 'img/loading.gif'); ?>" /></button> + </fieldset> +</form>
\ No newline at end of file diff --git a/apps/files_versions/versions.php b/apps/files_versions/versions.php index 6feb0cbb9c7..7522538caf2 100644 --- a/apps/files_versions/versions.php +++ b/apps/files_versions/versions.php @@ -333,9 +333,9 @@ class Storage { $foldername = \OCP\Config::getSystemValue('datadirectory') .'/' . \OCP\USER::getUser() .'/' . $directory; // have to set an absolute path for use with PHP's opendir as OC version doesn't work - $directoryHandle = opendir( $foldername ); - - while ( $contents = $view->readdir( $directoryHandle ) ) { + $directoryHandle = $view->opendir( \OCP\USER::getUser() . '/' . $directory ); + + while ( $contents = readdir( $directoryHandle ) ) { if ( $contents != '.' && $contents != '..') { @@ -373,17 +373,15 @@ class Storage { $dir = \OCP\Config::getSystemValue('files_versionsfolder', Storage::DEFAULTFOLDER); - deleteAll( $dir, true ); - -// if ( deleteAll( $dir, 1 ) ) { -// -// echo "<h1>deleted ok</h1>"; -// -// } else { -// -// echo "<h1>not deleted</h1>"; -// -// } + if ( deleteAll( $dir, true ) ) { + + return true; + + } else { + + return false; + + } } |