diff --git a/lang/en/repository.php b/lang/en/repository.php
index 61b636578ed..388a09db1c2 100644
--- a/lang/en/repository.php
+++ b/lang/en/repository.php
@@ -119,6 +119,8 @@ $string['nomorefiles'] = 'No more attachments allowed';
$string['nopathselected'] = 'No destination path select yet (double click tree node to select)';
$string['nopermissiontoaccess'] = 'No permission to access this repository';
$string['noresult'] = 'No search result';
+$string['norepositoriesavailable'] = 'Sorry, none of your current repositories can return files in the required format.';
+$string['norepositoriesavexternalailable'] = 'Sorry, none of your current repositories can return external files.';
$string['notyourinstances'] = 'You can not view/edit repository instances of another user';
$string['off'] = 'Enabled but hidden';
$string['openpicker'] = 'Choose a file...';
diff --git a/lib/outputrequirementslib.php b/lib/outputrequirementslib.php
index 0dd9942c0f8..61416f28009 100644
--- a/lib/outputrequirementslib.php
+++ b/lib/outputrequirementslib.php
@@ -378,8 +378,8 @@ class page_requirements_manager {
array('saving', 'repository'), array('search', 'repository'), array('searching', 'repository'), array('size', 'repository'),
array('submit', 'repository'), array('sync', 'repository'), array('title', 'repository'), array('upload', 'repository'),
array('uploading', 'repository'), array('xhtmlerror', 'repository'),
- array('xhtml', 'quiz'), array('chooselicense', 'repository'), array('author', 'repository'),
- array('ok', 'moodle'), array('error', 'moodle'), array('info', 'moodle')
+ array('xhtml', 'quiz'), array('cancel'), array('chooselicense', 'repository'), array('author', 'repository'),
+ array('ok', 'moodle'), array('error', 'moodle'), array('info', 'moodle'), array('norepositoriesavailable', 'repository'), array('norepositoriesavexternalailable', 'repository')
));
break;
case 'core_comment':
diff --git a/repository/filepicker.js b/repository/filepicker.js
index 769555c268d..5daa01a676b 100644
--- a/repository/filepicker.js
+++ b/repository/filepicker.js
@@ -206,9 +206,6 @@ M.core_filepicker.init = function(Y, options) {
thumbnail:node.thumbnail,
path:node.path?node.path:[]
};
- var tmpNode = new YAHOO.widget.TextNode(info, level, false);
- //var tooltip = new YAHOO.widget.Tooltip(tmpNode.labelElId, {
- //context:tmpNode.labelElId, text:info.title});
if(node.repo_id) {
tmpNode.repo_id=node.repo_id;
}else{
@@ -337,10 +334,14 @@ M.core_filepicker.init = function(Y, options) {
var title = document.createElement('DIV');
title.id = 'grid-title-'+client_id+'-'+String(count);
title.className = 'label';
+ var filename = node.title;
+ console.info(node);
if (node.shorttitle) {
- node.title = node.shorttitle;
+ filename = node.shorttitle;
}
- title.innerHTML += ''+node.title+"";
+ var filename_id = 'filname-link-'+client_id+'-'+String(count);
+ title.innerHTML += ''+filename+"";
+
if(node.thumbnail_width){
grid.style.width = node.thumbnail_width+'px';
@@ -355,6 +356,7 @@ M.core_filepicker.init = function(Y, options) {
}
var img = document.createElement('img');
img.src = node.thumbnail;
+ img.title = node.title;
if(node.thumbnail_alt) {
img.alt = node.thumbnail_alt;
}
@@ -651,6 +653,13 @@ M.core_filepicker.init = function(Y, options) {
}, this /*handler running scope*/, this/*second argument*/, r[i].id/*third argument of handler*/);
count++;
}
+ if (count==0) {
+ if (this.options.externallink) {
+ list.set('innerHTML', M.str.repository.norepositoriesavexternalailable);
+ } else {
+ list.set('innerHTML', M.str.repository.norepositoriesavailable);
+ }
+ }
}, '#fp-list-'+client_id, this /* handler running scope */, '#fp-list-'+client_id /*first argument of handler*/);
},
parse_repository_options: function(data) {
diff --git a/repository/lib.php b/repository/lib.php
index d12893a43c9..0c5fc2ee4e1 100644
--- a/repository/lib.php
+++ b/repository/lib.php
@@ -1606,6 +1606,13 @@ abstract class repository {
public static function get_instance_option_names() {
return array();
}
+ public function get_short_filename($str, $maxlength) {
+ if (strlen($str) >= $maxlength) {
+ return trim(substr($str, 0, $maxlength)).'...';
+ } else {
+ return $str;
+ }
+ }
}
diff --git a/repository/local/repository.class.php b/repository/local/repository.class.php
index 57038cba920..9ec3a64d596 100755
--- a/repository/local/repository.class.php
+++ b/repository/local/repository.class.php
@@ -107,6 +107,7 @@ class repository_local extends repository {
// build file tree
$children = $fileinfo->get_children();
foreach ($children as $child) {
+ $shorttitle = $this->get_short_filename($child->get_visible_name(), 12);
if ($child->is_directory()) {
$params = $child->get_params();
$subdir_children = $child->get_children();
@@ -121,6 +122,7 @@ class repository_local extends repository {
}
$node = array(
'title' => $child->get_visible_name(),
+ 'shorttitle'=>$shorttitle,
'size' => 0,
'date' => '',
'path' => $encodedpath,
@@ -133,6 +135,7 @@ class repository_local extends repository {
$icon = 'f/'.str_replace('.gif', '', mimeinfo('icon', $child->get_visible_name())).'-32';
$node = array(
'title' => $child->get_visible_name(),
+ 'shorttitle'=>$shorttitle,
'size' => 0,
'date' => '',
'source'=> $encodedpath,
diff --git a/repository/recent/repository.class.php b/repository/recent/repository.class.php
index 1dcf6c1e32c..e617b816dc8 100755
--- a/repository/recent/repository.class.php
+++ b/repository/recent/repository.class.php
@@ -110,6 +110,7 @@ class repository_recent extends repository {
$icon = 'f/'.str_replace('.gif', '', mimeinfo('icon', $file['filename'])) . '-32';
$node = array(
'title' => $file['filename'],
+ 'shorttitle' => $this->get_short_filename($file['filename'], 12),
'size' => 0,
'date' => '',
'source'=> $params,