"MDL-16697, add savepath parameter to filepicker, fixed title click event in filepicker"

This commit is contained in:
dongsheng 2009-09-09 04:59:58 +00:00
parent 2e7f1f79e2
commit 4ba3169d21
5 changed files with 28 additions and 17 deletions

View File

@ -1,8 +1,6 @@
function filepicker_callback(params) {
var html = '<div class="mdl-left"><a href="'+params['url']+'">'+params['file']+'</a>';
var html = '<a href="'+params['url']+'">'+params['file']+'</a>';
// TODO: support delete the draft file
//html += '<a href="###" onclick=\'rm_file("'+params['id']+'", "'+params['file']+'", this)\'>Delete</a>';
html += '</div>';
document.getElementById('file_info_'+params['client_id']).innerHTML = html;
}
@ -18,6 +16,7 @@ function launch_filepicker(id, client_id, itemid) {
params.itemid = itemid;
params.maxbytes = filepicker.maxbytes;
params.maxfiles = filepicker.maxfiles;
params.savepath = '/';
params.target = el;
params.callback = filepicker_callback;
var fp = open_filepicker(client_id, params);

View File

@ -101,14 +101,18 @@ class MoodleQuickForm_filepicker extends HTML_QuickForm_input {
$str .= $repojs;
$str .= <<<EOD
<a href="#nonjsfp" onclick="return launch_filepicker('$id', '$client_id', '$draftitemid')">$straddfile</a>
<span id="file_info_{$client_id}" class="notifysuccess">$currentfile</span>
<div id="filepicker-wrapper-{$client_id}" style="display:none">
<div class="filemanager-toolbar">
<a href="###" onclick="return launch_filepicker('$id', '$client_id', '$draftitemid')">$straddfile</a>
</div>
<div id="file_info_{$client_id}" class="mdl-left">$currentfile</div>
</div>
<noscript>
<a name="nonjsfp"></a>
<object type="text/html" data="{$CFG->httpswwwroot}/repository/filepicker.php?action=embedded&itemid={$draftitemid}&ctx_id=$context->id" height="300" width="800" style="border:1px solid #000">Error</object>
<object type="text/html" id="nonjs-filepicker-{$client_id}" data="{$CFG->httpswwwroot}/repository/filepicker.php?env=filepicker&amp;action=embedded&amp;itemid={$draftitemid}&amp;ctx_id=$context->id" height="300" width="800" style="border:1px solid #000">Error</object>
</noscript>
EOD;
$str .= $PAGE->requires->js_function_call('destroy_item', array("nonjs-filepicker-{$client_id}"))->asap();
$str .= $PAGE->requires->js_function_call('show_item', array("filepicker-wrapper-{$client_id}"))->asap();
return $str;
}

View File

@ -228,7 +228,9 @@ case 'sign':
case 'download':
$filepath = $repo->get_file($fileurl, $filename, $itemid);
if (!empty($filepath)) {
$info = repository::move_to_filepool($filepath, $filename, $itemid, $draftpath);
if (!is_array($filepath)) {
$info = repository::move_to_filepool($filepath, $filename, $itemid, $draftpath);
}
redirect($url, get_string('downloadsucc','repository'));
} else {
print_error('cannotdownload', 'repository');
@ -433,7 +435,7 @@ default:
$files = $fs->get_directory_files($user_context->id, 'user_draft', $itemid, $draftpath, false);
echo $OUTPUT->header();
if (!empty($files) or $draftpath != '/') {
if ((!empty($files) or $draftpath != '/') and $env == 'filemanager') {
echo '<div class="fm-breadcrumb">';
$url->param('action', 'browse');
$url->param('draftpath', '/');
@ -457,11 +459,16 @@ default:
$url->param('draftpath', $draftpath);
$url->param('action', 'plugins');
echo '<div class="filemanager-toolbar">';
echo ' <a href="'.$url->out().'">'.get_string('addfile', 'repository').'</a>';
$url->param('action', 'mkdirform');
echo ' <a href="'.$url->out().'">'.get_string('makeafolder', 'moodle').'</a>';
$url->param('action', 'downloaddir');
echo ' <a href="'.$url->out().'" target="_blank">'.get_string('downloadfolder', 'repository').'</a>';
if ($env == 'filepicker' and sizeof($files) > 0) {
} else {
echo ' <a href="'.$url->out().'">'.get_string('addfile', 'repository').'</a>';
}
if ($env == 'filemanager') {
$url->param('action', 'mkdirform');
echo ' <a href="'.$url->out().'">'.get_string('makeafolder', 'moodle').'</a>';
$url->param('action', 'downloaddir');
echo ' <a href="'.$url->out().'" target="_blank">'.get_string('downloadfolder', 'repository').'</a>';
}
echo '</div>';
if (!empty($files)) {

View File

@ -72,7 +72,7 @@ class repository_local extends repository {
try {
$browser = get_file_browser();
if ($fileinfo = $browser->get_file_info($context, $filearea, $itemid, '/', $filename)) {
if ($fileinfo = $browser->get_file_info($context, $filearea, $itemid, $filepath, $filename)) {
$level = $fileinfo->get_parent();
while ($level) {
$params = base64_encode(serialize($level->get_params()));

View File

@ -850,9 +850,10 @@ repository_client.view_as_icons = function(client_id, data) {
});
el_title.on('contentReady', function() {
this.on('click', function(){
folder.fireEvent('click');
this.folder.fireEvent('click');
});
});
el_title.folder = folder;
} else {
var el_title = new YAHOO.util.Element(title.id);
var file = new YAHOO.util.Element(link.id);