fix tree behaviour, do not load all sub nodes

This commit is contained in:
Uwe Steinmann 2019-09-11 17:43:50 +02:00
parent 679fb1a349
commit 39217037b8

View File

@ -1593,15 +1593,19 @@ $(document).ready(function() {
function printNewTreeNavigationJs($folderid=0, $accessmode=M_READ, $showdocs=0, $formid='form1', $expandtree=0, $orderby='', $partialtree=false) { /* {{{ */ function printNewTreeNavigationJs($folderid=0, $accessmode=M_READ, $showdocs=0, $formid='form1', $expandtree=0, $orderby='', $partialtree=false) { /* {{{ */
function jqtree($path, $folder, $user, $accessmode, $showdocs=1, $expandtree=0, $orderby='', $level=0) { function jqtree($path, $folder, $user, $accessmode, $showdocs=1, $expandtree=0, $orderby='', $level=0) {
$orderdir = (isset($orderby[1]) ? ($orderby[1] == 'd' ? 'desc' : 'asc') : 'asc'); $orderdir = (isset($orderby[1]) ? ($orderby[1] == 'd' ? 'desc' : 'asc') : 'asc');
if($path || $expandtree>=$level) { if($path/* || $expandtree>=$level*/) {
if($path) if($path)
$pathfolder = array_shift($path); $pathfolder = array_shift($path);
$children = array(); $children = array();
if($expandtree) {
$subfolders = $folder->getSubFolders(isset($orderby[0]) ? $orderby[0] : '', $orderdir); $subfolders = $folder->getSubFolders(isset($orderby[0]) ? $orderby[0] : '', $orderdir);
$subfolders = SeedDMS_Core_DMS::filterAccess($subfolders, $user, $accessmode); $subfolders = SeedDMS_Core_DMS::filterAccess($subfolders, $user, $accessmode);
} else {
$subfolders = array($pathfolder);
}
foreach($subfolders as $subfolder) { foreach($subfolders as $subfolder) {
$node = array('label'=>$subfolder->getName(), 'id'=>$subfolder->getID(), 'load_on_demand'=>($subfolder->hasSubFolders() || ($subfolder->hasDocuments() && $showdocs)) ? true : false, 'is_folder'=>true); $node = array('label'=>$subfolder->getName(), 'id'=>$subfolder->getID(), 'load_on_demand'=>($subfolder->hasSubFolders() || ($subfolder->hasDocuments() && $showdocs)) ? true : false, 'is_folder'=>true);
if($expandtree>=$level || $pathfolder->getID() == $subfolder->getID()) { if(/*$expandtree>=$level ||*/ $pathfolder->getID() == $subfolder->getID()) {
$node['children'] = jqtree($path, $subfolder, $user, $accessmode, $showdocs, $expandtree, $orderby, $level+1); $node['children'] = jqtree($path, $subfolder, $user, $accessmode, $showdocs, $expandtree, $orderby, $level+1);
if($showdocs) { if($showdocs) {
$documents = $subfolder->getDocuments(isset($orderby[0]) ? $orderby[0] : '', $orderdir); $documents = $subfolder->getDocuments(isset($orderby[0]) ? $orderby[0] : '', $orderdir);
@ -1669,7 +1673,7 @@ $(function() {
const $tree = $('#jqtree<?php echo $formid ?>'); const $tree = $('#jqtree<?php echo $formid ?>');
$tree.tree({ $tree.tree({
// saveState: true, // saveState: true,
selectable: false, selectable: true,
data: data, data: data,
saveState: 'jqtree<?php echo $formid; ?>', saveState: 'jqtree<?php echo $formid; ?>',
openedIcon: $('<i class="icon-minus-sign"></i>'), openedIcon: $('<i class="icon-minus-sign"></i>'),
@ -1680,7 +1684,7 @@ $(function() {
} else } else
documentSelected<?php echo $formid ?>(node.id, node.name); documentSelected<?php echo $formid ?>(node.id, node.name);
}, },
autoOpen: true, autoOpen: false,
drapAndDrop: true, drapAndDrop: true,
onCreateLi: function(node, $li) { onCreateLi: function(node, $li) {
// Add 'icon' span before title // Add 'icon' span before title