responsive delete page
This commit is contained in:
		
							parent
							
								
									fe913bd5bf
								
							
						
					
					
						commit
						691ccbc477
					
				
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 730 B | 
|  | @ -1203,7 +1203,7 @@ abstract class baseModule { | |||
| 	* @see htmlElement | ||||
| 	*/ | ||||
| 	public function display_html_delete() { | ||||
| 		return 0; | ||||
| 		return null; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
|  |  | |||
|  | @ -3000,13 +3000,40 @@ class htmlStatusMessage extends htmlElement { | |||
| 	 * @param String $text message (optional) | ||||
| 	 * @param array $params additional message parameters | ||||
| 	 */ | ||||
| 	function __construct($type, $title, $text = null, $params = null) { | ||||
| 	public function __construct($type, $title, $text = null, $params = null) { | ||||
| 		$this->type = $type; | ||||
| 		$this->title = $title; | ||||
| 		$this->text = $text; | ||||
| 		$this->params = $params; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Constructor with parameter array. | ||||
| 	 * | ||||
| 	 * @param array $params parameters in same order as normal constructor | ||||
| 	 * @return htmlStatusMessage | ||||
| 	 */ | ||||
| 	public static function fromParamArray($params) { | ||||
| 		if (sizeof($params) < 2) { | ||||
| 			throw new BadMethodCallException("Invalid parameter count"); | ||||
| 		} | ||||
| 
 | ||||
| 		$count = count($params); | ||||
| 		switch ($count) { | ||||
| 			case 2: | ||||
| 				return new htmlStatusMessage($params[0], $params[1]); | ||||
| 				break; | ||||
| 			case 3: | ||||
| 				return new htmlStatusMessage($params[0], $params[1], $params[2]); | ||||
| 				break; | ||||
| 			case 4: | ||||
| 				return new htmlStatusMessage($params[0], $params[1], $params[2], $params[3]); | ||||
| 				break; | ||||
| 			default: | ||||
| 				throw new BadMethodCallException("Invalid parameter count"); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	 * Prints the HTML code for this element. | ||||
| 	 * | ||||
|  | @ -3018,7 +3045,7 @@ class htmlStatusMessage extends htmlElement { | |||
| 	 * @param string $scope Account type | ||||
| 	 * @return array List of input field names and their type (name => type) | ||||
| 	 */ | ||||
| 	function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { | ||||
| 	public function generateHTML($module, $input, $values, $restricted, &$tabindex, $scope) { | ||||
| 		StatusMessage($this->type, $this->title, $this->text, $this->params); | ||||
| 		return array(); | ||||
| 	} | ||||
|  |  | |||
|  | @ -1752,18 +1752,14 @@ class posixAccount extends baseModule implements passwordService { | |||
| 	* @return htmlElement meta HTML code | ||||
| 	*/ | ||||
| 	function display_html_delete() { | ||||
| 		$return = null; | ||||
| 		$return = new htmlResponsiveRow(); | ||||
| 		if ($this->get_scope() == 'user' && ($_SESSION['config']->get_scriptPath() != null)) { | ||||
| 			$return = new htmlTable(); | ||||
| 			$return->addElement(new htmlTableExtendedInputCheckbox('deletehomedir', true, _('Delete home directory'), 'deletehomedir'), true); | ||||
| 			$return->add(new htmlResponsiveInputCheckbox('deletehomedir', true, _('Delete home directory'), 'deletehomedir'), 12); | ||||
| 		} | ||||
| 		$typeManager = new TypeManager(); | ||||
| 		$sudoTypes = $typeManager->getConfiguredTypesForScope('sudo'); | ||||
| 		if (($this->get_scope() == 'user') && !empty($sudoTypes)) { | ||||
| 			if ($return == null) { | ||||
| 				$return = new htmlTable(); | ||||
| 			} | ||||
| 			$return->addElement(new htmlTableExtendedInputCheckbox('deleteSudoers', true, _('Delete sudo rights'), 'deleteSudoers'), true); | ||||
| 			$return->add(new htmlResponsiveInputCheckbox('deleteSudoers', true, _('Delete sudo rights'), 'deleteSudoers'), 12); | ||||
| 		} | ||||
| 		return $return; | ||||
| 	} | ||||
|  |  | |||
|  | @ -272,7 +272,7 @@ table.collapse { | |||
| } | ||||
| 
 | ||||
| .cancelButton { | ||||
| 	background-image: url(../graphics/del.png) !important; | ||||
| 	background-image: url(../graphics/cancel.png) !important; | ||||
| 	background-position: 0px 0px !important; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,11 +1,17 @@ | |||
| <?php | ||||
| namespace LAM\DELETE; | ||||
| use \htmlGroup; | ||||
| use \htmlResponsiveRow; | ||||
| use \htmlButton; | ||||
| use \htmlSpacer; | ||||
| use \htmlHiddenInput; | ||||
| use \htmlOutputText; | ||||
| use \htmlStatusMessage; | ||||
| /* | ||||
| 	$Id$ | ||||
| 
 | ||||
| 	This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) | ||||
| 	Copyright (C) 2003 - 2006  Tilo Lutz | ||||
| 	Copyright (C) 2007 - 2017  Roland Gruber | ||||
| 	Copyright (C) 2007 - 2018  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 | ||||
|  | @ -96,55 +102,56 @@ if (isset($_GET['type']) && isset($_SESSION['delete_dn'])) { | |||
| 	//load account
 | ||||
| 	$_SESSION['account'] = new \accountContainer($type, 'account'); | ||||
| 	// Show HTML Page
 | ||||
| 	include 'main_header.php'; | ||||
| 	include '../lib/adminHeader.inc'; | ||||
| 	echo "<div class=\"" . $type->getScope() . "-bright smallPaddingContent\">"; | ||||
| 	echo "<br>\n"; | ||||
| 	echo "<form action=\"delete.php\" method=\"post\">\n"; | ||||
| 	echo '<input type="hidden" name="' . getSecurityTokenName() . '" value="' . getSecurityTokenValue() . '">'; | ||||
| 	echo "<input name=\"type\" type=\"hidden\" value=\"" . $type->getId() . "\">\n"; | ||||
| 	echo "<b>" . _("Do you really want to remove the following accounts?") . "</b>"; | ||||
| 	echo "<br><br>\n"; | ||||
| 	echo "<table border=0>\n"; | ||||
| 	$tabindex = 1; | ||||
| 	$container = new htmlResponsiveRow(); | ||||
| 	$container->add(new htmlOutputText(_("Do you really want to remove the following accounts?")), 12); | ||||
| 	$container->addVerticalSpacer('2rem'); | ||||
| 	$userCount = sizeof($users); | ||||
| 	for ($i = 0; $i < $userCount; $i++) { | ||||
| 		echo "<tr>\n"; | ||||
| 		echo "<td><b>" . _("Account name:") . "</b> " . htmlspecialchars($users[$i]) . "</td>\n"; | ||||
| 		echo "<td>  <b>" . _('DN') . ":</b> " . htmlspecialchars($_SESSION['delete_dn'][$i]) . "</td>\n"; | ||||
| 		$container->addLabel(new htmlOutputText(_("Account name:"))); | ||||
| 		$container->addField(new htmlOutputText($users[$i])); | ||||
| 		$container->addLabel(new htmlOutputText(_('DN') . ':')); | ||||
| 		$container->addField(new htmlOutputText($_SESSION['delete_dn'][$i])); | ||||
| 		$_SESSION['account']->load_account($_SESSION['delete_dn'][$i]); | ||||
| 		if (!$_SESSION['account']->hasOnlyVirtualChildren()) { | ||||
| 			$childCount = getChildCount($_SESSION['delete_dn'][$i]); | ||||
| 			if ($childCount > 0) { | ||||
| 				echo "<td>  <b>" . _('Number of child entries') . ":</b> " . $childCount . "</td>\n"; | ||||
| 				$container->addLabel(new htmlOutputText(_('Number of child entries') . ':')); | ||||
| 				$container->addField(new htmlOutputText($childCount)); | ||||
| 			} | ||||
| 		} | ||||
| 		echo "</tr>\n"; | ||||
| 	} | ||||
| 	echo "</table>\n"; | ||||
| 	echo "<br>\n"; | ||||
| 	addSecurityTokenToMetaHTML($container); | ||||
| 	$container->add(new htmlHiddenInput('type', $type->getId()), 12); | ||||
| 	$container->addVerticalSpacer('1rem'); | ||||
| 	parseHtml(null, $container, array(), false, $tabindex, $type->getScope()); | ||||
| 	// Print delete rows from modules
 | ||||
| 	echo "<table border=0 width=\"100%\">\n<tr><td valign=\"top\" width=\"15%\" >"; | ||||
| 	$modules = $_SESSION['config']->get_AccountModules($type->getId()); | ||||
| 	$values = array(); | ||||
| 	$tabindex = 100; | ||||
| 	foreach ($modules as $module) { | ||||
| 		$module = \moduleCache::getModule($module, $type->getScope()); | ||||
| 		parseHtml(get_class($module), $module->display_html_delete(), $values, true, $tabindex, $type->getScope()); | ||||
| 	} | ||||
| 	echo "</table>\n"; | ||||
| 	echo "<br>\n"; | ||||
| 	echo "<button class=\"smallPadding\" name=\"delete\" id=\"submitButton\">" . _('Delete') . "</button> \n"; | ||||
| 	echo "<button class=\"smallPadding\" name=\"cancel\" id=\"cancelButton\">" . _('Cancel') . "</button>\n"; | ||||
| 	$buttonContainer = new htmlResponsiveRow(); | ||||
| 	$buttonContainer->addVerticalSpacer('1rem'); | ||||
| 	$buttonGroup = new htmlGroup(); | ||||
| 	$delButton = new htmlButton('delete', _('Delete')); | ||||
| 	$delButton->setIconClass('deleteButton'); | ||||
| 	$buttonGroup->addElement($delButton); | ||||
| 	$buttonGroup->addElement(new htmlSpacer('0.5rem', null)); | ||||
| 	$cancelButton = new htmlButton('cancel', _('Cancel')); | ||||
| 	$cancelButton->setIconClass('cancelButton'); | ||||
| 	$buttonGroup->addElement($cancelButton); | ||||
| 	$buttonContainer->add($buttonGroup, 12); | ||||
| 	$buttonContainer->addVerticalSpacer('1rem'); | ||||
| 	parseHtml(null, $buttonContainer, array(), false, $tabindex, $type->getScope()); | ||||
| 	echo "</form>\n"; | ||||
| 	echo "</div>\n"; | ||||
| 	?>
 | ||||
| 	<script type="text/javascript"> | ||||
| 	jQuery(document).ready(function() { | ||||
| 		jQuery('#submitButton').button(); | ||||
| 		jQuery('#cancelButton').button(); | ||||
| 	}); | ||||
| 	</script> | ||||
| 	<?php | ||||
| 	include 'main_footer.php'; | ||||
| 	include '../lib/adminFooter.inc'; | ||||
| } | ||||
| 
 | ||||
| if (isset($_POST['cancel'])) { | ||||
|  | @ -153,7 +160,7 @@ if (isset($_POST['cancel'])) { | |||
| } | ||||
| elseif (isset($_POST['cancelAllOk'])) { | ||||
| 	if (isset($_SESSION['delete_dn'])) unset($_SESSION['delete_dn']); | ||||
| 	metaRefresh("lists/list.php?type=" . $_POST['type'] . '&deleteAllOk=1'); | ||||
| 	metaRefresh("lists/list.php?type=" . $_POST['type'] . '&deleteAllOk=1'); | ||||
| } | ||||
| 
 | ||||
| if (isset($_POST['delete'])) { | ||||
|  | @ -164,12 +171,12 @@ if (isset($_POST['delete'])) { | |||
| 		die(); | ||||
| 	} | ||||
| 	// Show HTML Page
 | ||||
| 	include 'main_header.php'; | ||||
| 	include '../lib/adminHeader.inc'; | ||||
| 	echo "<form action=\"delete.php\" method=\"post\">\n"; | ||||
| 	echo '<input type="hidden" name="' . getSecurityTokenName() . '" value="' . getSecurityTokenValue() . '">'; | ||||
| 	echo "<input name=\"type\" type=\"hidden\" value=\"" . $type->getId() . "\">\n"; | ||||
| 	echo "<div class=\"" . $type->getScope() . "-bright smallPaddingContent\"><br>\n"; | ||||
| 	echo "<br>\n"; | ||||
| 	$container = new htmlResponsiveRow(); | ||||
| 	addSecurityTokenToMetaHTML($container); | ||||
| 	$container->add(new htmlHiddenInput('type', $type->getId()), 12); | ||||
| 
 | ||||
| 	// Delete dns
 | ||||
| 	$allOk = true; | ||||
|  | @ -289,41 +296,39 @@ if (isset($_POST['delete'])) { | |||
| 			} | ||||
| 		} | ||||
| 		if (!$stopprocessing) { | ||||
| 			echo sprintf(_('Deleted DN: %s'), $deleteDN) . "<br>\n"; | ||||
| 			$container->add(new htmlOutputText(sprintf(_('Deleted DN: %s'), $deleteDN)), 12); | ||||
| 			foreach ($errors as $error) { | ||||
| 				call_user_func_array('StatusMessage', $error); | ||||
| 				$container->add(htmlStatusMessage::fromParamArray($error), 12); | ||||
| 			} | ||||
| 			echo "<br>\n"; | ||||
| 			flush(); | ||||
| 		} | ||||
| 		else { | ||||
| 			echo sprintf(_('Error while deleting DN: %s'), $deleteDN) . "<br>\n"; | ||||
| 			$container->add(new htmlOutputText(sprintf(_('Error while deleting DN: %s'), $deleteDN)), 12); | ||||
| 			foreach ($errors as $error) { | ||||
| 				call_user_func_array('StatusMessage', $error); | ||||
| 				$container->add(htmlStatusMessage::fromParamArray($error), 12); | ||||
| 			} | ||||
| 			echo "<br>\n"; | ||||
| 		} | ||||
| 		$allErrors = array_merge($allErrors, $errors); | ||||
| 	} | ||||
| 	echo "<br>\n"; | ||||
| 	echo "<br><button class=\"smallPadding\" name=\"cancel\" id=\"backButton\">" . _('Back to list') . "</button>\n"; | ||||
| 	echo "<br><button class=\"hidden\" name=\"cancelAllOk\" id=\"backButtonAllOk\"> </button>\n"; | ||||
| 	$container->addVerticalSpacer('2rem'); | ||||
| 	$buttonName = $allOk ? 'cancelAllOk' : 'cancel'; | ||||
| 	$container->add(new htmlButton($buttonName, _('Back to list')), 12); | ||||
| 	$container->addVerticalSpacer('1rem'); | ||||
| 	parseHtml(null, $container, array(), false, $tabindex, $type->getScope()); | ||||
| 	echo "</div>\n"; | ||||
| 	echo "</form>\n"; | ||||
| 	?>
 | ||||
| 	<script type="text/javascript"> | ||||
| 	jQuery(document).ready(function() { | ||||
| 		jQuery('#backButton').button(); | ||||
| 		<?php | ||||
| 		if ($allOk) { | ||||
| 			$_SESSION['listRedirectMessages'] = $allErrors; | ||||
| 			echo "jQuery('#backButtonAllOk').click();"; | ||||
| 			echo "jQuery('#btn_cancelAllOk').click();"; | ||||
| 		} | ||||
| 		?>
 | ||||
| 	}); | ||||
| 	</script> | ||||
| 	<?php | ||||
| 	include 'main_footer.php'; | ||||
| 	include '../lib/adminFooter.inc'; | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue