Merge branch 'seeddms-5.1.x' into seeddms-6.0.x

This commit is contained in:
Uwe Steinmann 2025-05-19 18:05:58 +02:00
commit c638258a10

View File

@ -1801,6 +1801,7 @@ class SeedDMS_Search { /* {{{ */
} }
$revised['from'] = $revisionstartts; $revised['from'] = $revisionstartts;
} }
$this->searchparams['revisionstartdate'] = $revisionstartdate;
if(!empty($get["revisiondateend"])) { if(!empty($get["revisiondateend"])) {
$revisionendts = makeTsFromDate($get["revisiondateend"]); $revisionendts = makeTsFromDate($get["revisiondateend"]);
$revisionenddate = array('year'=>(int)date('Y', $revisionendts), 'month'=>(int)date('m', $revisionendts), 'day'=>(int)date('d', $revisionendts), 'hour'=>23, 'minute'=>59, 'second'=>59); $revisionenddate = array('year'=>(int)date('Y', $revisionendts), 'month'=>(int)date('m', $revisionendts), 'day'=>(int)date('d', $revisionendts), 'hour'=>23, 'minute'=>59, 'second'=>59);
@ -1809,6 +1810,7 @@ class SeedDMS_Search { /* {{{ */
} }
$revised['to'] = $revisionendts; $revised['to'] = $revisionendts;
} }
$this->searchparams['revisionenddate'] = $revisionenddate;
/* }}} */ /* }}} */
/* Status date {{{ */ /* Status date {{{ */
@ -1822,6 +1824,7 @@ class SeedDMS_Search { /* {{{ */
if ($statusstartdate && !checkdate($statusstartdate['month'], $statusstartdate['day'], $statusstartdate['year'])) { if ($statusstartdate && !checkdate($statusstartdate['month'], $statusstartdate['day'], $statusstartdate['year'])) {
UI::exitError(getMLText("search"),getMLText("invalid_status_date_start")); UI::exitError(getMLText("search"),getMLText("invalid_status_date_start"));
} }
$this->searchparams['statusstartdate'] = $statusstartdate;
if(!empty($get["statusdateend"])) { if(!empty($get["statusdateend"])) {
$statusendts = makeTsFromDate($get["statusdateend"]); $statusendts = makeTsFromDate($get["statusdateend"]);
@ -1843,6 +1846,7 @@ class SeedDMS_Search { /* {{{ */
UI::exitError(getMLText("search"),getMLText("invalid_expiration_date_start")); UI::exitError(getMLText("search"),getMLText("invalid_expiration_date_start"));
} }
} }
$this->searchparams['expstartdate'] = $expstartdate;
if(!empty($get["expirationend"])) { if(!empty($get["expirationend"])) {
$expendts = makeTsFromDate($get["expirationend"]); $expendts = makeTsFromDate($get["expirationend"]);
$expenddate = array('year'=>(int)date('Y', $expendts), 'month'=>(int)date('m', $expendts), 'day'=>(int)date('d', $expendts), 'hour'=>23, 'minute'=>59, 'second'=>59); $expenddate = array('year'=>(int)date('Y', $expendts), 'month'=>(int)date('m', $expendts), 'day'=>(int)date('d', $expendts), 'hour'=>23, 'minute'=>59, 'second'=>59);
@ -1850,12 +1854,14 @@ class SeedDMS_Search { /* {{{ */
UI::exitError(getMLText("search"),getMLText("invalid_expiration_date_end")); UI::exitError(getMLText("search"),getMLText("invalid_expiration_date_end"));
} }
} }
$this->searchparams['expenddate'] = $expenddate;
/* }}} */ /* }}} */
$reception = array(); $reception = array();
if (isset($get["reception"])){ if (isset($get["reception"])){
$reception = $get["reception"]; $reception = $get["reception"];
} }
$this->searchparams['reception'] = $reception;
/* Do not search for folders if result shall be filtered by status. /* Do not search for folders if result shall be filtered by status.
* If this is not done, unexplainable results will be delivered. * If this is not done, unexplainable results will be delivered.
@ -1987,32 +1993,32 @@ class SeedDMS_Search { /* {{{ */
// ---------------- Start searching ----------------------------------------- // ---------------- Start searching -----------------------------------------
$startTime = $this->getTime(); $startTime = $this->getTime();
$resArr = $this->dms->search(array( $resArr = $this->dms->search(array(
'query'=>$query, 'query'=>$this->searchparams['query'],
'limit'=>0, 'limit'=>0,
'offset'=>0, 'offset'=>0,
'logicalmode'=>$mode, 'logicalmode'=>$this->searchparams['mode'],
'searchin'=>$searchin, 'searchin'=>$this->searchparams['searchin'],
'startFolder'=>$startFolder, 'startFolder'=>$this->searchparams['startFolder'],
'owner'=>$ownerobjs, 'owner'=>$this->searchparams['ownerobjs'],
'status'=>$status, 'status'=>$this->searchparams['status'],
'mimetype'=>$mimetype, 'mimetype'=>$this->searchparams['mimetype'],
'creationstartdate'=>$created['from'], 'creationstartdate'=>$this->searchparams['created']['from'],
'creationenddate'=>$created['to'], 'creationenddate'=>$this->searchparams['created']['to'],
'modificationstartdate'=>$modified['from'], 'modificationstartdate'=>$this->searchparams['modified']['from'],
'modificationenddate'=>$modified['to'], 'modificationenddate'=>$this->searchparams['modified']['to'],
'filesizestart'=>$filesize['from'], 'filesizestart'=>$this->searchparams['filesize']['from'],
'filesizeend'=>$filesize['to'], 'filesizeend'=>$this->searchparams['filesize']['to'],
'categories'=>$categories, 'categories'=>$this->searchparams['categories'],
'attributes'=>$attributes, 'attributes'=>$this->searchparams['attributes'],
'mode'=>$resultmode, 'mode'=>$this->searchparams['resultmode'],
'expirationstartdate'=>$expstartdate ? $expstartdate : array(), 'expirationstartdate'=>$this->searchparams['expstartdate'],
'expirationenddate'=>$expenddate ? $expenddate : array(), 'expirationenddate'=>$this->searchparams['expenddate'],
'revisionstartdate'=>$revisionstartdate ? $revisionstartdate : array(), 'revisionstartdate'=>$this->searchparams['revisionstartdate'],
'revisionenddate'=>$revisionenddate ? $revisionenddate : array(), 'revisionenddate'=>$this->searchparams['revisionenddate'],
'reception'=>$reception, 'reception'=>$this->searchparams['reception'],
'statusstartdate'=>$statusstartdate ? $statusstartdate : array(), 'statusstartdate'=>$this->searchparams['statusstartdate'],
'statusenddate'=>$statusenddate ? $statusenddate : array(), 'statusenddate'=>$this->searchparams['statusenddate'],
'orderby'=>$orderby 'orderby'=>$this->searchparams['orderby']
)); ));
$this->total = $resArr['totalDocs'] + $resArr['totalFolders']; $this->total = $resArr['totalDocs'] + $resArr['totalFolders'];
$searchTime = $this->getTime() - $startTime; $searchTime = $this->getTime() - $startTime;
@ -2022,7 +2028,7 @@ class SeedDMS_Search { /* {{{ */
$fcount = 0; $fcount = 0;
if($resArr['folders']) { if($resArr['folders']) {
foreach ($resArr['folders'] as $entry) { foreach ($resArr['folders'] as $entry) {
if ($entry->getAccessMode($user) >= M_READ) { if ($entry->getAccessMode($this->user) >= M_READ) {
$entries[] = $entry; $entries[] = $entry;
$fcount++; $fcount++;
} }
@ -2032,7 +2038,7 @@ class SeedDMS_Search { /* {{{ */
$dcount = 0; $dcount = 0;
if($resArr['docs']) { if($resArr['docs']) {
foreach ($resArr['docs'] as $entry) { foreach ($resArr['docs'] as $entry) {
if ($entry->getAccessMode($user) >= M_READ) { if ($entry->getAccessMode($this->user) >= M_READ) {
if($entry->getLatestContent()) { if($entry->getLatestContent()) {
$entry->verifyLastestContentExpriry(); $entry->verifyLastestContentExpriry();
$entries[] = $entry; $entries[] = $entry;
@ -2041,12 +2047,16 @@ class SeedDMS_Search { /* {{{ */
} }
} }
} }
$limit = $this->searchparams['limit'];
$this->dcount = $dcount; $this->dcount = $dcount;
$totalPages = (int) (count($entries)/$limit); $totalPages = 0;
if(count($entries)%$limit) if($limit > 0) {
$totalPages++; $totalPages = (int) (count($entries)/$limit);
if($pageNumber != 'all') if(count($entries)%$limit)
$this->entries = array_slice($entries, ($pageNumber-1)*$limit, $limit); $totalPages++;
}
if($this->searchparams['pageNumber'] != 'all')
$this->entries = array_slice($entries, ($this->searchparams['pageNumber']-1)*$limit, $limit);
$this->totalPages = $totalPages; $this->totalPages = $totalPages;
$this->facets = array(); $this->facets = array();
$this->stats = array(); $this->stats = array();