103 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
		
		
			
		
	
	
			103 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
|  | <?php | ||
|  | /** | ||
|  |  * Copies a given object to create a new one. | ||
|  |  * | ||
|  |  * @package phpLDAPadmin | ||
|  |  * @subpackage Page | ||
|  |  */ | ||
|  | 
 | ||
|  | /** | ||
|  |  */ | ||
|  | 
 | ||
|  | require './common.php'; | ||
|  | 
 | ||
|  | # The DN we are working with
 | ||
|  | $request = array(); | ||
|  | $request['dn'] = get_request('dn','GET'); | ||
|  | 
 | ||
|  | # Check if the entry exists.
 | ||
|  | if (! $request['dn'] || ! $app['server']->dnExists($request['dn'])) | ||
|  | 	error(sprintf(_('The entry (%s) does not exist.'),$request['dn']),'error','index.php'); | ||
|  | 
 | ||
|  | $request['page'] = new PageRender($app['server']->getIndex(),get_request('template','REQUEST',false,'none')); | ||
|  | $request['page']->setDN($request['dn']); | ||
|  | $request['page']->accept(); | ||
|  | 
 | ||
|  | # Render the form
 | ||
|  | $request['page']->drawTitle(sprintf('%s <b>%s</b>',_('Copy'),get_rdn($request['dn']))); | ||
|  | $request['page']->drawSubTitle(); | ||
|  | 
 | ||
|  | printf('<script type="text/javascript" src="%sdnChooserPopup.js"></script>',JSDIR); | ||
|  | echo '<div style="text-align: center;">'; | ||
|  | printf('%s <b>%s</b> %s:<br /><br />',_('Copy'),get_rdn($request['dn']),_('to a new object')); | ||
|  | echo '</div>'; | ||
|  | 
 | ||
|  | echo '<form action="cmd.php" method="post" id="copy_form">'; | ||
|  | echo '<div>'; | ||
|  | echo '<input type="hidden" name="cmd" value="copy" />'; | ||
|  | printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex()); | ||
|  | printf('<input type="hidden" name="server_id_src" value="%s" />',$app['server']->getIndex()); | ||
|  | printf('<input type="hidden" name="dn_src" value="%s" />',htmlspecialchars($request['dn'])); | ||
|  | echo '</div>'; | ||
|  | echo "\n"; | ||
|  | 
 | ||
|  | echo '<table border="0" style="border-spacing: 10px; margin-left: auto; margin-right: auto;">'; | ||
|  | 
 | ||
|  | echo '<tr>'; | ||
|  | printf('<td><acronym title="%s">%s</acronym>:</td>', | ||
|  | 	_('The full DN of the new entry to be created when copying the source entry'),_('Destination DN')); | ||
|  | echo '<td>'; | ||
|  | printf('<input type="text" name="dn_dst" size="45" value="%s" />',htmlspecialchars($request['dn'])); | ||
|  | draw_chooser_link('copy_form','dn_dst','true',get_rdn($request['dn'])); | ||
|  | echo '</td>'; | ||
|  | echo '</tr>'; | ||
|  | echo "\n"; | ||
|  | 
 | ||
|  | echo "\n"; | ||
|  | 
 | ||
|  | # We search all children, not only the visible children in the tree
 | ||
|  | $request['children'] = $app['server']->getContainerContents($request['dn']); | ||
|  | 
 | ||
|  | if (count($request['children']) > 0) { | ||
|  | 	echo '<tr>'; | ||
|  | 	printf('<td><label for="recursive">%s</label>:</td>',_('Recursive copy')); | ||
|  | 	echo '<td><input type="checkbox" id="recursive" name="recursive" onclick="copy_field_toggle(this)" />'; | ||
|  | 	printf('<small>(%s)</small></td>',_('Recursively copy all children of this object as well.')); | ||
|  | 	echo '</tr>'; | ||
|  | 	echo "\n"; | ||
|  | 
 | ||
|  | 	echo '<tr>'; | ||
|  | 	printf('<td><acronym title="%s">%s</acronym>:</td>', | ||
|  | 		_('When performing a recursive copy, only copy those entries which match this filter'),_('Filter')); | ||
|  | 	echo '<td><input type="text" name="filter" value="(objectClass=*)" size="45" disabled />'; | ||
|  | 	echo '</tr>'; | ||
|  | 	echo "\n"; | ||
|  | 
 | ||
|  | 	echo '<tr>'; | ||
|  | 	printf('<td>%s</td>',_('Delete after copy (move):')); | ||
|  | 	echo '<td><input type="checkbox" name="remove" value="yes" disabled />'; | ||
|  | 	printf('<small>(%s)</small)</td>',_('Make sure your filter (above) will select all child records.')); | ||
|  | 	echo '</tr>'; | ||
|  | 	echo "\n"; | ||
|  | 
 | ||
|  | } else { | ||
|  | 	printf('<tr><td>%s</td><td><input type="checkbox" name="remove" value="yes"/></td></tr>',_('Delete after copy (move):')); | ||
|  | } | ||
|  | echo "\n"; | ||
|  | 
 | ||
|  | printf('<tr><td colspan="2" style="text-align: center;"><input type="submit" value="%s" /></td></tr>',_('Copy ')); | ||
|  | echo "\n"; | ||
|  | 
 | ||
|  | echo '</table>'; | ||
|  | echo '</form>'; | ||
|  | 
 | ||
|  | if ($_SESSION[APPCONFIG]->getValue('appearance','show_hints')) | ||
|  | 	printf('<div style="text-align: center;"><small><img src="%s/light.png" alt="Light" /><span class="hint">%s</span></small></div>', | ||
|  | 		IMGDIR,_('Hint: Copying between different servers only works if there are no schema violations')); | ||
|  | 
 | ||
|  | 
 | ||
|  | # Draw the javascrpt to enable/disable the filter field if this may be a recursive copy
 | ||
|  | if (count($request['children']) > 0) | ||
|  | 	printf('<script type="text/javascript" src="%sform_field_toggle_enable.js"></script>',JSDIR); | ||
|  | ?>
 |