diff --git a/inc/inc.ClassDownloadMgr.php b/inc/inc.ClassDownloadMgr.php index 7589f3f6b..55308ccbf 100644 --- a/inc/inc.ClassDownloadMgr.php +++ b/inc/inc.ClassDownloadMgr.php @@ -39,13 +39,21 @@ class SeedDMS_Download_Mgr { */ protected $items; + /** + * @var array $extracols list of arrays with extra columns per item + * @access protected + */ + protected $extracols; + function __construct($tmpdir = '') { $this->tmpdir = $tmpdir; $this->items = array(); + $this->extracols = array(); } - public function addItem($item) { /* {{{ */ + public function addItem($item, $extracols) { /* {{{ */ $this->items[$item->getID()] = $item; + $this->extracols[$item->getID()] = $extracols; } /* }}} */ public function createToc($file) { /* {{{ */ @@ -113,9 +121,9 @@ class SeedDMS_Download_Mgr { $sheet->setCellValueByColumnAndRow($tcol++, $l, getReviewStatusText($r["status"])); $l++; } - $col = $tcol; $l--; } + $col += 4; if($approvalStatus) { foreach ($approvalStatus as $r) { switch ($r["type"]) { @@ -144,9 +152,13 @@ class SeedDMS_Download_Mgr { $sheet->setCellValueByColumnAndRow($tcol++, $k, getApprovalStatusText($r["status"])); $k++; } - $col = $tcol; $k--; } + $col += 4; + if(isset($this->extracols[$item->getID()]) && $this->extracols[$item->getID()]) { + foreach($this->extracols[$item->getID()] as $column) + $sheet->setCellValueByColumnAndRow($col++, $i, $column); + } $i = max($l, $k); $i++; } diff --git a/op/op.CreateDump.php b/op/op.CreateDump.php index 25c2fbf21..ceab734ab 100644 --- a/op/op.CreateDump.php +++ b/op/op.CreateDump.php @@ -33,7 +33,7 @@ if (!$user->isAdmin()) { if($settings->_backupDir && file_exists($settings->_backupDir)) $basedir = $settings->_backupDir; else - $basedir = $setting->_contentDir; + $basedir = $settings->_contentDir; $v = new SeedDMS_Version; $dump_name = $basedir.date('Y-m-d\TH:i:s')."_".$v->_number.".sql"; diff --git a/out/out.AddDocument.php b/out/out.AddDocument.php index 2e522237a..f47e92968 100644 --- a/out/out.AddDocument.php +++ b/out/out.AddDocument.php @@ -27,6 +27,10 @@ include("../inc/inc.Language.php"); include("../inc/inc.ClassUI.php"); include("../inc/inc.Authentication.php"); +$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); +$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); +$accessop = new SeedDMS_AccessOperation($dms, $user, $settings); + if (!isset($_GET["folderid"]) || !is_numeric($_GET["folderid"]) || intval($_GET["folderid"])<1) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } @@ -60,8 +64,6 @@ if($settings->_libraryFolder) { $libfolder = null; } -$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); -$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); if($view) { $view->setParam('folder', $folder); $view->setParam('strictformcheck', $settings->_strictFormCheck); @@ -75,6 +77,7 @@ if($view) { $view->setParam('presetexpiration', $settings->_presetExpirationDate); $view->setParam('sortusersinlist', $settings->_sortUsersInList); $view->setParam('orderby', $settings->_sortFoldersDefault); + $view->setParam('accessobject', $accessop); $view($_GET); exit; } diff --git a/out/out.AddSubFolder.php b/out/out.AddSubFolder.php index 0f9e14ff2..e5a1264a8 100644 --- a/out/out.AddSubFolder.php +++ b/out/out.AddSubFolder.php @@ -28,6 +28,10 @@ include("../inc/inc.DBInit.php"); include("../inc/inc.ClassUI.php"); include("../inc/inc.Authentication.php"); +$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); +$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); +$accessop = new SeedDMS_AccessOperation($dms, $user, $settings); + if (!isset($_GET["folderid"]) || !is_numeric($_GET["folderid"]) || intval($_GET["folderid"])<1) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } @@ -40,12 +44,11 @@ if ($folder->getAccessMode($user) < M_READWRITE) { UI::exitError(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName()))),getMLText("access_denied")); } -$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); -$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); if($view) { $view->setParam('folder', $folder); $view->setParam('strictformcheck', $settings->_strictFormCheck); $view->setParam('orderby', $settings->_sortFoldersDefault); + $view->setParam('accessobject', $accessop); $view($_GET); exit; } diff --git a/out/out.EditEvent.php b/out/out.EditEvent.php index 3372a0afe..0add550cc 100644 --- a/out/out.EditEvent.php +++ b/out/out.EditEvent.php @@ -25,6 +25,10 @@ include("../inc/inc.ClassUI.php"); include("../inc/inc.Calendar.php"); include("../inc/inc.Authentication.php"); +$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); +$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); +$accessop = new SeedDMS_AccessOperation($dms, $user, $settings); + if ($user->isGuest()) { UI::exitError(getMLText("edit_event"),getMLText("access_denied")); } @@ -42,11 +46,10 @@ if (($user->getID()!=$event["userID"])&&(!$user->isAdmin())){ UI::exitError(getMLText("edit_event"),getMLText("access_denied")); } -$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); -$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); if($view) { $view->setParam('event', $event); $view->setParam('strictformcheck', $settings->_strictFormCheck); + $view->setParam('accessobject', $accessop); $view($_GET); exit; } diff --git a/out/out.EditFolder.php b/out/out.EditFolder.php index 1639784f7..a8b9c49fb 100644 --- a/out/out.EditFolder.php +++ b/out/out.EditFolder.php @@ -26,6 +26,10 @@ include("../inc/inc.DBInit.php"); include("../inc/inc.ClassUI.php"); include("../inc/inc.Authentication.php"); +$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); +$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); +$accessop = new SeedDMS_AccessOperation($dms, $user, $settings); + if (!isset($_GET["folderid"]) || !is_numeric($_GET["folderid"]) || intval($_GET["folderid"])<1) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } @@ -41,14 +45,13 @@ if ($folder->getAccessMode($user) < M_READWRITE) { $attrdefs = $dms->getAllAttributeDefinitions(array(SeedDMS_Core_AttributeDefinition::objtype_folder, SeedDMS_Core_AttributeDefinition::objtype_all)); -$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); -$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); if($view) { $view->setParam('folder', $folder); $view->setParam('attrdefs', $attrdefs); $view->setParam('strictformcheck', $settings->_strictFormCheck); $view->setParam('rootfolderid', $settings->_rootFolderID); $view->setParam('orderby', $settings->_sortFoldersDefault); + $view->setParam('accessobject', $accessop); $view($_GET); exit; } diff --git a/out/out.FolderAccess.php b/out/out.FolderAccess.php index ae2a92d70..4198fa458 100644 --- a/out/out.FolderAccess.php +++ b/out/out.FolderAccess.php @@ -27,6 +27,10 @@ include("../inc/inc.DBInit.php"); include("../inc/inc.ClassUI.php"); include("../inc/inc.Authentication.php"); +$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); +$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); +$accessop = new SeedDMS_AccessOperation($dms, $user, $settings); + if (!isset($_GET["folderid"]) || !is_numeric($_GET["folderid"]) || intval($_GET["folderid"])<1) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } @@ -43,13 +47,12 @@ if ($folder->getAccessMode($user) < M_ALL) { $allUsers = $dms->getAllUsers(); $allGroups = $dms->getAllGroups(); -$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); -$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); if($view) { $view->setParam('folder', $folder); $view->setParam('allusers', $allUsers); $view->setParam('allgroups', $allGroups); $view->setParam('rootfolderid', $settings->_rootFolderID); + $view->setParam('accessobject', $accessop); $view($_GET); exit; } diff --git a/out/out.FolderNotify.php b/out/out.FolderNotify.php index 410c4f77c..e20a32356 100644 --- a/out/out.FolderNotify.php +++ b/out/out.FolderNotify.php @@ -29,6 +29,7 @@ include("../inc/inc.Authentication.php"); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); +$accessop = new SeedDMS_AccessOperation($dms, $user, $settings); if (!isset($_GET["folderid"]) || !is_numeric($_GET["folderid"]) || intval($_GET["folderid"])<1) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); @@ -51,6 +52,7 @@ if($view) { $view->setParam('allusers', $allUsers); $view->setParam('allgroups', $allGroups); $view->setParam('strictformcheck', $settings->_strictFormCheck); + $view->setParam('accessobject', $accessop); $view($_GET); exit; } diff --git a/out/out.MoveFolder.php b/out/out.MoveFolder.php index bf49b8c49..479761eae 100644 --- a/out/out.MoveFolder.php +++ b/out/out.MoveFolder.php @@ -27,6 +27,10 @@ include("../inc/inc.DBInit.php"); include("../inc/inc.ClassUI.php"); include("../inc/inc.Authentication.php"); +$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); +$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); +$accessop = new SeedDMS_AccessOperation($dms, $user, $settings); + if (!isset($_GET["folderid"]) || !is_numeric($_GET["folderid"]) || intval($_GET["folderid"])<1) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } @@ -62,11 +66,10 @@ if(isset($_GET['targetid']) && $_GET['targetid']) { $target = null; } -$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); -$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); if($view) { $view->setParam('folder', $folder); $view->setParam('target', $target); + $view->setParam('accessobject', $accessop); $view($_GET); exit; } diff --git a/out/out.RemoveFolder.php b/out/out.RemoveFolder.php index fef49f7b9..c14adf041 100644 --- a/out/out.RemoveFolder.php +++ b/out/out.RemoveFolder.php @@ -26,6 +26,10 @@ include("../inc/inc.DBInit.php"); include("../inc/inc.ClassUI.php"); include("../inc/inc.Authentication.php"); +$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); +$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); +$accessop = new SeedDMS_AccessOperation($dms, $user, $settings); + if (!isset($_GET["folderid"]) || !is_numeric($_GET["folderid"]) || intval($_GET["folderid"])<1) { UI::exitError(getMLText("folder_title", array("foldername" => getMLText("invalid_folder_id"))),getMLText("invalid_folder_id")); } @@ -44,10 +48,9 @@ if ($folder->getAccessMode($user) < M_ALL) { UI::exitError(getMLText("folder_title", array("foldername" => htmlspecialchars($folder->getName()))),getMLText("access_denied")); } -$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); -$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); if($view) { $view->setParam('folder', $folder); + $view->setParam('accessobject', $accessop); $view($_GET); exit; } diff --git a/out/out.Search.php b/out/out.Search.php index dd312a21b..c4c847b9f 100644 --- a/out/out.Search.php +++ b/out/out.Search.php @@ -360,7 +360,7 @@ if(isset($_GET["fullsearch"]) && $_GET["fullsearch"] && $settings->_enableFullSe $pageNumber = (int) $_GET["pg"]; } elseif (!strcasecmp($_GET["pg"], "all")) { - // $limit = 0; + $pageNumber = "all"; } } @@ -393,90 +393,58 @@ if(isset($_GET["fullsearch"]) && $_GET["fullsearch"] && $settings->_enableFullSe } } } - if(isset($_GET['export']) && $_GET['export']) { - include("../inc/inc.ClassDownloadMgr.php"); - $downmgr = new SeedDMS_Download_Mgr(); - foreach($entries as $entry) { - if(get_class($entry) == $dms->getClassname('document')) { - $downmgr->addItem($entry->getLatestContent()); - } - } - $filename = tempnam('/tmp', ''); - if(isset($_GET['includecontent']) && $_GET['includecontent']) { - $downmgr->createArchive($filename); - header("Content-Transfer-Encoding: binary"); - header("Content-Length: " . filesize($filename)); - header("Content-Disposition: attachment; filename=\"export-" .date('Y-m-d') . ".zip\""); - header("Content-Type: application/zip"); - header("Cache-Control: must-revalidate"); - } else { - $downmgr->createToc($filename); - header("Content-Transfer-Encoding: binary"); - header("Content-Length: " . filesize($filename)); - header("Content-Disposition: attachment; filename=\"export-" .date('Y-m-d') . ".xls\""); - header("Content-Type: application/vnd.ms-excel"); - header("Cache-Control: must-revalidate"); - } - - readfile($filename); - unlink($filename); - exit; - } $totalPages = (int) (count($entries)/$limit); if(count($entries)%$limit) $totalPages++; - if (!isset($_GET["pg"]) || strcasecmp($_GET["pg"], "all")) - $entries = array_slice($entries, ($pageNumber-1)*$limit, $limit); // }}} } // -------------- Output results -------------------------------------------- -if(count($entries) == 1) { - $entry = $entries[0]; - if(get_class($entry) == $dms->getClassname('document')) { - header('Location: ../out/out.ViewDocument.php?documentid='.$entry->getID()); - exit; - } elseif(get_class($entry) == $dms->getClassname('folder')) { - header('Location: ../out/out.ViewFolder.php?folderid='.$entry->getID()); - exit; - } -} else { - $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); - $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'query'=>$query, 'searchhits'=>$entries, 'totalpages'=>$totalPages, 'pagenumber'=>$pageNumber, 'searchtime'=>$searchTime, 'urlparams'=>$_GET, 'cachedir'=>$settings->_cacheDir)); - if($view) { - $view->setParam('totaldocs', $dcount /*resArr['totalDocs']*/); - $view->setParam('totalfolders', $fcount /*resArr['totalFolders']*/); - $view->setParam('fullsearch', (isset($_GET["fullsearch"]) && $_GET["fullsearch"] && $settings->_enableFullSearch) ? true : false); - $view->setParam('mode', isset($mode) ? $mode : ''); - $view->setParam('defaultsearchmethod', $settings->_defaultSearchMethod); - $view->setParam('resultmode', isset($resultmode) ? $resultmode : ''); - $view->setParam('searchin', isset($searchin) ? $searchin : array()); - $view->setParam('startfolder', isset($startFolder) ? $startFolder : null); - $view->setParam('owner', $owner); - $view->setParam('startdate', isset($startdate) ? $startdate : array()); - $view->setParam('stopdate', isset($stopdate) ? $stopdate : array()); - $view->setParam('expstartdate', isset($expstartdate) ? $expstartdate : array()); - $view->setParam('expstopdate', isset($expstopdate) ? $expstopdate : array()); - $view->setParam('creationdate', isset($creationdate) ? $creationdate : ''); - $view->setParam('expirationdate', isset($expirationdate) ? $expirationdate: ''); - $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_folder, SeedDMS_Core_AttributeDefinition::objtype_all)); - $view->setParam('attrdefs', $attrdefs); - $allCats = $dms->getDocumentCategories(); - $view->setParam('allcategories', $allCats); - $allUsers = $dms->getAllUsers($settings->_sortUsersInList); - $view->setParam('allusers', $allUsers); - $view->setParam('workflowmode', $settings->_workflowMode); - $view->setParam('enablefullsearch', $settings->_enableFullSearch); - $view->setParam('previewWidthList', $settings->_previewWidthList); - $view->setParam('previewconverters', $settings->_converters['preview']); - $view->setParam('timeout', $settings->_cmdTimeout); - $view($_GET); - exit; - } +$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); +$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); +$accessop = new SeedDMS_AccessOperation($dms, $user, $settings); +if($view) { + $view->setParam('accessobject', $accessop); + $view->setParam('query', $query); + $view->setParam('searchhits', $entries); + $view->setParam('totalpages', $totalPages); + $view->setParam('pagenumber', $pageNumber); + $view->setParam('limit', $limit); + $view->setParam('searchtime', $searchTime); + $view->setParam('urlparams', $_GET); + $view->setParam('cachedir', $settings->_cacheDir); + $view->setParam('totaldocs', $dcount /*resArr['totalDocs']*/); + $view->setParam('totalfolders', $fcount /*resArr['totalFolders']*/); + $view->setParam('fullsearch', (isset($_GET["fullsearch"]) && $_GET["fullsearch"] && $settings->_enableFullSearch) ? true : false); + $view->setParam('mode', isset($mode) ? $mode : ''); + $view->setParam('defaultsearchmethod', $settings->_defaultSearchMethod); + $view->setParam('resultmode', isset($resultmode) ? $resultmode : ''); + $view->setParam('searchin', isset($searchin) ? $searchin : array()); + $view->setParam('startfolder', isset($startFolder) ? $startFolder : null); + $view->setParam('owner', $owner); + $view->setParam('startdate', isset($startdate) ? $startdate : array()); + $view->setParam('stopdate', isset($stopdate) ? $stopdate : array()); + $view->setParam('expstartdate', isset($expstartdate) ? $expstartdate : array()); + $view->setParam('expstopdate', isset($expstopdate) ? $expstopdate : array()); + $view->setParam('creationdate', isset($creationdate) ? $creationdate : ''); + $view->setParam('expirationdate', isset($expirationdate) ? $expirationdate: ''); + $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_folder, SeedDMS_Core_AttributeDefinition::objtype_all)); + $view->setParam('attrdefs', $attrdefs); + $allCats = $dms->getDocumentCategories(); + $view->setParam('allcategories', $allCats); + $allUsers = $dms->getAllUsers($settings->_sortUsersInList); + $view->setParam('allusers', $allUsers); + $view->setParam('workflowmode', $settings->_workflowMode); + $view->setParam('enablefullsearch', $settings->_enableFullSearch); + $view->setParam('previewWidthList', $settings->_previewWidthList); + $view->setParam('previewconverters', $settings->_converters['preview']); + $view->setParam('timeout', $settings->_cmdTimeout); + $view($_GET); + exit; } ?> diff --git a/out/out.UserDefaultKeywords.php b/out/out.UserDefaultKeywords.php index f2d2e44d0..751431286 100644 --- a/out/out.UserDefaultKeywords.php +++ b/out/out.UserDefaultKeywords.php @@ -25,16 +25,19 @@ include("../inc/inc.DBInit.php"); include("../inc/inc.ClassUI.php"); include("../inc/inc.Authentication.php"); +$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); +$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); +$accessop = new SeedDMS_AccessOperation($dms, $user, $settings); + if ($user->isGuest()) { UI::exitError(getMLText("edit_default_keywords"),getMLText("access_denied")); } $categories = $dms->getAllUserKeywordCategories($user->getID()); -$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); -$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); if($view) { $view->setParam('categories', $categories); + $view->setParam('accessobject', $accessop); $view($_GET); exit; } diff --git a/out/out.ViewEvent.php b/out/out.ViewEvent.php index 495ec9d4d..37fa590a1 100644 --- a/out/out.ViewEvent.php +++ b/out/out.ViewEvent.php @@ -25,6 +25,9 @@ include("../inc/inc.ClassUI.php"); include("../inc/inc.Calendar.php"); include("../inc/inc.Authentication.php"); +$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); +$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); +$accessop = new SeedDMS_AccessOperation($dms, $user, $settings); if (!isset($_GET["id"])){ UI::exitError(getMLText("event_details"),getMLText("error_occured")); } @@ -34,10 +37,9 @@ if (is_bool($event)&&!$event){ UI::exitError(getMLText("event_details"),getMLText("error_occured")); } -$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); -$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user)); if($view) { $view->setParam('event', $event); + $view->setParam('accessobject', $accessop); $view($_GET); exit; } diff --git a/views/bootstrap/class.Search.php b/views/bootstrap/class.Search.php index 94151dd7d..1a26f9223 100644 --- a/views/bootstrap/class.Search.php +++ b/views/bootstrap/class.Search.php @@ -49,18 +49,60 @@ class SeedDMS_View_Search extends SeedDMS_Bootstrap_Style { function js() { /* {{{ */ header('Content-Type: application/javascript'); - +?> +$(document).ready( function() { + $('#export').on('click', function(e) { + e.preventDefault(); + window.location.href = $(this).attr('href')+'&includecontent='+($('#includecontent').prop('checked') ? '1' : '0'); + }); +}); +printFolderChooserJs("form1"); $this->printDeleteFolderButtonJs(); $this->printDeleteDocumentButtonJs(); } /* }}} */ + function export() { /* {{{ */ + $dms = $this->params['dms']; + $user = $this->params['user']; + $entries = $this->params['searchhits']; + + include("../inc/inc.ClassDownloadMgr.php"); + $downmgr = new SeedDMS_Download_Mgr(); + foreach($entries as $entry) { + if(get_class($entry) == $dms->getClassname('document')) { + $extracols = $this->callHook('extraDownloadColumns', $entry); + $downmgr->addItem($entry->getLatestContent(), $extracols); + } + } + $filename = tempnam('/tmp', ''); + if(isset($_GET['includecontent']) && $_GET['includecontent']) { + $downmgr->createArchive($filename); + header("Content-Transfer-Encoding: binary"); + header("Content-Length: " . filesize($filename)); + header("Content-Disposition: attachment; filename=\"export-" .date('Y-m-d') . ".zip\""); + header("Content-Type: application/zip"); + header("Cache-Control: must-revalidate"); + } else { + $downmgr->createToc($filename); + header("Content-Transfer-Encoding: binary"); + header("Content-Length: " . filesize($filename)); + header("Content-Disposition: attachment; filename=\"export-" .date('Y-m-d') . ".xls\""); + header("Content-Type: application/vnd.ms-excel"); + header("Cache-Control: must-revalidate"); + } + + readfile($filename); + unlink($filename); + } /* }}} */ + function show() { /* {{{ */ $dms = $this->params['dms']; $user = $this->params['user']; $fullsearch = $this->params['fullsearch']; $totaldocs = $this->params['totaldocs']; $totalfolders = $this->params['totalfolders']; + $limit = $this->params['limit']; $attrdefs = $this->params['attrdefs']; $allCats = $this->params['allcategories']; $allUsers = $this->params['allusers']; @@ -92,6 +134,20 @@ class SeedDMS_View_Search extends SeedDMS_Bootstrap_Style { $previewconverters = $this->params['previewconverters']; $timeout = $this->params['timeout']; + if(count($entries) == 1) { + $entry = $entries[0]; + if(get_class($entry) == $dms->getClassname('document')) { + header('Location: ../out/out.ViewDocument.php?documentid='.$entry->getID()); + exit; + } elseif(get_class($entry) == $dms->getClassname('folder')) { + header('Location: ../out/out.ViewFolder.php?folderid='.$entry->getID()); + exit; + } + } + + if ($pageNumber != 'all') + $entries = array_slice($entries, ($pageNumber-1)*$limit, $limit); + $this->htmlAddHeader(''."\n", 'js'); $this->htmlStartPage(getMLText("search_results")); @@ -249,17 +305,9 @@ class SeedDMS_View_Search extends SeedDMS_Bootstrap_Style { -"> Export +"> Export -