From a5159b864d32e735703d68ae3807a0b9fc16f624 Mon Sep 17 00:00:00 2001 From: Marina Glancy Date: Wed, 14 Mar 2012 12:24:36 +0800 Subject: [PATCH] MDL-32037: MDL-32037: After displaying error message filepicker could not send proper request to server We need to make sure that code executed on error does not create more requests and especially does not create the same request that resulted with error. So now by default filepicker will clear the right side of the window if repository_ajax.php returned an error. Also fixed an 'invalidsesskey' error string. --- repository/filepicker.js | 12 +++++++++++- repository/repository_ajax.php | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/repository/filepicker.js b/repository/filepicker.js index ce06abbba98..c6ac844ba17 100644 --- a/repository/filepicker.js +++ b/repository/filepicker.js @@ -150,7 +150,11 @@ M.core_filepicker.init = function(Y, options) { // error checking if (data && data.error) { scope.print_msg(data.error, 'error'); - scope.list(); + if (args.onerror) { + args.onerror(id,data,p); + } else { + Y.one(panel_id).set('innerHTML', ''); + } return; } else if (data && data.event) { switch (data.event) { @@ -690,6 +694,9 @@ M.core_filepicker.init = function(Y, options) { client_id: client_id, repository_id: repository_id, 'params': params, + onerror: function(id, obj, args) { + scope.view_files(); + }, callback: function(id, obj, args) { if (scope.options.editor_target && scope.options.env=='editor') { scope.options.editor_target.value=obj.url; @@ -1200,6 +1207,9 @@ M.core_filepicker.init = function(Y, options) { params: {'savepath':scope.options.savepath}, repository_id: scope.active_repo.id, form: {id: id, upload:true}, + onerror: function(id, o, args) { + scope.create_upload_form(data); + }, callback: function(id, o, args) { if (scope.options.editor_target&&scope.options.env=='editor') { scope.options.editor_target.value=o.url; diff --git a/repository/repository_ajax.php b/repository/repository_ajax.php index ccf55cdaa0f..b7793c8b9b0 100644 --- a/repository/repository_ajax.php +++ b/repository/repository_ajax.php @@ -66,7 +66,7 @@ if (empty($_POST) && !empty($action)) { } if (!confirm_sesskey()) { - $err->error = get_string('invalidsesskey'); + $err->error = get_string('invalidsesskey', 'error'); die(json_encode($err)); }