]> git.mjollnir.org Git - moodle.git/commitdiff
"MDL-16697, add savepath parameter to filepicker, fixed title click event in filepicker"
authordongsheng <dongsheng>
Wed, 9 Sep 2009 04:59:58 +0000 (04:59 +0000)
committerdongsheng <dongsheng>
Wed, 9 Sep 2009 04:59:58 +0000 (04:59 +0000)
lib/form/filepicker.js
lib/form/filepicker.php
repository/filepicker.php
repository/local/repository.class.php
repository/repository.src.js

index 9f1ecda166d5742720243c96de066f52ca0c325b..7ad7d241772f26bb38dfa64931b7cc390291ffd2 100644 (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);
index 092bcf758372e03b70d278d35135d3d46519236a..f5dc39a72ff91cc1b239e18149f13384e6633362 100644 (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;
     }
 
index 60f41173690ca68efd42a6742fb172bff2f206a0..6564221fb46452036a82b6564d4328ba072f458c 100755 (executable)
@@ -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)) {
index 36dd73bae603c2a16b21e663d13e7c535c835348..13ddb00c2ff97418349089cbdfe2f81becd12652 100755 (executable)
@@ -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()));
index 0391ad0c7f5d14b69fa402a4497f7fdaf97f8021..c20836a90aaef0e5e3f048fe3921ad59c45309e9 100644 (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);