the subtree command from op.Ajax.php has been moved into the views

This commit is contained in:
Uwe Steinmann 2019-08-08 09:32:42 +02:00
parent 19727e3e4e
commit 1d2b44a8d9
8 changed files with 127 additions and 13 deletions

View File

@ -151,6 +151,7 @@ switch($command) {
}
break; /* }}} */
/* The subtree command is deprecated. It has been moved into view */
case 'subtree': /* {{{ */
if($user) {
if(empty($_GET['node']))

View File

@ -29,14 +29,33 @@ require_once("inc/inc.DBInit.php");
require_once("inc/inc.ClassUI.php");
require_once("inc/inc.Authentication.php");
$folderid = intval($_GET["folderid"]);
$form = preg_replace('/[^A-Za-z0-9_]+/', '', $_GET["form"]);
if(isset($_GET['action']) && $_GET['action'] == 'subtree') {
if (!isset($_GET["node"]) || !is_numeric($_GET["node"]) || intval($_GET["node"])<1) {
$nodeid = $settings->_rootFolderID;
} else {
$nodeid = intval($_GET["node"]);
}
$folder = $dms->getFolder($folderid);
$node = $dms->getFolder($nodeid);
if (!is_object($node)) {
UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))), getMLText("invalid_folder_id"));
}
} else {
$folderid = intval($_GET["folderid"]);
$folder = $dms->getFolder($folderid);
$form = preg_replace('/[^A-Za-z0-9_]+/', '', $_GET["form"]);
}
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'folder'=>$folder, 'form'=>$form));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user));
if($view) {
if(isset($_GET['action']) && $_GET['action'] == 'subtree') {
$view->setParam('node', $node);
$view->setParam('orderby', $settings->_sortFoldersDefault);
} else {
$view->setParam('folder', $folder);
$view->setParam('form', $form);
}
$view($_GET);
exit;
}

View File

@ -28,13 +28,34 @@ require_once("inc/inc.DBInit.php");
require_once("inc/inc.ClassUI.php");
require_once("inc/inc.Authentication.php");
$form = preg_replace('/[^A-Za-z0-9_]+/', '', $_GET["form"]);
$mode = intval($_GET["mode"]);
$exclude = intval($_GET["exclude"]);
if(isset($_GET['action']) && $_GET['action'] == 'subtree') {
if (isset($_GET["node"]) || !is_numeric($_GET["node"]) || intval($_GET["node"])<1) {
$nodeid = $settings->_rootFolderID;
} else {
$nodeid = intval($_GET["node"]);
}
$node = $dms->getFolder($nodeid);
if (!is_object($node)) {
UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))), getMLText("invalid_folder_id"));
}
} else {
$form = preg_replace('/[^A-Za-z0-9_]+/', '', $_GET["form"]);
$mode = intval($_GET["mode"]);
$exclude = intval($_GET["exclude"]);
}
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'rootfolderid'=>$settings->_rootFolderID, 'form'=>$form, 'mode'=>$mode, 'exclude'=>$exclude));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'rootfolderid'=>$settings->_rootFolderID));
if($view) {
if(isset($_GET['action']) && $_GET['action'] == 'subtree') {
$view->setParam('node', $node);
$view->setParam('orderby', $settings->_sortFoldersDefault);
} else {
$view->setParam('form', $form);
$view->setParam('mode', $mode);
$view->setParam('exclude', $exclude);
}
$view($_GET);
exit;
}

View File

@ -45,6 +45,19 @@ if (!is_object($folder)) {
UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))), getMLText("invalid_folder_id"));
}
if(isset($_GET['action']) && $_GET['action'] == 'subtree') {
if (!isset($_GET["node"]) || !is_numeric($_GET["node"]) || intval($_GET["node"])<1) {
$nodeid = $settings->_rootFolderID;
} else {
$nodeid = intval($_GET["node"]);
}
$node = $dms->getFolder($nodeid);
if (!is_object($node)) {
UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))), getMLText("invalid_folder_id"));
}
}
if (isset($_GET["orderby"]) && strlen($_GET["orderby"])>0 ) {
$orderby=$_GET["orderby"];
} else $orderby=$settings->_sortFoldersDefault;
@ -62,6 +75,8 @@ if ($folder->getAccessMode($user) < M_READ) {
}
if($view) {
if(isset($_GET['action']) && $_GET['action'] == 'subtree')
$view->setParam('node', $node);
$view->setParam('folder', $folder);
$view->setParam('orderby', $orderby);
$view->setParam('enableFolderTree', $settings->_enableFolderTree);

View File

@ -346,7 +346,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
if($this->params['dropfolderdir'] && $this->params['enabledropfolderlist']) {
echo " <div id=\"menu-dropfolder\">";
echo " <div class=\"ajax\" data-no-spinner=\"true\" data-view=\"DropFolderChooser\" data-action=\"menuList\"";
if ($folder!=null && is_object($folder) && !strcasecmp(get_class($folder), $dms->getClassname('folder')))
if ($folder!=null && is_object($folder) && $folder->isType('folder'))
echo " data-query=\"folderid=".$folder->getID()."\"";
echo "></div>";
echo " </div>";
@ -373,7 +373,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
}
echo " </ul>\n";
echo " <form action=\"../out/out.Search.php\" class=\"form-inline navbar-search pull-left\" autocomplete=\"off\">";
if ($folder!=null && is_object($folder) && !strcasecmp(get_class($folder), $dms->getClassname('folder'))) {
if ($folder!=null && is_object($folder) && $folder->isType('folder')) {
echo " <input type=\"hidden\" name=\"folderid\" value=\"".$folder->getID()."\" />";
}
echo " <input type=\"hidden\" name=\"navBar\" value=\"1\" />";
@ -478,7 +478,7 @@ background-image: linear-gradient(to bottom, #882222, #111111);;
private function folderNavigationBar($folder) { /* {{{ */
$dms = $this->params['dms'];
if (!is_object($folder) || strcasecmp(get_class($folder), $dms->getClassname('folder'))) {
if (!is_object($folder) || !$folder->isType('folder')) {
echo "<ul class=\"nav\">\n";
echo "</ul>\n";
return;
@ -1570,7 +1570,8 @@ $(document).ready(function() {
} /* }}} */
function printNewTreeNavigationHtml($folderid=0, $accessmode=M_READ, $showdocs=0, $formid='form1', $expandtree=0, $orderby='') { /* {{{ */
echo "<div id=\"jqtree".$formid."\" style=\"margin-left: 10px;\" data-url=\"../op/op.Ajax.php?command=subtree&showdocs=".$showdocs."&orderby=".$orderby."\"></div>\n";
//echo "<div id=\"jqtree".$formid."\" style=\"margin-left: 10px;\" data-url=\"../op/op.Ajax.php?command=subtree&showdocs=".$showdocs."&orderby=".$orderby."\"></div>\n";
echo "<div id=\"jqtree".$formid."\" style=\"margin-left: 10px;\" data-url=\"".$_SERVER['SCRIPT_NAME']."?action=subtree\"></div>\n";
} /* }}} */
/**
@ -1731,6 +1732,39 @@ $(function() {
<?php
} /* }}} */
/**
* Return json data for sub tree of navigation tree
*/
function printNewTreeNavigationSubtree($folderid, $showdocs=0, $orderby='') { /* {{{ */
$dms = $this->params['dms'];
$user = $this->params['user'];
$folder = $dms->getFolder($folderid);
if (!is_object($folder)) return '';
$subfolders = $folder->getSubFolders($orderby);
$subfolders = SeedDMS_Core_DMS::filterAccess($subfolders, $user, M_READ);
$tree = array();
foreach($subfolders as $subfolder) {
$loadondemand = $subfolder->hasSubFolders() || ($subfolder->hasDocuments() && $showdocs);
$level = array('label'=>$subfolder->getName(), 'id'=>$subfolder->getID(), 'load_on_demand'=>$loadondemand, 'is_folder'=>true);
if(!$subfolder->hasSubFolders())
$level['children'] = array();
$tree[] = $level;
}
if($showdocs) {
$documents = $folder->getDocuments($orderby);
$documents = SeedDMS_Core_DMS::filterAccess($documents, $user, M_READ);
foreach($documents as $document) {
$level = array('label'=>$document->getName(), 'id'=>$document->getID(), 'load_on_demand'=>false, 'is_folder'=>false);
$tree[] = $level;
}
}
header('Content-Type: application/json');
echo json_encode($tree);
} /* }}} */
function printTreeNavigation($folderid, $showtree){ /* {{{ */
if ($showtree==1){
$this->contentHeading("<a href=\"../out/out.ViewFolder.php?folderid=". $folderid."&showtree=0\"><i class=\"icon-minus-sign\"></i></a>", true);

View File

@ -31,6 +31,14 @@ require_once("class.Bootstrap.php");
*/
class SeedDMS_View_DocumentChooser extends SeedDMS_Bootstrap_Style {
public function subtree() { /* {{{ */
$user = $this->params['user'];
$node = $this->params['node'];
$orderby = $this->params['orderby'];
$this->printNewTreeNavigationSubtree($node->getID(), 1, $orderby);
} /* }}} */
function js() { /* {{{ */
$folder = $this->params['folder'];
$form = $this->params['form'];

View File

@ -31,6 +31,14 @@ require_once("class.Bootstrap.php");
*/
class SeedDMS_View_FolderChooser extends SeedDMS_Bootstrap_Style {
public function subtree() { /* {{{ */
$user = $this->params['user'];
$node = $this->params['node'];
$orderby = $this->params['orderby'];
$this->printNewTreeNavigationSubtree($node->getID(), 0, $orderby);
} /* }}} */
function js() { /* {{{ */
$rootfolderid = $this->params['rootfolderid'];
$form = $this->params['form'];

View File

@ -83,7 +83,15 @@ class SeedDMS_View_ViewFolder extends SeedDMS_Bootstrap_Style {
}
} /* }}} */
function js() { /* {{{ */
public function subtree() { /* {{{ */
$user = $this->params['user'];
$node = $this->params['node'];
$orderby = $this->params['orderby'];
$this->printNewTreeNavigationSubtree($node->getID(), 0, $orderby);
} /* }}} */
public function js() { /* {{{ */
$user = $this->params['user'];
$folder = $this->params['folder'];
$orderby = $this->params['orderby'];