Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 76be3bcd09 | |||
| 84a6f118dc | |||
| 3176e6e414 | |||
| 83c632f2dc | |||
| 15a93466b6 |
@@ -10,11 +10,56 @@
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/themes/airbnb.css">
|
||||
<link rel="stylesheet" href="https://unpkg.com/filepond/dist/filepond.min.css">
|
||||
<link rel="stylesheet" href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.min.css">
|
||||
<style>
|
||||
.module-event-edit .filepond--root {
|
||||
width: 400px;
|
||||
height: 600px;
|
||||
}
|
||||
|
||||
.module-event-edit .filepond--root .filepond--drop-label {
|
||||
height: 100%;
|
||||
inset: 0;
|
||||
}
|
||||
|
||||
.module-event-edit .filepond--root .filepond--drop-label label {
|
||||
display: block;
|
||||
width: auto;
|
||||
float: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
font-weight: inherit;
|
||||
}
|
||||
|
||||
.module-event-edit .filepond--root .filepond--drop-label,
|
||||
.module-event-edit .filepond--root .filepond--drop-label label,
|
||||
.module-event-edit .filepond--root .filepond--file-action-button {
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
.module-event-edit .filepond--root .filepond--image-preview-wrapper {
|
||||
background: #f7f7f7;
|
||||
}
|
||||
|
||||
.module-event-edit .filepond--root .filepond--panel-root,
|
||||
.module-event-edit .filepond--root .filepond--item-panel,
|
||||
.module-event-edit .filepond--root .filepond--image-preview {
|
||||
background-color: #f7f7f7 !important;
|
||||
}
|
||||
|
||||
.module-event-edit .filepond--root .filepond--image-preview-overlay-idle,
|
||||
.module-event-edit .filepond--root .filepond--image-preview-overlay-success,
|
||||
.module-event-edit .filepond--root .filepond--image-preview-overlay-failure {
|
||||
background: rgba(255, 255, 255, 0.65);
|
||||
}
|
||||
</style>
|
||||
<script src="https://cdn.jsdelivr.net/npm/choices.js/public/assets/scripts/choices.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/flatpickr"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/flatpickr/dist/l10n/de.js"></script>
|
||||
<script src="https://unpkg.com/filepond/dist/filepond.min.js"></script>
|
||||
<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.min.js"></script>
|
||||
<script src="https://unpkg.com/filepond-plugin-image-resize/dist/filepond-plugin-image-resize.min.js"></script>
|
||||
<script src="https://unpkg.com/filepond-plugin-image-transform/dist/filepond-plugin-image-transform.min.js"></script>
|
||||
|
||||
{{ form_start(form, { action: app.request.uri, attr: { 'aria-live': 'polite' } }) }}
|
||||
<input type="hidden" name="REQUEST_TOKEN" value="{{ requestToken }}">
|
||||
@@ -212,14 +257,46 @@
|
||||
if (typeof window.FilePondPluginImagePreview !== 'undefined') {
|
||||
window.FilePond.registerPlugin(window.FilePondPluginImagePreview);
|
||||
}
|
||||
if (typeof window.FilePondPluginImageResize !== 'undefined') {
|
||||
window.FilePond.registerPlugin(window.FilePondPluginImageResize);
|
||||
}
|
||||
if (typeof window.FilePondPluginImageTransform !== 'undefined') {
|
||||
window.FilePond.registerPlugin(window.FilePondPluginImageTransform);
|
||||
}
|
||||
|
||||
const filePondOptions = {
|
||||
instantUpload: false,
|
||||
storeAsFile: true,
|
||||
allowMultiple: false,
|
||||
allowReplace: true,
|
||||
stylePanelAspectRatio: 0.6666667,
|
||||
styleItemPanelAspectRatio: 0.6666667,
|
||||
credits: false,
|
||||
acceptedFileTypes: ['image/*'],
|
||||
allowImageResize: true,
|
||||
imageResizeUpscale: false,
|
||||
allowImageTransform: true,
|
||||
onaddfile: function (error, fileItem) {
|
||||
if (error || !fileItem || typeof fileItem.setMetadata !== 'function') {
|
||||
return;
|
||||
}
|
||||
|
||||
const fileType = fileItem.fileType || (fileItem.file && fileItem.file.type) || '';
|
||||
|
||||
if (fileType === 'image/svg+xml') {
|
||||
fileItem.setMetadata('resize', null);
|
||||
return;
|
||||
}
|
||||
|
||||
fileItem.setMetadata('resize', {
|
||||
mode: 'contain',
|
||||
upscale: false,
|
||||
size: {
|
||||
width: 2000,
|
||||
height: 2000
|
||||
}
|
||||
});
|
||||
},
|
||||
labelIdle: 'Bild hierher ziehen oder <span class="filepond--label-action">durchsuchen</span>'
|
||||
};
|
||||
|
||||
|
||||
@@ -8,9 +8,54 @@
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/choices.js/public/assets/styles/choices.min.css">
|
||||
<link rel="stylesheet" href="https://unpkg.com/filepond/dist/filepond.min.css">
|
||||
<link rel="stylesheet" href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.min.css">
|
||||
<style>
|
||||
.module-organization-edit .filepond--root {
|
||||
width: 400px;
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
.module-organization-edit .filepond--root .filepond--drop-label {
|
||||
height: 100%;
|
||||
inset: 0;
|
||||
}
|
||||
|
||||
.module-organization-edit .filepond--root .filepond--drop-label label {
|
||||
display: block;
|
||||
width: auto;
|
||||
float: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
font-weight: inherit;
|
||||
}
|
||||
|
||||
.module-organization-edit .filepond--root .filepond--drop-label,
|
||||
.module-organization-edit .filepond--root .filepond--drop-label label,
|
||||
.module-organization-edit .filepond--root .filepond--file-action-button {
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
.module-organization-edit .filepond--root .filepond--image-preview-wrapper {
|
||||
background: #f7f7f7;
|
||||
}
|
||||
|
||||
.module-organization-edit .filepond--root .filepond--panel-root,
|
||||
.module-organization-edit .filepond--root .filepond--item-panel,
|
||||
.module-organization-edit .filepond--root .filepond--image-preview {
|
||||
background-color: #f7f7f7 !important;
|
||||
}
|
||||
|
||||
.module-organization-edit .filepond--root .filepond--image-preview-overlay-idle,
|
||||
.module-organization-edit .filepond--root .filepond--image-preview-overlay-success,
|
||||
.module-organization-edit .filepond--root .filepond--image-preview-overlay-failure {
|
||||
background: rgba(255, 255, 255, 0.65);
|
||||
}
|
||||
</style>
|
||||
<script src="https://cdn.jsdelivr.net/npm/choices.js/public/assets/scripts/choices.min.js"></script>
|
||||
<script src="https://unpkg.com/filepond/dist/filepond.min.js"></script>
|
||||
<script src="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.min.js"></script>
|
||||
<script src="https://unpkg.com/filepond-plugin-image-resize/dist/filepond-plugin-image-resize.min.js"></script>
|
||||
<script src="https://unpkg.com/filepond-plugin-image-transform/dist/filepond-plugin-image-transform.min.js"></script>
|
||||
|
||||
{{ form_start(form, { attr: { 'aria-live': 'polite' } }) }}
|
||||
<input type="hidden" name="REQUEST_TOKEN" value="{{ requestToken }}">
|
||||
@@ -73,14 +118,46 @@
|
||||
if (typeof window.FilePondPluginImagePreview !== 'undefined') {
|
||||
window.FilePond.registerPlugin(window.FilePondPluginImagePreview);
|
||||
}
|
||||
if (typeof window.FilePondPluginImageResize !== 'undefined') {
|
||||
window.FilePond.registerPlugin(window.FilePondPluginImageResize);
|
||||
}
|
||||
if (typeof window.FilePondPluginImageTransform !== 'undefined') {
|
||||
window.FilePond.registerPlugin(window.FilePondPluginImageTransform);
|
||||
}
|
||||
|
||||
const filePondOptions = {
|
||||
instantUpload: false,
|
||||
storeAsFile: true,
|
||||
allowMultiple: false,
|
||||
allowReplace: true,
|
||||
stylePanelAspectRatio: 1,
|
||||
styleItemPanelAspectRatio: 1,
|
||||
credits: false,
|
||||
acceptedFileTypes: ['image/*'],
|
||||
allowImageResize: true,
|
||||
imageResizeUpscale: false,
|
||||
allowImageTransform: true,
|
||||
onaddfile: function (error, fileItem) {
|
||||
if (error || !fileItem || typeof fileItem.setMetadata !== 'function') {
|
||||
return;
|
||||
}
|
||||
|
||||
const fileType = fileItem.fileType || (fileItem.file && fileItem.file.type) || '';
|
||||
|
||||
if (fileType === 'image/svg+xml') {
|
||||
fileItem.setMetadata('resize', null);
|
||||
return;
|
||||
}
|
||||
|
||||
fileItem.setMetadata('resize', {
|
||||
mode: 'contain',
|
||||
upscale: false,
|
||||
size: {
|
||||
width: 800,
|
||||
height: 800
|
||||
}
|
||||
});
|
||||
},
|
||||
labelIdle: 'Logo hierher ziehen oder <span class="filepond--label-action">durchsuchen</span>'
|
||||
};
|
||||
|
||||
|
||||
@@ -70,14 +70,13 @@ class OrganizationEditController extends AbstractFrontendModuleController
|
||||
$formData = [
|
||||
'title' => (string) ($organization['title'] ?? ''),
|
||||
'street' => (string) ($organization['street'] ?? ''),
|
||||
'street2' => (string) ($organization['street2'] ?? ''),
|
||||
'postal' => (string) ($organization['postal'] ?? ''),
|
||||
'city' => (string) ($organization['city'] ?? ''),
|
||||
'state' => (string) ($organization['state'] ?? ''),
|
||||
'country' => (string) ($organization['country'] ?? ''),
|
||||
'phone' => (string) ($organization['phone'] ?? ''),
|
||||
'email' => (string) ($organization['email'] ?? ''),
|
||||
'website' => (string) ($organization['website'] ?? ''),
|
||||
'description' => (string) ($organization['description'] ?? ''),
|
||||
'description' => $this->normalizeTextareaDescription((string) ($organization['description'] ?? '')),
|
||||
'tags' => $this->organizationRepository->getTagIdsForOrganization($organizationId),
|
||||
];
|
||||
|
||||
@@ -219,4 +218,14 @@ class OrganizationEditController extends AbstractFrontendModuleController
|
||||
|
||||
return $page instanceof PageModel ? $this->generateContentUrl($page) : '/';
|
||||
}
|
||||
|
||||
private function normalizeTextareaDescription(string $value): string
|
||||
{
|
||||
$decoded = html_entity_decode($value, ENT_QUOTES | ENT_HTML5, 'UTF-8');
|
||||
$decoded = preg_replace('/<\s*br\s*\/?>/i', "\n", $decoded) ?? $decoded;
|
||||
$decoded = preg_replace('/<\s*\/p\s*>\s*<\s*p[^>]*>/i', "\n\n", $decoded) ?? $decoded;
|
||||
$decoded = strip_tags($decoded);
|
||||
|
||||
return trim($decoded);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,10 +20,9 @@ class OrganizationType extends AbstractType
|
||||
$builder
|
||||
->add('title', TextType::class, ['label' => 'Titel', 'required' => true])
|
||||
->add('street', TextType::class, ['label' => 'Straße', 'required' => false])
|
||||
->add('street2', TextType::class, ['label' => 'Weitere Adressangaben', 'required' => false])
|
||||
->add('postal', TextType::class, ['label' => 'PLZ', 'required' => false])
|
||||
->add('city', TextType::class, ['label' => 'Ort', 'required' => false])
|
||||
->add('state', TextType::class, ['label' => 'Bundesland', 'required' => false])
|
||||
->add('country', TextType::class, ['label' => 'Land', 'required' => false])
|
||||
->add('phone', TextType::class, ['label' => 'Telefon', 'required' => false])
|
||||
->add('email', EmailType::class, ['label' => 'E-Mail', 'required' => false])
|
||||
->add('website', TextType::class, ['label' => 'Webseite', 'required' => false])
|
||||
|
||||
@@ -71,10 +71,9 @@ class OrganizationRepository
|
||||
[
|
||||
'title' => $data['title'] ?? '',
|
||||
'street' => $data['street'] ?? '',
|
||||
'street2' => $data['street2'] ?? '',
|
||||
'postal' => $data['postal'] ?? '',
|
||||
'city' => $data['city'] ?? '',
|
||||
'state' => $data['state'] ?? '',
|
||||
'country' => $data['country'] ?? '',
|
||||
'phone' => $data['phone'] ?? '',
|
||||
'email' => $data['email'] ?? '',
|
||||
'website' => $data['website'] ?? '',
|
||||
|
||||
Reference in New Issue
Block a user