From 52daa3b68f1a2e1085981bd97ffb57c64cb08350 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Tue, 13 Jul 2021 18:01:49 +0200 Subject: [PATCH 001/106] app/Models/User.php: adding getRoleAttribute() --- app/Models/User.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/Models/User.php b/app/Models/User.php index b3dc880..f47c02a 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -46,4 +46,12 @@ class User extends Authenticatable { return $this->hasMany(Character::class); } + + public function getRoleAttribute() + { + if (!$this->attributes['role']) { + return 'user'; + } + return $this->attributes['role']; + } } From 94a4d3994f1128eb95e14e482b9dc3f3423c3e46 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Tue, 13 Jul 2021 18:25:09 +0200 Subject: [PATCH 002/106] app/Models/User.php: Add soft deletes. --- app/Models/User.php | 3 ++- ...3_181438_add_softdelete_to_users_table.php | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 database/migrations/2021_07_13_181438_add_softdelete_to_users_table.php diff --git a/app/Models/User.php b/app/Models/User.php index f47c02a..13d9221 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -4,12 +4,13 @@ namespace App\Models; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; class User extends Authenticatable { - use HasFactory, Notifiable; + use HasFactory, Notifiable, SoftDeletes; /** * The attributes that are mass assignable. diff --git a/database/migrations/2021_07_13_181438_add_softdelete_to_users_table.php b/database/migrations/2021_07_13_181438_add_softdelete_to_users_table.php new file mode 100644 index 0000000..58e8914 --- /dev/null +++ b/database/migrations/2021_07_13_181438_add_softdelete_to_users_table.php @@ -0,0 +1,22 @@ +dropUnique(['username']); + $table->dropUnique(['discord_id']); + $table->softDeletes(); + }); + } +} From c806f54ea281a2fbaa61cbd9e133a8825d6124dd Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Tue, 13 Jul 2021 18:25:31 +0200 Subject: [PATCH 003/106] app/Models/Character.php: Add soft deletes. --- app/Models/Character.php | 3 ++- ...945_add_softdelete_to_characters_table.php | 21 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 database/migrations/2021_07_13_181945_add_softdelete_to_characters_table.php diff --git a/app/Models/Character.php b/app/Models/Character.php index 9d92b55..979f24a 100644 --- a/app/Models/Character.php +++ b/app/Models/Character.php @@ -4,11 +4,12 @@ namespace App\Models; use Illuminate\Support\Str; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\Model; class Character extends Model { - use HasFactory; + use HasFactory, SoftDeletes; public $timestamps = false; diff --git a/database/migrations/2021_07_13_181945_add_softdelete_to_characters_table.php b/database/migrations/2021_07_13_181945_add_softdelete_to_characters_table.php new file mode 100644 index 0000000..c39a289 --- /dev/null +++ b/database/migrations/2021_07_13_181945_add_softdelete_to_characters_table.php @@ -0,0 +1,21 @@ +dropUnique(['name']); + $table->softDeletes(); + }); + } +} From 866b374070908aa5a5f9614f9ead16df11efe2e9 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Tue, 13 Jul 2021 18:32:17 +0200 Subject: [PATCH 004/106] app/Http/Livewire/Form/CharacterForm.php: Do not include deleted rows in unique name validation. --- app/Http/Livewire/Form/CharacterForm.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Livewire/Form/CharacterForm.php b/app/Http/Livewire/Form/CharacterForm.php index b08b505..2040bb6 100644 --- a/app/Http/Livewire/Form/CharacterForm.php +++ b/app/Http/Livewire/Form/CharacterForm.php @@ -45,7 +45,7 @@ class CharacterForm extends Component public function rules() { return [ - 'character.name' => [ 'required', 'min:4', Rule::unique('characters', 'name')->ignore($this->character) ], + 'character.name' => [ 'required', 'min:4', Rule::unique('characters', 'name')->ignore($this->character)->whereNotNull('deleted_at') ], 'character.level' => [ 'required', 'integer', 'min:1', 'max:70' ], 'character.gender' => [ 'required', 'in:M,F' ], 'character.race' => [ 'required', 'in:' . $this->races->keys()->join(',') ], From f09fea4f08c4a10a3e66cc56e81d432142613010 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Tue, 13 Jul 2021 18:33:19 +0200 Subject: [PATCH 005/106] app/Models/User.php: Also delete characters when deleting the user. --- app/Models/User.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/Models/User.php b/app/Models/User.php index 13d9221..d69c007 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -43,6 +43,15 @@ class User extends Authenticatable 'email_verified_at' => 'datetime', ]; + protected static function boot() + { + parent::boot(); + + static::deleted(function ($user) { + $user->characters()->delete(); + }); + } + public function characters() { return $this->hasMany(Character::class); From de19260f35407ad463c28e953f7b853c22fa2b8b Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Tue, 13 Jul 2021 18:37:26 +0200 Subject: [PATCH 006/106] tests/Feature/CharacterDestroyTest.php: fix test to account for softdeletes. --- tests/Feature/CharacterDestroyTest.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/Feature/CharacterDestroyTest.php b/tests/Feature/CharacterDestroyTest.php index 83f587f..d804c60 100644 --- a/tests/Feature/CharacterDestroyTest.php +++ b/tests/Feature/CharacterDestroyTest.php @@ -23,7 +23,7 @@ class CharacterDestroyTest extends TestCase $response->assertStatus(302); // Redirect - $this->assertDatabaseMissing('characters', [ 'id' => $character->id ]); + $this->assertDatabaseMissing('characters', [ 'id' => $character->id, 'deleted_at' => NULL ]); } public function test_guest_can_not_delete_character() @@ -34,7 +34,7 @@ class CharacterDestroyTest extends TestCase $response->assertStatus(403); // Not allowed - $this->assertDatabaseHas('characters', [ 'id' => $character->id ]); + $this->assertDatabaseHas('characters', [ 'id' => $character->id, 'deleted_at' => NULL ]); } public function test_user_can_not_delete_someone_elses_character() @@ -48,6 +48,6 @@ class CharacterDestroyTest extends TestCase $response->assertStatus(403); // Not allowed - $this->assertDatabaseHas('characters', [ 'id' => $character->id ]); + $this->assertDatabaseHas('characters', [ 'id' => $character->id, 'deleted_at' => NULL ]); } } From d8917e118b774d3f3b1533cf225ce27b0131fbcb Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Tue, 13 Jul 2021 18:47:24 +0200 Subject: [PATCH 007/106] app/Http/Controllers/Auth/OAuthController.php: check trashed records before trying to login via oauth. --- app/Http/Controllers/Auth/OAuthController.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/Http/Controllers/Auth/OAuthController.php b/app/Http/Controllers/Auth/OAuthController.php index d6c4aad..6e2a867 100644 --- a/app/Http/Controllers/Auth/OAuthController.php +++ b/app/Http/Controllers/Auth/OAuthController.php @@ -30,6 +30,12 @@ class OAuthController extends Controller { $oauth = Socialite::driver($driver)->stateless()->user(); + // Check that account is not deleted before trying to find/create user and login. + if (User::onlyTrashed()->where("{$driver}_id", $oauth->getId())->first()) { + return redirect('/') + ->with(['error' => "Account suspended."]); + } + $user = User::firstOrCreate([ "{$driver}_id" => $oauth->getId() ], [ 'username' => $oauth->getNickname() ]); From c53a4155f4ac41371ac88b9b39891219e1b873ba Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Thu, 15 Jul 2021 15:37:34 +0200 Subject: [PATCH 008/106] app/Providers/AuthServiceProvider.php: adding "administrate" gate. --- app/Providers/AuthServiceProvider.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index 780046e..4f0d2ce 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -2,6 +2,7 @@ namespace App\Providers; +use App\Models\User; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; use Illuminate\Support\Facades\Gate; @@ -25,5 +26,9 @@ class AuthServiceProvider extends ServiceProvider public function boot() { $this->registerPolicies(); + + Gate::define('administrate', function(User $user) { + return $user->role === 'admin'; + }); } } From bd21a641919439e2702fc1467a7d6ec5c6bc481f Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Thu, 15 Jul 2021 15:38:58 +0200 Subject: [PATCH 009/106] Adding user handling pages for admins. --- app/Http/Controllers/Admin/UserController.php | 38 +++ app/Http/Livewire/AdminUserTable.php | 44 ++++ app/Http/Livewire/Form/Admin/UserForm.php | 83 +++++++ resources/views/admin/user/form.blade.php | 11 + resources/views/admin/user/index.blade.php | 13 ++ .../views/livewire/admin-user-table.blade.php | 42 ++++ .../views/livewire/form/admin/user.blade.php | 27 +++ routes/web.php | 8 + tests/Feature/Admin/UserTest.php | 219 ++++++++++++++++++ 9 files changed, 485 insertions(+) create mode 100644 app/Http/Controllers/Admin/UserController.php create mode 100644 app/Http/Livewire/AdminUserTable.php create mode 100644 app/Http/Livewire/Form/Admin/UserForm.php create mode 100644 resources/views/admin/user/form.blade.php create mode 100644 resources/views/admin/user/index.blade.php create mode 100644 resources/views/livewire/admin-user-table.blade.php create mode 100644 resources/views/livewire/form/admin/user.blade.php create mode 100644 tests/Feature/Admin/UserTest.php diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php new file mode 100644 index 0000000..b9c1291 --- /dev/null +++ b/app/Http/Controllers/Admin/UserController.php @@ -0,0 +1,38 @@ + $user + ]); + } + + /** + * Delete user. + */ + public function destroy(User $user) + { + $user->delete(); + + return redirect()->route('admin.users.index') + ->with(['success' => "{$user->username} was deleted!"]); + } +} diff --git a/app/Http/Livewire/AdminUserTable.php b/app/Http/Livewire/AdminUserTable.php new file mode 100644 index 0000000..fc22762 --- /dev/null +++ b/app/Http/Livewire/AdminUserTable.php @@ -0,0 +1,44 @@ + ['except' => ''], + 'role' => ['except' => ''] + ]; + + /** + * Filter by username + */ + public $username; + + /** + * Filter by role + */ + public $role; + + public function render() + { + $query = User::query()->orderBy('username'); + + if (strlen($this->username) >= 3) { + $query->where('username', 'LIKE', '%' . $this->username . '%'); + } + + if (in_array($this->role, ['user','admin'])) { + $query->where('role', $this->role); + } + + return view('livewire.admin-user-table', [ + 'users' => $query->paginate($this->perPage) + ]); + } +} diff --git a/app/Http/Livewire/Form/Admin/UserForm.php b/app/Http/Livewire/Form/Admin/UserForm.php new file mode 100644 index 0000000..50f3f6d --- /dev/null +++ b/app/Http/Livewire/Form/Admin/UserForm.php @@ -0,0 +1,83 @@ +user = $user; + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + 'user.username' => ['required', 'min:4', Rule::unique('users', 'username')->ignore($this->user) ], + 'user.role' => 'required|in:user,admin', + 'password' => ($this->user->exists ? 'nullable' : 'required') . '|min:8|confirmed', + ]; + } + + public function updated($property) + { + $this->validateOnly($property); + } + + /** + * Save the user + */ + public function save() + { + $this->authorize('administrate'); + + $this->validate(); + + if ($this->password) { + $this->user->password = Hash::make($this->password); + } + $this->user->save(); + + // Livewire redirect() does not have "with" method. + // so we call session()->flash() directly instead. + session()->flash('success', "{$this->user->username} was " + . ($this->user->exists ? "updated!" : "created!")); + return redirect()->route('admin.users.index'); + } + + public function render() + { + return view('livewire.form.admin.user'); + } +} diff --git a/resources/views/admin/user/form.blade.php b/resources/views/admin/user/form.blade.php new file mode 100644 index 0000000..a0ffe42 --- /dev/null +++ b/resources/views/admin/user/form.blade.php @@ -0,0 +1,11 @@ + + +{{ __('Admin') }} - {{ __('Users') }} - {{ __(isset($model) ? 'Edit' : 'New') }} + +@if (isset($model)) + +@else + +@endif + + diff --git a/resources/views/admin/user/index.blade.php b/resources/views/admin/user/index.blade.php new file mode 100644 index 0000000..3fd04e7 --- /dev/null +++ b/resources/views/admin/user/index.blade.php @@ -0,0 +1,13 @@ + + +{{ __('Admin') }} - {{ __('Users') }} + + + + {{ __('New') }} + + + + + + diff --git a/resources/views/livewire/admin-user-table.blade.php b/resources/views/livewire/admin-user-table.blade.php new file mode 100644 index 0000000..592738a --- /dev/null +++ b/resources/views/livewire/admin-user-table.blade.php @@ -0,0 +1,42 @@ +
+ + + + + + + + + + + + + + + + + @foreach($users as $user) + + + + + + + + @endforeach +
UsernameRoleCreatedUpdated 
+ + {{ $user->username }} + + {{ $user->role }}{{ $user->created_at }}{{ $user->updated_at }} + + + + + +
+ +
+ {{ $users->links() }} +
+
diff --git a/resources/views/livewire/form/admin/user.blade.php b/resources/views/livewire/form/admin/user.blade.php new file mode 100644 index 0000000..f52d936 --- /dev/null +++ b/resources/views/livewire/form/admin/user.blade.php @@ -0,0 +1,27 @@ + + +
+ {{ __('Username') }} + +
+ +
+ {{ __('Role') }} + +
+ + +
+ {{ __('Password') }} + +
+ +
+ {{ __('Confirm Password') }} + +
+ +
+ +
+
diff --git a/routes/web.php b/routes/web.php index bdc532c..c53ac4d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -10,6 +10,8 @@ use App\Http\Controllers\RecipeController; use App\Http\Controllers\Auth\SessionController; +use App\Http\Controllers\Admin\UserController as AdminUserController; + require "oauth.php"; /* @@ -70,4 +72,10 @@ Route::middleware(['auth'])->group(function() { Route::get('/edit', [UserController::class, 'edit'])->name('edit'); Route::post('/', [UserController::class, 'update'])->name('update'); }); + + // Admin + Route::middleware(['can:administrate'])->prefix('admin')->name('admin.')->group(function () { + + Route::resource('users', AdminUserController::class)->except(['show', 'store', 'update']); + }); }); diff --git a/tests/Feature/Admin/UserTest.php b/tests/Feature/Admin/UserTest.php new file mode 100644 index 0000000..2b1bd52 --- /dev/null +++ b/tests/Feature/Admin/UserTest.php @@ -0,0 +1,219 @@ +create(['role' => 'admin']); + + $response = $this->actingAs($user) + ->get(route('admin.users.index')); + + $response->assertStatus(200); + } + + public function test_non_admin_cannot_view_users_list() + { + $user = User::factory()->create(['role' => 'user']); + + // Standard user + $response = $this->actingAs($user) + ->get(route('admin.users.index')); + + $response->assertForbidden("Standard user"); + + // Guest + $response = $this->get(route('admin.users.index')); + + $response->assertForbidden("Guest"); + } + + public function test_admin_can_render_create_page() + { + $user = User::factory()->create(['role' => 'admin']); + + $response = $this->actingAs($user) + ->get(route('admin.users.create')); + + $response->assertStatus(200); + } + + public function test_non_admin_cannot_render_create_page() + { + $user = User::factory()->create(['role' => 'user']); + + // Standard user + $response = $this->actingAs($user) + ->get(route('admin.users.create')); + + $response->assertForbidden("Standard user"); + + // Guest + $response = $this->get(route('admin.users.create')); + + $response->assertForbidden("Guest"); + } + + public function test_admin_can_create_user() + { + $user = User::factory()->create(['role' => 'admin']); + + $this->actingAs($user); + + \Livewire::test(UserForm::class) + ->set('user.username', 'scammer123') + ->set('user.role', 'user') + ->set('password', 'password1234') + ->set('password_confirmation', 'password1234') + ->call('save') + ->assertRedirect(route('admin.users.index')); + + $this->assertDatabaseHas('users', [ + 'username' => 'scammer123', + 'role' => 'user' + ]); + } + + public function test_non_admin_cannot_create_users() + { + // Guest + \Livewire::test(UserForm::class) + ->set('user.username', 'nonadmin') + ->set('user.role', 'user') + ->set('password', 'password1234') + ->set('password_confirmation', 'password1234') + ->call('save') + ->assertForbidden(); + + $this->assertDatabaseMissing('users', ['username' => 'nonadmin']); + + // Standard user + $this->actingAs(User::factory()->create(['role' => 'user'])); + + \Livewire::test(UserForm::class) + ->set('user.username', 'nonadmin') + ->set('user.role', 'user') + ->set('password', 'password1234') + ->set('password_confirmation', 'password1234') + ->call('save') + ->assertForbidden(); + + $this->assertDatabaseMissing('users', ['username' => 'nonadmin']); + } + + public function test_admin_can_render_edit_page() + { + $user = User::factory()->create(['role' => 'admin']); + $edit = User::factory()->create(); + + $response = $this->actingAs($user) + ->get(route('admin.users.edit', ['user' => $edit])); + + $response->assertStatus(200); + } + + public function test_non_admin_cannot_render_edit_page() + { + $user = User::factory()->create(['role' => 'user']); + $edit = User::factory()->create(); + + // Standard user + $response = $this->actingAs($user) + ->get(route('admin.users.edit', ['user' => $edit])); + + $response->assertForbidden("Standard user"); + + // Guest + $response = $this->get(route('admin.users.edit', ['user' => $edit])); + + $response->assertForbidden("Guest"); + } + + public function test_admin_can_edit_user() + { + $user = User::factory()->create(['role' => 'admin']); + $edit = User::factory()->create(['role' => 'user']); + + $this->actingAs($user); + + \Livewire::test(UserForm::class, [ 'user' => $edit ]) + ->set('user.username', 'Edited') + ->call('save') + ->assertRedirect(route('admin.users.index')); + + $this->assertDatabaseHas('users', [ + 'username' => 'Edited', + 'role' => 'user', + ]); + } + + public function test_non_admin_cannot_edit_user() + { + $edit = User::factory()->create(['username' => 'Untouched', 'role' => 'user']); + + // Guest + \Livewire::test(UserForm::class, [ 'user' => $edit ]) + ->set('user.username', 'Cantedit') + ->call('save') + ->assertForbidden(); + + $this->assertDatabaseHas('users', [ + 'username' => 'Untouched', + 'role' => 'user', + ]); + + // Standard user + $this->actingAs(User::factory()->create(['role' => 'user'])); + + \Livewire::test(UserForm::class, [ 'user' => $edit ]) + ->set('user.username', 'Cantedit') + ->call('save') + ->assertForbidden(); + + $this->assertDatabaseHas('users', [ + 'username' => 'Untouched', + 'role' => 'user', + ]); + } + + public function test_admin_can_delete_user() + { + $user = User::factory()->create(['role' => 'admin']); + $delete = User::factory()->create(); + + $response = $this->actingAs($user) + ->delete(route('admin.users.destroy', [ 'user' => $delete ])); + + $this->assertDatabaseMissing('users', [ 'id' => $delete->id, 'deleted_at' => NULL ]); + } + + public function test_non_admin_cannot_delete_user() + { + $user = User::factory()->create(['role' => 'user']); + $delete = User::factory()->create(); + + // Standard user + $response = $this->actingAs($user) + ->delete(route('admin.users.destroy', [ 'user' => $delete ])); + + $response->assertForbidden("Standard user"); + $this->assertDatabaseHas('users', [ 'id' => $delete->id, 'deleted_at' => NULL ]); + + // Guest + $response = $this->delete(route('admin.users.destroy', [ 'user' => $delete ])); + + $response->assertForbidden("Guest"); + $this->assertDatabaseHas('users', [ 'id' => $delete->id, 'deleted_at' => NULL ]); + } +} From 3179e59daf57f56b861e1b773c55169930a24c8f Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Thu, 15 Jul 2021 15:40:01 +0200 Subject: [PATCH 010/106] resources/views/partials/navigation.blade.php: Adding admin link. --- resources/views/partials/navigation.blade.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/resources/views/partials/navigation.blade.php b/resources/views/partials/navigation.blade.php index a9cd15a..14c763b 100644 --- a/resources/views/partials/navigation.blade.php +++ b/resources/views/partials/navigation.blade.php @@ -10,6 +10,10 @@ {{ __('Roster') }} {{ __('Recipes') }} + + @can("administrate") + {{ __('Admin') }} + @endcan
From f84a0579f26e3500e266d88f4c6e18643e475826 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 30 Jun 2021 13:59:35 +0200 Subject: [PATCH 011/106] Adding race icons :) --- resources/images/races/bloodelf_F.jpg | Bin 0 -> 1921 bytes resources/images/races/bloodelf_M.jpg | Bin 0 -> 1979 bytes resources/images/races/draenei_F.jpg | Bin 0 -> 1863 bytes resources/images/races/draenei_M.jpg | Bin 0 -> 1743 bytes resources/images/races/dwarf_F.jpg | Bin 0 -> 1984 bytes resources/images/races/dwarf_M.jpg | Bin 0 -> 2009 bytes resources/images/races/gnome_F.jpg | Bin 0 -> 1897 bytes resources/images/races/gnome_M.jpg | Bin 0 -> 2103 bytes resources/images/races/human_F.jpg | Bin 0 -> 1934 bytes resources/images/races/human_M.jpg | Bin 0 -> 1830 bytes resources/images/races/nightelf_F.jpg | Bin 0 -> 1809 bytes resources/images/races/nightelf_M.jpg | Bin 0 -> 1925 bytes resources/images/races/orc_F.jpg | Bin 0 -> 1807 bytes resources/images/races/orc_M.jpg | Bin 0 -> 2046 bytes resources/images/races/tauren_F.jpg | Bin 0 -> 1849 bytes resources/images/races/tauren_M.jpg | Bin 0 -> 1908 bytes resources/images/races/troll_F.jpg | Bin 0 -> 2035 bytes resources/images/races/troll_M.jpg | Bin 0 -> 1850 bytes resources/images/races/undead_F.jpg | Bin 0 -> 1785 bytes resources/images/races/undead_M.jpg | Bin 0 -> 1917 bytes 20 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 resources/images/races/bloodelf_F.jpg create mode 100644 resources/images/races/bloodelf_M.jpg create mode 100644 resources/images/races/draenei_F.jpg create mode 100644 resources/images/races/draenei_M.jpg create mode 100644 resources/images/races/dwarf_F.jpg create mode 100644 resources/images/races/dwarf_M.jpg create mode 100644 resources/images/races/gnome_F.jpg create mode 100644 resources/images/races/gnome_M.jpg create mode 100644 resources/images/races/human_F.jpg create mode 100644 resources/images/races/human_M.jpg create mode 100644 resources/images/races/nightelf_F.jpg create mode 100644 resources/images/races/nightelf_M.jpg create mode 100644 resources/images/races/orc_F.jpg create mode 100644 resources/images/races/orc_M.jpg create mode 100644 resources/images/races/tauren_F.jpg create mode 100644 resources/images/races/tauren_M.jpg create mode 100644 resources/images/races/troll_F.jpg create mode 100644 resources/images/races/troll_M.jpg create mode 100644 resources/images/races/undead_F.jpg create mode 100644 resources/images/races/undead_M.jpg diff --git a/resources/images/races/bloodelf_F.jpg b/resources/images/races/bloodelf_F.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1bc1f0f71cdbed6f9eaf6c38eda86ecd8bbb1e92 GIT binary patch literal 1921 zcmex=Zx{q!N|UoI85kK@7#J9g85sV*W8ia4$xljU zNIAg3z`*$bHbV;o2P-Qp8!HDJ8wWQ#8#^~I7Y7FyFFy|tFAopDAP+AuFE5WEzo3w? zkRZRfxTK`GxRRoxqLLaMFmiBm3h)WYiipT6NQp`*z$J)f{6D}T$iZO2V8P5N$iO7X z$SlbC{|G}j0|OH?BO?O>u(C0+uro6-GB7iuh%+&>FtRcTFfcMRu`)BUu(ColF)}f; z2(mIL8VU(J2C^k86&eMJG&(68vwt|4RAeG5$iT$J$jrpd&I+@EQILsQ(NHLm#WB(7 zL*vAa7nPCp09L$tLgGnS4-8}rkvmEx#EH4 zX36SXiFy1kFY8=>W}Q2<=)j66JNC_8rLk_}tuw(oo#!96U6;v|Ilj7Xe(>7k$M+p< z_#+bD5PFRB?171~FXC2|lqj79Y<=^C)IhAVjbxV(hx-~uHd4DqZ%<-Mesv;EmwTmwFN>^lM zepw$A+4aluZR59Nyt{wgV=>`fU&*t5ncZgJJA&-o9=E?t4Rz)_ofjGZXkW_Ty@?+8 zAH|s+z3A!s?xC9Q{w@LtnR*&_uimPd|G0YTjZD?~ z!n?XJTw{!nvKw>$j45jQy?fq%8CjvKg+K0G^AonYS|sz^+IDBSXJ@>S$kM_MQ)OOx zD0-Rr7v6bTxzJ_iT&=AaSf2>*>AI;URMT^E8|x0)j^CV#fx@b$oZsA~n;PurdZ{Ev z$m-0OtxGC+;#Z<7U|R5OZs?I|Cw;0n3&uuCtDgFJD!a4fhUa&c9|$~q;u}9 zy`;21T-~wM*M7%UuN?WyQB{|Jy>8upboqk=VWN3=7TrwlTh%Ca?kuB-qIcL+xyN2f zS6^-ZGovJ6@3Hvt;)(>+rymojN+O6CRa z{qln+Wm4Gw(yads+b>AwZjD~-l6zIDKWO2rz=KPR4;6(^k)F2hjdXF9xsmFb%Az~{ zLFYBqd*mNJcyBL+@&kBxCJu^A~ zlghb1r?BZF?Tlx&90IufY>&oGIG3txHE)XDBN^A86Fsj*zh(%SyB7;qkDE z{;J!(X{krA@j$@7#u%l>XD4dmrLzdt@ZQ{K@2wq(w# zRgrQvuR1nAI@Qm2)$GOFfGf+n4owa42@^4^dRKZ%B~kWr-qls#Qe>a`d-dnC-s}}i zJJhe&G3jx3Sy0uMoqD26)vu_FKG?3Bw%3^Z9OIjZr{m^M-_bhpTt-o_*WaFXsp>(| zrPg6=$uAG*ZPn#4Jv5}Rby zS@v_G-de_Us!eN7t~k}cJ|=s!$IJN1@!1L;6Cao@lPKA8QN3n*$U3u2i+A@fsMmPG zmM$E*|LUZ>yWXx&)$E>VxZ<0)K}dx0w92Q}zx!GGuN1~kU|9LbK;q+)yYJUdZ+D&_ z6POoPoHv)r$JynHQOCR&1uK%wHhG0CJK!W+w&jjcR?xgBll!&aTkrkX6vzMdWB(ma zyVH82FWcu<7ERY#vHzr(g=VNq%dgDt?9^joow8h)yIMD}9WHU*_C&t;uI!hB6U?z~ zGrLM9N?&WlMlOk5yv*BiiOr-hRUfr;gSK6tcQk!g=w+ERyRsjg*u5quUjNbePoLRi zbHC3vlAV|kVJPO^cOa_#2NrfBs#+{|s^qG7kQH*Zz*bXtj$% z?@Ct_uK*3kqn@f8YZX~JOZ^L!I)W}A`?N~qwrv#qu3gVxwti&0)f!l_$vOLN)TD;Y zpwPhS$EGYZ44rYS!! literal 0 HcmV?d00001 diff --git a/resources/images/races/bloodelf_M.jpg b/resources/images/races/bloodelf_M.jpg new file mode 100644 index 0000000000000000000000000000000000000000..247e094a43142dd739ea8c862b7265feabc78dd8 GIT binary patch literal 1979 zcmex=Zx{q!N|UoI85kK@7#J9g85sV*W8ia4$xljU zNIAg3z`*$bHbV;o2P-Qp8!HDJ8wWQ#8#^~I7Y7FyFFy|tFAopDAP+AuFE5WEzo3w? zkRZRfxTK`GxRRoxqLLaMFmiBm3h)WYiipT6NQp`*z$J)f{6D}T$iZO2V8P5N$iO7X z$SlbC{|G}b0|OHiGa~~6u(C0;Ffg(+F)}bSGBP5`Fte~SF*2|TFfcJPGqJF+u(B|N zbultA3$m~>2q_v0vpEJ9DkT~@i8L z422v66ALG9R5B9&uu$2U_2d6r3_Q$?3`~N|f(-Ty&-NdkyJ_$Jd&+;Oy~R?zk#4wo?~;t1fQxWbx4YuxgUUc7o^&S8xxAu0yvu&~e+JW?vR5M2E8;#~e5$bLRPsHS zwtM1tW$&yDO^y_<{MO)oZR^b+8F?B3Epx0w&L%5lo3~x9Dlb;-^4YUtdCWqYGKK#P zQu494OOEcI`tqc1@s&x{#as0Zjh8un=-($CEZ3FA>~_`M#@i!y(8CuZZMlHf?QD}Pqi zB_5yFSY{)-;)KzQZ8J4eH+DU{m0GM^GG(E3`6Lbg1*TS#oJLwlRO>#UbS>!3#!t0B_~Vq=AMmBzqb@$R?N_Q5M6zB!qun@>9B03g#Jrt?Ved5Wj$uPT;L+8+*Zg<}0r+(}b(Q{RJjfk;zjsDbPkEB$z_)m}%+vbuMr3gS9nPjeQY3!KoEn%XioQuf%V!wY|n0cZw8mQr+vOnOXa-Xi3|>)CFlbcQv*5 zYw_w=DZG-kwFxu~iSp@*U3qu&nXPl*B?u^QKl{5!&i&tH_c*(#Bc4+NJ}JNC@-aQ< zu3cJeX2sldBHDcCgXyb9ISu_OrN}C zIv=bz_p3N8m0x9LAUC_U^iAaEEU&T(<`2`M5W)SW=OGvUK6j9lItylT1h~auxKFZDa~4UhDsI;l0VOKLww)PF8FF zqF0n?o zd`;gIW~8O;bc}dBVb`qY0~h=CJFn*oZk=A|)pEXbch{p+l80uhZ4>S54;5X1@xkk3 zy$ghnPSq|qXG!O8Ub{n5dZ*pp^8vSxJIH+gd;QnW*F16^>Y}Sm!=CumRCb4L@|&P1 zvR*2nuYO+Z6wa-BCn_8M7`>UW+wIlkzi%d=xH?gHu3$~5GspEW>t^g>>~bqNXK|Kc ze*SoFUF@g+_r8z4QtCEYSFV_UadMRM>(FxEY7wK8MUQWaq^H{aWd8YbPJ;(y>0uq0oaP+0D3nTi;#6m-vcqR{ zx#-)YGq+DF=-RT-#n$ah9%Bik&@VlIy@!e0-z|9i`*!!d#~UYJbK1B=^=VpC*&qLT zJL?ppriZM(pEAG0xjMsR=k9YeZ*{4#|6Z}{&iTjv2^;J~s`*vZj;n2(e(|I}<6D(a X4?k^xy7XQ2T`{h_(#;l|{@(-uqz-E# literal 0 HcmV?d00001 diff --git a/resources/images/races/draenei_F.jpg b/resources/images/races/draenei_F.jpg new file mode 100644 index 0000000000000000000000000000000000000000..81f41566e89e29ff2a3d8501a095fb59c7e82c83 GIT binary patch literal 1863 zcmex=Zx{q!N|UoI85kK@7#J9g85sV*W8ia4$xljU zNIAg3z`*$bHbV;o2P-Qp8!HDJ8wWQ#8#^~I7Y7FyFFy|tFAopDAP+AuFE5WEzo3w? zkRZRfxTK`GxRRoxqLLaMFmiBm3h)WYiipT6NQp`*z$J)f{6D}T$iZO2V8P5N$iO7X z$SlbC{|G}10|PT7BO?O>u&}YSGBYuv3o|jZFfy zC<+;}IVLIz2O5d6e<*C6xbdP>P?Bg-ld^HKAOjN<6C*P#!VX43CPijL$3UUP!bT;Q zjsI^k@GvtnFbOgXGT1YmdE58sNP3R+w#@;mbD!Q#kz`kME-Y7j}R*RckEen!7p zUtaC;H~V`wfAjZC(Pt;Uy{^+ObLyj}LUrByb6pJo!dPD16KUMM)BZ$+?YrEyYag>c zRxDMFQwV9+)|wc+H}l83h5g!M=X<^GCqLMoEPs=`Ty)V%D{=FDTgk(V3lp+kUogJB z>|Zofx+tw&KP~#G1b-&=HsrVZ#ngJ;-ceo|M)at@SpU@WR->M z@9d{*{oNVoZk=!<(rxBywvOXmI+oIz^LxStTeXrW@|`=Hef<36WuH2t&M-VWQx@Ku zyZX(J9esMWwcF#Ir_X1*r17wCpKpy`zJ9lPc*V~*Z!SL3Ha+@MMKIpWt^4}ti?7`C zdX$T$zw7Uid#HNiaQ@V7t!MQMOUpV_776NzK6n1H?pBWbO4U{Km+!o9@ZqVd@vR+w zx8Ap3Wn;Asly7_y{UdYTCf&qDzU$kQ zNh~HAwW}JHH;UYADOg%ldgZq63c<}WsuN}`?y}zElC0uyF7ae3XIO(=`}thqCn8zj z+S9j{MXZ0^t1ou%S)iR&dd8)ItywzVpC&(Fp1CS3(){J-2v>9Co7ZkyXJ>5uVPT#3 z?(V@!6-Qib(&j8ygj|3P+VZo}Um0SV8W?U{_T=i#H*S6DM z?HqGs{0n)nB)s`{l~F6AKyBX*wcQMv>+Op&559V}B_+3=vsq$CQE`lazLcwwq=Lep z?T+P-`h6F_yf!<3#rJoaOD6iw^;~w_F!#Nj_iwYO?>65F*vjzqAd@&lUDdAMZSJWY z)xSe${$~)Ky{pUj@wBJY)^1=u@OatlHOo4`ebL@2vnGvGlHD>ea+2MgnIRLlezrPw zjZZa_e~0b-DTmSu%XziZHaRJ{OkB`&$HifdZ}6s#3)XUexNhg3y?BE4Oj(6Ks|z1x zR&Mn*P3gJ3_|$&}m2dwl-WN9&dGu8>ssBsrSo`no*JpRnF3G*Kq36Q9OWxX?6Si*I zqu$lha8m1&R`!S7E&M)FRXdD!7rx}Brw>4jb=Z4Q8E`QyzWuw?B=|bg~ zzZ<8oictwSG<6K(U$$uK&n<7WmGq|syth8SZR4rcllMjB1({7;xKNM5BtY}CaYe?P z2eH8^-)i>f+)r7yb9;EC+Jq^+S3_N+%M>=gzMePhY09b0us+$NHJ!Pvt1VqlSVnr4 zepCL>u(_VE^znlG89()|imoaD$5mdFu>aXQRqsk=t%DgB>svLfvZNCiOFd=#KIf(F z-JXw9#|%FfCjKpy)7j^4Uu7J7g56wA{(V$>C0&)>Ep z%TtXtbnlt?_&c5xH*IKqB6sKW?L*3w0?bzHpOUz|)^yg_Emc)(Z5OZDUtW{H`NT`- yJpT=|zq;yp=l=D*?6B5cGH0`~+M4Z~4m@egWLWq^puTVMUoO2TRt5F{Zvp_1b}icg literal 0 HcmV?d00001 diff --git a/resources/images/races/draenei_M.jpg b/resources/images/races/draenei_M.jpg new file mode 100644 index 0000000000000000000000000000000000000000..211db17f18e09f75935ecf9fd2ebb7e2c8c468c2 GIT binary patch literal 1743 zcmex=Zx{q!N|UoI85kK@7#J9g85sV*W8ia4$xljU zNIAg3z`*$bHbV;o2P-Qp8!HDJ8wWQ#8#^~I7Y7FyFFy|tFAopDAP+AuFE5WEzo3w? zkRZRfxTK`GxRRoxqLLaMFmiBm3h)WYiipT6NQp`*z$J)f{6D}T$iZO2V8P5N$iO7X z$SlbC{|G}90|OH?BO@aN9I&u4v9dEWGB7friZd`VvoNwU2rw`)GJ^n!1JcCE#4O0d z%AhD@sKn+ND4ba6WTY&@E;_O3kaMsg0}~S?3nL3N+BfI{@2I-^Q#dGMern2~~t9v`k%_yhz>Kn69F^=b4gxr}oJULbWSysB%FlO47rqgFP z{weHLVSW_s#9)NQ%o*(p|$uey7KPv`_61< z*i!Q@xgLLXzMWyLcdJt1wq z))K)5r@|IAuY9{@>f^gzmJ?=1yxqjWx=T;tga!lCq2~Du?qqITpYS?wm#nc_X3?t^ z&jglrJKu76!ME~kZ`p;}y!S(HN*G?g*>Gk;jOVXL#b*BR!ILguc)RwWbk#!sv#THW z?o)pn<9fXB$->t;DFN!!;!ft9pY7lJXwy9($B=|2TeO}ve6;?n zx&QjPTXIj%*KhnN@n-qtC94ajTV#g$w4Yca@J!-JUc*`qOWv ziOeS~kGzbX$;pyu^;_2D$xn&58QFpHXA`&XnEG@}1IPXEf|HgUV_#isQs=rm%=YYu zjF0dBGqAqzkKen!-)5p^_Rn?v$NH9X7dqTmw`#mx6<#-MqSEt~{>AA}!+$I;tWKa( z)Bg;@pOwv2c^0PhCdH3?awih`z+`M*3cbU~M z>ou_tp6^$1lD(o^rtmiELa+3hRbO4+AAR#wGJV!#JzXQ=$C3@DSxs9XIfyR0Hap+9 z_|ua&OWr+PqM$M>dZlutQ(4oK70Q#%pWK`JJ9EdTJ+nWszSy{y+u@|jw4VJv-SGvC zE3fu0o6xl)r|@Hi)8jkBu9XsvUZr2IHRn3m%;&b8S!^cGcIzEuIKw=Z^-hQ1ZoB1e zYP@G(>64$?8iw1-Hrzbx+U31XWI^s6#=Ajh82_4FFlDn^d}m$S?_&n9I~#8Iz`(9{C{OH&lQT9 zpsrV8S1fvk)8KFS)*HFMgMykn?VFq5Z@j9zrmJlG<{v4YHo5C>&3pZn{ZT$sN}bh* z%qyFZl`UR(*6a7n?83Jhg`XsK7oHH#coSv!Qp!@&q1?Wo`TG6fXQw7N-uUSGMpCBD zjUhkp$&N0eY?-wuv>CT%`DU5EGC5eb2R!lwHeY&Sx cF@M*gI>`u48|SX$@%#5po;1mBn*INq0Ed|C#Q*>R literal 0 HcmV?d00001 diff --git a/resources/images/races/dwarf_F.jpg b/resources/images/races/dwarf_F.jpg new file mode 100644 index 0000000000000000000000000000000000000000..958b5332dcb7dad604bff504ccb8d9e2dd7010e4 GIT binary patch literal 1984 zcmex=Zx{q!N|UoI85kK@7#J9g85sV*W8ia4$xljU zNIAg3z`*$bHbV;o2P-Qp8!HDJ8wWQ#8#^~I7Y7FyFFy|tFAopDAP+AuFE5WEzo3w? zkRZRfxTK`GxRRoxqLLaMFmiBm3h)WYiipT6NQp`*z$J)f{6D}T$iZO2V8P5N$iO7X z$SlbC{|G}j10x79AOIUHI}0--12ZEdBSMgYnT3^!kxhVsiIJI^iIs_kg&i!($iytj z!pfj1WXR?in5ZPIEK=BL#QtI7!K8^Boq|k6#RVA{Sr}OuSXf!1rZF-IGBL9#8afIE zCKf7vXnZKlI&tGgBPWsnw-|Vs85x)anFSf_8IBrC+Eb+>&RYvB&zk4= zCgRGZ8vo8qKO>oDNQzw3v)q-Wm@#ec{O-4}&u`naG5TelX+~t<8_%^_u3F2sT75Q4 zyID}Ex3H?pP^+D<|GB}9>N#5sXNPQP5sF(dZ|u&jX{OiQSoSABn|SKj znj6fea-Qbd4-F%tTV~~y-@ECx&Q8sLQh4$%hAJWZep&UYC2x3dcBQQel=xjzn)i6S zwfc^=OIxCDJ_c633li1&2Djey+vntUZz-f z$-b`Oh}a*y43;v6f4aB)c*w%3+Q-^gtJXhXx8Q;Gk99HYlaHJzs>t5R=XCwmpMsUW z%tzn<(pk3f*zMlci!T0T7QUA3eE!q){VX13o!1Xm{=0QHKfnKk-JvgmZ_hey)H1vC zum16xx)5QD{?Dh9Kk7<&AHDR)_Vm4I?|COrx^XCP>`qEa-W!qcV5;<@WBzveSt~hb z7VheAXu7R9XV$;>|5ST?Z8|sb90_Xq&rqoR@v8Ka>@_a+nPOfp-D>`fCdbRp_TJ)N z_hgU29Un{XK#e8|(e`ZuEzNPd@9gTTR1zAt3_w~7z8ey@1w z{`U7_*_)knXI)D;JS%M3{FjB-v#vXzY(DyvTg0=wAkatlj(zIKGqas_!$MVrWWpck zbA@Kv+uBcLzIj~v!BT@avJoHZn0C*6C%NvDz~ZLkOox=>vl{lz@B8H~FXA%&V@UqV z0!j5Za|#~kCLMLze(CSoE4|lyQa(mi8p=tDZhCL8J29(2qH<+r^qhU(JB+RiCE8`I zQR&k@nSZ-syJus>tl+mHZjVD#Z%z4pZwiB;)Vn3olP>9t9RC(%DfR2wXSwzLn}ZVe z9s6YD_MJ;Z*7Ih?e}9?<@76hQt+$+*!mv1B*<03;{ga8hkJRqGfPF9f4oYv{w{!D^ zlgx!W7P}@$M%K)XTJU1?8XrUN@RS8H>VIeDX7!du25Go?6o;qc3`{Y=2JlIy+-Ity5>uWDAF_ zzc7h^XRqH^>-n-wK}H%M7vFx>T=&ZV*4>kLrrne=S^9oyi(`?;H;a{yu_smp`yUQj zRhBANdV)8s^6rlvAGdJ|FF&b$f~TB)y;I!s>%TH*EqQHzc(qcMQKafypDP(Fdv_)Z ztDH8odohb6ZQa8^T;?5CQLlc=n|w1p`_^7{;msJ=@>x6f^sJe9N6vMz&Ey$3f4nPG zFI?GT5UxFKWuMg}4*`#eR_lx9FP|^)@;u}+WzX?X3I8NrnIeye%0cg{7_>@?BDL0id&ir)k8=X6VrqWY z1b-*($6jH(f|VXAzr8E9Pl$vY>V3RqIJ?d^Mx+naJ+ z9hdtSsZM)R;`&+Qv`k{bbpDdZcXcj(e6q?uFi&*(1X;g1OC*09&7Ww<_Vilf>{InO z<0Y@!X-r}1w3^VowARzqY86wn(n~(0Lwby^B7zs)gZ-Z`P<^+danT|jF*_r!LnpFj zRyk@NJ|nmIa*QfZ#IL;F=L@6n8bzl*jN}S_FqL1N{gfr&E1RpYY)g7RK9xG literal 0 HcmV?d00001 diff --git a/resources/images/races/dwarf_M.jpg b/resources/images/races/dwarf_M.jpg new file mode 100644 index 0000000000000000000000000000000000000000..507b06028d252a1ceb19970ffc1d0960137367f6 GIT binary patch literal 2009 zcmex=Zx{q!N|UoI85kK@7#J9g85sV*W8ia4$xljU zNIAg3z`*$bHbV;o2P-Qp8!HDJ8wWQ#8#^~I7Y7FyFFy|tFAopDAP+AuFE5WEzo3w? zkRZRfxTK`GxRRoxqLLaMFmiBm3h)WYiipT6NQp`*z$J)f{6D}T$iZO2V8P5N$iO7X z$SlbC{|G}510w@7BO@aN9I&ylvNJOEDnVFeb*ce&CdKj6Q z1zA`b6om|h*&LMu6AO(dF5D<0%C7t|D5*$I5UiYug^h_BtQr(>f{M(JLM(=X9}*jt z3KwoPauS}HbWw!$|1Aa{W<~}kL1sY)dxir~r&X_Rn-*62PQB>d8}Hq_XHD{4spEOw zZhO0u(DjMIr!q>j&PZq=SU$64gScLyLN-lo9c(U!V|bZ8uio>-8*FcuKYe_D zNvfgv_1j;k2s?M2PSVfYQ}%Sz%CvQtZg|Yeo9G^y)bo38RdD@f|Hb>vLrp^cTD_R}AWN;=3PB^@q}e=T_I$p-Pvzw)#s#{$icijwn*C+nl$_SJ z#!*N9i3?=jdV9R;Th&LVCGTHHJmcE!C6~VT8SOt(@r=#qTE*VOO+xqOrCWs0 z-Fxbm`z=80_=T{k))F4?r>mVQ`**jcwBUQw^%KdbPE5b&TzYFqf5Y)8+s*$OB=awn z9dbK1MK(*@!Hzj(I{WKYk42?s{qEV&A*8-%>Vs;VIp?N@3$2z`PFI++m+fFgz=z3y zmjr)h4(H#Q8MwA4Q_AkOV`WY6^s4L~`b#IPS9nWjOtIp)GWB6WOsm>{xw&j}T#^{H z-%9;w=vWuVz=H{J%M*tsnmm?1HsRcL?D4IKWxwNA-PaOa9aE6U`_lVooWm0a z4&|uZ=PucpFM1?tvAwXD)qLHT1^1&Yj#sRyZ0O1fonDeZL5AZIgY99bjf}4yujjg) z^yzi}_G3>%sB7u;c>(=T;)+urpL-X@XIvd?x+n!I&cpo0Hg}v7L-%*o2c1N?S_bEmEXNa#@ zrgv~wMV|enorWJ2Po`|sp?-El{O`_5_v{XyaO;%` zycj%*Va{0%?TahyW3Ag&4extw%d;(tjwp(@T$8`vaFa!*UNftD;wgiZpMT5^K60=@ z$>mA1##5ixrh~Dq-P#I|^ZGcVr<+=*jt1Ukx5@&MXv0mA> z$LphgvEa4c!SUw*8N90=o0wg*Y+%a1C9?6;?%(kSC!Zbay!NYdQi9_mH&w0KzqDGV zN;l}g3VFkRDdh1iVg1i_iRIPZlR`_{j_KK~z1oxX)bYFf3AvEvOHD)$S9x(U?Adgz zJ~zU9>c&a$rGIl*mkJ)OczwIib@@$&1#!xk-Tu179qAD6zjZp;?fv~za{rEh%JK8o zSADxEcpJlZzN||=9I8{Q^yWTR$UVN?V_A8QSC?zmuabsh^Ww8s_cpLj*;p$7`FF?V zEVf&oF3pYQ)0GC#JbhJxzg6tG(&U{2&ME zmvV)7W}6nVn2GL9m*@WYrY-1P`1bw{-;Hc0$DZlEEi-HXWA=AR{L6jwXU;6#!1m=* z?7>vqGZ%7fq>mSx9m`Da%kG#WKI=g_gUPF)rEY&2?gwrvDzbd-_>{v)IFYCF?$z~g zFCEe@)V=4lG%Scc&s5>_q_&9xUqoLn+hK9GT-afsZQ|)!K~vX=O?;3uRpDIJhjf;s zm8t3$cbdP=eIXq>(@1*Z7enQVtTU=Q#g*n+-{H-XIi%sg;|hPr`e#5nt^c*Q69QeTq`dEKb)mdLvU2zI&^X%5*ogz~46?n|3K_ z)F0aGH=*D^L;0g`^}uMAnc zQ!GS9st&U9Mjm^8G)Jc}vu@LL@8cjVpsdZx8f>Gcc1T{ txMRAo)T|9%?kw}0t7^5^<}fZW7uvA(bGshL!k(-CCtiNp;;i!jCIIfOR@(po literal 0 HcmV?d00001 diff --git a/resources/images/races/gnome_F.jpg b/resources/images/races/gnome_F.jpg new file mode 100644 index 0000000000000000000000000000000000000000..16afe19a63bf2a36fa915cd1ae9e914ac0fa68e8 GIT binary patch literal 1897 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 literal 0 HcmV?d00001 diff --git a/resources/images/races/gnome_M.jpg b/resources/images/races/gnome_M.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6979f3836a3c010d52505655a607f10dc52021d5 GIT binary patch literal 2103 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 AbpQYW literal 0 HcmV?d00001 diff --git a/resources/images/races/nightelf_M.jpg b/resources/images/races/nightelf_M.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dccb82842c51c10becc237b479f30b5a339e70a7 GIT binary patch literal 1925 zcmex=Zx{q!N|UoI85kK@7#J9g85sV*W8ia4$xljU zNIAg3z`*$bHbV;o2P-Qp8!HDJ8wWQ#8#^~I7Y7FyFFy|tFAopDAP+AuFE5WEzo3w? zkRZRfxTK`GxRRoxqLLaMFmiBm3h)WYiipT6NQp`*z$J)f{6D}T$iZO2V8P5N$iO7X z$SlbC{|G}b10w`5zyK>73o|1VJ0k-#NCGCxz`(@9%FM{XCcwbN$i%|J!otc5kz-_H z7Gz;i6k;`W6lM!dEL3VV3KE&P&`DWzW6>gKc0mRvCPo$pW;S+4hfFSeK*jXZ^qqut><&TN$#BBn!2NL8oe(#)P0?kkQjx%t@K z?mt7V+Ud+~E+yx4uej}8>VNxpq(F`5pAD;Ct;@S7_p$%W&A`z7=P$S>pOtxOQe+h4 za&YlX&oG{4t4ed6Ma%QIY->8cATR9L=>X%iOZIFw_^Y)*>hcGP zxn;L!OtTJIwP4}=Jqx#VS;ua&T$^?wwA}lBA_rT0#)H1DvtO=D1TXz6b92R~_!E`Z zGGQG?r+1j;?z?Al+w5X_vGDcxOV2DVD$irQ+kcABSv0oRlW*OdHE(af|5f(Y@J?C( z_TAeWj6Ksmu6Rt5dX!uDY^}qIkB7|O1lk#{xaR+J)r7m>zx+F7{@Qj??IYh~cYC|z zPb~VKGqL1OWX!DTVSUX(b~$Sd-f5e$NgrxRyRl&3Ht*G$i#9j8EtzyjP-?nNpt#Zz z{=%no4Gv$h+5Y%}Z1t^cTxlNPJ=7)%F-A;$@^GS#0|WotbrQ#0qe^ca`}Sy?*xT8& zBLd>?`ODo+&10C9wAXv4=lP{MQ?%bbJAPf>a=y%qt##+mEDex*v_JNGZRW#GVqu?b zgG7@KaAmS=4xeytW@X~PZFZ*jT&u;WP05KVlRb7btuHUv^@_)qh)lC_e>yxVh5uKM~;^|ro{iEKpd!8@XQ?%qrE@-gtzB{8s!_`F!=Kfk zd46v@URZs{>7~o>v#%YaJA8NR9J;HqQc<_XF_&3&U?sIztP`p_(N^t; z{rlBjA`uUF&+wECVP7`IliO_S)lZMBbUp4~Kh`k!Am8fKHz&DIGb}i>$xvis%q)wg ztl86?TMZ&#?*3|h<+Ns|lx+2?BI~9{_m->)lG_|Iw@BkrX|3skBYAU^W%|F}xy8SC zY04baO(~ywgZHcS?n|C;m11!Dg40o!as!vV_e|HgMZB|JK2Et(bbcO#i0+Mz_dU1Y z;gIybIAKq&nu7;#slmdvynN;h)7d)S?=K7gD4mt3zwb=lgXufw&WTn&bA+o`YU!lb z4Pi@|k9n?C-|rox?XsB>5H(nGBd+wUB11#as4vBZFMR86jJw*mo1ON~jOmV;G3x?XsaoP;t&MU!v@>jW%S5ETWc_-;efQk=k0HK)z^jc4 zAOG%|QDd4MU9;x$x__Di>+eQ-Dg@n?=uCV(Ep1;!>t@||&1R?P3LSI~TI29VS!d7c zuAH8WzFWgQg0!BUxLLF;uYQ?v8qb1Ti-T3SbhS22cA4YK;KW*^J|!0NGbpT literal 0 HcmV?d00001 diff --git a/resources/images/races/orc_F.jpg b/resources/images/races/orc_F.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9d012e2a98d64e20afc70db2781d33466d38b38c GIT binary patch literal 1807 zcmex=Zx{q!N|UoI85kK@7#J9g85sV*W8ia4$xljU zNIAg3z`*$bHbV;o2P-Qp8!HDJ8wWQ#8#^~I7Y7FyFFy|tFAopDAP+AuFE5WEzo3w? zkRZRfxTK`GxRRoxqLLaMFmiBm3h)WYiipT6NQp`*z$J)f{6D}T$iZO2V8P5N$iO7X z$SlbC{|G}b0|OH?BO?O>u&^?-u`_WnqKh-LFfy?+un90QF*30*v$C-P?NEWAOjO4GYbO?D=X9zMkWS9MP@@sA(p_z zMx_rEHyQ~S9=zzp`u`RK4>KbJlOVGogFVC1wUY1Er~UhT>(!%2UMFI%-o0%9dV?04#_v)Xc6tCV6o&$*rXv-gHr-mT?#GexIM=f7C{^4o*&<{s%> zKGQxbO^}|z!(jQXCwcp?4ry;sq3(TO*4z$zsCU1Vf2!?{D+`25kNL7R@0PAjk6C@f z&rqW!+9ESNMs?3lYghXiQCF42%C{d!s(9LXEU-H1^)ifcl9Sz1n`63%Chb_~f_OG5(6rE9^J?s$QNO_3q0CmQBYQqE0G`SS8EYnMg#7 z`+kz*@H&&cZr7c!rhmlGZ#%xdD(11i`piP5aPQR@9k@<^dEW1Q!T$(Xe`#IN+y0() z(YY7y=htV8#z)ySWKW+p^;61!hAf8ak1s0jO|bTOpv!hMv)X_uTk^^6d}VuM7xx*n zcJIl4ci`xHwbHF`#Dwz7#lC+wpPaKSB00cwBFBm8>l}+7&J%pQJ6R<5d6@3Y+cR^` zIZ|A8n$$8GL|0A7UQre{Lp+oD@nh-NPc7yc^eT3jH)nSjZJPXJIqMR$UyCC8)@n;C ztlDk(E5lDb)h|TtU%^6&^;#jds;^gCnHR;*PTO;5-RXC|IT1gfckg6Pj#FA#m!Eko z=o`BlLv^;;F$bfi=*i&#!^>tFpB??2Wt< zUUn@%S9{IG`_Z~*S2z0x-l^F7t(}K!!;?Z=zwI^+jSKfIb6YfXnvI^*8CS-%`hsN@ zUo|HfDyf9LR=wkBzR^2QseNu`;--8y7xAk0r@I1O=a!tRuln%tc2}zO38B2%J3_b5 zQj@fr@=pE8{*GhGuQ+Zr|2bYD=*0J+|Bjn9tYj!cMHU=B-QH-8-h~mKzDnf3%7@wrbs>ty5LowdAz+%jgxQe3+8r zxNr^IpV;%&GC}^TXEq*F>Rh_MNz^nj_(=NAwvQIBx*qJJCN181P2Sak^QI)meNApm zD0a&imIztN{McjN7x9f(>|gUV`)96LXMXFn@%Fjr7d_9KHuHzg)%S50lS?Ox-0(__ zyxPj&t~`|^E7@qeV2hc(^r77E&AH_wA5D2egRDbWuc+Zu{n#F)t`@Y0<5qNzxgZNe zlZx{q!N|UoI85kK@7#J9g85sV*W8ia4$xljU zNIAg3z`*$bHbV;o2P-Qp8!HDJ8wWQ#8#^~I7Y7FyFFy|tFAopDAP+AuFE5WEzo3w? zkRZRfxTK`GxRRoxqLLaMFmiBm3h)WYiipT6NQp`*z$J)f{6D}T$iZO2V8P5N$iO7X z$SlbC{|G}r0|OH?BO?O>u(C0;uro0-GB7hTB1HUun90QF)}kVu`;qVv4b@+ zGBFFXureqL8L~MBDj5ljBsNYAQWj-*N-A8q@#4o|6+s3jCPro^7FHH!um(`rF$*dh z3OTZX)PG1UoXFa^@ZiOVAA|niV&GwBWMC3x7G$tzIAI<3%k$H8&w{r)H#t&ymFM|f znt$bqcitJ_y1&l%^rx6N3WtB3mUy%NrN^v&%CgB*-*&vs3w5%|nly2zte2;&t=q=h zYu=Wewu>YV*2_Q85xVzM>DTG&_movVtog&4U$O-4PurPZ_RiymXCbE@-#OKtQ$A+T zoKbV#hcUqZRqyO0tV`XNf9IUjWqUD`<)g{ORWsHeRqS;;^;au=sefx}C` zZ#a9Z>YV)C%tF~~W-p_xv)9G+7>Pc~UH0%)@4E+8^80hVr6-=0P=0J^F1t8CH|Bnd zLgP#ZA@^h4rHVciCy76s^3~&{+*IbOOtBTgsz;X2e#dwG_#MHyC-*)*qF4XXfyrU6 zrAe0fHO3X+LoP4881CEqQlLRFdx!OI=4tb|>+bc2iMeGrO}wyb;&!``*#8WItA*NP zqa-7y*H&$_T&WxC;2t96QNC!yYN`6H*M6&ZUgI>B_OEXGm^wpW%wuuDgd&PbDMY9NmtQh#_FB@w_gOu@0)dI)V@$X@kNuL~^biA74`tfTX=Ow|j?>nPS1@U3#>)d9SEN71zJ9t;UAEb6h8+Rl2zbggmLysPpL zmp^jw;lFiv_tdk_rD95qwr{tnJ@N?coR?9_qRoMzJy(pWWy9$hU0y z?^nXf!fO1=r@jlNf3#%ZJa1FNl7_t}Z!+vC6#BX}{E128(|vP8RZVTvT}}nYemb*R zV{>tVoddt1Z2Z;z4c9MRW9R8DX|Q#E&2=~BlJ-j1DNdOOwe(b293`ylX35@pdwtoY znaYvAYZx#8aST4^?D4c`yRl(8%Hv3!v1vB+Mt zJ;&4Zc}1kVoY=3sAHsc^l{f$Cx*p(DXEiOL|A^7nTI+YF#~8mjulul}>de1y$>k>E zEuX!&WT=Lj79`s>{b$H_cV7KF@woQKHB*-=mzL;Wx+^iyCxrhMm;DlXUBd>cb45pH z1{p-GSg=(4`to@bIHivrvUa z4WGB)$o|svymx`8k@!vSg@xtn=e79zj1PvF-L7LOxq4;M)t7?mkx$o7>G literal 0 HcmV?d00001 diff --git a/resources/images/races/tauren_F.jpg b/resources/images/races/tauren_F.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a363bdd08e9b49ce11dedca21f4b4e27da9eb876 GIT binary patch literal 1849 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 literal 0 HcmV?d00001 diff --git a/resources/images/races/undead_M.jpg b/resources/images/races/undead_M.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5e8c4e0e21d8bf234021be4f2f080d4fdde4abd6 GIT binary patch literal 1917 zcmex=Zx{q!N|UoI85kK@7#J9g85sV*W8ia4$xljU zNIAg3z`*$bHbV;o2P-Qp8!HDJ8wWQ#8#^~I7Y7FyFFy|tFAopDAP+AuFE5WEzo3w? zkRZRfxTK`GxRRoxqLLaMFmiBm3h)WYiipT6NQp`*z$J)f{6D}T$iZO2V8P5N$iO7X z$SlbC{|G}b0|OHiGb1Ad9I&#nurn|*GjcG3NF)gmmxYyqO@M)kk(rr^g@uKU8LW$u ziCK_^l|fO+kj*hsNjR`kguT$nNp#}EAZ25fkIrI(3`|UnOsq^$<)9!DWMWn{bPN zj-|_1<|iD#A=6^6@}FVql-`N;K|jA(wRC7{Z=ZGS!O@Z}GqV=DeZ9ZFZ-?*EzMscb zpI^MM>vKIIaLR>Wi*8R>ytegn!t!==?>-?VN!+k@r{ zuXtT92etPd*!*`hclq70cc*Lf-#M+{tJFK8tu!#sC);0dpH!Ut#*?QrD&NfCouBv3 z{#UpA#-3KOof%VSsXL#(X!I`A|D|=kulWVFrc#}p{|tBL-P*jt=*~%%urmv9$>~ix z(W7M%*24bdZQ$i~yKXA9_IWMevG3D&(Psj zcOSmrpL?uq>9;VQ-X@>@?tL30o|MZyOwfDAzFh6Et;2__IuYT)yDr`N%WbxAg2($C z>F-`I-!?Vq(5G7yP8u;?+axhNBO&ea>(DzZm7~N2W?ok0uT9@wc6$3-)}`-su4!)a zVBu!T(6}GAv{#n3Ug7@vaqb&kJ9t@3W^p9G#a{a?)sZlfU37!9XE$qR%(|hO3E3r=aYkSq@bP$6|Rei73 z%kWG5?$O@$N@tJ7dEfq&R4kEGQ(ow?+4N1$o;g-+4<0mlF}|y)%eNTmC4$x-*WDX3 z1*euJNY}+xu`!F^-jn<8eM{j1-M2~4-@3H~a>%XyYqRpw;$^)zmgexCux#G8>3H{? zH773J?-W^*wopWXYy0OPFK=AYw0S@AWcIGdQK9FS=HLCPnYS)AOkvL^lS!8ggR+l5 zU9fp__3?)xtDXvU2JZN^<84fpQJ(m1IRW>dk~OTED^HxR&@ziC&-rj{#twb`+&4-J zTc#O`&C1+vcQZ>Ygr#w-UDe`AZwvmNdr~Wgre(AHi=y7s$I}dl;!I+r) zhjXQV7u|Jz%bMsY;-RhcF8gP>$@<`JySC0{JUcgN-TC%I&be)oMw6bVZvGmzc~1Zr z-vpQTJMl->I$WK4}x3%>OE;}yhrVrkB5~R=hkgsFuizAVzTWt!F?;#TZ+=KZWp}mJ&XT`R z!p^vQuBw{2|8%axrMI~Y->JAvx_wk()wI<$R>6nQdz-h_xJd4?{c$=W&QV=xldJUQ zSsS$WE#g@5dSBz*eb2r7zP!scJT3Yr{QBhE{a=r4sjfI_Z7J9_N%JM|rz=+vhO3#D zZ53YkZr!`*M)yyhdl`JRRn+nRB`aRxEv->nD?F6TxuPF#>{#VE$FopbZs{t~x)3QH z@4(0z$8V_UIqd&iaO@Q4M~yY-vY#D!b=BPF_{{4f#o6z)Qcg}wUH0@ Date: Sun, 18 Jul 2021 17:38:35 +0200 Subject: [PATCH 012/106] Adding app/View/Components/RaceIcon.php --- app/View/Components/RaceIcon.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 app/View/Components/RaceIcon.php diff --git a/app/View/Components/RaceIcon.php b/app/View/Components/RaceIcon.php new file mode 100644 index 0000000..1c75ee9 --- /dev/null +++ b/app/View/Components/RaceIcon.php @@ -0,0 +1,24 @@ +race)->lower()->replace(' ', ''); + $name = sprintf("%s_%s", $race, $character->gender); + + parent::__construct($name); + } +} From 1dd9a5418e21a90fdecd21e061a8de9015512e82 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sun, 18 Jul 2021 17:39:01 +0200 Subject: [PATCH 013/106] resources/views/character/show.blade.php: show race. --- resources/views/character/show.blade.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/resources/views/character/show.blade.php b/resources/views/character/show.blade.php index 6b16c81..4a03898 100644 --- a/resources/views/character/show.blade.php +++ b/resources/views/character/show.blade.php @@ -3,7 +3,10 @@
{{ __('Character') }} - - +
+ + +
{{ $character->level }} {{ $character->name }}
From fa64f542551b73de205625ac80e4accad0c2c1b7 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sun, 18 Jul 2021 17:39:14 +0200 Subject: [PATCH 014/106] resources/views/character/profession/show.blade.php: show race. --- resources/views/character/profession/show.blade.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/resources/views/character/profession/show.blade.php b/resources/views/character/profession/show.blade.php index e70efce..eb7ec8f 100644 --- a/resources/views/character/profession/show.blade.php +++ b/resources/views/character/profession/show.blade.php @@ -3,7 +3,10 @@
{{ __('Character') }} - - +
+ + +
{{ $ch_prof->character->level }} {{ $ch_prof->character->name }}
From e5fa65a8393284c7aa50489634536d2a0c6b65f2 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sun, 18 Jul 2021 17:40:58 +0200 Subject: [PATCH 015/106] resources/views/character/profession/show.blade.php: link character name in title back to character page. --- resources/views/character/profession/show.blade.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/resources/views/character/profession/show.blade.php b/resources/views/character/profession/show.blade.php index eb7ec8f..bd2d49f 100644 --- a/resources/views/character/profession/show.blade.php +++ b/resources/views/character/profession/show.blade.php @@ -7,7 +7,10 @@
- {{ $ch_prof->character->level }} {{ $ch_prof->character->name }} + + + {{ $ch_prof->character->level }} {{ $ch_prof->character->name }} + From 2ad80a0a685f361fdb0deea4002ecb6ffe29e199 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sun, 18 Jul 2021 17:47:16 +0200 Subject: [PATCH 016/106] resources/views/components/character-card.blade.php: show race text along with class. --- resources/views/components/character-card.blade.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/resources/views/components/character-card.blade.php b/resources/views/components/character-card.blade.php index b205e2e..56e8fa9 100644 --- a/resources/views/components/character-card.blade.php +++ b/resources/views/components/character-card.blade.php @@ -17,7 +17,10 @@
-

{{ Str::ucfirst($character->class) }}

+

+ {{ Str::ucfirst($character->race) }} + {{ Str::ucfirst($character->class) }} +

@foreach($character->professions as $ch_prof) From 6377c39782803b146ce7df029a2ba484f91ca2a8 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sun, 18 Jul 2021 17:48:01 +0200 Subject: [PATCH 017/106] remove resources/views/components/profession-icon.blade.php --- resources/views/components/profession-icon.blade.php | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 resources/views/components/profession-icon.blade.php diff --git a/resources/views/components/profession-icon.blade.php b/resources/views/components/profession-icon.blade.php deleted file mode 100644 index dfa3e69..0000000 --- a/resources/views/components/profession-icon.blade.php +++ /dev/null @@ -1,3 +0,0 @@ -
- -
\ No newline at end of file From 766da19bb5e9a006a9d67e645abe8093fe6141f9 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sun, 18 Jul 2021 18:01:33 +0200 Subject: [PATCH 018/106] resources/images/races: fixing capital letters. --- .../images/races/{bloodelf_F.jpg => bloodelf_f.jpg} | Bin .../images/races/{bloodelf_M.jpg => bloodelf_m.jpg} | Bin .../images/races/{draenei_F.jpg => draenei_f.jpg} | Bin .../images/races/{draenei_M.jpg => draenei_m.jpg} | Bin resources/images/races/{dwarf_F.jpg => dwarf_f.jpg} | Bin resources/images/races/{dwarf_M.jpg => dwarf_m.jpg} | Bin resources/images/races/{gnome_F.jpg => gnome_f.jpg} | Bin resources/images/races/{gnome_M.jpg => gnome_m.jpg} | Bin resources/images/races/{human_F.jpg => human_f.jpg} | Bin resources/images/races/{human_M.jpg => human_m.jpg} | Bin .../images/races/{nightelf_F.jpg => nightelf_f.jpg} | Bin .../images/races/{nightelf_M.jpg => nightelf_m.jpg} | Bin resources/images/races/{orc_F.jpg => orc_f.jpg} | Bin resources/images/races/{orc_M.jpg => orc_m.jpg} | Bin .../images/races/{tauren_F.jpg => tauren_f.jpg} | Bin .../images/races/{tauren_M.jpg => tauren_m.jpg} | Bin resources/images/races/{troll_F.jpg => troll_f.jpg} | Bin resources/images/races/{troll_M.jpg => troll_m.jpg} | Bin .../images/races/{undead_F.jpg => undead_f.jpg} | Bin .../images/races/{undead_M.jpg => undead_m.jpg} | Bin 20 files changed, 0 insertions(+), 0 deletions(-) rename resources/images/races/{bloodelf_F.jpg => bloodelf_f.jpg} (100%) rename resources/images/races/{bloodelf_M.jpg => bloodelf_m.jpg} (100%) rename resources/images/races/{draenei_F.jpg => draenei_f.jpg} (100%) rename resources/images/races/{draenei_M.jpg => draenei_m.jpg} (100%) rename resources/images/races/{dwarf_F.jpg => dwarf_f.jpg} (100%) rename resources/images/races/{dwarf_M.jpg => dwarf_m.jpg} (100%) rename resources/images/races/{gnome_F.jpg => gnome_f.jpg} (100%) rename resources/images/races/{gnome_M.jpg => gnome_m.jpg} (100%) rename resources/images/races/{human_F.jpg => human_f.jpg} (100%) rename resources/images/races/{human_M.jpg => human_m.jpg} (100%) rename resources/images/races/{nightelf_F.jpg => nightelf_f.jpg} (100%) rename resources/images/races/{nightelf_M.jpg => nightelf_m.jpg} (100%) rename resources/images/races/{orc_F.jpg => orc_f.jpg} (100%) rename resources/images/races/{orc_M.jpg => orc_m.jpg} (100%) rename resources/images/races/{tauren_F.jpg => tauren_f.jpg} (100%) rename resources/images/races/{tauren_M.jpg => tauren_m.jpg} (100%) rename resources/images/races/{troll_F.jpg => troll_f.jpg} (100%) rename resources/images/races/{troll_M.jpg => troll_m.jpg} (100%) rename resources/images/races/{undead_F.jpg => undead_f.jpg} (100%) rename resources/images/races/{undead_M.jpg => undead_m.jpg} (100%) diff --git a/resources/images/races/bloodelf_F.jpg b/resources/images/races/bloodelf_f.jpg similarity index 100% rename from resources/images/races/bloodelf_F.jpg rename to resources/images/races/bloodelf_f.jpg diff --git a/resources/images/races/bloodelf_M.jpg b/resources/images/races/bloodelf_m.jpg similarity index 100% rename from resources/images/races/bloodelf_M.jpg rename to resources/images/races/bloodelf_m.jpg diff --git a/resources/images/races/draenei_F.jpg b/resources/images/races/draenei_f.jpg similarity index 100% rename from resources/images/races/draenei_F.jpg rename to resources/images/races/draenei_f.jpg diff --git a/resources/images/races/draenei_M.jpg b/resources/images/races/draenei_m.jpg similarity index 100% rename from resources/images/races/draenei_M.jpg rename to resources/images/races/draenei_m.jpg diff --git a/resources/images/races/dwarf_F.jpg b/resources/images/races/dwarf_f.jpg similarity index 100% rename from resources/images/races/dwarf_F.jpg rename to resources/images/races/dwarf_f.jpg diff --git a/resources/images/races/dwarf_M.jpg b/resources/images/races/dwarf_m.jpg similarity index 100% rename from resources/images/races/dwarf_M.jpg rename to resources/images/races/dwarf_m.jpg diff --git a/resources/images/races/gnome_F.jpg b/resources/images/races/gnome_f.jpg similarity index 100% rename from resources/images/races/gnome_F.jpg rename to resources/images/races/gnome_f.jpg diff --git a/resources/images/races/gnome_M.jpg b/resources/images/races/gnome_m.jpg similarity index 100% rename from resources/images/races/gnome_M.jpg rename to resources/images/races/gnome_m.jpg diff --git a/resources/images/races/human_F.jpg b/resources/images/races/human_f.jpg similarity index 100% rename from resources/images/races/human_F.jpg rename to resources/images/races/human_f.jpg diff --git a/resources/images/races/human_M.jpg b/resources/images/races/human_m.jpg similarity index 100% rename from resources/images/races/human_M.jpg rename to resources/images/races/human_m.jpg diff --git a/resources/images/races/nightelf_F.jpg b/resources/images/races/nightelf_f.jpg similarity index 100% rename from resources/images/races/nightelf_F.jpg rename to resources/images/races/nightelf_f.jpg diff --git a/resources/images/races/nightelf_M.jpg b/resources/images/races/nightelf_m.jpg similarity index 100% rename from resources/images/races/nightelf_M.jpg rename to resources/images/races/nightelf_m.jpg diff --git a/resources/images/races/orc_F.jpg b/resources/images/races/orc_f.jpg similarity index 100% rename from resources/images/races/orc_F.jpg rename to resources/images/races/orc_f.jpg diff --git a/resources/images/races/orc_M.jpg b/resources/images/races/orc_m.jpg similarity index 100% rename from resources/images/races/orc_M.jpg rename to resources/images/races/orc_m.jpg diff --git a/resources/images/races/tauren_F.jpg b/resources/images/races/tauren_f.jpg similarity index 100% rename from resources/images/races/tauren_F.jpg rename to resources/images/races/tauren_f.jpg diff --git a/resources/images/races/tauren_M.jpg b/resources/images/races/tauren_m.jpg similarity index 100% rename from resources/images/races/tauren_M.jpg rename to resources/images/races/tauren_m.jpg diff --git a/resources/images/races/troll_F.jpg b/resources/images/races/troll_f.jpg similarity index 100% rename from resources/images/races/troll_F.jpg rename to resources/images/races/troll_f.jpg diff --git a/resources/images/races/troll_M.jpg b/resources/images/races/troll_m.jpg similarity index 100% rename from resources/images/races/troll_M.jpg rename to resources/images/races/troll_m.jpg diff --git a/resources/images/races/undead_F.jpg b/resources/images/races/undead_f.jpg similarity index 100% rename from resources/images/races/undead_F.jpg rename to resources/images/races/undead_f.jpg diff --git a/resources/images/races/undead_M.jpg b/resources/images/races/undead_m.jpg similarity index 100% rename from resources/images/races/undead_M.jpg rename to resources/images/races/undead_m.jpg From e4363c078a98bba6f82b12345202659c0626d878 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Tue, 20 Jul 2021 15:21:40 +0200 Subject: [PATCH 019/106] app/View/Components: minor fixes. --- app/View/Components/ClassIcon.php | 2 +- app/View/Components/Icon.php | 16 +++++++++++++--- app/View/Components/ProfessionIcon.php | 2 +- app/View/Components/RaceIcon.php | 2 +- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/app/View/Components/ClassIcon.php b/app/View/Components/ClassIcon.php index af42b9b..8da501d 100644 --- a/app/View/Components/ClassIcon.php +++ b/app/View/Components/ClassIcon.php @@ -6,5 +6,5 @@ use Illuminate\View\Component; class ClassIcon extends Icon { - protected $prefix = 'classes'; + protected string $prefix = 'classes'; } diff --git a/app/View/Components/Icon.php b/app/View/Components/Icon.php index 5089f75..33559dc 100644 --- a/app/View/Components/Icon.php +++ b/app/View/Components/Icon.php @@ -8,9 +8,15 @@ use Illuminate\View\Component; abstract class Icon extends Component { - protected $prefix = ''; + /** + * Path prefix. + */ + protected string $prefix = ''; - public $url; + /** + * Image url. + */ + public string $url; /** * Create a new component instance. @@ -19,7 +25,11 @@ abstract class Icon extends Component */ public function __construct(string $name) { - $file = sprintf('%s/%s.jpg', $this->prefix, Str::lower($name)); + $file = Str::of($name)->lower()->append('.jpg'); + if (strlen($this->prefix)) { + $file = collect([$this->prefix, $file])->join('/'); + } + $this->url = Storage::disk('images')->url($file); } diff --git a/app/View/Components/ProfessionIcon.php b/app/View/Components/ProfessionIcon.php index 416de63..7681781 100644 --- a/app/View/Components/ProfessionIcon.php +++ b/app/View/Components/ProfessionIcon.php @@ -4,5 +4,5 @@ namespace App\View\Components; class ProfessionIcon extends Icon { - protected $prefix = 'professions'; + protected string $prefix = 'professions'; } diff --git a/app/View/Components/RaceIcon.php b/app/View/Components/RaceIcon.php index 1c75ee9..e4e07d9 100644 --- a/app/View/Components/RaceIcon.php +++ b/app/View/Components/RaceIcon.php @@ -7,7 +7,7 @@ use Illuminate\Support\Str; class RaceIcon extends Icon { - protected $prefix = 'races'; + protected string $prefix = 'races'; /** * Create a new component instance. From 5117907a4df8916c4c3c211611d1ab7b8ba902de Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Tue, 20 Jul 2021 15:24:42 +0200 Subject: [PATCH 020/106] app/View/Components/Icon.php: rename view script --- app/View/Components/Icon.php | 2 +- .../components/{class-icon.blade.php => image-icon.blade.php} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename resources/views/components/{class-icon.blade.php => image-icon.blade.php} (100%) diff --git a/app/View/Components/Icon.php b/app/View/Components/Icon.php index 33559dc..024838f 100644 --- a/app/View/Components/Icon.php +++ b/app/View/Components/Icon.php @@ -40,6 +40,6 @@ abstract class Icon extends Component */ public function render() { - return view('components.class-icon'); + return view('components.image-icon'); } } diff --git a/resources/views/components/class-icon.blade.php b/resources/views/components/image-icon.blade.php similarity index 100% rename from resources/views/components/class-icon.blade.php rename to resources/views/components/image-icon.blade.php From b76a9979489f200ecbaa4019fdb0c2542683fb66 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Tue, 20 Jul 2021 15:38:57 +0200 Subject: [PATCH 021/106] Refactor UserController to ProfileController. --- ...{UserController.php => ProfileController.php} | 8 ++++---- app/Http/Livewire/Form/CharacterForm.php | 2 +- resources/views/partials/navigation.blade.php | 2 +- resources/views/{user => profile}/edit.blade.php | 2 +- .../views/{user => profile}/index.blade.php | 2 +- routes/web.php | 10 +++++----- tests/Feature/CharacterCreateTest.php | 2 +- tests/Feature/CharacterUpdateTest.php | 2 +- tests/Feature/{UserTest.php => ProfileTest.php} | 16 ++++++++-------- 9 files changed, 23 insertions(+), 23 deletions(-) rename app/Http/Controllers/{UserController.php => ProfileController.php} (80%) rename resources/views/{user => profile}/edit.blade.php (95%) rename resources/views/{user => profile}/index.blade.php (97%) rename tests/Feature/{UserTest.php => ProfileTest.php} (84%) diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/ProfileController.php similarity index 80% rename from app/Http/Controllers/UserController.php rename to app/Http/Controllers/ProfileController.php index 4a0a867..136bd7e 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/ProfileController.php @@ -7,18 +7,18 @@ use Illuminate\Support\Facades\Hash; use Illuminate\Http\Request; use App\Http\Requests\UserRequest; -class UserController extends Controller +class ProfileController extends Controller { public function index(Request $request) { - return view('user.index', [ + return view('profile.index', [ 'user' => Auth::user(), ]); } public function edit(Request $request) { - return view('user.edit', [ + return view('profile.edit', [ 'user' => Auth::user(), ]); } @@ -32,7 +32,7 @@ class UserController extends Controller $user->password = Hash::make($data['password']); $user->save(); - return redirect()->route('user.index') + return redirect()->route('profile.index') ->with('success', 'Your account was updated!'); } } diff --git a/app/Http/Livewire/Form/CharacterForm.php b/app/Http/Livewire/Form/CharacterForm.php index 2040bb6..3e2e199 100644 --- a/app/Http/Livewire/Form/CharacterForm.php +++ b/app/Http/Livewire/Form/CharacterForm.php @@ -109,7 +109,7 @@ class CharacterForm extends Component // Livewire redirect() does not have "with" method. // so we call session()->flash() directly instead. session()->flash('success', "{$this->character->name} was {$action}!"); - return redirect()->route('user.index'); + return redirect()->route('profile.index'); } public function render() diff --git a/resources/views/partials/navigation.blade.php b/resources/views/partials/navigation.blade.php index 14c763b..60a357d 100644 --- a/resources/views/partials/navigation.blade.php +++ b/resources/views/partials/navigation.blade.php @@ -18,7 +18,7 @@
@auth - {{ auth()->user()->username }} + {{ auth()->user()->username }} {{ __('Logout') }} diff --git a/resources/views/user/edit.blade.php b/resources/views/profile/edit.blade.php similarity index 95% rename from resources/views/user/edit.blade.php rename to resources/views/profile/edit.blade.php index d6eca68..5af3fad 100644 --- a/resources/views/user/edit.blade.php +++ b/resources/views/profile/edit.blade.php @@ -8,7 +8,7 @@
- +
{{ __('Username') }} diff --git a/resources/views/user/index.blade.php b/resources/views/profile/index.blade.php similarity index 97% rename from resources/views/user/index.blade.php rename to resources/views/profile/index.blade.php index 185eaac..49e42b4 100644 --- a/resources/views/user/index.blade.php +++ b/resources/views/profile/index.blade.php @@ -7,7 +7,7 @@ - + {{ __('Edit') }} diff --git a/routes/web.php b/routes/web.php index c53ac4d..83f5f28 100644 --- a/routes/web.php +++ b/routes/web.php @@ -2,7 +2,7 @@ use Illuminate\Support\Facades\Route; -use App\Http\Controllers\UserController; +use App\Http\Controllers\ProfileController; use App\Http\Controllers\CharacterController; use App\Http\Controllers\CharacterProfessionController; use App\Http\Controllers\ProfessionController; @@ -67,10 +67,10 @@ Route::prefix('recipes')->name('recipe.')->group(function () { // ---------------------------- Route::middleware(['auth'])->group(function() { - Route::prefix('profile')->name('user.')->group(function () { - Route::get('/', [UserController::class, 'index'])->name('index'); - Route::get('/edit', [UserController::class, 'edit'])->name('edit'); - Route::post('/', [UserController::class, 'update'])->name('update'); + Route::prefix('profile')->name('profile.')->group(function () { + Route::get('/', [ProfileController::class, 'index'])->name('index'); + Route::get('/edit', [ProfileController::class, 'edit'])->name('edit'); + Route::post('/', [ProfileController::class, 'update'])->name('update'); }); // Admin diff --git a/tests/Feature/CharacterCreateTest.php b/tests/Feature/CharacterCreateTest.php index 5dca7a1..67fbb41 100644 --- a/tests/Feature/CharacterCreateTest.php +++ b/tests/Feature/CharacterCreateTest.php @@ -43,7 +43,7 @@ class CharacterCreateTest extends TestCase ->set('character.race', 'human') ->set('character.gender', 'F') ->call('save') - ->assertRedirect(route('user.index')); + ->assertRedirect(route('profile.index')); // Find character and check the data. $character = Character::where('name', 'Elise')->first(); diff --git a/tests/Feature/CharacterUpdateTest.php b/tests/Feature/CharacterUpdateTest.php index 78e2276..e40c964 100644 --- a/tests/Feature/CharacterUpdateTest.php +++ b/tests/Feature/CharacterUpdateTest.php @@ -57,7 +57,7 @@ class CharacterUpdateTest extends TestCase ->set('character.race', 'dwarf') ->set('character.gender', 'F') ->call('save') - ->assertRedirect(route('user.index')); + ->assertRedirect(route('profile.index')); // Check database that character was updated. $this->assertDatabaseHas('characters', [ diff --git a/tests/Feature/UserTest.php b/tests/Feature/ProfileTest.php similarity index 84% rename from tests/Feature/UserTest.php rename to tests/Feature/ProfileTest.php index 08770fc..f0c45f0 100644 --- a/tests/Feature/UserTest.php +++ b/tests/Feature/ProfileTest.php @@ -9,7 +9,7 @@ use Tests\TestCase; use App\Models\User; -class UserTest extends TestCase +class ProfileTest extends TestCase { use RefreshDatabase; @@ -17,14 +17,14 @@ class UserTest extends TestCase { $user = User::factory()->create(); - $response = $this->actingAs($user)->get(route('user.index')); + $response = $this->actingAs($user)->get(route('profile.index')); $response->assertStatus(200); } public function test_guest_can_not_view_profile() { - $response = $this->get(route('user.index')); + $response = $this->get(route('profile.index')); $response->assertRedirect(route('auth.login')); } @@ -34,14 +34,14 @@ class UserTest extends TestCase $user = User::factory()->create(); $response = $this->actingAs($user) - ->post(route('user.update'), [ + ->post(route('profile.update'), [ 'username' => 'AnotherUsername', 'current_password' => null, 'password' => null, 'password_confirmation' => null ]); - $response->assertRedirect(route('user.index')); + $response->assertRedirect(route('profile.index')); $this->assertDatabaseHas('users', [ 'id' => $user->id, @@ -69,14 +69,14 @@ class UserTest extends TestCase ->andReturn(true); $response = $this->actingAs($user) - ->post(route('user.update'), [ + ->post(route('profile.update'), [ 'username' => $user->username, 'current_password' => 'password', 'password' => 'newpassword', 'password_confirmation' => 'newpassword' ]); - $response->assertRedirect(route('user.index')); + $response->assertRedirect(route('profile.index')); $this->assertDatabaseHas('users', [ 'id' => $user->id, @@ -87,7 +87,7 @@ class UserTest extends TestCase public function test_guest_can_not_update() { - $response = $this->post(route('user.update'), [ + $response = $this->post(route('profile.update'), [ 'current_password' => 'password', 'password' => 'newpassword', 'password_confirmation' => 'newpassword' From e2fe666fc7d0a9724c451904bf3636b7f71e51a8 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 21 Jul 2021 17:49:10 +0200 Subject: [PATCH 022/106] Migration: 2021_07_21_173416_add_character_id_to_users_table.php --- ...173416_add_character_id_to_users_table.php | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 database/migrations/2021_07_21_173416_add_character_id_to_users_table.php diff --git a/database/migrations/2021_07_21_173416_add_character_id_to_users_table.php b/database/migrations/2021_07_21_173416_add_character_id_to_users_table.php new file mode 100644 index 0000000..a6670b7 --- /dev/null +++ b/database/migrations/2021_07_21_173416_add_character_id_to_users_table.php @@ -0,0 +1,23 @@ +foreignId('character_id') + ->after('discord_id') + ->nullable() + ->constrained(); + }); + } +} From b73a8438d48418a5a1924cd6be1b49a0c714e99d Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 21 Jul 2021 17:52:30 +0200 Subject: [PATCH 023/106] app/Models/User.php: Adding main_character relationship --- app/Models/User.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/Models/User.php b/app/Models/User.php index d69c007..7c09e75 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -52,6 +52,11 @@ class User extends Authenticatable }); } + public function main_character() + { + return $this->belongsTo(Character::class, 'character_id'); + } + public function characters() { return $this->hasMany(Character::class); From 52114635135eb130e52c6821fb134f50daa3a916 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 21 Jul 2021 17:53:27 +0200 Subject: [PATCH 024/106] Database Seeding: seed main_character relationship on user. --- database/seeders/DatabaseSeeder.php | 1 - .../CharacterTableSeeder.php | 27 ------------------- .../DevelopmentSeeders/UserTableSeeder.php | 13 +++++++++ 3 files changed, 13 insertions(+), 28 deletions(-) delete mode 100644 database/seeders/DevelopmentSeeders/CharacterTableSeeder.php diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 47a59c2..8091874 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -16,7 +16,6 @@ class DatabaseSeeder extends Seeder $this->call(ProductionSeeders\ProfessionsTableSeeder::class); $this->call(DevelopmentSeeders\UserTableSeeder::class); - $this->call(DevelopmentSeeders\CharacterTableSeeder::class); $this->call(DevelopmentSeeders\ItemTableSeeder::class); $this->call(DevelopmentSeeders\RecipeCategoryTableSeeder::class); $this->call(DevelopmentSeeders\RecipeTableSeeder::class); diff --git a/database/seeders/DevelopmentSeeders/CharacterTableSeeder.php b/database/seeders/DevelopmentSeeders/CharacterTableSeeder.php deleted file mode 100644 index 5b09be0..0000000 --- a/database/seeders/DevelopmentSeeders/CharacterTableSeeder.php +++ /dev/null @@ -1,27 +0,0 @@ -hasRandomExistingProfessions(2) - ->create(); - } - } -} diff --git a/database/seeders/DevelopmentSeeders/UserTableSeeder.php b/database/seeders/DevelopmentSeeders/UserTableSeeder.php index a3ed8e5..e4489e9 100644 --- a/database/seeders/DevelopmentSeeders/UserTableSeeder.php +++ b/database/seeders/DevelopmentSeeders/UserTableSeeder.php @@ -5,6 +5,7 @@ namespace Database\Seeders\DevelopmentSeeders; use Illuminate\Database\Seeder; use App\Models\User; +use App\Models\Character; class UserTableSeeder extends Seeder { @@ -19,5 +20,17 @@ class UserTableSeeder extends Seeder 'username' => 'admin', 'role' => 'admin', ]); + + $users = User::factory()->count(50) + ->has(Character::factory() + ->hasRandomExistingProfessions(2) + ->count(3)) + ->create(); + + foreach($users as $user) { + $character = $user->characters->random(); + $user->main_character()->associate($character); + $user->push(); + } } } From 52bd1012a565aa11c673cfe0912ac63f7559fbac Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 21 Jul 2021 18:15:44 +0200 Subject: [PATCH 025/106] app/Models/Character.php: Add isMain() --- app/Models/Character.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/Models/Character.php b/app/Models/Character.php index 979f24a..b9d45ca 100644 --- a/app/Models/Character.php +++ b/app/Models/Character.php @@ -67,6 +67,14 @@ class Character extends Model return $this->belongsTo(User::class); } + /** + * Check if this character is the user's main character + */ + public function isMain() + { + return $this->user->character_id == $this->id; + } + /** * Retrieve the character's professions. */ From bf23433524b69ea692cdfc423dcce150b4da75b9 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 21 Jul 2021 18:54:20 +0200 Subject: [PATCH 026/106] Adding resources/images/elite_frame.png --- resources/images/elite_frame.png | Bin 0 -> 171507 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 resources/images/elite_frame.png diff --git a/resources/images/elite_frame.png b/resources/images/elite_frame.png new file mode 100644 index 0000000000000000000000000000000000000000..a4194580efd645781611d86aaa917a97cffac815 GIT binary patch literal 171507 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 V`*-H091IK$44$rjF6*2UngEP~mplLf literal 0 HcmV?d00001 From 6287695f8114094b03d646f2e0b71194d9e15419 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 21 Jul 2021 18:55:30 +0200 Subject: [PATCH 027/106] tailwind.config.js: Add scales --- tailwind.config.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tailwind.config.js b/tailwind.config.js index a035e0f..af4549d 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -25,6 +25,21 @@ module.exports = { 'class-warrior': '#C69B6D', }, }, + scale: { + '0': '0', + '25': '.25', + '50': '.5', + '75': '.75', + '90': '.9', + '95': '.95', + '100': '1', + '105': '1.05', + '110': '1.1', + '125': '1.25', + '150': '1.5', + '175': '1.75', + '200': '2', + }, }, variants: { extend: {}, From ecc35c6fe673e3879c70a1884ee23998e37f7007 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 21 Jul 2021 18:56:41 +0200 Subject: [PATCH 028/106] resources/views/components/character-card.blade.php: add option to show elite frame. --- resources/views/components/character-card.blade.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/resources/views/components/character-card.blade.php b/resources/views/components/character-card.blade.php index 56e8fa9..8552dcc 100644 --- a/resources/views/components/character-card.blade.php +++ b/resources/views/components/character-card.blade.php @@ -1,9 +1,16 @@ -@props(['character', 'destroy' => false]) +@props(['character', 'destroy' => false, 'frame' => false ])
From 2f215d0b829de22c84deb3a18e084fa232675315 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 21 Jul 2021 18:57:10 +0200 Subject: [PATCH 029/106] Add user page. --- app/Http/Controllers/UserController.php | 18 ++++++++++++++++++ app/Models/User.php | 9 +++++++++ resources/views/user/show.blade.php | 25 +++++++++++++++++++++++++ routes/web.php | 5 +++++ tests/Feature/UserTest.php | 24 ++++++++++++++++++++++++ 5 files changed, 81 insertions(+) create mode 100644 app/Http/Controllers/UserController.php create mode 100644 resources/views/user/show.blade.php create mode 100644 tests/Feature/UserTest.php diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php new file mode 100644 index 0000000..8aa44a9 --- /dev/null +++ b/app/Http/Controllers/UserController.php @@ -0,0 +1,18 @@ +belongsTo(Character::class, 'character_id'); } + public function alt_characters() + { + $relation = $this->characters(); + if ($this->character_id) { + $relation->where('id', '!=', $this->character_id); + } + return $relation; + } + public function characters() { return $this->hasMany(Character::class); diff --git a/resources/views/user/show.blade.php b/resources/views/user/show.blade.php new file mode 100644 index 0000000..9054c06 --- /dev/null +++ b/resources/views/user/show.blade.php @@ -0,0 +1,25 @@ + + + {{ __('User') }} - {{ $user->username }} + +
+ + +

{{ __('Characters') }}

+
+ + @if ($user->characters->count()) +
+ @if ($user->main_character) + + @endif + + @foreach($user->alt_characters as $character) + + @endforeach +
+ @else + + @endif +
+
diff --git a/routes/web.php b/routes/web.php index 83f5f28..0747d0a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -2,6 +2,7 @@ use Illuminate\Support\Facades\Route; +use App\Http\Controllers\UserController; use App\Http\Controllers\ProfileController; use App\Http\Controllers\CharacterController; use App\Http\Controllers\CharacterProfessionController; @@ -36,6 +37,10 @@ Route::name('auth.')->group(function () { // Public section // ---------------------------- +Route::prefix('user')->name('user.')->group(function() { + Route::get('{user}', [UserController::class, 'show'])->name('show'); +}); + Route::prefix('characters')->name('character.')->group(function() { Route::get('create', [CharacterController::class, 'create'])->name('create'); Route::post('create', [CharacterController::class, 'store'])->name('store'); diff --git a/tests/Feature/UserTest.php b/tests/Feature/UserTest.php new file mode 100644 index 0000000..1b19c72 --- /dev/null +++ b/tests/Feature/UserTest.php @@ -0,0 +1,24 @@ +create(); + + $response = $this->get(route('user.show', [ 'user' => $user ])); + + $response->assertStatus(200); + } +} From a179010914dd8d9fe9c282681c3aa6931958146e Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Thu, 22 Jul 2021 18:03:15 +0200 Subject: [PATCH 030/106] resources/views/character/show.blade.php: Show user. --- resources/views/character/show.blade.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/resources/views/character/show.blade.php b/resources/views/character/show.blade.php index 4a03898..3288582 100644 --- a/resources/views/character/show.blade.php +++ b/resources/views/character/show.blade.php @@ -21,6 +21,14 @@
+ +

{{ __('Owner') }}

+
+ + + {{ $character->user->username }} + +

Professions

From acce1c21b8544acc5c46809209b002ee53961534 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Thu, 22 Jul 2021 18:17:22 +0200 Subject: [PATCH 031/106] resources/views/components/form/inputs/select.blade.php: Set name attribute. --- resources/views/components/form/inputs/select.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/components/form/inputs/select.blade.php b/resources/views/components/form/inputs/select.blade.php index f38eed3..08144ac 100644 --- a/resources/views/components/form/inputs/select.blade.php +++ b/resources/views/components/form/inputs/select.blade.php @@ -1,4 +1,4 @@ -merge(['class' => 'w-full border rounded p-1 focus:ring-2']) !!}> @forelse($options as $key => $option)
+
+ {{ __('Main character') }} + +
+

Password

From 52f565f04b1cb7a23ae9124014fffdee33668513 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Thu, 22 Jul 2021 18:50:06 +0200 Subject: [PATCH 037/106] app/Http/Controllers/ProfileController.php: in update() use Model::fill() This is more generic as one only needs to add validated fields to Request object. and they will be saved automatically. --- app/Http/Controllers/ProfileController.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 2ed75cc..75fc514 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -25,11 +25,10 @@ class ProfileController extends Controller public function update(UserRequest $request) { - $data = $request->validated(); + $data = collect($request->validated()); $user = $request->user(); - $user->username = $data['username']; - $user->character_id = $data['character_id']; + $user->fill($data->except('password')->toArray()); $user->password = Hash::make($data['password']); $user->save(); From 099115d6135d1c882388f5fd7cf00e0b24b59fa3 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Thu, 22 Jul 2021 18:53:31 +0200 Subject: [PATCH 038/106] tests/Feature/ProfileTest.php: test that user can not set an empty password hash. --- tests/Feature/ProfileTest.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/Feature/ProfileTest.php b/tests/Feature/ProfileTest.php index f0c45f0..b13ffc2 100644 --- a/tests/Feature/ProfileTest.php +++ b/tests/Feature/ProfileTest.php @@ -85,6 +85,26 @@ class ProfileTest extends TestCase ]); } + public function test_user_can_not_set_empty_password_hash() + { + $user = User::factory()->create([ 'password' => NULL ]); + + $response = $this->actingAs($user) + ->post(route('profile.update'), [ + 'username' => $user->username, + 'current_password' => '', + 'password' => '', + 'password_confirmation' => '' + ]); + + $response->assertRedirect(route('profile.index')); + + $this->assertDatabaseHas('users', [ + 'id' => $user->id, + 'password' => NULL + ]); + } + public function test_guest_can_not_update() { $response = $this->post(route('profile.update'), [ From f3314d106ab82d72e529822e163f3d9258c4b2b1 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Thu, 22 Jul 2021 18:54:39 +0200 Subject: [PATCH 039/106] app/Http/Controllers/ProfileController.php: in update() do not create hash for empty password. --- app/Http/Controllers/ProfileController.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 75fc514..0746295 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -29,7 +29,9 @@ class ProfileController extends Controller $user = $request->user(); $user->fill($data->except('password')->toArray()); - $user->password = Hash::make($data['password']); + if (strlen($data['password'])) { + $user->password = Hash::make($data['password']); + } $user->save(); return redirect()->route('profile.index') From 23b5103b12bc62d346dc9dcc212fd297233910e8 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Thu, 22 Jul 2021 18:55:40 +0200 Subject: [PATCH 040/106] tests/Feature/CharacterDestroyTest.php: test that deleting a main character sets character_id to null on the user object. --- tests/Feature/CharacterDestroyTest.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/Feature/CharacterDestroyTest.php b/tests/Feature/CharacterDestroyTest.php index d804c60..20abdf3 100644 --- a/tests/Feature/CharacterDestroyTest.php +++ b/tests/Feature/CharacterDestroyTest.php @@ -26,6 +26,20 @@ class CharacterDestroyTest extends TestCase $this->assertDatabaseMissing('characters', [ 'id' => $character->id, 'deleted_at' => NULL ]); } + public function test_deleting_main_character_sets_character_id_to_null_on_user() + { + $user = User::factory()->create(); + $character = Character::factory()->for($user)->create(); + + $user->character_id = $character->id; + $user->save(); + + $character->delete(); + + $this->assertDatabaseHas('users', [ 'id' => $user->id, 'character_id' => NULL ]); + $this->assertDatabaseMissing('characters', [ 'id' => $character->id, 'deleted_at' => NULL ]); + } + public function test_guest_can_not_delete_character() { $character = Character::factory()->create(); From 4628ce85ac118d6169a8e594d53709a265e732cd Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Thu, 22 Jul 2021 18:56:16 +0200 Subject: [PATCH 041/106] app/Models/Character.php: Clear main character relationship if a main character is deleted. --- app/Models/Character.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/Models/Character.php b/app/Models/Character.php index b9d45ca..18184b6 100644 --- a/app/Models/Character.php +++ b/app/Models/Character.php @@ -26,6 +26,20 @@ class Character extends Model 'class' ]; + public static function boot() + { + parent::boot(); + + static::deleted(function($character) { + + // Unset main character. + if ($character->isMain()) { + $character->user->main_character()->dissociate(); + $character->user->save(); + } + }); + } + /** * Get the route key for the model. * From 3b71b0358b6066003ef15edc3e4718aebd3d4f86 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Fri, 23 Jul 2021 13:25:13 +0200 Subject: [PATCH 042/106] resources/views/livewire/recipes.blade.php: move recipe link to a component. --- resources/views/components/recipe-link.blade.php | 13 +++++++++++++ resources/views/livewire/recipes.blade.php | 13 +------------ 2 files changed, 14 insertions(+), 12 deletions(-) create mode 100644 resources/views/components/recipe-link.blade.php diff --git a/resources/views/components/recipe-link.blade.php b/resources/views/components/recipe-link.blade.php new file mode 100644 index 0000000..8f422bc --- /dev/null +++ b/resources/views/components/recipe-link.blade.php @@ -0,0 +1,13 @@ +@props(['recipe']) +@php + if ($recipe->spell) { + $id = $recipe->spell->id; + $type = 'spell'; + } else { + $id = $recipe->craft->external_id; + $type = 'item'; + } +@endphp + + {{ $recipe->name }} + diff --git a/resources/views/livewire/recipes.blade.php b/resources/views/livewire/recipes.blade.php index 6349be4..4098923 100644 --- a/resources/views/livewire/recipes.blade.php +++ b/resources/views/livewire/recipes.blade.php @@ -19,18 +19,7 @@ @foreach($recipes as $recipe) - @php - if ($recipe->spell) { - $id = $recipe->spell->id; - $type = 'spell'; - } else { - $id = $recipe->craft->external_id; - $type = 'item'; - } - @endphp - - {{ $recipe->name }} - +
From 7df1e8345dc7c88ec73222e371e053b70e0173cb Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Fri, 23 Jul 2021 13:26:42 +0200 Subject: [PATCH 043/106] app/Models/Item.php: add getRouteKeyName() --- app/Models/Item.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/Models/Item.php b/app/Models/Item.php index 0c79d53..8b56cc5 100644 --- a/app/Models/Item.php +++ b/app/Models/Item.php @@ -32,6 +32,16 @@ class Item extends Model }); } + /** + * Get the route key for the model. + * + * @return string + */ + public function getRouteKeyName() + { + return 'slug'; + } + public function recipe() { return $this->belongsTo(Recipe::class, 'id'); From d3eccc596f460ff25c0a84331b2db022b24f42da Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Fri, 23 Jul 2021 13:33:10 +0200 Subject: [PATCH 044/106] app/Models/Item.php: change recipe relationship from belongsTo to hasMany. --- app/Models/Item.php | 4 ++-- tests/Feature/Models/ItemTest.php | 12 +++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/Models/Item.php b/app/Models/Item.php index 8b56cc5..4008b55 100644 --- a/app/Models/Item.php +++ b/app/Models/Item.php @@ -42,9 +42,9 @@ class Item extends Model return 'slug'; } - public function recipe() + public function recipes() { - return $this->belongsTo(Recipe::class, 'id'); + return $this->hasMany(Recipe::class); } public function getQuantityAttribute() diff --git a/tests/Feature/Models/ItemTest.php b/tests/Feature/Models/ItemTest.php index a58f441..dccee93 100644 --- a/tests/Feature/Models/ItemTest.php +++ b/tests/Feature/Models/ItemTest.php @@ -13,18 +13,24 @@ class ItemTest extends TestCase use RefreshDatabase; /** - * Test recipe relationship. + * Test recipes relationship. * * @return void */ - public function test_recipe_relationship() + public function test_recipes_relationship() { $item = Item::factory()->create(); + $recipe = Recipe::factory() ->for($item, 'craft') ->create(); - $this->assertEquals($recipe->id, $item->recipe->id); + $recipe2 = Recipe::factory() + ->for($item, 'craft') + ->create(); + + $this->assertEquals($recipe->id, $item->recipes[0]->id); + $this->assertEquals($recipe2->id, $item->recipes[1]->id); } /** From 9ca47e55ceb55d409c8f40a6331f371e090cf007 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Fri, 23 Jul 2021 16:56:29 +0200 Subject: [PATCH 045/106] npm: add tailwindcss/forms --- package-lock.json | 37 +++++++++++++++++++++++++++++++++++++ package.json | 1 + 2 files changed, 38 insertions(+) diff --git a/package-lock.json b/package-lock.json index d1ef580..9b00e4f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "alpinejs": "^3.1.1" }, "devDependencies": { + "@tailwindcss/forms": "^0.3.3", "autoprefixer": "^10.2.5", "axios": "^0.21", "laravel-mix": "^6.0.6", @@ -1719,6 +1720,18 @@ "node": ">= 8" } }, + "node_modules/@tailwindcss/forms": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.3.3.tgz", + "integrity": "sha512-U8Fi/gq4mSuaLyLtFISwuDYzPB73YzgozjxOIHsK6NXgg/IWD1FLaHbFlWmurAMyy98O+ao74ksdQefsquBV1Q==", + "dev": true, + "dependencies": { + "mini-svg-data-uri": "^1.2.3" + }, + "peerDependencies": { + "tailwindcss": ">=2.0.0" + } + }, "node_modules/@trysound/sax": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.1.1.tgz", @@ -7102,6 +7115,15 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/mini-svg-data-uri": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.3.3.tgz", + "integrity": "sha512-+fA2oRcR1dJI/7ITmeQJDrYWks0wodlOz0pAEhKYJ2IVc1z0AnwJUsKY2fzFmPAM3Jo9J0rBx8JAA9QQSJ5PuA==", + "dev": true, + "bin": { + "mini-svg-data-uri": "cli.js" + } + }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -12501,6 +12523,15 @@ "fastq": "^1.6.0" } }, + "@tailwindcss/forms": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.3.3.tgz", + "integrity": "sha512-U8Fi/gq4mSuaLyLtFISwuDYzPB73YzgozjxOIHsK6NXgg/IWD1FLaHbFlWmurAMyy98O+ao74ksdQefsquBV1Q==", + "dev": true, + "requires": { + "mini-svg-data-uri": "^1.2.3" + } + }, "@trysound/sax": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.1.1.tgz", @@ -16817,6 +16848,12 @@ } } }, + "mini-svg-data-uri": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.3.3.tgz", + "integrity": "sha512-+fA2oRcR1dJI/7ITmeQJDrYWks0wodlOz0pAEhKYJ2IVc1z0AnwJUsKY2fzFmPAM3Jo9J0rBx8JAA9QQSJ5PuA==", + "dev": true + }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", diff --git a/package.json b/package.json index ce39230..5d90c55 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "production": "mix --production" }, "devDependencies": { + "@tailwindcss/forms": "^0.3.3", "autoprefixer": "^10.2.5", "axios": "^0.21", "laravel-mix": "^6.0.6", From c7b2ba26609d0a83fa367c6fb5be2b5d4859be7c Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Fri, 23 Jul 2021 16:56:48 +0200 Subject: [PATCH 046/106] tailwind.config.js: include forms plugin. --- tailwind.config.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tailwind.config.js b/tailwind.config.js index af4549d..a0ed915 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -44,5 +44,7 @@ module.exports = { variants: { extend: {}, }, - plugins: [], + plugins: [ + require('@tailwindcss/forms'), + ], } From 01b1b0654122f1f31100238eb0055e2ce2ae1098 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Fri, 23 Jul 2021 16:57:49 +0200 Subject: [PATCH 047/106] resources/views/components/form/inputs/*: fixing styles that where reset because of tailwind forms. --- resources/views/components/form/inputs/input.blade.php | 2 +- resources/views/components/form/inputs/select.blade.php | 2 +- resources/views/components/form/inputs/textarea.blade.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/views/components/form/inputs/input.blade.php b/resources/views/components/form/inputs/input.blade.php index 9b33811..c386010 100644 --- a/resources/views/components/form/inputs/input.blade.php +++ b/resources/views/components/form/inputs/input.blade.php @@ -1,6 +1,6 @@ merge(['class' => ($errors->has($name) ? 'border-danger-400 ' : '') . 'w-full border rounded px-2 py-1 focus:ring-2']) }} {{ $disabled }} /> + {{ $attributes->merge(['class' => ($errors->has($name) ? 'border-danger-400 ' : '') . 'w-full border border-gray-200 rounded px-2 py-1 focus:ring-1']) }} {{ $disabled }} /> @error($name)

{{ $message }}

diff --git a/resources/views/components/form/inputs/select.blade.php b/resources/views/components/form/inputs/select.blade.php index 2b7d670..113b8eb 100644 --- a/resources/views/components/form/inputs/select.blade.php +++ b/resources/views/components/form/inputs/select.blade.php @@ -1,4 +1,4 @@ -merge(['class' => 'w-full border border-gray-200 rounded p-1 focus:ring-1']) !!}> @forelse($options as $key => $option)