fix: adding indexes to tables
This commit is contained in:
parent
d5c7e9e4f5
commit
7772be7dc5
@ -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');
|
||||
});
|
||||
}
|
||||
};
|
@ -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');
|
||||
});
|
||||
}
|
||||
};
|
@ -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');
|
||||
});
|
||||
}
|
||||
};
|
@ -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');
|
||||
});
|
||||
}
|
||||
};
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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 -->
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
Loading…
Reference in New Issue
Block a user