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 21  
22 22 require_once("$default->fileSystemRoot/presentation/webpageTemplate.inc");
23 23  
24   - if (isset($fForSearch)) {
  24 + //if (isset($fForSearch)) {
  25 + if (strlen($fSearchString) > 0) {
25 26 if (strlen($fSearchString) > 0) {
26 27 //display search results
27 28 $sMetaTagIDs = getChosenMetaDataTags();
... ... @@ -29,7 +30,13 @@ if (checkSession()) {
29 30 if (strlen($sMetaTagIDs) > 0) {
30 31 $sSQLSearchString = getSQLSearchString($fSearchString);
31 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 41 } else {
35 42 $oPatternCustom = & new PatternCustom();
... ... @@ -82,6 +89,10 @@ function getChosenMetaDataTags() {
82 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 96 function getApprovedDocumentString($sMetaTagIDs, $sSQLSearchString) {
86 97 global $default;
87 98 $aApprovedDocumentIDs = array();
... ... @@ -101,6 +112,10 @@ function getApprovedDocumentString($sMetaTagIDs, $sSQLSearchString) {
101 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 119 function getSQLSearchString($sSearchString) {
105 120 $aWords = explode(" ", $sSearchString);
106 121 $sSQLSearchString;
... ...
presentation/lookAndFeel/knowledgeTree/search/advancedSearchUI.inc
... ... @@ -21,7 +21,6 @@ function getMetaData($aMetaTagIDs) {
21 21  
22 22 while ($sql->next_record()) {
23 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 26 $sToRender .= "<input type=\"hidden\" name=\"adv_search_end\" value=\"\" />\n";
... ... @@ -35,7 +34,8 @@ function getSearchPage($sSearchString = &quot;&quot;, $aMetaTagIDs = array()) {
35 34 $sToRender = "<table>\n";
36 35 $sToRender .= "<tr>\n";
37 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 39 $sToRender .= "</tr>\n";
40 40 $sToRender .= "<tr>\n";
41 41 $sToRender .= "<td>&nbsp</td>\n";
... ... @@ -48,11 +48,40 @@ function getSearchPage($sSearchString = &quot;&quot;, $aMetaTagIDs = array()) {
48 48 $sToRender .= "</tr>\n";
49 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 87 function wasSelected($iID, $aMetaTagIDs) {
... ... @@ -62,5 +91,17 @@ function wasSelected($iID, $aMetaTagIDs) {
62 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  
... ...