reduced code

This commit is contained in:
Roland Gruber 2013-11-02 11:08:04 +00:00
parent 5200138e06
commit f8ce8e0ef0
3 changed files with 28 additions and 98 deletions

View File

@ -1220,8 +1220,10 @@ abstract class baseModule {
* @param boolean $required this is a required field (default false) * @param boolean $required this is a required field (default false)
* @param integer $length field length * @param integer $length field length
* @param boolean $isTextArea show as text area (default false) * @param boolean $isTextArea show as text area (default false)
* @param array $autoCompleteValues values for auto-completion
* @param integer $fieldSize field size
*/ */
protected function addMultiValueInputTextField(&$container, $attrName, $label, $required = false, $length = null, $isTextArea = false, $autoCompleteValues = null) { protected function addMultiValueInputTextField(&$container, $attrName, $label, $required = false, $length = null, $isTextArea = false, $autoCompleteValues = null, $fieldSize = null) {
$values = array(); $values = array();
if (isset($this->attributes[$attrName][0])) { if (isset($this->attributes[$attrName][0])) {
$values = $this->attributes[$attrName]; $values = $this->attributes[$attrName];
@ -1231,14 +1233,22 @@ abstract class baseModule {
} }
natcasesort($values); natcasesort($values);
$values = array_values($values); $values = array_values($values);
$labelTextOut = new htmlOutputText($label); if ($label !== null) {
$labelTextOut->alignment = htmlElement::ALIGN_TOP; $labelTextOut = new htmlOutputText($label);
$container->addElement($labelTextOut); $labelTextOut->alignment = htmlElement::ALIGN_TOP;
$container->addElement($labelTextOut);
}
$subContainer = new htmlTable(); $subContainer = new htmlTable();
$subContainer->alignment = htmlElement::ALIGN_TOP; $subContainer->alignment = htmlElement::ALIGN_TOP;
for ($i = 0; $i < sizeof($values); $i++) { for ($i = 0; $i < sizeof($values); $i++) {
if (!$isTextArea) { if (!$isTextArea) {
$input = new htmlInputField($attrName . '_' . $i, $values[$i]); $input = new htmlInputField($attrName . '_' . $i, $values[$i]);
if (!empty($length)) {
$input->setFieldMaxLength($length);
}
if (!empty($fieldSize)) {
$input->setFieldSize($fieldSize);
}
if (!empty($autoCompleteValues)) { if (!empty($autoCompleteValues)) {
$input->enableAutocompletion($autoCompleteValues); $input->enableAutocompletion($autoCompleteValues);
} }
@ -1282,7 +1292,11 @@ abstract class baseModule {
unset($this->attributes[$attrName][$counter]); unset($this->attributes[$attrName][$counter]);
} }
elseif (($validationID != null) && ($this->attributes[$attrName][$counter] != '') && !get_preg($this->attributes[$attrName][$counter], $validationID)) { elseif (($validationID != null) && ($this->attributes[$attrName][$counter] != '') && !get_preg($this->attributes[$attrName][$counter], $validationID)) {
$errors[] = $this->messages[$attrName][0]; $msg = $this->messages[$attrName][0];
if (sizeof($msg) < 3) {
$msg[] = htmlspecialchars($this->attributes[$attrName][$counter]);
}
$errors[] = $msg;
} }
$counter++; $counter++;
} }

View File

@ -258,13 +258,7 @@ class kolabUser extends baseModule {
} }
// mailbox server // mailbox server
if (!isset($this->orig['mailHost'][0])) { // value currently not set if (!isset($this->orig['mailHost'][0])) { // value currently not set
$mailHost = ''; $this->addSimpleInputTextField($return, 'mailHost', _('Mailbox home server'), true);
if (isset($this->attributes['mailHost'][0])) {
$mailHost = $this->attributes['mailHost'][0];
}
$serverInput = new htmlTableExtendedInputField(_('Mailbox home server'), 'mailHost', $mailHost, 'mailHost');
$serverInput->setRequired(true);
$return->addElement($serverInput, true);
} }
else { // input is unchangable when set else { // input is unchangable when set
$return->addElement(new htmlOutputText(_('Mailbox home server'))); $return->addElement(new htmlOutputText(_('Mailbox home server')));
@ -309,20 +303,7 @@ class kolabUser extends baseModule {
$return->addElement($invitationContainer, true); $return->addElement($invitationContainer, true);
// mail aliases // mail aliases
$return->addElement(new htmlSubTitle(_('Email aliases')), true); $return->addElement(new htmlSubTitle(_('Email aliases')), true);
$mailAliasContainer = new htmlTable(); $this->addMultiValueInputTextField($return, 'alias');
$mailAliasContainer->colspan = 3;
if (isset($this->attributes['alias'])) {
for ($i = 0; $i < sizeof($this->attributes['alias']); $i++) {
$mailAliasContainer->addElement(new htmlInputField('alias' . $i, $this->attributes['alias'][$i]));
$mailAliasContainer->addElement(new htmlButton('delAlias' . $i, 'del.png', true));
$mailAliasContainer->addElement(new htmlHelpLink('alias'), true);
}
}
// input box for new mail alias
$mailAliasContainer->addElement(new htmlInputField('alias'));
$mailAliasContainer->addElement(new htmlButton('addAlias', 'add.png', true));
$mailAliasContainer->addElement(new htmlHelpLink('alias'), true);
$return->addElement($mailAliasContainer, true);
// delegates // delegates
$delegates = searchLDAPByAttribute('mail', '*', 'inetOrgPerson', array('mail'), array('user')); $delegates = searchLDAPByAttribute('mail', '*', 'inetOrgPerson', array('mail'), array('user'));
for ($i = 0; $i < sizeof($delegates); $i++) { for ($i = 0; $i < sizeof($delegates); $i++) {
@ -431,38 +412,8 @@ class kolabUser extends baseModule {
if (isset($_POST['defaultInvPol']) && ($_POST['defaultInvPol'] != "")) { if (isset($_POST['defaultInvPol']) && ($_POST['defaultInvPol'] != "")) {
$this->attributes['kolabInvitationPolicy'][] = $policies[$_POST['defaultInvPol']]; $this->attributes['kolabInvitationPolicy'][] = $policies[$_POST['defaultInvPol']];
} }
// check old mail aliases // mail aliases
$this->attributes['alias'] = array(); $this->processMultiValueInputTextField('alias', $errors, 'email');
$i = 0;
while (isset($_POST['alias' . $i])) {
if (isset($_POST['delAlias' . $i])) {
$i++;
continue;
}
if (isset($_POST['alias' . $i]) && ($_POST['alias' . $i] != "") && !in_array($_POST['alias' . $i], $this->attributes['alias'])) {
// check mail alias
if (!get_preg($_POST['alias' . $i], 'email')) {
$message = $this->messages['alias'][0];
$message[] = $_POST['alias' . $i];
$errors[] = $message;
}
$this->attributes['alias'][] = $_POST['alias' . $i];
}
$i++;
}
// check new mail alias
if (isset($_POST['alias']) && ($_POST['alias'] != "")) {
// check new mail alias
if (!get_preg($_POST['alias'], 'email')) {
$message = $this->messages['alias'][0];
$message[] = $_POST['alias'];
$errors[] = $message;
}
else {
$this->attributes['alias'][] = $_POST['alias'];
}
}
$this->attributes['alias'] = array_unique($this->attributes['alias']);
// check old delegates // check old delegates
$this->attributes['kolabDelegate'] = array(); $this->attributes['kolabDelegate'] = array();
$i = 0; $i = 0;

View File

@ -61,7 +61,7 @@ class ldapPublicKey extends baseModule {
$return['attributes'] = array('sshPublicKey'); $return['attributes'] = array('sshPublicKey');
// help Entries // help Entries
$return['help'] = array( $return['help'] = array(
'key' => array( 'sshPublicKey' => array(
"Headline" => _("SSH public key"), 'attr' => 'sshPublicKey', "Headline" => _("SSH public key"), 'attr' => 'sshPublicKey',
"Text" => _("Please enter your public SSH key.") "Text" => _("Please enter your public SSH key.")
), ),
@ -109,29 +109,7 @@ class ldapPublicKey extends baseModule {
*/ */
function display_html_attributes() { function display_html_attributes() {
$return = new htmlTable(); $return = new htmlTable();
$keyCount = 0; $this->addMultiValueInputTextField($return, 'sshPublicKey', _('SSH public key'), false, '16384', false, null, '50');
// list current keys
if (isset($this->attributes['sshPublicKey'])) {
$keyCount = sizeof($this->attributes['sshPublicKey']);
for ($i = 0; $i < sizeof($this->attributes['sshPublicKey']); $i++) {
$return->addElement(new htmlOutputText(_('SSH public key')));
$sshInput = new htmlInputField('sshPublicKey' . $i, $this->attributes['sshPublicKey'][$i]);
$sshInput->setFieldSize(50);
$sshInput->setFieldMaxLength(16384);
$return->addElement($sshInput);
$return->addElement(new htmlButton('delKey' . $i, 'del.png', true));
$return->addElement(new htmlHelpLink('key'), true);
}
}
// input box for new key
$return->addElement(new htmlOutputText(_('New SSH public key')));
$sshNewKey = new htmlInputField('sshPublicKey');
$sshNewKey->setFieldSize(50);
$sshNewKey->setFieldMaxLength(4096);
$return->addElement($sshNewKey);
$return->addElement(new htmlButton('addKey', 'add.png', true));
$return->addElement(new htmlHelpLink('key'));
$return->addElement(new htmlHiddenInput('key_number', $keyCount), true);
// file upload // file upload
$return->addElement(new htmlSpacer(null, '20px'), true); $return->addElement(new htmlSpacer(null, '20px'), true);
$return->addElement(new htmlOutputText(_('Upload file'))); $return->addElement(new htmlOutputText(_('Upload file')));
@ -139,9 +117,9 @@ class ldapPublicKey extends baseModule {
$uploadGroup->addElement(new htmlInputFileUpload('sshPublicKeyFile')); $uploadGroup->addElement(new htmlInputFileUpload('sshPublicKeyFile'));
$uploadGroup->addElement(new htmlSpacer('1px', null)); $uploadGroup->addElement(new htmlSpacer('1px', null));
$uploadGroup->addElement(new htmlButton('sshPublicKeyFileSubmit', _('Upload'))); $uploadGroup->addElement(new htmlButton('sshPublicKeyFileSubmit', _('Upload')));
$uploadGroup->addElement(new htmlSpacer('5px', null));
$uploadGroup->addElement(new htmlHelpLink('upload'));
$return->addElement($uploadGroup); $return->addElement($uploadGroup);
$return->addElement(new htmlOutputText(''));
$return->addElement(new htmlHelpLink('upload'));
return $return; return $return;
} }
@ -153,20 +131,7 @@ class ldapPublicKey extends baseModule {
*/ */
function process_attributes() { function process_attributes() {
$messages = array(); $messages = array();
$this->attributes['sshPublicKey'] = array(); $this->processMultiValueInputTextField('sshPublicKey', $messages);
// check old keys
if (isset($_POST['key_number'])) {
for ($i = 0; $i < $_POST['key_number']; $i++) {
if (isset($_POST['delKey' . $i])) continue;
if (isset($_POST['sshPublicKey' . $i]) && ($_POST['sshPublicKey' . $i] != "")) {
$this->attributes['sshPublicKey'][] = $_POST['sshPublicKey' . $i];
}
}
}
// check new key
if (isset($_POST['sshPublicKey']) && ($_POST['sshPublicKey'] != "")) {
$this->attributes['sshPublicKey'][] = $_POST['sshPublicKey'];
}
// file upload // file upload
if (isset($_POST['sshPublicKeyFileSubmit'])) { if (isset($_POST['sshPublicKeyFileSubmit'])) {
if ($_FILES['sshPublicKeyFile'] && ($_FILES['sshPublicKeyFile']['size'] > 0)) { if ($_FILES['sshPublicKeyFile'] && ($_FILES['sshPublicKeyFile']['size'] > 0)) {