responsive layout
This commit is contained in:
		
							parent
							
								
									ce68219e6a
								
							
						
					
					
						commit
						ef5a689938
					
				|  | @ -347,6 +347,7 @@ table.collapse { | |||
| /** titles */ | ||||
| .titleText { | ||||
| 	color: black; | ||||
| 	text-align: left; | ||||
| } | ||||
| 
 | ||||
| /** subtitles */ | ||||
|  | @ -358,6 +359,7 @@ table.collapse { | |||
| .subTitleText { | ||||
| 	margin: 0px 0px 0px 10px; | ||||
| 	color: black; | ||||
| 	text-align: left; | ||||
| } | ||||
| 
 | ||||
| .hidden { | ||||
|  |  | |||
|  | @ -56,6 +56,7 @@ session_regenerate_id(true); | |||
| 
 | ||||
| setlanguage(); | ||||
| 
 | ||||
| $message = null; | ||||
| // get error message from confmain.php
 | ||||
| if (isset($_SESSION['conf_message'])) { | ||||
| 	$message = $_SESSION['conf_message']; | ||||
|  |  | |||
|  | @ -1,9 +1,23 @@ | |||
| <?php | ||||
| namespace LAM\CONFIG; | ||||
| use \LAMCfgMain; | ||||
| use \LAMConfig; | ||||
| use \htmlStatusMessage; | ||||
| use \htmlResponsiveRow; | ||||
| use \htmlTitle; | ||||
| use \htmlSubTitle; | ||||
| use \htmlResponsiveInputField; | ||||
| use \htmlResponsiveSelect; | ||||
| use \htmlButton; | ||||
| use \htmlOutputText; | ||||
| use \htmlHiddenInput; | ||||
| use \htmlDiv; | ||||
| use \htmlLink; | ||||
| /* | ||||
| $Id$ | ||||
| 
 | ||||
|   This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) | ||||
|   Copyright (C) 2003 - 2016  Roland Gruber | ||||
|   Copyright (C) 2003 - 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 | ||||
|  | @ -144,35 +158,10 @@ if (isset($_POST['action'])) { | |||
| 
 | ||||
| 
 | ||||
| echo $_SESSION['header']; | ||||
| 
 | ||||
| printHeaderContents(_("Profile management"), '../..'); | ||||
| ?>
 | ||||
| 
 | ||||
| 		<title> | ||||
| 			<?php | ||||
| 				echo _("Profile management"); | ||||
| 			?>
 | ||||
| 		</title> | ||||
| 	<?php | ||||
| 		// 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"; | ||||
| 		} | ||||
| 	?>
 | ||||
| 		<link rel="shortcut icon" type="image/x-icon" href="../../graphics/favicon.ico"> | ||||
| 		<link rel="icon" href="../../graphics/logo136.png"> | ||||
| 	</head> | ||||
| 	<body> | ||||
| 	<body class="admin"> | ||||
| 		<table border=0 width="100%" class="lamHeader ui-corner-all"> | ||||
| 			<tr> | ||||
| 				<td align="left" height="30"> | ||||
|  | @ -180,66 +169,44 @@ echo $_SESSION['header']; | |||
| 				</td> | ||||
| 			</tr> | ||||
| 		</table> | ||||
| 		<br> | ||||
| 
 | ||||
| <?php | ||||
| // 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"; | ||||
| } | ||||
| 
 | ||||
| // print messages
 | ||||
| if (isset($error) || isset($msg)) { | ||||
| 	if (isset($error)) { | ||||
| 		StatusMessage("ERROR", $error); | ||||
| 	} | ||||
| 	if (isset($msg)) { | ||||
| 		StatusMessage("INFO", $msg); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| // check if config.cfg is valid
 | ||||
| if (!isset($cfg->default)) { | ||||
| 	StatusMessage("ERROR", _("Please set up your master configuration file (config/config.cfg) first!"), ""); | ||||
| 	echo "</body>\n</html>\n"; | ||||
| 	die(); | ||||
| } | ||||
| printJsIncludes('../..'); | ||||
| 
 | ||||
| ?>
 | ||||
| 
 | ||||
| 		<br> | ||||
| 		<!-- form for adding/renaming/deleting profiles --> | ||||
| 		<form id="profileForm" name="profileForm" action="profmanage.php" method="post"> | ||||
| <?php | ||||
| $topicSpacer = new htmlSpacer(null, '20px'); | ||||
| 
 | ||||
| $tabindex = 1; | ||||
| $container = new htmlTable('100%'); | ||||
| 
 | ||||
| $container->addElement(new htmlTitle(_("Profile management")), true); | ||||
| $row = new htmlResponsiveRow(); | ||||
| 
 | ||||
| // print messages
 | ||||
| if (isset($error)) { | ||||
| 	$row->add(new htmlStatusMessage('ERROR', $error), 12); | ||||
| 	$row->addVerticalSpacer('1rem'); | ||||
| } | ||||
| if (isset($msg)) { | ||||
| 	$row->add(new htmlStatusMessage('INFO', $msg), 12); | ||||
| 	$row->addVerticalSpacer('1rem'); | ||||
| } | ||||
| 
 | ||||
| $box = new htmlResponsiveRow(); | ||||
| $box->add(new htmlTitle(_("Profile management")), 12); | ||||
| 
 | ||||
| // new profile
 | ||||
| $container->addElement(new htmlSubTitle(_("Add profile")), true); | ||||
| $newProfileInput = new htmlTableExtendedInputField(_("Profile name"), 'addprofile', null, '230'); | ||||
| $newProfileInput->setFieldSize(15); | ||||
| $container->addElement($newProfileInput, true); | ||||
| $profileNewPwd1 = new htmlTableExtendedInputField(_("Profile password"), 'addpassword'); | ||||
| $box->add(new htmlSubTitle(_("Add profile")), 12); | ||||
| $newProfileInput = new htmlResponsiveInputField(_("Profile name"), 'addprofile', null, '230'); | ||||
| $box->add($newProfileInput, 12); | ||||
| $profileNewPwd1 = new htmlResponsiveInputField(_("Profile password"), 'addpassword'); | ||||
| $profileNewPwd1->setIsPassword(true); | ||||
| $profileNewPwd1->setFieldSize(15); | ||||
| $container->addElement($profileNewPwd1, true); | ||||
| $profileNewPwd2 = new htmlTableExtendedInputField(_("Reenter password"), 'addpassword2'); | ||||
| $box->add($profileNewPwd1, 12); | ||||
| $profileNewPwd2 = new htmlResponsiveInputField(_("Reenter password"), 'addpassword2'); | ||||
| $profileNewPwd2->setIsPassword(true); | ||||
| $profileNewPwd2->setFieldSize(15); | ||||
| $profileNewPwd2->setSameValueFieldID('addpassword'); | ||||
| $container->addElement($profileNewPwd2, true); | ||||
| $box->add($profileNewPwd2, 12); | ||||
| $existing = array(); | ||||
| foreach ($files as $file) { | ||||
| 	$existing[$file] = $file . '.conf'; | ||||
|  | @ -252,86 +219,89 @@ $templates = array( | |||
| 	_('Built-in templates') => $builtIn, | ||||
| 	_('Existing server profiles') => $existing, | ||||
| ); | ||||
| $addTemplateSelect = new htmlTableExtendedSelect('addTemplate', $templates, array('unix.conf.sample'), _('Template'), '267'); | ||||
| $addTemplateSelect = new htmlResponsiveSelect('addTemplate', $templates, array('unix.conf.sample'), _('Template'), '267'); | ||||
| $addTemplateSelect->setContainsOptgroups(true); | ||||
| $addTemplateSelect->setHasDescriptiveElements(true); | ||||
| $container->addElement($addTemplateSelect, true); | ||||
| $box->add($addTemplateSelect, 12); | ||||
| $box->addVerticalSpacer('0.5rem'); | ||||
| $newProfileButton = new htmlButton('btnAddProfile', _('Add')); | ||||
| $newProfileButton->setOnClick("jQuery('#action').val('add');showConfirmationDialog('" . _("Add profile") . "', '" . | ||||
| 	_('Ok') . "', '" . _('Cancel') . "', 'passwordDialogDiv', 'profileForm', null); document.getElementById('passwd').focus();"); | ||||
| $container->addElement($newProfileButton, true); | ||||
| $container->addElement($topicSpacer, true); | ||||
| $box->addLabel($newProfileButton); | ||||
| $box->add(new htmlOutputText(''), 0, 6); | ||||
| 
 | ||||
| // rename profile
 | ||||
| $container->addElement(new htmlSubTitle(_("Rename profile")), true); | ||||
| $container->addElement(new htmlTableExtendedSelect('oldfilename', $files, array(), _('Profile name'), '231'), true); | ||||
| $oldProfileInput = new htmlTableExtendedInputField(_('New profile name'), 'renfilename'); | ||||
| $oldProfileInput->setFieldSize(15); | ||||
| $container->addElement($oldProfileInput, true); | ||||
| $box->add(new htmlSubTitle(_("Rename profile")), 12); | ||||
| $box->add(new htmlResponsiveSelect('oldfilename', $files, array(), _('Profile name'), '231'), 12); | ||||
| $oldProfileInput = new htmlResponsiveInputField(_('New profile name'), 'renfilename'); | ||||
| $box->add($oldProfileInput, 12); | ||||
| $box->addVerticalSpacer('0.5rem'); | ||||
| $renameProfileButton = new htmlButton('btnRenameProfile', _('Rename')); | ||||
| $renameProfileButton->setOnClick("jQuery('#action').val('rename');showConfirmationDialog('" . _("Rename profile") . "', '" . | ||||
| 	_('Ok') . "', '" . _('Cancel') . "', 'passwordDialogDiv', 'profileForm', null); document.getElementById('passwd').focus();"); | ||||
| $container->addElement($renameProfileButton, true); | ||||
| $container->addElement($topicSpacer, true); | ||||
| $box->addLabel($renameProfileButton); | ||||
| $box->add(new htmlOutputText(''), 0, 6); | ||||
| 
 | ||||
| // delete profile
 | ||||
| $container->addElement(new htmlSubTitle(_("Delete profile")), true); | ||||
| $container->addElement(new htmlTableExtendedSelect('delfilename', $files, array(), _('Profile name'), '232'), true); | ||||
| $box->add(new htmlSubTitle(_("Delete profile")), 12); | ||||
| $box->add(new htmlResponsiveSelect('delfilename', $files, array(), _('Profile name'), '232'), 12); | ||||
| $box->addVerticalSpacer('0.5rem'); | ||||
| $deleteProfileButton = new htmlButton('btnDeleteProfile', _('Delete')); | ||||
| $deleteProfileButton->setOnClick("jQuery('#action').val('delete');showConfirmationDialog('" . _("Delete profile") . "', '" . | ||||
| 	_('Ok') . "', '" . _('Cancel') . "', 'passwordDialogDiv', 'profileForm', null); document.getElementById('passwd').focus();"); | ||||
| $container->addElement($deleteProfileButton, true); | ||||
| $container->addElement($topicSpacer, true); | ||||
| $box->addLabel($deleteProfileButton); | ||||
| $box->add(new htmlOutputText(''), 0, 6); | ||||
| 
 | ||||
| // set password
 | ||||
| $container->addElement(new htmlSubTitle(_("Set profile password")), true); | ||||
| $container->addElement(new htmlTableExtendedSelect('setprofile', $files, array(), _('Profile name'), '233'), true); | ||||
| $profileSetPwd1 = new htmlTableExtendedInputField(_("Profile password"), 'setpassword'); | ||||
| $box->add(new htmlSubTitle(_("Set profile password")), 12); | ||||
| $box->add(new htmlResponsiveSelect('setprofile', $files, array(), _('Profile name'), '233'), 12); | ||||
| $profileSetPwd1 = new htmlResponsiveInputField(_("Profile password"), 'setpassword'); | ||||
| $profileSetPwd1->setIsPassword(true); | ||||
| $profileSetPwd1->setFieldSize(15); | ||||
| $container->addElement($profileSetPwd1, true); | ||||
| $profileSetPwd2 = new htmlTableExtendedInputField(_("Reenter password"), 'setpassword2'); | ||||
| $box->add($profileSetPwd1, 12); | ||||
| $profileSetPwd2 = new htmlResponsiveInputField(_("Reenter password"), 'setpassword2'); | ||||
| $profileSetPwd2->setIsPassword(true); | ||||
| $profileSetPwd2->setFieldSize(15); | ||||
| $profileSetPwd2->setSameValueFieldID('setpassword'); | ||||
| $container->addElement($profileSetPwd2, true); | ||||
| $box->add($profileSetPwd2, 12); | ||||
| $box->addVerticalSpacer('0.5rem'); | ||||
| $setPasswordProfileButton = new htmlButton('btnSetPasswordProfile', _('Set profile password')); | ||||
| $setPasswordProfileButton->setOnClick("jQuery('#action').val('setpass');showConfirmationDialog('" . _("Set profile password") . "', '" . | ||||
| 	_('Ok') . "', '" . _('Cancel') . "', 'passwordDialogDiv', 'profileForm', null); document.getElementById('passwd').focus();"); | ||||
| $container->addElement($setPasswordProfileButton, true); | ||||
| $container->addElement($topicSpacer, true); | ||||
| 		_('Ok') . "', '" . _('Cancel') . "', 'passwordDialogDiv', 'profileForm', null); document.getElementById('passwd').focus();"); | ||||
| $box->addLabel($setPasswordProfileButton, 12); | ||||
| $box->add(new htmlOutputText(''), 0, 6); | ||||
| 
 | ||||
| 
 | ||||
| // set default profile
 | ||||
| $conf = new LAMCfgMain(); | ||||
| $defaultprofile = $conf->default; | ||||
| $container->addElement(new htmlSubTitle(_("Change default profile")), true); | ||||
| $container->addElement(new htmlTableExtendedSelect('defaultfilename', $files, array($defaultprofile), _('Profile name'), '234'), true); | ||||
| $box->add(new htmlSubTitle(_("Change default profile")), 12); | ||||
| $box->add(new htmlResponsiveSelect('defaultfilename', $files, array($defaultprofile), _('Profile name'), '234'), 12); | ||||
| $box->addVerticalSpacer('0.5rem'); | ||||
| $defaultProfileButton = new htmlButton('btnDefaultProfile', _('Ok')); | ||||
| $defaultProfileButton->setOnClick("jQuery('#action').val('setdefault');showConfirmationDialog('" . _("Change default profile") . "', '" . | ||||
| 	_('Ok') . "', '" . _('Cancel') . "', 'passwordDialogDiv', 'profileForm', null); document.getElementById('passwd').focus();"); | ||||
| $container->addElement($defaultProfileButton, true); | ||||
| $container->addElement($topicSpacer, true); | ||||
| $box->addLabel($defaultProfileButton); | ||||
| $box->add(new htmlOutputText(''), 0, 6); | ||||
| 
 | ||||
| $container->addElement(new htmlHiddenInput('action', 'none'), true); | ||||
| $boxDiv = new htmlDiv(null, $box); | ||||
| $boxDiv->setCSSClasses(array('ui-corner-all', 'roundedShadowBox', 'limitWidth')); | ||||
| $row->add($boxDiv, 12); | ||||
| 
 | ||||
| $dialogDivContent = new htmlTable(); | ||||
| $dialogDivContent->addElement(new htmlOutputText(_("Master password"))); | ||||
| $masterPassword = new htmlInputField('passwd'); | ||||
| $row->add(new htmlHiddenInput('action', 'none'), 12); | ||||
| 
 | ||||
| // dialog
 | ||||
| $dialogDivContent = new htmlResponsiveRow(); | ||||
| $masterPassword = new htmlResponsiveInputField(_("Master password"), 'passwd', '', '236'); | ||||
| $masterPassword->setIsPassword(true); | ||||
| $dialogDivContent->addElement($masterPassword); | ||||
| $dialogDivContent->addElement(new htmlHelpLink('236')); | ||||
| $dialogDivContent->add($masterPassword, 12); | ||||
| $dialogDiv = new htmlDiv('passwordDialogDiv', $dialogDivContent); | ||||
| $dialogDiv->setCSSClasses(array('hidden')); | ||||
| $container->addElement($dialogDiv, true); | ||||
| $row->add($dialogDiv, 12); | ||||
| 
 | ||||
| $container->setCSSClasses(array('roundedShadowBox', 'ui-corner-all')); | ||||
| $row->addVerticalSpacer('2rem'); | ||||
| $backLink = new htmlLink(_("Back to profile login"), 'conflogin.php', '../../graphics/undo.png'); | ||||
| $row->add($backLink, 12, 12, 12, 'text-left'); | ||||
| 
 | ||||
| $mainContainer = new htmlGroup(); | ||||
| $mainContainer->addElement($container); | ||||
| $mainContainer->addElement(new htmlOutputText('<p><br></p>', false)); | ||||
| $mainContainer->addElement(new htmlLink(_("Back to profile login"), 'conflogin.php', '../../graphics/undo.png')); | ||||
| 
 | ||||
| parseHtml('', $mainContainer, array(), false, $tabindex, 'user'); | ||||
| parseHtml('', new htmlDiv(null, $row, array('centeredTable')), array(), false, $tabindex, 'user'); | ||||
| 
 | ||||
| ?>
 | ||||
| 		</form> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue