Skip to content

Commit 467ee57

Browse files
committed
refactored AssetsHandler, added component 'chosen posts'
1 parent 4423019 commit 467ee57

File tree

17 files changed

+177
-135
lines changed

17 files changed

+177
-135
lines changed

app/Http/Controllers/Backend/PageController.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use App\Models\Page;
88
use App\Models\Template;
99
use App\Services\MetadataHandler;
10-
use App\Services\ResourceFilesHandler;
10+
use App\Services\AssetsHandler;
1111
use Illuminate\Support\Facades\Storage;
1212

1313
class PageController extends Controller
@@ -36,8 +36,8 @@ public function store(ResourceRequest $request)
3636
'custom_template' => $request->custom_template,
3737
'slug' => MetadataHandler::generateSlug($request->slug),
3838
'default_template' => MetadataHandler::generateTemplate($request->default_template),
39-
'css' => ResourceFilesHandler::createCss($request->css, MetadataHandler::generateSlug($request->slug), 'resources'),
40-
'js' => ResourceFilesHandler::createJs($request->js, MetadataHandler::generateSlug($request->slug), 'resources')
39+
'css' => AssetsHandler::createCss($request->css, MetadataHandler::generateSlug($request->slug), 'resources'),
40+
'js' => AssetsHandler::createJs($request->js, MetadataHandler::generateSlug($request->slug), 'resources')
4141
]);
4242

4343
return redirect()->route('pages');
@@ -71,8 +71,8 @@ public function update(ResourceRequest $request, Page $page)
7171
'custom_template' => $request->custom_template,
7272
'slug' => MetadataHandler::generateSlug($request->slug),
7373
'default_template' => MetadataHandler::generateTemplate($request->default_template),
74-
'css' => ResourceFilesHandler::createCss($request->css, MetadataHandler::generateSlug($request->slug), 'resources'),
75-
'js' => ResourceFilesHandler::createJs($request->js, MetadataHandler::generateSlug($request->slug), 'resources')
74+
'css' => AssetsHandler::createCss($request->css, MetadataHandler::generateSlug($request->slug), 'resources'),
75+
'js' => AssetsHandler::createJs($request->js, MetadataHandler::generateSlug($request->slug), 'resources')
7676
]);
7777

7878
return redirect()->route('pages');

app/Http/Controllers/Backend/PostController.php

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
use App\Http\Requests\ResourceRequest;
77
use App\Models\Post;
88
use App\Models\Template;
9+
use App\Services\AssetsHandler;
910
use App\Services\MetadataHandler;
10-
use App\Services\ResourceFilesHandler;
1111
use Conner\Tagging\Model\Tag;
1212
use Illuminate\Support\Facades\Storage;
1313

@@ -45,15 +45,16 @@ public function store(ResourceRequest $request)
4545
$post = Post::create([
4646
'contents' => $request->contents,
4747
'is_published' => $request->is_published,
48+
'is_chosen' => $request->is_chosen,
4849
'description' => $request->description,
4950
'custom_template' => $request->custom_template,
5051
'slug' => MetadataHandler::generateSlug($request->slug),
5152
'has_image' => MetadataHandler::checkIfPostHasImage($request->contents),
5253
'first_sentence' => MetadataHandler::generateFirstSentence($request->contents, $request->description),
5354
'default_template' => MetadataHandler::generateTemplate($request->default_template),
54-
'css' => ResourceFilesHandler::createCss($request->css,
55+
'css' => AssetsHandler::createCss($request->css,
5556
MetadataHandler::generateSlug($request->slug), 'resources'),
56-
'js' => ResourceFilesHandler::createJs($request->js,
57+
'js' => AssetsHandler::createJs($request->js,
5758
MetadataHandler::generateSlug($request->slug), 'resources')
5859
]);
5960
$post->tag(explode(',', $request->tags));
@@ -85,15 +86,16 @@ public function update(ResourceRequest $request, Post $post)
8586
$post->update([
8687
'contents' => $request->contents,
8788
'is_published' => $request->is_published,
89+
'is_chosen' => $request->is_chosen,
8890
'description' => $request->description,
8991
'custom_template' => $request->custom_template,
9092
'slug' => MetadataHandler::generateSlug($request->slug),
9193
'has_image' => MetadataHandler::checkIfPostHasImage($request->contents),
9294
'first_sentence' => MetadataHandler::generateFirstSentence($request->contents, $request->description),
9395
'default_template' => MetadataHandler::generateTemplate($request->default_template),
94-
'css' => ResourceFilesHandler::createCss($request->css,
96+
'css' => AssetsHandler::createCss($request->css,
9597
MetadataHandler::generateSlug($request->slug), 'resources'),
96-
'js' => ResourceFilesHandler::createJs($request->js,
98+
'js' => AssetsHandler::createJs($request->js,
9799
MetadataHandler::generateSlug($request->slug), 'resources')
98100
]);
99101
$post->retag($request->tags);

app/Http/Controllers/Backend/SettingController.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,7 @@ public function update()
2929

3030
public function cacheClear()
3131
{
32-
Artisan::call('cache:clear');
33-
Artisan::call('route:clear');
34-
Artisan::call('view:clear');
35-
Artisan::call('config:clear ');
32+
Artisan::call('optimize:clear');
3633
return back()->with('status', 'Cache cleared.');
3734
}
3835

app/Http/Controllers/Backend/TemplateController.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use App\Http\Controllers\Controller;
66
use App\Http\Requests\TemplateRequest;
77
use App\Models\Template;
8-
use App\Services\ResourceFilesHandler;
8+
use App\Services\AssetsHandler;
99
use Illuminate\Support\Facades\Storage;
1010
use Illuminate\Support\Str;
1111

@@ -31,9 +31,9 @@ public function store(TemplateRequest $request)
3131
'name' => $request->name,
3232
'description' => $request->description,
3333
'file_name' => Str::snake($request->file_name),
34-
'file' => ResourceFilesHandler::createFile($request->file, $request->file_name),
35-
'css' => ResourceFilesHandler::createCss($request->css, $request->file_name, 'templates'),
36-
'js' => ResourceFilesHandler::createJs($request->js, $request->file_name, 'templates'),
34+
'file' => AssetsHandler::createFile($request->file, $request->file_name),
35+
'css' => AssetsHandler::createCss($request->css, $request->file_name, 'templates'),
36+
'js' => AssetsHandler::createJs($request->js, $request->file_name, 'templates'),
3737
]);
3838

3939
return redirect()->route('templates');
@@ -62,9 +62,9 @@ public function update(TemplateRequest $request, Template $template)
6262
'name' => $request->name,
6363
'description' => $request->description,
6464
'file_name' => Str::snake($request->file_name),
65-
'file' => ResourceFilesHandler::createFile($request->file, $request->file_name),
66-
'css' => ResourceFilesHandler::createCss($request->css, $request->file_name, 'templates'),
67-
'js' => ResourceFilesHandler::createJs($request->js, $request->file_name, 'templates'),
65+
'file' => AssetsHandler::createFile($request->file, $request->file_name),
66+
'css' => AssetsHandler::createCss($request->css, $request->file_name, 'templates'),
67+
'js' => AssetsHandler::createJs($request->js, $request->file_name, 'templates'),
6868
]);
6969

7070
return redirect()->route('templates');

app/Models/Post.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,9 @@ public function scopePublished($query)
2727
{
2828
return $query->where('is_published', 1);
2929
}
30+
31+
public function scopeChosen($query)
32+
{
33+
return $query->where('is_chosen', 1);
34+
}
3035
}

app/Providers/ViewServiceProvider.php

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,29 @@
22

33
namespace App\Providers;
44

5-
use Illuminate\Support\ServiceProvider;
6-
use Illuminate\Support\Facades\View;
5+
use App\Models\Post;
76
use App\Models\Setting;
87
use Illuminate\Support\Facades\Schema;
8+
use Illuminate\Support\Facades\View;
9+
use Illuminate\Support\ServiceProvider;
910

1011
class ViewServiceProvider extends ServiceProvider
1112
{
12-
/**
13-
* Register services.
14-
*
15-
* @return void
16-
*/
17-
public function register()
18-
{
19-
//
20-
}
21-
22-
/**
23-
* Bootstrap services.
24-
*
25-
* @return void
26-
*/
2713
public function boot()
2814
{
2915
// checking table existence, or migrations will fail
3016
if (Schema::hasTable('settings')) {
3117
View::share('settings', Setting::first());
3218
}
3319

20+
// view component 'chosen-posts'
21+
if (Schema::hasTable('posts')) {
22+
View::composer('components.chosen-posts', function ($view) {
23+
$view->with(['chosenPosts' => Post::published()
24+
->chosen()
25+
->select(['first_sentence', 'slug'])
26+
->get()]);
27+
});
28+
}
3429
}
3530
}

app/Services/ResourceFilesHandler.php renamed to app/Services/AssetsHandler.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
use Illuminate\Support\Facades\Storage;
66

7-
class ResourceFilesHandler
7+
class AssetsHandler
88
{
99
public static function createFile($file, $filename)
1010
{

database/migrations/2021_01_18_130926_create_posts_table.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public function up()
2424
$table->foreign('custom_template')
2525
->references('id')->on('templates')->onDelete('set null');
2626
$table->boolean('is_published')->default(true)->nullable();
27+
$table->boolean('is_chosen')->default(false)->nullable();
2728
$table->boolean('has_image')->default(false)->nullable();
2829
$table->string('css')->nullable();
2930
$table->string('js')->nullable();

database/seeders/PostSeeder.php

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace Database\Seeders;
44

55
use App\Models\Post;
6-
use App\Services\ResourceFilesHandler;
6+
use App\Services\AssetsHandler;
77
use Illuminate\Database\Seeder;
88

99
class PostSeeder extends Seeder
@@ -17,7 +17,7 @@ public function run()
1717
'slug' => 'my_day',
1818
'is_published' => 1,
1919
'default_template' => 'sand',
20-
'css' => ResourceFilesHandler::createCss(
20+
'css' => AssetsHandler::createCss(
2121
'header, footer {background: radial-gradient(circle, var(--darker-optional) 0%, var(--optional-color) 100%);}',
2222
'my_day',
2323
'resources'),
@@ -34,13 +34,22 @@ public function run()
3434
]);
3535
$post2->tag('application, time optimization');
3636

37-
$post3 = Post::create([
37+
$hidden_post = Post::create([
3838
'first_sentence' => 'Secret post',
3939
'contents' => '<p>This post is unpublished. It\'s only available via a direct link.</p>',
4040
'slug' => 'unpublished',
4141
'is_published' => null,
4242
'default_template' => 'blue',
4343
]);
44-
$post3->tag('unpublished');
44+
$hidden_post->tag('unpublished');
45+
46+
$chosen_post = Post::create([
47+
'first_sentence' => 'My favorite post',
48+
'contents' => '<p>This post is chosen and added in "Editor\'s choice" component.</p>',
49+
'slug' => 'chosen',
50+
'is_chosen' => true,
51+
'default_template' => 'blue',
52+
]);
53+
$chosen_post->tag('Favorite Post');
4554
}
4655
}

public/css/style.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ table.table-alternating tbody tr:nth-of-type(2n),
2929
background-color: var(--muted-light) !important;
3030
}
3131

32+
.chosen {
33+
background-color: var(--darker-optional) !important;
34+
}
35+
3236
a.active {
3337
color: var(--link);
3438
background-color: var(--optional-color);

0 commit comments

Comments
 (0)