MDL-31113 filemanager element - refresh file list from server on load and prevent revertion to browser drag and drop behaviour when max files reached

This commit is contained in:
Davo Smith
2012-01-19 19:28:16 +00:00
parent f6b4ec2b4a
commit 910e1ecdaa
3 changed files with 16 additions and 6 deletions
+3 -3
View File
@@ -163,13 +163,13 @@ M.form_dndupload = {
return false;
}
e.preventDefault();
e.stopPropagation();
if (this.reached_maxfiles()) {
return false;
}
e.preventDefault();
e.stopPropagation();
return true;
},
+10 -3
View File
@@ -76,7 +76,7 @@ M.form_filemanager.init = function(Y, options) {
this.filecount = 0;
}
this.setup_buttons();
this.render();
this.refresh(this.currentpath); // MDL-31113 get latest list from server
},
wait: function(client_id) {
@@ -141,15 +141,18 @@ M.form_filemanager.init = function(Y, options) {
}
},
filepicker_callback: function(obj) {
var button_addfile = Y.one("#btnadd-"+this.client_id);
this.filecount++;
this.check_buttons();
this.refresh(this.currentpath);
},
check_buttons: function() {
var button_addfile = Y.one("#btnadd-"+this.client_id);
if (this.filecount > 0) {
Y.one("#btndwn-"+this.client_id).setStyle('display', 'inline');
}
if (this.filecount >= this.maxfiles && this.maxfiles!=-1) {
button_addfile.setStyle('display', 'none');
}
this.refresh(this.currentpath);
},
refresh: function(filepath) {
var scope = this;
@@ -164,6 +167,8 @@ M.form_filemanager.init = function(Y, options) {
scope: scope,
params: {'filepath':filepath},
callback: function(id, obj, args) {
scope.filecount = obj.filecount;
scope.check_buttons();
scope.options = obj;
scope.render(obj);
}
@@ -298,6 +303,8 @@ M.form_filemanager.init = function(Y, options) {
scope: scope,
params: params,
callback: function(id, obj, args) {
scope.filecount = obj.filecount;
scope.check_buttons();
scope.options = obj;
scope.render(obj);
}
+3
View File
@@ -59,6 +59,9 @@ switch ($action) {
$filepath = optional_param('filepath', '/', PARAM_PATH);
$data = file_get_drafarea_files($draftid, $filepath);
$info = file_get_draft_area_info($draftid);
$data->filecount = $info['filecount'];
$data->filesize = $info['filesize'];
echo json_encode($data);
die;