Commit 7d4d1025908e0ffd900094fff23f43f133953901

Authored by Michael Joseph
1 parent d8a05670

added checkAll and clearAll javascript for meta data checkboxes

removed getApprovedDocumentString util method
integrated archive searching


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@2080 c91229c3-7414-0410-bfa2-8a42b809f60b
presentation/lookAndFeel/knowledgeTree/search/advancedSearchBL.php
@@ -37,8 +37,8 @@ if (checkSession()) { @@ -37,8 +37,8 @@ if (checkSession()) {
37 37
38 if (!isset($fStartIndex)) { 38 if (!isset($fStartIndex)) {
39 $fStartIndex = 0; 39 $fStartIndex = 0;
40 - }  
41 - $oPatternCustom->setHtml(getSearchResults($sMetaTagIDs,$sSQLSearchString, $fStartIndex)); 40 + }
  41 + $oPatternCustom->setHtml(getSearchResults($sMetaTagIDs,$sSQLSearchString, $fStartIndex, $fToSearch));
42 $main->setCentralPayload($oPatternCustom); 42 $main->setCentralPayload($oPatternCustom);
43 $main->render(); 43 $main->render();
44 } else { 44 } else {
@@ -46,6 +46,7 @@ if (checkSession()) { @@ -46,6 +46,7 @@ if (checkSession()) {
46 $oPatternCustom->setHtml(getSearchPage($fSearchString)); 46 $oPatternCustom->setHtml(getSearchPage($fSearchString));
47 $main->setCentralPayload($oPatternCustom); 47 $main->setCentralPayload($oPatternCustom);
48 $main->setErrorMessage("Please select at least one criteria to search by"); 48 $main->setErrorMessage("Please select at least one criteria to search by");
  49 + $main->setHasRequiredFields(true);
49 $main->setFormAction("advancedSearchBL.php?fForSearch=1"); 50 $main->setFormAction("advancedSearchBL.php?fForSearch=1");
50 $main->render(); 51 $main->render();
51 } 52 }
@@ -56,6 +57,7 @@ if (checkSession()) { @@ -56,6 +57,7 @@ if (checkSession()) {
56 $oPatternCustom->setHtml(getSearchPage($fSearchString, $aMetaTagIDs)); 57 $oPatternCustom->setHtml(getSearchPage($fSearchString, $aMetaTagIDs));
57 $main->setCentralPayload($oPatternCustom); 58 $main->setCentralPayload($oPatternCustom);
58 $main->setErrorMessage("Please enter text to search on"); 59 $main->setErrorMessage("Please enter text to search on");
  60 + $main->setHasRequiredFields(true);
59 $main->setFormAction("advancedSearchBL.php?fForSearch=1"); 61 $main->setFormAction("advancedSearchBL.php?fForSearch=1");
60 $main->render(); 62 $main->render();
61 } 63 }
@@ -64,6 +66,7 @@ if (checkSession()) { @@ -64,6 +66,7 @@ if (checkSession()) {
64 //display search criteria 66 //display search criteria
65 $oPatternCustom = & new PatternCustom(); 67 $oPatternCustom = & new PatternCustom();
66 $oPatternCustom->setHtml(getSearchPage($fSearchString)); 68 $oPatternCustom->setHtml(getSearchPage($fSearchString));
  69 + $main->setHasRequiredFields(true);
67 $main->setCentralPayload($oPatternCustom); 70 $main->setCentralPayload($oPatternCustom);
68 $main->setFormAction("advancedSearchBL.php?fForSearch=1"); 71 $main->setFormAction("advancedSearchBL.php?fForSearch=1");
69 $main->render(); 72 $main->render();
presentation/lookAndFeel/knowledgeTree/search/advancedSearchUI.inc
@@ -20,8 +20,10 @@ function getMetaData($aMetaTagIDs) { @@ -20,8 +20,10 @@ function getMetaData($aMetaTagIDs) {
20 $sToRender .= "<input type=\"hidden\" name=\"adv_search_start\" value=\"\" />\n"; 20 $sToRender .= "<input type=\"hidden\" name=\"adv_search_start\" value=\"\" />\n";
21 21
22 $iRecordCount = 0; 22 $iRecordCount = 0;
  23 + $sCheckAllJavascript = "";
23 while ($sql->next_record()) { 24 while ($sql->next_record()) {
24 - $sMetaDataCheckBox = "<input type=\"checkbox\" " . wasSelected($sql->f("id"), $aMetaTagIDs) . " name=\"f_adv_" . $sql->f("name") . "\" value=\"" . $sql->f("id") . "\"></td><td>" . $sql->f("name"); 25 + $sCheckAllJavascript .= "document.MainForm.f_adv_$iRecordCount.checked=value;\n";
  26 + $sMetaDataCheckBox = "<input type=\"checkbox\" " . wasSelected($sql->f("id"), $aMetaTagIDs) . " name=\"f_adv_$iRecordCount\" value=\"" . $sql->f("id") . "\"></td><td>" . $sql->f("name");
25 $iRecordCount++; 27 $iRecordCount++;
26 if (($iRecordCount % 3) == 1) { 28 if (($iRecordCount % 3) == 1) {
27 $sToRender .= "<tr><td>$sMetaDataCheckBox</td>\n"; 29 $sToRender .= "<tr><td>$sMetaDataCheckBox</td>\n";
@@ -33,6 +35,14 @@ function getMetaData($aMetaTagIDs) { @@ -33,6 +35,14 @@ function getMetaData($aMetaTagIDs) {
33 } 35 }
34 36
35 $sToRender .= "<input type=\"hidden\" name=\"adv_search_end\" value=\"\" />\n"; 37 $sToRender .= "<input type=\"hidden\" name=\"adv_search_end\" value=\"\" />\n";
  38 + $sToRender .= "\n\n<SCRIPT LANGUAGE=\"javascript\">\n ";
  39 + $sToRender .= "<!--\n";
  40 + $sToRender .= "function setChecked(value) {\n";
  41 + $sToRender .= $sCheckAllJavascript;
  42 + $sToRender .= "\t}\n";
  43 + $sToRender .= "-->\n";
  44 + $sToRender .= "</SCRIPT>\n\n";
  45 + $sToRender .= "<tr><td colspan=\"3\"><a href=\"javascript:setChecked(1)\"><img src=\"$default->graphicsUrl/widgets/checkall.gif\" border=\"0\"/></a></td><td colspan=\"3\"><a href=\"javascript:setChecked(0)\"><img src=\"$default->graphicsUrl/widgets/clearall.gif\" border=\"0\"/></a></td></tr>";
36 $sToRender .= "</table>\n"; 46 $sToRender .= "</table>\n";
37 47
38 return $sToRender; 48 return $sToRender;
@@ -42,10 +52,19 @@ function getSearchPage($sSearchString = &quot;&quot;, $aMetaTagIDs = array(), $sHeading = @@ -42,10 +52,19 @@ function getSearchPage($sSearchString = &quot;&quot;, $aMetaTagIDs = array(), $sHeading =
42 $sToRender = renderHeading($sHeading); 52 $sToRender = renderHeading($sHeading);
43 $sToRender .= "<table width=\"600\">\n"; 53 $sToRender .= "<table width=\"600\">\n";
44 $sToRender .= "<tr>\n"; 54 $sToRender .= "<tr>\n";
45 - $sToRender .= "<td>Search text: <input type=\"text\" size=\"60\" name=\"fSearchString\" value=\"$sSearchString\" />\n";  
46 - $sToRender .= "<input type=\"button\" value=\"search\" onClick=\"validateAdvancedSearch()\"/></td>\n";  
47 - $sToRender .= ($bSearchArchive ? "<input type=\"hidden\" name=\"fSearchArchive\" value=\"1\"" : ""); 55 + $sToRender .= "<td>Search text: <input type=\"text\" size=\"50\" name=\"fSearchString\" value=\"$sSearchString\" />\n";
  56 + $sToRender .= "<input type=\"image\" src=\"$default->graphicsUrl/widgets/search.gif\" border=\"0\"/></td>\n";
48 $sToRender .= "</tr>\n"; 57 $sToRender .= "</tr>\n";
  58 +
  59 + if ($bSearchArchive) {
  60 + $sToRender .= "<input type=\"hidden\" name=\"fToSearch\" value=\"Archived\"/>";
  61 + } else {
  62 + $sToRender .= "<tr>\n";
  63 + $sToRender .= "<td>&nbsp</td>\n";
  64 + $sToRender .= "</tr>\n";
  65 + $sToRender .= "<tr><td>Search: <select name=\"fToSearch\"><option value=\"Live\">Live</option><option value=\"Archived\">Archived</option></select> Documents</td></tr>";
  66 + }
  67 +
49 $sToRender .= "<tr>\n"; 68 $sToRender .= "<tr>\n";
50 $sToRender .= "<td>&nbsp</td>\n"; 69 $sToRender .= "<td>&nbsp</td>\n";
51 $sToRender .= "</tr>\n"; 70 $sToRender .= "</tr>\n";
@@ -57,22 +76,25 @@ function getSearchPage($sSearchString = &quot;&quot;, $aMetaTagIDs = array(), $sHeading = @@ -57,22 +76,25 @@ function getSearchPage($sSearchString = &quot;&quot;, $aMetaTagIDs = array(), $sHeading =
57 $sToRender .= "</tr>\n"; 76 $sToRender .= "</tr>\n";
58 $sToRender .= "</table>\n"; 77 $sToRender .= "</table>\n";
59 78
60 - return $sToRender . getSearchValidationJavaScript();; 79 + return $sToRender . getSearchValidationJavaScript();
61 } 80 }
62 81
63 -function getSearchResults($sMetaTagIDs, $sSQLSearchString, $iStartIndex) {  
64 - global $default; 82 +function getSearchResults($sMetaTagIDs, $sSQLSearchString, $iStartIndex, $sStatus = "Live") {
  83 + global $default;
  84 +
65 $sQuery = "SELECT '" . "$default->graphicsUrl/widgets/dfolder.gif" . "' AS folder_image_url, F.id folder_id, D.id document_id, D.name AS document_name, COUNT(D.id) AS doc_count " . 85 $sQuery = "SELECT '" . "$default->graphicsUrl/widgets/dfolder.gif" . "' AS folder_image_url, F.id folder_id, D.id document_id, D.name AS document_name, COUNT(D.id) AS doc_count " .
66 "FROM $default->owl_documents_table AS D INNER JOIN $default->owl_folders_table AS F ON D.folder_id = F.id " . 86 "FROM $default->owl_documents_table AS D INNER JOIN $default->owl_folders_table AS F ON D.folder_id = F.id " .
67 "INNER JOIN document_fields_link AS DFL ON DFL.document_id = D.id " . 87 "INNER JOIN document_fields_link AS DFL ON DFL.document_id = D.id " .
68 "INNER JOIN document_fields AS DF ON DF.id = DFL.document_field_id " . 88 "INNER JOIN document_fields AS DF ON DF.id = DFL.document_field_id " .
69 - "INNER JOIN search_document_user_link AS SDUL ON SDUL.document_id = D.ID " . 89 + "INNER JOIN search_document_user_link AS SDUL ON SDUL.document_id = D.ID " .
  90 + "INNER JOIN status_lookup AS SL on D.status_id=SL.id " .
70 "WHERE DF.ID IN ($sMetaTagIDs) " . 91 "WHERE DF.ID IN ($sMetaTagIDs) " .
71 - "AND " . $sSQLSearchString . " " . 92 + "AND (" . $sSQLSearchString . ") " .
72 "AND SDUL.user_id = " . $_SESSION["userID"] . " " . 93 "AND SDUL.user_id = " . $_SESSION["userID"] . " " .
  94 + "AND SL.name='$sStatus' " .
73 "GROUP BY D.id "; 95 "GROUP BY D.id ";
74 - "ORDER BY doc_count DESC ";  
75 - 96 + "ORDER BY doc_count DESC ";
  97 + $default->log->info("getSearchResults $sQuery");
76 $aColumns = array("folder_image_url", "document_name", "doc_count"); 98 $aColumns = array("folder_image_url", "document_name", "doc_count");
77 $aColumnTypes = array(4,3,1); 99 $aColumnTypes = array(4,3,1);
78 $aColumnHeaders = array("<font color=\"ffffff\">Folder</font>","<font color=\"ffffff\">Document</font>", "<font color=\"ffffff\">Matches</font>"); 100 $aColumnHeaders = array("<font color=\"ffffff\">Folder</font>","<font color=\"ffffff\">Document</font>", "<font color=\"ffffff\">Matches</font>");
@@ -90,10 +112,10 @@ function getSearchResults($sMetaTagIDs, $sSQLSearchString, $iStartIndex) { @@ -90,10 +112,10 @@ function getSearchResults($sMetaTagIDs, $sSQLSearchString, $iStartIndex) {
90 function getSearchValidationJavaScript() { 112 function getSearchValidationJavaScript() {
91 $sToRender = "\n\n<SCRIPT LANGUAGE=\"javascript\">\n "; 113 $sToRender = "\n\n<SCRIPT LANGUAGE=\"javascript\">\n ";
92 $sToRender .= "<!--\n"; 114 $sToRender .= "<!--\n";
93 - $sToRender .= "function validateAdvancedSearch() {\n"; 115 + $sToRender .= "function validateForm() {\n";
94 $sToRender .= "\tif (!(validRequired(document.MainForm.fSearchString, 'Search text'))) {\n"; 116 $sToRender .= "\tif (!(validRequired(document.MainForm.fSearchString, 'Search text'))) {\n";
95 - $sToRender .= "\t\treturn;\n\t}\n";  
96 - $sToRender .= "\tdocument.MainForm.submit();\n}\n"; 117 + $sToRender .= "\t\treturn false;\n\t}\n";
  118 + $sToRender .= "\treturn true;\n}\n";
97 $sToRender .= "-->\n"; 119 $sToRender .= "-->\n";
98 $sToRender .= "</SCRIPT>\n\n"; 120 $sToRender .= "</SCRIPT>\n\n";
99 return $sToRender; 121 return $sToRender;
presentation/lookAndFeel/knowledgeTree/search/advancedSearchUtil.inc
@@ -36,34 +36,6 @@ function getChosenMetaDataTags() { @@ -36,34 +36,6 @@ function getChosenMetaDataTags() {
36 return $aTagIDs[0]; 36 return $aTagIDs[0];
37 } 37 }
38 38
39 -/**  
40 -* Generate a string consisting of all documents that match the search criteria  
41 -* and that the user is allowed to see  
42 -*/  
43 -function getApprovedDocumentString($sMetaTagIDs, $sSQLSearchString, $sStatus = "Live") {  
44 - global $default;  
45 - $aApprovedDocumentIDs = array();  
46 - $sQuery = "SELECT DISTINCT D.id " .  
47 - "FROM documents AS D INNER JOIN document_fields_link AS DFL ON DFL.document_id = D.id " .  
48 - "INNER JOIN document_fields AS DF ON DF.id = DFL.document_field_id " .  
49 - "INNER JOIN search_document_user_link AS SDUL ON SDUL.document_id = D.ID " .  
50 - "INNER JOIN status_lookup AS SL on D.status_id=SL.id " .  
51 - "WHERE DF.ID IN ($sMetaTagIDs) " .  
52 - "AND (" . $sSQLSearchString . ") " .  
53 - "AND SL.name='$sStatus' " .  
54 - "AND SDUL.user_id = " . $_SESSION["userID"];  
55 - $sql = $default->db;  
56 - $sql->query($sQuery);  
57 - while ($sql->next_record()) {  
58 - $aApprovedDocuments[count($aApprovedDocuments)] = $sql->f("id");  
59 - }  
60 - if (count($aApprovedDocuments) > 1) {  
61 - return implode(",",$aApprovedDocuments);  
62 - }  
63 - return $aApprovedDocuments[0];  
64 -  
65 -}  
66 -  
67 /* 39 /*
68 * Generate a string that can be used in a SQL query 40 * Generate a string that can be used in a SQL query
69 * from the list of documents the user is allowed to see 41 * from the list of documents the user is allowed to see