Merge pull request #43 from LDAPAccountManager/responsiveSettings
Responsive settings
This commit is contained in:
		
						commit
						839941187c
					
				|  | @ -2716,6 +2716,8 @@ class htmlSubTitle extends htmlElement { | |||
| 	private $image = null; | ||||
| 	/** optional ID for this element (e.g. to use for JavaScript) */ | ||||
| 	private $id = null; | ||||
| 	/** show large icon */ | ||||
| 	private $largeIcon = false; | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Constructor. | ||||
|  | @ -2723,13 +2725,15 @@ class htmlSubTitle extends htmlElement { | |||
| 	 * @param String $label label | ||||
| 	 * @param String $image optional image | ||||
| 	 * @param String $id optional ID for this element (e.g. to use for JavaScript) | ||||
| 	 * @param bool $largeIcon show large (32x32px) icon instead of small one (16x16px) | ||||
| 	 */ | ||||
| 	function __construct($label, $image = null, $id = null) { | ||||
| 	function __construct($label, $image = null, $id = null, $largeIcon = false) { | ||||
| 		$this->label = htmlspecialchars($label); | ||||
| 		$this->image = htmlspecialchars($image); | ||||
| 		$this->id = htmlspecialchars($id); | ||||
| 		// the title should not end at a table cell
 | ||||
| 		$this->colspan = 100; | ||||
| 		$this->largeIcon = $largeIcon; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
|  | @ -2751,7 +2755,8 @@ class htmlSubTitle extends htmlElement { | |||
| 		echo "<div $idValue class=\"subTitle\">\n"; | ||||
| 		echo "<h4 class=\"subTitleText\">\n"; | ||||
| 		if ($this->image != null) { | ||||
| 			echo '<img height=16 width=16 src="' . $this->image . '" alt="' . $this->label . '"> '; | ||||
| 			$size = $this->largeIcon ? 32 : 16; | ||||
| 			echo '<img height=' . $size . ' width=' . $size . ' src="' . $this->image . '" alt="' . $this->label . '"> '; | ||||
| 		} | ||||
| 		echo $this->label; | ||||
| 		echo "</h4>\n"; | ||||
|  | @ -3724,6 +3729,8 @@ class htmlResponsiveInputField extends htmlInputField { | |||
| 	private $label; | ||||
| 	/** help ID */ | ||||
| 	private $helpID; | ||||
| 	/** help module name */ | ||||
| 	private $helpModule = null; | ||||
| 	/** render HTML of parent class */ | ||||
| 	private $renderParentHtml = false; | ||||
| 
 | ||||
|  | @ -3733,13 +3740,21 @@ class htmlResponsiveInputField extends htmlInputField { | |||
| 	 * @param String $label descriptive label | ||||
| 	 * @param String $fieldName unique field name | ||||
| 	 * @param String $fieldValue value of input field (optional) | ||||
| 	 * @param String $helpID help ID (optional) | ||||
| 	 * @param String|array $helpID help ID or array of help ID + module name (optional) | ||||
| 	 * @param bool $required field is required | ||||
| 	 */ | ||||
| 	function __construct($label, $fieldName, $fieldValue = null, $helpID = null) { | ||||
| 	function __construct($label, $fieldName, $fieldValue = null, $helpID = null, $required = false) { | ||||
| 		parent::__construct($fieldName, $fieldValue); | ||||
| 		$this->label = $label; | ||||
| 		if (is_string($helpID)) { | ||||
| 			$this->helpID = $helpID; | ||||
| 		} | ||||
| 		elseif (is_array($helpID)) { | ||||
| 			$this->helpID = $helpID[0]; | ||||
| 			$this->helpModule = $helpID[1]; | ||||
| 		} | ||||
| 		$this->fieldSize = null; | ||||
| 		$this->required = $required; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
|  | @ -3762,7 +3777,7 @@ class htmlResponsiveInputField extends htmlInputField { | |||
| 			$labelGroup->addElement(new htmlImage($graphicsPath . '/required.png', 16, 16, _('required'), _('required'))); | ||||
| 		} | ||||
| 		if (!empty($this->helpID)) { | ||||
| 			$helpLinkLabel = new htmlHelpLink($this->helpID); | ||||
| 			$helpLinkLabel = new htmlHelpLink($this->helpID, $this->helpModule); | ||||
| 			$helpLinkLabel->setCSSClasses(array('hide-on-tablet', 'margin-left5')); | ||||
| 			$labelGroup->addElement($helpLinkLabel); | ||||
| 		} | ||||
|  | @ -3771,7 +3786,7 @@ class htmlResponsiveInputField extends htmlInputField { | |||
| 		$fieldGroup = new htmlGroup(); | ||||
| 		$fieldGroup->addElement($this); | ||||
| 		if (!empty($this->helpID)) { | ||||
| 			$helpLinkField = new htmlHelpLink($this->helpID); | ||||
| 			$helpLinkField = new htmlHelpLink($this->helpID, $this->helpModule); | ||||
| 			$helpLinkField->setCSSClasses(array('hide-on-mobile')); | ||||
| 			$fieldGroup->addElement($helpLinkField); | ||||
| 		} | ||||
|  | @ -3873,6 +3888,8 @@ class htmlResponsiveSelect extends htmlSelect { | |||
| 	private $label; | ||||
| 	/** help ID */ | ||||
| 	private $helpID; | ||||
| 	/** help module name */ | ||||
| 	private $helpModule = null; | ||||
| 	/** render HTML of parent class */ | ||||
| 	private $renderParentHtml = false; | ||||
| 
 | ||||
|  | @ -3883,14 +3900,20 @@ class htmlResponsiveSelect extends htmlSelect { | |||
| 	 * @param array $elements list of elememts | ||||
| 	 * @param array $selectedElements list of selected elements | ||||
| 	 * @param String $label descriptive label | ||||
| 	 * @param String $helpID help ID (optional, default none) | ||||
| 	 * @param String|array $helpID help ID or array of help ID + module name (optional) | ||||
| 	 * @param int $size size (optional, default = 1) | ||||
| 	 */ | ||||
| 	function __construct($name, $elements, $selectedElements, $label, $helpID = null, $size = 1) { | ||||
| 		parent::__construct($name, $elements, $selectedElements, $size); | ||||
| 		$this->label = htmlspecialchars($label); | ||||
| 		$this->label = $label; | ||||
| 		if (is_string($helpID)) { | ||||
| 			$this->helpID = $helpID; | ||||
| 		} | ||||
| 		elseif (is_array($helpID)) { | ||||
| 			$this->helpID = $helpID[0]; | ||||
| 			$this->helpModule = $helpID[1]; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * {@inheritDoc} | ||||
|  | @ -3907,7 +3930,7 @@ class htmlResponsiveSelect extends htmlSelect { | |||
| 		$labelGroup = new htmlGroup(); | ||||
| 		$labelGroup->addElement(new htmlOutputText($this->label)); | ||||
| 		if (!empty($this->helpID)) { | ||||
| 			$helpLinkLabel = new htmlHelpLink($this->helpID); | ||||
| 			$helpLinkLabel = new htmlHelpLink($this->helpID, $this->helpModule); | ||||
| 			$helpLinkLabel->setCSSClasses(array('hide-on-tablet', 'margin-left5')); | ||||
| 			$labelGroup->addElement($helpLinkLabel); | ||||
| 		} | ||||
|  | @ -3916,7 +3939,7 @@ class htmlResponsiveSelect extends htmlSelect { | |||
| 		$fieldGroup = new htmlGroup(); | ||||
| 		$fieldGroup->addElement($this); | ||||
| 		if (!empty($this->helpID)) { | ||||
| 			$helpLink = new htmlHelpLink($this->helpID); | ||||
| 			$helpLink = new htmlHelpLink($this->helpID, $this->helpModule); | ||||
| 			$helpLink->setCSSClasses(array('hide-on-mobile')); | ||||
| 			$fieldGroup->addElement($helpLink); | ||||
| 		} | ||||
|  | @ -4009,8 +4032,12 @@ class htmlResponsiveInputCheckbox extends htmlInputCheckbox { | |||
| 	private $label; | ||||
| 	/** help ID */ | ||||
| 	private $helpID; | ||||
| 	/** help module name */ | ||||
| 	private $helpModule = null; | ||||
| 	/** render HTML of parent class */ | ||||
| 	private $renderParentHtml = false; | ||||
| 	/** long label */ | ||||
| 	private $longLabel = false; | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Constructor. | ||||
|  | @ -4018,13 +4045,21 @@ class htmlResponsiveInputCheckbox extends htmlInputCheckbox { | |||
| 	 * @param String $name unique name | ||||
| 	 * @param boolean $checked checked | ||||
| 	 * @param String $label descriptive label | ||||
| 	 * @param String $helpID help ID | ||||
| 	 * @param String|array $helpID help ID or array of help ID + module name (optional) | ||||
| 	 * @param bool $longLabel more space for label (default: false) | ||||
| 	 */ | ||||
| 	function __construct($name, $checked, $label, $helpID = null) { | ||||
| 	function __construct($name, $checked, $label, $helpID = null, $longLabel = false) { | ||||
| 		parent::__construct($name, $checked); | ||||
| 		$this->label = htmlspecialchars($label); | ||||
| 		$this->label = $label; | ||||
| 		if (is_string($helpID)) { | ||||
| 			$this->helpID = $helpID; | ||||
| 		} | ||||
| 		elseif (is_array($helpID)) { | ||||
| 			$this->helpID = $helpID[0]; | ||||
| 			$this->helpModule = $helpID[1]; | ||||
| 		} | ||||
| 		$this->longLabel = $longLabel; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * {@inheritDoc} | ||||
|  | @ -4037,19 +4072,25 @@ class htmlResponsiveInputCheckbox extends htmlInputCheckbox { | |||
| 		// HTML of parent class is rendered on second call (done by htmlResponsiveRow)
 | ||||
| 		$this->renderParentHtml = true; | ||||
| 		$row = new htmlResponsiveRow(); | ||||
| 		$tabletColumnsLabel = 6; | ||||
| 		$tabletColumnsBox = 6; | ||||
| 		if ($this->longLabel) { | ||||
| 			$tabletColumnsLabel = 10; | ||||
| 			$tabletColumnsBox = 2; | ||||
| 		} | ||||
| 		// label text
 | ||||
| 		$labelGroup = new htmlGroup(); | ||||
| 		$labelGroup->addElement(new htmlOutputText($this->label)); | ||||
| 		$row->add($labelGroup, 6, 6, 6, 'responsiveLabel'); | ||||
| 		$row->add($labelGroup, 10, $tabletColumnsLabel, $tabletColumnsLabel, 'responsiveLabel nowrap'); | ||||
| 		// input field
 | ||||
| 		$fieldGroup = new htmlGroup(); | ||||
| 		$fieldGroup->addElement($this); | ||||
| 		if (!empty($this->helpID)) { | ||||
| 			$helpLink = new htmlHelpLink($this->helpID); | ||||
| 			$helpLink = new htmlHelpLink($this->helpID, $this->helpModule); | ||||
| 			$helpLink->setCSSClasses(array('margin-left5 align-unset-img')); | ||||
| 			$fieldGroup->addElement($helpLink); | ||||
| 		} | ||||
| 		$row->add($fieldGroup, 6, 6, 6, 'responsiveField nowrap'); | ||||
| 		$row->add($fieldGroup, 2, $tabletColumnsBox, $tabletColumnsBox, 'responsiveField nowrap'); | ||||
| 		return $row->generateHTML($module, $input, $values, $restricted, $tabindex, $scope); | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ $Id$ | |||
| 
 | ||||
|   This code is part of LDAP Account Manager (http://www.sourceforge.net/projects/lam) | ||||
|   Copyright (C) 2009 - 2012  Pavel Pozdnyak | ||||
|                 2009 - 2015  Roland Gruber | ||||
|                 2009 - 2017  Roland Gruber | ||||
| 
 | ||||
|   This program is free software; you can redistribute it and/or modify | ||||
|   it under the terms of the GNU General Public License as published by | ||||
|  | @ -1222,79 +1222,44 @@ class asteriskAccount extends baseModule implements passwordService { | |||
| 	* @see htmlElement | ||||
| 	*/ | ||||
| 	public function get_configOptions($scopes, $allScopes) { | ||||
| 		$return = parent::get_configOptions($scopes, $allScopes); | ||||
| 		// config options
 | ||||
| 		$configContainer = new htmlTable(); | ||||
| 		$configRealmTable = new htmlTable(); | ||||
| 		$configRealmTable->addElement(new htmlTableExtendedInputField(_('Asterisk realm'), 'asteriskAccount_AsteriskRealm', null, 'AsteriskRealm')); | ||||
| 		$configContainer->addElement($configRealmTable, true); | ||||
| 		$configContainer->addElement(new htmlSpacer(null, '10px'), true); | ||||
| 		$configHiddenHead = new htmlTable(); | ||||
| 		$configContainer = new htmlResponsiveRow(); | ||||
| 		$configContainer->add(new htmlResponsiveInputField(_('Asterisk realm'), 'asteriskAccount_AsteriskRealm', null, 'AsteriskRealm'), 12); | ||||
| 		$configContainer->addVerticalSpacer('1rem'); | ||||
| 		$configHiddenHead = new htmlGroup(); | ||||
| 		$configHiddenHead->addElement(new htmlOutputText(_('Hidden options'))); | ||||
| 		$configHiddenHead->addElement(new htmlHelpLink('hiddenOptions')); | ||||
| 		$configContainerOptions = new htmlTable(); | ||||
| 		$configContainer->addElement($configHiddenHead, true); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountUserAgent', false, _('User agent'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountAMAFlags', false, _('AMA flags'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountCallGroup', false, _('Call groups'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountDTMFMode', false, _('DTFM flags'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountFromUser', false, _('From user'), null, false)); | ||||
| 		$configContainerOptions->addNewLine(); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountFromDomain', false, _('From domain'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountFullContact', false, _('Full contact'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountInsecure', false, _('Insecure'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountMailbox', false, _('Mailbox'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountNAT', false, _('NAT'), null, false)); | ||||
| 		$configContainerOptions->addNewLine(); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountDeny', false, _('Deny'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountPermit', false, _('Permit'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountPickupGroup', false, _('Pickup group'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountPort', false, _('Port'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountQualify', false, _('Qualify'), null, false)); | ||||
| 		$configContainerOptions->addNewLine(); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountRestrictCID', false, _('Restrict caller ID'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountRTPTimeout', false, _('RTP timeout'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountRTPHoldTimeout', false, _('RTP hold timeout'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountDisallowedCodec', false, _('Disallowed codec'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountAllowedCodec', false, _('Allowed codec'), null, false)); | ||||
| 		$configContainerOptions->addNewLine(); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountMusicOnHold', false, _('Music on hold'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountExpirationTimestamp', false, _('Expiration timestamp'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountRegistrationContext', false, _('Registration context'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountRegistrationExten', false, _('Registration extension'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountCanCallForward', false, _('Can call forward'), null, false)); | ||||
| 		$configContainerOptions->addNewLine(); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountIPAddress', false, _('IP address'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountDefaultUser', false, _('Default user'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountRegistrationServer', false, _('Registration server'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('asteriskAccount_hideAstAccountLastQualifyMilliseconds', false, _('Last qualify milliseconds'), null, false)); | ||||
| 		$configContainerOptions->addNewLine(); | ||||
| 		$configContainer->addElement($configContainerOptions, true); | ||||
| 		$return[] = $configContainer; | ||||
| 		return $return; | ||||
| 		$configContainer->add($configHiddenHead, 12); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountUserAgent', false, _('User agent'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountAMAFlags', false, _('AMA flags'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountCallGroup', false, _('Call groups'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountDTMFMode', false, _('DTFM flags'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountFromUser', false, _('From user'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountFromDomain', false, _('From domain'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountFullContact', false, _('Full contact'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountInsecure', false, _('Insecure'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountMailbox', false, _('Mailbox'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountNAT', false, _('NAT'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountDeny', false, _('Deny'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountPermit', false, _('Permit'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountPickupGroup', false, _('Pickup group'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountPort', false, _('Port'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountQualify', false, _('Qualify'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountRestrictCID', false, _('Restrict caller ID'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountRTPTimeout', false, _('RTP timeout'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountRTPHoldTimeout', false, _('RTP hold timeout'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountDisallowedCodec', false, _('Disallowed codec'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountAllowedCodec', false, _('Allowed codec'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountMusicOnHold', false, _('Music on hold'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountExpirationTimestamp', false, _('Expiration timestamp'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountRegistrationContext', false, _('Registration context'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountRegistrationExten', false, _('Registration extension'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountCanCallForward', false, _('Can call forward'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountIPAddress', false, _('IP address'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountDefaultUser', false, _('Default user'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountRegistrationServer', false, _('Registration server'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('asteriskAccount_hideAstAccountLastQualifyMilliseconds', false, _('Last qualify milliseconds'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlOutputText(''), 0, 4); | ||||
| 		return $configContainer; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ $Id$ | |||
| 
 | ||||
|   This code is not yet part of LDAP Account Manager (http://www.ldap-account-manager.org/) | ||||
|   Copyright (C) 2011         J de Jong | ||||
|   				2012 - 2015  Roland Gruber | ||||
|   				2012 - 2017  Roland Gruber | ||||
| 
 | ||||
|   This program is free software; you can redistribute it and/or modify | ||||
|   it under the terms of the GNU General Public License as published by | ||||
|  | @ -94,10 +94,6 @@ class authorizedServiceObject extends baseModule { | |||
| 				"Text" => _("These services will show up as hint if you enter a new service.") | ||||
| 			) | ||||
| 		); | ||||
| 		// config options
 | ||||
| 		$configContainer = new htmlTable(); | ||||
| 		$configContainer->addElement(new htmlTableExtendedInputTextarea('authorizedServiceObject_services', "sshd\r\nimap", 30, 5, _('Predefined services'), 'predefinedServices')); | ||||
| 		$return['config_options']['all'] = $configContainer; | ||||
| 		// upload fields
 | ||||
| 		$return['upload_columns'] = array( | ||||
| 			array( | ||||
|  | @ -252,6 +248,16 @@ class authorizedServiceObject extends baseModule { | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * {@inheritDoc} | ||||
| 	 * @see baseModule::get_configOptions() | ||||
| 	 */ | ||||
| 	public function get_configOptions($scopes, $allScopes) { | ||||
| 		$configContainer = new htmlResponsiveRow(); | ||||
| 		$configContainer->add(new htmlResponsiveInputTextarea('authorizedServiceObject_services', "sshd\r\nimap", 30, 5, _('Predefined services'), 'predefinedServices'), 12); | ||||
| 		return $configContainer; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| ?>
 | ||||
|  |  | |||
|  | @ -293,32 +293,22 @@ class freeRadius extends baseModule { | |||
| 	* @see htmlElement | ||||
| 	*/ | ||||
| 	public function get_configOptions($scopes, $allScopes) { | ||||
| 		$configContainer = new htmlTable(); | ||||
| 		$configContainer->addElement(new htmlTableExtendedInputField(_('Profile DN'), 'freeRadius_profileDN', '', 'profileDN'), true); | ||||
| 		$configContainer->addVerticalSpace('10px'); | ||||
| 		$configContainerHead = new htmlTable(); | ||||
| 		$configContainerHead->colspan = 5; | ||||
| 		$configContainerHead->addElement(new htmlOutputText(_('Hidden options'))); | ||||
| 		$configContainerHead->addElement(new htmlHelpLink('hiddenOptions')); | ||||
| 		$configContainerOptions = new htmlTable(); | ||||
| 		$configContainerOptions->colspan = 5; | ||||
| 		$configContainer->addElement($configContainerHead, true); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('freeRadius_hideRadiusFramedIPAddress', false, _('IP address'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('freeRadius_hideRadiusFramedIPNetmask', false, _('Net mask'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('freeRadius_hideRadiusRealm', false, _('Realm'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('freeRadius_hideRadiusGroupName', false, _('Group names'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('freeRadius_hideRadiusExpiration', false, _('Expiration date'), null, false)); | ||||
| 		$configContainerOptions->addNewLine(); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('freeRadius_hideRadiusIdleTimeout', false, _('Idle timeout'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('freeRadius_hideRadiusProfileDn', false, _('Profile'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('freeRadius_hideDialupAccess', false, _('Enabled'), null, false)); | ||||
| 		$configContainer->addElement($configContainerOptions, true); | ||||
| 		$configContainer = new htmlResponsiveRow(); | ||||
| 		$configContainer->add(new htmlResponsiveInputField(_('Profile DN'), 'freeRadius_profileDN', '', 'profileDN'), 12); | ||||
| 		$configContainer->addVerticalSpacer('1rem'); | ||||
| 		$hiddenGroup = new htmlGroup(); | ||||
| 		$hiddenGroup->addElement(new htmlOutputText(_('Hidden options'))); | ||||
| 		$hiddenGroup->addElement(new htmlHelpLink('hiddenOptions')); | ||||
| 		$configContainer->add($hiddenGroup, 12); | ||||
| 		$configContainer->addVerticalSpacer('0.5rem'); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('freeRadius_hideRadiusFramedIPAddress', false, _('IP address'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('freeRadius_hideRadiusFramedIPNetmask', false, _('Net mask'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('freeRadius_hideRadiusRealm', false, _('Realm'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('freeRadius_hideRadiusGroupName', false, _('Group names'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('freeRadius_hideRadiusExpiration', false, _('Expiration date'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('freeRadius_hideRadiusIdleTimeout', false, _('Idle timeout'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('freeRadius_hideRadiusProfileDn', false, _('Profile'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('freeRadius_hideDialupAccess', false, _('Enabled'), null, true), 12, 4); | ||||
| 		return $configContainer; | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ $Id$ | |||
| 
 | ||||
|   This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) | ||||
|   Copyright (C) 2010 - 2011  Pavel Pozdniak | ||||
|                 2010 - 2015  Roland Gruber | ||||
|                 2010 - 2017  Roland Gruber | ||||
| 
 | ||||
|   This program is free software; you can redistribute it and/or modify | ||||
|   it under the terms of the GNU General Public License as published by | ||||
|  | @ -460,43 +460,39 @@ class imapAccess extends baseModule { | |||
| 	 */ | ||||
| 	public function get_configOptions($scopes, $allScopes) { | ||||
| 		// configuration settings
 | ||||
| 		$configContainer = new htmlTable(); | ||||
| 		$configServer = new htmlTableExtendedInputField(_('Server address'), 'ImapAccess_ImapServerAddress', '', 'ImapServerAddress'); | ||||
| 		$configContainer = new htmlResponsiveRow(); | ||||
| 		$configServer = new htmlResponsiveInputField(_('Server address'), 'ImapAccess_ImapServerAddress', '', 'ImapServerAddress'); | ||||
| 		$configServer->setRequired(true); | ||||
| 		$configContainer->addElement($configServer, true); | ||||
| 		$configContainer->addElement(new htmlTableExtendedSelect('ImapAccess_ImapServerEncriptionProtocol', array('TLS', 'SSL'), array('TLS'), _("Encryption protocol"), 'ImapServerEncryptionProtocol'), true); | ||||
| 		$configCertValidate = new htmlTableExtendedSelect('ImapAccess_ImapValidateServerCert', array(_('Yes') => 'validate-cert', _('No') => 'novalidate-cert'), array('validate-cert'), _("Validate server certificate"), 'ImapValidateServerCert'); | ||||
| 		$configContainer->add($configServer, 12); | ||||
| 		$configContainer->add(new htmlResponsiveSelect('ImapAccess_ImapServerEncriptionProtocol', array('TLS', 'SSL'), array('TLS'), _("Encryption protocol"), 'ImapServerEncryptionProtocol'), 12); | ||||
| 		$configCertValidate = new htmlResponsiveSelect('ImapAccess_ImapValidateServerCert', array(_('Yes') => 'validate-cert', _('No') => 'novalidate-cert'), array('validate-cert'), _("Validate server certificate"), 'ImapValidateServerCert'); | ||||
| 		$configCertValidate->setHasDescriptiveElements(true); | ||||
| 		$configContainer->addElement($configCertValidate, true); | ||||
| 		$configUser = new htmlTableExtendedInputField(_('IMAP admin user'), 'ImapAccess_ImapAdmin', '', 'ImapAdmin'); | ||||
| 		$configContainer->add($configCertValidate, 12); | ||||
| 		$configUser = new htmlResponsiveInputField(_('IMAP admin user'), 'ImapAccess_ImapAdmin', '', 'ImapAdmin'); | ||||
| 		$configUser->setRequired(true); | ||||
| 		$configContainer->addElement($configUser, true); | ||||
| 		$configContainer->add($configUser, 12); | ||||
| 		$pwdSelectOptions = array( | ||||
| 			_('LAM user password') => 'lam_user_pass', | ||||
| 			_('Ask') => 'ask_pass', | ||||
| 			_('Server profile') => 'config'); | ||||
| 		$configPasswordType = new htmlTableExtendedSelect('ImapAccess_ImapAdminPasswordSelect', $pwdSelectOptions, array('ask_pass'), _("IMAP password input"), 'ImapAdminPasswordSelect'); | ||||
| 		$configPasswordType = new htmlResponsiveSelect('ImapAccess_ImapAdminPasswordSelect', $pwdSelectOptions, array('ask_pass'), _("IMAP password input"), 'ImapAdminPasswordSelect'); | ||||
| 		$configPasswordType->setHasDescriptiveElements(true); | ||||
| 		$configPasswordType->setTableRowsToShow(array('config' => array('ImapAccess_ImapAdminPassword'))); | ||||
| 		$configPasswordType->setTableRowsToHide(array('lam_user_pass' => array('ImapAccess_ImapAdminPassword'), 'ask_pass' => array('ImapAccess_ImapAdminPassword'))); | ||||
| 		$configContainer->addElement($configPasswordType, true); | ||||
| 		$adminPwdInput = new htmlTableExtendedInputField(_('Admin password'), 'ImapAccess_ImapAdminPassword', null, 'ImapAdminPasswordSelect'); | ||||
| 		$configContainer->add($configPasswordType, 12); | ||||
| 		$adminPwdInput = new htmlResponsiveInputField(_('Admin password'), 'ImapAccess_ImapAdminPassword', null, 'ImapAdminPasswordSelect'); | ||||
| 		$adminPwdInput->setIsPassword(true); | ||||
| 		$adminPwdInput->setObfuscate(true); | ||||
| 		$configContainer->addElement($adminPwdInput, true); | ||||
| 		$mailDomainsInput = new htmlTableExtendedInputField(_('Mail domains'), 'ImapAccess_ImapDomain', '', 'ImapMailDomain'); | ||||
| 		$configContainer->add($adminPwdInput, 12); | ||||
| 		$mailDomainsInput = new htmlResponsiveInputField(_('Mail domains'), 'ImapAccess_ImapDomain', '', 'ImapMailDomain'); | ||||
| 		$mailDomainsInput->setRequired(true); | ||||
| 		$configContainer->addElement($mailDomainsInput, true); | ||||
| 		$configContainer->addElement(new htmlTableExtendedInputField(_('Prefix for mailboxes'), 'ImapAccess_ImapUserPrefix', '', 'ImapUserPrefix'), true); | ||||
| 		$configContainer->addElement(new htmlTableExtendedInputTextarea('ImapAccess_initialFolders', '', 10, 3, _('Initial folders'), 'initialFolders'), true); | ||||
| 		$configUserName = new htmlTableExtendedSelect('ImapAccess_UserNameAttribute', array('mail', 'uid', 'userPrincipalName'), array('mail'), _("User name attribute"), 'ImapUserNameAttr'); | ||||
| 		$configContainer->addElement($configUserName, true); | ||||
| 		$configPathSeparator = new htmlTableExtendedSelect('ImapAccess_pathSeparator', array('.', '/'), array('.'), _("Path separator"), 'pathSeparator'); | ||||
| 		$configContainer->addElement($configPathSeparator, true); | ||||
| 		$configContainer->addElement(new htmlEqualWidth(array('ImapAccess_ImapServerAddress', 'ImapAccess_initialFolders', 'ImapAccess_UserNameAttribute', | ||||
| 					'ImapAccess_ImapServerEncriptionProtocol', 'ImapAccess_ImapValidateServerCert', 'ImapAccess_ImapAdminPasswordSelect', | ||||
| 					'ImapAccess_pathSeparator' | ||||
| 		))); | ||||
| 		$configContainer->add($mailDomainsInput, 12); | ||||
| 		$configContainer->add(new htmlResponsiveInputField(_('Prefix for mailboxes'), 'ImapAccess_ImapUserPrefix', '', 'ImapUserPrefix'), 12); | ||||
| 		$configContainer->add(new htmlResponsiveInputTextarea('ImapAccess_initialFolders', '', 10, 3, _('Initial folders'), 'initialFolders'), 12); | ||||
| 		$configUserName = new htmlResponsiveSelect('ImapAccess_UserNameAttribute', array('mail', 'uid', 'userPrincipalName'), array('mail'), _("User name attribute"), 'ImapUserNameAttr'); | ||||
| 		$configContainer->add($configUserName, 12); | ||||
| 		$configPathSeparator = new htmlResponsiveSelect('ImapAccess_pathSeparator', array('.', '/'), array('.'), _("Path separator"), 'pathSeparator'); | ||||
| 		$configContainer->add($configPathSeparator, 12); | ||||
| 		return $configContainer; | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
|  | @ -3625,23 +3625,11 @@ class inetOrgPerson extends baseModule implements passwordService { | |||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	* Returns a list of configuration options. | ||||
| 	* | ||||
| 	* Calling this method does not require the existence of an enclosing {@link accountContainer}.<br> | ||||
| 	* <br> | ||||
| 	* The field names are used as keywords to load and save settings. | ||||
| 	* We recommend to use the module name as prefix for them (e.g. posixAccount_homeDirectory) to avoid naming conflicts. | ||||
| 	* | ||||
| 	* @param array $scopes account types (user, group, host) | ||||
| 	* @param array $allScopes list of all active account modules and their scopes (module => array(scopes)) | ||||
| 	* @return mixed htmlElement or array of htmlElement | ||||
| 	* | ||||
| 	* @see htmlElement | ||||
| 	 * {@inheritDoc} | ||||
| 	 * @see baseModule::get_configOptions() | ||||
| 	 */ | ||||
| 	public function get_configOptions($scopes, $allScopes) { | ||||
| 		$return = parent::get_configOptions($scopes, $allScopes); | ||||
| 		// configuration settings
 | ||||
| 		$configContainer = new htmlTable(); | ||||
| 		$configContainer = new htmlResponsiveRow(); | ||||
| 		if (isset($_SESSION['conf_config'])) { | ||||
| 			// add password hash type if posixAccount is inactive
 | ||||
| 			$unixModuleFound = false; | ||||
|  | @ -3656,87 +3644,57 @@ class inetOrgPerson extends baseModule implements passwordService { | |||
| 			} | ||||
| 			if (!$unixModuleFound) { | ||||
| 				$optionsSelected = array('SSHA'); | ||||
| 				$hashOption = new htmlTable(); | ||||
| 				$hashOption->addElement(new htmlTableExtendedSelect('posixAccount_pwdHash', getSupportedHashTypes(), $optionsSelected, _("Password hash type"), 'pwdHash')); | ||||
| 				$configContainer->addElement($hashOption, true); | ||||
| 				$hashOption = new htmlResponsiveSelect('posixAccount_pwdHash', getSupportedHashTypes(), $optionsSelected, _("Password hash type"), 'pwdHash'); | ||||
| 				$configContainer->add($hashOption, 12); | ||||
| 			} | ||||
| 		} | ||||
| 		$configContainerHead = new htmlTable(); | ||||
| 		$configContainerHead = new htmlGroup(); | ||||
| 		$configContainerHead->addElement(new htmlOutputText(_('Hidden options'))); | ||||
| 		$configContainerHead->addElement(new htmlHelpLink('hiddenOptions')); | ||||
| 		$configContainerOptions = new htmlTable(); | ||||
| 		$configContainer->addElement($configContainerHead, true); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideDescription', false, _('Description'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideStreet', false, _('Street'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hidePostOfficeBox', false, _('Post office box'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hidePostalCode', false, _('Postal code'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideLocation', false, _('Location'), null, false)); | ||||
| 		$configContainerOptions->addNewLine(); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideState', false, _('State'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hidePostalAddress', false, _('Postal address'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideRegisteredAddress', false, _('Registered address'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideOfficeName', false, _('Office name'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideRoomNumber', false, _('Room number'), null, false)); | ||||
| 		$configContainerOptions->addNewLine(); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideTelephoneNumber', false, _('Telephone number'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideHomeTelephoneNumber', false, _('Home telephone number'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideMobileNumber', false, _('Mobile number'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideFaxNumber', false, _('Fax number'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hidePager', true, _('Pager'), null, false)); | ||||
| 		$configContainerOptions->addNewLine(); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideEMailAddress', false, _('Email address'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideJobTitle', false, _('Job title'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideCarLicense', false, _('Car license'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideEmployeeType', false, _('Employee type'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideBusinessCategory', false, _('Business category'), null, false)); | ||||
| 		$configContainerOptions->addNewLine(); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideDepartments', false, _('Department'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideManager', false, _('Manager'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideOu', false, _('Organisational unit'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideO', false, _('Organisation'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideEmployeeNumber', false, _('Employee number'), null, false)); | ||||
| 		$configContainerOptions->addNewLine(); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideInitials', false, _('Initials'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideLabeledURI', false, _('Web site'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideuserCertificate', false, _('User certificates'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hidejpegPhoto', false, _('Photo'), null, false)); | ||||
| 		$configContainer->add($configContainerHead, 12); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideDescription', false, _('Description'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideStreet', false, _('Street'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hidePostOfficeBox', false, _('Post office box'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hidePostalCode', false, _('Postal code'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideLocation', false, _('Location'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideState', false, _('State'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hidePostalAddress', false, _('Postal address'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideRegisteredAddress', false, _('Registered address'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideOfficeName', false, _('Office name'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideRoomNumber', false, _('Room number'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideTelephoneNumber', false, _('Telephone number'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideHomeTelephoneNumber', false, _('Home telephone number'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideMobileNumber', false, _('Mobile number'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideFaxNumber', false, _('Fax number'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hidePager', true, _('Pager'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideEMailAddress', false, _('Email address'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideJobTitle', false, _('Job title'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideCarLicense', false, _('Car license'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideEmployeeType', false, _('Employee type'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideBusinessCategory', false, _('Business category'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideDepartments', false, _('Department'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideManager', false, _('Manager'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideOu', false, _('Organisational unit'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideO', false, _('Organisation'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideEmployeeNumber', false, _('Employee number'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideInitials', false, _('Initials'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideLabeledURI', false, _('Web site'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideuserCertificate', false, _('User certificates'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hidejpegPhoto', false, _('Photo'), null, true), 12, 4); | ||||
| 		if (isset($_SESSION['conf_config'])) { | ||||
| 			$confActiveUnixUserModules = $_SESSION['conf_config']->get_AccountModules('user'); | ||||
| 			// option to hide uid
 | ||||
| 			if (!in_array('posixAccount', $confActiveUnixUserModules)) { | ||||
| 				$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 				$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_hideUID', false, _('User name'), null, false)); | ||||
| 				$configContainer->add(new htmlResponsiveInputCheckbox('inetOrgPerson_hideUID', false, _('User name'), null, true), 12, 4); | ||||
| 			} | ||||
| 			else { | ||||
| 				$configContainer->add(new htmlOutputText(''), 0, 4); | ||||
| 			} | ||||
| 		} | ||||
| 		$configContainer->addElement($configContainerOptions, true); | ||||
| 		$advancedOptions = new htmlTable(); | ||||
| 		$addressbookTable = new htmlTable(); | ||||
| 		$addressbookTable->addElement(new htmlTableExtendedInputCheckbox('inetOrgPerson_addAddressbook', false, _('Add addressbook (ou=addressbook)'), 'addAddressbook')); | ||||
| 		$advancedOptions->addElement($addressbookTable, true); | ||||
| 		$advancedOptions->addElement(new htmlSubTitle(_('Read-only fields')), true); | ||||
| 		$configContainer->addVerticalSpacer('1rem'); | ||||
| 		$advancedOptions = new htmlResponsiveRow(); | ||||
| 		$advancedOptions->add(new htmlResponsiveInputCheckbox('inetOrgPerson_addAddressbook', false, _('Add addressbook (ou=addressbook)'), 'addAddressbook'), 12); | ||||
| 		$advancedOptions->add(new htmlSubTitle(_('Read-only fields')), 12); | ||||
| 		$readOnlyOptions = array( | ||||
| 			_('Description') => 'inetOrgPerson_readOnly_description', _('Street') => 'inetOrgPerson_readOnly_street', | ||||
| 			_('First name') => 'inetOrgPerson_readOnly_givenName', _('Last name') => 'inetOrgPerson_readOnly_sn', | ||||
|  | @ -3761,31 +3719,18 @@ class inetOrgPerson extends baseModule implements passwordService { | |||
| 			$readOnlyOptions[_('Common name')] = 'inetOrgPerson_readOnly_cn'; | ||||
| 		} | ||||
| 		ksort($readOnlyOptions); | ||||
| 		$readOnlyCounter = 0; | ||||
| 		$readOnlyOptionsTable = new htmlTable(); | ||||
| 		$readOnlyOptionsTable->colspan = 5; | ||||
| 		foreach ($readOnlyOptions as $label => $id) { | ||||
| 			$readOnlyOptionsTable->addElement(new htmlTableExtendedInputCheckbox($id, false, $label, null, false)); | ||||
| 			$readOnlyCounter++; | ||||
| 			if (($readOnlyCounter % 5) == 0) { | ||||
| 				$readOnlyOptionsTable->addNewLine(); | ||||
| 			$advancedOptions->add(new htmlResponsiveInputCheckbox($id, false, $label, null, true), 12, 4); | ||||
| 		} | ||||
| 		} | ||||
| 		$advancedOptions->addElement($readOnlyOptionsTable, true); | ||||
| 		$advancedOptions->addElement(new htmlSubTitle(_('Photo')), true); | ||||
| 		$photoTable = new htmlTable(); | ||||
| 		$photoTable->colspan = 2; | ||||
| 		$advancedOptions->add(new htmlSubTitle(_('Photo')), 12); | ||||
| 		if (extension_loaded('imagick')) { | ||||
| 			$photoTable->addElement(new htmlTableExtendedInputField(_('Maximum width (px)'), 'inetOrgPerson_jpegPhoto_maxWidth', null, 'crop'), true); | ||||
| 			$photoTable->addElement(new htmlTableExtendedInputField(_('Maximum height (px)'), 'inetOrgPerson_jpegPhoto_maxHeight', null, 'crop'), true); | ||||
| 			$advancedOptions->add(new htmlResponsiveInputField(_('Maximum width (px)'), 'inetOrgPerson_jpegPhoto_maxWidth', null, 'crop'), 12); | ||||
| 			$advancedOptions->add(new htmlResponsiveInputField(_('Maximum height (px)'), 'inetOrgPerson_jpegPhoto_maxHeight', null, 'crop'), 12); | ||||
| 		} | ||||
| 		$photoTable->addElement(new htmlTableExtendedInputField(_('Maximum file size (kB)'), 'inetOrgPerson_jpegPhoto_maxSize'), true); | ||||
| 		$advancedOptions->addElement($photoTable, true); | ||||
| 		$advancedOptions->add(new htmlResponsiveInputField(_('Maximum file size (kB)'), 'inetOrgPerson_jpegPhoto_maxSize'), 12); | ||||
| 		$advancedOptionsAccordion = new htmlAccordion('inetOrgPersonAdvancedOptions', array(_('Advanced options') => $advancedOptions), false); | ||||
| 		$advancedOptionsAccordion->colspan = 5; | ||||
| 		$configContainer->addElement($advancedOptionsAccordion); | ||||
| 		$return[] = $configContainer; | ||||
| 		return $return; | ||||
| 		$configContainer->add($advancedOptionsAccordion, 12); | ||||
| 		return $configContainer; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
|  |  | |||
|  | @ -110,10 +110,6 @@ class kolabUser extends baseModule { | |||
| 			'type' => 'ext_preg', | ||||
| 			'regex' => 'digit', | ||||
| 			'error_message' => $this->messages['mailQuota'][0]); | ||||
| 		// config options
 | ||||
| 		$configContainer = new htmlTable(); | ||||
| 		$configContainer->addElement(new htmlTableExtendedInputCheckbox('kolabUser_mailrecipient', true, _('Manage object class "mailrecipient"'), 'mailrecipient'), true); | ||||
| 		$return['config_options']['all'] = $configContainer; | ||||
| 		// self service field settings
 | ||||
| 		$return['selfServiceFieldSettings'] = array( | ||||
| 			'kolabDelegate' => _('Delegates'), | ||||
|  | @ -993,6 +989,16 @@ class kolabUser extends baseModule { | |||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * {@inheritDoc} | ||||
| 	 * @see baseModule::get_configOptions() | ||||
| 	 */ | ||||
| 	public function get_configOptions($scopes, $allScopes) { | ||||
| 		$configContainer = new htmlResponsiveRow(); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('kolabUser_mailrecipient', true, _('Manage object class "mailrecipient"'), 'mailrecipient'), 12); | ||||
| 		return $configContainer; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -567,16 +567,15 @@ class nisMailAliasUser extends baseModule { | |||
| 	* @see htmlElement | ||||
| 	*/ | ||||
| 	public function get_configOptions($scopes, $allScopes) { | ||||
| 		$configContainer = new htmlTable(); | ||||
| 		$configContainerHead = new htmlTable(); | ||||
| 		$configContainerHead->addElement(new htmlOutputText(_('Hidden options'))); | ||||
| 		$configContainerHead->addElement(new htmlHelpLink('hiddenOptions')); | ||||
| 		$configContainerOptions = new htmlTable(); | ||||
| 		$configContainer->addElement($configContainerHead, true); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('nisMailAliasUser_hideUserAliases', false, _('Aliases for user name'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('nisMailAliasUser_hideMailAliases', false, _('Aliases for email'), null, false)); | ||||
| 		$configContainer->addElement($configContainerOptions, true); | ||||
| 		$configContainer = new htmlResponsiveRow(); | ||||
| 		$hiddenGroup = new htmlGroup(); | ||||
| 		$hiddenGroup->addElement(new htmlOutputText(_('Hidden options'))); | ||||
| 		$hiddenGroup->addElement(new htmlHelpLink('hiddenOptions')); | ||||
| 		$configContainer->addLabel($hiddenGroup); | ||||
| 		$configContainer->addField(new htmlOutputText('')); | ||||
| 		$configContainer->addVerticalSpacer('0.5rem'); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('nisMailAliasUser_hideUserAliases', false, _('Aliases for user name')), 12); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('nisMailAliasUser_hideMailAliases', false, _('Aliases for email')), 12); | ||||
| 		return $configContainer; | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
|  | @ -1909,17 +1909,17 @@ class posixAccount extends baseModule implements passwordService { | |||
| 	 */ | ||||
| 	function get_configOptions($scopes, $allScopes) { | ||||
| 		$return = array(); | ||||
| 		if (in_array('user', $scopes)) { | ||||
| 			// user options
 | ||||
| 			$configUserContainer = new htmlTable(); | ||||
| 			$configUserContainer->addElement(new htmlSubTitle(_("Users")), true); | ||||
| 		$generatorOptions = array( | ||||
| 				_('Fixed range') => 'range', | ||||
| 				_('Samba ID pool') => 'sambaPool', | ||||
| 				_('Windows domain info') => 'windowsDomain', | ||||
| 				_('Magic number') => 'magicNumber' | ||||
| 		); | ||||
| 			$uidGeneratorSelect = new htmlTableExtendedSelect('posixAccount_uidGeneratorUsers', $generatorOptions, array('range'), _('UID generator'), 'uidGenerator'); | ||||
| 		if (in_array('user', $scopes)) { | ||||
| 			// user options
 | ||||
| 			$configUserContainer = new htmlResponsiveRow(); | ||||
| 			$configUserContainer->add(new htmlSubTitle(_("Users")), 12); | ||||
| 			$uidGeneratorSelect = new htmlResponsiveSelect('posixAccount_uidGeneratorUsers', $generatorOptions, array('range'), _('UID generator'), 'uidGenerator'); | ||||
| 			$uidGeneratorSelect->setHasDescriptiveElements(true); | ||||
| 			$uidGeneratorSelect->setTableRowsToHide(array( | ||||
| 					'range' => array('posixAccount_sambaIDPoolDNUsers', 'posixAccount_windowsIDPoolDNUsers', 'posixAccount_magicNumberUser'), | ||||
|  | @ -1933,30 +1933,30 @@ class posixAccount extends baseModule implements passwordService { | |||
| 					'windowsDomain' => array('posixAccount_windowsIDPoolDNUsers'), | ||||
| 					'magicNumber' => array('posixAccount_magicNumberUser') | ||||
| 			)); | ||||
| 			$configUserContainer->addElement($uidGeneratorSelect, true); | ||||
| 			$uidUsersGeneratorDN = new htmlTableExtendedInputField(_('Samba ID pool DN'), 'posixAccount_sambaIDPoolDNUsers', null, 'sambaIDPoolDN'); | ||||
| 			$configUserContainer->add($uidGeneratorSelect, 12); | ||||
| 			$uidUsersGeneratorDN = new htmlResponsiveInputField(_('Samba ID pool DN'), 'posixAccount_sambaIDPoolDNUsers', null, 'sambaIDPoolDN'); | ||||
| 			$uidUsersGeneratorDN->setRequired(true); | ||||
| 			$configUserContainer->addElement($uidUsersGeneratorDN, true); | ||||
| 			$uidUsersGeneratorWinDN = new htmlTableExtendedInputField(_('Windows domain info DN'), 'posixAccount_windowsIDPoolDNUsers', null, 'windowsIDPoolDN'); | ||||
| 			$configUserContainer->add($uidUsersGeneratorDN, 12); | ||||
| 			$uidUsersGeneratorWinDN = new htmlResponsiveInputField(_('Windows domain info DN'), 'posixAccount_windowsIDPoolDNUsers', null, 'windowsIDPoolDN'); | ||||
| 			$uidUsersGeneratorWinDN->setRequired(true); | ||||
| 			$configUserContainer->addElement($uidUsersGeneratorWinDN, true); | ||||
| 			$minUid = new htmlTableExtendedInputField(_('Minimum UID number'), 'posixAccount_minUID', null, 'minMaxUser'); | ||||
| 			$configUserContainer->add($uidUsersGeneratorWinDN, 12); | ||||
| 			$minUid = new htmlResponsiveInputField(_('Minimum UID number'), 'posixAccount_minUID', null, 'minMaxUser'); | ||||
| 			$minUid->setRequired(true); | ||||
| 			$configUserContainer->addElement($minUid, true); | ||||
| 			$maxUid = new htmlTableExtendedInputField(_('Maximum UID number'), 'posixAccount_maxUID', null, 'minMaxUser'); | ||||
| 			$configUserContainer->add($minUid, 12); | ||||
| 			$maxUid = new htmlResponsiveInputField(_('Maximum UID number'), 'posixAccount_maxUID', null, 'minMaxUser'); | ||||
| 			$maxUid->setRequired(true); | ||||
| 			$configUserContainer->addElement($maxUid, true); | ||||
| 			$magicNumberUser = new htmlTableExtendedInputField(_('Magic number'), 'posixAccount_magicNumberUser', null, 'magicNumber'); | ||||
| 			$configUserContainer->add($maxUid, 12); | ||||
| 			$magicNumberUser = new htmlResponsiveInputField(_('Magic number'), 'posixAccount_magicNumberUser', null, 'magicNumber'); | ||||
| 			$magicNumberUser->setRequired(true); | ||||
| 			$configUserContainer->addElement($magicNumberUser, true); | ||||
| 			$configUserContainer->addElement(new htmlTableExtendedInputField(_('Suffix for UID/user name check'), 'posixAccount_uidCheckSuffixUser', '', 'uidCheckSuffix'), true); | ||||
| 			$configUserContainer->add($magicNumberUser, 12); | ||||
| 			$configUserContainer->add(new htmlResponsiveInputField(_('Suffix for UID/user name check'), 'posixAccount_uidCheckSuffixUser', '', 'uidCheckSuffix'), 12); | ||||
| 			$return[] = $configUserContainer; | ||||
| 		} | ||||
| 		// host options
 | ||||
| 		if (in_array('host', $scopes)) { | ||||
| 			$configHostContainer = new htmlTable(); | ||||
| 			$configHostContainer->addElement(new htmlSubTitle(_("Hosts")), true); | ||||
| 			$uidHostGeneratorSelect = new htmlTableExtendedSelect('posixAccount_uidGeneratorHosts', $generatorOptions, array('range'), _('UID generator'), 'uidGenerator'); | ||||
| 			$configHostContainer = new htmlResponsiveRow(); | ||||
| 			$configHostContainer->add(new htmlSubTitle(_("Hosts")), 12); | ||||
| 			$uidHostGeneratorSelect = new htmlResponsiveSelect('posixAccount_uidGeneratorHosts', $generatorOptions, array('range'), _('UID generator'), 'uidGenerator'); | ||||
| 			$uidHostGeneratorSelect->setHasDescriptiveElements(true); | ||||
| 			$uidHostGeneratorSelect->setTableRowsToHide(array( | ||||
| 					'range' => array('posixAccount_sambaIDPoolDNHosts', 'posixAccount_windowsIDPoolDNHosts', 'posixAccount_magicNumberHost'), | ||||
|  | @ -1970,60 +1970,56 @@ class posixAccount extends baseModule implements passwordService { | |||
| 					'windowsDomain' => array('posixAccount_windowsIDPoolDNHosts'), | ||||
| 					'magicNumber' => array('posixAccount_magicNumberHost') | ||||
| 			)); | ||||
| 			$configHostContainer->addElement($uidHostGeneratorSelect, true); | ||||
| 			$uidHostsGeneratorDN = new htmlTableExtendedInputField(_('Samba ID pool DN'), 'posixAccount_sambaIDPoolDNHosts', null, 'sambaIDPoolDN'); | ||||
| 			$configHostContainer->add($uidHostGeneratorSelect, 12); | ||||
| 			$uidHostsGeneratorDN = new htmlResponsiveInputField(_('Samba ID pool DN'), 'posixAccount_sambaIDPoolDNHosts', null, 'sambaIDPoolDN'); | ||||
| 			$uidHostsGeneratorDN->setRequired(true); | ||||
| 			$configHostContainer->addElement($uidHostsGeneratorDN, true); | ||||
| 			$uidHostsGeneratorWinDN = new htmlTableExtendedInputField(_('Windows domain info DN'), 'posixAccount_windowsIDPoolDNHosts', null, 'windowsIDPoolDN'); | ||||
| 			$configHostContainer->add($uidHostsGeneratorDN, 12); | ||||
| 			$uidHostsGeneratorWinDN = new htmlResponsiveInputField(_('Windows domain info DN'), 'posixAccount_windowsIDPoolDNHosts', null, 'windowsIDPoolDN'); | ||||
| 			$uidHostsGeneratorWinDN->setRequired(true); | ||||
| 			$configHostContainer->addElement($uidHostsGeneratorWinDN, true); | ||||
| 			$minUid = new htmlTableExtendedInputField(_('Minimum UID number'), 'posixAccount_minMachine', null, 'minMaxHost'); | ||||
| 			$configHostContainer->add($uidHostsGeneratorWinDN, 12); | ||||
| 			$minUid = new htmlResponsiveInputField(_('Minimum UID number'), 'posixAccount_minMachine', null, 'minMaxHost'); | ||||
| 			$minUid->setRequired(true); | ||||
| 			$configHostContainer->addElement($minUid, true); | ||||
| 			$maxUid = new htmlTableExtendedInputField(_('Maximum UID number'), 'posixAccount_maxMachine', null, 'minMaxHost'); | ||||
| 			$configHostContainer->add($minUid, 12); | ||||
| 			$maxUid = new htmlResponsiveInputField(_('Maximum UID number'), 'posixAccount_maxMachine', null, 'minMaxHost'); | ||||
| 			$maxUid->setRequired(true); | ||||
| 			$configHostContainer->addElement($maxUid, true); | ||||
| 			$magicNumberHost = new htmlTableExtendedInputField(_('Magic number'), 'posixAccount_magicNumberHost', null, 'magicNumber'); | ||||
| 			$configHostContainer->add($maxUid, 12); | ||||
| 			$magicNumberHost = new htmlResponsiveInputField(_('Magic number'), 'posixAccount_magicNumberHost', null, 'magicNumber'); | ||||
| 			$magicNumberHost->setRequired(true); | ||||
| 			$configHostContainer->addElement($magicNumberHost, true); | ||||
| 			$configHostContainer->addElement(new htmlTableExtendedInputField(_('Suffix for UID/user name check'), 'posixAccount_uidCheckSuffixHost', '', 'uidCheckSuffix'), true); | ||||
| 			$configHostContainer->add($magicNumberHost, 12); | ||||
| 			$configHostContainer->add(new htmlResponsiveInputField(_('Suffix for UID/user name check'), 'posixAccount_uidCheckSuffixHost', '', 'uidCheckSuffix'), 12); | ||||
| 			$return[] = $configHostContainer; | ||||
| 		} | ||||
| 		// common options
 | ||||
| 		$configOptionsContainer = new htmlTable(); | ||||
| 		$configOptionsContainer->addElement(new htmlSubTitle(_('Options')), true); | ||||
| 		$configOptionsContainer->addElement(new htmlTableExtendedSelect('posixAccount_pwdHash', getSupportedHashTypes(), | ||||
| 				array('SSHA'), _("Password hash type"), 'pwdHash'), true); | ||||
| 		$configOptionsContainer->addElement(new htmlTableExtendedInputTextarea('posixAccount_shells', implode("\r\n", $this->getShells()), 30, 4, _('Login shells'), 'loginShells'), true); | ||||
| 		$hiddenOptionsContainer = new htmlGroup(); | ||||
| 		$hiddenOptionsContainer->colspan = 5; | ||||
| 		$hiddenOptionsContainerHead = new htmlTable(); | ||||
| 		$configOptionsContainer = new htmlResponsiveRow(); | ||||
| 		$configOptionsContainer->add(new htmlSubTitle(_('Options')), 12); | ||||
| 		$configOptionsContainer->add(new htmlResponsiveSelect('posixAccount_pwdHash', getSupportedHashTypes(), | ||||
| 				array('SSHA'), _("Password hash type"), 'pwdHash'), 12); | ||||
| 		$configOptionsContainer->add(new htmlResponsiveInputTextarea('posixAccount_shells', implode("\r\n", $this->getShells()), 30, 4, _('Login shells'), 'loginShells'), 12); | ||||
| 		$hiddenOptionsContainerHead = new htmlGroup(); | ||||
| 		$hiddenOptionsContainerHead->addElement(new htmlOutputText(_('Hidden options'))); | ||||
| 		$hiddenOptionsContainerHead->addElement(new htmlHelpLink('hiddenOptions')); | ||||
| 		$hiddenOptionsContainer->addElement($hiddenOptionsContainerHead); | ||||
| 		$configContainerOptions = new htmlTable(); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('posixAccount_hidegecos', false, _('Gecos'), null, false)); | ||||
| 		$configOptionsContainer->addLabel($hiddenOptionsContainerHead, 12); | ||||
| 		$configOptionsContainer->addField(new htmlOutputText('')); | ||||
| 		$configOptionsContainer->addVerticalSpacer('0.5rem'); | ||||
| 		$configOptionsContainer->add(new htmlResponsiveInputCheckbox('posixAccount_hidegecos', false, _('Gecos'), null, false), 12); | ||||
| 		if (isset($_SESSION['conf_config'])) { | ||||
| 			$confActiveGONModules = array_merge($_SESSION['conf_config']->get_AccountModules('group'), $_SESSION['conf_config']->get_AccountModules('gon')); | ||||
| 			if (in_array('groupOfNames', $confActiveGONModules) || in_array('groupOfMembers', $confActiveGONModules) || in_array('groupOfUniqueNames', $confActiveGONModules)) { | ||||
| 				$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 				$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('posixAccount_hidegon', false, _('Groups of names'), null, false)); | ||||
| 				$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 				$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('posixAccount_hideposixGroups', false, _('Unix groups'), null, false)); | ||||
| 				$configOptionsContainer->add(new htmlResponsiveInputCheckbox('posixAccount_hidegon', false, _('Groups of names'), null, false), 12); | ||||
| 				$configOptionsContainer->add(new htmlResponsiveInputCheckbox('posixAccount_hideposixGroups', false, _('Unix groups'), null, false), 12); | ||||
| 			} | ||||
| 		} | ||||
| 		$hiddenOptionsContainer->addElement($configContainerOptions); | ||||
| 		$configOptionsContainer->addElement($hiddenOptionsContainer, true); | ||||
| 		$advancedOptions = new htmlTable(); | ||||
| 		$advancedOptions->addElement(new htmlTableExtendedInputCheckbox('posixAccount_primaryGroupAsSecondary', false, _('Set primary group as memberUid'), 'primaryGroupAsSecondary'), true); | ||||
| 		$configOptionsContainer->addVerticalSpacer('1rem'); | ||||
| 		$advancedOptions = new htmlResponsiveRow(); | ||||
| 		$advancedOptions->add(new htmlResponsiveInputCheckbox('posixAccount_primaryGroupAsSecondary', false, _('Set primary group as memberUid'), 'primaryGroupAsSecondary'), 12); | ||||
| 		$isWindows = array_key_exists('windowsUser', $allScopes); | ||||
| 		if ($isWindows) { | ||||
| 			$advancedOptions->addElement(new htmlTableExtendedInputCheckbox('posixAccount_noObjectClass', false, _('Do not add object class'), 'noObjectClass'), true); | ||||
| 			$advancedOptions->add(new htmlResponsiveInputCheckbox('posixAccount_noObjectClass', false, _('Do not add object class'), 'noObjectClass'), 12); | ||||
| 		} | ||||
| 		$advancedOptions->addElement(new htmlTableExtendedInputField(_('User name suggestion'), 'posixAccount_userNameSuggestion', '@givenname@%sn%', 'userNameSuggestion')); | ||||
| 		$advancedOptions->add(new htmlResponsiveInputField(_('User name suggestion'), 'posixAccount_userNameSuggestion', '@givenname@%sn%', 'userNameSuggestion'), 12); | ||||
| 		$advancedOptionsAccordion = new htmlAccordion('posixAccountAdvancedOptions', array(_('Advanced options') => $advancedOptions), false); | ||||
| 		$advancedOptionsAccordion->colspan = 5; | ||||
| 		$configOptionsContainer->addElement($advancedOptionsAccordion); | ||||
| 		$configOptionsContainer->add($advancedOptionsAccordion, 12); | ||||
| 		$return[] = $configOptionsContainer; | ||||
| 
 | ||||
| 		return $return; | ||||
|  |  | |||
|  | @ -541,23 +541,20 @@ class posixGroup extends baseModule implements passwordService { | |||
| 
 | ||||
| 
 | ||||
| 	/** | ||||
| 	* Returns a list of elements for the configuration. | ||||
| 	* | ||||
| 	* @param array $scopes account types (user, group, host) | ||||
| 	* @param array $allScopes list of all modules and active scopes | ||||
| 	* @return array configuration elements | ||||
| 	 * {@inheritDoc} | ||||
| 	 * @see baseModule::get_configOptions() | ||||
| 	 */ | ||||
| 	function get_configOptions($scopes, $allScopes) { | ||||
| 	public function get_configOptions($scopes, $allScopes) { | ||||
| 		// configuration options
 | ||||
| 		$configContainer = new htmlTable(); | ||||
| 		$configContainer->addElement(new htmlSubTitle(_("Groups")), true); | ||||
| 		$configContainer = new htmlResponsiveRow(); | ||||
| 		$configContainer->add(new htmlSubTitle(_("Groups")), 12); | ||||
| 		$genOptions = array( | ||||
| 			_('Fixed range') => 'range', | ||||
| 			_('Samba ID pool') => 'sambaPool', | ||||
| 			_('Windows domain info') => 'windowsDomain', | ||||
| 			_('Magic number') => 'magicNumber' | ||||
| 		); | ||||
| 		$gidGeneratorSelect = new htmlTableExtendedSelect('posixGroup_gidGenerator', $genOptions, array('range'), _('GID generator'), 'gidGenerator'); | ||||
| 		$gidGeneratorSelect = new htmlResponsiveSelect('posixGroup_gidGenerator', $genOptions, array('range'), _('GID generator'), 'gidGenerator'); | ||||
| 		$gidGeneratorSelect->setHasDescriptiveElements(true); | ||||
| 		$gidGeneratorSelect->setTableRowsToHide(array( | ||||
| 			'range' => array('posixGroup_sambaIDPoolDN', 'posixGroup_windowsIDPoolDN', 'posixGroup_magicNumber'), | ||||
|  | @ -571,31 +568,31 @@ class posixGroup extends baseModule implements passwordService { | |||
| 			'windowsDomain' => array('posixGroup_windowsIDPoolDN'), | ||||
| 			'magicNumber' => array('posixGroup_magicNumber') | ||||
| 		)); | ||||
| 		$configContainer->addElement($gidGeneratorSelect, true); | ||||
| 		$minGidInput = new htmlTableExtendedInputField(_('Minimum GID number'), 'posixGroup_minGID', null, 'minMaxGID'); | ||||
| 		$configContainer->add($gidGeneratorSelect, 12); | ||||
| 		$minGidInput = new htmlResponsiveInputField(_('Minimum GID number'), 'posixGroup_minGID', null, 'minMaxGID'); | ||||
| 		$minGidInput->setRequired(true); | ||||
| 		$configContainer->addElement($minGidInput, true); | ||||
| 		$maxGidInput = new htmlTableExtendedInputField(_('Maximum GID number'), 'posixGroup_maxGID', null, 'minMaxGID'); | ||||
| 		$configContainer->add($minGidInput, 12); | ||||
| 		$maxGidInput = new htmlResponsiveInputField(_('Maximum GID number'), 'posixGroup_maxGID', null, 'minMaxGID'); | ||||
| 		$maxGidInput->setRequired(true); | ||||
| 		$configContainer->addElement($maxGidInput, true); | ||||
| 		$gidGeneratorDN = new htmlTableExtendedInputField(_('Samba ID pool DN'), 'posixGroup_sambaIDPoolDN', null, 'sambaIDPoolDN'); | ||||
| 		$configContainer->add($maxGidInput, 12); | ||||
| 		$gidGeneratorDN = new htmlResponsiveInputField(_('Samba ID pool DN'), 'posixGroup_sambaIDPoolDN', null, 'sambaIDPoolDN'); | ||||
| 		$gidGeneratorDN->setRequired(true); | ||||
| 		$configContainer->addElement($gidGeneratorDN, true); | ||||
| 		$winGeneratorDN = new htmlTableExtendedInputField(_('Windows domain info DN'), 'posixGroup_windowsIDPoolDN', null, 'windowsIDPoolDN'); | ||||
| 		$configContainer->add($gidGeneratorDN, 12); | ||||
| 		$winGeneratorDN = new htmlResponsiveInputField(_('Windows domain info DN'), 'posixGroup_windowsIDPoolDN', null, 'windowsIDPoolDN'); | ||||
| 		$winGeneratorDN->setRequired(true); | ||||
| 		$configContainer->addElement($winGeneratorDN, true); | ||||
| 		$magicNumber = new htmlTableExtendedInputField(_('Magic number'), 'posixGroup_magicNumber', null, 'magicNumber'); | ||||
| 		$configContainer->add($winGeneratorDN, 12); | ||||
| 		$magicNumber = new htmlResponsiveInputField(_('Magic number'), 'posixGroup_magicNumber', null, 'magicNumber'); | ||||
| 		$magicNumber->setRequired(true); | ||||
| 		$configContainer->addElement($magicNumber, true); | ||||
| 		$configContainer->addElement(new htmlTableExtendedInputField(_('Suffix for GID/group name check'), 'posixGroup_gidCheckSuffix', '', 'gidCheckSuffix'), true); | ||||
| 		$configContainer->addElement(new htmlTableExtendedInputCheckbox('posixGroup_hidememberUid', false, _('Disable membership management'), 'hidememberUid'), true); | ||||
| 		$configContainer->add($magicNumber, 12); | ||||
| 		$configContainer->add(new htmlResponsiveInputField(_('Suffix for GID/group name check'), 'posixGroup_gidCheckSuffix', '', 'gidCheckSuffix'), 12); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('posixGroup_hidememberUid', false, _('Disable membership management'), 'hidememberUid'), 12); | ||||
| 		if ((!empty($allScopes['groupOfNames']) && in_array('group', $allScopes['groupOfNames'])) | ||||
| 			|| (!empty($allScopes['groupOfUniqueNames']) && in_array('group', $allScopes['groupOfUniqueNames']))) { | ||||
| 			$configContainer->addElement(new htmlTableExtendedInputCheckbox('posixGroup_autoSyncGon', false, _('Force sync with group of names'), 'autoSyncGon'), true); | ||||
| 			$configContainer->add(new htmlResponsiveInputCheckbox('posixGroup_autoSyncGon', false, _('Force sync with group of names'), 'autoSyncGon'), 12); | ||||
| 		} | ||||
| 		// display password hash option only if posixAccount module is not used
 | ||||
| 		if (!isset($allScopes['posixAccount'])) { | ||||
| 			$configContainer->addElement(new htmlTableExtendedSelect('posixAccount_pwdHash', getSupportedHashTypes(), array('SSHA'), _("Password hash type"), 'pwdHash')); | ||||
| 			$configContainer->add(new htmlResponsiveSelect('posixAccount_pwdHash', getSupportedHashTypes(), array('SSHA'), _("Password hash type"), 'pwdHash'), 12); | ||||
| 		} | ||||
| 		return $configContainer; | ||||
| 	} | ||||
|  |  | |||
|  | @ -516,26 +516,14 @@ class puppetClient extends baseModule { | |||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	* Returns a list of configuration options. | ||||
| 	* | ||||
| 	* Calling this method does not require the existence of an enclosing {@link accountContainer}.<br> | ||||
| 	* <br> | ||||
| 	* The field names are used as keywords to load and save settings. | ||||
| 	* We recommend to use the module name as prefix for them (e.g. posixAccount_homeDirectory) to avoid naming conflicts. | ||||
| 	* | ||||
| 	* @param array $scopes account types (user, group, host) | ||||
| 	* @param array $allScopes list of all active account modules and their scopes (module => array(scopes)) | ||||
| 	* @return mixed htmlElement or array of htmlElement | ||||
| 	* | ||||
| 	* @see htmlElement | ||||
| 	 * {@inheritDoc} | ||||
| 	 * @see baseModule::get_configOptions() | ||||
| 	 */ | ||||
| 	public function get_configOptions($scopes, $allScopes) { | ||||
| 		$return = parent::get_configOptions($scopes, $allScopes); | ||||
| 		$return = new htmlResponsiveRow(); | ||||
| 		// config options
 | ||||
| 		$configContainer = new htmlTable(); | ||||
| 		$configContainer->addElement(new htmlTableExtendedInputTextarea('puppetClient_environments', "production\r\ntesting", 30, 5, _('Predefined environments'), 'predefinedEnvironments'), true); | ||||
| 		$configContainer->addElement(new htmlTableExtendedInputTextarea('puppetClient_enforceClasses', '', 30, 5, _('Enforce classes'), 'enforceClasses'), true); | ||||
| 		$return[] = $configContainer; | ||||
| 		$return->add(new htmlResponsiveInputTextarea('puppetClient_environments', "production\r\ntesting", 30, 5, _('Predefined environments'), 'predefinedEnvironments'), 12); | ||||
| 		$return->add(new htmlResponsiveInputTextarea('puppetClient_enforceClasses', '', 30, 5, _('Enforce classes'), 'enforceClasses'), 12); | ||||
| 		return $return; | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
|  | @ -259,10 +259,6 @@ class pykotaUser extends baseModule { | |||
| 			$selfServiceContainer->addElement(new htmlHelpLink('jobSuffix', get_class($this)), true); | ||||
| 			$return['selfServiceSettings'] = $selfServiceContainer; | ||||
| 		} | ||||
| 		// config options
 | ||||
| 		$configContainer = new htmlTable(); | ||||
| 		$configContainer->addElement(new htmlTableExtendedInputField(_('Job suffix'), 'pykotaUser_jobSuffix', '', 'jobSuffix'), true); | ||||
| 		$return['config_options']['all'] = $configContainer; | ||||
| 		// configuration checks
 | ||||
| 		$return['config_checks']['all']['pykotaUser_jobSuffix'] = array ( | ||||
| 			'type' => 'ext_preg', | ||||
|  | @ -1210,6 +1206,16 @@ class pykotaUser extends baseModule { | |||
| 		return array_values($jobs); | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * {@inheritDoc} | ||||
| 	 * @see baseModule::get_configOptions() | ||||
| 	 */ | ||||
| 	public function get_configOptions($scopes, $allScopes) { | ||||
| 		$configContainer = new htmlResponsiveRow(); | ||||
| 		$configContainer->add(new htmlResponsiveInputField(_('Job suffix'), 'pykotaUser_jobSuffix', '', 'jobSuffix'), 12); | ||||
| 		return $configContainer; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -1869,49 +1869,37 @@ class sambaSamAccount extends baseModule implements passwordService { | |||
| 		if (!in_array('user', $scopes)) { | ||||
| 			return $return; | ||||
| 		} | ||||
| 		$configContainer = new htmlTable(); | ||||
| 		$configContainer = new htmlResponsiveRow(); | ||||
| 		// password history
 | ||||
| 		$history = new htmlTable(); | ||||
| 		$historyOptions = array( | ||||
| 				_('yes - ordered ascending') => 'yes_deleteLast', | ||||
| 				_('yes - ordered descending') => 'yes_deleteFirst', | ||||
| 				_('no') => 'no' | ||||
| 		); | ||||
| 		$historySelect = new htmlTableExtendedSelect('sambaSamAccount_history', $historyOptions, array('yes_deleteLast'), _("Password history"), 'history'); | ||||
| 		$historySelect = new htmlResponsiveSelect('sambaSamAccount_history', $historyOptions, array('yes_deleteLast'), _("Password history"), 'history'); | ||||
| 		$historySelect->setHasDescriptiveElements(true); | ||||
| 		$history->addElement($historySelect, true); | ||||
| 		$configContainer->addElement($history, true); | ||||
| 		$configContainer->add($historySelect, 12); | ||||
| 		// disable LM passwords
 | ||||
| 		$disableLM = new htmlTable(); | ||||
| 		$yesNo = array(_('yes') => 'yes', _('no') => 'no'); | ||||
| 		$lmYesNoSelect = new htmlTableExtendedSelect('sambaSamAccount_lmHash', $yesNo, array('yes'), _("Disable LM hashes"), 'lmHash'); | ||||
| 		$lmYesNoSelect = new htmlResponsiveSelect('sambaSamAccount_lmHash', $yesNo, array('yes'), _("Disable LM hashes"), 'lmHash'); | ||||
| 		$lmYesNoSelect->setHasDescriptiveElements(true); | ||||
| 		$disableLM->addElement($lmYesNoSelect, true); | ||||
| 		$configContainer->addElement($disableLM, true); | ||||
| 		$configContainer->add($lmYesNoSelect, 12); | ||||
| 		// hidden options
 | ||||
| 		$configContainer->addElement(new htmlSpacer(null, '10px'), true); | ||||
| 		$configContainer->addVerticalSpacer('1rem'); | ||||
| 		$configHiddenLabelGroup = new htmlGroup(); | ||||
| 		$configHiddenLabelGroup->addElement(new htmlOutputText(_('Hidden options') . ' ')); | ||||
| 		$configHiddenLabelGroup->addElement(new htmlHelpLink('hiddenOptions')); | ||||
| 		$configContainer->addElement($configHiddenLabelGroup, true); | ||||
| 		$hiddenContainer = new htmlTable(); | ||||
| 		$hiddenContainer->colspan = 5; | ||||
| 		$hiddenContainer->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_hideHomeDrive', false, _('Home drive'), null, false)); | ||||
| 		$hiddenContainer->addElement(new htmlOutputText(' ')); | ||||
| 		$hiddenContainer->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_hideHomePath', false, _('Home path'), null, false)); | ||||
| 		$hiddenContainer->addElement(new htmlOutputText(' ')); | ||||
| 		$hiddenContainer->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_hideProfilePath', false, _('Profile path'), null, false)); | ||||
| 		$hiddenContainer->addElement(new htmlOutputText(' ')); | ||||
| 		$hiddenContainer->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_hideLogonScript', false, _('Logon script'), null, false)); | ||||
| 		$hiddenContainer->addElement(new htmlOutputText(' ')); | ||||
| 		$hiddenContainer->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_hideSambaPwdLastSet', false, _('Last password change'), null, false)); | ||||
| 		$hiddenContainer->addNewLine(); | ||||
| 		$hiddenContainer->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_hideWorkstations', false, _('Samba workstations'), null, false)); | ||||
| 		$hiddenContainer->addElement(new htmlOutputText(' ')); | ||||
| 		$hiddenContainer->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_hideLogonHours', false, _('Logon hours'), null, false)); | ||||
| 		$hiddenContainer->addElement(new htmlOutputText(' ')); | ||||
| 		$hiddenContainer->addElement(new htmlTableExtendedInputCheckbox('sambaSamAccount_hideTerminalServer', false, _('Terminal server options'), null, false)); | ||||
| 		$configContainer->addElement($hiddenContainer); | ||||
| 		$configContainer->add($configHiddenLabelGroup, 12); | ||||
| 		$configContainer->addVerticalSpacer('0.5rem'); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('sambaSamAccount_hideHomeDrive', false, _('Home drive'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('sambaSamAccount_hideHomePath', false, _('Home path'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('sambaSamAccount_hideProfilePath', false, _('Profile path'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('sambaSamAccount_hideLogonScript', false, _('Logon script'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('sambaSamAccount_hideSambaPwdLastSet', false, _('Last password change'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('sambaSamAccount_hideWorkstations', false, _('Samba workstations'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('sambaSamAccount_hideLogonHours', false, _('Logon hours'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('sambaSamAccount_hideTerminalServer', false, _('Terminal server options'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlOutputText(''), 12, 4); | ||||
| 		$return[] = $configContainer; | ||||
| 		return $return; | ||||
| 	} | ||||
|  |  | |||
|  | @ -165,20 +165,6 @@ class windowsGroup extends baseModule { | |||
| 				"Text" => _('NIS domain name.') | ||||
| 			), | ||||
| 		); | ||||
| 		// configuration settings
 | ||||
| 		$configContainer = new htmlTable(); | ||||
| 		$configContainerHead = new htmlTable(); | ||||
| 		$configContainerHead->addElement(new htmlOutputText(_('Hidden options'))); | ||||
| 		$configContainerHead->addElement(new htmlHelpLink('hiddenOptions')); | ||||
| 		$configContainerOptions = new htmlTable(); | ||||
| 		$configContainer->addElement($configContainerHead, true); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsGroup_hidemail', false, _('Email address'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlOutputText(' ')); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsGroup_hidemanagedBy', false, _('Managed by'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsGroup_hidemsSFU30Name', true, _('NIS name'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsGroup_hidemsSFU30NisDomain', true, _('NIS domain'), null, false)); | ||||
| 		$configContainer->addElement($configContainerOptions, true); | ||||
| 		$return['config_options']['all'] = $configContainer; | ||||
| 		// upload fields
 | ||||
| 		$return['upload_columns'] = array( | ||||
| 			array( | ||||
|  | @ -1104,6 +1090,26 @@ class windowsGroup extends baseModule { | |||
| 		return $effectiveMembers; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * {@inheritDoc} | ||||
| 	 * @see baseModule::get_configOptions() | ||||
| 	 */ | ||||
| 	public function get_configOptions($scopes, $allScopes) { | ||||
| 		$configContainer = new htmlResponsiveRow(); | ||||
| 		$configContainerHead = new htmlGroup(); | ||||
| 		$configContainerHead->addElement(new htmlOutputText(_('Hidden options'))); | ||||
| 		$configContainerHead->addElement(new htmlHelpLink('hiddenOptions')); | ||||
| 		$configContainer->add($configContainerHead, 12); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsGroup_hidemail', false, _('Email address'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsGroup_hidemanagedBy', false, _('Managed by'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsGroup_hidemsSFU30Name', true, _('NIS name'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsGroup_hidemsSFU30NisDomain', true, _('NIS domain'), null, true), 12, 4); | ||||
| 		for ($i = 0; $i < 2; $i++) { | ||||
| 			$configContainer->add(new htmlOutputText(''), 0, 4); | ||||
| 		} | ||||
| 		return $configContainer; | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -3184,67 +3184,52 @@ class windowsUser extends baseModule implements passwordService { | |||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	* Returns a list of configuration options. | ||||
| 	* | ||||
| 	* Calling this method does not require the existence of an enclosing {@link accountContainer}.<br> | ||||
| 	* <br> | ||||
| 	* The field names are used as keywords to load and save settings. | ||||
| 	* We recommend to use the module name as prefix for them (e.g. posixAccount_homeDirectory) to avoid naming conflicts. | ||||
| 	* | ||||
| 	* @param array $scopes account types (user, group, host) | ||||
| 	* @param array $allScopes list of all active account modules and their scopes (module => array(scopes)) | ||||
| 	* @return mixed htmlElement or array of htmlElement | ||||
| 	* | ||||
| 	* @see htmlElement | ||||
| 	 * {@inheritDoc} | ||||
| 	 * @see baseModule::get_configOptions() | ||||
| 	 */ | ||||
| 	public function get_configOptions($scopes, $allScopes) { | ||||
| 		// configuration options
 | ||||
| 		$configContainer = new htmlTable(); | ||||
| 		$configContainerHead = new htmlTable(); | ||||
| 		$configContainerHead->addElement(new htmlTableExtendedInputTextarea('windowsUser_domains', '', 30, 3, _('Domains'), 'domains')); | ||||
| 		$configContainer->addElement($configContainerHead, true); | ||||
| 		$configContainer->addVerticalSpace('10px'); | ||||
| 		$configContainer = new htmlResponsiveRow(); | ||||
| 		$configContainer->add(new htmlResponsiveInputTextarea('windowsUser_domains', '', 30, 3, _('Domains'), 'domains'), 12); | ||||
| 		$configHiddenGroup = new htmlGroup(); | ||||
| 		$configHiddenGroup->addElement(new htmlOutputText(_('Hidden options'))); | ||||
| 		$configHiddenGroup->addElement(new htmlHelpLink('hiddenOptions')); | ||||
| 		$configContainer->addElement($configHiddenGroup, true); | ||||
| 		$configContainerOptions = new htmlTable(); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hideproxyAddresses', true, _('Proxy-Addresses'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hidefacsimileTelephoneNumber', false, _('Fax number'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hidemobile', true, _('Mobile'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hideotherMobile', true, _('Other mobiles'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hidepager', true, _('Pager'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hideotherPager', true, _('Other pagers'), null, false), true); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hidesAMAccountName', true, _('User name (pre W2K)'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hidemsSFU30Name', true, _('NIS name'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hidemsSFU30NisDomain', true, _('NIS domain'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hidepwdLastSet', false, _('Last password change'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hidelastLogonTimestamp', false, _('Last login'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hidejpegPhoto', true, _('Photo'), null, false), true); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hidetitle', true, _('Job title'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hidecarLicense', true, _('Car license'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hideemployeeNumber', true, _('Employee number'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hideemployeeType', true, _('Employee type'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hidebusinessCategory', true, _('Business category'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hidecompany', true, _('Company'), null, false), true); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hidedepartment', true, _('Department'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hideou', true, _('Organisational unit'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hideo', true, _('Organisation'), null, false)); | ||||
| 		$configContainerOptions->addElement(new htmlTableExtendedInputCheckbox('windowsUser_hidemanager', true, _('Manager'), null, false)); | ||||
| 		$configContainer->addElement($configContainerOptions, true); | ||||
| 		$advancedOptions = new htmlTable(); | ||||
| 		$advancedOptions->addElement(new htmlSubTitle(_('Photo')), true); | ||||
| 		$photoTable = new htmlTable(); | ||||
| 		$photoTable->colspan = 2; | ||||
| 		if (extension_loaded('imagick')) { | ||||
| 			$photoTable->addElement(new htmlTableExtendedInputField(_('Maximum width (px)'), 'windowsUser_jpegPhoto_maxWidth', null, 'crop'), true); | ||||
| 			$photoTable->addElement(new htmlTableExtendedInputField(_('Maximum height (px)'), 'windowsUser_jpegPhoto_maxHeight', null, 'crop'), true); | ||||
| 		$configContainer->add($configHiddenGroup, 12); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hideproxyAddresses', true, _('Proxy-Addresses'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hidefacsimileTelephoneNumber', false, _('Fax number'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hidemobile', true, _('Mobile'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hideotherMobile', true, _('Other mobiles'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hidepager', true, _('Pager'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hideotherPager', true, _('Other pagers'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hidesAMAccountName', true, _('User name (pre W2K)'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hidemsSFU30Name', true, _('NIS name'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hidemsSFU30NisDomain', true, _('NIS domain'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hidepwdLastSet', false, _('Last password change'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hidelastLogonTimestamp', false, _('Last login'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hidejpegPhoto', true, _('Photo'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hidetitle', true, _('Job title'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hidecarLicense', true, _('Car license'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hideemployeeNumber', true, _('Employee number'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hideemployeeType', true, _('Employee type'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hidebusinessCategory', true, _('Business category'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hidecompany', true, _('Company'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hidedepartment', true, _('Department'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hideou', true, _('Organisational unit'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hideo', true, _('Organisation'), null, true), 12, 4); | ||||
| 		$configContainer->add(new htmlResponsiveInputCheckbox('windowsUser_hidemanager', true, _('Manager'), null, true), 12, 4); | ||||
| 		for ($i = 0; $i < 2; $i++) { | ||||
| 			$configContainer->add(new htmlOutputText(''), 0, 4); | ||||
| 		} | ||||
| 		$photoTable->addElement(new htmlTableExtendedInputField(_('Maximum file size (kB)'), 'windowsUser_jpegPhoto_maxSize'), true); | ||||
| 		$advancedOptions->addElement($photoTable, true); | ||||
| 		$advancedOptions = new htmlResponsiveRow(); | ||||
| 		$advancedOptions->add(new htmlSubTitle(_('Photo')), 12); | ||||
| 		if (extension_loaded('imagick')) { | ||||
| 			$advancedOptions->add(new htmlResponsiveInputField(_('Maximum width (px)'), 'windowsUser_jpegPhoto_maxWidth', null, 'crop'), 12); | ||||
| 			$advancedOptions->add(new htmlResponsiveInputField(_('Maximum height (px)'), 'windowsUser_jpegPhoto_maxHeight', null, 'crop'), 12); | ||||
| 		} | ||||
| 		$advancedOptions->add(new htmlResponsiveInputField(_('Maximum file size (kB)'), 'windowsUser_jpegPhoto_maxSize'), 12); | ||||
| 		$advancedOptionsAccordion = new htmlAccordion('inetOrgPersonAdvancedOptions', array(_('Advanced options') => $advancedOptions), false); | ||||
| 		$advancedOptionsAccordion->colspan = 5; | ||||
| 		$configContainer->addElement($advancedOptionsAccordion); | ||||
| 		$configContainer->add($advancedOptionsAccordion, 12); | ||||
| 		return $configContainer; | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
|  | @ -183,7 +183,7 @@ printConfigurationPageTabs(ConfigurationPageTab::GENERAL); | |||
| 
 | ||||
| $row = new htmlResponsiveRow(); | ||||
| 
 | ||||
| $serverSettings = new htmlSubTitle(_("Server settings"), '../../graphics/schemaBrowser.png'); | ||||
| $serverSettings = new htmlSubTitle(_("Server settings"), '../../graphics/profiles.png', null, true); | ||||
| $row->add($serverSettings, 12); | ||||
| // server URL
 | ||||
| $urlInput = new htmlResponsiveInputField(_("Server address"), 'serverurl', $conf->get_ServerURL(), '201'); | ||||
|  | @ -236,7 +236,7 @@ $row->add($advancedOptions, 12); | |||
| $row->addVerticalSpacer('2rem'); | ||||
| 
 | ||||
| // language
 | ||||
| $row->add(new htmlSubTitle(_("Language settings"), '../../graphics/languageSmall.png'), 12); | ||||
| $row->add(new htmlSubTitle(_("Language settings"), '../../graphics/language.png', null, true), 12); | ||||
| // read available languages
 | ||||
| $possibleLanguages = getLanguages(); | ||||
| $defaultLanguage = array('en_GB.utf8'); | ||||
|  | @ -271,7 +271,7 @@ $row->add(new htmlResponsiveSelect('timeZone', $timezones, array($conf->getTimeZ | |||
| $row->addVerticalSpacer('2rem'); | ||||
| 
 | ||||
| // lamdaemon settings
 | ||||
| $row->add(new htmlSubTitle(_("Lamdaemon settings"), '../../graphics/lamdaemonSmall.png'), 12); | ||||
| $row->add(new htmlSubTitle(_("Lamdaemon settings"), '../../graphics/lamdaemon.png', null, true), 12); | ||||
| $row->add(new htmlResponsiveInputField(_("Server list"), 'scriptservers', $conf->get_scriptServers(), '218'), 12); | ||||
| $row->add(new htmlResponsiveInputField(_("Path to external script"), 'scriptpath', $conf->get_scriptPath(), '210'), 12); | ||||
| 
 | ||||
|  | @ -313,7 +313,7 @@ $row->addVerticalSpacer('2rem'); | |||
| // LAM Pro settings
 | ||||
| if (isLAMProVersion()) { | ||||
| 	// password reset page
 | ||||
| 	$row->add(new htmlSubTitle(_("Password reset page settings"), '../../graphics/key.png'), 12); | ||||
| 	$row->add(new htmlSubTitle(_("Password reset page settings"), '../../graphics/keyBig.png', null, true), 12); | ||||
| 
 | ||||
| 	$pwdResetAllowSpecific = true; | ||||
| 	if ($conf->getPwdResetAllowSpecificPassword() == 'false') { | ||||
|  | @ -345,7 +345,7 @@ if (isLAMProVersion()) { | |||
| 	$row->addVerticalSpacer('2rem'); | ||||
| 
 | ||||
| 	// mail settings
 | ||||
| 	$row->add(new htmlSubTitle(_("Password mail settings"), '../../graphics/mail.png'), 12); | ||||
| 	$row->add(new htmlSubTitle(_("Password mail settings"), '../../graphics/mailBig.png', null, true), 12); | ||||
| 
 | ||||
| 	$pwdMailFrom = new htmlResponsiveInputField(_('From address'), 'pwdResetMail_from', $conf->getLamProMailFrom(), '550'); | ||||
| 	$row->add($pwdMailFrom, 12); | ||||
|  | @ -375,7 +375,7 @@ if (isLAMProVersion()) { | |||
| } | ||||
| 
 | ||||
| // tool settings
 | ||||
| $row->add(new htmlSubTitle(_("Tool settings"), '../../graphics/tools.png'), 12); | ||||
| $row->add(new htmlSubTitle(_("Tool settings"), '../../graphics/bigTools.png',null, true), 12); | ||||
| $toolSettings = $conf->getToolSettings(); | ||||
| $row->add(new htmlOutputText(_('Hidden tools')), 12); | ||||
| $row->addVerticalSpacer('0.5rem'); | ||||
|  | @ -392,7 +392,8 @@ for ($i = 0; $i < sizeof($tools); $i++) { | |||
| 	} | ||||
| } | ||||
| $toolSettingsContent = new htmlResponsiveRow(); | ||||
| for ($r = 0; $r < (sizeof($tools)); $r++) { | ||||
| $toolsSize = sizeof($tools); | ||||
| for ($r = 0; $r < $toolsSize; $r++) { | ||||
| 	$tool = $tools[$r]; | ||||
| 	$toolClass = get_class($tool); | ||||
| 	$toolName = substr($toolClass, strrpos($toolClass, '\\') + 1); | ||||
|  | @ -400,14 +401,17 @@ for ($r = 0; $r < (sizeof($tools)); $r++) { | |||
| 	if (isset($toolSettings['tool_hide_' . $toolName]) && ($toolSettings['tool_hide_' . $toolName] === 'true')) { | ||||
| 		$selected = true; | ||||
| 	} | ||||
| 	$toolSettingsContent->add(new htmlResponsiveInputCheckbox('tool_hide_' . $toolName, $selected, $tool->getName(), null, false), 12); | ||||
| 	$toolSettingsContent->add(new htmlResponsiveInputCheckbox('tool_hide_' . $toolName, $selected, $tool->getName(), null, false), 12, 4); | ||||
| } | ||||
| for ($i = $toolsSize % 3; $i < 3; $i++) { | ||||
| 	$toolSettingsContent->add(new htmlOutputText(''), 0, 4); | ||||
| } | ||||
| $row->add($toolSettingsContent, 12); | ||||
| 
 | ||||
| $row->addVerticalSpacer('2rem'); | ||||
| 
 | ||||
| // security setings
 | ||||
| $row->add(new htmlSubTitle(_("Security settings"), '../../graphics/lock.png'), 12); | ||||
| $row->add(new htmlSubTitle(_("Security settings"), '../../graphics/security.png', null, true), 12); | ||||
| // login method
 | ||||
| $loginOptions = array( | ||||
| 	_('Fixed list') => LAMConfig::LOGIN_LIST, | ||||
|  | @ -477,7 +481,7 @@ if (extension_loaded('curl')) { | |||
| } | ||||
| 
 | ||||
| // new password
 | ||||
| $row->add(new htmlSubTitle(_("Profile password")), 12); | ||||
| $row->add(new htmlSubTitle(_("Profile password"), '../../graphics/keyBig.png', null, true), 12); | ||||
| $password1 = new htmlResponsiveInputField(_("New password"), 'passwd1', null, '212'); | ||||
| $password1->setIsPassword(true); | ||||
| $password2 = new htmlResponsiveInputField(_("Reenter password"), 'passwd2'); | ||||
|  |  | |||
|  | @ -211,8 +211,12 @@ function config_showAccountModules($type, &$container) { | |||
| 
 | ||||
| 	// add account module selection
 | ||||
| 	$container->add(new htmlSubTitle($type->getAlias(), '../../graphics/' . $type->getIcon()), 12); | ||||
| 	if (sizeof($selOptions) > 0) { | ||||
| 		$container->add(new htmlOutputText(_("Selected modules")), 12, 6); | ||||
| 	} | ||||
| 	if (sizeof($availOptions) > 0) { | ||||
| 		$container->add(new htmlOutputText(_("Available modules")), 0, 6); | ||||
| 	} | ||||
| 	$container->addVerticalSpacer('1rem'); | ||||
| 	// selected modules
 | ||||
| 	if (sizeof($selOptions) > 0) { | ||||
|  |  | |||
|  | @ -4,6 +4,8 @@ use \moduleCache; | |||
| use \htmlSpacer; | ||||
| use \htmlTable; | ||||
| use \htmlButton; | ||||
| use \htmlResponsiveRow; | ||||
| use \htmlSubTitle; | ||||
| /* | ||||
| $Id$ | ||||
| 
 | ||||
|  | @ -104,40 +106,9 @@ if (isset($_POST['saveSettings']) || isset($_POST['editmodules']) | |||
| $allTypes = \LAM\TYPES\getTypes(); | ||||
| 
 | ||||
| echo $_SESSION['header']; | ||||
| 
 | ||||
| echo "<title>" . _("LDAP Account Manager Configuration") . "</title>\n"; | ||||
| 
 | ||||
| // include all CSS files
 | ||||
| $cssDirName = dirname(__FILE__) . '/../../style'; | ||||
| $cssDir = dir($cssDirName); | ||||
| $cssFiles = array(); | ||||
| $cssEntry = $cssDir->read(); | ||||
| while ($cssEntry !== false) { | ||||
| 	if (substr($cssEntry, strlen($cssEntry) - 4, 4) == '.css') { | ||||
| 		$cssFiles[] = $cssEntry; | ||||
| 	} | ||||
| 	$cssEntry = $cssDir->read(); | ||||
| } | ||||
| sort($cssFiles); | ||||
| foreach ($cssFiles as $cssEntry) { | ||||
| 	echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"../../style/" . $cssEntry . "\">\n"; | ||||
| } | ||||
| 
 | ||||
| echo "<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"../../graphics/favicon.ico\">\n"; | ||||
| echo "<link rel=\"icon\" href=\"../../graphics/logo136.png\">\n"; | ||||
| echo "</head><body>\n"; | ||||
| // include all JavaScript files
 | ||||
| $jsDirName = dirname(__FILE__) . '/../lib'; | ||||
| $jsDir = dir($jsDirName); | ||||
| $jsFiles = array(); | ||||
| while ($jsEntry = $jsDir->read()) { | ||||
| 	if (substr($jsEntry, strlen($jsEntry) - 3, 3) != '.js') continue; | ||||
| 	$jsFiles[] = $jsEntry; | ||||
| } | ||||
| sort($jsFiles); | ||||
| foreach ($jsFiles as $jsEntry) { | ||||
| 	echo "<script type=\"text/javascript\" src=\"../lib/" . $jsEntry . "\"></script>\n"; | ||||
| } | ||||
| printHeaderContents(_("LDAP Account Manager Configuration"), '../..'); | ||||
| echo "</head><body class=\"admin\">\n"; | ||||
| printJsIncludes('../..'); | ||||
| printConfigurationPageHeaderBar($conf); | ||||
| 
 | ||||
| // print error messages
 | ||||
|  | @ -179,20 +150,25 @@ $modules = array_keys($options); | |||
| $_SESSION['conf_types'] = array(); | ||||
| for ($i = 0; $i < sizeof($modules); $i++) { | ||||
| 	if (sizeof($options[$modules[$i]]) < 1) continue; | ||||
| 	echo "<fieldset class=\"ui-corner-all user-border user-bright\">\n"; | ||||
| 	$icon = ''; | ||||
| 	$module = moduleCache::getModule($modules[$i], 'none'); | ||||
| 	$iconImage = $module->getIcon(); | ||||
| 	if ($iconImage != null) { | ||||
| 		if (!(strpos($iconImage, 'http') === 0) && !(strpos($iconImage, '/') === 0)) { | ||||
| 			$iconImage = '../../graphics/' . $iconImage; | ||||
| 		} | ||||
| 		$icon = '<img align="middle" src="' . $iconImage . '" alt="' . $iconImage . '"> '; | ||||
| 	} | ||||
| 	echo "<legend>$icon" . getModuleAlias($modules[$i], "none") . "</legend>\n"; | ||||
| 	$configTypes = parseHtml($modules[$i], $options[$modules[$i]], $old_options, false, $tabindex, 'none'); | ||||
| 	$row = new htmlResponsiveRow(); | ||||
| 	$row->add(new htmlSubTitle(getModuleAlias($modules[$i], "none"), $iconImage, null, true), 12); | ||||
| 	if (is_array($options[$modules[$i]])) { | ||||
| 		foreach ($options[$modules[$i]] as $option) { | ||||
| 			$row->add($option, 12); | ||||
| 		} | ||||
| 	} | ||||
| 	else { | ||||
| 		$row->add($options[$modules[$i]], 12); | ||||
| 	} | ||||
| 	$configTypes = parseHtml($modules[$i], $row, $old_options, false, $tabindex, 'none'); | ||||
| 	$_SESSION['conf_types'] = array_merge($configTypes, $_SESSION['conf_types']); | ||||
| 	echo "</fieldset>\n"; | ||||
| 	echo "<br>"; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue