12-05-2026 Frontend dev
This commit is contained in:
parent
405df0a122
commit
5b8bdf4182
779 changed files with 480564 additions and 6241 deletions
13
config/admin_performance.php
Normal file
13
config/admin_performance.php
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'slow_requests' => [
|
||||
'enabled' => env('ADMIN_SLOW_REQUEST_LOGGING_ENABLED', true),
|
||||
'duration_threshold_ms' => (int) env('ADMIN_SLOW_REQUEST_THRESHOLD_MS', 750),
|
||||
'database_threshold_ms' => (int) env('ADMIN_SLOW_DB_THRESHOLD_MS', 250),
|
||||
'query_count_threshold' => (int) env('ADMIN_SLOW_QUERY_COUNT_THRESHOLD', 100),
|
||||
'slow_query_threshold_ms' => (int) env('ADMIN_SLOW_QUERY_THRESHOLD_MS', 50),
|
||||
'max_slow_queries' => (int) env('ADMIN_SLOW_QUERY_SAMPLE_SIZE', 5),
|
||||
'channel' => env('ADMIN_SLOW_REQUEST_LOG_CHANNEL', 'admin_slow'),
|
||||
],
|
||||
];
|
||||
31
config/blacklist.php
Normal file
31
config/blacklist.php
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Pressemitteilungs-Blacklist
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Wörter und Phrasen, die in Pressemitteilungen (Titel + Text) nicht
|
||||
| vorkommen dürfen. Werden bei der Einreichung zur Prüfung und bei der
|
||||
| Veröffentlichung gegen den Inhalt geprüft. Die Liste kann in einer
|
||||
| späteren Phase per Admin-UI gepflegt werden – derzeit hier statisch.
|
||||
|
|
||||
| Hinweis: Vergleich erfolgt case-insensitiv und wortgenau (siehe
|
||||
| BlacklistService::matches), Sonderzeichen werden ignoriert.
|
||||
|
|
||||
*/
|
||||
|
||||
return [
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Aktive Wortliste
|
||||
|--------------------------------------------------------------------------
|
||||
| Eine flache Liste von Begriffen oder Phrasen.
|
||||
*/
|
||||
'words' => [
|
||||
// Beispiele – vom Auftraggeber zu erweitern
|
||||
'penis',
|
||||
'casino royale',
|
||||
'spam-keyword',
|
||||
],
|
||||
];
|
||||
183
config/blade-icons.php
Normal file
183
config/blade-icons.php
Normal file
|
|
@ -0,0 +1,183 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Icons Sets
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| With this config option you can define a couple of
|
||||
| default icon sets. Provide a key name for your icon
|
||||
| set and a combination from the options below.
|
||||
|
|
||||
*/
|
||||
|
||||
'sets' => [
|
||||
|
||||
// 'default' => [
|
||||
//
|
||||
// /*
|
||||
// |-----------------------------------------------------------------
|
||||
// | Icons Path
|
||||
// |-----------------------------------------------------------------
|
||||
// |
|
||||
// | Provide the relative path from your app root to your SVG icons
|
||||
// | directory. Icons are loaded recursively so there's no need to
|
||||
// | list every sub-directory.
|
||||
// |
|
||||
// | Relative to the disk root when the disk option is set.
|
||||
// |
|
||||
// */
|
||||
//
|
||||
// 'path' => 'resources/svg',
|
||||
//
|
||||
// /*
|
||||
// |-----------------------------------------------------------------
|
||||
// | Filesystem Disk
|
||||
// |-----------------------------------------------------------------
|
||||
// |
|
||||
// | Optionally, provide a specific filesystem disk to read
|
||||
// | icons from. When defining a disk, the "path" option
|
||||
// | starts relatively from the disk root.
|
||||
// |
|
||||
// */
|
||||
//
|
||||
// 'disk' => '',
|
||||
//
|
||||
// /*
|
||||
// |-----------------------------------------------------------------
|
||||
// | Default Prefix
|
||||
// |-----------------------------------------------------------------
|
||||
// |
|
||||
// | This config option allows you to define a default prefix for
|
||||
// | your icons. The dash separator will be applied automatically
|
||||
// | to every icon name. It's required and needs to be unique.
|
||||
// |
|
||||
// */
|
||||
//
|
||||
// 'prefix' => 'icon',
|
||||
//
|
||||
// /*
|
||||
// |-----------------------------------------------------------------
|
||||
// | Fallback Icon
|
||||
// |-----------------------------------------------------------------
|
||||
// |
|
||||
// | This config option allows you to define a fallback
|
||||
// | icon when an icon in this set cannot be found.
|
||||
// |
|
||||
// */
|
||||
//
|
||||
// 'fallback' => '',
|
||||
//
|
||||
// /*
|
||||
// |-----------------------------------------------------------------
|
||||
// | Default Set Classes
|
||||
// |-----------------------------------------------------------------
|
||||
// |
|
||||
// | This config option allows you to define some classes which
|
||||
// | will be applied by default to all icons within this set.
|
||||
// |
|
||||
// */
|
||||
//
|
||||
// 'class' => '',
|
||||
//
|
||||
// /*
|
||||
// |-----------------------------------------------------------------
|
||||
// | Default Set Attributes
|
||||
// |-----------------------------------------------------------------
|
||||
// |
|
||||
// | This config option allows you to define some attributes which
|
||||
// | will be applied by default to all icons within this set.
|
||||
// |
|
||||
// */
|
||||
//
|
||||
// 'attributes' => [
|
||||
// // 'width' => 50,
|
||||
// // 'height' => 50,
|
||||
// ],
|
||||
//
|
||||
// ],
|
||||
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Global Default Classes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This config option allows you to define some classes which
|
||||
| will be applied by default to all icons.
|
||||
|
|
||||
*/
|
||||
|
||||
'class' => '',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Global Default Attributes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This config option allows you to define some attributes which
|
||||
| will be applied by default to all icons.
|
||||
|
|
||||
*/
|
||||
|
||||
'attributes' => [
|
||||
// 'width' => 50,
|
||||
// 'height' => 50,
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Global Fallback Icon
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This config option allows you to define a global fallback
|
||||
| icon when an icon in any set cannot be found. It can
|
||||
| reference any icon from any configured set.
|
||||
|
|
||||
*/
|
||||
|
||||
'fallback' => '',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Components
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| These config options allow you to define some
|
||||
| settings related to Blade Components.
|
||||
|
|
||||
*/
|
||||
|
||||
'components' => [
|
||||
|
||||
/*
|
||||
|----------------------------------------------------------------------
|
||||
| Disable Components
|
||||
|----------------------------------------------------------------------
|
||||
|
|
||||
| This config option allows you to disable Blade components
|
||||
| completely. It's useful to avoid performance problems
|
||||
| when working with large icon libraries.
|
||||
|
|
||||
*/
|
||||
|
||||
'disabled' => false,
|
||||
|
||||
/*
|
||||
|----------------------------------------------------------------------
|
||||
| Default Icon Component Name
|
||||
|----------------------------------------------------------------------
|
||||
|
|
||||
| This config option allows you to define the name
|
||||
| for the default Icon class component.
|
||||
|
|
||||
*/
|
||||
|
||||
'default' => 'icon',
|
||||
|
||||
],
|
||||
|
||||
];
|
||||
18
config/countries.php
Normal file
18
config/countries.php
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'default' => 'DE',
|
||||
|
||||
'items' => [
|
||||
'DE' => 'Deutschland',
|
||||
'AT' => 'Oesterreich',
|
||||
'CH' => 'Schweiz',
|
||||
'LI' => 'Liechtenstein',
|
||||
'LU' => 'Luxemburg',
|
||||
'BE' => 'Belgien',
|
||||
'NL' => 'Niederlande',
|
||||
'FR' => 'Frankreich',
|
||||
'GB' => 'Vereinigtes Koenigreich',
|
||||
'US' => 'Vereinigte Staaten',
|
||||
],
|
||||
];
|
||||
|
|
@ -13,26 +13,23 @@ return [
|
|||
*/
|
||||
'protocol' => env('APP_PROTOCOL', 'https://'),
|
||||
|
||||
|
||||
'domain_portal' => env('APP_PORTAL_NAME', 'pr-copilot.test'),
|
||||
'domain_portal' => env('APP_PORTAL_NAME', 'presseportale.test'),
|
||||
'domain_presseecho' => env('APP_PRESSEECHO_NAME', 'presseecho.test'),
|
||||
'domain_businessportal' => env('APP_BUSINESSPORTAL_NAME', 'businessportal24.test'),
|
||||
|
||||
|
||||
'domain_portal_url' => env('APP_PORTAL_URL', 'https://pr-copilot.test'),
|
||||
'domain_portal_url' => env('APP_PORTAL_URL', 'https://presseportale.test'),
|
||||
'domain_presseecho_url' => env('APP_PRESSEECHO_URL', 'https://presseecho.test'),
|
||||
'domain_businessportal_url' => env('APP_BUSINESSPORTAL_URL', 'https://businessportal24.test'),
|
||||
|
||||
|
||||
'domains' => [
|
||||
'portal' => [
|
||||
'domain_name' => env('APP_PORTAL_NAME', 'pr-copilot.test'),
|
||||
'url' => env('APP_PORTAL_URL', 'https://pr-copilot.test'),
|
||||
'asset_url' => 'https://assets.pr-copilot.test',
|
||||
'domain_name' => env('APP_PORTAL_NAME', 'presseportale.test'),
|
||||
'url' => env('APP_PORTAL_URL', 'https://presseportale.test'),
|
||||
'asset_url' => env('APP_PORTAL_ASSET_URL', 'https://assets.presseportale.test'),
|
||||
'theme' => 'main',
|
||||
'view_prefix' => 'portal',
|
||||
'assets_dir' => 'build/portal',
|
||||
'description' => 'Backend Page PR-Copilot',
|
||||
'description' => 'Backend Presseportale',
|
||||
'color_scheme' => [
|
||||
'primary' => env('APP_PORTAL_PRIMARY', '#526266'), //
|
||||
'secondary' => env('APP_PORTAL_SECONDARY', '#82a0a7'), //
|
||||
|
|
@ -49,10 +46,26 @@ return [
|
|||
'assets_dir' => 'build/web',
|
||||
'description' => 'Frontend Page Presseecho',
|
||||
'color_scheme' => [
|
||||
'primary' => env('APP_PRESSEECHO_PRIMARY', '#345636'), //
|
||||
'secondary' => env('APP_PRESSEECHO_SECONDARY', '#6b8f71'), //
|
||||
'primary' => env('APP_PRESSEECHO_PRIMARY', '#345636'),
|
||||
'secondary' => env('APP_PRESSEECHO_SECONDARY', '#6b8f71'),
|
||||
],
|
||||
'font' => 'Montserrat',
|
||||
'brand' => [
|
||||
'name' => 'presseecho',
|
||||
'accent' => null,
|
||||
'tagline_short' => 'Pressemitteilungen · DACH',
|
||||
'tagline_long' => 'Fachmeldungen aus Wirtschaft und Industrie. Redaktionell geprüft. Strukturiert distribuiert.',
|
||||
'footer_legal' => '© :year presseecho.com · Alle Rechte vorbehalten',
|
||||
'about_label' => 'Über presseecho',
|
||||
'meta_title' => 'Aktuelle Pressemitteilungen aus Wirtschaft & Industrie – presseecho',
|
||||
'meta_description' => 'Redaktionell kuratierte Pressemitteilungen aus Wirtschaft und Industrie im DACH-Raum.',
|
||||
'newsletter_topics' => [
|
||||
['name' => 'Tageszusammenfassung', 'meta' => 'Mo–Fr · 07:00 Uhr', 'active' => true],
|
||||
['name' => 'Wochenrückblick', 'meta' => 'Sonntags · 18:00 Uhr', 'active' => false],
|
||||
['name' => 'Energie & Klima', 'meta' => 'ab Content-Score 80 · max. 2× pro Woche', 'active' => true],
|
||||
['name' => 'Industrie & Forschung', 'meta' => 'ausgewählt von der Redaktion · ca. 3–5 Mails/Monat', 'active' => false],
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'businessportal24' => [
|
||||
|
|
@ -64,10 +77,26 @@ return [
|
|||
'assets_dir' => 'build/web',
|
||||
'description' => 'Frontend Page Businessportal24',
|
||||
'color_scheme' => [
|
||||
'primary' => env('APP_BUSINESSPORTAL_PRIMARY', '#cf3628'), //
|
||||
'secondary' => env('APP_BUSINESSPORTAL_SECONDARY', '#f0834a'), //
|
||||
'primary' => env('APP_BUSINESSPORTAL_PRIMARY', '#cf3628'),
|
||||
'secondary' => env('APP_BUSINESSPORTAL_SECONDARY', '#f0834a'),
|
||||
],
|
||||
'font' => 'Montserrat',
|
||||
'brand' => [
|
||||
'name' => 'businessportal',
|
||||
'accent' => '24',
|
||||
'tagline_short' => 'Pressemitteilungen · DACH',
|
||||
'tagline_long' => 'Veröffentlichungs-Portal für redaktionell geprüfte Pressemitteilungen aus Deutschland, Österreich und der Schweiz.',
|
||||
'footer_legal' => '© :year businessportal24.com · Alle Rechte vorbehalten',
|
||||
'about_label' => 'Über businessportal24',
|
||||
'meta_title' => 'Aktuelle Pressemitteilungen aus der deutschen Wirtschaft – businessportal24',
|
||||
'meta_description' => 'Pressemitteilungen aus Deutschland, Österreich und der Schweiz. Redaktionell geprüft. Strukturiert distribuiert.',
|
||||
'newsletter_topics' => [
|
||||
['name' => 'Tageszusammenfassung', 'meta' => 'Mo–Fr · 07:00 Uhr', 'active' => true],
|
||||
['name' => 'Wochenrückblick', 'meta' => 'Sonntags · 18:00 Uhr', 'active' => false],
|
||||
['name' => 'Energie & Klima', 'meta' => 'ab Content-Score 80 · max. 2× pro Woche', 'active' => true],
|
||||
['name' => 'IPO & M&A', 'meta' => 'ausgewählt von der Redaktion · ca. 3–5 Mails/Monat', 'active' => false],
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -73,6 +73,14 @@ return [
|
|||
'replace_placeholders' => true,
|
||||
],
|
||||
|
||||
'admin_slow' => [
|
||||
'driver' => 'daily',
|
||||
'path' => storage_path('logs/admin-slow.log'),
|
||||
'level' => env('ADMIN_SLOW_REQUEST_LOG_LEVEL', 'warning'),
|
||||
'days' => env('ADMIN_SLOW_REQUEST_LOG_DAYS', 14),
|
||||
'replace_placeholders' => true,
|
||||
],
|
||||
|
||||
'slack' => [
|
||||
'driver' => 'slack',
|
||||
'url' => env('LOG_SLACK_WEBHOOK_URL'),
|
||||
|
|
|
|||
11
config/newsletter.php
Normal file
11
config/newsletter.php
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'sync' => [
|
||||
'enabled' => env('NEWSLETTER_SYNC_ENABLED', false),
|
||||
'provider' => env('NEWSLETTER_SYNC_PROVIDER', 'placeholder'),
|
||||
'endpoint' => env('NEWSLETTER_SYNC_ENDPOINT'),
|
||||
'api_key' => env('NEWSLETTER_SYNC_API_KEY'),
|
||||
'timeout' => (int) env('NEWSLETTER_SYNC_TIMEOUT', 10),
|
||||
],
|
||||
];
|
||||
7
config/presseportale.code-workspace
Normal file
7
config/presseportale.code-workspace
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": ".."
|
||||
}
|
||||
]
|
||||
}
|
||||
24
config/salutations.php
Normal file
24
config/salutations.php
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'default' => 'mr',
|
||||
|
||||
'items' => [
|
||||
'mr' => [
|
||||
'de' => 'Herr',
|
||||
'en' => 'Mr.',
|
||||
],
|
||||
'mrs' => [
|
||||
'de' => 'Frau',
|
||||
'en' => 'Ms.',
|
||||
],
|
||||
'diverse' => [
|
||||
'de' => 'Divers',
|
||||
'en' => 'Diverse',
|
||||
],
|
||||
'none' => [
|
||||
'de' => 'Keine Angabe',
|
||||
'en' => 'Prefer not to say',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
|
@ -25,7 +25,7 @@ return [
|
|||
|
|
||||
*/
|
||||
|
||||
'dev_url' => env('ASSET_URL', env('VITE_DEV_SERVER_URL', 'https://assets.pr-copilot.test')),
|
||||
'dev_url' => env('ASSET_URL', env('VITE_DEV_SERVER_URL', 'https://assets.presseportale.test')),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue