diff --git a/repository/filepicker.js b/repository/filepicker.js
index 1bfadc81434..804ff3fd343 100644
--- a/repository/filepicker.js
+++ b/repository/filepicker.js
@@ -797,16 +797,22 @@ M.core_filepicker.init = function(Y, options) {
Y.on('contentready', function(el) {
var list = Y.one(el);
var count = 0;
+ // Resort the repositories by sortorder
+ var sorted_repositories = new Array();
for (var i in r) {
- var id = 'repository-'+client_id+'-'+r[i].id;
+ sorted_repositories[r[i].sortorder - 1] = r[i];
+ }
+ for (var i in sorted_repositories){
+ repository = sorted_repositories[i];
+ var id = 'repository-'+client_id+'-'+repository.id;
var link_id = id + '-link';
- list.append('
'+r[i].name+'');
- Y.one('#'+link_id).prepend('
');
+ list.append(''+repository.name+'');
+ Y.one('#'+link_id).prepend('
');
Y.one('#'+link_id).on('click', function(e, scope, repository_id) {
YAHOO.util.Cookie.set('recentrepository', repository_id);
scope.repository_id = repository_id;
this.list({'repo_id':repository_id});
- }, this /*handler running scope*/, this/*second argument*/, r[i].id/*third argument of handler*/);
+ }, this /*handler running scope*/, this/*second argument*/, repository.id/*third argument of handler*/);
count++;
}
if (count==0) {
diff --git a/repository/lib.php b/repository/lib.php
index d390420e2ff..6ef38e3ebbc 100644
--- a/repository/lib.php
+++ b/repository/lib.php
@@ -826,6 +826,7 @@ abstract class repository {
$options['visible'] = $record->visible;
$options['type'] = $record->repositorytype;
$options['typeid'] = $record->typeid;
+ $options['sortorder'] = $record->sortorder;
// tell instance what file types will be accepted by file picker
$classname = 'repository_' . $record->repositorytype;
@@ -1447,6 +1448,7 @@ abstract class repository {
$meta->icon = $OUTPUT->pix_url('icon', 'repository_'.$meta->type)->out(false);
$meta->supported_types = $ft->get_extensions($this->supported_filetypes());
$meta->return_types = $this->supported_returntypes();
+ $meta->sortorder = $this->options['sortorder'];
return $meta;
}