From: dongsheng Date: Wed, 20 Aug 2008 03:47:05 +0000 (+0000) Subject: MDL-13766 X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=1c7bf1902527af1c3cc4ef9d543597aeaa69761b;p=moodle.git MDL-13766 Better tree building --- diff --git a/repository/boxnet/repository.class.php b/repository/boxnet/repository.class.php index 84a0faa4eb..91cc6709ce 100755 --- a/repository/boxnet/repository.class.php +++ b/repository/boxnet/repository.class.php @@ -101,9 +101,8 @@ class repository_boxnet extends repository{ } } - $this->listing = $list; $ret['list'] = $list; - $ret['dynload'] = true; + $this->listing = $list; return $ret; } else { throw new repository_exception('nullfilelist', 'repository_boxnet'); diff --git a/repository/lib.php b/repository/lib.php index 99f8cd59e1..9a48e7e84d 100644 --- a/repository/lib.php +++ b/repository/lib.php @@ -839,22 +839,23 @@ EOD; _client.viewmode = 1; return str; } - _client.buildtree = function(node){ - if(node.subfolder){ - for(var j in node.subfolder) { - var nodeinfo = {label: node.subfolder[j].title, title: "Date"+node.subfolder[j].date+' '+'Size:'+node.subfolder[j].size}; - var cNode = new YAHOO.widget.TextNode(nodeinfo, node, false); - cNode.filename = node.subfolder[j].title; - cNode.value = node.subfolder[j].source; - if(node.subfolder[j].children){ - cNode.subfolder = node.subfolder[j].children; - _client.buildtree(cNode); - } else { - cNode.isLeaf = true; - cNode.onLabelClick = function() { - repository_client_$suffix.rename(this.filename, this.value); - } - } + _client.buildtree = function(node, level){ + var info = {label:node.title, title:"Date: "+node.date+' '+'Size:'+node.size}; + var tmpNode = new YAHOO.widget.TextNode(info, level, false); + var tooltip = new YAHOO.widget.Tooltip(tmpNode.labelElId, { + context:tmpNode.labelElId, text:info.title}); + tmpNode.filename = node.title; + tmpNode.value = node.source; + if(node.children){ + tmpNode.isLeaf = false; + tmpNode.subfolder = node.children; + for(var c in node.children){ + _client.buildtree(node.children[c], tmpNode); + } + } else { + tmpNode.isLeaf = true; + tmpNode.onLabelClick = function() { + repository_client_$suffix.rename(this.filename, this.value); } } } @@ -867,7 +868,9 @@ _client.dynload = function (node, fnLoadComplete){ } catch(e) { alert('Invalid JSON String'+o.responseText); } - //alert(node); + for(k in json.list){ + _client.buildtree(json.list[k], node); + } o.argument.fnLoadComplete(); }, failure:function(oResponse){ @@ -898,24 +901,7 @@ _client.dynload = function (node, fnLoadComplete){ } else { } for(k in list){ - var el = document.createElement('div'); - var input = document.createElement('input'); - var info = {label: list[k].title, title: "Date: "+list[k].date+' '+'Size:'+list[k].size}; - var tmpNode = new YAHOO.widget.TextNode(info, tree.getRoot(), false); - var tooltip = new YAHOO.widget.Tooltip(tmpNode.labelElId, { - context:tmpNode.labelElId, text:info.title}); - tmpNode.filename = list[k].title; - tmpNode.value = list[k].source; - if(list[k].children){ - tmpNode.isLeaf = false; - tmpNode.subfolder = list[k].children; - } else { - tmpNode.isLeaf = true; - tmpNode.onLabelClick = function() { - repository_client_$suffix.rename(this.filename, this.value); - } - } - _client.buildtree(tmpNode); + _client.buildtree(list[k], tree.getRoot()); } tree.draw(); _client.viewmode = 0; @@ -953,8 +939,8 @@ _client.dynload = function (node, fnLoadComplete){ str += 'Upload'; str += ''; str += ''; + str += '
'; } - str += '
'; return str; } _client.makepage = function(){