diff --git a/app/Http/Controllers/ItemController.php b/app/Http/Controllers/ItemController.php
index 1d383e3..1403cf4 100644
--- a/app/Http/Controllers/ItemController.php
+++ b/app/Http/Controllers/ItemController.php
@@ -2,56 +2,14 @@
namespace App\Http\Controllers;
-use App\Enums\ItemActivity;
use App\Models\Item;
use App\Models\Project;
-use App\Settings\GeneralSettings;
use Filament\Notifications\Notification;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
-use Spatie\Activitylog\Models\Activity;
class ItemController extends Controller
{
- public function show($projectId, $itemId = null)
- {
- $project = null;
-
- if (! $itemId) {
- $item = Item::query()->visibleForCurrentUser()->where('slug', $projectId)->firstOrFail();
- } else {
- $project = Project::query()->visibleForCurrentUser()->where('slug', $projectId)->firstOrFail();
-
- $item = $project->items()->visibleForCurrentUser()->where('items.slug', $itemId)->firstOrFail();
- }
-
- $showGitHubLink = app(GeneralSettings::class)->show_github_link;
-
- $activities = $item->activities()->with('causer')->latest()->limit(10)->get()->filter(function (Activity $activity) use ($showGitHubLink) {
- if (! $showGitHubLink && ItemActivity::getForActivity($activity) === ItemActivity::LinkedToIssue) {
- return false;
- }
-
- return true;
- })->map(function (Activity $activity) {
- $itemActivity = ItemActivity::getForActivity($activity);
-
- if ($itemActivity !== null) {
- $activity->description = $itemActivity->getTranslation($activity->properties->get('attributes'));
- }
-
- return $activity;
- });
-
- return view('item', [
- 'project' => $project,
- 'board' => $item->board,
- 'item' => $item->load('tags'),
- 'user' => $item->user,
- 'activities' => $activities,
- ]);
- }
-
public function edit($id)
{
$item = auth()->user()->items()->findOrFail($id);
diff --git a/app/Http/Livewire/Items/Comments.php b/app/Http/Livewire/Items/Comments.php
index 00e9f04..7b9ba3a 100644
--- a/app/Http/Livewire/Items/Comments.php
+++ b/app/Http/Livewire/Items/Comments.php
@@ -63,10 +63,6 @@ public function submit()
$this->private_content = '';
$this->reply = null;
- if ($this->item->project) {
- $this->redirectRoute('projects.items.show', [$this->item->project, $this->item]);
- }
-
$this->redirectRoute('items.show', [$this->item]);
}
diff --git a/app/Http/Livewire/Items/Create.php b/app/Http/Livewire/Items/Create.php
index a7751ad..22272bb 100644
--- a/app/Http/Livewire/Items/Create.php
+++ b/app/Http/Livewire/Items/Create.php
@@ -67,7 +67,7 @@ public function submit()
$this->notify('success', trans('items.item_created'));
- $this->redirectRoute('projects.items.show', [$this->project, $item]);
+ $this->redirectRoute('items.show', $item);
}
public function render()
diff --git a/app/Http/Livewire/Items/Show.php b/app/Http/Livewire/Items/Show.php
new file mode 100644
index 0000000..2d11474
--- /dev/null
+++ b/app/Http/Livewire/Items/Show.php
@@ -0,0 +1,69 @@
+item = Item::query()->visibleForCurrentUser()->where('slug', $item)->firstOrFail();
+
+ $showGitHubLink = app(GeneralSettings::class)->show_github_link;
+
+ $this->activities = $this->item->activities()->with('causer')->latest()->limit(10)->get()->filter(function (Activity $activity) use ($showGitHubLink) {
+ if (! $showGitHubLink && ItemActivity::getForActivity($activity) === ItemActivity::LinkedToIssue) {
+ return false;
+ }
+
+ return true;
+ })->map(function (Activity $activity) {
+ $itemActivity = ItemActivity::getForActivity($activity);
+
+ if ($itemActivity !== null) {
+ $activity->description = $itemActivity->getTranslation($activity->properties->get('attributes'));
+ }
+
+ return $activity;
+ });
+
+ $this->project = $this->item->project;
+ $this->board = $this->item->board;
+ $this->item = $this->item->load('tags');
+ $this->user = $this->item->user;
+ }
+
+ public function render(): View
+ {
+ $layout = $this->project
+ ? \App\View\Components\Layouts\Project::class
+ : \App\View\Components\Layouts\App::class;
+
+ return view('livewire.item.show')
+ ->layout($layout)
+ ->layoutData([
+ 'project' => $this->project,
+ 'breadcrumbs' => [
+ ['title' => $this->project->title, 'url' => route('projects.home', $this->project)],
+ ['title' => $this->board->title, 'url' => route('projects.boards.show', [$this->project, $this->board])],
+ ['title' => $this->item->title, 'url' => route('items.show', $this->item)],
+ ],
+ ]);
+ }
+}
diff --git a/app/Http/Livewire/Modals/Item/Create.php b/app/Http/Livewire/Modals/Item/Create.php
index 612f824..df00f75 100644
--- a/app/Http/Livewire/Modals/Item/Create.php
+++ b/app/Http/Livewire/Modals/Item/Create.php
@@ -161,7 +161,7 @@ public function submit()
});
}
- return redirect()->route('items.show', $item->slug);
+ return $this->redirectRoute('items.show', $item->slug);
}
public function setSimilarItems($state): void
diff --git a/app/Http/Livewire/My.php b/app/Http/Livewire/My.php
index e1ca0ef..ac38c18 100644
--- a/app/Http/Livewire/My.php
+++ b/app/Http/Livewire/My.php
@@ -57,15 +57,7 @@ protected function getTableColumns(): array
protected function getTableRecordUrlUsing(): ?Closure
{
return function ($record) {
- if (! $record->board) {
- return route('items.show', $record);
- }
-
- if (! $record->project) {
- return route('items.show', $record);
- }
-
- return route('projects.items.show', [$record->project, $record]);
+ return route('items.show', $record);
};
}
diff --git a/app/Http/Livewire/Welcome/RecentItems.php b/app/Http/Livewire/Welcome/RecentItems.php
index eca6888..cf7bc4c 100644
--- a/app/Http/Livewire/Welcome/RecentItems.php
+++ b/app/Http/Livewire/Welcome/RecentItems.php
@@ -44,11 +44,7 @@ protected function getTableRecordUrlUsing(): ?Closure
return route('items.show', $record);
}
- if (! $record->project) {
- return route('items.show', $record);
- }
-
- return route('projects.items.show', [$record->project, $record]);
+ return route('items.show', $record);
};
}
diff --git a/resources/views/item.blade.php b/resources/views/item.blade.php
deleted file mode 100644
index 76eeb10..0000000
--- a/resources/views/item.blade.php
+++ /dev/null
@@ -1,145 +0,0 @@
-@section('title', $item->title)
-@section('image', $item->getOgImage('"' . $item->excerpt .'"', 'Roadmap - Item'))
-@section('description', $item->excerpt)
-
- {{ $user->name ?? '-Unknown user-' }} {{ $item->title }} {{ $item->excerpt }}{{ $item->title }}
-
-
-
- @if(app(\App\Settings\GeneralSettings::class)->enable_item_age)
-
- ({{ $item->created_at->diffInDays(now()) }} {{ trans_choice('items.days-ago', $item->created_at->diffInDays(now())) }})
-
- @endif
-
{{ $user->name ?? '-Unknown user-' }}
+