mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-02-11 09:35:00 +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');
|
||||
if(typeof attr_rel == 'undefined')
|
||||
return;
|
||||
$(e.target).parent().css('border', '2px dashed #0B85A1');
|
||||
$(e.target).parent().css('border', '1px dashed #0B85A1');
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
});
|
||||
|
@ -869,7 +869,7 @@ $(document).ready(function() { /* {{{ */
|
|||
attr_rel = $(e.target).attr('rel');
|
||||
if(typeof attr_rel == 'undefined')
|
||||
return;
|
||||
$(e.target).parent().css('border', '0px solid white');
|
||||
$(e.target).parent().css('border', '1px solid white');
|
||||
target_type = attr_rel.split("_")[0];
|
||||
target_id = attr_rel.split("_")[1];
|
||||
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
|
||||
* @param boolean $showdocs set to true if tree shall contain documents
|
||||
* 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 jqtree($path, $folder, $user, $accessmode, $showdocs=1, $expandtree=0, $orderby='') {
|
||||
if($path || $expandtree) {
|
||||
function jqtree($path, $folder, $user, $accessmode, $showdocs=1, $expandtree=0, $orderby='', $level=0) {
|
||||
if($path || $expandtree>=$level) {
|
||||
if($path)
|
||||
$pathfolder = array_shift($path);
|
||||
$subfolders = $folder->getSubFolders($orderby);
|
||||
$subfolders = SeedDMS_Core_DMS::filterAccess($subfolders, $user, $accessmode);
|
||||
$children = array();
|
||||
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);
|
||||
if($expandtree || $pathfolder->getID() == $subfolder->getID()) {
|
||||
$node = array('label'=>$subfolder->getName(), 'id'=>$subfolder->getID(), 'load_on_demand'=>($subfolder->hasSubFolders() || ($subfolder->hasDocuments() && $showdocs)) ? false : false, 'is_folder'=>true);
|
||||
if($expandtree>=$level || $pathfolder->getID() == $subfolder->getID()) {
|
||||
if($showdocs) {
|
||||
$documents = $folder->getDocuments($orderby);
|
||||
$documents = SeedDMS_Core_DMS::filterAccess($documents, $user, $accessmode);
|
||||
|
@ -1592,7 +1593,7 @@ $(document).ready(function() {
|
|||
$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;
|
||||
}
|
||||
|
@ -1602,7 +1603,7 @@ $(document).ready(function() {
|
|||
$subfolders = SeedDMS_Core_DMS::filterAccess($subfolders, $user, $accessmode);
|
||||
$children = array();
|
||||
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;
|
||||
}
|
||||
return $children;
|
||||
|
@ -1613,13 +1614,14 @@ $(document).ready(function() {
|
|||
if($folderid) {
|
||||
$folder = $this->params['dms']->getFolder($folderid);
|
||||
$path = $folder->getPath();
|
||||
/* Get the first folder (root folder) of 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()) {
|
||||
$node['load_on_demand'] = false;
|
||||
$node['children'] = array();
|
||||
} 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) {
|
||||
$documents = $folder->getDocuments($orderby);
|
||||
$documents = SeedDMS_Core_DMS::filterAccess($documents, $this->params['user'], $accessmode);
|
||||
|
@ -1639,18 +1641,18 @@ $(document).ready(function() {
|
|||
|
||||
} else {
|
||||
$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); ?>;
|
||||
$(function() {
|
||||
$('#jqtree<?php echo $formid ?>').tree({
|
||||
saveState: true,
|
||||
// saveState: true,
|
||||
data: data,
|
||||
saveState: 'jqtree<?php echo $formid; ?>',
|
||||
openedIcon: '<i class="icon-minus-sign"></i>',
|
||||
closedIcon: '<i class="icon-plus-sign"></i>',
|
||||
openedIcon: $('<i class="icon-minus-sign"></i>'),
|
||||
closedIcon: $('<i class="icon-plus-sign"></i>'),
|
||||
_onCanSelectNode: function(node) {
|
||||
if(node.is_folder) {
|
||||
folderSelected<?php echo $formid ?>(node.id, node.name);
|
||||
|
@ -1667,10 +1669,10 @@ $(function() {
|
|||
$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 ?>').bind(
|
||||
'tree.click',
|
||||
$('#jqtree<?php echo $formid ?>').on(
|
||||
'tree.select',
|
||||
function(event) {
|
||||
var node = event.node;
|
||||
$('#jqtree<?php echo $formid ?>').tree('openNode', node);
|
||||
|
@ -1681,6 +1683,30 @@ $(function() {
|
|||
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
|
||||
} /* }}} */
|
||||
|
|
|
@ -279,7 +279,7 @@ $('#loadmore').click(function(e) {
|
|||
* access expandFolderTree with $this->params because it can
|
||||
* 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();
|
||||
} else {
|
||||
$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