Commit 6cdbd8d931f980130cf1d0c6a45a9c25db8a3f64
1 parent
2fafb2b9
Added browse functionality
git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@1155 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
2 changed files
with
62 additions
and
6 deletions
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 = "", $aMetaTagIDs = array()) { | @@ -35,7 +34,8 @@ function getSearchPage($sSearchString = "", $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> </td>\n"; | 41 | $sToRender .= "<td> </td>\n"; |
| @@ -48,11 +48,40 @@ function getSearchPage($sSearchString = "", $aMetaTagIDs = array()) { | @@ -48,11 +48,40 @@ function getSearchPage($sSearchString = "", $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 |