Commit d57240c4569aeae886fdf4357f0f50721e8a7fcc

Authored by rob
1 parent 1ecf03d2

Added browse functionality


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@1155 c91229c3-7414-0410-bfa2-8a42b809f60b
presentation/lookAndFeel/knowledgeTree/search/advancedSearchBL.php
@@ -21,7 +21,8 @@ if (checkSession()) { @@ -21,7 +21,8 @@ if (checkSession()) {
21 21
22 require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc"); 22 require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
23 23
24 - if (isset($fForSearch)) { 24 + //if (isset($fForSearch)) {
  25 + if (strlen($fSearchString) > 0) {
25 if (strlen($fSearchString) > 0) { 26 if (strlen($fSearchString) > 0) {
26 //display search results 27 //display search results
27 $sMetaTagIDs = getChosenMetaDataTags(); 28 $sMetaTagIDs = getChosenMetaDataTags();
@@ -29,7 +30,13 @@ if (checkSession()) { @@ -29,7 +30,13 @@ if (checkSession()) {
29 if (strlen($sMetaTagIDs) > 0) { 30 if (strlen($sMetaTagIDs) > 0) {
30 $sSQLSearchString = getSQLSearchString($fSearchString); 31 $sSQLSearchString = getSQLSearchString($fSearchString);
31 $sDocument = getApprovedDocumentString($sMetaTagIDs, $sSQLSearchString); 32 $sDocument = getApprovedDocumentString($sMetaTagIDs, $sSQLSearchString);
32 - echo $sDocument; 33 + $oPatternCustom = & new PatternCustom();
  34 + if (!isset($fStartIndex)) {
  35 + $fStartIndex = 0;
  36 + }
  37 + $oPatternCustom->setHtml(getSearchResults($sDocument,$fStartIndex, $fSearchString, $sMetaTagIDs));
  38 + $main->setCentralPayload($oPatternCustom);
  39 + $main->render();
33 40
34 } else { 41 } else {
35 $oPatternCustom = & new PatternCustom(); 42 $oPatternCustom = & new PatternCustom();
@@ -82,6 +89,10 @@ function getChosenMetaDataTags() { @@ -82,6 +89,10 @@ function getChosenMetaDataTags() {
82 return implode(",",$aTagIDs); 89 return implode(",",$aTagIDs);
83 } 90 }
84 91
  92 +/**
  93 +* Generate a string onsisting of all documents that match the search criteria
  94 +* and that the user is allowed to see
  95 +*/
85 function getApprovedDocumentString($sMetaTagIDs, $sSQLSearchString) { 96 function getApprovedDocumentString($sMetaTagIDs, $sSQLSearchString) {
86 global $default; 97 global $default;
87 $aApprovedDocumentIDs = array(); 98 $aApprovedDocumentIDs = array();
@@ -101,6 +112,10 @@ function getApprovedDocumentString($sMetaTagIDs, $sSQLSearchString) { @@ -101,6 +112,10 @@ function getApprovedDocumentString($sMetaTagIDs, $sSQLSearchString) {
101 return implode(",",$aApprovedDocuments); 112 return implode(",",$aApprovedDocuments);
102 } 113 }
103 114
  115 +/*
  116 +* Generate a string that can be used in a SQL query
  117 +* from the list of documents the user is allowed to see
  118 +*/
104 function getSQLSearchString($sSearchString) { 119 function getSQLSearchString($sSearchString) {
105 $aWords = explode(" ", $sSearchString); 120 $aWords = explode(" ", $sSearchString);
106 $sSQLSearchString; 121 $sSQLSearchString;
presentation/lookAndFeel/knowledgeTree/search/advancedSearchUI.inc
@@ -21,7 +21,6 @@ function getMetaData($aMetaTagIDs) { @@ -21,7 +21,6 @@ function getMetaData($aMetaTagIDs) {
21 21
22 while ($sql->next_record()) { 22 while ($sql->next_record()) {
23 $sToRender .= "<tr><td><input type=\"checkbox\" " . wasSelected($sql->f("id"), $aMetaTagIDs) . " name=\"f_adv_" . $sql->f("name") . "\" value=\"" . $sql->f("id") . "\"></td><td>" . $sql->f("name") . "</td></tr>\n"; 23 $sToRender .= "<tr><td><input type=\"checkbox\" " . wasSelected($sql->f("id"), $aMetaTagIDs) . " name=\"f_adv_" . $sql->f("name") . "\" value=\"" . $sql->f("id") . "\"></td><td>" . $sql->f("name") . "</td></tr>\n";
24 -  
25 } 24 }
26 25
27 $sToRender .= "<input type=\"hidden\" name=\"adv_search_end\" value=\"\" />\n"; 26 $sToRender .= "<input type=\"hidden\" name=\"adv_search_end\" value=\"\" />\n";
@@ -35,7 +34,8 @@ function getSearchPage($sSearchString = &quot;&quot;, $aMetaTagIDs = array()) { @@ -35,7 +34,8 @@ function getSearchPage($sSearchString = &quot;&quot;, $aMetaTagIDs = array()) {
35 $sToRender = "<table>\n"; 34 $sToRender = "<table>\n";
36 $sToRender .= "<tr>\n"; 35 $sToRender .= "<tr>\n";
37 $sToRender .= "<td>Search text: <input type=\"text\" size=\"60\" name=\"fSearchString\" value=\"$sSearchString\" /></td>\n"; 36 $sToRender .= "<td>Search text: <input type=\"text\" size=\"60\" name=\"fSearchString\" value=\"$sSearchString\" /></td>\n";
38 - $sToRender .= "<td><input type=\"image\" src=\"$default->graphicsUrl/search.gif\" /></td>\n"; 37 + //$sToRender .= "<td><input type=\"button\" src=\"$default->graphicsUrl/search.gif\" value=\"search\" onClick=\"validateAdvancedSearchText()\"/></td>\n";
  38 + $sToRender .= "<td><input type=\"button\" value=\"search\" onClick=\"validateAdvancedSearch()\"/></td>\n";
39 $sToRender .= "</tr>\n"; 39 $sToRender .= "</tr>\n";
40 $sToRender .= "<tr>\n"; 40 $sToRender .= "<tr>\n";
41 $sToRender .= "<td>&nbsp</td>\n"; 41 $sToRender .= "<td>&nbsp</td>\n";
@@ -48,11 +48,40 @@ function getSearchPage($sSearchString = &quot;&quot;, $aMetaTagIDs = array()) { @@ -48,11 +48,40 @@ function getSearchPage($sSearchString = &quot;&quot;, $aMetaTagIDs = array()) {
48 $sToRender .= "</tr>\n"; 48 $sToRender .= "</tr>\n";
49 $sToRender .= "</table>\n"; 49 $sToRender .= "</table>\n";
50 50
51 - return $sToRender; 51 + return $sToRender . getSearchValidationJavaScript();;
52 } 52 }
53 53
54 -function getSearchResults($sFolderIDs,$sSQLSearchString, $iStartIndex) { 54 +function getSearchResults($sSQLSearchString, $iStartIndex, $sSearchText, $sMetaTagIDs) {
  55 + global $default;
  56 + $sQuery = "SELECT DISTINCT '" . "$default->graphicsUrl/widgets/dfolder.gif" . "' AS folder_image_url, F.id folder_id, D.id document_id, D.name AS document_name " .
  57 + "FROM $default->owl_documents_table AS D INNER JOIN $default->owl_folders_table AS F ON D.folder_id = F.id " .
  58 + "WHERE D.id IN ($sSQLSearchString)" .
  59 + "ORDER BY D.name ASC";
  60 +
  61 + $aColumns = array("folder_image_url", "document_name");
  62 + $aColumnTypes = array(4,3);
  63 + $aColumnHeaders = array("","Document");
  64 + $aLinkURLs = array("$default->rootUrl/control.php?action=browse","$default->rootUrl/control.php?action=viewDocument");
  65 + $aDBQueryStringColumns = array("document_id","folder_id");
  66 + $aQueryStringVariableNames = array("fDocumentID", "fFolderID");
  67 +
55 68
  69 + $oPatternBrowse = & new PatternBrowseableSearchResults($sQuery, 2, $aColumns, $aColumnTypes, $aColumnHeaders, $aLinkURLs, $aDBQueryStringColumns, $aQueryStringVariableNames);
  70 + $oPatternBrowse->setStartIndex($iStartIndex);
  71 + return $oPatternBrowse->render() . getSearchVariablesHtml($sSearchText, $sMetaTagIDs);
  72 +}
  73 +
  74 +function getSearchValidationJavaScript() {
  75 + $sToRender = "\n\n<SCRIPT LANGUAGE=\"javascript\">\n ";
  76 + $sToRender .= "<!--\n";
  77 + $sToRender .= "function validateAdvancedSearch() {\n";
  78 + $sToRender .= "\tif (!(validRequired(document.MainForm.fSearchString, 'Search text'))) {\n";
  79 + $sToRender .= "\t\treturn;\n\t}\n";
  80 + $sToRender .= "\tdocument.MainForm.submit();\n}\n";
  81 + $sToRender .= "-->\n";
  82 + $sToRender .= "</SCRIPT>\n\n";
  83 + return $sToRender;
  84 +
56 } 85 }
57 86
58 function wasSelected($iID, $aMetaTagIDs) { 87 function wasSelected($iID, $aMetaTagIDs) {
@@ -62,5 +91,17 @@ function wasSelected($iID, $aMetaTagIDs) { @@ -62,5 +91,17 @@ function wasSelected($iID, $aMetaTagIDs) {
62 return ""; 91 return "";
63 } 92 }
64 93
  94 +function getSearchVariablesHtml($sSearchText, $sMetaTagIDs) {
  95 + $aMetaTagIDs = explode(",", $sMetaTagIDs);
  96 + $sToRender = "\n\n<input type=\"hidden\" name=\"fSearchString\" value=\"$sSearchText\" />\n";
  97 + $sToRender .= "<input type=\"hidden\" name=\"adv_search_start\" value=\"\" />\n";
  98 + for ($i = 0; $i < count($aMetaTagIDs); $i++) {
  99 + $sToRender .= "<input type=\"hidden\" name=\"fMetaTag_$i\" value=\"" . $aMetaTagIDs[$i] . "\" />\n";
  100 +
  101 + }
  102 + $sToRender .= "<input type=\"hidden\" name=\"adv_search_end\" value=\"\" />\n";
  103 + return $sToRender;
  104 +}
  105 +
65 ?> 106 ?>
66 107