distinguish between rootfolder and startfolder

This commit is contained in:
Uwe Steinmann 2023-02-18 09:37:23 +01:00
parent 111e842645
commit 59084a1ddd

View File

@ -407,19 +407,19 @@ class SeedDMS_ExtPaperless_RestAPI_Controller { /* {{{ */
$logger->log(var_export($params, true), PEAR_LOG_DEBUG); $logger->log(var_export($params, true), PEAR_LOG_DEBUG);
if(!empty($settings->_extensions['paperless']['usehomefolder'])) { if(!empty($settings->_extensions['paperless']['usehomefolder'])) {
if(!($startfolder = $dms->getFolder((int) $userobj->getHomeFolder()))) if(!($rootfolder = $dms->getFolder((int) $userobj->getHomeFolder())))
$startfolder = $dms->getFolder($settings->_rootFolderID); $rootfolder = $dms->getFolder($settings->_rootFolderID);
} elseif(!isset($settings->_extensions['paperless']['rootfolder']) || !($startfolder = $dms->getFolder($settings->_extensions['paperless']['rootfolder']))) } elseif(!isset($settings->_extensions['paperless']['rootfolder']) || !($rootfolder = $dms->getFolder($settings->_extensions['paperless']['rootfolder'])))
$startfolder = $dms->getFolder($settings->_rootFolderID); $rootfolder = $dms->getFolder($settings->_rootFolderID);
$startfolder = $rootfolder;
$logger->log('Searching for documents in folder '.$startfolder->getId(), PEAR_LOG_DEBUG); $logger->log('Searching for documents in folder '.$rootfolder->getId(), PEAR_LOG_DEBUG);
$fullsearch = true; $fullsearch = true;
$query = ''; $query = '';
$astart = 0; $astart = 0;
$aend = 0; $aend = 0;
if($fullsearch) { if($fullsearch) {
// print_r($params);
if (isset($params["query"]) && is_string($params["query"])) { if (isset($params["query"]) && is_string($params["query"])) {
$queryparts = explode(',', $params["query"]); $queryparts = explode(',', $params["query"]);
foreach($queryparts as $querypart) { foreach($queryparts as $querypart) {
@ -525,28 +525,29 @@ class SeedDMS_ExtPaperless_RestAPI_Controller { /* {{{ */
$truncate_content = isset($params['truncate_content']) && ($params['truncate_content'] == 'true'); $truncate_content = isset($params['truncate_content']) && ($params['truncate_content'] == 'true');
$index = $fulltextservice->Indexer(); $index = $fulltextservice->Indexer();
if($index) { if($index) {
$limit = isset($params['page_size']) ? (int) $params['page_size'] : 25;
$page = (isset($params['page']) && $params['page'] > 0) ? (int) $params['page'] : 1;
$offset = ($page-1)*$limit; $offset = ($page-1)*$limit;
$logger->log('Query is '.$query, PEAR_LOG_DEBUG); $logger->log('Query is '.$query, PEAR_LOG_DEBUG);
$lucenesearch = $fulltextservice->Search(); $lucenesearch = $fulltextservice->Search();
$searchresult = $lucenesearch->search($query, array('record_type'=>['document'], 'user'=>[$userobj->getLogin()], 'category'=>$categorynames, 'created_start'=>$astart, 'created_end'=>$aend, 'startFolder'=>$startfolder, 'rootFolder'=>$startfolder), array('limit'=>$limit, 'offset'=>$offset), $order); $searchresult = $lucenesearch->search($query, array('record_type'=>['document'], 'user'=>[$userobj->getLogin()], 'category'=>$categorynames, 'created_start'=>$astart, 'created_end'=>$aend, 'startFolder'=>$startfolder, 'rootFolder'=>$rootfolder), array('limit'=>$limit, 'offset'=>$offset), $order);
if($searchresult) { if($searchresult) {
$recs = array(); $recs = array();
$facets = $searchresult['facets']; $facets = $searchresult['facets'];
$dcount = 0; $dcount = 0;
$fcount = 0; $fcount = 0;
if($searchresult['hits']) { if($searchresult['hits']) {
$allids = '';
foreach($searchresult['hits'] as $hit) { foreach($searchresult['hits'] as $hit) {
if($hit['document_id'][0] == 'D') { if($hit['document_id'][0] == 'D') {
if($tmp = $dms->getDocument((int) substr($hit['document_id'], 1))) { if($tmp = $dms->getDocument((int) substr($hit['document_id'], 1))) {
$allids .= $hit['document_id'].' ';
// if($tmp->getAccessMode($user) >= M_READ) { // if($tmp->getAccessMode($user) >= M_READ) {
$tmp->verifyLastestContentExpriry(); // $tmp->verifyLastestContentExpriry();
$recs[] = $this->__getDocumentData($tmp, $truncate_content); $recs[] = $this->__getDocumentData($tmp, $truncate_content);
// } // }
} }
} }
} }
$logger->log('Result is '.$allids, PEAR_LOG_DEBUG);
} }
if($offset + $limit < $searchresult['count']) { if($offset + $limit < $searchresult['count']) {
$params['page'] = $page+1; $params['page'] = $page+1;