diff --git a/repository/repository_ajax.php b/repository/repository_ajax.php index f679c785b95f7..d2b1dec2c4a4f 100644 --- a/repository/repository_ajax.php +++ b/repository/repository_ajax.php @@ -57,7 +57,6 @@ $PAGE->set_context($context); echo $OUTPUT->header(); // send headers -@header('Content-type: text/html; charset=utf-8'); // If uploaded file is larger than post_max_size (php.ini) setting, $_POST content will be empty. if (empty($_POST) && !empty($action)) { diff --git a/user/selector/lib.php b/user/selector/lib.php index 00bcd7e9d229b..18e9dfc5b353b 100644 --- a/user/selector/lib.php +++ b/user/selector/lib.php @@ -70,7 +70,7 @@ abstract class user_selector_base { protected static $jsmodule = array( 'name' => 'user_selector', 'fullpath' => '/user/selector/module.js', - 'requires' => array('node', 'event-custom', 'datasource', 'json'), + 'requires' => array('node', 'event-custom', 'datasource', 'json', 'moodle-core-notification'), 'strings' => array( array('previouslyselectedusers', 'moodle', '%%SEARCHTERM%%'), array('nomatchingusers', 'moodle', '%%SEARCHTERM%%'), diff --git a/user/selector/module.js b/user/selector/module.js index 24daf821b4911..ca89434172b07 100644 --- a/user/selector/module.js +++ b/user/selector/module.js @@ -151,8 +151,7 @@ M.core_user.init_user_selector = function (Y, name, hash, extrafields, lastsearc method: 'POST', data: 'selectorid='+hash+'&sesskey='+M.cfg.sesskey+'&search='+value + '&userselector_searchanywhere=' + this.get_option('searchanywhere'), on: { - success:this.handle_response, - failure:this.handle_failure + complete: this.handle_response }, context:this }); @@ -175,26 +174,15 @@ M.core_user.init_user_selector = function (Y, name, hash, extrafields, lastsearc } this.listbox.setStyle('background',''); var data = Y.JSON.parse(response.responseText); + if (data.error) { + this.searchfield.addClass('error'); + return new M.core.ajaxException(data); + } this.output_options(data); } catch (e) { - this.handle_failure(requestid); - } - }, - /** - * Handles what happens when the ajax request fails. - */ - handle_failure : function(requestid) { - delete this.iotransactions[requestid]; - if (!Y.Object.isEmpty(this.iotransactions)) { - // More searches pending. Wait until they are all done. - return; - } - this.listbox.setStyle('background',''); - this.searchfield.addClass('error'); - - // If we are in developer debug mode, output a link to help debug the failure. - if (M.cfg.developerdebug) { - this.searchfield.insert(Y.Node.create('Ajax call failed. Click here to try the search call directly.')); + this.listbox.setStyle('background',''); + this.searchfield.addClass('error'); + return new M.core.exception(e); } }, /** @@ -379,4 +367,4 @@ M.core_user.init_user_selector_options_tracker = function(Y) { user_selector_options_tracker.init(); // Return it just incase it is ever wanted return user_selector_options_tracker; -}; \ No newline at end of file +}; diff --git a/user/selector/search.php b/user/selector/search.php index a7b8d9cb9ecec..22826a6eff83f 100644 --- a/user/selector/search.php +++ b/user/selector/search.php @@ -23,29 +23,19 @@ * @package user */ +define('AJAX_SCRIPT', true); + require_once(dirname(__FILE__) . '/../../config.php'); require_once($CFG->dirroot . '/user/selector/lib.php'); $PAGE->set_context(context_system::instance()); $PAGE->set_url('/user/selector/search.php'); -// In developer debug mode, when there is a debug=1 in the URL send as plain text -// for easier debugging. -if (debugging('', DEBUG_DEVELOPER) && optional_param('debug', false, PARAM_BOOL)) { - header('Content-type: text/plain; charset=UTF-8'); - $debugmode = true; -} else { - header('Content-type: application/json; charset=utf-8'); - $debugmode = false; -} +echo $OUTPUT->header(); // Check access. -if (!isloggedin()) {; - print_error('mustbeloggedin'); -} -if (!confirm_sesskey()) { - print_error('invalidsesskey'); -} +require_login(); +require_sesskey(); // Get the search parameter. $search = required_param('search', PARAM_RAW); @@ -59,13 +49,6 @@ // Get the options. $options = $USER->userselectors[$selectorhash]; -if ($debugmode) { - echo 'Search string: ', $search, "\n"; - echo 'Options: '; - print_r($options); - echo "\n"; -} - // Create the appropriate userselector. $classname = $options['class']; unset($options['class']);