Index: branches/unlabeled/unlabeled-1.12.2/admin/include/tabs.js =================================================================== diff -u -r4941 -r8308 --- branches/unlabeled/unlabeled-1.12.2/admin/include/tabs.js (.../tabs.js) (revision 4941) +++ branches/unlabeled/unlabeled-1.12.2/admin/include/tabs.js (.../tabs.js) (revision 8308) @@ -37,7 +37,7 @@ } } else - field_result &= ValidateField(Field.value, ValType[j]); + field_result &= ValidateField(Field.value, ValType[j], Field); j++; } span.className = field_result ? 'text' : 'validation_error'; @@ -75,7 +75,22 @@ switch(ValidateAs) { case 'exists': // field is required - if(FieldValue.length == 0) result = false; + var $Field = RePasswdValue; + switch ($Field.type) { + case 'radio': + result = false; + var $radio = document.getElementsByName($Field.name); + for (var $i = 0; $i < $radio.length; $i++) { + if ($radio[$i].checked) { + result = true; + break; + } + } + break; + default: + if(FieldValue.length == 0) result = false; + break; + } break; case 'integer': // field must be integer number @@ -109,19 +124,16 @@ var span_id = ''; var result = true; - for (var i = 0; i < f.elements.length; i++) - { + for (var i = 0; i < f.elements.length; i++) { ValType = ''; Field = f.elements[i]; ValType = Field.getAttribute('ValidationType'); - if(ValType) - { + if (ValType) { ValType = ValType.split(','); - if( InArray(ValType,'exists') !== false ) - { + if ((InArray(ValType,'exists') !== false) && (span_id != 'prompt_' + Field.name)) { span_id = 'prompt_' + Field.name; span = document.getElementById(span_id); - span.innerHTML = span.innerHTML + '*'; + span.innerHTML += '*'; } } } Index: branches/unlabeled/unlabeled-1.28.2/admin/users/adduser.php =================================================================== diff -u -r7871 -r8308 --- branches/unlabeled/unlabeled-1.28.2/admin/users/adduser.php (.../adduser.php) (revision 7871) +++ branches/unlabeled/unlabeled-1.28.2/admin/users/adduser.php (.../adduser.php) (revision 8308) @@ -343,7 +343,7 @@ $f->default_value = $c->GetCustomFieldValue($n, '', 0, true); } print "\n"; - print " ".$f->GetPrompt()."\n"; + print ' '.$f->GetPrompt().''."\n"; print " ".$f->ItemFormElement(17).""; if (is_object($f->NextItem)) { Index: branches/unlabeled/unlabeled-1.16.2/kernel/include/customfield.php =================================================================== diff -u -r8305 -r8308 --- branches/unlabeled/unlabeled-1.16.2/kernel/include/customfield.php (.../customfield.php) (revision 8305) +++ branches/unlabeled/unlabeled-1.16.2/kernel/include/customfield.php (.../customfield.php) (revision 8308) @@ -24,7 +24,16 @@ $a->heading = $this->Get("Heading"); $a->prompt = $this->Get("Prompt"); $a->ElementType = $this->Get("ElementType"); - $a->ValidationRules=""; + + $main_prefix = $this->getMainPrefix($this->Get('Type')); + $fields = $this->Application->getUnitOption($main_prefix, 'Fields'); + if (isset($fields['cust'.$a->name]['required']) && $fields['cust'.$a->name]['required']) { + $a->ValidationRules = 'exists'; + } + else { + $a->ValidationRules = ''; + } + $a->default_value = ""; $a->ValueList=$this->Get("ValueList"); if(!strlen($a->ElementType)) @@ -34,6 +43,18 @@ return $a; } + function getMainPrefix($item_type) + { + static $main_prefixes = null; + if (!isset($main_prefixes)) { + $sql = 'SELECT Prefix, ItemType + FROM '.TABLE_PREFIX.'ItemTypes'; + $main_prefixes = $this->Conn->GetCol($sql, 'ItemType'); + } + + return $main_prefixes[$item_type]; + } + function parsetag($tag) { if(is_object($tag)) Index: branches/unlabeled/unlabeled-1.27.2/kernel/include/config.php =================================================================== diff -u -r8063 -r8308 --- branches/unlabeled/unlabeled-1.27.2/kernel/include/config.php (.../config.php) (revision 8063) +++ branches/unlabeled/unlabeled-1.27.2/kernel/include/config.php (.../config.php) (revision 8308) @@ -250,15 +250,17 @@ $this->default_value = $objConfig->Get($this->name); } $this->default_value = inp_htmlize($this->default_value); + $validation_rule = $this->ValidationRules ? ' ValidationType="'.$this->ValidationRules.'" ' : ''; + switch($this->ElementType) { case 'text': $o .= 'default_value.'">'; + $o .= 'value="'.$this->default_value.'"'.$validation_rule.'>'; break; case 'checkbox': - $o .= 'name.'" tabindex="'.($this->TabIndex++).'"'.$validation_rule; $o .= $this->default_value ? ' checked>' : '>'; break; @@ -271,7 +273,7 @@ break; case 'textarea': - $o .= ''; + $o .= ''; break; case 'label': @@ -297,15 +299,15 @@ $this->TabIndex++; $values = $this->GetValues($this->ValueList); foreach ($values as $option_id => $option_name) { - $o .= 'TabIndex.'" name="'.$this->name.'" value="'.$option_id.'"'.$validation_rule; $o .= ($this->default_value == $option_id) ? ' checked>' : '>'; $o .= $option_name; } $this->TabIndex++; break; case 'select': - $o .= ''; $values = $this->GetValues($this->ValueList); foreach ($values as $option_id => $option_name) { @@ -324,7 +326,7 @@ $selected = in_array($option_id, $selected_values) ? ' selected' : ''; $o .= ''; } - $o .= ''; + $o .= ''; break; } return $o;