Skip to content

Commit 487301d

Browse files
committed
Fixed code style
1 parent 38b136b commit 487301d

3 files changed

Lines changed: 24 additions & 172 deletions

File tree

app/Http/Controllers/IdeaController.php

Lines changed: 21 additions & 169 deletions
Original file line numberDiff line numberDiff line change
@@ -2,187 +2,39 @@
22

33
namespace App\Http\Controllers;
44

5-
use App\Models\Enums\IdeaStatusEnum;
6-
use App\Models\Idea;
7-
use Illuminate\Http\Request;
5+
use App\Models\IdeaKey;
86
use Orchid\Support\Facades\Toast;
97

108
class IdeaController extends Controller
119
{
12-
public function index(Request $request)
10+
/**
11+
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View|\Illuminate\Foundation\Application|null
12+
*/
13+
public function index()
1314
{
14-
$query = Idea::query()->with('author');
15-
16-
if ($user = $request->user()) {
17-
$query->where(function ($q) use ($user) {
18-
$q->where('status', IdeaStatusEnum::Published)
19-
->orWhere('status', IdeaStatusEnum::Implemented)
20-
->orWhere(function ($subQ) use ($user) {
21-
$subQ->where('status', IdeaStatusEnum::Proposed)
22-
->where('user_id', $user->id);
23-
});
24-
})
25-
->orderByRaw("CASE WHEN user_id = ? AND status = 'proposed' THEN 0 ELSE 1 END", [$user->id])
26-
->orderBy('votes_count', 'desc');
27-
} else {
28-
$query->whereIn('status', [IdeaStatusEnum::Published, IdeaStatusEnum::Implemented])
29-
->orderBy('votes_count', 'desc');
30-
}
31-
32-
$ideas = $query->simplePaginate(5);
33-
34-
if ($user = $request->user()) {
35-
$ideas->getCollection()->transform(function ($idea) use ($user) {
36-
$idea->user_vote = $idea->getUserVote($user);
37-
38-
return $idea;
39-
});
40-
}
41-
42-
$isTurboFrameRequest = $request->header('Turbo-Frame');
43-
44-
if (! $isTurboFrameRequest && ! $request->isMethod('POST')) {
45-
return view('ideas.index', [
46-
'ideas' => $ideas,
47-
]);
48-
}
49-
50-
return turbo_stream([
51-
turbo_stream()->removeAll('.idea-placeholder'),
52-
turbo_stream()->append('ideas-frame', view('ideas._list', [
53-
'ideas' => $ideas,
54-
])),
55-
turbo_stream()->replace('idea-more', view('ideas._pagination', [
56-
'ideas' => $ideas,
57-
])),
58-
]);
59-
}
60-
61-
public function create()
62-
{
63-
return view('ideas.edit', [
64-
'idea' => new Idea,
65-
]);
15+
return view('idea.index');
6616
}
6717

68-
public function store(Request $request)
18+
/**
19+
* @return \Illuminate\Http\RedirectResponse
20+
*/
21+
public function store()
6922
{
70-
$this->authorize('create', Idea::class);
71-
72-
$validated = $request->validate([
73-
'title' => 'required|string|max:255',
74-
'description' => 'required|string|max:5000',
75-
]);
76-
77-
$idea = Idea::create([
78-
'title' => $validated['title'],
79-
'description' => $validated['description'],
80-
'user_id' => $request->user()->id,
81-
]);
82-
83-
$idea->load('author');
84-
$idea->user_vote = $idea->getUserVote($request->user());
85-
86-
Toast::info('Спасибо за идею! Она будет рассмотрена в ближайшее время.');
23+
Toast::success('Laravel Idea с 30 июля 2025 года бесплатен для всех пользователей PhpStorm.')
24+
->disableAutoHide();
8725

88-
return redirect()->route('ideas.index');
26+
return redirect()->route('home');
8927
}
9028

91-
public function vote(Request $request, Idea $idea)
29+
/**
30+
* @param \App\Models\IdeaKey $key
31+
*
32+
* @return \Illuminate\Contracts\View\View
33+
*/
34+
public function key(IdeaKey $key)
9235
{
93-
$this->authorize('vote', $idea);
94-
95-
$validated = $request->validate([
96-
'vote' => 'required|integer|in:1',
97-
]);
98-
99-
$idea->toggleVote($request->user(), $validated['vote']);
100-
101-
$idea = $idea->fresh();
102-
$idea->user_vote = $idea->getUserVote($request->user());
103-
104-
return turbo_stream([
105-
turbo_stream()
106-
->target("idea-vote-{$idea->id}")
107-
->action('replace')
108-
->view('ideas._vote-button', [
109-
'idea' => $idea,
110-
]),
111-
]);
112-
}
113-
114-
public function search(Request $request)
115-
{
116-
$query = $request->input('q', '');
117-
$user = $request->user();
118-
119-
if (strlen($query) < 3) {
120-
$ideaQuery = Idea::query()->with('author');
121-
122-
if ($user) {
123-
$ideaQuery->where(function ($q) use ($user) {
124-
$q->where('status', IdeaStatusEnum::Published)
125-
->orWhere('status', IdeaStatusEnum::Implemented)
126-
->orWhere(function ($subQ) use ($user) {
127-
$subQ->where('status', IdeaStatusEnum::Proposed)
128-
->where('user_id', $user->id);
129-
});
130-
})
131-
->orderByRaw("CASE WHEN user_id = ? AND status = 'proposed' THEN 0 ELSE 1 END", [$user->id])
132-
->orderBy('votes_count', 'desc');
133-
} else {
134-
$ideaQuery->whereIn('status', [IdeaStatusEnum::Published, IdeaStatusEnum::Implemented])
135-
->orderBy('votes_count', 'desc');
136-
}
137-
138-
$ideas = $ideaQuery->simplePaginate(5);
139-
} else {
140-
$searchQuery = Idea::search($query);
141-
142-
if ($user) {
143-
$searchQuery->query(fn ($builder) => $builder
144-
->with('author')
145-
->where(function ($q) use ($user) {
146-
$q->where('status', IdeaStatusEnum::Published)
147-
->orWhere('status', IdeaStatusEnum::Implemented)
148-
->orWhere(function ($subQ) use ($user) {
149-
$subQ->where('status', IdeaStatusEnum::Proposed)
150-
->where('user_id', $user->id);
151-
});
152-
})
153-
->orderByRaw("CASE WHEN user_id = ? AND status = 'proposed' THEN 0 ELSE 1 END", [$user->id])
154-
->orderBy('votes_count', 'desc')
155-
);
156-
} else {
157-
$searchQuery->whereIn('status', [IdeaStatusEnum::Published, IdeaStatusEnum::Implemented])
158-
->query(fn ($builder) => $builder->with('author'))
159-
->orderBy('votes_count', 'desc');
160-
}
161-
162-
$ideas = $searchQuery->simplePaginate(5);
163-
}
164-
165-
if ($user) {
166-
$ideas->getCollection()->transform(function ($idea) use ($user) {
167-
$idea->user_vote = $idea->getUserVote($user);
168-
169-
return $idea;
170-
});
171-
}
172-
173-
return turbo_stream([
174-
turbo_stream()
175-
->target('ideas-frame')
176-
->action('replace')
177-
->view('ideas._search-results', [
178-
'ideas' => $ideas,
179-
]),
180-
turbo_stream()
181-
->target('idea-more')
182-
->action('replace')
183-
->view('ideas._pagination', [
184-
'ideas' => $ideas,
185-
]),
36+
return view('idea.key', [
37+
'key' => $key,
18638
]);
18739
}
18840
}

app/View/Components/Docs/Banner.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public function __construct()
2121
[
2222
'title' => 'Сделай код аккуратным и понятным!',
2323
'image' => asset('/img/ui/doc-banners/pastebin.svg'),
24-
'href' => "https://github.com/tabuna/dandy-code",
24+
'href' => 'https://github.com/tabuna/dandy-code',
2525
],
2626
[
2727
'title' => 'Поделитесь своим кодом и идеями!',

resources/js/controllers/theme_controller.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export default class extends Controller {
2020
// ── Actions ─────────────────────────────────────────────────────────
2121

2222
toggleTheme() {
23-
const selected = this.preferredTargets.find(el => el.checked);
23+
const selected = this.preferredTargets.find((el) => el.checked);
2424
if (!selected) return;
2525

2626
const choice = selected.value; // "light" | "dark" | "auto"
@@ -61,7 +61,7 @@ export default class extends Controller {
6161

6262
#syncRadios() {
6363
// Синхронизируем radio с текущим выбором пользователя (не effective!)
64-
this.preferredTargets.forEach(el => {
64+
this.preferredTargets.forEach((el) => {
6565
el.checked = el.value === this.#userChoice;
6666
});
6767
}

0 commit comments

Comments
 (0)