welcome page

This commit is contained in:
Benjamin Takats
2022-12-12 14:50:34 +01:00
parent 5790f690cc
commit d598380066
22 changed files with 323 additions and 104 deletions

View File

@@ -0,0 +1,13 @@
<?php
namespace App\Http\Livewire\Frontend;
use Livewire\Component;
class Welcome extends Component
{
public function render()
{
return view('livewire.frontend.welcome');
}
}

View File

@@ -4,7 +4,6 @@ namespace App\Nova;
use Illuminate\Http\Request;
use Laravel\Nova\Fields\Boolean;
use Laravel\Nova\Fields\Code;
use Laravel\Nova\Fields\HasMany;
use Laravel\Nova\Fields\ID;
use Laravel\Nova\Fields\MorphMany;
@@ -47,67 +46,67 @@ class BookCase extends Resource
ID::make()
->sortable(),
Text::make('Title')
Text::make(__('Title'), 'title')
->rules('required', 'string'),
Number::make('Latitude')
Number::make(__('Latitude'), 'latitude')
->rules('required', 'numeric')
->step(0.000001)
->hideFromIndex(),
Number::make('Longitude')
Number::make(__('Longitude'), 'longitude')
->rules('required', 'numeric')
->step(0.000001)
->hideFromIndex(),
Text::make('Address')
Text::make(__('Address'), 'address')
->rules('required', 'string'),
Text::make('Type')
Text::make(__('Type'), 'type')
->rules('required', 'string'),
Text::make('Open')
Text::make(__('Open'), 'open')
->rules('required', 'string')
->hideFromIndex(),
Text::make('Comment')
Text::make(__('Comment'), 'comment')
->rules('required', 'string')
->hideFromIndex(),
Text::make('Contact')
Text::make(__('Contact'), 'contact')
->rules('required', 'string')
->hideFromIndex(),
Text::make('Bcz')
Text::make(__('Bcz'), 'bcz')
->rules('required', 'string')
->hideFromIndex(),
Boolean::make('Digital')
Boolean::make(__('Digital'), 'digital')
->rules('required')
->hideFromIndex(),
Text::make('Icontype')
Text::make(__('Icontype'), 'icontype')
->rules('required', 'string')
->hideFromIndex(),
Boolean::make('Deactivated')
Boolean::make(__('Deactivated'), 'deactivated')
->rules('required'),
Text::make('Deactreason')
Text::make(__('Deactreason'), 'deactreason')
->rules('required', 'string')
->hideFromIndex(),
Text::make('Entrytype')
Text::make(__('Entrytype'), 'entrytype')
->rules('required', 'string')
->hideFromIndex(),
Text::make('Homepage')
Text::make(__('Homepage'), 'homepage')
->rules('required', 'string')
->hideFromIndex(),
HasMany::make('OrangePills'),
HasMany::make(__('OrangePills'), 'orangePills', OrangePill::class),
MorphMany::make('Comments'),
MorphMany::make(__('Comments'), 'comments', Comment::class),
];
}

View File

@@ -2,55 +2,54 @@
namespace App\Nova;
use Laravel\Nova\Fields\ID;
use Illuminate\Http\Request;
use Laravel\Nova\Fields\Text;
use Laravel\Nova\Fields\BelongsToMany;
use Laravel\Nova\Fields\ID;
use Laravel\Nova\Fields\Text;
class Category extends Resource
{
/**
* The model the resource corresponds to.
*
* @var string
*/
public static $model = \App\Models\Category::class;
/**
* The single value that should be used to represent the resource when being displayed.
*
* @var string
*/
public static $title = 'id';
public static $title = 'name';
/**
* The columns that should be searched.
*
* @var array
*/
public static $search = [
'id',
'name',
];
/**
* Get the fields displayed by the resource.
*
* @param \Illuminate\Http\Request $request
*
* @return array
*/
public function fields(Request $request)
{
return [
ID::make()->sortable(),
ID::make()
->sortable(),
Text::make('Name')
Text::make(__('Name'), 'name')
->rules('required', 'string'),
Text::make('Slug')
Text::make(__('Slug'), 'slug')
->rules('required', 'string', 'unique:categories,slug'),
BelongsToMany::make('Courses'),
BelongsToMany::make(__('Courses'), 'courses', Course::class),
];
}
@@ -59,6 +58,7 @@ class Category extends Resource
* Get the cards available for the request.
*
* @param \Illuminate\Http\Request $request
*
* @return array
*/
public function cards(Request $request)
@@ -70,6 +70,7 @@ class Category extends Resource
* Get the filters available for the resource.
*
* @param \Illuminate\Http\Request $request
*
* @return array
*/
public function filters(Request $request)
@@ -81,6 +82,7 @@ class Category extends Resource
* Get the lenses available for the resource.
*
* @param \Illuminate\Http\Request $request
*
* @return array
*/
public function lenses(Request $request)
@@ -92,6 +94,7 @@ class Category extends Resource
* Get the actions available for the resource.
*
* @param \Illuminate\Http\Request $request
*
* @return array
*/
public function actions(Request $request)

View File

@@ -44,23 +44,23 @@ class City extends Resource
ID::make()
->sortable(),
Text::make('Name')
Text::make(__('Name'), 'name')
->rules('required', 'string'),
Text::make('Slug')
Text::make(__('Slug'), 'slug')
->exceptOnForms(),
Number::make('Latitude')
Number::make(__('Latitude'), 'latitude')
->rules('required', 'numeric')
->step(0.000001)
->help('<a target="_blank" href="https://www.latlong.net/">https://www.latlong.net/</a>'),
Number::make('Longitude')
Number::make(__('Longitude'), 'longitude')
->rules('required', 'numeric')
->step(0.000001)
->help('<a target="_blank" href="https://www.latlong.net/">https://www.latlong.net/</a>'),
BelongsTo::make('Country'),
BelongsTo::make(__('Country'), 'country', Country::class),
];
}

View File

@@ -20,26 +20,26 @@ class Comment extends Resource
public function fields(NovaRequest $request)
{
return [
Text::make('title', function (CommentModel $comment) {
Text::make(__('Title'), function (CommentModel $comment) {
return $comment->topLevel()->commentable?->commentableName() ?? 'Deleted...';
})->readonly(),
MorphTo::make('Commentator')->types([
MorphTo::make(__('Commentator'), 'commentator')->types([
User::class,
]),
Markdown::make('Original text'),
Markdown::make(__('Original text'), 'original_text'),
Text::make('', function (CommentModel $comment) {
if (! $url = $comment?->commentUrl()) {
return '';
}
return "<a target=\"show_comment\" href=\"{$url}\">Show</a>";
return "<a target=\"show_comment\" href=\"{$url}\">".__('Show')."</a>";
})->asHtml(),
Text::make('status', function(CommentModel $comment) {
Text::make(__('Status'), function(CommentModel $comment) {
if ($comment->isApproved()) {
return "<div class='inline-flex items-center px-3 py-0.5 rounded-full text-sm font-medium bg-green-100 text-green-800'>Approved</div>";
}
@@ -47,7 +47,8 @@ class Comment extends Resource
return "<div class='inline-flex items-center px-3 py-0.5 rounded-full text-sm font-medium bg-yellow-100 text-yellow-800'>Pending</div>";
})->asHtml(),
DateTime::make('Created at'),
DateTime::make(__('Created at'), 'created_at'),
];
}
}

View File

@@ -44,18 +44,18 @@ class Country extends Resource
ID::make()
->sortable(),
Text::make('Name')
Text::make(__('Name'), 'name')
->rules('required', 'string'),
MultiSelect::make('Languages', 'language_codes')
MultiSelect::make(__('Languages'), 'language_codes')
->options(
config('languages.languages'),
),
Text::make('Code')
Text::make(__('Code'), 'code')
->rules('required', 'string'),
HasMany::make('Cities'),
HasMany::make(__('Cities'), 'cities', City::class),
];
}

View File

@@ -59,28 +59,34 @@ class Course extends Resource
ID::make()
->sortable(),
Images::make('Main picture', 'logo')
Images::make(__('Main picture'), 'logo')
->conversionOnIndexView('thumb'),
Images::make('Images', 'images')
// todo: english
Images::make(__('Images'), 'images')
->conversionOnIndexView('thumb')
->help('Lade hier Bilder hoch, um sie eventuell später in der Markdown Description einzufügen. Du musst vorher aber Speichern.'),
->help(__('Lade hier Bilder hoch, um sie eventuell später in der Markdown Description einzufügen. Du musst vorher aber Speichern.')),
Tags::make('Tags')->type('course')->withLinkToTagResource(Tag::class),
Tags::make(__('Tags'))
->type('course')
->withLinkToTagResource(Tag::class),
Text::make('Name')
Text::make(__('Name'), 'name')
->rules('required', 'string'),
Markdown::make('Description')
Markdown::make(__('Description'), 'description')
->alwaysShow()
->help('Markdown ist erlaubt. Du kannst Bilder aus dem Feld "Images" hier einfügen. Benutze das Link Symbol der Bilder für die Urls, nach dem du auf "Aktualisieren und Weiterarbeiten" geklickt hast.'),
->help(__('Markdown ist erlaubt. Du kannst Bilder aus dem Feld "Images" hier einfügen. Benutze das Link Symbol der Bilder für die Urls, nach dem du auf "Aktualisieren und Weiterarbeiten" geklickt hast.')),
BelongsTo::make('Lecturer'),
BelongsTo::make(__('Lecturer'), 'lecturer', Lecturer::class)
->searchable()
->help(__('Wähle hier den Dozenten aus, der den Kurs hält. Wenn der Dozent nicht in der Liste ist, dann erstelle ihn zuerst unter "Dozenten".')),
SelectPlus::make('Categories', 'categories', Category::class)
SelectPlus::make(__('Categories'), 'categories', Category::class)
->usingIndexLabel('name'),
BelongsToMany::make('Categories')->onlyOnDetail(),
BelongsToMany::make(__('Categories'), 'categories', Category::class)
->onlyOnDetail(),
];
}

View File

@@ -80,27 +80,27 @@ class Episode extends Resource
ID::make()
->sortable(),
Avatar::make('Image')
Avatar::make(__('Image'))
->squared()
->thumbnail(function () {
return $this->data['image'];
})
->exceptOnForms(),
Tags::make('Tags')
Tags::make(__('Tags'))
->type('library_item')
->withLinkToTagResource(Tag::class),
Text::make('Title', 'data->title')
Text::make(__('Title'), 'data->title')
->readonly()
->rules('required', 'string'),
Code::make('Data')
Code::make(__('Data'), 'data')
->readonly()
->rules('required', 'json')
->json(),
BelongsTo::make('Podcast')
BelongsTo::make(__('Podcast'), 'podcast', Podcast::class)
->readonly(),
];

View File

@@ -70,6 +70,7 @@ class Event extends Resource
->displayUsing(fn($value) => $value->asDateTime()),
BelongsTo::make('Course'),
BelongsTo::make('Venue')
->searchable(),

74
composer.lock generated
View File

@@ -3067,16 +3067,16 @@
},
{
"name": "league/commonmark",
"version": "2.3.7",
"version": "2.3.8",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
"reference": "a36bd2be4f5387c0f3a8792a0d76b7d68865abbf"
"reference": "c493585c130544c4e91d2e0e131e6d35cb0cbc47"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/a36bd2be4f5387c0f3a8792a0d76b7d68865abbf",
"reference": "a36bd2be4f5387c0f3a8792a0d76b7d68865abbf",
"url": "https://api.github.com/repos/thephpleague/commonmark/zipball/c493585c130544c4e91d2e0e131e6d35cb0cbc47",
"reference": "c493585c130544c4e91d2e0e131e6d35cb0cbc47",
"shasum": ""
},
"require": {
@@ -3104,7 +3104,7 @@
"symfony/finder": "^5.3 | ^6.0",
"symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0",
"unleashedtech/php-coding-standard": "^3.1.1",
"vimeo/psalm": "^4.24.0"
"vimeo/psalm": "^4.24.0 || ^5.0.0"
},
"suggest": {
"symfony/yaml": "v2.3+ required if using the Front Matter extension"
@@ -3169,20 +3169,20 @@
"type": "tidelift"
}
],
"time": "2022-11-03T17:29:46+00:00"
"time": "2022-12-10T16:02:17+00:00"
},
{
"name": "league/config",
"version": "v1.1.1",
"version": "v1.2.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/config.git",
"reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e"
"reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/config/zipball/a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e",
"reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e",
"url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
"reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
"shasum": ""
},
"require": {
@@ -3191,7 +3191,7 @@
"php": "^7.4 || ^8.0"
},
"require-dev": {
"phpstan/phpstan": "^0.12.90",
"phpstan/phpstan": "^1.8.2",
"phpunit/phpunit": "^9.5.5",
"scrutinizer/ocular": "^1.8.1",
"unleashedtech/php-coding-standard": "^3.1",
@@ -3251,7 +3251,7 @@
"type": "github"
}
],
"time": "2021-08-14T12:15:32+00:00"
"time": "2022-12-11T20:36:23+00:00"
},
{
"name": "league/flysystem",
@@ -3711,23 +3711,23 @@
},
{
"name": "maennchen/zipstream-php",
"version": "2.3.0",
"version": "v2.4.0",
"source": {
"type": "git",
"url": "https://github.com/maennchen/ZipStream-PHP.git",
"reference": "8df0a40fff7b5cbf86cf9a6d7d8d15b9bc03bc98"
"reference": "3fa72e4c71a43f9e9118752a5c90e476a8dc9eb3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/8df0a40fff7b5cbf86cf9a6d7d8d15b9bc03bc98",
"reference": "8df0a40fff7b5cbf86cf9a6d7d8d15b9bc03bc98",
"url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/3fa72e4c71a43f9e9118752a5c90e476a8dc9eb3",
"reference": "3fa72e4c71a43f9e9118752a5c90e476a8dc9eb3",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"myclabs/php-enum": "^1.5",
"php": "^8.0",
"psr/http-message": "^1.0",
"symfony/polyfill-mbstring": "^1.0"
"psr/http-message": "^1.0"
},
"require-dev": {
"ext-zip": "*",
@@ -3736,7 +3736,7 @@
"mikey179/vfsstream": "^1.6",
"php-coveralls/php-coveralls": "^2.4",
"phpunit/phpunit": "^8.5.8 || ^9.4.2",
"vimeo/psalm": "^4.1"
"vimeo/psalm": "^5.0"
},
"type": "library",
"autoload": {
@@ -3773,7 +3773,7 @@
],
"support": {
"issues": "https://github.com/maennchen/ZipStream-PHP/issues",
"source": "https://github.com/maennchen/ZipStream-PHP/tree/2.3.0"
"source": "https://github.com/maennchen/ZipStream-PHP/tree/v2.4.0"
},
"funding": [
{
@@ -3785,7 +3785,7 @@
"type": "open_collective"
}
],
"time": "2022-11-28T12:13:34+00:00"
"time": "2022-12-08T12:29:14+00:00"
},
{
"name": "masterminds/html5",
@@ -12944,16 +12944,16 @@
},
{
"name": "laravel-lang/lang",
"version": "12.5.8",
"version": "12.6.1",
"source": {
"type": "git",
"url": "https://github.com/Laravel-Lang/lang.git",
"reference": "c11b2cb92a8873b9ea16b25012b5b13dce7a2935"
"reference": "4d099a2b7f5cfcda82cc8dc1c39620eb69d66d1f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Laravel-Lang/lang/zipball/c11b2cb92a8873b9ea16b25012b5b13dce7a2935",
"reference": "c11b2cb92a8873b9ea16b25012b5b13dce7a2935",
"url": "https://api.github.com/repos/Laravel-Lang/lang/zipball/4d099a2b7f5cfcda82cc8dc1c39620eb69d66d1f",
"reference": "4d099a2b7f5cfcda82cc8dc1c39620eb69d66d1f",
"shasum": ""
},
"require": {
@@ -13015,7 +13015,7 @@
"type": "open_collective"
}
],
"time": "2022-12-05T18:46:34+00:00"
"time": "2022-12-11T22:31:57+00:00"
},
{
"name": "laravel-lang/publisher",
@@ -14071,16 +14071,16 @@
},
{
"name": "phpunit/phpunit",
"version": "9.5.26",
"version": "9.5.27",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2"
"reference": "a2bc7ffdca99f92d959b3f2270529334030bba38"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/851867efcbb6a1b992ec515c71cdcf20d895e9d2",
"reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a2bc7ffdca99f92d959b3f2270529334030bba38",
"reference": "a2bc7ffdca99f92d959b3f2270529334030bba38",
"shasum": ""
},
"require": {
@@ -14153,7 +14153,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.26"
"source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.27"
},
"funding": [
{
@@ -14169,7 +14169,7 @@
"type": "tidelift"
}
],
"time": "2022-10-28T06:00:21+00:00"
"time": "2022-12-09T07:31:23+00:00"
},
{
"name": "sebastian/cli-parser",
@@ -15281,16 +15281,16 @@
},
{
"name": "spatie/laravel-ignition",
"version": "1.6.1",
"version": "1.6.2",
"source": {
"type": "git",
"url": "https://github.com/spatie/laravel-ignition.git",
"reference": "2b79cf6ed40946b64ac6713d7d2da8a9d87f612b"
"reference": "d6e1e1ad93abe280abf41c33f8ea7647dfc0c233"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/2b79cf6ed40946b64ac6713d7d2da8a9d87f612b",
"reference": "2b79cf6ed40946b64ac6713d7d2da8a9d87f612b",
"url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/d6e1e1ad93abe280abf41c33f8ea7647dfc0c233",
"reference": "d6e1e1ad93abe280abf41c33f8ea7647dfc0c233",
"shasum": ""
},
"require": {
@@ -15367,7 +15367,7 @@
"type": "github"
}
],
"time": "2022-10-26T17:39:54+00:00"
"time": "2022-12-08T15:31:38+00:00"
},
{
"name": "symfony/yaml",

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 KiB

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="1152" height="1152" viewBox="0 0 1152 1152" preserveAspectRatio="xMinYMin" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">
<!-- Generated by PQINA - https://pqina.nl/ -->
<title/>
<g transform="rotate(NaN 576 576) translate(576 576) scale(NaN) translate(-576 -576) translate(0 0)">
<g transform="scale(1 1) translate(0 0)">
<svg width="1152" height="1152" viewBox="0 0 1152 1152" fill="none" xmlns="http://www.w3.org/2000/svg" style="overflow: visible;">
<g filter="url(#filter0_f)">
<rect x="356" y="356" width="440" height="440" rx="24" fill="url(#paint0_linear)"/>
<rect x="356" y="356" width="440" height="440" rx="24" fill="url(#paint1_radial)" fill-opacity="0.78"/>
<rect x="356" y="356" width="440" height="440" rx="24" fill="url(#paint2_radial)"/>
<rect x="356" y="356" width="440" height="440" rx="24" fill="url(#paint3_linear)"/>
<rect x="356" y="356" width="440" height="440" rx="24" fill="url(#paint4_radial)"/>
</g>
<defs>
<filter id="filter0_f" x="0" y="0" width="1152" height="1152" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feGaussianBlur stdDeviation="178" result="effect1_foregroundBlur"/>
</filter>
<linearGradient id="paint0_linear" x1="796" y1="787.5" x2="229" y2="258" gradientUnits="userSpaceOnUse">
<stop stop-color="#F7931A"/>
<stop offset="1" stop-color="#FABE75"/>
</linearGradient>
<radialGradient id="paint1_radial" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(771 771.5) rotate(-134.198) scale(353.588 681.193)">
<stop stop-color="#41F4FF"/>
<stop offset="0.322917" stop-color="#83DAFF" stop-opacity="0.84"/>
<stop offset="0.640625" stop-color="#63AFF0" stop-opacity="0.51"/>
<stop offset="1" stop-color="#2B5AD3" stop-opacity="0"/>
</radialGradient>
<radialGradient id="paint2_radial" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(510.5 307.5) rotate(82.4148) scale(200.757)">
<stop stop-color="#F7931A"/>
<stop offset="1" stop-color="#FABE75" stop-opacity="0"/>
</radialGradient>
<linearGradient id="paint3_linear" x1="367.5" y1="784.5" x2="649.5" y2="695.5" gradientUnits="userSpaceOnUse">
<stop stop-color="#F7931A"/>
<stop offset="1" stop-color="#FABE75" stop-opacity="0"/>
</linearGradient>
<radialGradient id="paint4_radial" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(775 382.5) rotate(124.873) scale(335.804)">
<stop stop-color="#F7931A"/>
<stop offset="0.547057" stop-color="#FABE75" stop-opacity="0.26"/>
<stop offset="1" stop-color="#5A23F8" stop-opacity="0"/>
</radialGradient>
</defs>
</svg>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 KiB

BIN
public/img/vhs_kurs.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

View File

@@ -2,7 +2,7 @@
<div>
<x-button amber wire:click="proximitySearch({{ $row->id }})" class="text-21gray">
<i class="fa fa-thin fa-person-chalkboard mr-2"></i>
Umkreis-Suche Kurs-Termin {{ $row->name }}(100km)
Umkreis-Suche Kurs-Termin {{ $row->name }} (100km)
</x-button>
</div>
<div>

View File

@@ -5,6 +5,10 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'Laravel') }}</title>
<meta name="description" content="Dies ist die Kontakt-Seite ">
<meta name="keywords" content="Kontakt, Kontaktseite, Kontaktformular, Kontaktformularseite">
<link rel="stylesheet" href="{{ mix('css/app.css') }}">
<!-- Fonts -->
@googlefonts
<!-- Scripts -->

View File

@@ -15,7 +15,7 @@
<div
class="relative sm:sticky sm:top-0 bg-21gray z-10 flex flex-col flex-wrap items-center justify-between py-7 mx-auto md:flex-row max-w-screen-2xl">
<div class="relative flex flex-col md:flex-row">
<a href="{{ route('search.city', ['country' => $c]) }}"
<a href="{{ route('welcome') }}"
class="flex items-center mb-5 font-medium text-gray-900 lg:w-auto lg:items-center lg:justify-center md:mb-0">
<img src="{{ asset('img/einundzwanzig-horizontal-inverted.svg') }}">
</a>

View File

@@ -0,0 +1,146 @@
<div class="bg-21gray flex flex-col h-screen justify-between">
<section class="relative px-10 py-16 overflow-hidden">
<img class="absolute left-0 z-0 w-3/4 transform -translate-y-1/2 opacity-70 top-1/2"
src="{{ asset('img/gradient-blob.svg') }}">
<img class="absolute left-0 z-0 object-cover object-center w-full h-full opacity-50 top-24"
src="https://cdn.devdojo.com/tails/images/swirl-white.svg">
<div class="container relative z-10 px-4 mx-auto">
<div class="w-full mb-8 sm:w-1/2 md:w-3/4 sm:pr-4 md:pr-12 sm:-mb-32 md:-mb-24 lg:-mb-36 xl:-mb-28">
<h2 class="tracking-widest text-amber-500 uppercase">Einundzwanzig</h2>
<p class="my-3 text-5xl font-bold tracking-tighter text-amber-500 lg:text-6xl">Bitcoin Portal</p>
<p class="max-w-sm text-lg text-gray-200">
Eine Bitcoin Community für alle.
</p>
</div>
<div class="grid w-full grid-cols-1 gap-8 sm:grid-cols-2 md:grid-cols-3 xl:grid-cols-4">
<div class="row-span-2 col-span-full sm:col-span-1 md:col-start-1 sm:row-start-2 md:row-start-3">
<a href="#"
class="relative flex flex-col items-start justify-end w-full h-full overflow-hidden bg-black shadow-lg rounded-xl group"
style="aspect-ratio: 1/1;">
<div class="absolute inset-0 w-full h-full">
<div
class="absolute bottom-0 left-0 z-10 w-full h-full opacity-30 bg-gradient-to-b from-transparent to-gray-900"></div>
<img
class="absolute inset-0 object-cover object-center w-full h-full transition duration-500 lg:opacity-80 group-hover:opacity-100 group-hover:scale-110"
src="{{ asset('img/meetup_saarland.jpg') }}" alt="">
</div>
<div class="relative z-10 flex flex-col items-start justify-start w-full px-6 py-7">
<span
class="px-2 py-1 mb-3 text-xs font-semibold tracking-tight text-white uppercase bg-amber-500 rounded-md">Get together</span>
<h4 class="text-4xl font-bold tracking-tight text-gray-100 sm:text-3xl md:text-2xl lg:text-3xl">
Meetups
</h4>
</div>
</a>
</div>
<div
class="row-span-2 col-span-full sm:col-span-1 md:col-start-1 xl:col-start-2 sm:row-start-4 md:row-start-5 xl:row-start-2">
<a href="{{ route('search.city', ['country' => 'de']) }}"
class="relative flex flex-col items-start justify-end w-full h-full overflow-hidden bg-black shadow-lg rounded-xl group"
style="aspect-ratio: 1/1;">
<div class="absolute inset-0 w-full h-full">
<div
class="absolute bottom-0 left-0 z-10 w-full h-full opacity-30 bg-gradient-to-b from-transparent to-gray-900"></div>
<img
class="absolute inset-0 object-cover object-center w-full h-full transition duration-500 lg:opacity-80 group-hover:opacity-100 group-hover:scale-110"
src="{{ asset('img/vhs_kurs.jpg') }}" alt="">
</div>
<div class="relative z-10 flex flex-col items-start justify-start w-full px-6 py-7">
<span
class="px-2 py-1 mb-3 text-xs font-semibold tracking-tight text-white uppercase bg-amber-500 rounded-md">Education</span>
<h4 class="text-4xl font-bold tracking-tight text-gray-100 sm:text-3xl md:text-2xl lg:text-3xl">
Kurse
</h4>
</div>
</a>
</div>
<div
class="row-span-2 col-span-full sm:col-span-1 md:col-start-2 xl:col-start-2 sm:row-start-6 md:row-start-2 xl:row-start-4">
<a href="{{ route('library', ['country' => 'de']) }}"
class="relative flex flex-col items-start justify-end w-full h-full overflow-hidden bg-black shadow-lg rounded-xl group"
style="aspect-ratio: 1/1;">
<div class="absolute inset-0 w-full h-full">
<div
class="absolute bottom-0 left-0 z-10 w-full h-full opacity-30 bg-gradient-to-b from-transparent to-gray-900"></div>
<img
class="absolute inset-0 object-cover object-center w-full h-full transition duration-500 lg:opacity-80 group-hover:opacity-100 group-hover:scale-110"
src="{{ asset('img/Krypto-Fiat-Bros.webp') }}" alt="">
</div>
<div class="relative z-10 flex flex-col items-start justify-start w-full px-6 py-7">
<span
class="px-2 py-1 mb-3 text-xs font-semibold tracking-tight text-white uppercase bg-amber-500 rounded-md">Content</span>
<h4 class="text-4xl font-bold tracking-tight text-gray-100 sm:text-3xl md:text-2xl lg:text-3xl">
Bibliothek
</h4>
</div>
</a>
</div>
<div
class="row-span-2 col-span-full sm:col-span-1 md:col-start-2 xl:col-start-3 sm:row-start-1 md:row-start-4 xl:row-start-1">
<a href="#"
class="relative flex flex-col items-start justify-end w-full h-full overflow-hidden bg-black shadow-lg rounded-xl group"
style="aspect-ratio: 1/1;">
<div class="absolute inset-0 w-full h-full">
<div
class="absolute bottom-0 left-0 z-10 w-full h-full opacity-30 bg-gradient-to-b from-transparent to-gray-900"></div>
<img
class="absolute inset-0 object-cover object-center w-full h-full transition duration-500 lg:opacity-80 group-hover:opacity-100 group-hover:scale-110"
src="{{ asset('img/20220915_007_industryday.webp') }}" alt="">
</div>
<div class="relative z-10 flex flex-col items-start justify-start w-full px-6 py-7">
<span
class="px-2 py-1 mb-3 text-xs font-semibold tracking-tight text-white uppercase bg-amber-500 rounded-md">Worldwide</span>
<h4 class="text-4xl font-bold tracking-tight text-gray-100 sm:text-3xl md:text-2xl lg:text-3xl">
Events
</h4>
</div>
</a>
</div>
<div
class="row-span-2 col-span-full sm:col-span-1 md:col-start-3 xl:col-start-3 sm:row-start-3 md:row-start-1 xl:row-start-3">
<a href="{{ route('library', ['country' => 'de']) }}"
class="relative flex flex-col items-start justify-end w-full h-full overflow-hidden bg-black shadow-lg rounded-xl group"
style="aspect-ratio: 1/1;">
<div class="absolute inset-0 w-full h-full">
<div
class="absolute bottom-0 left-0 z-10 w-full h-full opacity-30 bg-gradient-to-b from-transparent to-gray-900"></div>
<img
class="absolute inset-0 object-cover object-center w-full h-full transition duration-500 lg:opacity-80 group-hover:opacity-100 group-hover:scale-110"
src="{{ asset('img/einundzwanzig_podcast_niko_jilch.jpg') }}" alt="">
</div>
<div class="relative z-10 flex flex-col items-start justify-start w-full px-6 py-7">
<span
class="px-2 py-1 mb-3 text-xs font-semibold tracking-tight text-white uppercase bg-amber-500 rounded-md">Listening</span>
<h4 class="text-4xl font-bold tracking-tight text-gray-100 sm:text-3xl md:text-2xl lg:text-3xl">
Podcasts
</h4>
</div>
</a>
</div>
<div
class="row-span-2 col-span-full sm:col-span-1 md:col-start-3 xl:col-start-4 sm:row-start-5 md:row-start-3 xl:row-start-2">
<a href="{{ route('search.bookcases', ['country' => 'de']) }}"
class="relative flex flex-col items-start justify-end w-full h-full overflow-hidden bg-black shadow-lg rounded-xl group"
style="aspect-ratio: 1/1;">
<div class="absolute inset-0 w-full h-full">
<div
class="absolute bottom-0 left-0 z-10 w-full h-full bg-gradient-to-b from-transparent to-gray-900 opacity-30"></div>
<img
class="absolute inset-0 object-cover object-center w-full h-full transition duration-500 lg:opacity-80 group-hover:opacity-100 group-hover:scale-110"
src="{{ asset('img/aprycot-media-bitcoin-21-lektionen-01.webp') }}" alt="">
</div>
<div class="relative z-10 flex flex-col items-start justify-start w-full px-6 py-7">
<span
class="px-2 py-1 mb-3 text-xs font-semibold tracking-tight text-white uppercase bg-amber-500 rounded-md">Reading</span>
<h4 class="text-4xl font-bold tracking-tight text-gray-100 sm:text-3xl md:text-2xl lg:text-3xl">
Bücher-Schränke
</h4>
</div>
</a>
</div>
</div>
</div>
</section>
{{-- FOOTER --}}
<livewire:frontend.footer/>
</div>

View File

@@ -2,9 +2,7 @@
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return to_route('search.city', ['country' => 'de']);
})
Route::get('/', \App\Http\Livewire\Frontend\Welcome::class)
->name('welcome');
Route::get('/auth/ln', \App\Http\Livewire\Auth\LNUrlAuth::class)