Commit 3145a84444bada24414ff953f63a906fbd2b1a46

Authored by michael
1 parent 50413d1c

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
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>&nbsp</td>\n"; 85 $sToRender .= "<td>&nbsp</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>&nbsp</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(&quot;$default-&gt;fileSystemRoot/lib/visualpatterns/PatternCustom.inc&quot;); @@ -8,6 +8,8 @@ require_once(&quot;$default-&gt;fileSystemRoot/lib/visualpatterns/PatternCustom.inc&quot;);
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);