Commit 7c98a904596dbc0d6acaa6e6a590a78af8e383e0
1 parent
8379b6b1
integrated searching metadata values when restoring archived documents
git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@2045 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
2 changed files
with
52 additions
and
49 deletions
presentation/lookAndFeel/knowledgeTree/administration/documentmanagement/archivedDocumentsUI.inc
| @@ -24,7 +24,7 @@ function renderStatusPage($aSuccessDocuments, $aErrorDocuments) { | @@ -24,7 +24,7 @@ function renderStatusPage($aSuccessDocuments, $aErrorDocuments) { | ||
| 24 | $sToRender .= "<tr><td>The following documents were successfully restored:</td></tr>\n"; | 24 | $sToRender .= "<tr><td>The following documents were successfully restored:</td></tr>\n"; |
| 25 | $sToRender .= "<tr/><tr/>"; | 25 | $sToRender .= "<tr/><tr/>"; |
| 26 | for ($i=0; $i<count($aSuccessDocuments); $i++) { | 26 | for ($i=0; $i<count($aSuccessDocuments); $i++) { |
| 27 | - $sToRender .= "<tr><td>" . $aSuccessDocuments[$i]->getDisplayPath() . "</td></tr>\n"; | 27 | + $sToRender .= "<tr><td>" . generateControllerLink("viewDocument", "fDocumentID=" . $aSuccessDocuments[$i]->getID(), $aSuccessDocuments[$i]->getDisplayPath()) . "</td></tr>\n"; |
| 28 | } | 28 | } |
| 29 | } | 29 | } |
| 30 | if (count($aErrorDocuments) > 0) { | 30 | if (count($aErrorDocuments) > 0) { |
| @@ -72,17 +72,23 @@ function renderRestoreConfirmationPage($aDocuments) { | @@ -72,17 +72,23 @@ function renderRestoreConfirmationPage($aDocuments) { | ||
| 72 | /** | 72 | /** |
| 73 | * Displays the archived document search form | 73 | * Displays the archived document search form |
| 74 | */ | 74 | */ |
| 75 | -function renderSearchPage() { | 75 | +function renderSearchPage($aMetaTagIDs = array()) { |
| 76 | global $default; | 76 | global $default; |
| 77 | - $sToRender = renderHeading("Archived Documents Search"); | 77 | + $sToRender = renderHeading("Archived Documents Search"); |
| 78 | + | ||
| 78 | $sToRender .= "<table width=\"600\">\n"; | 79 | $sToRender .= "<table width=\"600\">\n"; |
| 79 | - $sToRender .= "<tr>\n"; | ||
| 80 | - $sToRender .= "<tr><td>Search for archived documents by entering the document name:</td></tr>\n"; | ||
| 81 | - $sToRender .= "<td>Document name: <input type=\"text\" size=\"60\" name=\"fSearchString\" value=\"$sSearchString\" />\n"; | 80 | + $sToRender .= "<tr>\n"; |
| 81 | + $sToRender .= "<td>Search text: <input type=\"text\" size=\"60\" name=\"fSearchString\" value=\"$sSearchString\" />\n"; | ||
| 82 | $sToRender .= "<input type=\"image\" src=\"$default->graphicsUrl/widgets/submit.gif\" border=\"0\"></td>\n"; | 82 | $sToRender .= "<input type=\"image\" src=\"$default->graphicsUrl/widgets/submit.gif\" border=\"0\"></td>\n"; |
| 83 | $sToRender .= "</tr>\n"; | 83 | $sToRender .= "</tr>\n"; |
| 84 | $sToRender .= "<tr>\n"; | 84 | $sToRender .= "<tr>\n"; |
| 85 | $sToRender .= "<td> </td>\n"; | 85 | $sToRender .= "<td> </td>\n"; |
| 86 | + $sToRender .= "</tr>\n"; | ||
| 87 | + $sToRender .= "<tr>\n"; | ||
| 88 | + $sToRender .= "<td>" . getMetaData($aMetaTagIDs) . "</td>\n"; | ||
| 89 | + $sToRender .= "</tr>\n"; | ||
| 90 | + $sToRender .= "<tr>\n"; | ||
| 91 | + $sToRender .= "<td> </td>\n"; | ||
| 86 | $sToRender .= "</tr>\n"; | 92 | $sToRender .= "</tr>\n"; |
| 87 | $sToRender .= "</table>\n"; | 93 | $sToRender .= "</table>\n"; |
| 88 | 94 | ||
| @@ -101,47 +107,25 @@ function renderSearchPage() { | @@ -101,47 +107,25 @@ function renderSearchPage() { | ||
| 101 | /** | 107 | /** |
| 102 | * Performs the search and displays the results | 108 | * Performs the search and displays the results |
| 103 | */ | 109 | */ |
| 104 | -function renderArchivedDocumentsResultsPage($sKeywords, $iStartIndex) { | 110 | +function renderArchivedDocumentsResultsPage($sDocumentIDs) { |
| 105 | global $default; | 111 | global $default; |
| 106 | - $sQuery = "SELECT DISTINCT D.id AS document_id, D.name AS document_name " . | ||
| 107 | - "FROM search_document_user_link AS SDUL " . | ||
| 108 | - "INNER JOIN documents AS D ON D.id = SDUL.document_id " . | ||
| 109 | - "INNER JOIN status_lookup AS SL ON D.status_id = SL.id " . | ||
| 110 | - "WHERE SDUL.user_id = " . $_SESSION["userID"] . " " . | ||
| 111 | - "AND SL.name='Archived' " . | ||
| 112 | - "AND (D.name like '%$sKeywords%' " . | ||
| 113 | - "OR D.filename like '%$sKeywords%')"; | ||
| 114 | 112 | ||
| 113 | + $aDocumentIDs = explode(",", $sDocumentIDs); | ||
| 115 | $sToRender = renderHeading("Archived Documents Search Results"); | 114 | $sToRender = renderHeading("Archived Documents Search Results"); |
| 116 | - $sToRender .= "<table>"; | ||
| 117 | - $sql = $default->db; | ||
| 118 | - // perform query | ||
| 119 | - if ($sql->query($sQuery)) { | ||
| 120 | - if ($sql->num_rows() > 0) { | ||
| 121 | - $sToRender .= "<tr><td>The following archived documents meet your search string."; | ||
| 122 | - $sToRender .= "<tr><td>Select the documents you'd like to restore, and click 'Restore', or 'Cancel' to abort</td></tr>\n"; | ||
| 123 | - | ||
| 124 | - while ($sql->next_record()) { | ||
| 125 | - // and print document paths with checkboxes | ||
| 126 | - $oDocument = Document::get($sql->f("document_id")); | ||
| 127 | - $sToRender .= "\t<tr>\n"; | ||
| 128 | - $sToRender .= "\t\t<td bgcolor=\"" . getColour($i) . "\">\n"; | ||
| 129 | - $sToRender .= "<input type=\"checkbox\" name=\"fDocumentIDs[]\" value=\"" . $oDocument->getID() . "\"/>\n"; | ||
| 130 | - $sToRender .= $oDocument->getDisplayPath() . "\n"; | ||
| 131 | - $sToRender .= "\t\t</td>\n"; | ||
| 132 | - $sToRender .= "\t</tr>\n"; | ||
| 133 | - } | ||
| 134 | - $sToRender .= "<tr><td><input type=\"image\" src=\"$default->graphicsUrl/widgets/restore.gif\" border=\"0\"/></a>\n"; | ||
| 135 | - $sToRender .= generateControllerLink("archivedDocuments", "", "<img src=\"$default->graphicsUrl/widgets/cancel.gif\" border=\"0\"></td></tr>"); | ||
| 136 | - } else { | ||
| 137 | - $sToRender .= "<tr><td>Your query did not return any archived documents."; | ||
| 138 | - $sToRender .= "<tr><td>" . generateControllerLink("archivedDocuments", "", "<img src=\"$default->graphicsUrl/widgets/back.gif\" border=\"0\">") . "</td></tr>\n"; | ||
| 139 | - } | ||
| 140 | - } else { | ||
| 141 | - // query failed | ||
| 142 | - $sToRender .= "<tr><td>There was an error processing your query- please try again later."; | ||
| 143 | - $sToRender .= "<tr><td>" . generateControllerLink("archivedDocuments", "", "<img src=\"$default->graphicsUrl/widgets/back.gif\" border=\"0\">") . "</td></tr>\n"; | ||
| 144 | - } | 115 | + $sToRender .= "<table>"; |
| 116 | + $sToRender .= "<tr><td>Select the archived documents you'd like to restore, and click 'Restore', or 'Cancel' to abort</td></tr>\n"; | ||
| 117 | + for ($i=0; $i<count($aDocumentIDs); $i++) { | ||
| 118 | + // and print document paths with checkboxes | ||
| 119 | + $oDocument = Document::get($aDocumentIDs[$i]); | ||
| 120 | + $sToRender .= "\t<tr>\n"; | ||
| 121 | + $sToRender .= "\t\t<td bgcolor=\"" . getColour($i) . "\">\n"; | ||
| 122 | + $sToRender .= "<input type=\"checkbox\" name=\"fDocumentIDs[]\" value=\"" . $oDocument->getID() . "\"/>\n"; | ||
| 123 | + $sToRender .= $oDocument->getDisplayPath() . "\n"; | ||
| 124 | + $sToRender .= "\t\t</td>\n"; | ||
| 125 | + $sToRender .= "\t</tr>\n"; | ||
| 126 | + } | ||
| 127 | + $sToRender .= "<tr><td><input type=\"image\" src=\"$default->graphicsUrl/widgets/restore.gif\" border=\"0\"/></a>\n"; | ||
| 128 | + $sToRender .= generateControllerLink("archivedDocuments", "", "<img src=\"$default->graphicsUrl/widgets/cancel.gif\" border=\"0\"></td></tr>"); | ||
| 145 | $sToRender .= "</table>"; | 129 | $sToRender .= "</table>"; |
| 146 | 130 | ||
| 147 | return $sToRender; | 131 | return $sToRender; |
presentation/lookAndFeel/knowledgeTree/administration/documentmanagement/manageArchivedDocumentsBL.php
| @@ -8,6 +8,8 @@ require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc"); | @@ -8,6 +8,8 @@ require_once("$default->fileSystemRoot/lib/visualpatterns/PatternCustom.inc"); | ||
| 8 | require_once("$default->fileSystemRoot/lib/visualpatterns/PatternBrowsableSearchResults.inc"); | 8 | require_once("$default->fileSystemRoot/lib/visualpatterns/PatternBrowsableSearchResults.inc"); |
| 9 | require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListBox.inc"); | 9 | require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListBox.inc"); |
| 10 | require_once("$default->uiDirectory/documentmanagement/documentUI.inc"); | 10 | require_once("$default->uiDirectory/documentmanagement/documentUI.inc"); |
| 11 | +require_once("$default->uiDirectory/search/advancedSearchUI.inc"); | ||
| 12 | +require_once("$default->uiDirectory/search/advancedSearchUtil.inc"); | ||
| 11 | require_once("archivedDocumentsUI.inc"); | 13 | require_once("archivedDocumentsUI.inc"); |
| 12 | require_once("$default->fileSystemRoot/presentation/Html.inc"); | 14 | require_once("$default->fileSystemRoot/presentation/Html.inc"); |
| 13 | 15 | ||
| @@ -31,8 +33,21 @@ if (checkSession()) { | @@ -31,8 +33,21 @@ if (checkSession()) { | ||
| 31 | 33 | ||
| 32 | if (strlen($fSearchString) > 0) { | 34 | if (strlen($fSearchString) > 0) { |
| 33 | // perform the search and display the results | 35 | // perform the search and display the results |
| 34 | - $fStartIndex = isset($fStartIndex) ? $fStartIndex : 0; | ||
| 35 | - $oContent->setHtml(renderArchivedDocumentsResultsPage($fSearchString, $fStartIndex)); | 36 | + $sMetaTagIDs = getChosenMetaDataTags(); |
| 37 | + if (strlen($sMetaTagIDs) > 0) { | ||
| 38 | + $sSQLSearchString = getSQLSearchString($fSearchString); | ||
| 39 | + $sDocumentIDs = getApprovedDocumentString($sMetaTagIDs, $sSQLSearchString, "Archived"); | ||
| 40 | + if (strlen($sDocumentIDs) > 0) { | ||
| 41 | + // display the documents | ||
| 42 | + $oContent->setHtml(renderArchivedDocumentsResultsPage($sDocumentIDs)); | ||
| 43 | + } else { | ||
| 44 | + $oContent->setHtml(getSearchPage($fSearchString, explode(",",$sMetaTagIDs), "Archived Documents Search", true)); | ||
| 45 | + $sErrorMessage = "No documents matched your search criteria"; | ||
| 46 | + } | ||
| 47 | + } else { | ||
| 48 | + $oContent->setHtml(getSearchPage($fSearchString, array(), "Archived Documents Search", true)); | ||
| 49 | + $sErrorMessage = "Please select at least one criteria to search by"; | ||
| 50 | + } | ||
| 36 | } else if ($fDocumentIDs) { | 51 | } else if ($fDocumentIDs) { |
| 37 | // got some documents to restore | 52 | // got some documents to restore |
| 38 | 53 | ||
| @@ -72,12 +87,16 @@ if (checkSession()) { | @@ -72,12 +87,16 @@ if (checkSession()) { | ||
| 72 | $oContent->setHtml(renderRestoreConfirmationPage($aDocuments)); | 87 | $oContent->setHtml(renderRestoreConfirmationPage($aDocuments)); |
| 73 | } | 88 | } |
| 74 | } else { | 89 | } else { |
| 75 | - // display the search form | ||
| 76 | - $oContent->setHtml(renderSearchPage()); | 90 | + // display the advanced search form, but specify that only archived documents must be returned |
| 91 | + //getSearchPage($sSearchString = "", $aMetaTagIDs = array(), $sHeading = "Advanced Search", $bSearchArchive = false) { | ||
| 92 | + $oContent->setHtml(getSearchPage("", array(), "Archived Documents Search", true)); | ||
| 77 | } | 93 | } |
| 78 | 94 | ||
| 79 | // build the page | 95 | // build the page |
| 80 | - require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); | 96 | + require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); |
| 97 | + if (isset($sErrorMessage)) { | ||
| 98 | + $main->setErrorMessage($sErrorMessage); | ||
| 99 | + } | ||
| 81 | $main->setCentralPayload($oContent); | 100 | $main->setCentralPayload($oContent); |
| 82 | $main->setFormAction($_SERVER['PHP_SELF']); | 101 | $main->setFormAction($_SERVER['PHP_SELF']); |
| 83 | $main->setHasRequiredFields(true); | 102 | $main->setHasRequiredFields(true); |