fix: adding indexes to tables

This commit is contained in:
Paul Couture 2023-12-18 09:44:09 -06:00
parent d5c7e9e4f5
commit 7772be7dc5
10 changed files with 255 additions and 113 deletions

View File

@ -0,0 +1,34 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('artworks', function (Blueprint $table) {
$table->index('podcast_id');
$table->index('artist_id');
$table->index('episode_id');
$table->index('legacy_id');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('artworks', function (Blueprint $table) {
$table->dropIndex('podcast_id');
$table->dropIndex('artist_id');
$table->dropIndex('episode_id');
$table->dropIndex('legacy_id');
});
}
};

View File

@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('artists', function (Blueprint $table) {
$table->index('user_id');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('artists', function (Blueprint $table) {
$table->dropIndex('user_id');
});
}
};

View File

@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('podcasts', function (Blueprint $table) {
$table->index('published');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('podcasts', function (Blueprint $table) {
$table->dropIndex('published');
});
}
};

View File

@ -0,0 +1,34 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('episodes', function (Blueprint $table) {
$table->index('podcast_id');
$table->index('artwork_id');
$table->index('episode_date');
$table->index('published');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('episodes', function (Blueprint $table) {
$table->dropIndex('podcast_id');
$table->dropIndex('artwork_id');
$table->dropIndex('episode_date');
$table->dropIndex('published');
});
}
};

View File

@ -18,3 +18,15 @@ img.avatar_img {
max-width: 100%;
height: auto;
}
label[for=avatar] {
img {
&:hover {
cursor:pointer;
}
}
}
input[name=avatar] {
&.sr-only {
display: none;
}
}

View File

@ -19,7 +19,7 @@
@endsection
@section('page-content')
<section class="signup-wrapper signin-wrapper ptb-120">
<section class="ptb-120">
<div class="container">
<div class="row">
<!-- Page Heading -->

View File

@ -1,3 +1,4 @@
@extends('layouts.master')
@section('additional_headers')
@parent
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.6.1/cropper.min.css" integrity="sha512-hvNR0F/e2J7zPPfLC9auFe3/SE0yG4aJCOd/qxew74NN7eyiSKjr7xJJMu1Jy2wf7FXITpWS1E/RY8yzuXN7VA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
@ -6,29 +7,28 @@
@parent
<script src="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.6.1/cropper.min.js" integrity="sha512-9KkIqdfN7ipEW6B6k+Aq20PV31bjODg4AA52W+tYtAE0jE0kMx49bjJ3FgvS56wzmyfMUHbQ4Km2b7l9+Y/+Eg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
@endsection
@section('page-content')
<x-app-layout>
<x-slot name="header">
<h2 class="">
{{ __('Manage Account Credentials') }}
{{ __('Manage Account Details') }}
</h2>
</x-slot>
<section class="signup-wrapper signin-wrapper ptb-4">
<section class="ptb-4">
<div class="container">
<div class="row d-flex-row d-flex align-content-stretch flex-wrap mb-4">
<div class="col-xl-5 col-lg-12 authbox">
<div class="row">
<div class="col-xl-4 col-lg-12 mb-4">
@include('profile.partials.update-profile-information-form')
</div>
<div class="col-xl-5 offset-xl-2 col-lg-12 authbox">
<div class="col-xl-4 col-lg-12 mb-4">
@include('profile.partials.update-password-form')
</div>
</div>
<div class="row d-flex-row d-flex align-content-stretch flex-wrap mb-4">
<div class="col-xl-5 col-lg-12 authbox">
<div class="col-xl-4 col-lg-12 mb-4">
@include('profile.partials.update-avatar-form')
</div>
</div>
</div>
</section>
</x-app-layout>
@endsection

View File

@ -1,15 +1,17 @@
<div class="row mt-4 gutter-2">
<div class="col">
<div class="signin-content">
<div class="mb-6">
<h2 class="mb-2">{{ __('Update Your Artist Avatar') }}</h2>
<p class="normal">{{ __('This avatar will be used on the artist gallery and artist profile page.') }}</p>
<div class="authbox">
<div class="row mt-4 gutter-2">
<div class="col">
<div class="signin-content">
<div class="mb-6">
<h2 class="mb-2">{{ __('Update Artist Avatar') }}</h2>
<p class="normal">{{ __('This avatar will be used on the artist gallery and artist profile page.') }}</p>
</div>
</div>
</div>
</div>
</div>
<div class="row mt-0 gutter-2">
<div class="col">
<livewire:artist.avatar />
<div class="row mt-0 gutter-2">
<div class="col">
<livewire:artist.avatar />
</div>
</div>
</div>

View File

@ -1,50 +1,52 @@
<div class="row mt-4 gutter-2">
<div class="col">
<div class="signin-content">
<div class="mb-6">
<h2 class="mb-2">{{ __('Update Password') }}</h2>
<p class="normal">{{ __('Ensure your account is using a long, random password to stay secure.') }}</p>
<div class="authbox">
<div class="row mt-4 gutter-2">
<div class="col">
<div class="signin-content">
<div class="mb-6">
<h2 class="mb-2">{{ __('Update Password') }}</h2>
<p class="normal">{{ __('Ensure your account is using a long, random password to stay secure.') }}</p>
</div>
</div>
</div>
</div>
</div>
<div class="row mt-0 gutter-2">
<div class="col">
<form method="post" action="{{ route('password.update') }}" class="mt-6 space-y-6">
@csrf
@method('put')
<div class="row mt-0 gutter-2">
<div class="col">
<form method="post" action="{{ route('password.update') }}" class="mt-6 space-y-6">
@csrf
@method('put')
<div>
<x-input-label for="current_password" :value="__('Current Password')" />
<x-text-input id="current_password" name="current_password" type="password" class="mt-1 block w-full" autocomplete="current-password" />
<x-input-error :messages="$errors->updatePassword->get('current_password')" class="mt-2" />
</div>
<div>
<x-input-label for="current_password" :value="__('Current Password')" />
<x-text-input id="current_password" name="current_password" type="password" class="mt-1 block w-full" autocomplete="current-password" />
<x-input-error :messages="$errors->updatePassword->get('current_password')" class="mt-2" />
</div>
<div>
<x-input-label for="password" :value="__('New Password')" />
<x-text-input id="password" name="password" type="password" class="mt-1 block w-full" autocomplete="new-password" />
<x-input-error :messages="$errors->updatePassword->get('password')" class="mt-2" />
</div>
<div>
<x-input-label for="password" :value="__('New Password')" />
<x-text-input id="password" name="password" type="password" class="mt-1 block w-full" autocomplete="new-password" />
<x-input-error :messages="$errors->updatePassword->get('password')" class="mt-2" />
</div>
<div>
<x-input-label for="password_confirmation" :value="__('Confirm Password')" />
<x-text-input id="password_confirmation" name="password_confirmation" type="password" class="mt-1 block w-full" autocomplete="new-password" />
<x-input-error :messages="$errors->updatePassword->get('password_confirmation')" class="mt-2" />
</div>
<div>
<x-input-label for="password_confirmation" :value="__('Confirm Password')" />
<x-text-input id="password_confirmation" name="password_confirmation" type="password" class="mt-1 block w-full" autocomplete="new-password" />
<x-input-error :messages="$errors->updatePassword->get('password_confirmation')" class="mt-2" />
</div>
<div class="d-flex justify-content-end text-end mt-4 mb-4">
<x-primary-button class="ml-3 btn btn-gradient"><span>{{ __('Save') }}</span></x-primary-button>
<div class="d-flex justify-content-end text-end mt-4 mb-4">
<x-primary-button class="ml-3 btn btn-gradient"><span>{{ __('Save') }}</span></x-primary-button>
@if (session('status') === 'password-updated')
<p
x-data="{ show: true }"
x-show="show"
x-transition
x-init="setTimeout(() => show = false, 2000)"
class="text-sm text-gray-600 dark:text-gray-400"
>{{ __('Saved.') }}</p>
@endif
</div>
</form>
@if (session('status') === 'password-updated')
<p
x-data="{ show: true }"
x-show="show"
x-transition
x-init="setTimeout(() => show = false, 2000)"
class="text-sm text-gray-600 dark:text-gray-400"
>{{ __('Saved.') }}</p>
@endif
</div>
</form>
</div>
</div>
</div>

View File

@ -1,65 +1,67 @@
<div class="row mt-4 gutter-2">
<div class="col">
<div class="signin-content">
<div class="mb-6">
<h2 class="mb-2">{{ __('Edit Login Information') }}</h2>
<p class="normal">{{ __("Update your account's username and email address. Note, your username may not be the same as your public artist profile.") }}</p>
<div class="authbox">
<div class="row mt-4 gutter-2">
<div class="col">
<div class="signin-content">
<div class="mb-6">
<h2 class="mb-2">{{ __('Update Login') }}</h2>
<p class="normal">{{ __("Update your account's username and email address. Note, your username may not be the same as your public artist profile.") }}</p>
</div>
</div>
</div>
</div>
</div>
<div class="row mt-0 gutter-2">
<div class="col">
<form id="send-verification" method="post" action="{{ route('verification.send') }}">
@csrf
</form>
<div class="row mt-0 gutter-2">
<div class="col">
<form id="send-verification" method="post" action="{{ route('verification.send') }}">
@csrf
</form>
<form method="post" action="{{ route('profile.update') }}">
@csrf
@method('patch')
<form method="post" action="{{ route('profile.update') }}">
@csrf
@method('patch')
<div>
<x-input-label for="name" :value="__('Name')" />
<x-text-input id="name" name="name" type="text" class="mt-1 block w-full" :value="old('name', $user->name)" required autofocus autocomplete="name" />
<x-input-error class="mt-2" :messages="$errors->get('name')" />
</div>
<div>
<x-input-label for="name" :value="__('Name')" />
<x-text-input id="name" name="name" type="text" class="mt-1 block w-full" :value="old('name', $user->name)" required autofocus autocomplete="name" />
<x-input-error class="mt-2" :messages="$errors->get('name')" />
</div>
<div>
<x-input-label for="email" :value="__('Email')" />
<x-text-input id="email" name="email" type="email" class="mt-1 block w-full" :value="old('email', $user->email)" required autocomplete="username" />
<x-input-error class="mt-2" :messages="$errors->get('email')" />
<div>
<x-input-label for="email" :value="__('Email')" />
<x-text-input id="email" name="email" type="email" class="mt-1 block w-full" :value="old('email', $user->email)" required autocomplete="username" />
<x-input-error class="mt-2" :messages="$errors->get('email')" />
@if ($user instanceof \Illuminate\Contracts\Auth\MustVerifyEmail && ! $user->hasVerifiedEmail())
<div>
<p class="text-sm mt-2 text-gray-800 dark:text-gray-200">
{{ __('Your email address is unverified.') }}
@if ($user instanceof \Illuminate\Contracts\Auth\MustVerifyEmail && ! $user->hasVerifiedEmail())
<div>
<p class="text-sm mt-2 text-gray-800 dark:text-gray-200">
{{ __('Your email address is unverified.') }}
<button form="send-verification" class="btn btn-small btn-gradient">
<span>{{ __('Click here to re-send the verification email.') }}</span>
</button>
</p>
@if (session('status') === 'verification-link-sent')
<p class="mt-2 font-medium text-sm text-green-600 dark:text-green-400">
{{ __('A new verification link has been sent to your email address.') }}
<button form="send-verification" class="btn btn-small btn-gradient">
<span>{{ __('Click here to re-send the verification email.') }}</span>
</button>
</p>
@endif
</div>
@endif
</div>
<div class="d-flex justify-content-end mt-4 mb-4 text-end">
<x-primary-button class="ml-3 btn btn-gradient"><span>{{ __('Update Login Information') }}</span></x-primary-button>
@if (session('status') === 'profile-updated')
<p
x-data="{ show: true }"
x-show="show"
x-transition
x-init="setTimeout(() => show = false, 2000)"
class="text-sm text-gray-600 dark:text-gray-400"
>{{ __('Saved.') }}</p>
@endif
</div>
</form>
@if (session('status') === 'verification-link-sent')
<p class="mt-2 font-medium text-sm text-green-600 dark:text-green-400">
{{ __('A new verification link has been sent to your email address.') }}
</p>
@endif
</div>
@endif
</div>
<div class="d-flex justify-content-end mt-4 mb-4 text-end">
<x-primary-button class="ml-3 btn btn-gradient"><span>{{ __('Update Login Information') }}</span></x-primary-button>
@if (session('status') === 'profile-updated')
<p
x-data="{ show: true }"
x-show="show"
x-transition
x-init="setTimeout(() => show = false, 2000)"
class="text-sm text-gray-600 dark:text-gray-400"
>{{ __('Saved.') }}</p>
@endif
</div>
</form>
</div>
</div>
</div>