diff --git a/SeedDMS_Core/Core/inc.ClassDMS.php b/SeedDMS_Core/Core/inc.ClassDMS.php index ef823325b..0d9c2c24f 100644 --- a/SeedDMS_Core/Core/inc.ClassDMS.php +++ b/SeedDMS_Core/Core/inc.ClassDMS.php @@ -623,12 +623,11 @@ class SeedDMS_Core_DMS { foreach($attributes as $attrdefid=>$attribute) { if($attribute) { $attrdef = $this->getAttributeDefinition($attrdefid); - if($attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_document) { + if($attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_folder) { if($attrdef->getValueSet()) $searchAttributes[] = "`tblFolderAttributes`.`attrdef`=".$attrdefid." AND `tblFolderAttributes`.`value`='".$attribute."'"; else $searchAttributes[] = "`tblFolderAttributes`.`attrdef`=".$attrdefid." AND `tblFolderAttributes`.`value` like '%".$attribute."%'"; - } elseif($attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_documentcontent) { } } } @@ -665,11 +664,14 @@ class SeedDMS_Core_DMS { if (strlen($searchCreateDate)>0) { $searchQuery .= " AND (".$searchCreateDate.")"; } + if ($searchAttributes) { + $searchQuery .= " AND (".implode(" AND ", $searchAttributes).")"; + } /* Do not search for folders if not at least a search for a key, * an owner, or creation date is requested. */ - if($searchKey || $searchOwner || $searchCreateDate) { + if($searchKey || $searchOwner || $searchCreateDate || $searchAttributes) { // Count the number of rows that the search will produce. $resArr = $this->db->getResultArray("SELECT COUNT(*) AS num ".$searchQuery); if ($resArr && isset($resArr[0]) && is_numeric($resArr[0]["num"]) && $resArr[0]["num"]>0) { @@ -895,6 +897,7 @@ class SeedDMS_Core_DMS { $searchQuery .= " AND `tblDocumentStatusLog`.`status` IN (".implode(',', $status).")"; } + if($searchKey || $searchOwner || $searchCategories || $searchCreateDate || $searchExpirationDate || $searchAttributes || $status) { // Count the number of rows that the search will produce. $resArr = $this->db->getResultArray("SELECT COUNT(*) AS num FROM (SELECT DISTINCT `tblDocuments`.id ".$searchQuery.") a"); $totalDocs = 0; @@ -946,6 +949,9 @@ class SeedDMS_Core_DMS { } else { $docresult = array('totalDocs'=>0, 'docs'=>array()); } + } else { + $docresult = array('totalDocs'=>0, 'docs'=>array()); + } if($limit) { $totalPages = (integer)(($totalDocs+$totalFolders)/$limit); @@ -1500,7 +1506,7 @@ class SeedDMS_Core_DMS { * @return array array of notifications */ function getNotificationsByUser($user, $type=0) { /* {{{ */ - $queryStr = "SELECT `tblNotify`.* FROM `tblNotify` ". + $queryStr = "SELECT `tblNotify`.* FROM `tblNotify` ". "WHERE `tblNotify`.`userID` = ". $user->getID(); if($type) { $queryStr .= " AND `tblNotify`.`targetType` = ". (int) $type; diff --git a/languages/ar_EG/lang.inc b/languages/ar_EG/lang.inc index ae0a07b63..ff9ec522e 100644 --- a/languages/ar_EG/lang.inc +++ b/languages/ar_EG/lang.inc @@ -349,6 +349,8 @@ URL: [url]', 'files_deletion' => 'مسح الملف', 'files_deletion_warning' => 'من خلال تلك الخاصية يمكنك مسح كل الملفات على مجلدات النظام. ملفات معلومات الاصدارات فقط ستظل متاحة للرؤية.', 'file_size' => 'حجم الملف', +'filter_for_documents' => '', +'filter_for_folders' => '', 'folder' => 'مجلد', 'folders' => 'مجلدات', 'folders_and_documents_statistic' => 'رؤية عامة للمحتوى', diff --git a/languages/ca_ES/lang.inc b/languages/ca_ES/lang.inc index aa700144e..04efdd588 100644 --- a/languages/ca_ES/lang.inc +++ b/languages/ca_ES/lang.inc @@ -300,6 +300,8 @@ $text = array( 'files_deletion' => 'Eliminació de fitxers', 'files_deletion_warning' => 'Amb aquesta opció es poden eliminar tots els fitxers del DMS complet. La informació de versionat romandrà visible.', 'file_size' => 'Mida', +'filter_for_documents' => '', +'filter_for_folders' => '', 'folder' => 'Carpeta', 'folders' => 'Carpetes', 'folders_and_documents_statistic' => 'Vista general de continguts', diff --git a/languages/cs_CZ/lang.inc b/languages/cs_CZ/lang.inc index 68e46805b..59d3ef193 100644 --- a/languages/cs_CZ/lang.inc +++ b/languages/cs_CZ/lang.inc @@ -356,6 +356,8 @@ URL: [url]', 'files_deletion' => 'Soubor odstraněn', 'files_deletion_warning' => 'Pomocí této volby můžete odstranit všechny soubory z celé složky DMS. Verzovací informace zůstanou viditelné.', 'file_size' => 'Velikost souboru', +'filter_for_documents' => '', +'filter_for_folders' => '', 'folder' => 'Složka', 'folders' => 'Složky', 'folders_and_documents_statistic' => 'Přehled složek a dokumentů', diff --git a/languages/de_DE/lang.inc b/languages/de_DE/lang.inc index 40996b03a..3fb838a61 100644 --- a/languages/de_DE/lang.inc +++ b/languages/de_DE/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1904) +// Translators: Admin (1906) $text = array( 'accept' => 'Übernehmen', @@ -356,6 +356,8 @@ URL: [url]', 'files_deletion' => 'Dateien löschen', 'files_deletion_warning' => 'Durch diese Operation können Sie Dokumente des DMS löschen. Die Versions-Information bleibt erhalten.', 'file_size' => 'Dateigröße', +'filter_for_documents' => 'Zusätzliche Filter für Dokumente', +'filter_for_folders' => 'Zusätzliche Filter für Ordner', 'folder' => 'Ordner', 'folders' => 'Verzeichnisse', 'folders_and_documents_statistic' => 'Ordner- und Dokumentenübersicht', diff --git a/languages/en_GB/lang.inc b/languages/en_GB/lang.inc index cc756555d..04672e7c1 100644 --- a/languages/en_GB/lang.inc +++ b/languages/en_GB/lang.inc @@ -19,7 +19,7 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -// Translators: Admin (1044), netixw (14) +// Translators: Admin (1046), netixw (14) $text = array( 'accept' => 'Accept', @@ -356,6 +356,8 @@ URL: [url]', 'files_deletion' => 'Files deletion', 'files_deletion_warning' => 'With this option you can delete all files of entire DMS folders. The versioning information will remain visible.', 'file_size' => 'Filesize', +'filter_for_documents' => 'Additional filter for documents', +'filter_for_folders' => 'Additional filter for folders', 'folder' => 'Folder', 'folders' => 'Folders', 'folders_and_documents_statistic' => 'Contents overview', diff --git a/languages/es_ES/lang.inc b/languages/es_ES/lang.inc index 735fe7d7a..bda383179 100644 --- a/languages/es_ES/lang.inc +++ b/languages/es_ES/lang.inc @@ -356,6 +356,8 @@ URL: [url]', 'files_deletion' => 'Eliminación de ficheros', 'files_deletion_warning' => 'Con esta opción se puede eliminar todos los ficheros del DMS completo. La información de versionado permanecerá visible.', 'file_size' => 'Tamaño', +'filter_for_documents' => '', +'filter_for_folders' => '', 'folder' => 'Carpeta', 'folders' => 'Carpetas', 'folders_and_documents_statistic' => 'Vista general de contenidos', diff --git a/languages/fr_FR/lang.inc b/languages/fr_FR/lang.inc index 33bacea19..ad387d110 100644 --- a/languages/fr_FR/lang.inc +++ b/languages/fr_FR/lang.inc @@ -349,6 +349,8 @@ URL: [url]', 'files_deletion' => 'Suppression de fichiers', 'files_deletion_warning' => 'Avec cette option, vous pouvez supprimer tous les fichiers d\'un dossier DMS. Les informations de version resteront visibles.', 'file_size' => 'Taille', +'filter_for_documents' => '', +'filter_for_folders' => '', 'folder' => 'Dossier', 'folders' => 'Dossiers', 'folders_and_documents_statistic' => 'Aperçu du contenu', diff --git a/languages/hu_HU/lang.inc b/languages/hu_HU/lang.inc index 54854e110..32dc86a71 100644 --- a/languages/hu_HU/lang.inc +++ b/languages/hu_HU/lang.inc @@ -356,6 +356,8 @@ URL: [url]', 'files_deletion' => 'Állományok törlése', 'files_deletion_warning' => 'Ezzel az opcióval törölheti az összes állományt valamennyi DMS mappában. A változási információk láthatók maradnak.', 'file_size' => 'Állomány méret', +'filter_for_documents' => '', +'filter_for_folders' => '', 'folder' => 'Mappa', 'folders' => 'Mappák', 'folders_and_documents_statistic' => 'Tartalmak áttekintése', diff --git a/languages/it_IT/lang.inc b/languages/it_IT/lang.inc index 047631fdc..77433a347 100644 --- a/languages/it_IT/lang.inc +++ b/languages/it_IT/lang.inc @@ -300,6 +300,8 @@ $text = array( 'files_deletion' => 'Cancellazione file', 'files_deletion_warning' => 'Con questa operazione è possible cancellare i file di intere cartelle. Dopo la cancellazione le informazioni di versionamento resteranno disponibili.', 'file_size' => 'Grandezza', +'filter_for_documents' => '', +'filter_for_folders' => '', 'folder' => 'Cartella', 'folders' => 'Cartelle', 'folders_and_documents_statistic' => 'Visualizzazione generale', diff --git a/languages/nl_NL/lang.inc b/languages/nl_NL/lang.inc index fa45e783f..61fe6b4a7 100644 --- a/languages/nl_NL/lang.inc +++ b/languages/nl_NL/lang.inc @@ -349,6 +349,8 @@ URL: [url]', 'files_deletion' => 'Bestanden verwijderen', 'files_deletion_warning' => 'Met deze handeling verwijdert U ALLE bestanden uit het DMS. Versie informatie blijft beschikbaar', 'file_size' => 'Bestandsomvang', +'filter_for_documents' => '', +'filter_for_folders' => '', 'folder' => 'Map', 'folders' => 'Mappen', 'folders_and_documents_statistic' => 'Inhoudsopgave', diff --git a/languages/pl_PL/lang.inc b/languages/pl_PL/lang.inc index 7f9b354af..001bd2638 100644 --- a/languages/pl_PL/lang.inc +++ b/languages/pl_PL/lang.inc @@ -349,6 +349,8 @@ URL: [url]', 'files_deletion' => 'Usuwanie plików', 'files_deletion_warning' => 'Ta operacja pozwala usunąć wszystkie pliki z repozytorium. Informacje o wersjonowaniu pozostaną widoczne.', 'file_size' => 'Rozmiar pliku', +'filter_for_documents' => '', +'filter_for_folders' => '', 'folder' => 'Folder', 'folders' => 'Foldery', 'folders_and_documents_statistic' => 'Podsumowanie zawartości', diff --git a/languages/pt_BR/lang.inc b/languages/pt_BR/lang.inc index 2460e3420..52b51b186 100644 --- a/languages/pt_BR/lang.inc +++ b/languages/pt_BR/lang.inc @@ -355,6 +355,8 @@ URL: [url]', 'files_deletion' => 'Arquivos deletados', 'files_deletion_warning' => 'With this option you can delete all files of entire DMS folders. The versioning information will remain visible.', 'file_size' => 'Tamanho', +'filter_for_documents' => '', +'filter_for_folders' => '', 'folder' => 'Pasta', 'folders' => 'Pastas', 'folders_and_documents_statistic' => 'Relatórios de pastas e documentos', diff --git a/languages/ru_RU/lang.inc b/languages/ru_RU/lang.inc index c3fd6eb0a..4a9c095f6 100644 --- a/languages/ru_RU/lang.inc +++ b/languages/ru_RU/lang.inc @@ -349,6 +349,8 @@ URL: [url]', 'files_deletion' => 'Удалить файлы', 'files_deletion_warning' => 'Эта операция удалит все файлы во всех каталогах. Информация о версиях останется доступна', 'file_size' => 'Размер', +'filter_for_documents' => '', +'filter_for_folders' => '', 'folder' => 'Каталог', 'folders' => 'кат.', 'folders_and_documents_statistic' => 'Обзор содержимого', diff --git a/languages/sk_SK/lang.inc b/languages/sk_SK/lang.inc index 2c607c99c..86db26b5f 100644 --- a/languages/sk_SK/lang.inc +++ b/languages/sk_SK/lang.inc @@ -300,6 +300,8 @@ $text = array( 'files_deletion' => 'Odstránenie súboru', 'files_deletion_warning' => 'Touto akciou môžete odstrániť celú DMS zložku. Verziovacie informácie zostanú viditeľné.', 'file_size' => 'Veľkosť súboru', +'filter_for_documents' => '', +'filter_for_folders' => '', 'folder' => 'Zlozka', 'folders' => 'Zložky', 'folders_and_documents_statistic' => 'Prehľad zložiek a dokumentov', diff --git a/languages/sv_SE/lang.inc b/languages/sv_SE/lang.inc index ac79cb25e..429473a28 100644 --- a/languages/sv_SE/lang.inc +++ b/languages/sv_SE/lang.inc @@ -349,6 +349,8 @@ URL: [url]', 'files_deletion' => 'Ta bort alla filer', 'files_deletion_warning' => 'Med detta alternativ kan du ta bort alla filer i en dokumentkatalog. Versionsinformationen kommer fortfarande att visas.', 'file_size' => 'Filstorlek', +'filter_for_documents' => '', +'filter_for_folders' => '', 'folder' => 'Katalog', 'folders' => 'Kataloger', 'folders_and_documents_statistic' => 'Innehållsöversikt', diff --git a/languages/zh_CN/lang.inc b/languages/zh_CN/lang.inc index 8aa971c7d..0578069e1 100644 --- a/languages/zh_CN/lang.inc +++ b/languages/zh_CN/lang.inc @@ -304,6 +304,8 @@ URL: [url]', 'files_deletion' => '删除文件', 'files_deletion_warning' => '通过此操作,您可以删除整个DMS(文档管理系统)文件夹里的所有文件.但版本信息将被保留', 'file_size' => '文件大小', +'filter_for_documents' => '', +'filter_for_folders' => '', 'folder' => '文件夹', 'folders' => '文件夹', 'folders_and_documents_statistic' => '内容概要', diff --git a/languages/zh_TW/lang.inc b/languages/zh_TW/lang.inc index 8698f444e..ec9c60c58 100644 --- a/languages/zh_TW/lang.inc +++ b/languages/zh_TW/lang.inc @@ -300,6 +300,8 @@ $text = array( 'files_deletion' => '', 'files_deletion_warning' => '', 'file_size' => '', +'filter_for_documents' => '', +'filter_for_folders' => '', 'folder' => '', 'folders' => '', 'folders_and_documents_statistic' => '', diff --git a/op/op.Search.php b/op/op.Search.php index 42b7f3039..727c1e067 100644 --- a/op/op.Search.php +++ b/op/op.Search.php @@ -436,7 +436,7 @@ if(count($entries) == 1 && ($resArr['totalDocs'] + $resArr['totalFolders']) == 1 $view->setParam('status', isset($status) ? $status : array()); $view->setParam('categories', isset($categories) ? $categories : ''); $view->setParam('attributes', isset($attributes) ? $attributes : ''); - $attrdefs = $dms->getAllAttributeDefinitions(array(SeedDMS_Core_AttributeDefinition::objtype_document, SeedDMS_Core_AttributeDefinition::objtype_documentcontent/*, SeedDMS_Core_AttributeDefinition::objtype_all*/)); + $attrdefs = $dms->getAllAttributeDefinitions(array(SeedDMS_Core_AttributeDefinition::objtype_document, SeedDMS_Core_AttributeDefinition::objtype_documentcontent, SeedDMS_Core_AttributeDefinition::objtype_folder/*, SeedDMS_Core_AttributeDefinition::objtype_all*/)); $view->setParam('attrdefs', $attrdefs); $allCats = $dms->getDocumentCategories(); $view->setParam('allcategories', $allCats); diff --git a/views/bootstrap/class.Search.php b/views/bootstrap/class.Search.php index fec2b1de8..ac72d624c 100644 --- a/views/bootstrap/class.Search.php +++ b/views/bootstrap/class.Search.php @@ -100,11 +100,11 @@ class SeedDMS_View_Search extends SeedDMS_Bootstrap_Style {
+
contentContainerStart(); ?> - @@ -125,51 +125,6 @@ class SeedDMS_View_Search extends SeedDMS_Bootstrap_Style { - - - - - - - - - - - - - - - + + + +
:
getName()); ?>printAttributeEditField($attrdef, isset($attributes[$attrdef->getID()]) ? $attributes[$attrdef->getID()] : '') ?>
:
()
- -
:
()
- - - - - - - - - - -
: @@ -207,7 +162,79 @@ class SeedDMS_View_Search extends SeedDMS_Bootstrap_Style {
:
()
+contentContainerEnd(); +// }}} + + /* First check if any of the folder filters are set. If it is, + * open the accordion. + */ + $openfilterdlg = false; + if($attrdefs) { + foreach($attrdefs as $attrdef) { + $attricon = ''; + if($attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_document || $attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_documentcontent) { + if(!empty($attributes[$attrdef->getID()])) + $openfilterdlg = true; + } + } + } + if($categories) + $openfilterdlg = true; + if($status) + $openfilterdlg = true; + if($expirationdate) + $openfilterdlg = true; +?> +
+
+
+ + + +
+
" style="_height: 0px;"> +
+ + + + + + + + + + + +getObjType() == SeedDMS_Core_AttributeDefinition::objtype_document || $attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_documentcontent) { +?> - + + -
: + +
: + + + + + + + + + + +
:
getName()); ?>:printAttributeEditField($attrdef, isset($attributes[$attrdef->getID()]) ? $attributes[$attrdef->getID()] : '') ?>
- contentContainerEnd(); -// }}} + } + } + } ?> + +
+
+
+
+getObjType() == SeedDMS_Core_AttributeDefinition::objtype_folder) { + if(!empty($attributes[$attrdef->getID()])) + $openfilterdlg = true; + } + } + } +?> +
+
+
+ + + +
+
" style="_height: 0px;"> +
+ +getObjType() == SeedDMS_Core_AttributeDefinition::objtype_folder) { +?> + + + + + +
getName()); ?>:printAttributeEditField($attrdef, isset($attributes[$attrdef->getID()]) ? $attributes[$attrdef->getID()] : '') ?>
+
+
+
+
+