Skip to content

Commit

Permalink
update subscriber section
Browse files Browse the repository at this point in the history
  • Loading branch information
plusemon committed May 31, 2022
1 parent 4fa0e34 commit 3c32b84
Show file tree
Hide file tree
Showing 6 changed files with 147 additions and 11 deletions.
15 changes: 6 additions & 9 deletions app/Http/Controllers/SubscriberController.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class SubscriberController extends Controller
public function index()
{
$data['subscribers'] = Subscriber::all();
return view('subscribers.index',$data);
return view('accounts.manage-subscribers.index', $data);
}

/**
Expand All @@ -26,7 +26,7 @@ public function index()
*/
public function create()
{
return view('subscribers.create');
return view('subscribers.create');
}

/**
Expand All @@ -38,15 +38,12 @@ public function create()
public function store(Request $request)
{
$request->validate([
//
]);

Subscriber::create([
//
'email' => ['required', 'string', 'email', 'max:255', 'unique:subscribers,email'],
]);

return redirect(route('subscribers.index'));
Subscriber::create($request->only(['email']));

return back();
}

/**
Expand Down Expand Up @@ -82,7 +79,7 @@ public function edit(Subscriber $subscriber)
*/
public function update(Request $request, Subscriber $subscriber)
{
$request->validate([
$request->validate([
//
]);

Expand Down
7 changes: 7 additions & 0 deletions app/Models/Subscriber.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,11 @@
class Subscriber extends Model
{
use HasFactory;

/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['email'];
}
32 changes: 32 additions & 0 deletions database/migrations/2022_05_31_115042_create_subscribers_table.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('subscribers', function (Blueprint $table) {
$table->id();
$table->string('email')->unique();
$table->timestamps();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('subscribers');
}
};
73 changes: 73 additions & 0 deletions resources/views/accounts/manage-subscribers/index.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
@php
$meta['title'] = 'Manage Subscribers';
@endphp

@extends('accounts.layouts.main', $meta)

@section('main')
<main class="page-content">
<div class="card">
<div class="card-header d-flex justify-content-between">
<h5>{{ $meta['title'] }}</h5>
<button type="button" data-bs-toggle="modal" data-bs-target="#createNewItemModal" class="btn btn-primary btn-sm">Add
New</button>
</div>
<div class="card-body">
<div class="table-responsive">
<table id="datatable" class="table table-striped table-bordered">
<thead>
<tr>
<th>#</th>
<th>Email</th>
<th>Subscribed at</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
@foreach ($subscribers as $subscriber)
<tr>
<td>{{ $loop->iteration }}</td>
<td>{{ $subscriber->email }}</td>
<td>{{ $subscriber->created_at }}</td>
<td>
<form data-form-type="deleteForm"
action="{{ route('accounts.subscribers.destroy', $subscriber) }}" method="POST">
@csrf
@method('delete')
<button class="btn btn-sm btn-danger">Unsubscribe</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</main>

<!-- Modal -->
<div class="modal fade" id="createNewItemModal" tabindex="-1" role="dialog" aria-labelledby="modelTitleId" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<form action="{{ route('accounts.subscribers.store') }}" method="POST">
<div class="modal-header">
<h5 class="modal-title">Add New Subscriber</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
@csrf
<div class="mb-2">
<label>Email</label>
<input type="email" name="email" placeholder="example@gmail.com" class="form-control">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Save</button>
</div>
</form>
</div>
</div>
</div>
@endsection
24 changes: 24 additions & 0 deletions resources/views/components/modal.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<!-- Modal -->
<div class="modal fade" id="createNewItemModal" tabindex="-1" role="dialog" aria-labelledby="modelTitleId" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<form action="{{ route('accounts.subscribers.store') }}" method="POST">
<div class="modal-header">
<h5 class="modal-title">Add New Subscriber</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
@csrf
<div class="mb-2">
<label>Email</label>
<input type="email" name="email" placeholder="example@gmail.com" class="form-control">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Save</button>
</div>
</form>
</div>
</div>
</div>
7 changes: 5 additions & 2 deletions routes/web.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,11 @@
Route::resource('users', App\Http\Controllers\UserController::class)
->only(['index', 'create', 'show']);

Route::resource('permissions', App\Http\Controllers\PermissionController::class)->names('permissions');
Route::resource('subscribers', App\Http\Controllers\SubscriberController::class)->names('subscribers');
Route::resource('permissions', App\Http\Controllers\PermissionController::class)
->only(['index']);

Route::resource('subscribers', App\Http\Controllers\SubscriberController::class)
->only(['index', 'store', 'destroy']);
});


Expand Down

0 comments on commit 3c32b84

Please sign in to comment.