responsive tools
This commit is contained in:
		
							parent
							
								
									c30045b3ad
								
							
						
					
					
						commit
						35d580f217
					
				|  | @ -1,19 +1,18 @@ | |||
| <?php | ||||
| namespace LAM\TOOLS\PDF_EDITOR; | ||||
| use \htmlTable; | ||||
| use \htmlResponsiveRow; | ||||
| use \htmlResponsiveSelect; | ||||
| use \htmlResponsiveInputField; | ||||
| use \htmlTitle; | ||||
| use \htmlTableExtendedInputField; | ||||
| use \htmlSpacer; | ||||
| use \htmlTableExtendedSelect; | ||||
| use \htmlButton; | ||||
| use \htmlOutputText; | ||||
| use \htmlGroup; | ||||
| use \htmlSelect; | ||||
| use \htmlInputField; | ||||
| use \htmlSubTitle; | ||||
| use \htmlFieldset; | ||||
| use \htmlInputTextarea; | ||||
| use \htmlResponsiveInputTextarea; | ||||
| use \htmlHiddenInput; | ||||
| use \htmlSpacer; | ||||
| use LAM\PDF\PDFStructureReader; | ||||
| use LAM\PDF\PDFTextSection; | ||||
| use LAM\PDF\PDFEntrySection; | ||||
|  | @ -21,11 +20,9 @@ use LAM\PDF\PDFStructure; | |||
| use LAM\PDF\PDFSectionEntry; | ||||
| use LAM\PDF\PDFStructureWriter; | ||||
| /* | ||||
| $Id$ | ||||
| 
 | ||||
|   This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) | ||||
|   Copyright (C) 2003 - 2006  Michael Duergner | ||||
|                 2007 - 2017  Roland Gruber | ||||
|                 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 | ||||
|  | @ -42,7 +39,6 @@ $Id$ | |||
|   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | ||||
| 
 | ||||
|   Manages creating/changing of pdf structures. | ||||
| 
 | ||||
| */ | ||||
| 
 | ||||
| /** | ||||
|  | @ -184,7 +180,10 @@ foreach($sortedModules as $module => $title) { | |||
| $modules = join(',',$modules); | ||||
| 
 | ||||
| // print header
 | ||||
| include '../main_header.php'; | ||||
| include '../../lib/adminHeader.inc'; | ||||
| ?>
 | ||||
| 	<div class="user-bright smallPaddingContent"> | ||||
| <?php | ||||
| 
 | ||||
| // print error messages if any
 | ||||
| if (sizeof($saveErrors) > 0) { | ||||
|  | @ -233,31 +232,31 @@ if (isset($_SESSION['currentPDFStructure'])) { | |||
| $sectionElements = array(); | ||||
| $nonTextSectionElements = array(); | ||||
| 
 | ||||
| $container = new htmlTable(); | ||||
| $container->addElement(new htmlTitle(_('PDF editor')), true); | ||||
| $container = new htmlResponsiveRow(); | ||||
| $container->add(new htmlTitle(_('PDF editor')), 12); | ||||
| 
 | ||||
| // main content
 | ||||
| $mainContent = new htmlTable(); | ||||
| $structureNameInput = new htmlTableExtendedInputField(_("Structure name"), 'pdfname', $structureName, '360'); | ||||
| $mainContent = new htmlResponsiveRow(); | ||||
| $structureNameInput = new htmlResponsiveInputField(_("Structure name"), 'pdfname', $structureName, '360'); | ||||
| $structureNameInput->setRequired(true); | ||||
| $mainContent->addElement($structureNameInput, true); | ||||
| $mainContent->addElement(new htmlTableExtendedInputField(_('Headline'), 'headline', $headline), true); | ||||
| $logoSelect = new htmlTableExtendedSelect('logoFile', $logos, $selectedLogo, _('Logo')); | ||||
| $mainContent->add($structureNameInput, 12); | ||||
| $mainContent->add(new htmlResponsiveInputField(_('Headline'), 'headline', $headline), 12); | ||||
| $logoSelect = new htmlResponsiveSelect('logoFile', $logos, $selectedLogo, _('Logo')); | ||||
| $logoSelect->setHasDescriptiveElements(true); | ||||
| $mainContent->addElement($logoSelect, true); | ||||
| $mainContent->add($logoSelect, 12); | ||||
| $foldingMarks = 'no'; | ||||
| if (isset($_SESSION['currentPDFStructure'])) { | ||||
| 	$foldingMarks = $_SESSION['currentPDFStructure']->getFoldingMarks(); | ||||
| } | ||||
| $possibleFoldingMarks = array(_('No') => 'no', _('Yes') => 'standard'); | ||||
| $foldingMarksSelect = new htmlTableExtendedSelect('foldingmarks', $possibleFoldingMarks, array($foldingMarks), _('Folding marks')); | ||||
| $foldingMarksSelect = new htmlResponsiveSelect('foldingmarks', $possibleFoldingMarks, array($foldingMarks), _('Folding marks')); | ||||
| $foldingMarksSelect->setHasDescriptiveElements(true); | ||||
| $mainContent->addElement($foldingMarksSelect, true); | ||||
| $mainContent->addElement(new htmlSpacer(null, '30px'), true); | ||||
| $mainContent->add($foldingMarksSelect, 12); | ||||
| $mainContent->addVerticalSpacer('3rem'); | ||||
| // PDF structure
 | ||||
| $structure = $_SESSION['currentPDFStructure']; | ||||
| // print every entry in the current structure
 | ||||
| $structureContent = new htmlTable(); | ||||
| $structureContent = new htmlResponsiveRow(); | ||||
| $sections = $structure->getSections(); | ||||
| foreach ($sections as $key => $section) { | ||||
| 	// create the up/down/remove links
 | ||||
|  | @ -267,7 +266,7 @@ foreach ($sections as $key => $section) { | |||
| 	$linkDown->setTitle(_("Down")); | ||||
| 	$linkRemove = new htmlButton('remove_section_' . $key, 'delete.gif', true); | ||||
| 	$linkRemove->setTitle(_("Remove")); | ||||
| 	$emptyBox = new htmlOutputText(''); | ||||
| 	$emptyBox = new htmlSpacer('19px', null); | ||||
| 	// We have a new section to start
 | ||||
| 	if($section instanceof PDFEntrySection) { | ||||
| 		if($section->isAttributeTitle()) { | ||||
|  | @ -278,7 +277,7 @@ foreach ($sections as $key => $section) { | |||
| 		} | ||||
| 		$nonTextSectionElements[$section_headline] = $key; | ||||
| 		$sectionElements[$section_headline] = $key; | ||||
| 		$structureContent->addElement(new htmlSpacer(null, '15px'), true); | ||||
| 		$structureContent->addVerticalSpacer('2rem'); | ||||
| 		// Section headline is a value entry
 | ||||
| 		if($section->isAttributeTitle()) { | ||||
| 			$headlineElements = array(); | ||||
|  | @ -287,58 +286,56 @@ foreach ($sections as $key => $section) { | |||
| 			} | ||||
| 			$sectionHeadlineSelect = new htmlSelect('section_' . $key, $headlineElements, array('_' . $section->getPdfKey())); | ||||
| 			$sectionHeadlineSelect->setHasDescriptiveElements(true); | ||||
| 			$sectionHeadlineGroup = new htmlGroup(); | ||||
| 			$sectionHeadlineGroup->addElement($sectionHeadlineSelect); | ||||
| 			$sectionHeadlineGroup->colspan = 2; | ||||
| 			$structureContent->addElement($sectionHeadlineGroup); | ||||
| 			$structureContent->addLabel($sectionHeadlineSelect); | ||||
| 		} | ||||
| 		// Section headline is a user text
 | ||||
| 		else { | ||||
| 			$sectionHeadlineInput = new htmlInputField('section_' . $key, $section_headline); | ||||
| 			$sectionHeadlineGroup = new htmlGroup(); | ||||
| 			$sectionHeadlineGroup->addElement($sectionHeadlineInput); | ||||
| 			$sectionHeadlineGroup->colspan = 2; | ||||
| 			$structureContent->addElement($sectionHeadlineGroup); | ||||
| 			$structureContent->addLabel($sectionHeadlineInput); | ||||
| 		} | ||||
| 		$actionGroup = new htmlGroup(); | ||||
| 		if ($key != 0) { | ||||
| 			$structureContent->addElement($linkUp); | ||||
| 			$actionGroup->addElement($linkUp); | ||||
| 		} | ||||
| 		else { | ||||
| 			$structureContent->addElement($emptyBox); | ||||
| 			$actionGroup->addElement($emptyBox); | ||||
| 		} | ||||
| 		$hasAdditionalSections = $key < (sizeof($sections) - 1); | ||||
| 		if ($hasAdditionalSections) { | ||||
| 			$structureContent->addElement($linkDown); | ||||
| 			$actionGroup->addElement($linkDown); | ||||
| 		} | ||||
| 		else { | ||||
| 			$structureContent->addElement($emptyBox); | ||||
| 			$actionGroup->addElement($emptyBox); | ||||
| 		} | ||||
| 		$structureContent->addElement($linkRemove, true); | ||||
| 		$actionGroup->addElement($linkRemove); | ||||
| 		$structureContent->addField($actionGroup); | ||||
| 		// add section entries
 | ||||
| 		$sectionEntries = $section->getEntries(); | ||||
| 		foreach ($sectionEntries as $e => $sectionEntry) { | ||||
| 			$structureContent->addElement(new htmlSpacer('10px', null)); | ||||
| 			$structureContent->addVerticalSpacer('1rem'); | ||||
| 			$fieldOutput = new htmlOutputText(translateFieldIDToName($sectionEntry->getKey(), $type->getScope(), $availablePDFFields)); | ||||
| 			$structureContent->addElement($fieldOutput); | ||||
| 			$structureContent->addLabel($fieldOutput); | ||||
| 			$actionGroup = new htmlGroup(); | ||||
| 			if ($e != 0) { | ||||
| 				$entryLinkUp = new htmlButton('up_entry_' . $key . '_' . $e, 'up.gif', true); | ||||
| 				$entryLinkUp->setTitle(_("Up")); | ||||
| 				$structureContent->addElement($entryLinkUp); | ||||
| 				$actionGroup->addElement($entryLinkUp); | ||||
| 			} | ||||
| 			else { | ||||
| 				$structureContent->addElement($emptyBox); | ||||
| 				$actionGroup->addElement($emptyBox); | ||||
| 			} | ||||
| 			if ($e < (sizeof($sectionEntries) - 1)) { | ||||
| 				$linkDown = new htmlButton('down_entry_' . $key . '_' . $e, 'down.gif', true); | ||||
| 				$linkDown->setTitle(_("Down")); | ||||
| 				$structureContent->addElement($linkDown); | ||||
| 				$actionGroup->addElement($linkDown); | ||||
| 			} | ||||
| 			else { | ||||
| 				$structureContent->addElement($emptyBox); | ||||
| 				$actionGroup->addElement($emptyBox); | ||||
| 			} | ||||
| 			$entryLinkRemove = new htmlButton('remove_entry_' . $key . '_' . $e, 'delete.gif', true); | ||||
| 			$entryLinkRemove->setTitle(_("Remove")); | ||||
| 			$structureContent->addElement($entryLinkRemove, true); | ||||
| 			$actionGroup->addElement($entryLinkRemove, true); | ||||
| 			$structureContent->addField($actionGroup); | ||||
| 		} | ||||
| 	} | ||||
| 	// We have to include a static text.
 | ||||
|  | @ -353,97 +350,105 @@ foreach ($sections as $key => $section) { | |||
| 		} | ||||
| 		$textSnippet = htmlspecialchars($textSnippet); | ||||
| 		$sectionElements[_('Static text') . ': ' . $textSnippet] = $key; | ||||
| 		$structureContent->addElement(new htmlSpacer(null, '15px'), true); | ||||
| 		$sectionHeadlineOutput = new htmlOutputText(_('Static text')); | ||||
| 		$sectionHeadlineOutput->colspan = 2; | ||||
| 		$structureContent->addElement($sectionHeadlineOutput); | ||||
| 		$structureContent->addLabel($sectionHeadlineOutput); | ||||
| 		$actionGroup = new htmlGroup(); | ||||
| 		if ($key != 0) { | ||||
| 			$structureContent->addElement($linkUp); | ||||
| 			$actionGroup->addElement($linkUp); | ||||
| 		} | ||||
| 		else { | ||||
| 			$structureContent->addElement($emptyBox); | ||||
| 			$actionGroup->addElement($emptyBox); | ||||
| 		} | ||||
| 		if ($key != sizeof($sections) - 1) { | ||||
| 			$structureContent->addElement($linkDown); | ||||
| 			$actionGroup->addElement($linkDown); | ||||
| 		} | ||||
| 		else { | ||||
| 			$structureContent->addElement($emptyBox); | ||||
| 			$actionGroup->addElement($emptyBox); | ||||
| 		} | ||||
| 		$structureContent->addElement($linkRemove, true); | ||||
| 		$structureContent->addElement(new htmlSpacer('10px', null)); | ||||
| 		$actionGroup->addElement($linkRemove, true); | ||||
| 		$structureContent->addField($actionGroup); | ||||
| 		$structureContent->addVerticalSpacer('1rem'); | ||||
| 		$staticTextOutput = new htmlOutputText($section->getText()); | ||||
| 		$staticTextOutput->setPreformatted(); | ||||
| 		$structureContent->addElement($staticTextOutput, true); | ||||
| 		$structureContent->add($staticTextOutput, 12); | ||||
| 	} | ||||
| } | ||||
| $sectionElements[_('End')] = sizeof($structure->getSections()); | ||||
| $structureContent->colspan = 3; | ||||
| $mainContent->addElement($structureContent); | ||||
| $container->addElement(new htmlFieldset($mainContent), true); | ||||
| $container->addElement(new htmlSpacer(null, '15px'), true); | ||||
| 
 | ||||
| // new section
 | ||||
| $container->addElement(new htmlSubTitle(_('New section')), true); | ||||
| $newSectionContent = new htmlTable(); | ||||
| // add new section with text title
 | ||||
| $newSectionContent->addElement(new htmlTableExtendedInputField(_("Headline"), 'new_section_text')); | ||||
| $newSectionPositionSelect1 = new htmlTableExtendedSelect('add_sectionText_position', $sectionElements, array(), _('Position')); | ||||
| $newSectionPositionSelect1->setHasDescriptiveElements(true); | ||||
| $newSectionPositionSelect1->setSortElements(false); | ||||
| $newSectionContent->addElement($newSectionPositionSelect1); | ||||
| $newSectionContent->addElement(new htmlButton('add_sectionText', _('Add')), true); | ||||
| // add new section with field title
 | ||||
| $newSectionFieldSelect = new htmlTableExtendedSelect('new_section_item', $newFieldFieldElements, array(), _("Headline")); | ||||
| $newSectionFieldSelect->setHasDescriptiveElements(true); | ||||
| $newSectionFieldSelect->setContainsOptgroups(true); | ||||
| $newSectionContent->addElement($newSectionFieldSelect); | ||||
| $newSectionPositionSelect2 = new htmlTableExtendedSelect('add_section_position', $sectionElements, array(), _('Position')); | ||||
| $newSectionPositionSelect2->setHasDescriptiveElements(true); | ||||
| $newSectionPositionSelect2->setSortElements(false); | ||||
| $newSectionContent->addElement($newSectionPositionSelect2); | ||||
| $newSectionContent->addElement(new htmlButton('add_section', _('Add'))); | ||||
| 
 | ||||
| $container->addElement(new htmlFieldset($newSectionContent, _("Section")), true); | ||||
| $container->addElement(new htmlSpacer(null, '10px'), true); | ||||
| $newTextFieldContent = new htmlTable(); | ||||
| $newTextFieldContent->addElement(new htmlInputTextarea('text_text', '', 40, 3)); | ||||
| $newTextFieldPositionSelect = new htmlTableExtendedSelect('add_text_position', $sectionElements, array(), _('Position')); | ||||
| $newTextFieldPositionSelect->setHasDescriptiveElements(true); | ||||
| $newTextFieldPositionSelect->setSortElements(false); | ||||
| $newTextFieldContent->addElement($newTextFieldPositionSelect); | ||||
| $newTextFieldContent->addElement(new htmlButton('add_text', _('Add'))); | ||||
| $container->addElement(new htmlFieldset($newTextFieldContent, _("Text field")), true); | ||||
| $mainContent->add($structureContent, 12); | ||||
| $container->add($mainContent, 12); | ||||
| $container->addVerticalSpacer('2rem'); | ||||
| 
 | ||||
| // new field
 | ||||
| if (!empty($nonTextSectionElements)) { | ||||
| 	$container->addElement(new htmlSubTitle(_('New field')), true); | ||||
| 	$newFieldContainer = new htmlTable(); | ||||
| 	$newFieldFieldSelect = new htmlSelect('new_field', $newFieldFieldElements); | ||||
| 	$newFieldContainer = new htmlResponsiveRow(); | ||||
| 	$newFieldContainer->add(new htmlSubTitle(_('New field')), 12); | ||||
| 	$newFieldFieldSelect = new htmlResponsiveSelect('new_field', $newFieldFieldElements, array(), _('Field')); | ||||
| 	$newFieldFieldSelect->setHasDescriptiveElements(true); | ||||
| 	$newFieldFieldSelect->setContainsOptgroups(true); | ||||
| 	$newFieldContainer->addElement($newFieldFieldSelect); | ||||
| 	$newFieldContainer->addElement(new htmlSpacer('10px', null)); | ||||
| 	$newFieldSectionSelect = new htmlTableExtendedSelect('add_field_position', $nonTextSectionElements, array(), _('Position')); | ||||
| 	$newFieldContainer->add($newFieldFieldSelect, 12); | ||||
| 	$newFieldSectionSelect = new htmlResponsiveSelect('add_field_position', $nonTextSectionElements, array(), _('Position')); | ||||
| 	$newFieldSectionSelect->setHasDescriptiveElements(true); | ||||
| 	$newFieldContainer->addElement($newFieldSectionSelect); | ||||
| 	$newFieldContainer->addElement(new htmlButton('add_new_field', _('Add'))); | ||||
| 	$container->addElement(new htmlFieldset($newFieldContainer), true); | ||||
| 	$container->addElement(new htmlSpacer(null, '20px'), true); | ||||
| 	$newFieldContainer->add($newFieldSectionSelect, 12); | ||||
| 	$newFieldContainer->addLabel(new htmlOutputText(' ', false)); | ||||
| 	$newFieldContainer->addField(new htmlButton('add_new_field', _('Add'))); | ||||
| 	$container->add($newFieldContainer, 12); | ||||
| } | ||||
| 
 | ||||
| // new section
 | ||||
| $container->addVerticalSpacer('1rem'); | ||||
| $newSectionContent = new htmlResponsiveRow(); | ||||
| $newSectionContent->add(new htmlSubTitle(_('New section')), 12); | ||||
| // add new section with text title
 | ||||
| $newSectionContent->add(new htmlResponsiveInputField(_("Headline"), 'new_section_text'), 12); | ||||
| $newSectionPositionSelect1 = new htmlResponsiveSelect('add_sectionText_position', $sectionElements, array(), _('Position')); | ||||
| $newSectionPositionSelect1->setHasDescriptiveElements(true); | ||||
| $newSectionPositionSelect1->setSortElements(false); | ||||
| $newSectionContent->add($newSectionPositionSelect1, 12); | ||||
| $newSectionContent->addLabel(new htmlOutputText(' ', false)); | ||||
| $newSectionContent->addField(new htmlButton('add_sectionText', _('Add'))); | ||||
| $newSectionContent->addVerticalSpacer('2rem'); | ||||
| // add new section with field title
 | ||||
| $newSectionFieldSelect = new htmlResponsiveSelect('new_section_item', $newFieldFieldElements, array(), _("Headline")); | ||||
| $newSectionFieldSelect->setHasDescriptiveElements(true); | ||||
| $newSectionFieldSelect->setContainsOptgroups(true); | ||||
| $newSectionContent->add($newSectionFieldSelect, 12); | ||||
| $newSectionPositionSelect2 = new htmlResponsiveSelect('add_section_position', $sectionElements, array(), _('Position')); | ||||
| $newSectionPositionSelect2->setHasDescriptiveElements(true); | ||||
| $newSectionPositionSelect2->setSortElements(false); | ||||
| $newSectionContent->add($newSectionPositionSelect2, 12); | ||||
| $newSectionContent->addLabel(new htmlOutputText(' ', false)); | ||||
| $newSectionContent->addField(new htmlButton('add_section', _('Add'))); | ||||
| 
 | ||||
| // new text area
 | ||||
| $container->add($newSectionContent, 12); | ||||
| $container->addVerticalSpacer('1rem'); | ||||
| $newTextFieldContent = new htmlResponsiveRow(); | ||||
| $newTextFieldContent->add(new htmlSubTitle(_('New text area')), 12); | ||||
| $newTextFieldContent->add(new htmlResponsiveInputTextarea('text_text', '', 40, 3, _('Static text')), 12); | ||||
| $newTextFieldPositionSelect = new htmlResponsiveSelect('add_text_position', $sectionElements, array(), _('Position')); | ||||
| $newTextFieldPositionSelect->setHasDescriptiveElements(true); | ||||
| $newTextFieldPositionSelect->setSortElements(false); | ||||
| $newTextFieldContent->add($newTextFieldPositionSelect, 12); | ||||
| $newTextFieldContent->addLabel(new htmlOutputText(' ', false)); | ||||
| $newTextFieldContent->addField(new htmlButton('add_text', _('Add'))); | ||||
| $newTextFieldContent->addVerticalSpacer('2rem'); | ||||
| $container->add($newTextFieldContent, 12); | ||||
| 
 | ||||
| // buttons
 | ||||
| $buttonContainer = new htmlTable(); | ||||
| $buttonContainer = new htmlResponsiveRow(); | ||||
| $saveButton = new htmlButton('submit', _("Save")); | ||||
| $saveButton->setIconClass('saveButton'); | ||||
| $cancelButton = new htmlButton('abort', _("Cancel")); | ||||
| $cancelButton->setIconClass('cancelButton'); | ||||
| $buttonContainer->addElement($saveButton); | ||||
| $buttonContainer->addElement($cancelButton); | ||||
| $buttonContainer->addElement(new htmlHiddenInput('modules', $modules)); | ||||
| $buttonContainer->addElement(new htmlHiddenInput('type', $type->getId())); | ||||
| $buttonContainer->addElement(new htmlHiddenInput('form_submit', 'true')); | ||||
| $buttonGroup = new htmlGroup(); | ||||
| $buttonGroup->addElement($saveButton); | ||||
| $buttonGroup->addElement($cancelButton); | ||||
| $buttonContainer->add($buttonGroup, 12); | ||||
| $buttonContainer->add(new htmlHiddenInput('modules', $modules), 4); | ||||
| $buttonContainer->add(new htmlHiddenInput('type', $type->getId()), 4); | ||||
| $buttonContainer->add(new htmlHiddenInput('form_submit', 'true'), 4); | ||||
| 
 | ||||
| $container->addElement($buttonContainer, true); | ||||
| $container->add($buttonContainer, 12); | ||||
| addSecurityTokenToMetaHTML($container); | ||||
| 
 | ||||
| $tabindex = 1; | ||||
|  | @ -459,8 +464,8 @@ if ((sizeof($saveErrors) == 0) && isset($_POST['scrollPositionTop']) && isset($_ | |||
| 	</script>'; | ||||
| } | ||||
| 
 | ||||
| echo '</form>'; | ||||
| include '../main_footer.php'; | ||||
| echo '</form></div>'; | ||||
| include '../../lib/adminFooter.inc'; | ||||
| 
 | ||||
| 
 | ||||
| /** | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue