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,6 +39,8 @@ class PatternEditableListFromQuery {
39 var $sUniqueName; 39 var $sUniqueName;
40 /** set the tables to check for display type 3 */ 40 /** set the tables to check for display type 3 */
41 var $aDropDownListTableNames; 41 var $aDropDownListTableNames;
  42 + /** set whether a column is required or not */
  43 + var $aColumnsRequired;
42 44
43 /** 45 /**
44 * Default constructor 46 * Default constructor
@@ -84,8 +86,14 @@ class PatternEditableListFromQuery { @@ -84,8 +86,14 @@ class PatternEditableListFromQuery {
84 $this->aDropDownListTableNames = $aNewValue; 86 $this->aDropDownListTableNames = $aNewValue;
85 } 87 }
86 88
  89 + function setColumnsRequired($aNewValue) {
  90 + $this->aColumnsRequired = $aNewValue;
  91 + }
  92 +
87 function & render() { 93 function & render() {
88 global $default; 94 global $default;
  95 + //records the columns to generate validation javascript for
  96 + $aValidationColumnNames = array();
89 97
90 $sql = $default->db; 98 $sql = $default->db;
91 $sql->query($this->sQuery); 99 $sql->query($this->sQuery);
@@ -123,6 +131,13 @@ class PatternEditableListFromQuery { @@ -123,6 +131,13 @@ class PatternEditableListFromQuery {
123 break; 131 break;
124 } 132 }
125 $sToRender .= "</tr>\n"; 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 $sToRender .= "<input type=\"hidden\" name=\"unique_end_" . $this->sUniqueName . "\" value=\"\" />\n"; 143 $sToRender .= "<input type=\"hidden\" name=\"unique_end_" . $this->sUniqueName . "\" value=\"\" />\n";
@@ -132,11 +147,25 @@ class PatternEditableListFromQuery { @@ -132,11 +147,25 @@ class PatternEditableListFromQuery {
132 $sToRender .= "<td colspan=" . count($this->aDisplayColumns) . ">No " . (isset($this->sTableHeading) ? "$this->sTableHeading" : "") . " data</td>\n"; 147 $sToRender .= "<td colspan=" . count($this->aDisplayColumns) . ">No " . (isset($this->sTableHeading) ? "$this->sTableHeading" : "") . " data</td>\n";
133 $sToRender .= "</tr>\n"; 148 $sToRender .= "</tr>\n";
134 } 149 }
  150 +
  151 + $sToRender .= $this->generateRequiredFieldValidation($aValidationColumnNames);
  152 +
135 return $sToRender; 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 }