Commit 83f2f785e8d2a672be0e8d2591e98fe8f0dc01a5
1 parent
ec4fdc35
Added user side validation functionality
git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@886 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
1 changed file
with
31 additions
and
2 deletions
lib/visualpatterns/PatternEditableListFromQuery.inc
| ... | ... | @@ -39,6 +39,8 @@ class PatternEditableListFromQuery { |
| 39 | 39 | var $sUniqueName; |
| 40 | 40 | /** set the tables to check for display type 3 */ |
| 41 | 41 | var $aDropDownListTableNames; |
| 42 | + /** set whether a column is required or not */ | |
| 43 | + var $aColumnsRequired; | |
| 42 | 44 | |
| 43 | 45 | /** |
| 44 | 46 | * Default constructor |
| ... | ... | @@ -84,8 +86,14 @@ class PatternEditableListFromQuery { |
| 84 | 86 | $this->aDropDownListTableNames = $aNewValue; |
| 85 | 87 | } |
| 86 | 88 | |
| 89 | + function setColumnsRequired($aNewValue) { | |
| 90 | + $this->aColumnsRequired = $aNewValue; | |
| 91 | + } | |
| 92 | + | |
| 87 | 93 | function & render() { |
| 88 | 94 | global $default; |
| 95 | + //records the columns to generate validation javascript for | |
| 96 | + $aValidationColumnNames = array(); | |
| 89 | 97 | |
| 90 | 98 | $sql = $default->db; |
| 91 | 99 | $sql->query($this->sQuery); |
| ... | ... | @@ -123,6 +131,13 @@ class PatternEditableListFromQuery { |
| 123 | 131 | break; |
| 124 | 132 | } |
| 125 | 133 | $sToRender .= "</tr>\n"; |
| 134 | + | |
| 135 | + //check for required columns | |
| 136 | + if (isset($this->aColumnsRequired) &&($this->aColumnsRequired[$i])) { | |
| 137 | + $iArrayEntry = count($aValidationColumnNames); | |
| 138 | + $aValidationColumnNames[$iArrayEntry]["formName"] = $this->sUniqueName . "_" . $i . "_value"; | |
| 139 | + $aValidationColumnNames[$iArrayEntry]["displayName"] = $this->aColumnNames[$i]; | |
| 140 | + } | |
| 126 | 141 | } |
| 127 | 142 | |
| 128 | 143 | $sToRender .= "<input type=\"hidden\" name=\"unique_end_" . $this->sUniqueName . "\" value=\"\" />\n"; |
| ... | ... | @@ -132,11 +147,25 @@ class PatternEditableListFromQuery { |
| 132 | 147 | $sToRender .= "<td colspan=" . count($this->aDisplayColumns) . ">No " . (isset($this->sTableHeading) ? "$this->sTableHeading" : "") . " data</td>\n"; |
| 133 | 148 | $sToRender .= "</tr>\n"; |
| 134 | 149 | } |
| 150 | + | |
| 151 | + $sToRender .= $this->generateRequiredFieldValidation($aValidationColumnNames); | |
| 152 | + | |
| 135 | 153 | return $sToRender; |
| 136 | 154 | } |
| 137 | 155 | |
| 138 | - function replaceValues($sQueryStringText, $sql) { | |
| 139 | - return $sQueryStringText; | |
| 156 | + function generateRequiredFieldValidation($aValidationColumnNames) { | |
| 157 | + $sToRender .= "\n\n<script language=\"javascript\">\n<!--\n"; | |
| 158 | + $sToRender .= "function validateForm(theForm) {\n"; | |
| 159 | + for ($i = 0; $i < count($aValidationColumnNames); $i++) { | |
| 160 | + $sToRender .= "\tif (!(validRequired(document.MainForm." . $aValidationColumnNames[$i]["formName"] . ", '" . $aValidationColumnNames[$i]["displayName"] . "'))) {\n"; | |
| 161 | + $sToRender .= "\t\treturn false;\n\t}\n"; | |
| 162 | + } | |
| 163 | + $sToRender .= "return true;\n}\n"; | |
| 164 | + | |
| 165 | + $sToRender .= "//-->\n</script>\n\n"; | |
| 166 | + | |
| 167 | + return $sToRender; | |
| 168 | + | |
| 140 | 169 | } |
| 141 | 170 | |
| 142 | 171 | } | ... | ... |