mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-06-01 14:37:20 +00:00
new method doSearchByAttr()
it searches objects by a given attribute and its value
This commit is contained in:
parent
b1d8a77b2a
commit
8740020409
|
@ -678,6 +678,66 @@ function doSearch() { /* {{{ */
|
||||||
}
|
}
|
||||||
} /* }}} */
|
} /* }}} */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search for documents/folders with a given attribute=value
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
function doSearchByAttr() { /* {{{ */
|
||||||
|
global $app, $dms, $userobj;
|
||||||
|
|
||||||
|
$attrname = $app->request()->get('name');
|
||||||
|
$query = $app->request()->get('value');
|
||||||
|
if(!$limit = $app->request()->get('limit'))
|
||||||
|
$limit = 50;
|
||||||
|
$attrdef = $dms->getAttributeDefinitionByName($attrname);
|
||||||
|
$entries = array();
|
||||||
|
if($attrdef) {
|
||||||
|
$resArr = $attrdef->getObjects($query, $limit);
|
||||||
|
if($resArr['folders']) {
|
||||||
|
foreach ($resArr['folders'] as $entry) {
|
||||||
|
if ($entry->getAccessMode($userobj) >= M_READ) {
|
||||||
|
$entries[] = $entry;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if($resArr['docs']) {
|
||||||
|
foreach ($resArr['docs'] as $entry) {
|
||||||
|
if ($entry->getAccessMode($userobj) >= M_READ) {
|
||||||
|
$entries[] = $entry;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$recs = array();
|
||||||
|
foreach ($entries as $entry) {
|
||||||
|
if(get_class($entry) == 'SeedDMS_Core_Document') {
|
||||||
|
$document = $entry;
|
||||||
|
$lc = $document->getLatestContent();
|
||||||
|
$recs[] = array(
|
||||||
|
'type'=>'document',
|
||||||
|
'id'=>$document->getId(),
|
||||||
|
'date'=>$document->getDate(),
|
||||||
|
'name'=>$document->getName(),
|
||||||
|
'mimetype'=>$lc->getMimeType(),
|
||||||
|
'version'=>$lc->getVersion(),
|
||||||
|
'comment'=>$document->getComment(),
|
||||||
|
'keywords'=>$document->getKeywords(),
|
||||||
|
);
|
||||||
|
} elseif(get_class($entry) == 'SeedDMS_Core_Folder') {
|
||||||
|
$folder = $entry;
|
||||||
|
$recs[] = array(
|
||||||
|
'type'=>'folder',
|
||||||
|
'id'=>$folder->getId(),
|
||||||
|
'name'=>$folder->getName(),
|
||||||
|
'comment'=>$folder->getComment(),
|
||||||
|
'date'=>$folder->getDate(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$app->response()->header('Content-Type', 'application/json');
|
||||||
|
echo json_encode(array('success'=>true, 'message'=>'', 'data'=>$recs));
|
||||||
|
} /* }}} */
|
||||||
|
|
||||||
//$app = new Slim(array('mode'=>'development', '_session.handler'=>null));
|
//$app = new Slim(array('mode'=>'development', '_session.handler'=>null));
|
||||||
$app = new \Slim\Slim(array('mode'=>'development', '_session.handler'=>null));
|
$app = new \Slim\Slim(array('mode'=>'development', '_session.handler'=>null));
|
||||||
|
|
||||||
|
@ -704,6 +764,7 @@ $app->post('/login', 'doLogin');
|
||||||
$app->get('/logout', 'doLogout');
|
$app->get('/logout', 'doLogout');
|
||||||
$app->get('/account', 'getAccount');
|
$app->get('/account', 'getAccount');
|
||||||
$app->get('/search', 'doSearch');
|
$app->get('/search', 'doSearch');
|
||||||
|
$app->get('/searchbyattr', 'doSearchByAttr');
|
||||||
$app->get('/folder/:id', 'getFolder');
|
$app->get('/folder/:id', 'getFolder');
|
||||||
$app->post('/folder/:id/move', 'moveFolder');
|
$app->post('/folder/:id/move', 'moveFolder');
|
||||||
$app->delete('/folder/:id', 'deleteFolder');
|
$app->delete('/folder/:id', 'deleteFolder');
|
||||||
|
|
Loading…
Reference in New Issue
Block a user