diff --git a/classes/paper/Paper.inc.php b/classes/paper/Paper.inc.php index 44be0a1..b271b5f 100644 --- a/classes/paper/Paper.inc.php +++ b/classes/paper/Paper.inc.php @@ -41,6 +41,7 @@ define('SUBMISSION_FIELD_AUTHOR', 1); define('SUBMISSION_FIELD_DIRECTOR', 2); define('SUBMISSION_FIELD_TITLE', 3); define('SUBMISSION_FIELD_REVIEWER', 4); +define('SUBMISSION_FIELD_ID', 8); define('SUBMISSION_FIELD_DATE_SUBMITTED', 5); diff --git a/classes/submission/director/DirectorSubmissionDAO.inc.php b/classes/submission/director/DirectorSubmissionDAO.inc.php index 1e14b5d..49af2e9 100644 --- a/classes/submission/director/DirectorSubmissionDAO.inc.php +++ b/classes/submission/director/DirectorSubmissionDAO.inc.php @@ -197,6 +197,10 @@ class DirectorSubmissionDAO extends DAO { $searchSql = ''; if (!empty($search)) switch ($searchField) { + case SUBMISSION_FIELD_ID: + $params[] = (int) $search; + $searchSql = ' AND p.paper_id = ?'; + break; case SUBMISSION_FIELD_TITLE: if ($searchMatch === 'is') { $searchSql = ' AND LOWER(ptl.setting_value) = LOWER(?)'; diff --git a/classes/submission/trackDirector/TrackDirectorSubmissionDAO.inc.php b/classes/submission/trackDirector/TrackDirectorSubmissionDAO.inc.php index ce52eb0..6fe6bb6 100644 --- a/classes/submission/trackDirector/TrackDirectorSubmissionDAO.inc.php +++ b/classes/submission/trackDirector/TrackDirectorSubmissionDAO.inc.php @@ -296,6 +296,10 @@ class TrackDirectorSubmissionDAO extends DAO { $searchSql = ''; if (!empty($search)) switch ($searchField) { + case SUBMISSION_FIELD_ID: + $params[] = (int) $search; + $searchSql = ' AND p.paper_id = ?'; + break; case SUBMISSION_FIELD_TITLE: if ($searchMatch === 'is') { $searchSql = ' AND LOWER(ptl.setting_value) = LOWER(?)'; diff --git a/pages/director/DirectorHandler.inc.php b/pages/director/DirectorHandler.inc.php index addb5a8..10be62d 100644 --- a/pages/director/DirectorHandler.inc.php +++ b/pages/director/DirectorHandler.inc.php @@ -177,6 +177,12 @@ class DirectorHandler extends TrackDirectorHandler { $submissions =& ArrayItemIterator::fromRangeInfo($submissionsArray, $rangeInfo); } + // If only result is returned from a search, fast-forward to it + if ($search && $submissions && $submissions->getCount() == 1) { + $submission =& $submissions->next(); + $request->redirect(null, null, null, 'submission', array($submission->getId())); + } + $templateMgr =& TemplateManager::getManager(); $templateMgr->assign('pageToDisplay', $page); $templateMgr->assign('director', $user->getFullName()); @@ -202,6 +208,7 @@ class DirectorHandler extends TrackDirectorHandler { $templateMgr->assign('fieldOptions', Array( SUBMISSION_FIELD_TITLE => 'paper.title', + SUBMISSION_FIELD_ID => 'paper.submissionId', SUBMISSION_FIELD_AUTHOR => 'user.role.author', SUBMISSION_FIELD_DIRECTOR => 'user.role.director', SUBMISSION_FIELD_REVIEWER => 'user.role.reviewer' diff --git a/pages/trackDirector/TrackDirectorHandler.inc.php b/pages/trackDirector/TrackDirectorHandler.inc.php index 0e07403..dc8ce4a 100644 --- a/pages/trackDirector/TrackDirectorHandler.inc.php +++ b/pages/trackDirector/TrackDirectorHandler.inc.php @@ -116,7 +116,7 @@ class TrackDirectorHandler extends Handler { $rangeInfo =& $submissions->getLastPageRangeInfo(); unset($submissions); } - + if ($sort == 'status') { // Sort all submissions by status, which is too complex to do in the DB $submissionsArray = $submissions->toArray(); @@ -130,6 +130,12 @@ class TrackDirectorHandler extends Handler { $submissions =& ArrayItemIterator::fromRangeInfo($submissionsArray, $rangeInfo); } + // If only result is returned from a search, fast-forward to it + if ($search && $submissions && $submissions->getCount() == 1) { + $submission =& $submissions->next(); + $request->redirect(null, null, null, 'submission', array($submission->getId())); + } + $templateMgr =& TemplateManager::getManager(); $templateMgr->assign('helpTopicId', $helpTopicId); $templateMgr->assign('trackOptions', $filterTrackOptions); @@ -156,6 +162,7 @@ class TrackDirectorHandler extends Handler { $templateMgr->assign('fieldOptions', Array( SUBMISSION_FIELD_TITLE => 'paper.title', + SUBMISSION_FIELD_ID => 'paper.submissionId', SUBMISSION_FIELD_AUTHOR => 'user.role.author', SUBMISSION_FIELD_DIRECTOR => 'user.role.director' ));