responsive

This commit is contained in:
Roland Gruber 2019-09-26 19:44:17 +02:00
parent 3ad1b5c20a
commit 302acfa2d9
1 changed files with 52 additions and 50 deletions

View File

@ -1090,12 +1090,11 @@ class windowsUser extends baseModule implements passwordService {
*/
public function display_html_attributes() {
$this->initCache();
$containerLeft = new htmlTable();
$containerLeft->alignment = htmlElement::ALIGN_TOP;
$containerLeft = new htmlResponsiveRow();
if ($this->getAccountContainer()->isNewAccount && !isset($this->attributes['userAccountControl'][0])) {
$this->attributes['userAccountControl'][0] = windowsUser::DEFAULT_ACCOUNT_CONTROL;
}
$containerLeft->addElement(new htmlSubTitle(_('General')), true);
$containerLeft->add(new htmlSubTitle(_('General')), 12);
// user name
$userPrincipalName = '';
$userPrincipalNameDomain = '';
@ -1113,12 +1112,12 @@ class windowsUser extends baseModule implements passwordService {
}
$userPrincipalNameLabel = new htmlOutputText(_('User name'));
$userPrincipalNameLabel->setMarkAsRequired(true);
$containerLeft->addElement($userPrincipalNameLabel);
$containerLeft->addLabel($userPrincipalNameLabel);
$userPrincipalNameGroup = new htmlGroup();
$userPrincipalNameGroup->addElement(new htmlInputField('userPrincipalName', $userPrincipalName, '15'));
$userPrincipalNameGroup->addElement(new htmlSelect('userPrincipalNameDomain', $domains, array($userPrincipalNameDomain)));
$containerLeft->addElement($userPrincipalNameGroup);
$containerLeft->addElement(new htmlHelpLink('userPrincipalName'), true);
$userPrincipalNameGroup->addElement(new htmlHelpLink('userPrincipalName'));
$containerLeft->addField($userPrincipalNameGroup);
if (!$this->isBooleanConfigOptionSet('windowsUser_hidesAMAccountName', true)) {
$this->addSimpleInputTextField($containerLeft, 'sAMAccountName', _('User name (pre W2K)'));
}
@ -1129,7 +1128,7 @@ class windowsUser extends baseModule implements passwordService {
$this->addSimpleInputTextField($containerLeft, 'initials', _('Initials'));
$this->addSimpleInputTextField($containerLeft, 'description', _('Description'));
// address area
$containerLeft->addElement(new htmlSubTitle(_('Address')), true);
$containerLeft->add(new htmlSubTitle(_('Address')), 12);
$this->addSimpleInputTextField($containerLeft, 'streetAddress', _('Street'), false, 20, true);
$this->addSimpleInputTextField($containerLeft, 'postOfficeBox', _('Post office box'));
$this->addSimpleInputTextField($containerLeft, 'postalCode', _('Postal code'));
@ -1137,7 +1136,7 @@ class windowsUser extends baseModule implements passwordService {
$this->addSimpleInputTextField($containerLeft, 'st', _('State'));
$this->addSimpleInputTextField($containerLeft, 'physicalDeliveryOfficeName', _('Office name'));
// contact data area
$containerLeft->addElement(new htmlSubTitle(_('Contact data')), true);
$containerLeft->add(new htmlSubTitle(_('Contact data')), 12);
$this->addSimpleInputTextField($containerLeft, 'mail', _('Email address'));
$this->addMultiValueInputTextField($containerLeft, 'otherMailbox', _('Email alias'));
if (!$this->isBooleanConfigOptionSet('windowsUser_hideproxyAddresses', true)) {
@ -1164,7 +1163,7 @@ class windowsUser extends baseModule implements passwordService {
$this->addMultiValueInputTextField($containerLeft, 'url', _('Other web sites'));
// work details area
if ($this->manageWorkDetails()) {
$containerLeft->addElement(new htmlSubTitle(_('Work details')), true);
$containerLeft->add(new htmlSubTitle(_('Work details')), 12);
if (!$this->isBooleanConfigOptionSet('windowsUser_hidetitle', true)) {
$this->addSimpleInputTextField($containerLeft, 'title', _('Job title'), false, null, false, array_slice($this->titleCache, 0, 300));
}
@ -1196,55 +1195,63 @@ class windowsUser extends baseModule implements passwordService {
$this->addMultiValueInputTextField($containerLeft, 'o', _('Organisation'), false, null, false, array_slice($this->oCache, 0, 300));
}
if (!$this->isBooleanConfigOptionSet('windowsUser_hidemanager', true)) {
$containerLeft->addElement(new htmlOutputText(_('Manager')));
$containerLeft->addLabel(new htmlOutputText(_('Manager')));
$managerGroup = new htmlGroup();
$managerVal = (empty($this->attributes['manager'][0])) ? '-' : getAbstractDN($this->attributes['manager'][0]);
$managerGroup->addElement(new htmlOutputText($managerVal));
$managerGroup->addElement(new htmlSpacer('5px', null));
$managerGroup->addElement(new htmlSpacer('0.5rem', null));
$managerGroup->addElement(new htmlAccountPageButton(get_class($this), 'manager', 'change', _("Change")));
$containerLeft->addElement($managerGroup);
$containerLeft->addElement(new htmlHelpLink('manager'), true);
$managerGroup->addElement(new htmlSpacer('0.5rem', null));
$managerGroup->addElement(new htmlHelpLink('manager'), true);
$containerLeft->addField($managerGroup);
}
}
// account area
$containerLeft->addElement(new htmlSubTitle(_('Account')), true);
$containerLeft->add(new htmlSubTitle(_('Account')), 12);
// password change required
$pwdMustChange = false;
if (isset($this->attributes['pwdLastSet'][0]) && ($this->attributes['pwdLastSet'][0] === '0')) {
$pwdMustChange = true;
}
$containerLeft->addElement(new htmlTableExtendedInputCheckbox('forcePasswordChangeOption', $pwdMustChange, _("User must change password"), 'pwdMustChange'), true);
$containerLeft->add(new htmlResponsiveInputCheckbox('forcePasswordChangeOption', $pwdMustChange, _("User must change password"), 'pwdMustChange'), 12);
// deactivated
$deactivated = windowsUser::isDeactivated($this->attributes);
$containerLeft->addElement(new htmlTableExtendedInputCheckbox('deactivated', $deactivated, _("Account is deactivated"), 'deactivated'), true);
$containerLeft->add(new htmlResponsiveInputCheckbox('deactivated', $deactivated, _("Account is deactivated"), 'deactivated'), 12);
// password does not expire
$noExpire = windowsUser::isNeverExpiring($this->attributes);
$containerLeft->addElement(new htmlTableExtendedInputCheckbox('noExpire', $noExpire, _("Password does not expire"), 'noExpire'), true);
$containerLeft->add(new htmlResponsiveInputCheckbox('noExpire', $noExpire, _("Password does not expire"), 'noExpire'), 12);
// require smartcard
$requireCard = windowsUser::isSmartCardRequired($this->attributes);
$containerLeft->addElement(new htmlTableExtendedInputCheckbox('requireCard', $requireCard, _("Require smartcard"), 'requireCard'), true);
$containerLeft->add(new htmlResponsiveInputCheckbox('requireCard', $requireCard, _("Require smartcard"), 'requireCard'), 12);
// account expiration
$containerLeft->addElement(new htmlOutputText(_('Account expiration date')));
$containerLeft->addLabel(new htmlOutputText(_('Account expiration date')));
$accountExpiresGroup = new htmlGroup();
$accountExpiresGroup->addElement(new htmlOutputText($this->formatAccountExpires()));
$accountExpiresGroup->addElement(new htmlSpacer('5px', null));
$accountExpiresGroup->addElement(new htmlSpacer('0.5rem', null));
$accountExpiresGroup->addElement(new htmlAccountPageButton(get_class($this), 'accountExpires', 'edit', _('Change')));
$containerLeft->addElement($accountExpiresGroup);
$containerLeft->addElement(new htmlHelpLink('accountExpires'), true);
$accountExpiresGroup->addElement(new htmlSpacer('0.5rem', null));
$accountExpiresGroup->addElement(new htmlHelpLink('accountExpires'), true);
$containerLeft->addField($accountExpiresGroup);
// last password change
if (!$this->isBooleanConfigOptionSet('windowsUser_hidepwdLastSet')) {
$containerLeft->addElement(new htmlOutputText(_('Last password change')));
$containerLeft->addElement(new htmlOutputText($this->formatPwdLastSet()));
$containerLeft->addElement(new htmlHelpLink('pwdLastSet'), true);
$containerLeft->addLabel(new htmlOutputText(_('Last password change')));
$pwdLastSetGroup = new htmlGroup();
$pwdLastSetGroup->addElement(new htmlOutputText($this->formatPwdLastSet()));
$pwdLastSetGroup->addElement(new htmlSpacer('0.5rem', null));
$pwdLastSetGroup->addElement(new htmlHelpLink('pwdLastSet'));
$containerLeft->addField($pwdLastSetGroup);
}
// last login
if (!$this->isBooleanConfigOptionSet('windowsUser_hidelastLogonTimestamp')) {
$containerLeft->addElement(new htmlOutputText(_('Last login')));
$containerLeft->addElement(new htmlOutputText($this->formatLastLogonTimestamp()));
$containerLeft->addElement(new htmlHelpLink('lastLogonTimestamp'), true);
$containerLeft->addLabel(new htmlOutputText(_('Last login')));
$lastLogonTimestampGroup = new htmlGroup();
$lastLogonTimestampGroup->addElement(new htmlOutputText($this->formatLastLogonTimestamp()));
$lastLogonTimestampGroup->addElement(new htmlSpacer('0.5rem', null));
$lastLogonTimestampGroup->addElement(new htmlHelpLink('lastLogonTimestamp'));
$containerLeft->addField($lastLogonTimestampGroup);
}
// user profile area
$containerLeft->addElement(new htmlSubTitle(_('User profile')), true);
$containerLeft->add(new htmlSubTitle(_('User profile')), 12);
// profile path
$this->addSimpleInputTextField($containerLeft, 'profilePath', _('Profile path'));
// logon script
@ -1260,13 +1267,13 @@ class windowsUser extends baseModule implements passwordService {
else {
$selected = array('-');
}
$containerLeft->addElement(new htmlTableExtendedSelect('homeDrive', $drives, $selected, _('Home drive'), 'homeDrive'), true);
$containerLeft->add(new htmlResponsiveSelect('homeDrive', $drives, $selected, _('Home drive'), 'homeDrive'), 12);
// home directory
$this->addSimpleInputTextField($containerLeft, 'homeDirectory', _('Home directory'));
// NIS attributes
if (!$this->isBooleanConfigOptionSet('windowsUser_hidemsSFU30Name', true) || !$this->isBooleanConfigOptionSet('windowsUser_hidemsSFU30NisDomain', true)) {
$containerLeft->addElement(new htmlSubTitle(_('NIS')), true);
$containerLeft->add(new htmlSubTitle(_('NIS')), 12);
if (!$this->isBooleanConfigOptionSet('windowsUser_hidemsSFU30Name', true)) {
$this->addSimpleInputTextField($containerLeft, 'msSFU30Name', _('NIS name'));
}
@ -1275,14 +1282,9 @@ class windowsUser extends baseModule implements passwordService {
}
}
$containerLeft->addElement(new htmlEqualWidth(array('streetAddress', 'cn')), true);
$containerRight = new htmlTable();
$containerRight->alignment = htmlElement::ALIGN_TOP;
$containerRight = new htmlResponsiveRow();
// photo
if (!$this->isBooleanConfigOptionSet('windowsUser_hidejpegPhoto', true)) {
$imageContainer = new htmlTable();
$imageContainer->alignment = htmlElement::ALIGN_TOP;
$photoFile = '../../graphics/userDefault.png';
$noPhoto = true;
if (isset($this->attributes['jpegPhoto'][0])) {
@ -1296,20 +1298,20 @@ class windowsUser extends baseModule implements passwordService {
$img = new htmlImage($photoFile);
$img->setCSSClasses(array('photo'));
$img->enableLightbox();
$imageContainer->addElement($img, true);
$containerRight->add($img, 12);
$containerRight->addVerticalSpacer('0.5rem');
if ($noPhoto) {
$imageContainer->addElement(new htmlAccountPageButton(get_class($this), 'photo', 'open', _('Add photo')));
$containerRight->add(new htmlAccountPageButton(get_class($this), 'photo', 'open', _('Add photo')), 12);
}
else {
$imageContainer->addElement(new htmlButton('delPhoto', _('Delete photo')));
$containerRight->add(new htmlButton('delPhoto', _('Delete photo')), 12);
}
$containerRight->addElement($imageContainer, true);
$containerRight->addElement(new htmlSpacer(null, '20px'), true);
$containerRight->addVerticalSpacer('2rem');
}
// groups
$containerRight->addElement(new htmlSubTitle(_('Groups')), true);
$containerRight->addElement(new htmlAccountPageButton(get_class($this), 'group', 'edit', _('Edit groups')), true);
$containerRight->addElement(new htmlSpacer(null, '10px'), true);
$containerRight->add(new htmlSubTitle(_('Groups')), 12);
$containerRight->add(new htmlAccountPageButton(get_class($this), 'group', 'edit', _('Edit groups')), 12);
$containerRight->addVerticalSpacer('1rem');
$groupsList = new htmlGroup();
$groupCNs = array();
for ($i = 0; $i < sizeof($this->groupList); $i++) {
@ -1320,12 +1322,12 @@ class windowsUser extends baseModule implements passwordService {
$groupsList->addElement(new htmlOutputText($cn));
$groupsList->addElement(new htmlOutputText('<br>', false));
}
$containerRight->addElement($groupsList);
$containerRight->add($groupsList, 12);
$container = new htmlTable();
$container->addElement($containerLeft);
$container->addElement(new htmlSpacer('40px', null));
$container->addElement($containerRight);
$container = new htmlResponsiveRow();
$container->add($containerLeft, 12, 7);
$container->add(new htmlSpacer('1rem', null), 0, 1);
$container->add($containerRight, 12, 4);
return $container;
}