diff --git a/files/files_ajax.php b/files/files_ajax.php index f46ffacc5e1..088ecc3191b 100755 --- a/files/files_ajax.php +++ b/files/files_ajax.php @@ -154,6 +154,11 @@ case 'zip': case 'downloaddir': $zipper = new zip_packer(); $fs = get_file_storage(); + $draftarea = file_get_draft_area_info($itemid); + if ($draftarea['filecount'] == 0) { + echo json_encode(false); + die; + } $stored_file = $fs->get_file($user_context->id, $filearea, $itemid, $filepath, '.'); if ($filepath === '/') { diff --git a/lang/en/repository.php b/lang/en/repository.php index 2b0a79d9950..2178c1e7566 100644 --- a/lang/en/repository.php +++ b/lang/en/repository.php @@ -73,6 +73,7 @@ $string['disabled'] = 'Disabled'; $string['download'] = 'Download'; $string['downloadfolder'] = 'Download this folder'; $string['downloadsucc'] = 'The file has been downloaded successfully'; +$string['draftareanofiles'] = 'Cannot be downloaed because there is no files attached'; $string['editrepositoryinstance'] = 'Edit repository instance'; $string['emptylist'] = 'Empty result'; $string['emptytype'] = 'Cannot create repository type: type name is empty'; diff --git a/lib/form/filemanager.js b/lib/form/filemanager.js index 1afaa45b62f..3975e111433 100644 --- a/lib/form/filemanager.js +++ b/lib/form/filemanager.js @@ -219,10 +219,14 @@ M.form_filemanager.init = function(Y, options) { action: 'downloaddir', scope: scope, callback: function(id, obj, args) { - scope.refresh(obj.filepath); - var win = window.open(obj.fileurl, 'fm-download-folder'); - if (!win) { - alert(M.str.repository.popupblockeddownload); + if (obj) { + scope.refresh(obj.filepath); + var win = window.open(obj.fileurl, 'fm-download-folder'); + if (!win) { + alert(M.str.repository.popupblockeddownload); + } + } else { + alert(M.str.repository.draftareanofiles); } } }); diff --git a/lib/weblib.php b/lib/weblib.php index 15913db51ed..18a0b40fcc2 100644 --- a/lib/weblib.php +++ b/lib/weblib.php @@ -2754,6 +2754,7 @@ function print_filemanager($options, $return = false) { $PAGE->requires->string_for_js('confirmdeletefile', 'repository'); $PAGE->requires->string_for_js('nopathselected', 'repository'); $PAGE->requires->string_for_js('popupblockeddownload', 'repository'); + $PAGE->requires->string_for_js('draftareanofiles', 'repository'); $PAGE->requires->string_for_js('path', 'moodle'); // language strings $straddfile = get_string('add', 'repository') . '...';