mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-05-14 21:51:32 +00:00
update jqtree, add right click for downloading children
This commit is contained in:
parent
d522ced2e1
commit
476cac3967
|
@ -847,7 +847,7 @@ $(document).ready(function() { /* {{{ */
|
||||||
attr_rel = $(e.srcElement).attr('rel');
|
attr_rel = $(e.srcElement).attr('rel');
|
||||||
if(typeof attr_rel == 'undefined')
|
if(typeof attr_rel == 'undefined')
|
||||||
return;
|
return;
|
||||||
$(e.target).parent().css('border', '2px dashed #0B85A1');
|
$(e.target).parent().css('border', '1px dashed #0B85A1');
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
});
|
});
|
||||||
|
@ -869,7 +869,7 @@ $(document).ready(function() { /* {{{ */
|
||||||
attr_rel = $(e.target).attr('rel');
|
attr_rel = $(e.target).attr('rel');
|
||||||
if(typeof attr_rel == 'undefined')
|
if(typeof attr_rel == 'undefined')
|
||||||
return;
|
return;
|
||||||
$(e.target).parent().css('border', '0px solid white');
|
$(e.target).parent().css('border', '1px solid white');
|
||||||
target_type = attr_rel.split("_")[0];
|
target_type = attr_rel.split("_")[0];
|
||||||
target_id = attr_rel.split("_")[1];
|
target_id = attr_rel.split("_")[1];
|
||||||
var source_info = JSON.parse(e.originalEvent.dataTransfer.getData("text"));
|
var source_info = JSON.parse(e.originalEvent.dataTransfer.getData("text"));
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1572,18 +1572,19 @@ $(document).ready(function() {
|
||||||
* and documents shown in the tree
|
* and documents shown in the tree
|
||||||
* @param boolean $showdocs set to true if tree shall contain documents
|
* @param boolean $showdocs set to true if tree shall contain documents
|
||||||
* as well.
|
* as well.
|
||||||
|
* @param integer $expandtree level to which the tree shall be opened
|
||||||
*/
|
*/
|
||||||
function printNewTreeNavigationJs($folderid=0, $accessmode=M_READ, $showdocs=0, $formid='form1', $expandtree=0, $orderby='') { /* {{{ */
|
function printNewTreeNavigationJs($folderid=0, $accessmode=M_READ, $showdocs=0, $formid='form1', $expandtree=0, $orderby='') { /* {{{ */
|
||||||
function jqtree($path, $folder, $user, $accessmode, $showdocs=1, $expandtree=0, $orderby='') {
|
function jqtree($path, $folder, $user, $accessmode, $showdocs=1, $expandtree=0, $orderby='', $level=0) {
|
||||||
if($path || $expandtree) {
|
if($path || $expandtree>=$level) {
|
||||||
if($path)
|
if($path)
|
||||||
$pathfolder = array_shift($path);
|
$pathfolder = array_shift($path);
|
||||||
$subfolders = $folder->getSubFolders($orderby);
|
$subfolders = $folder->getSubFolders($orderby);
|
||||||
$subfolders = SeedDMS_Core_DMS::filterAccess($subfolders, $user, $accessmode);
|
$subfolders = SeedDMS_Core_DMS::filterAccess($subfolders, $user, $accessmode);
|
||||||
$children = array();
|
$children = array();
|
||||||
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)) ? false : false, 'is_folder'=>true);
|
||||||
if($expandtree || $pathfolder->getID() == $subfolder->getID()) {
|
if($expandtree>=$level || $pathfolder->getID() == $subfolder->getID()) {
|
||||||
if($showdocs) {
|
if($showdocs) {
|
||||||
$documents = $folder->getDocuments($orderby);
|
$documents = $folder->getDocuments($orderby);
|
||||||
$documents = SeedDMS_Core_DMS::filterAccess($documents, $user, $accessmode);
|
$documents = SeedDMS_Core_DMS::filterAccess($documents, $user, $accessmode);
|
||||||
|
@ -1592,7 +1593,7 @@ $(document).ready(function() {
|
||||||
$children[] = $node2;
|
$children[] = $node2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$node['children'] = jqtree($path, $subfolder, $user, $accessmode, $showdocs, $expandtree, $orderby);
|
$node['children'] = jqtree($path, $subfolder, $user, $accessmode, $showdocs, $expandtree, $orderby, $level+1);
|
||||||
}
|
}
|
||||||
$children[] = $node;
|
$children[] = $node;
|
||||||
}
|
}
|
||||||
|
@ -1602,7 +1603,7 @@ $(document).ready(function() {
|
||||||
$subfolders = SeedDMS_Core_DMS::filterAccess($subfolders, $user, $accessmode);
|
$subfolders = SeedDMS_Core_DMS::filterAccess($subfolders, $user, $accessmode);
|
||||||
$children = array();
|
$children = array();
|
||||||
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)) ? false : false, 'is_folder'=>true);
|
||||||
$children[] = $node;
|
$children[] = $node;
|
||||||
}
|
}
|
||||||
return $children;
|
return $children;
|
||||||
|
@ -1613,13 +1614,14 @@ $(document).ready(function() {
|
||||||
if($folderid) {
|
if($folderid) {
|
||||||
$folder = $this->params['dms']->getFolder($folderid);
|
$folder = $this->params['dms']->getFolder($folderid);
|
||||||
$path = $folder->getPath();
|
$path = $folder->getPath();
|
||||||
|
/* Get the first folder (root folder) of path */
|
||||||
$folder = array_shift($path);
|
$folder = array_shift($path);
|
||||||
$node = array('label'=>$folder->getName(), 'id'=>$folder->getID(), 'load_on_demand'=>true, 'is_folder'=>true);
|
$node = array('label'=>$folder->getName(), 'id'=>$folder->getID(), 'load_on_demand'=>false, 'is_folder'=>true);
|
||||||
if(!$folder->hasSubFolders()) {
|
if(!$folder->hasSubFolders()) {
|
||||||
$node['load_on_demand'] = false;
|
$node['load_on_demand'] = false;
|
||||||
$node['children'] = array();
|
$node['children'] = array();
|
||||||
} else {
|
} else {
|
||||||
$node['children'] = jqtree($path, $folder, $this->params['user'], $accessmode, $showdocs, $expandtree, $orderby);
|
$node['children'] = jqtree($path, $folder, $this->params['user'], $accessmode, $showdocs, $expandtree, $orderby, 0);
|
||||||
if($showdocs) {
|
if($showdocs) {
|
||||||
$documents = $folder->getDocuments($orderby);
|
$documents = $folder->getDocuments($orderby);
|
||||||
$documents = SeedDMS_Core_DMS::filterAccess($documents, $this->params['user'], $accessmode);
|
$documents = SeedDMS_Core_DMS::filterAccess($documents, $this->params['user'], $accessmode);
|
||||||
|
@ -1639,18 +1641,18 @@ $(document).ready(function() {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$root = $this->params['dms']->getFolder($this->params['rootfolderid']);
|
$root = $this->params['dms']->getFolder($this->params['rootfolderid']);
|
||||||
$tree = array(array('label'=>$root->getName(), 'id'=>$root->getID(), 'load_on_demand'=>true, 'is_folder'=>true));
|
$tree = array(array('label'=>$root->getName(), 'id'=>$root->getID(), 'load_on_demand'=>false, 'is_folder'=>true));
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
var data = <?php echo json_encode($tree); ?>;
|
var data = <?php echo json_encode($tree); ?>;
|
||||||
$(function() {
|
$(function() {
|
||||||
$('#jqtree<?php echo $formid ?>').tree({
|
$('#jqtree<?php echo $formid ?>').tree({
|
||||||
saveState: true,
|
// saveState: 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>'),
|
||||||
closedIcon: '<i class="icon-plus-sign"></i>',
|
closedIcon: $('<i class="icon-plus-sign"></i>'),
|
||||||
_onCanSelectNode: function(node) {
|
_onCanSelectNode: function(node) {
|
||||||
if(node.is_folder) {
|
if(node.is_folder) {
|
||||||
folderSelected<?php echo $formid ?>(node.id, node.name);
|
folderSelected<?php echo $formid ?>(node.id, node.name);
|
||||||
|
@ -1667,10 +1669,10 @@ $(function() {
|
||||||
$li.find('.jqtree-title').before('<i class="icon-file"></i> ');
|
$li.find('.jqtree-title').before('<i class="icon-file"></i> ');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// Unfold tree if folder is opened
|
// Unfold node for currently selected folder
|
||||||
$('#jqtree<?php echo $formid ?>').tree('openNode', $('#jqtree<?php echo $formid ?>').tree('getNodeById', <?php echo $folderid ?>), false);
|
$('#jqtree<?php echo $formid ?>').tree('openNode', $('#jqtree<?php echo $formid ?>').tree('getNodeById', <?php echo $folderid ?>), false);
|
||||||
$('#jqtree<?php echo $formid ?>').bind(
|
$('#jqtree<?php echo $formid ?>').on(
|
||||||
'tree.click',
|
'tree.select',
|
||||||
function(event) {
|
function(event) {
|
||||||
var node = event.node;
|
var node = event.node;
|
||||||
$('#jqtree<?php echo $formid ?>').tree('openNode', node);
|
$('#jqtree<?php echo $formid ?>').tree('openNode', node);
|
||||||
|
@ -1681,6 +1683,30 @@ $(function() {
|
||||||
documentSelected<?php echo $formid ?>(node.id, node.name);
|
documentSelected<?php echo $formid ?>(node.id, node.name);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
$('#jqtree<?php echo $formid ?>').on(
|
||||||
|
'tree.contextmenu',
|
||||||
|
function(event) {
|
||||||
|
// The clicked node is 'event.node'
|
||||||
|
var node = event.node;
|
||||||
|
if(typeof node.fetched == 'undefined') {
|
||||||
|
node.fetched = true;
|
||||||
|
$(this).tree('loadDataFromUrl', node);
|
||||||
|
}
|
||||||
|
$(this).tree('openNode', node);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
$("#jqtree").on('dragenter', function (e) {
|
||||||
|
attr_rel = $(e.srcElement).attr('rel');
|
||||||
|
if(typeof attr_rel == 'undefined')
|
||||||
|
return;
|
||||||
|
target_type = attr_rel.split("_")[0];
|
||||||
|
target_id = attr_rel.split("_")[1];
|
||||||
|
var node = $(this).tree('getNodeById', parseInt(target_id));
|
||||||
|
if(typeof node.fetched == 'undefined') {
|
||||||
|
node.fetched = true;
|
||||||
|
$(this).tree('loadDataFromUrl', node, function() {$(this).tree('openNode', node);});
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
<?php
|
<?php
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
|
@ -279,7 +279,7 @@ $('#loadmore').click(function(e) {
|
||||||
* access expandFolderTree with $this->params because it can
|
* access expandFolderTree with $this->params because it can
|
||||||
* be changed by preContent hook.
|
* be changed by preContent hook.
|
||||||
*/
|
*/
|
||||||
$this->printNewTreeNavigationHtml($folderid, M_READ, 0, '', $this->params['expandFolderTree'] == 2, $orderby);
|
$this->printNewTreeNavigationHtml($folderid, M_READ, 0, '', $this->params['expandFolderTree'], $orderby);
|
||||||
$this->contentContainerEnd();
|
$this->contentContainerEnd();
|
||||||
} else {
|
} else {
|
||||||
$this->contentHeading("<a href=\"../out/out.ViewFolder.php?folderid=". $folderid."&showtree=1\"><i class=\"icon-plus-sign\"></i></a>", true);
|
$this->contentHeading("<a href=\"../out/out.ViewFolder.php?folderid=". $folderid."&showtree=1\"><i class=\"icon-plus-sign\"></i></a>", true);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user