From 36ef66430e483bf1e58bfbc392ecc071545bc405 Mon Sep 17 00:00:00 2001 From: Andrew Robert Nicols Date: Tue, 10 Jan 2012 10:48:38 +0000 Subject: [PATCH] MDL-31000 Respect sortorder of repositories when displaying the filepicker --- repository/filepicker.js | 14 ++++++++++---- repository/lib.php | 2 ++ 2 files changed, 12 insertions(+), 4 deletions(-) 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; }