From f00340e2ca96f95ac42576edcdc23a270e32706d Mon Sep 17 00:00:00 2001 From: Dongsheng Cai Date: Tue, 22 Jun 2010 03:55:45 +0000 Subject: [PATCH] MDL-22734, added text to prompt empty repositories list, and added shorttitle for long filename --- lang/en/repository.php | 2 ++ lib/outputrequirementslib.php | 4 ++-- repository/filepicker.js | 19 ++++++++++++++----- repository/lib.php | 7 +++++++ repository/local/repository.class.php | 3 +++ repository/recent/repository.class.php | 1 + 6 files changed, 29 insertions(+), 7 deletions(-) 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,