diff --git a/lam/lib/baseModule.inc b/lam/lib/baseModule.inc index 1de29926..01d6e308 100644 --- a/lam/lib/baseModule.inc +++ b/lam/lib/baseModule.inc @@ -1178,9 +1178,10 @@ abstract class baseModule { * @param boolean $required this is a required field (default false) * @param integer $length field length * @param boolean $isTextArea show as text area (default false) + * @param array $autoCompleteValues values for auto-completion * @return mixed reference to htmlTableExtendedInputField/htmlTableExtendedInputTextarea */ - protected function &addSimpleInputTextField(&$container, $attrName, $label, $required = false, $length = null, $isTextArea = false) { + protected function &addSimpleInputTextField(&$container, $attrName, $label, $required = false, $length = null, $isTextArea = false, $autoCompleteValues = null) { $value = ''; if (isset($this->attributes[$attrName][0])) { $value = $this->attributes[$attrName][0]; @@ -1197,6 +1198,9 @@ abstract class baseModule { if ($length != null) { $input->setFieldSize($length); } + if (!empty($autoCompleteValues)) { + $input->enableAutocompletion($autoCompleteValues); + } } $input->setRequired($required); $container->addElement($input, true); @@ -1273,7 +1277,7 @@ abstract class baseModule { protected function processMultiValueInputTextField($attrName, &$errors, $validationID = null) { $counter = 0; while (isset($_POST[$attrName . '_' . $counter])) { - $this->attributes[$attrName][$counter] = $_POST[$attrName . '_' . $counter]; + $this->attributes[$attrName][$counter] = trim($_POST[$attrName . '_' . $counter]); if (($this->attributes[$attrName][$counter] == '') || isset($_POST['del_' . $attrName . '_' . $counter])) { unset($this->attributes[$attrName][$counter]); } diff --git a/lam/lib/modules/inetOrgPerson.inc b/lam/lib/modules/inetOrgPerson.inc index c3001ac0..5d4b9f46 100644 --- a/lam/lib/modules/inetOrgPerson.inc +++ b/lam/lib/modules/inetOrgPerson.inc @@ -69,11 +69,11 @@ class inetOrgPerson extends baseModule implements passwordService { $this->messages['telephoneNumber'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_telephone', _('Please enter a valid telephone number!')); $this->messages['homePhone'][0] = array('ERROR', _('Home telephone number'), _('Please enter a valid telephone number!')); $this->messages['homePhone'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_homePhone', _('Please enter a valid telephone number!')); - $this->messages['mobileTelephone'][0] = array('ERROR', _('Mobile number'), _('Please enter a valid mobile number!')); + $this->messages['mobile'][0] = array('ERROR', _('Mobile number'), _('Please enter a valid mobile number!')); $this->messages['mobileTelephone'][1] = array('ERROR', _('Account %s:') . " inetOrgPerson_mobile", _('Please enter a valid mobile number!')); - $this->messages['facsimileNumber'][0] = array('ERROR', _('Fax number'), _('Please enter a valid fax number!')); + $this->messages['facsimileTelephoneNumber'][0] = array('ERROR', _('Fax number'), _('Please enter a valid fax number!')); $this->messages['facsimileNumber'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_fax', _('Please enter a valid fax number!')); - $this->messages['email'][0] = array('ERROR', _('Email address'), _('Please enter a valid email address!')); + $this->messages['mail'][0] = array('ERROR', _('Email address'), _('Please enter a valid email address!')); $this->messages['email'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_email', _('Please enter a valid email address!')); $this->messages['street'][0] = array('ERROR', _('Street'), _('Please enter a valid street name!')); $this->messages['street'][1] = array('ERROR', _('Account %s:') . ' inetOrgPerson_street', _('Please enter a valid street name!')); @@ -771,7 +771,7 @@ class inetOrgPerson extends baseModule implements passwordService { "Headline" => _("Telephone number"), 'attr' => 'telephoneNumber', "Text" => _("The user's telephone number.") . ' ' . _('Multiple values are separated by semicolon.') ), - 'mobileTelephoneNumber' => array ( + 'mobile' => array ( "Headline" => _("Mobile number"), 'attr' => 'mobile', "Text" => _("The user's mobile number.") ), @@ -1031,96 +1031,22 @@ class inetOrgPerson extends baseModule implements passwordService { $this->attributes['givenName'][0] = trim($_POST['givenName']); if (($this->attributes['givenName'][0] != '') && !get_preg($this->attributes['givenName'][0], 'realname')) $errors[] = $this->messages['givenName'][0]; if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideJobTitle')) { - $titleCounter = 0; - while (isset($_POST['title' . $titleCounter])) { - $this->attributes['title'][$titleCounter] = $_POST['title' . $titleCounter]; - if ($this->attributes['title'][$titleCounter] == '') { - unset($this->attributes['title'][$titleCounter]); - } - elseif (!get_preg($this->attributes['title'][$titleCounter], 'title')) { - $errors[] = $this->messages['title'][0]; - } - $titleCounter++; - } - if (isset($_POST['addtitle'])) { - $this->attributes['title'][] = ''; - } - $this->attributes['title'] = array_values($this->attributes['title']); + $this->processMultiValueInputTextField('title', $errors, 'title'); } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEMailAddress')) { - $mailCounter = 0; - while (isset($_POST['mail' . $mailCounter])) { - $this->attributes['mail'][$mailCounter] = trim($_POST['mail' . $mailCounter]); - if (($_POST['mail' . $mailCounter] != '') && !get_preg($this->attributes['mail'][$mailCounter], 'email')) $errors[] = $this->messages['email'][0]; - if ($this->attributes['mail'][$mailCounter] == '') { - unset($this->attributes['mail'][$mailCounter]); - } - $mailCounter++; - } - if (isset($_POST['addMail'])) { - $this->attributes['mail'][] = ''; - } - $this->attributes['mail'] = array_values($this->attributes['mail']); + $this->processMultiValueInputTextField('mail', $errors, 'email'); } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideTelephoneNumber')) { - $telephoneNumberCounter = 0; - while (isset($_POST['telephoneNumber' . $telephoneNumberCounter])) { - $this->attributes['telephoneNumber'][$telephoneNumberCounter] = trim($_POST['telephoneNumber' . $telephoneNumberCounter]); - if (!get_preg($this->attributes['telephoneNumber'][$telephoneNumberCounter], 'telephone')) $errors[] = $this->messages['telephoneNumber'][0]; - if ($this->attributes['telephoneNumber'][$telephoneNumberCounter] == '') { - unset($this->attributes['telephoneNumber'][$telephoneNumberCounter]); - } - $telephoneNumberCounter++; - } - if (isset($_POST['addTelephoneNumber'])) { - $this->attributes['telephoneNumber'][] = ''; - } - $this->attributes['telephoneNumber'] = array_values($this->attributes['telephoneNumber']); + $this->processMultiValueInputTextField('telephoneNumber', $errors, 'telephone'); } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideMobileNumber')) { - $mobileCounter = 0; - while (isset($_POST['mobile' . $mobileCounter])) { - $this->attributes['mobile'][$mobileCounter] = trim($_POST['mobile' . $mobileCounter]); - if (!get_preg($this->attributes['mobile'][$mobileCounter], 'telephone')) $errors[] = $this->messages['mobileTelephone'][0]; - if ($this->attributes['mobile'][$mobileCounter] == '') { - unset($this->attributes['mobile'][$mobileCounter]); - } - $mobileCounter++; - } - if (isset($_POST['addMobile'])) { - $this->attributes['mobile'][] = ''; - } - $this->attributes['mobile'] = array_values($this->attributes['mobile']); + $this->processMultiValueInputTextField('mobile', $errors, 'telephone'); } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideFaxNumber')) { - $facsimileTelephoneNumberCounter = 0; - while (isset($_POST['facsimileTelephoneNumber' . $facsimileTelephoneNumberCounter])) { - $this->attributes['facsimileTelephoneNumber'][$facsimileTelephoneNumberCounter] = trim($_POST['facsimileTelephoneNumber' . $facsimileTelephoneNumberCounter]); - if (!get_preg($this->attributes['facsimileTelephoneNumber'][$facsimileTelephoneNumberCounter], 'telephone')) $errors[] = $this->messages['facsimileNumber'][0]; - if ($this->attributes['facsimileTelephoneNumber'][$facsimileTelephoneNumberCounter] == '') { - unset($this->attributes['facsimileTelephoneNumber'][$facsimileTelephoneNumberCounter]); - } - $facsimileTelephoneNumberCounter++; - } - if (isset($_POST['addFacsimileTelephoneNumber'])) { - $this->attributes['facsimileTelephoneNumber'][] = ''; - } - $this->attributes['facsimileTelephoneNumber'] = array_values($this->attributes['facsimileTelephoneNumber']); + $this->processMultiValueInputTextField('facsimileTelephoneNumber', $errors, 'telephone'); } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideHomeTelephoneNumber')) { - $homePhoneCounter = 0; - while (isset($_POST['homePhone' . $homePhoneCounter])) { - $this->attributes['homePhone'][$homePhoneCounter] = trim($_POST['homePhone' . $homePhoneCounter]); - if (!get_preg($this->attributes['homePhone'][$homePhoneCounter], 'telephone')) $errors[] = $this->messages['homePhone'][0]; - if ($this->attributes['homePhone'][$homePhoneCounter] == '') { - unset($this->attributes['homePhone'][$homePhoneCounter]); - } - $homePhoneCounter++; - } - if (isset($_POST['addHomePhone'])) { - $this->attributes['homePhone'][] = ''; - } - $this->attributes['homePhone'] = array_values($this->attributes['homePhone']); + $this->processMultiValueInputTextField('homePhone', $errors, 'telephone'); } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideStreet')) { $this->processMultiValueInputTextField('street', $errors, 'street'); @@ -1147,18 +1073,7 @@ class inetOrgPerson extends baseModule implements passwordService { $this->attributes['postalAddress'] = array_values($this->attributes['postalAddress']); } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLabeledURI')) { - $labeledURICounter = 0; - while (isset($_POST['labeledURI' . $labeledURICounter])) { - $this->attributes['labeledURI'][$labeledURICounter] = trim($_POST['labeledURI' . $labeledURICounter]); - if ($this->attributes['labeledURI'][$labeledURICounter] == '') { - unset($this->attributes['labeledURI'][$labeledURICounter]); - } - $labeledURICounter++; - } - if (isset($_POST['addLabeledURI'])) { - $this->attributes['labeledURI'][] = ''; - } - $this->attributes['labeledURI'] = array_values($this->attributes['labeledURI']); + $this->processMultiValueInputTextField('labeledURI', $errors); } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideRegisteredAddress')) { $addressCounter = 0; @@ -1195,66 +1110,19 @@ class inetOrgPerson extends baseModule implements passwordService { $this->processMultiValueInputTextField('physicalDeliveryOfficeName', $errors); } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideBusinessCategory')) { - $businessCategoryCounter = 0; - while (isset($_POST['businessCategory' . $businessCategoryCounter])) { - $this->attributes['businessCategory'][$businessCategoryCounter] = $_POST['businessCategory' . $businessCategoryCounter]; - if ($this->attributes['businessCategory'][$businessCategoryCounter] == '') { - unset($this->attributes['businessCategory'][$businessCategoryCounter]); - } - elseif (!get_preg($this->attributes['businessCategory'][$businessCategoryCounter], 'businessCategory')) { - $errors[] = $this->messages['businessCategory'][0]; - } - $businessCategoryCounter++; - } - if (isset($_POST['addbusinessCategory'])) { - $this->attributes['businessCategory'][] = ''; - } - $this->attributes['businessCategory'] = array_values($this->attributes['businessCategory']); + $this->processMultiValueInputTextField('businessCategory', $errors, 'businessCategory'); } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideDepartments')) { - $departmentNumberCounter = 0; - while (isset($_POST['departmentNumber' . $departmentNumberCounter])) { - $this->attributes['departmentNumber'][$departmentNumberCounter] = $_POST['departmentNumber' . $departmentNumberCounter]; - if ($this->attributes['departmentNumber'][$departmentNumberCounter] == '') { - unset($this->attributes['departmentNumber'][$departmentNumberCounter]); - } - $departmentNumberCounter++; - } - if (isset($_POST['addDepartmentNumber'])) { - $this->attributes['departmentNumber'][] = ''; - } - $this->attributes['departmentNumber'] = array_values($this->attributes['departmentNumber']); + $this->processMultiValueInputTextField('departmentNumber', $errors); } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEmployeeNumber')) { $this->attributes['employeeNumber'][0] = $_POST['employeeNumber']; } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideOu')) { - $ouCounter = 0; - while (isset($_POST['ou' . $ouCounter])) { - $this->attributes['ou'][$ouCounter] = $_POST['ou' . $ouCounter]; - if ($this->attributes['ou'][$ouCounter] == '') { - unset($this->attributes['ou'][$ouCounter]); - } - $ouCounter++; - } - if (isset($_POST['addOu'])) { - $this->attributes['ou'][] = ''; - } - $this->attributes['ou'] = array_values($this->attributes['ou']); + $this->processMultiValueInputTextField('ou', $errors); } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideO')) { - $oCounter = 0; - while (isset($_POST['o' . $oCounter])) { - $this->attributes['o'][$oCounter] = $_POST['o' . $oCounter]; - if ($this->attributes['o'][$oCounter] == '') { - unset($this->attributes['o'][$oCounter]); - } - $oCounter++; - } - if (isset($_POST['addO'])) { - $this->attributes['o'][] = ''; - } - $this->attributes['o'] = array_values($this->attributes['o']); + $this->processMultiValueInputTextField('o', $errors); } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideInitials')) { $this->attributes['initials'] = preg_split('/;[ ]*/', $_POST['initials']); @@ -1498,166 +1366,70 @@ class inetOrgPerson extends baseModule implements passwordService { } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideTelephoneNumber')) { - $telephoneNumbers = array(); - if (isset($this->attributes['telephoneNumber'][0])) { - $telephoneNumbers = $this->attributes['telephoneNumber']; - } - if (sizeof($telephoneNumbers) == 0) { - $telephoneNumbers[] = ''; - } - $telephoneNumberLabel = new htmlOutputText(_('Telephone number')); - $telephoneNumberLabel->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($telephoneNumberLabel); - $telephoneNumberContainer = new htmlGroup(); - for ($i = 0; $i < sizeof($telephoneNumbers); $i++) { - $telephoneNumberContainer->addElement(new htmlInputField('telephoneNumber' . $i, $telephoneNumbers[$i])); - $equalWidthElements[] = 'telephoneNumber' . $i; - if ($i < (sizeof($telephoneNumbers) - 1)) { - $telephoneNumberContainer->addElement(new htmlOutputText('
', false)); - } - else { - $telephoneNumberContainer->addElement(new htmlButton('addTelephoneNumber', 'add.png', true)); + $this->addMultiValueInputTextField($fieldContainer, 'telephoneNumber', _('Telephone number')); + if (!empty($this->attributes['telephoneNumber'])) { + for ($i = 0; $i < sizeof($this->attributes['telephoneNumber']); $i++) { + $equalWidthElements[] = 'telephoneNumber_' . $i; } } - $fieldContainer->addElement($telephoneNumberContainer); - $telephoneNumberHelp = new htmlHelpLink('telephoneNumber'); - $telephoneNumberHelp->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($telephoneNumberHelp, true); + else { + $equalWidthElements[] = 'telephoneNumber_0'; + } } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideHomeTelephoneNumber')) { - $homePhones = array(); - if (isset($this->attributes['homePhone'][0])) { - $homePhones = $this->attributes['homePhone']; - } - if (sizeof($homePhones) == 0) { - $homePhones[] = ''; - } - $homePhoneLabel = new htmlOutputText(_('Home telephone number')); - $homePhoneLabel->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($homePhoneLabel); - $homePhoneContainer = new htmlGroup(); - for ($i = 0; $i < sizeof($homePhones); $i++) { - $homePhoneContainer->addElement(new htmlInputField('homePhone' . $i, $homePhones[$i])); - $equalWidthElements[] = 'homePhone' . $i; - if ($i < (sizeof($homePhones) - 1)) { - $homePhoneContainer->addElement(new htmlOutputText('
', false)); - } - else { - $homePhoneContainer->addElement(new htmlButton('addHomePhone', 'add.png', true)); + $this->addMultiValueInputTextField($fieldContainer, 'homePhone', _('Home telephone number')); + if (!empty($this->attributes['homePhone'])) { + for ($i = 0; $i < sizeof($this->attributes['homePhone']); $i++) { + $equalWidthElements[] = 'homePhone_' . $i; } } - $fieldContainer->addElement($homePhoneContainer); - $homePhoneHelp = new htmlHelpLink('homePhone'); - $homePhoneHelp->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($homePhoneHelp, true); + else { + $equalWidthElements[] = 'homePhone_0'; + } } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideMobileNumber')) { - $mobiles = array(); - if (isset($this->attributes['mobile'][0])) { - $mobiles = $this->attributes['mobile']; - } - if (sizeof($mobiles) == 0) { - $mobiles[] = ''; - } - $mobileLabel = new htmlOutputText(_('Mobile number')); - $mobileLabel->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($mobileLabel); - $mobileContainer = new htmlGroup(); - for ($i = 0; $i < sizeof($mobiles); $i++) { - $mobileContainer->addElement(new htmlInputField('mobile' . $i, $mobiles[$i])); - $equalWidthElements[] = 'mobile' . $i; - if ($i < (sizeof($mobiles) - 1)) { - $mobileContainer->addElement(new htmlOutputText('
', false)); - } - else { - $mobileContainer->addElement(new htmlButton('addMobile', 'add.png', true)); + $this->addMultiValueInputTextField($fieldContainer, 'mobile', _('Mobile number')); + if (!empty($this->attributes['mobile'])) { + for ($i = 0; $i < sizeof($this->attributes['mobile']); $i++) { + $equalWidthElements[] = 'mobile_' . $i; } } - $fieldContainer->addElement($mobileContainer); - $mobileHelp = new htmlHelpLink('mobileTelephoneNumber'); - $mobileHelp->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($mobileHelp, true); + else { + $equalWidthElements[] = 'mobile_0'; + } } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideFaxNumber')) { - $facsimileTelephoneNumbers = array(); - if (isset($this->attributes['facsimileTelephoneNumber'][0])) { - $facsimileTelephoneNumbers = $this->attributes['facsimileTelephoneNumber']; - } - if (sizeof($facsimileTelephoneNumbers) == 0) { - $facsimileTelephoneNumbers[] = ''; - } - $facsimileTelephoneNumberLabel = new htmlOutputText(_('Fax number')); - $facsimileTelephoneNumberLabel->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($facsimileTelephoneNumberLabel); - $facsimileTelephoneNumberContainer = new htmlGroup(); - for ($i = 0; $i < sizeof($facsimileTelephoneNumbers); $i++) { - $facsimileTelephoneNumberContainer->addElement(new htmlInputField('facsimileTelephoneNumber' . $i, $facsimileTelephoneNumbers[$i])); - $equalWidthElements[] = 'facsimileTelephoneNumber' . $i; - if ($i < (sizeof($facsimileTelephoneNumbers) - 1)) { - $facsimileTelephoneNumberContainer->addElement(new htmlOutputText('
', false)); - } - else { - $facsimileTelephoneNumberContainer->addElement(new htmlButton('addFacsimileTelephoneNumber', 'add.png', true)); + $this->addMultiValueInputTextField($fieldContainer, 'facsimileTelephoneNumber', _('Fax number')); + if (!empty($this->attributes['facsimileTelephoneNumber'])) { + for ($i = 0; $i < sizeof($this->attributes['facsimileTelephoneNumber']); $i++) { + $equalWidthElements[] = 'facsimileTelephoneNumber_' . $i; } } - $fieldContainer->addElement($facsimileTelephoneNumberContainer); - $facsimileTelephoneNumberHelp = new htmlHelpLink('facsimileTelephoneNumber'); - $facsimileTelephoneNumberHelp->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($facsimileTelephoneNumberHelp, true); + else { + $equalWidthElements[] = 'facsimileTelephoneNumber_0'; + } } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEMailAddress')) { - $mails = array(); - if (isset($this->attributes['mail'][0])) { - $mails = $this->attributes['mail']; - } - if (sizeof($mails) == 0) { - $mails[] = ''; - } - $mailLabel = new htmlOutputText(_('Email address')); - $mailLabel->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($mailLabel); - $mailContainer = new htmlGroup(); - for ($i = 0; $i < sizeof($mails); $i++) { - $mailContainer->addElement(new htmlInputField('mail' . $i, $mails[$i])); - $equalWidthElements[] = 'mail' . $i; - if ($i < (sizeof($mails) - 1)) { - $mailContainer->addElement(new htmlOutputText('
', false)); - } - else { - $mailContainer->addElement(new htmlButton('addMail', 'add.png', true)); + $this->addMultiValueInputTextField($fieldContainer, 'mail', _('Email address')); + if (!empty($this->attributes['mail'])) { + for ($i = 0; $i < sizeof($this->attributes['mail']); $i++) { + $equalWidthElements[] = 'mail_' . $i; } } - $fieldContainer->addElement($mailContainer); - $mailHelp = new htmlHelpLink('mail'); - $mailHelp->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($mailHelp, true); + else { + $equalWidthElements[] = 'mail_0'; + } } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideLabeledURI')) { - $labeledURI = array(); - if (isset($this->attributes['labeledURI'][0])) { - $labeledURI = $this->attributes['labeledURI']; - } - if (sizeof($labeledURI) == 0) { - $labeledURI[] = ''; - } - $labeledURILabel = new htmlOutputText(_('Web site')); - $labeledURILabel->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($labeledURILabel); - $labeledURIContainer = new htmlGroup(); - for ($i = 0; $i < sizeof($labeledURI); $i++) { - $labeledURIContainer->addElement(new htmlInputField('labeledURI' . $i, $labeledURI[$i])); - $equalWidthElements[] = 'labeledURI' . $i; - if ($i < (sizeof($labeledURI) - 1)) { - $labeledURIContainer->addElement(new htmlOutputText('
', false)); - } - else { - $labeledURIContainer->addElement(new htmlButton('addLabeledURI', 'add.png', true)); + $this->addMultiValueInputTextField($fieldContainer, 'labeledURI', _('Web site')); + if (!empty($this->attributes['labeledURI'])) { + for ($i = 0; $i < sizeof($this->attributes['labeledURI']); $i++) { + $equalWidthElements[] = 'labeledURI_' . $i; } } - $fieldContainer->addElement($labeledURIContainer); - $labeledURIHelp = new htmlHelpLink('labeledURI'); - $labeledURIHelp->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($labeledURIHelp, true); + else { + $equalWidthElements[] = 'labeledURI_0'; + } } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideJobTitle') || !$this->isBooleanConfigOptionSet('inetOrgPerson_hideCarLicense') @@ -1668,171 +1440,73 @@ class inetOrgPerson extends baseModule implements passwordService { } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideJobTitle')) { - $titles = array(); - if (isset($this->attributes['title'][0])) { - $titles = $this->attributes['title']; - } - if (sizeof($titles) == 0) { - $titles[] = ''; - } - $titleLabel = new htmlOutputText(_('Job title')); - $titleLabel->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($titleLabel); - $titleContainer = new htmlGroup(); - for ($i = 0; $i < sizeof($titles); $i++) { - $titleInput = new htmlInputField('title' . $i, $titles[$i]); - $titleInput->enableAutocompletion($this->titleCache); - $titleContainer->addElement($titleInput); - $equalWidthElements[] = 'title' . $i; - if ($i < (sizeof($titles) - 1)) { - $titleContainer->addElement(new htmlOutputText('
', false)); - } - else { - $titleContainer->addElement(new htmlButton('addtitle', 'add.png', true)); + $this->addMultiValueInputTextField($fieldContainer, 'title', _('Job title')); + if (!empty($this->attributes['title'])) { + for ($i = 0; $i < sizeof($this->attributes['title']); $i++) { + $equalWidthElements[] = 'title_' . $i; } } - $fieldContainer->addElement($titleContainer); - $titleHelp = new htmlHelpLink('title'); - $titleHelp->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($titleHelp, true); + else { + $equalWidthElements[] = 'title_0'; + } } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideCarLicense')) { - $carLicense = ''; - if (isset($this->attributes['carLicense'][0])) $carLicense = $this->attributes['carLicense'][0]; - $fieldContainer->addElement(new htmlTableExtendedInputField(_('Car license'), 'carLicense', $carLicense, 'carLicense'), true); + $this->addSimpleInputTextField($fieldContainer, 'carLicense', _('Car license')); $equalWidthElements[] = 'carLicense'; } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEmployeeNumber')) { - $employeeNumber = ''; - if (isset($this->attributes['employeeNumber'][0])) $employeeNumber = $this->attributes['employeeNumber'][0]; - $fieldContainer->addElement(new htmlTableExtendedInputField(_('Employee number'), 'employeeNumber', $employeeNumber, 'employeeNumber'), true); + $this->addSimpleInputTextField($fieldContainer, 'employeeNumber', _('Employee number')); $equalWidthElements[] = 'employeeNumber'; } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideEmployeeType')) { - $employeeType = ''; - if (isset($this->attributes['employeeType'][0])) $employeeType = $this->attributes['employeeType'][0]; - $employeeTypeInput = new htmlTableExtendedInputField(_('Employee type'), 'employeeType', $employeeType, 'employeeType'); - $employeeTypeInput->enableAutocompletion($this->employeeTypeCache); - $fieldContainer->addElement($employeeTypeInput, true); + $this->addSimpleInputTextField($fieldContainer, 'employeeType', _('Employee type'), false, null, false, $this->employeeTypeCache); $equalWidthElements[] = 'employeeType'; } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideBusinessCategory')) { - $businessCategories = array(); - if (isset($this->attributes['businessCategory'][0])) { - $businessCategories = $this->attributes['businessCategory']; - } - if (sizeof($businessCategories) == 0) { - $businessCategories[] = ''; - } - $businessCategoryLabel = new htmlOutputText(_('Business category')); - $businessCategoryLabel->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($businessCategoryLabel); - $businessCategoryContainer = new htmlGroup(); - for ($i = 0; $i < sizeof($businessCategories); $i++) { - $businessCategoryInput = new htmlInputField('businessCategory' . $i, $businessCategories[$i]); - $businessCategoryInput->enableAutocompletion($this->businessCategoryCache); - $businessCategoryContainer->addElement($businessCategoryInput); - $equalWidthElements[] = 'businessCategory' . $i; - if ($i < (sizeof($businessCategories) - 1)) { - $businessCategoryContainer->addElement(new htmlOutputText('
', false)); - } - else { - $businessCategoryContainer->addElement(new htmlButton('addbusinessCategory', 'add.png', true)); + $this->addMultiValueInputTextField($fieldContainer, 'businessCategory', _('Business category'), false, null, false, $this->businessCategoryCache); + if (!empty($this->attributes['businessCategory'])) { + for ($i = 0; $i < sizeof($this->attributes['businessCategory']); $i++) { + $equalWidthElements[] = 'businessCategory_' . $i; } } - $fieldContainer->addElement($businessCategoryContainer); - $businessCategoryHelp = new htmlHelpLink('businessCategory'); - $businessCategoryHelp->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($businessCategoryHelp, true); + else { + $equalWidthElements[] = 'businessCategory_0'; + } } if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideDepartments')) { - $departmentNumbers = array(); - if (isset($this->attributes['departmentNumber'][0])) { - $departmentNumbers = $this->attributes['departmentNumber']; - } - if (sizeof($departmentNumbers) == 0) { - $departmentNumbers[] = ''; - } - $departmentNumberLabel = new htmlOutputText(_('Department')); - $departmentNumberLabel->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($departmentNumberLabel); - $departmentNumberContainer = new htmlGroup(); - for ($i = 0; $i < sizeof($departmentNumbers); $i++) { - $departmentInput = new htmlInputField('departmentNumber' . $i, $departmentNumbers[$i]); - $departmentInput->enableAutocompletion($this->departmentCache); - $departmentNumberContainer->addElement($departmentInput); - $equalWidthElements[] = 'departmentNumber' . $i; - if ($i < (sizeof($departmentNumbers) - 1)) { - $departmentNumberContainer->addElement(new htmlOutputText('
', false)); - } - else { - $departmentNumberContainer->addElement(new htmlButton('addDepartmentNumber', 'add.png', true)); + $this->addMultiValueInputTextField($fieldContainer, 'departmentNumber', _('Department'), false, null, false, $this->departmentCache); + if (!empty($this->attributes['departmentNumber'])) { + for ($i = 0; $i < sizeof($this->attributes['departmentNumber']); $i++) { + $equalWidthElements[] = 'departmentNumber_' . $i; } } - $fieldContainer->addElement($departmentNumberContainer); - $departmentNumberHelp = new htmlHelpLink('departmentNumber'); - $departmentNumberHelp->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($departmentNumberHelp, true); + else { + $equalWidthElements[] = 'departmentNumber_0'; + } } // organisational unit if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideOu')) { - $ous = array(); - if (isset($this->attributes['ou'][0])) { - $ous = $this->attributes['ou']; - } - if (sizeof($ous) == 0) { - $ous[] = ''; - } - $ouLabel = new htmlOutputText(_('Organisational unit')); - $ouLabel->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($ouLabel); - $ouContainer = new htmlGroup(); - for ($i = 0; $i < sizeof($ous); $i++) { - $ouInput = new htmlInputField('ou' . $i, $ous[$i]); - $ouInput->enableAutocompletion($this->ouCache); - $ouContainer->addElement($ouInput); - $equalWidthElements[] = 'ou' . $i; - if ($i < (sizeof($ous) - 1)) { - $ouContainer->addElement(new htmlOutputText('
', false)); - } - else { - $ouContainer->addElement(new htmlButton('addOu', 'add.png', true)); + $this->addMultiValueInputTextField($fieldContainer, 'ou', _('Organisational unit'), false, null, false, $this->ouCache); + if (!empty($this->attributes['ou'])) { + for ($i = 0; $i < sizeof($this->attributes['ou']); $i++) { + $equalWidthElements[] = 'ou_' . $i; } } - $fieldContainer->addElement($ouContainer); - $ouHelp = new htmlHelpLink('ou'); - $ouHelp->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($ouHelp, true); + else { + $equalWidthElements[] = 'ou_0'; + } } // organisation if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideO')) { - $os = array(); - if (isset($this->attributes['o'][0])) { - $os = $this->attributes['o']; - } - if (sizeof($os) == 0) { - $os[] = ''; - } - $oLabel = new htmlOutputText(_('Organisation')); - $oLabel->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($oLabel); - $oContainer = new htmlGroup(); - for ($i = 0; $i < sizeof($os); $i++) { - $oInput = new htmlInputField('o' . $i, $os[$i]); - $oInput->enableAutocompletion($this->oCache); - $oContainer->addElement($oInput); - $equalWidthElements[] = 'o' . $i; - if ($i < (sizeof($os) - 1)) { - $oContainer->addElement(new htmlOutputText('
', false)); - } - else { - $oContainer->addElement(new htmlButton('addO', 'add.png', true)); + $this->addMultiValueInputTextField($fieldContainer, 'o', _('Organisation'), false, null, false, $this->oCache); + if (!empty($this->attributes['o'])) { + for ($i = 0; $i < sizeof($this->attributes['o']); $i++) { + $equalWidthElements[] = 'o_' . $i; } } - $fieldContainer->addElement($oContainer); - $oHelp = new htmlHelpLink('o'); - $oHelp->alignment = htmlElement::ALIGN_TOP; - $fieldContainer->addElement($oHelp, true); + else { + $equalWidthElements[] = 'o_0'; + } } // user certificates if (!$this->isBooleanConfigOptionSet('inetOrgPerson_hideuserCertificate')) { @@ -2292,7 +1966,7 @@ class inetOrgPerson extends baseModule implements passwordService { $facsimileTelephoneNumberList = preg_split('/;[ ]*/', $options['inetOrgPerson_facsimileTelephoneNumber'][0]); for ($i = 0; $i < sizeof($facsimileTelephoneNumberList); $i++) { if (!get_preg($facsimileTelephoneNumberList[$i], 'telephone')) { - $messages[] = $this->messages['facsimileNumber'][0]; + $messages[] = $this->messages['facsimileTelephoneNumber'][0]; break; } }