enable admin to turn off ZIP downloads
user interface offers multi-file/folder downloads only if available make function name more clear
This commit is contained in:
parent
194211500b
commit
b13ab2b17e
|
@ -37,10 +37,12 @@ if($_POST) {
|
||||||
$maxZipInputSize=$_POST['maxZipInputSize'];
|
$maxZipInputSize=$_POST['maxZipInputSize'];
|
||||||
OC_Preferences::setValue('', 'files', 'maxZipInputSize', OC_Helper::computerFileSize($maxZipInputSize));
|
OC_Preferences::setValue('', 'files', 'maxZipInputSize', OC_Helper::computerFileSize($maxZipInputSize));
|
||||||
}
|
}
|
||||||
|
OC_Preferences::setValue('', 'files', 'allowZipDownload', isset($_POST['allowZipDownload']));
|
||||||
}else{
|
}else{
|
||||||
$upload_max_filesize = OC_Helper::computerFileSize(ini_get('upload_max_filesize'));
|
$upload_max_filesize = OC_Helper::computerFileSize(ini_get('upload_max_filesize'));
|
||||||
$post_max_size = OC_Helper::computerFileSize(ini_get('post_max_size'));
|
$post_max_size = OC_Helper::computerFileSize(ini_get('post_max_size'));
|
||||||
$maxUploadFilesize = min($upload_max_filesize, $post_max_size);
|
$maxUploadFilesize = min($upload_max_filesize, $post_max_size);
|
||||||
|
$allowZipDownload = intval(OC_Preferences::getValue('', 'files', 'allowZipDownload', 1));
|
||||||
$maxZipInputSize = OC_Helper::humanfilesize(OC_Preferences::getValue('', 'files', 'maxZipInputSize', OC_Helper::computerFileSize('800 MB')));
|
$maxZipInputSize = OC_Helper::humanfilesize(OC_Preferences::getValue('', 'files', 'maxZipInputSize', OC_Helper::computerFileSize('800 MB')));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,5 +51,6 @@ OC_App::setActiveNavigationEntry( "files_administration" );
|
||||||
$tmpl = new OC_Template( 'files', 'admin' );
|
$tmpl = new OC_Template( 'files', 'admin' );
|
||||||
$tmpl->assign( 'htaccessWorking', $htaccessWorking );
|
$tmpl->assign( 'htaccessWorking', $htaccessWorking );
|
||||||
$tmpl->assign( 'uploadMaxFilesize', $maxUploadFilesize);
|
$tmpl->assign( 'uploadMaxFilesize', $maxUploadFilesize);
|
||||||
|
$tmpl->assign( 'allowZipDownload', $allowZipDownload);
|
||||||
$tmpl->assign( 'maxZipInputSize', $maxZipInputSize);
|
$tmpl->assign( 'maxZipInputSize', $maxZipInputSize);
|
||||||
return $tmpl->fetchPage();
|
return $tmpl->fetchPage();
|
|
@ -12,4 +12,12 @@ $(document).ready(function(){
|
||||||
$('#publicEnable').click(function(){
|
$('#publicEnable').click(function(){
|
||||||
switchPublicFolder(); // To get rid of onClick()
|
switchPublicFolder(); // To get rid of onClick()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('#allowZipDownload').bind('change', function() {
|
||||||
|
if($('#allowZipDownload').attr('checked')) {
|
||||||
|
$('#maxZipInputSize').removeAttr('disabled');
|
||||||
|
} else {
|
||||||
|
$('#maxZipInputSize').attr('disabled', 'disabled');
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -128,9 +128,16 @@ FileActions={
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FileActions.register('all','Download',function(){return OC.imagePath('core','actions/download')},function(filename){
|
$(document).ready(function(){
|
||||||
|
if($('#allowZipDownload').val() == 1){
|
||||||
|
var downloadScope = 'all';
|
||||||
|
} else {
|
||||||
|
var downloadScope = 'file';
|
||||||
|
}
|
||||||
|
FileActions.register(downloadScope,'Download',function(){return OC.imagePath('core','actions/download')},function(filename){
|
||||||
window.location='ajax/download.php?files='+encodeURIComponent(filename)+'&dir='+encodeURIComponent($('#dir').val());
|
window.location='ajax/download.php?files='+encodeURIComponent(filename)+'&dir='+encodeURIComponent($('#dir').val());
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
FileActions.register('all','Delete',function(){return OC.imagePath('core','actions/delete')},function(filename){
|
FileActions.register('all','Delete',function(){return OC.imagePath('core','actions/delete')},function(filename){
|
||||||
FileList.do_delete(filename);
|
FileList.do_delete(filename);
|
||||||
|
|
|
@ -6,7 +6,10 @@
|
||||||
<?php if($_['htaccessWorking']):?>
|
<?php if($_['htaccessWorking']):?>
|
||||||
<label for="maxUploadSize"><?php echo $l->t( 'Maximum upload size' ); ?> </label><input name='maxUploadSize' id="maxUploadSize" value='<?php echo $_['uploadMaxFilesize'] ?>'/><br/>
|
<label for="maxUploadSize"><?php echo $l->t( 'Maximum upload size' ); ?> </label><input name='maxUploadSize' id="maxUploadSize" value='<?php echo $_['uploadMaxFilesize'] ?>'/><br/>
|
||||||
<?php endif;?>
|
<?php endif;?>
|
||||||
<label for="maxZipInputSize"><?php echo $l->t( 'Maximum input size for zip files (affects folder- and multi-file download)' ); ?> </label><input name="maxZipInputSize" id="maxZipInputSize" value='<?php echo $_['maxZipInputSize'] ?>'/><br/>
|
<input type="checkbox" name="allowZipDownload" id="allowZipDownload" value="1" title="<?php echo $l->t( 'Needed for multi-file and folder downloads.' ); ?>"<?php if ($_['allowZipDownload']) echo ' checked="checked"'; ?> /> <label for="allowZipDownload"><?php echo $l->t( 'Enable ZIP-download' ); ?></label> <br/>
|
||||||
|
<fieldset class="personalblock">
|
||||||
|
<label for="maxZipInputSize"><?php echo $l->t( 'Maximum input size for ZIP files:' ); ?> </label><input name="maxZipInputSize" id="maxZipInputSize" value='<?php echo $_['maxZipInputSize'] ?>' title="<?php echo $l->t( '0 is unlimited' ); ?>"<?php if (!$_['allowZipDownload']) echo ' disabled="disabled"'; ?> /><br/>
|
||||||
|
</fieldset>
|
||||||
<input type="submit" value="Save"/>
|
<input type="submit" value="Save"/>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -40,7 +40,9 @@
|
||||||
<?php if(!isset($_['readonly']) || !$_['readonly']) { ?><input type="checkbox" id="select_all" /><?php } ?>
|
<?php if(!isset($_['readonly']) || !$_['readonly']) { ?><input type="checkbox" id="select_all" /><?php } ?>
|
||||||
<span class='name'><?php echo $l->t( 'Name' ); ?></span>
|
<span class='name'><?php echo $l->t( 'Name' ); ?></span>
|
||||||
<span class='selectedActions'>
|
<span class='selectedActions'>
|
||||||
|
<?php if(OC_Preferences::getValue('', 'files', 'allowZipDownload', 1)) : ?>
|
||||||
<a href="" title="<?php echo $l->t('Download')?>" class="download"><img class='svg' alt="Download" src="<?php echo image_path("core", "actions/download.svg"); ?>" /></a>
|
<a href="" title="<?php echo $l->t('Download')?>" class="download"><img class='svg' alt="Download" src="<?php echo image_path("core", "actions/download.svg"); ?>" /></a>
|
||||||
|
<?php endif; ?>
|
||||||
<a href="" title="Share" class="share"><img class='svg' alt="Share" src="<?php echo image_path("core", "actions/share.svg"); ?>" /></a>
|
<a href="" title="Share" class="share"><img class='svg' alt="Share" src="<?php echo image_path("core", "actions/share.svg"); ?>" /></a>
|
||||||
</span>
|
</span>
|
||||||
</th>
|
</th>
|
||||||
|
@ -66,3 +68,6 @@
|
||||||
<?php echo $l->t('Current scanning');?> <span id='scan-current'></spann>
|
<?php echo $l->t('Current scanning');?> <span id='scan-current'></spann>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- config hints for javascript -->
|
||||||
|
<input type="hidden" name="allowZipDownload" id="allowZipDownload" value="<?php echo OC_Preferences::getValue('', 'files', 'allowZipDownload', 1); ?>" />
|
|
@ -59,7 +59,7 @@ class OC_Files {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(is_array($files)){
|
if(is_array($files)){
|
||||||
self::checkZipInputSize($dir,$files);
|
self::validateZipDownload($dir,$files);
|
||||||
$executionTime = intval(ini_get('max_execution_time'));
|
$executionTime = intval(ini_get('max_execution_time'));
|
||||||
set_time_limit(0);
|
set_time_limit(0);
|
||||||
$zip = new ZipArchive();
|
$zip = new ZipArchive();
|
||||||
|
@ -80,7 +80,7 @@ class OC_Files {
|
||||||
$zip->close();
|
$zip->close();
|
||||||
set_time_limit($executionTime);
|
set_time_limit($executionTime);
|
||||||
}elseif(OC_Filesystem::is_dir($dir.'/'.$files)){
|
}elseif(OC_Filesystem::is_dir($dir.'/'.$files)){
|
||||||
self::checkZipInputSize($dir,$files);
|
self::validateZipDownload($dir,$files);
|
||||||
$executionTime = intval(ini_get('max_execution_time'));
|
$executionTime = intval(ini_get('max_execution_time'));
|
||||||
set_time_limit(0);
|
set_time_limit(0);
|
||||||
$zip = new ZipArchive();
|
$zip = new ZipArchive();
|
||||||
|
@ -223,7 +223,22 @@ class OC_Files {
|
||||||
* @param dir $dir
|
* @param dir $dir
|
||||||
* @param files $files
|
* @param files $files
|
||||||
*/
|
*/
|
||||||
static function checkZipInputSize($dir, $files) {
|
static function validateZipDownload($dir, $files) {
|
||||||
|
if(!OC_Preferences::getValue('', 'files', 'allowZipDownload', 1)) {
|
||||||
|
$l = new OC_L10N('files');
|
||||||
|
header("HTTP/1.0 409 Conflict");
|
||||||
|
$tmpl = new OC_Template( '', 'error', 'user' );
|
||||||
|
$errors = array(
|
||||||
|
array(
|
||||||
|
'error' => $l->t('ZIP download is turned off.'),
|
||||||
|
'hint' => $l->t('Files need to be downloaded one by one.') . '<br/><a href="javascript:history.back()">' . $l->t('Back to Files') . '</a>',
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$tmpl->assign('errors', $errors);
|
||||||
|
$tmpl->printPage();
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
$zipLimit = OC_Preferences::getValue('', 'files', 'maxZipInputSize', OC_Helper::computerFileSize('800 MB'));
|
$zipLimit = OC_Preferences::getValue('', 'files', 'maxZipInputSize', OC_Helper::computerFileSize('800 MB'));
|
||||||
if($zipLimit > 0) {
|
if($zipLimit > 0) {
|
||||||
$totalsize = 0;
|
$totalsize = 0;
|
||||||
|
|
Loading…
Reference in New Issue