Commit 83f2f785e8d2a672be0e8d2591e98fe8f0dc01a5

Authored by rob
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
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 }
... ...