MDL-32037: MDL-32037: After displaying error message filepicker could not send proper...
authorMarina Glancy <marina@moodle.com>
Wed, 14 Mar 2012 04:24:36 +0000 (12:24 +0800)
committerMarina Glancy <marina@moodle.com>
Fri, 16 Mar 2012 01:38:33 +0000 (09:38 +0800)
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
repository/repository_ajax.php

index ce06abb..c6ac844 100644 (file)
@@ -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;
index ccf55cd..b7793c8 100644 (file)
@@ -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));
 }