Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3942569fb3 | |||
| ccf60a31e7 | |||
| 000fdb8e79 |
@@ -74,6 +74,10 @@
|
||||
outline-offset: 3px;
|
||||
}
|
||||
|
||||
#eventfilters .widget-select.active::before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#eventfilters select:focus-visible {
|
||||
outline: 3px solid currentColor;
|
||||
outline-offset: 3px;
|
||||
@@ -86,8 +90,9 @@
|
||||
#eventfilters .eventfilter-clear {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: .5rem;
|
||||
right: 0;
|
||||
transform: translateY(-50%);
|
||||
margin: 0;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@@ -95,7 +100,7 @@
|
||||
background: transparent;
|
||||
color: inherit;
|
||||
cursor: pointer;
|
||||
padding: .125rem;
|
||||
padding: 1em;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -16,30 +16,32 @@
|
||||
</span>
|
||||
|
||||
{% if isEditor %}
|
||||
<form method="post" style="display:inline;" aria-label="Sichtbarkeit für {{ item.title }} ändern">
|
||||
<input type="hidden" name="REQUEST_TOKEN" value="{{ requestToken }}">
|
||||
<input type="hidden" name="action" value="toggle_published">
|
||||
<input type="hidden" name="event_id" value="{{ item.id }}">
|
||||
<button type="submit" aria-label="{{ item.published ? 'Auf inaktiv setzen' : 'Auf aktiv setzen' }} für {{ item.title }}">{{ item.published ? 'aktiv' : 'inaktiv' }}</button>
|
||||
</form>
|
||||
<div class="member-events-actions">
|
||||
<form method="post" style="display:inline;" aria-label="Sichtbarkeit für {{ item.title }} ändern">
|
||||
<input type="hidden" name="REQUEST_TOKEN" value="{{ requestToken }}">
|
||||
<input type="hidden" name="action" value="toggle_published">
|
||||
<input type="hidden" name="event_id" value="{{ item.id }}">
|
||||
<button type="submit" aria-label="{{ item.published ? 'Auf inaktiv setzen' : 'Auf aktiv setzen' }} für {{ item.title }}">{{ item.published ? 'aktiv' : 'inaktiv' }}</button>
|
||||
</form>
|
||||
|
||||
{% if item.editUrl %}
|
||||
<a href="{{ item.editUrl }}" aria-label="{{ item.title }} bearbeiten">Bearbeiten</a>
|
||||
{% endif %}
|
||||
{% if item.editUrl %}
|
||||
<a href="{{ item.editUrl }}" aria-label="{{ item.title }} bearbeiten">Bearbeiten</a>
|
||||
{% endif %}
|
||||
|
||||
<form method="post" style="display:inline;" aria-label="{{ item.title }} duplizieren">
|
||||
<input type="hidden" name="REQUEST_TOKEN" value="{{ requestToken }}">
|
||||
<input type="hidden" name="action" value="duplicate">
|
||||
<input type="hidden" name="event_id" value="{{ item.id }}">
|
||||
<button type="submit" aria-label="{{ item.title }} duplizieren">Duplizieren</button>
|
||||
</form>
|
||||
<form method="post" style="display:inline;" data-confirm-message="{{ ('Möchten Sie das Event \"' ~ item.title ~ '\" wirklich duplizieren?')|e('html_attr') }}" aria-label="{{ item.title }} duplizieren">
|
||||
<input type="hidden" name="REQUEST_TOKEN" value="{{ requestToken }}">
|
||||
<input type="hidden" name="action" value="duplicate">
|
||||
<input type="hidden" name="event_id" value="{{ item.id }}">
|
||||
<button type="submit" aria-label="{{ item.title }} duplizieren">Duplizieren</button>
|
||||
</form>
|
||||
|
||||
<form method="post" style="display:inline;" onsubmit="return confirm('wirklich löschen?');" aria-label="{{ item.title }} löschen">
|
||||
<input type="hidden" name="REQUEST_TOKEN" value="{{ requestToken }}">
|
||||
<input type="hidden" name="action" value="delete">
|
||||
<input type="hidden" name="event_id" value="{{ item.id }}">
|
||||
<button type="submit" aria-label="{{ item.title }} löschen">Löschen</button>
|
||||
</form>
|
||||
<form method="post" style="display:inline;" data-confirm-message="{{ ('Möchten Sie das Event \"' ~ item.title ~ '\" wirklich löschen?')|e('html_attr') }}" aria-label="{{ item.title }} löschen">
|
||||
<input type="hidden" name="REQUEST_TOKEN" value="{{ requestToken }}">
|
||||
<input type="hidden" name="action" value="delete">
|
||||
<input type="hidden" name="event_id" value="{{ item.id }}">
|
||||
<button type="submit" aria-label="{{ item.title }} löschen">Löschen</button>
|
||||
</form>
|
||||
</div>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
@@ -54,6 +56,8 @@
|
||||
</form>
|
||||
{% endif %}
|
||||
|
||||
<script src="/bundles/mummertmediaeventmanager/assets/member-events-confirm.js?v=20260301a"></script>
|
||||
|
||||
<h2>Vergangene Veranstaltungen</h2>
|
||||
{% if pastEvents is empty %}
|
||||
<p>Keine vergangenen Veranstaltungen gefunden.</p>
|
||||
@@ -69,30 +73,32 @@
|
||||
</span>
|
||||
|
||||
{% if isEditor %}
|
||||
<form method="post" style="display:inline;" aria-label="Sichtbarkeit für {{ item.title }} ändern">
|
||||
<input type="hidden" name="REQUEST_TOKEN" value="{{ requestToken }}">
|
||||
<input type="hidden" name="action" value="toggle_published">
|
||||
<input type="hidden" name="event_id" value="{{ item.id }}">
|
||||
<button type="submit" aria-label="{{ item.published ? 'Auf inaktiv setzen' : 'Auf aktiv setzen' }} für {{ item.title }}">{{ item.published ? 'aktiv' : 'inaktiv' }}</button>
|
||||
</form>
|
||||
<div class="member-events-actions">
|
||||
<form method="post" style="display:inline;" aria-label="Sichtbarkeit für {{ item.title }} ändern">
|
||||
<input type="hidden" name="REQUEST_TOKEN" value="{{ requestToken }}">
|
||||
<input type="hidden" name="action" value="toggle_published">
|
||||
<input type="hidden" name="event_id" value="{{ item.id }}">
|
||||
<button type="submit" aria-label="{{ item.published ? 'Auf inaktiv setzen' : 'Auf aktiv setzen' }} für {{ item.title }}">{{ item.published ? 'aktiv' : 'inaktiv' }}</button>
|
||||
</form>
|
||||
|
||||
{% if item.editUrl %}
|
||||
<a href="{{ item.editUrl }}" aria-label="{{ item.title }} bearbeiten">Bearbeiten</a>
|
||||
{% endif %}
|
||||
{% if item.editUrl %}
|
||||
<a href="{{ item.editUrl }}" aria-label="{{ item.title }} bearbeiten">Bearbeiten</a>
|
||||
{% endif %}
|
||||
|
||||
<form method="post" style="display:inline;" aria-label="{{ item.title }} duplizieren">
|
||||
<input type="hidden" name="REQUEST_TOKEN" value="{{ requestToken }}">
|
||||
<input type="hidden" name="action" value="duplicate">
|
||||
<input type="hidden" name="event_id" value="{{ item.id }}">
|
||||
<button type="submit" aria-label="{{ item.title }} duplizieren">Duplizieren</button>
|
||||
</form>
|
||||
<form method="post" style="display:inline;" data-confirm-message="{{ ('Möchten Sie das Event \"' ~ item.title ~ '\" wirklich duplizieren?')|e('html_attr') }}" aria-label="{{ item.title }} duplizieren">
|
||||
<input type="hidden" name="REQUEST_TOKEN" value="{{ requestToken }}">
|
||||
<input type="hidden" name="action" value="duplicate">
|
||||
<input type="hidden" name="event_id" value="{{ item.id }}">
|
||||
<button type="submit" aria-label="{{ item.title }} duplizieren">Duplizieren</button>
|
||||
</form>
|
||||
|
||||
<form method="post" style="display:inline;" onsubmit="return confirm('wirklich löschen?');" aria-label="{{ item.title }} löschen">
|
||||
<input type="hidden" name="REQUEST_TOKEN" value="{{ requestToken }}">
|
||||
<input type="hidden" name="action" value="delete">
|
||||
<input type="hidden" name="event_id" value="{{ item.id }}">
|
||||
<button type="submit" aria-label="{{ item.title }} löschen">Löschen</button>
|
||||
</form>
|
||||
<form method="post" style="display:inline;" data-confirm-message="{{ ('Möchten Sie das Event \"' ~ item.title ~ '\" wirklich löschen?')|e('html_attr') }}" aria-label="{{ item.title }} löschen">
|
||||
<input type="hidden" name="REQUEST_TOKEN" value="{{ requestToken }}">
|
||||
<input type="hidden" name="action" value="delete">
|
||||
<input type="hidden" name="event_id" value="{{ item.id }}">
|
||||
<button type="submit" aria-label="{{ item.title }} löschen">Löschen</button>
|
||||
</form>
|
||||
</div>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
(function () {
|
||||
var decodeHtmlEntities = function (value) {
|
||||
var textarea = document.createElement('textarea');
|
||||
textarea.innerHTML = String(value || '');
|
||||
|
||||
return textarea.value;
|
||||
};
|
||||
|
||||
var handleSubmit = function (event) {
|
||||
var target = event.target;
|
||||
|
||||
if (!(target instanceof HTMLFormElement)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var message = decodeHtmlEntities(target.getAttribute('data-confirm-message') || '');
|
||||
|
||||
if (!message) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!window.confirm(message)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener('submit', handleSubmit, true);
|
||||
})();
|
||||
@@ -65,7 +65,14 @@ class MemberEventsController extends AbstractFrontendModuleController
|
||||
if ('toggle_published' === $action) {
|
||||
$this->eventRepository->togglePublished($eventId);
|
||||
} elseif ('duplicate' === $action) {
|
||||
$this->eventRepository->duplicate($eventId);
|
||||
$newEventId = $this->eventRepository->duplicate($eventId);
|
||||
|
||||
if ($newEventId > 0 && $editPage instanceof PageModel) {
|
||||
return new RedirectResponse($this->generateContentUrl($editPage, [
|
||||
'event' => (string) $newEventId,
|
||||
'ref' => base64_encode($backUrl),
|
||||
]));
|
||||
}
|
||||
} elseif ('delete' === $action) {
|
||||
$this->eventRepository->delete($eventId);
|
||||
}
|
||||
|
||||
@@ -84,7 +84,8 @@ class EventRepository
|
||||
unset($row['id']);
|
||||
|
||||
if (array_key_exists('title', $row)) {
|
||||
$row['title'] = trim((string) $row['title'].' (Kopie)');
|
||||
$normalizedTitle = html_entity_decode((string) $row['title'], ENT_QUOTES | ENT_HTML5, 'UTF-8');
|
||||
$row['title'] = trim($normalizedTitle.' (Kopie)');
|
||||
}
|
||||
|
||||
if (array_key_exists('alias', $row)) {
|
||||
|
||||
Reference in New Issue
Block a user