diff --git a/user/selector/module.js b/user/selector/module.js index d1094a0b766..24daf821b49 100644 --- a/user/selector/module.js +++ b/user/selector/module.js @@ -221,8 +221,9 @@ M.core_user.init_user_selector = function (Y, name, hash, extrafields, lastsearc // Output each optgroup. var count = 0; - for (var groupname in data.results) { - this.output_group(groupname, data.results[groupname], selectedusers, true); + for (var key in data.results) { + var groupdata = data.results[key]; + this.output_group(groupdata.name, groupdata.users, selectedusers, true); count++; } if (!count) { @@ -248,14 +249,14 @@ M.core_user.init_user_selector = function (Y, name, hash, extrafields, lastsearc output_group : function(groupname, users, selectedusers, processsingle) { var optgroup = Y.Node.create(''); var count = 0; - for (var userid in users) { - var user = users[userid]; - var option = Y.Node.create(''); + for (var key in users) { + var user = users[key]; + var option = Y.Node.create(''); if (user.disabled) { option.set('disabled', true); - } else if (selectedusers===true || selectedusers[userid]) { + } else if (selectedusers===true || selectedusers[user.id]) { option.set('selected', true); - delete selectedusers[userid]; + delete selectedusers[user.id]; } else { option.set('selected', false); } diff --git a/user/selector/search.php b/user/selector/search.php index a4f45e4db92..a7b8d9cb9ec 100644 --- a/user/selector/search.php +++ b/user/selector/search.php @@ -78,9 +78,11 @@ if (isset($options['file'])) { $userselector = new $classname($name, $options); // Do the search and output the results. -$users = $userselector->find_users($search); -foreach ($users as &$group) { - foreach ($group as $user) { +$results = $userselector->find_users($search); +$json = array(); +foreach ($results as $groupname => $users) { + $groupdata = array('name' => $groupname, 'users' => array()); + foreach ($users as $user) { $output = new stdClass; $output->id = $user->id; $output->name = $userselector->output_user($user); @@ -90,8 +92,9 @@ foreach ($users as &$group) { if (!empty($user->infobelow)) { $output->infobelow = $user->infobelow; } - $group[$user->id] = $output; + $groupdata['users'][] = $output; } + $json[] = $groupdata; } -echo json_encode(array('results' => $users)); +echo json_encode(array('results' => $json));