responsive
This commit is contained in:
parent
9fa374e2b4
commit
493150ab6f
|
@ -1,10 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
$Id$
|
|
||||||
|
|
||||||
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
||||||
Copyright (C) 2008 Thomas Manninger
|
Copyright (C) 2008 Thomas Manninger
|
||||||
2008 - 2017 Roland Gruber
|
2008 - 2019 Roland Gruber
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -356,7 +355,7 @@ class ddns extends baseModule {
|
||||||
public function display_html_attributes() {
|
public function display_html_attributes() {
|
||||||
$this->attributes = &$this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes;
|
$this->attributes = &$this->getAccountContainer()->getAccountModule('dhcp_settings')->attributes;
|
||||||
$this->orig = &$this->getAccountContainer()->getAccountModule('dhcp_settings')->orig;
|
$this->orig = &$this->getAccountContainer()->getAccountModule('dhcp_settings')->orig;
|
||||||
$return = new htmlTable();
|
$return = new htmlResponsiveRow();
|
||||||
// check if DHCP main settings and valid DHCP entry
|
// check if DHCP main settings and valid DHCP entry
|
||||||
if ($this->isRootNode()) {
|
if ($this->isRootNode()) {
|
||||||
if (!in_array_ignore_case('dhcpService', $this->attributes['objectClass']) && !in_array_ignore_case('dhcpServer', $this->attributes['objectClass'])) {
|
if (!in_array_ignore_case('dhcpService', $this->attributes['objectClass']) && !in_array_ignore_case('dhcpServer', $this->attributes['objectClass'])) {
|
||||||
|
@ -364,21 +363,21 @@ class ddns extends baseModule {
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
// DHCP main settings
|
// DHCP main settings
|
||||||
$return->addElement(new htmlTableExtendedInputCheckbox('active', $this->isDynDNSActivated(), _('Activate DynDNS'), 'active'), true);
|
$return->add(new htmlResponsiveInputCheckbox('active', $this->isDynDNSActivated(), _('Activate DynDNS'), 'active'), 12);
|
||||||
$return->addElement(new htmlTableExtendedInputCheckbox('insert_fixed', $this->addFixIPs(), _('Add fix IP addresses to DNS'), 'fixed_ips'), true);
|
$return->add(new htmlResponsiveInputCheckbox('insert_fixed', $this->addFixIPs(), _('Add fix IP addresses to DNS'), 'fixed_ips'), 12);
|
||||||
$return->addElement(new htmlTableExtendedInputCheckbox('client_insert', $this->isIgnoreClientUpdates(), _('Disable client updates'), 'client_insert'), true);
|
$return->add(new htmlResponsiveInputCheckbox('client_insert', $this->isIgnoreClientUpdates(), _('Disable client updates'), 'client_insert'), 12);
|
||||||
$keyInput = new htmlTableExtendedInputField(_('Path to key for DNS updates'), 'key_path', $this->getUpdateKey(), 'keypath');
|
$keyInput = new htmlResponsiveInputField(_('Path to key for DNS updates'), 'key_path', $this->getUpdateKey(), 'keypath');
|
||||||
$return->addElement($keyInput);
|
$return->add($keyInput, 12);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Account edit
|
// Account edit
|
||||||
if (!$this->check_if_ddns_is_enable()) {
|
if (!$this->check_if_ddns_is_enable()) {
|
||||||
$return->addElement(new htmlOutputText(_("DDNS ist not activated. You can activate it in the DHCP settings (DDNS).")));
|
$return->add(new htmlOutputText(_("DDNS ist not activated. You can activate it in the DHCP settings (DDNS).")), 12);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// DNS server
|
// DNS server
|
||||||
$serverInput = new htmlTableExtendedInputField(_('IP address of the DNS server'), 'ip', $this->getDNSServer(), 'dns');
|
$serverInput = new htmlResponsiveInputField(_('IP address of the DNS server'), 'ip', $this->getDNSServer(), 'dns');
|
||||||
$return->addElement($serverInput, true);
|
$return->add($serverInput, 12);
|
||||||
|
|
||||||
$zones = $this->getZoneNames();
|
$zones = $this->getZoneNames();
|
||||||
$zone = '';
|
$zone = '';
|
||||||
|
@ -390,11 +389,11 @@ class ddns extends baseModule {
|
||||||
$revzone = $zones[1];
|
$revzone = $zones[1];
|
||||||
}
|
}
|
||||||
// zone name
|
// zone name
|
||||||
$zoneInput = new htmlTableExtendedInputField(_('Zone name'), 'zone', $zone, 'zone');
|
$zoneInput = new htmlResponsiveInputField(_('Zone name'), 'zone', $zone, 'zone');
|
||||||
$return->addElement($zoneInput, true);
|
$return->add($zoneInput, 12);
|
||||||
// reverse zone name
|
// reverse zone name
|
||||||
$revZoneInput = new htmlTableExtendedInputField(_('Reverse zone name'), 'zone_reverse', $revzone, 'zone_reverse');
|
$revZoneInput = new htmlResponsiveInputField(_('Reverse zone name'), 'zone_reverse', $revzone, 'zone_reverse');
|
||||||
$return->addElement($revZoneInput);
|
$return->add($revZoneInput, 12);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
||||||
Copyright (C) 2008 Thomas Manninger
|
Copyright (C) 2008 Thomas Manninger
|
||||||
2008 - 2018 Roland Gruber
|
2008 - 2019 Roland Gruber
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -566,11 +566,11 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I
|
||||||
* @return htmlElement HTML meta data
|
* @return htmlElement HTML meta data
|
||||||
*/
|
*/
|
||||||
public function display_html_attributes() {
|
public function display_html_attributes() {
|
||||||
$return = new htmlTable();
|
$return = new htmlResponsiveRow();
|
||||||
// check if DHCP main settings and valid DHCP entry
|
// check if DHCP main settings and valid DHCP entry
|
||||||
if ($this->isRootNode()) {
|
if ($this->isRootNode()) {
|
||||||
if (!in_array_ignore_case('dhcpService', $this->attributes['objectClass']) && !in_array_ignore_case('dhcpServer', $this->attributes['objectClass'])) {
|
if (!in_array_ignore_case('dhcpService', $this->attributes['objectClass']) && !in_array_ignore_case('dhcpServer', $this->attributes['objectClass'])) {
|
||||||
$return->addElement(new htmlStatusMessage('ERROR', _('Please set your LDAP suffix to an LDAP entry with object class "dhcpService" or "dhcpServer".')));
|
$return->add(new htmlStatusMessage('ERROR', _('Please set your LDAP suffix to an LDAP entry with object class "dhcpService" or "dhcpServer".')), 12);
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -580,23 +580,22 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I
|
||||||
if (isset($this->attributes['cn'][0])) {
|
if (isset($this->attributes['cn'][0])) {
|
||||||
$cn = $this->attributes['cn'][0];
|
$cn = $this->attributes['cn'][0];
|
||||||
}
|
}
|
||||||
$subnetInput = new htmlTableExtendedInputField(_('Subnet'), 'cn', $cn, 'subnet');
|
$subnetInput = new htmlResponsiveInputField(_('Subnet'), 'cn', $cn, 'subnet');
|
||||||
$subnetInput->setRequired(true);
|
$subnetInput->setRequired(true);
|
||||||
$return->addElement($subnetInput);
|
$return->add($subnetInput, 12);
|
||||||
$return->addElement(new htmlOutputText(_('Example') . ": 192.168.10.0"), true);
|
|
||||||
}
|
}
|
||||||
// domain name
|
// domain name
|
||||||
$return->addElement(new htmlTableExtendedInputField(_('Domain name'), 'domainname', $this->getDHCPOption('domain-name'), 'domainname'), true);
|
$return->add(new htmlResponsiveInputField(_('Domain name'), 'domainname', $this->getDHCPOption('domain-name'), 'domainname'), 12);
|
||||||
// lease Time
|
// lease Time
|
||||||
$leasetimeInput = new htmlTableExtendedInputField(_('Lease time'), 'lease_time', $this->getDefaultLeaseTime(), 'leasetime');
|
$leasetimeInput = new htmlResponsiveInputField(_('Lease time'), 'lease_time', $this->getDefaultLeaseTime(), 'leasetime');
|
||||||
$leasetimeInput->setValidationRule(htmlElement::VALIDATE_NUMERIC);
|
$leasetimeInput->setValidationRule(htmlElement::VALIDATE_NUMERIC);
|
||||||
$return->addElement($leasetimeInput, true);
|
$return->add($leasetimeInput, 12);
|
||||||
// max lease time
|
// max lease time
|
||||||
$max_leasetimeInput = new htmlTableExtendedInputField(_('Maximum lease time'), 'max_lease_time', $this->getMaxLeaseTime(), 'max_leasetime');
|
$max_leasetimeInput = new htmlResponsiveInputField(_('Maximum lease time'), 'max_lease_time', $this->getMaxLeaseTime(), 'max_leasetime');
|
||||||
$max_leasetimeInput->setValidationRule(htmlElement::VALIDATE_NUMERIC);
|
$max_leasetimeInput->setValidationRule(htmlElement::VALIDATE_NUMERIC);
|
||||||
$return->addElement($max_leasetimeInput, true);
|
$return->add($max_leasetimeInput, 12);
|
||||||
// DNS
|
// DNS
|
||||||
$return->addElement(new htmlTableExtendedInputField(_('DNS'), 'dns', $this->getDHCPOption('domain-name-servers'), 'dns'), true);
|
$return->add(new htmlResponsiveInputField(_('DNS'), 'dns', $this->getDHCPOption('domain-name-servers'), 'dns'), 12);
|
||||||
// domain search
|
// domain search
|
||||||
$domainSearchEntries = $this->getDHCPOption('domain-search');
|
$domainSearchEntries = $this->getDHCPOption('domain-search');
|
||||||
if ($domainSearchEntries === null) {
|
if ($domainSearchEntries === null) {
|
||||||
|
@ -606,9 +605,9 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I
|
||||||
$this->attributes['INFO_domain-search'] = $domainSearchEntries;
|
$this->attributes['INFO_domain-search'] = $domainSearchEntries;
|
||||||
$this->addMultiValueInputTextField($return, 'INFO_domain-search', _('Search domains'));
|
$this->addMultiValueInputTextField($return, 'INFO_domain-search', _('Search domains'));
|
||||||
// gateway
|
// gateway
|
||||||
$return->addElement(new htmlTableExtendedInputField(_('Default gateway'), 'routers', $this->getDHCPOption('routers'), 'gateway'), true);
|
$return->add(new htmlResponsiveInputField(_('Default gateway'), 'routers', $this->getDHCPOption('routers'), 'gateway'), 12);
|
||||||
// netbios name servers
|
// netbios name servers
|
||||||
$return->addElement(new htmlTableExtendedInputField(_('Netbios name servers'), 'netbios', $this->getDHCPOption('netbios-name-servers'), 'netbios'), true);
|
$return->add(new htmlResponsiveInputField(_('Netbios name servers'), 'netbios', $this->getDHCPOption('netbios-name-servers'), 'netbios'), 12);
|
||||||
// netbios node type
|
// netbios node type
|
||||||
$nodeType = $this->getDHCPOption('netbios-node-type');
|
$nodeType = $this->getDHCPOption('netbios-node-type');
|
||||||
if ($nodeType == '') {
|
if ($nodeType == '') {
|
||||||
|
@ -618,9 +617,9 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I
|
||||||
foreach ($this->all_netbios_node_types as $key => $value) {
|
foreach ($this->all_netbios_node_types as $key => $value) {
|
||||||
$nodeOptions[$value] = $key;
|
$nodeOptions[$value] = $key;
|
||||||
}
|
}
|
||||||
$nodeSelect = new htmlTableExtendedSelect('netbios_node_type', $nodeOptions, array($nodeType), _('Netbios node type'), 'netbios_type');
|
$nodeSelect = new htmlResponsiveSelect('netbios_node_type', $nodeOptions, array($nodeType), _('Netbios node type'), 'netbios_type');
|
||||||
$nodeSelect->setHasDescriptiveElements(true);
|
$nodeSelect->setHasDescriptiveElements(true);
|
||||||
$return->addElement($nodeSelect, true);
|
$return->add($nodeSelect, 12);
|
||||||
|
|
||||||
if (!$this->isRootNode()) {
|
if (!$this->isRootNode()) {
|
||||||
// unknown clients
|
// unknown clients
|
||||||
|
@ -629,17 +628,13 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I
|
||||||
$unknownClients = '-';
|
$unknownClients = '-';
|
||||||
}
|
}
|
||||||
$unknownClientsOptions = array_flip($this->allowDenyOptions);
|
$unknownClientsOptions = array_flip($this->allowDenyOptions);
|
||||||
$unknownClientsSelect = new htmlTableExtendedSelect('unknownClients', $unknownClientsOptions, array($unknownClients), _('Unknown clients'), 'unknownClients');
|
$unknownClientsSelect = new htmlResponsiveSelect('unknownClients', $unknownClientsOptions, array($unknownClients), _('Unknown clients'), 'unknownClients');
|
||||||
$unknownClientsSelect->setHasDescriptiveElements(true);
|
$unknownClientsSelect->setHasDescriptiveElements(true);
|
||||||
$return->addElement($unknownClientsSelect, true);
|
$return->add($unknownClientsSelect, 12);
|
||||||
// subnetmask
|
// subnetmask
|
||||||
$subnetMaskInput = new htmlTableExtendedInputField(_('Subnet mask'), 'subnet', $this->getDHCPOption('subnet-mask'), 'subnetmask');
|
$subnetMaskInput = new htmlResponsiveInputField(_('Subnet mask'), 'subnet', $this->getDHCPOption('subnet-mask'), 'subnetmask');
|
||||||
$subnetMaskInput->setRequired(true);
|
$subnetMaskInput->setRequired(true);
|
||||||
$return->addElement($subnetMaskInput, true);
|
$return->add($subnetMaskInput, 12);
|
||||||
// netmask
|
|
||||||
$return->addElement(new htmlOutputText(_('Net mask')));
|
|
||||||
$return->addElement(new htmlOutputText($this->attributes['dhcpNetMask'][0]));
|
|
||||||
$return->addElement(new htmlHelpLink('netmask'), true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// description
|
// description
|
||||||
|
@ -647,7 +642,12 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I
|
||||||
if (isset($this->attributes['dhcpComments'][0])) {
|
if (isset($this->attributes['dhcpComments'][0])) {
|
||||||
$description = $this->attributes['dhcpComments'][0];
|
$description = $this->attributes['dhcpComments'][0];
|
||||||
}
|
}
|
||||||
$return->addElement(new htmlTableExtendedInputField(_('Description'), 'description', $description, 'description'), true);
|
$return->add(new htmlResponsiveInputField(_('Description'), 'description', $description, 'description'), 12);
|
||||||
|
if (!$this->isRootNode()) {
|
||||||
|
// netmask
|
||||||
|
$return->addLabel(new htmlOutputText(_('Net mask')));
|
||||||
|
$return->addField(new htmlOutputText($this->attributes['dhcpNetMask'][0]));
|
||||||
|
}
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
/*
|
/*
|
||||||
|
|
||||||
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
||||||
Copyright (C) 2009 - 2018 Roland Gruber
|
Copyright (C) 2009 - 2019 Roland Gruber
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -270,7 +270,7 @@ class eduPerson extends baseModule {
|
||||||
* @return htmlElement HTML meta data
|
* @return htmlElement HTML meta data
|
||||||
*/
|
*/
|
||||||
function display_html_attributes() {
|
function display_html_attributes() {
|
||||||
$return = new htmlTable();
|
$return = new htmlResponsiveRow();
|
||||||
if (in_array('eduPerson', $this->attributes['objectClass'])) {
|
if (in_array('eduPerson', $this->attributes['objectClass'])) {
|
||||||
// principal name
|
// principal name
|
||||||
$this->addSimpleInputTextField($return, 'eduPersonPrincipalName', _('Principal name'));
|
$this->addSimpleInputTextField($return, 'eduPersonPrincipalName', _('Principal name'));
|
||||||
|
@ -279,18 +279,18 @@ class eduPerson extends baseModule {
|
||||||
if (isset($this->attributes['eduPersonPrimaryAffiliation'][0])) {
|
if (isset($this->attributes['eduPersonPrimaryAffiliation'][0])) {
|
||||||
$primaryAffiliation = array($this->attributes['eduPersonPrimaryAffiliation'][0]);
|
$primaryAffiliation = array($this->attributes['eduPersonPrimaryAffiliation'][0]);
|
||||||
}
|
}
|
||||||
$return->addElement(new htmlTableExtendedSelect('primaryAffiliation', $this->affiliationTypes, $primaryAffiliation, _('Primary affiliation'), 'primaryAffiliation'), true);
|
$return->add(new htmlResponsiveSelect('primaryAffiliation', $this->affiliationTypes, $primaryAffiliation, _('Primary affiliation'), 'primaryAffiliation'), 12);
|
||||||
// scoped affiliations
|
// scoped affiliations
|
||||||
$scopedAffiliationLabel = new htmlOutputText(_('Scoped affiliations'));
|
$scopedAffiliationLabel = new htmlOutputText(_('Scoped affiliations'));
|
||||||
$scopedAffiliationLabel->alignment = htmlElement::ALIGN_TOP;
|
$scopedAffiliationLabel->alignment = htmlElement::ALIGN_TOP;
|
||||||
$return->addElement($scopedAffiliationLabel);
|
$return->addLabel($scopedAffiliationLabel);
|
||||||
$scopedAffiliations = new htmlTable();
|
$scopedAffiliations = new htmlTable();
|
||||||
if (isset($this->attributes['eduPersonScopedAffiliation'][0])) {
|
if (isset($this->attributes['eduPersonScopedAffiliation'][0])) {
|
||||||
for ($i = 0; $i < sizeof($this->attributes['eduPersonScopedAffiliation']); $i++) {
|
for ($i = 0; $i < sizeof($this->attributes['eduPersonScopedAffiliation']); $i++) {
|
||||||
$parts = explode('@', $this->attributes['eduPersonScopedAffiliation'][$i]);
|
$parts = explode('@', $this->attributes['eduPersonScopedAffiliation'][$i]);
|
||||||
$scopedAffiliationPrefix = array($parts[0]);
|
$scopedAffiliationPrefix = array($parts[0]);
|
||||||
$scopedAffiliation = substr($this->attributes['eduPersonScopedAffiliation'][$i], strlen($parts[0]) + 1);
|
$scopedAffiliation = substr($this->attributes['eduPersonScopedAffiliation'][$i], strlen($parts[0]) + 1);
|
||||||
$scopedAffiliationContainer = new htmlGroup();
|
$scopedAffiliationContainer = new htmlTable();
|
||||||
$scopedAffiliationContainer->addElement(new htmlSelect('scopedAffiliationPrefix' . $i, $this->affiliationTypes, $scopedAffiliationPrefix));
|
$scopedAffiliationContainer->addElement(new htmlSelect('scopedAffiliationPrefix' . $i, $this->affiliationTypes, $scopedAffiliationPrefix));
|
||||||
$scopedAffiliationContainer->addElement(new htmlOutputText('@'));
|
$scopedAffiliationContainer->addElement(new htmlOutputText('@'));
|
||||||
$scopedAffiliationContainer->addElement(new htmlInputField('scopedAffiliation' . $i, $scopedAffiliation));
|
$scopedAffiliationContainer->addElement(new htmlInputField('scopedAffiliation' . $i, $scopedAffiliation));
|
||||||
|
@ -305,38 +305,35 @@ class eduPerson extends baseModule {
|
||||||
$scopedAffiliationContainer = new htmlGroup();
|
$scopedAffiliationContainer = new htmlGroup();
|
||||||
$scopedAffiliationContainer->addElement(new htmlOutputText('-'));
|
$scopedAffiliationContainer->addElement(new htmlOutputText('-'));
|
||||||
$scopedAffiliationContainer->addElement(new htmlSpacer('10px', null));
|
$scopedAffiliationContainer->addElement(new htmlSpacer('10px', null));
|
||||||
$scopedAffiliationContainer->addElement(new htmlButton('addeduPersonScopedAffiliation', 'add.png', true));
|
$scopedAffiliationContainer->addElement(new htmlButton('addeduPersonScopedAffiliation', 'add.png'));
|
||||||
|
$scopedAffiliationContainer->addElement(new htmlHelpLink('scopedAffiliation'), true);
|
||||||
$scopedAffiliations->addElement($scopedAffiliationContainer);
|
$scopedAffiliations->addElement($scopedAffiliationContainer);
|
||||||
}
|
}
|
||||||
$return->addElement($scopedAffiliations);
|
$return->addField($scopedAffiliations);
|
||||||
$scopedAffiliationHelp = new htmlHelpLink('scopedAffiliation');
|
|
||||||
$scopedAffiliationHelp->alignment = htmlElement::ALIGN_TOP;
|
|
||||||
$return->addElement($scopedAffiliationHelp, true);
|
|
||||||
// affiliations
|
// affiliations
|
||||||
$affiliations = new htmlTable();
|
$affiliations = new htmlTable();
|
||||||
if (isset($this->attributes['eduPersonAffiliation'][0])) {
|
if (isset($this->attributes['eduPersonAffiliation'][0])) {
|
||||||
for ($i = 0; $i < sizeof($this->attributes['eduPersonAffiliation']); $i++) {
|
for ($i = 0; $i < sizeof($this->attributes['eduPersonAffiliation']); $i++) {
|
||||||
$affiliations->addElement(new htmlSelect('affiliation' . $i, $this->affiliationTypes, array($this->attributes['eduPersonAffiliation'][$i])));
|
$affiliations->addElement(new htmlSelect('affiliation' . $i, $this->affiliationTypes, array($this->attributes['eduPersonAffiliation'][$i])));
|
||||||
$affiliationButton = new htmlButton('delAffiliation' . $i, 'del.png', true);
|
$affiliationButton = new htmlButton('delAffiliation' . $i, 'del.png', true);
|
||||||
$affiliations->addElement($affiliationButton, true);
|
$affiliations->addElement($affiliationButton);
|
||||||
|
if ($i === 0) {
|
||||||
|
$affiliations->addElement(new htmlHelpLink('affiliation'));
|
||||||
|
}
|
||||||
|
$affiliations->addNewLine();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$affiliations->addElement(new htmlOutputText('-'), true);
|
$affiliations->addElement(new htmlOutputText('-'));
|
||||||
|
$affiliations->addElement(new htmlHelpLink('affiliation'), true);
|
||||||
}
|
}
|
||||||
|
$affiliations->addElement(new htmlSelect('affiliation', $this->affiliationTypes));
|
||||||
|
$affiliations->addElement(new htmlButton('newAffiliation', 'add.png', true));
|
||||||
$affiliationLabel = new htmlOutputText(_('Affiliations'));
|
$affiliationLabel = new htmlOutputText(_('Affiliations'));
|
||||||
$affiliationLabel->alignment = htmlElement::ALIGN_TOP;
|
$affiliationLabel->alignment = htmlElement::ALIGN_TOP;
|
||||||
$return->addElement($affiliationLabel);
|
$return->addLabel($affiliationLabel);
|
||||||
$return->addElement($affiliations);
|
$return->addField($affiliations);
|
||||||
$affiliationHelp = new htmlHelpLink('affiliation');
|
$return->addVerticalSpacer('0.5rem');
|
||||||
$affiliationHelp->alignment = htmlElement::ALIGN_TOP;
|
|
||||||
$return->addElement($affiliationHelp, true);
|
|
||||||
$return->addElement(new htmlOutputText(''));
|
|
||||||
$newAffiliationContainer = new htmlTable();
|
|
||||||
$newAffiliationContainer->addElement(new htmlSelect('affiliation', $this->affiliationTypes));
|
|
||||||
$newAffiliationContainer->addElement(new htmlButton('newAffiliation', 'add.png', true));
|
|
||||||
$return->addElement($newAffiliationContainer);
|
|
||||||
$return->addElement(new htmlOutputText(''), true);
|
|
||||||
// nick names
|
// nick names
|
||||||
$this->addMultiValueInputTextField($return, 'eduPersonNickname', _('Nick names'));
|
$this->addMultiValueInputTextField($return, 'eduPersonNickname', _('Nick names'));
|
||||||
// entitlements
|
// entitlements
|
||||||
|
@ -350,13 +347,12 @@ class eduPerson extends baseModule {
|
||||||
// assurance profiles
|
// assurance profiles
|
||||||
$this->addMultiValueInputTextField($return, 'eduPersonAssurance', _('Assurance profiles'));
|
$this->addMultiValueInputTextField($return, 'eduPersonAssurance', _('Assurance profiles'));
|
||||||
// remove button
|
// remove button
|
||||||
$return->addElement(new htmlSpacer(null, '10px'), true);
|
$return->addVerticalSpacer('2rem');
|
||||||
$addButton = new htmlButton('remObjectClass', _('Remove EDU person extension'));
|
$addButton = new htmlButton('remObjectClass', _('Remove EDU person extension'));
|
||||||
$addButton->colspan = 3;
|
$return->add($addButton, 12, 12, 12, 'text-center');
|
||||||
$return->addElement($addButton);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$return->addElement(new htmlButton('addObjectClass', _('Add EDU person extension')));
|
$return->add(new htmlButton('addObjectClass', _('Add EDU person extension')), 12);
|
||||||
}
|
}
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,11 +3,10 @@ use \LAM\PDF\PDFTable;
|
||||||
use \LAM\PDF\PDFTableCell;
|
use \LAM\PDF\PDFTableCell;
|
||||||
use \LAM\PDF\PDFTableRow;
|
use \LAM\PDF\PDFTableRow;
|
||||||
/*
|
/*
|
||||||
$Id$
|
|
||||||
|
|
||||||
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
||||||
Copyright (C) 2008 Thomas Manninger
|
Copyright (C) 2008 Thomas Manninger
|
||||||
2008 - 2018 Roland Gruber
|
2008 - 2019 Roland Gruber
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@ -449,27 +448,29 @@ class fixed_ip extends baseModule {
|
||||||
$this->fixed_ip = array();
|
$this->fixed_ip = array();
|
||||||
}
|
}
|
||||||
$pcs = array();
|
$pcs = array();
|
||||||
|
$messages = array();
|
||||||
foreach($this->fixed_ip AS $id => $arr) {
|
foreach($this->fixed_ip AS $id => $arr) {
|
||||||
// pc name
|
// pc name
|
||||||
$pcError = "";
|
$existsInDifferentDn = false;
|
||||||
$existsInDifferentDn = !empty($_POST['pc_' . $id]) && $this->hostNameExists($_POST['pc_' . $id]);
|
if (!empty($_POST['pc_' . $id])) {
|
||||||
if (!$this->processed) {
|
$existsInDifferentDn = $this->hostNameExists($_POST['pc_' . $id]);
|
||||||
$pcError = "";
|
|
||||||
}
|
}
|
||||||
elseif (strlen($this->fixed_ip[$id]['cn'])>20) {
|
if ($this->processed) {
|
||||||
$pcError = _("The PC name may not be longer than 20 characters.");
|
if (strlen($this->fixed_ip[$id]['cn']) > 20) {
|
||||||
|
$messages[] = new htmlStatusMessage('ERROR', _("The PC name may not be longer than 20 characters."), htmlspecialchars($this->fixed_ip[$id]['cn']));
|
||||||
}
|
}
|
||||||
elseif (strlen($this->fixed_ip[$id]['cn'])<2) {
|
elseif (strlen($this->fixed_ip[$id]['cn']) < 2) {
|
||||||
$pcError = _("The PC name needs to be at least 2 characters long.");
|
$messages[] = new htmlStatusMessage('ERROR', _("The PC name needs to be at least 2 characters long."), htmlspecialchars($this->fixed_ip[$id]['cn']));
|
||||||
}
|
}
|
||||||
elseif (in_array($this->fixed_ip[$id]['cn'], $pcs) ) {
|
elseif (in_array($this->fixed_ip[$id]['cn'], $pcs) ) {
|
||||||
$pcError = _("This PC name already exists.");
|
$messages[] = new htmlStatusMessage('ERROR', _("This PC name already exists."), htmlspecialchars($this->fixed_ip[$id]['cn']));
|
||||||
}
|
}
|
||||||
elseif (isset($_POST['pc_'.$id]) && !preg_match("/^[A-Za-z0-9\\._-]*$/", $_POST['pc_'.$id])) {
|
elseif (isset($_POST['pc_' . $id]) && !preg_match("/^[A-Za-z0-9\\._-]*$/", $_POST['pc_' . $id])) {
|
||||||
$pcError = _("The PC name may only contain A-Z, a-z and 0-9.");
|
$messages[] = new htmlStatusMessage('ERROR', _("The PC name may only contain A-Z, a-z and 0-9."), htmlspecialchars($_POST['pc_' . $id]));
|
||||||
}
|
}
|
||||||
elseif ($existsInDifferentDn !== false) {
|
elseif ($existsInDifferentDn !== false) {
|
||||||
$pcError = sprintf(_('This PC name already exists in %s. Use e.g. %s.'), $existsInDifferentDn[0], $existsInDifferentDn[1]);
|
$messages[] = new htmlStatusMessage('ERROR', sprintf(_('This PC name already exists in %s. Use e.g. %s.'), $existsInDifferentDn[0], $existsInDifferentDn[1]));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$pcs[] = $this->fixed_ip[$id]['cn'];
|
$pcs[] = $this->fixed_ip[$id]['cn'];
|
||||||
|
|
||||||
|
@ -508,9 +509,6 @@ class fixed_ip extends baseModule {
|
||||||
$ipError = _("The IP address is already in use.");
|
$ipError = _("The IP address is already in use.");
|
||||||
}
|
}
|
||||||
$error = '';
|
$error = '';
|
||||||
if ($pcError != '') {
|
|
||||||
$error .= ' ' . $pcError;
|
|
||||||
}
|
|
||||||
if ($macError != '') {
|
if ($macError != '') {
|
||||||
$error .= ' ' . $macError;
|
$error .= ' ' . $macError;
|
||||||
}
|
}
|
||||||
|
@ -545,6 +543,10 @@ class fixed_ip extends baseModule {
|
||||||
$return->addElement(new htmlInputCheckbox('active_add', true));
|
$return->addElement(new htmlInputCheckbox('active_add', true));
|
||||||
$return->addElement(new htmlButton('add_ip', 'add.png', true), true);
|
$return->addElement(new htmlButton('add_ip', 'add.png', true), true);
|
||||||
|
|
||||||
|
foreach ($messages as $message) {
|
||||||
|
$return->addElement($message, true);
|
||||||
|
}
|
||||||
|
|
||||||
// add existing host entry
|
// add existing host entry
|
||||||
if (!empty($this->hostCache)) {
|
if (!empty($this->hostCache)) {
|
||||||
$return->addVerticalSpace('20px');
|
$return->addVerticalSpace('20px');
|
||||||
|
|
Loading…
Reference in New Issue