Skip to content

Commit

Permalink
Add jump targets
Browse files Browse the repository at this point in the history
  • Loading branch information
zonky2 committed Nov 18, 2024
1 parent 3886b32 commit f65e406
Showing 1 changed file with 89 additions and 79 deletions.
168 changes: 89 additions & 79 deletions src/Resources/contao/templates/dcbe_general_edit.html5
Original file line number Diff line number Diff line change
Expand Up @@ -9,96 +9,106 @@ use Symfony\Contracts\Translation\TranslatorInterface;
$requestToken = System::getContainer()->get('contao.csrf.token_manager')->getDefaultTokenValue();
$translator = System::getContainer()->get('translator');
assert($translator instanceof TranslatorInterface);
$request = System::getContainer()->get('request_stack')->getCurrentRequest()->getUri();
$request = System::getContainer()->get('request_stack')->getCurrentRequest()->getUri();
$fieldsetStates = System::getContainer()->get('request_stack')->getSession()->getBag('contao_backend')->get('fieldset_states');

// Add CSS
$GLOBALS['TL_CSS']['cca.dc-general.generalDriver'] = '/bundles/ccadcgeneral/css/generalDriver.css';
?>
<?php if($this->versions): ?>
<div class="tl_version_panel">
<form action="<?= StringUtil::ampersand($this->Environment->request, true) ?>" id="tl_version" class="tl_form" method="post">
<div class="tl_formbody">
<input type="hidden" name="FORM_SUBMIT" value="tl_version" />
<input type="hidden" name="REQUEST_TOKEN" value="<?= $requestToken ?>" />
<select name="version" class="tl_select">
<?php foreach($this->versions as $objVersion): /** @var VersionModelInterface $objVersion */ ?>
<option value="<?= $objVersion->getId() ?>"<?php if($objVersion->isCurrent()): ?> selected="selected"<?php endif; ?>>
<?= $translator->trans(id: 'version', domain: 'dc-general') ?> <?= $objVersion->getVersion() ?> (<?= $this->parseDate($GLOBALS['TL_CONFIG']['datimFormat'], $objVersion->getDateTime()->getTimestamp()) ?>)
<?php if ($objVersion->getAuthorName()): ?> &ndash; <?= $objVersion->getAuthorName() ?> (<?= $objVersion->getAuthorUsername() ?>)
<?php elseif ($objVersion->getAuthorUsername()): ?> &ndash; (<?= $objVersion->getAuthorUsername() ?>)
<?php endif; ?>
</option>
<?php endforeach; ?>
</select> <input type="submit" name="showVersion" id="showVersion" class="tl_submit" value="<?= StringUtil::specialchars($translator->trans(id: 'restore', domain: 'dc-general')) ?>" />
</div>
</form>
<div data-controller="contao--jump-targets">
<div class="jump-targets">
<div class="inner" data-contao--jump-targets-target="navigation"></div>
</div>
<?php endif; ?>

<?php
$this->insert(
'dcbe_general_language_selector',
[
'language' => $this->language,
'languages' => $this->languages,
'request' => $request,
'submit' => $this->languageSubmit,
'REQUEST_TOKEN' => $requestToken,
]
) ?>
<?php if($this->versions): ?>
<div class="tl_version_panel">
<form action="<?= StringUtil::ampersand($this->Environment->request, true) ?>" id="tl_version" class="tl_form" method="post">
<div class="tl_formbody">
<input type="hidden" name="FORM_SUBMIT" value="tl_version" />
<input type="hidden" name="REQUEST_TOKEN" value="<?= $requestToken ?>" />
<select name="version" class="tl_select">
<?php foreach($this->versions as $objVersion): /** @var VersionModelInterface $objVersion */ ?>
<option value="<?= $objVersion->getId() ?>"<?php if($objVersion->isCurrent()): ?> selected="selected"<?php endif; ?>>
<?= $translator->trans(id: 'version', domain: 'dc-general') ?> <?= $objVersion->getVersion() ?> (<?= $this->parseDate($GLOBALS['TL_CONFIG']['datimFormat'], $objVersion->getDateTime()->getTimestamp()) ?>)
<?php if ($objVersion->getAuthorName()): ?> &ndash; <?= $objVersion->getAuthorName() ?> (<?= $objVersion->getAuthorUsername() ?>)
<?php elseif ($objVersion->getAuthorUsername()): ?> &ndash; (<?= $objVersion->getAuthorUsername() ?>)
<?php endif; ?>
</option>
<?php endforeach; ?>
</select> <input type="submit" name="showVersion" id="showVersion" class="tl_submit" value="<?= StringUtil::specialchars($translator->trans(id: 'restore', domain: 'dc-general')) ?>" />
</div>
</form>
</div>
<?php endif; ?>

<?= $this->getBackButton() ?>
<?php
$this->insert(
'dcbe_general_language_selector',
[
'language' => $this->language,
'languages' => $this->languages,
'request' => $request,
'submit' => $this->languageSubmit,
'REQUEST_TOKEN' => $requestToken,
]
) ?>

<?php if(\strlen($this->breadcrumb)): ?>
<div class="tl_listing_container">
<?= $this->breadcrumb ?>
</div>
<?php endif; ?>
<h2 class="sub_headline"><?= $this->subHeadline ?><?= ($this->languageHeadline !== '') ? ' - ' . $this->languageHeadline : '' ?></h2>
<?= Message::generate() ?>
<?= $this->getBackButton() ?>

<form class="tl_form tableextended" method="post"
action="<?= StringUtil::ampersand($request, true) ?><?php if($this->mode): ?>&mode=<?= $this->mode ?><?php endif; ?>"
id="<?= $this->table ?>"
enctype="<?= $this->enctype ?>"
<?php if($this->onsubmit): ?> onsubmit="<?= $this->onsubmit ?>"<?php endif; ?>>
<div class="tl_formbody_edit">
<input type="hidden" name="FORM_SUBMIT" value="<?= StringUtil::specialchars($this->table) ?>" />
<input type="hidden" name="REQUEST_TOKEN" value="<?= $requestToken ?>" />
<?php if($this->error): ?>
<?php if(5 < \count($this->error)): ?>
<div class="limit_height h128">
<?php endif; ?>
<?php if(\strlen($this->breadcrumb)): ?>
<div class="tl_listing_container">
<?= $this->breadcrumb ?>
</div>
<?php endif; ?>
<h2 class="sub_headline"><?= $this->subHeadline ?><?= ($this->languageHeadline !== '') ? ' - ' . $this->languageHeadline : '' ?></h2>
<?= Message::generate() ?>

<p class="tl_error"><?= \implode('<br />', $this->error) ?></p>
<script>
window.addEvent('domready', function() {
Backend.vScrollTo(($('<?= $this->table ?>').getElement('label.error').getPosition().y - 20));
});
</script>
<form class="tl_form tableextended" method="post"
action="<?= StringUtil::ampersand($request, true) ?><?php if($this->mode): ?>&mode=<?= $this->mode ?><?php endif; ?>"
id="<?= $this->table ?>"
enctype="<?= $this->enctype ?>"
<?php if($this->onsubmit): ?> onsubmit="<?= $this->onsubmit ?>"<?php endif; ?>>
<div class="tl_formbody_edit">
<input type="hidden" name="FORM_SUBMIT" value="<?= StringUtil::specialchars($this->table) ?>" />
<input type="hidden" name="REQUEST_TOKEN" value="<?= $requestToken ?>" />
<?php if($this->error): ?>
<?php if(5 < \count($this->error)): ?>
<div class="limit_height h128">
<?php endif; ?>

<?php if(5 < \count($this->error)): ?>
</div>
<?php endif; ?>
<?php endif; ?>
<p class="tl_error"><?= \implode('<br />', $this->error) ?></p>
<script>
window.addEvent('domready', function() {
Backend.vScrollTo(($('<?= $this->table ?>').getElement('label.error').getPosition().y - 20));
});
</script>

<?php foreach($this->fieldsets as $arrFieldset):
if($arrFieldset['legend'] ?? null): ?>
<fieldset id="pal_<?= StringUtil::specialchars($arrFieldset['legend']) ?>" class="<?= $arrFieldset['class'] ?> block">
<legend onclick="BackendGeneral.setLegendState(this,'<?= StringUtil::specialchars($arrFieldset['legend']) ?>','<?= StringUtil::specialchars($this->table) ?>')"><?= $arrFieldset['label'] ?></legend>
<?= $arrFieldset['palette'] ?>
</fieldset>
<?php else: ?>
<fieldset class="<?= $arrFieldset['class'] ?> block nolegend">
<?= $arrFieldset['palette'] ?>
</fieldset>
<?php endif; endforeach; ?>
</div>
<div class="tl_formbody_submit">
<div class="tl_submit_container">
<?= $this->editButtons ?>
</div>
</div>
</form>
<?php if(5 < \count($this->error)): ?>
</div>
<?php endif; ?>
<?php endif; ?>

<?php foreach($this->fieldsets as $arrFieldset):
$paletteId = 'pal_' . StringUtil::specialchars($arrFieldset['legend']);
$class = $arrFieldset['class'] . (($fieldsetStates[$this->table][$paletteId] ?? null) ? '' : ' collapsed');
if($arrFieldset['legend'] ?? null): ?>
<fieldset id="<?= $paletteId ?>" class="<?= $class ?>" data-controller="contao--toggle-fieldset" data-contao--toggle-fieldset-id-value="pal_<?= StringUtil::specialchars($arrFieldset['legend']) ?>" data-contao--toggle-fieldset-table-value="<?= StringUtil::specialchars($this->table) ?>" data-contao--toggle-fieldset-collapsed-class="collapsed" data-contao--jump-targets-target="section" data-contao--jump-targets-label-value="<?= $arrFieldset['label'] ?>" data-action="contao--jump-targets:scrollto->contao--toggle-fieldset#open">
<legend><button type="button" data-action="contao--toggle-fieldset#toggle" aria-expanded="true"><?= $arrFieldset['label'] ?></button></legend>
<?= $arrFieldset['palette'] ?>
</fieldset>
<?php else: ?>
<fieldset class="<?= $class ?> block nolegend">
<?= $arrFieldset['palette'] ?>
</fieldset>
<?php endif; endforeach; ?>
</div>
<div class="tl_formbody_submit">
<div class="tl_submit_container">
<?= $this->editButtons ?>
</div>
</div>
</form>
</div>
<script>
window.addEvent('domready', function() {
var e = $$("#" + <?= \json_encode($this->table) ?> + ' input[type="text"]')[0];
Expand Down

0 comments on commit f65e406

Please sign in to comment.