Commit 7c98a904596dbc0d6acaa6e6a590a78af8e383e0

Authored by Michael Joseph
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
presentation/lookAndFeel/knowledgeTree/administration/documentmanagement/archivedDocumentsUI.inc
... ... @@ -24,7 +24,7 @@ function renderStatusPage($aSuccessDocuments, $aErrorDocuments) {
24 24 $sToRender .= "<tr><td>The following documents were successfully restored:</td></tr>\n";
25 25 $sToRender .= "<tr/><tr/>";
26 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 30 if (count($aErrorDocuments) > 0) {
... ... @@ -72,17 +72,23 @@ function renderRestoreConfirmationPage($aDocuments) {
72 72 /**
73 73 * Displays the archived document search form
74 74 */
75   -function renderSearchPage() {
  75 +function renderSearchPage($aMetaTagIDs = array()) {
76 76 global $default;
77   - $sToRender = renderHeading("Archived Documents Search");
  77 + $sToRender = renderHeading("Archived Documents Search");
  78 +
78 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 82 $sToRender .= "<input type=\"image\" src=\"$default->graphicsUrl/widgets/submit.gif\" border=\"0\"></td>\n";
83 83 $sToRender .= "</tr>\n";
84 84 $sToRender .= "<tr>\n";
85 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 92 $sToRender .= "</tr>\n";
87 93 $sToRender .= "</table>\n";
88 94  
... ... @@ -101,47 +107,25 @@ function renderSearchPage() {
101 107 /**
102 108 * Performs the search and displays the results
103 109 */
104   -function renderArchivedDocumentsResultsPage($sKeywords, $iStartIndex) {
  110 +function renderArchivedDocumentsResultsPage($sDocumentIDs) {
105 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 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 129 $sToRender .= "</table>";
146 130  
147 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 8 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternBrowsableSearchResults.inc");
9 9 require_once("$default->fileSystemRoot/lib/visualpatterns/PatternListBox.inc");
10 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 13 require_once("archivedDocumentsUI.inc");
12 14 require_once("$default->fileSystemRoot/presentation/Html.inc");
13 15  
... ... @@ -31,8 +33,21 @@ if (checkSession()) {
31 33  
32 34 if (strlen($fSearchString) > 0) {
33 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 51 } else if ($fDocumentIDs) {
37 52 // got some documents to restore
38 53  
... ... @@ -72,12 +87,16 @@ if (checkSession()) {
72 87 $oContent->setHtml(renderRestoreConfirmationPage($aDocuments));
73 88 }
74 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 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 100 $main->setCentralPayload($oContent);
82 101 $main->setFormAction($_SERVER['PHP_SELF']);
83 102 $main->setHasRequiredFields(true);
... ...