Merge pull request #1022 from nextcloud/backport-1005

[stable10] Do not error on maxUploadChange
This commit is contained in:
Lukas Reschke 2016-08-23 15:44:00 +02:00 committed by GitHub
commit e5eff3c244
5 changed files with 103 additions and 10 deletions

View File

@ -65,6 +65,11 @@ $application->registerRoutes(
'url' => '/',
'verb' => 'GET',
],
[
'name' => 'settings#setMaxUploadSize',
'url' => '/settings/maxUpload',
'verb' => 'POST',
]
)
)
);

View File

@ -8,6 +8,46 @@
*
*/
(function() {
if (!OCA.Files) {
/**
* Namespace for the files app
* @namespace OCA.Files
*/
OCA.Files = {};
}
/**
* @namespace OCA.Files.Admin
*/
OCA.Files.Admin = {
initialize: function() {
$('#submitMaxUpload').on('click', _.bind(this._onClickSubmitMaxUpload, this));
},
_onClickSubmitMaxUpload: function () {
OC.msg.startSaving('#maxUploadSizeSettingsMsg');
var request = $.ajax({
url: OC.generateUrl('/apps/files/settings/maxUpload'),
type: 'POST',
data: {
maxUploadSize: $('#maxUploadSize').val()
}
});
request.done(function (data) {
$('#maxUploadSize').val(data.maxUploadSize);
OC.msg.finishedSuccess('#maxUploadSizeSettingsMsg', 'Saved');
});
request.fail(function () {
OC.msg.finishedError('#maxUploadSizeSettingsMsg', 'Error');
});
}
}
})();
function switchPublicFolder() {
var publicEnable = $('#publicEnable').is(':checked');
// find all radiobuttons of that group
@ -19,6 +59,8 @@ function switchPublicFolder() {
}
$(document).ready(function() {
OCA.Files.Admin.initialize();
// Execute the function after loading DOM tree
switchPublicFolder();
$('#publicEnable').click(function() {

View File

@ -0,0 +1,51 @@
<?php
/**
*
*
* @author Roeland Jago Douma <roeland@famdouma.nl>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program 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 program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Files\Controller;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\JSONResponse;
use OCP\IRequest;
use OCP\Util;
class SettingsController extends Controller {
public function __construct($appName, IRequest $request) {
parent::__construct($appName, $request);
}
/**
* @param string $maxUploadSize
* @return JSONResponse
*/
public function setMaxUploadSize($maxUploadSize) {
$setMaxSize = \OC_Files::setUploadLimit(Util::computerFileSize($maxUploadSize));
if ($setMaxSize === false) {
return new JSONResponse([], Http::STATUS_BAD_REQUEST);
} else {
return new JSONResponse([
'maxUploadSize' => Util::humanFileSize($setMaxSize)
]);
}
}
}

View File

@ -53,13 +53,6 @@ class Admin implements ISettings {
$upload_max_filesize = $this->iniWrapper->getBytes('upload_max_filesize');
$post_max_size = $this->iniWrapper->getBytes('post_max_size');
$maxUploadFilesize = Util::humanFileSize(min($upload_max_filesize, $post_max_size));
if($_POST && $this->request->passesCSRFCheck()) {
if(isset($_POST['maxUploadSize'])) {
if(($setMaxSize = \OC_Files::setUploadLimit(Util::computerFileSize($_POST['maxUploadSize']))) !== false) {
$maxUploadFilesize = Util::humanFileSize($setMaxSize);
}
}
}
$parameters = [
'uploadChangable' => (($htaccessWorking and $htaccessWritable) or $userIniWritable ),

View File

@ -1,18 +1,20 @@
<?php OCP\Util::addscript('files', 'admin'); ?>
<form name="filesForm" class="section" action="#" method="post">
<div class="section">
<h2><?php p($l->t('File handling')); ?></h2>
<label for="maxUploadSize"><?php p($l->t( 'Maximum upload size' )); ?> </label>
<span id="maxUploadSizeSettingsMsg" class="msg"></span>
<br />
<input type="text" name='maxUploadSize' id="maxUploadSize" value='<?php p($_['uploadMaxFilesize']) ?>' <?php if(!$_['uploadChangable']) { p('disabled'); } ?> />
<?php if($_['displayMaxPossibleUploadSize']):?>
(<?php p($l->t('max. possible: ')); p($_['maxPossibleUploadSize']) ?>)
<?php endif;?>
<input type="hidden" value="<?php p($_['requesttoken']); ?>" name="requesttoken" />
<?php if($_['uploadChangable']): ?>
<input type="submit" name="submitFilesAdminSettings" id="submitFilesAdminSettings"
<input type="submit" id="submitMaxUpload"
value="<?php p($l->t( 'Save' )); ?>"/>
<p><em><?php p($l->t('With PHP-FPM it might take 5 minutes for changes to be applied.')); ?></em></p>
<?php else: ?>
<p><em><?php p($l->t('Missing permissions to edit from here.')); ?></em></p>
<?php endif; ?>
</form>
</div>