Commit ce191845 authored by rizqunazs's avatar rizqunazs
Browse files

bnerin dikit

No related merge requests found
Showing with 97 additions and 69 deletions
+97 -69
......@@ -5,11 +5,13 @@
use App\Models\Product;
use App\Models\Category;
use App\Models\User;
use App\Models\ProductGallery;
use Illuminate\Support\Str;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\File;
use App\Http\Requests\Admin\ProductRequest;
use Yajra\DataTables\DataTables as DataTablesDataTables;
......@@ -52,7 +54,7 @@ public function index()
</div>
';
})
->rawColumns(['action','photo'])
->rawColumns(['action'])
->make();
}
......@@ -66,7 +68,11 @@ public function index()
*/
public function create()
{
$users = User::all();
$users = User::select("*")
->where("roles", "=", 'USER')
->get();
// $users = User::all();
$categories = Category::all();
return view('pages.admin.product.create', [
......@@ -112,7 +118,9 @@ public function show($id)
public function edit($id)
{
$item = Product::findOrFail($id);
$users = User::all();
$users = User::select("*")
->where("roles", "=", 'USER')
->get();
$categories = Category::all();
return view('pages.admin.product.edit',[
......@@ -151,6 +159,15 @@ public function update(ProductRequest $request, $id)
public function destroy($id)
{
$item = Product::findOrFail($id);
$productGalleries = ProductGallery::where('products_id', $id)->get();
foreach ($productGalleries as $productGallery) {
if (File::delete(public_path('storage/'.$productGallery->photos))) {
$productGallery->delete();
}
}
$item->delete();
return redirect()->route('product.index');
......
......@@ -30,31 +30,23 @@ public function index()
return DataTablesDataTables::of($query)
->addColumn('action', function($item){
return '
<div class="btn-group">
<div class="dropdown">
<button class="btn btn-info dropdown=toggle mr-1 mb-1"
type="button"
data-toggle="dropdown">
Aksi
</button>
<div class="dropdown-menu">
<form action="'. route('product-gallery.destroy', $item->id) .'" method="POST">
<div>
<form action="'. route('product-gallery.destroy', $item->id) .'" method="POST" class="btn btn-danger">
'. method_field('delete'). csrf_field() .'
<button type="submit" class="dropdown-item text-danger">
<button type="submit" class="dropdown-item text-light">
Hapus
</button>
</form>
</div>
</div>
</div>
';
})
->editColumn('photos', function($item){ //nama fungsinya adalah editColum mau ngedit kolom yang udah ada yaitu photo(buat nampilin fotondari url img)
->editColumn('photos', function($item){ //nama fungsinya adalah editColum buatngedit kolom foto. yang udah ada yaitu photo(buat nampilin fotondari url img)
return $item->photos ? '<img src="'. Storage::url($item->photos) .'" style="max-height: 80px" />' : ''; //dikembalikan dalam bentuk url dibuat menggunakan ternary function
//ngecek ada foto apa ga, kalo ada munculin gambar klo gada kosongan
//disimpan img src, memanggil url storage dari foto itu sndiri
})
->rawColumns(['action','photos']) //kalo ga dikasi photos munculnya urlnya
->rawColumns(['action','photos']) //buat enntuin column 2 diatas. kalo ga dikasi photos munculnya urlnya
->make();
}
......
......@@ -38,7 +38,7 @@ public function index()
<div class="dropdown-menu">
<a class="dropdown-item" href="' . route('user.edit', $item->id) .'">
Edit
</a>
</a>
<form action="'. route('user.destroy', $item->id) .'" method="POST">
'. method_field('delete'). csrf_field() .'
<button type="submit" class="dropdown-item text-danger">
......@@ -93,7 +93,7 @@ public function store(UserRequest $request)
$data = $request->all();
$data['password'] = bcrypt($request->password); //dipake laravel untuk membuat password ambil dari library laravel. di enksripsi biar ga kebaca .menggunakan bcrypt karena lebih kuat daripda md5 (md5 mengenkripsi hingga 32 ) sedangkan bcrypt 60
$data['is_active']= 1;
User::create($data);
return redirect()->route('user.index');
......
......@@ -10,6 +10,7 @@
use App\Http\Requests\Admin\ProductRequest;
use App\Models\ProductGallery;
use App\Models\TransactionDetail;
use Illuminate\Support\Facades\File;
class DashboardProductController extends Controller
{
public function index()
......@@ -95,6 +96,13 @@ public function update(ProductRequest $request, $id)
public function delete($id)
{
$item = Product::findOrFail($id);
$productGalleries = ProductGallery::where('products_id', $id)->get();
foreach ($productGalleries as $productGallery) {
if (File::delete(public_path('storage/'.$productGallery->photos))) {
$productGallery->delete();
}
}
$item->delete();
return redirect()->route('dashboard-product');
......
......@@ -75,6 +75,7 @@ class Kernel extends HttpKernel
'buyer' => \App\Http\Middleware\IsBuyer::class,
'seller' => \App\Http\Middleware\IsSeller::class,
'user' => \App\Http\Middleware\IsUser::class,
'campur' => \App\Http\Middleware\IsCampur::class,
'mahasiswa' => \App\Http\Middleware\isMahasiswa::class,
];
......
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class IsCampur
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
if(Auth::user() && Auth::user()->roles != 'ADMIN')
{
return $next($request);
}
return redirect('/');
}
}
......@@ -37,7 +37,7 @@ public function user()//satu user banyak galeri (buat tau produk itu yang punya
public function category() //pengen tau produk itu masuk kategori mana
{
return $this->belongsTo(Category::class, 'categories_id', 'id'); //kategori cuma satu tiap produk
return $this->belongsTo(Category::class, 'categories_id', 'id'); //kategori cuma satu tiap produk, karena fk direlasiin ke pk
}
public function transactiondetail()
{
......
......@@ -139,15 +139,6 @@ class="form-control @error('store_name') is-invalid @enderror"
</span>
@enderror
</div>
<div class="form-group" v-if="is_store_open">
<label>Kategori</label>
<select type="category" class="form-control" name="categories_id">
<option value="" disabled>Select category</option>
@foreach ($categories as $category)
<option value="{{ $category->id }}">{{ $category->name }}</option>
@endforeach
</select>
</div>
<button type="submit"
class="btn btn-success btn-block mt-4"
:disabled="this.email_unavailable"
......
......@@ -20,7 +20,7 @@ class="navbar-toggler"
<a href="{{ route('/') }}" class="nav-link">Home</a>
</li>
<li class="nav-item">
<a href="{{ route('categories')}}" class="nav-link">Categories</a>
<a href="{{ route('categories')}}" class="nav-link">Kategori</a>
</li>
<li class="nav-item">
<a href="{{ route('listproduct')}}" class="nav-link">Produk</a>
......
......@@ -22,7 +22,7 @@ class="navbar-toggler"
<a href="{{ route('home') }}" class="nav-link {{ (request()->is('/')) ? 'active' : '' }}">Home</a>
</li>
<li class="nav-item">
<a href="{{ route('categories') }}" class="nav-link {{ (request()->is('categories')) ? 'active' : '' }}">Categories</a>
<a href="{{ route('categories') }}" class="nav-link {{ (request()->is('categories')) ? 'active' : '' }}">Kategori</a>
</li>
<li class="nav-item">
<a href="{{ route('listproduct') }}" class="nav-link {{ (request()->is('listproduct')) ? 'active' : '' }}">Produk</a>
......
......@@ -65,7 +65,8 @@ class="section-content section-dashboard-home"
{ data: 'category.name', name: 'category.name' },
{ data: 'price', name: 'price' },
{ data: 'stock', name: 'stock' },
{ data: 'transactiondetail_sum_quantity', name: 'transactiondetail_sum_quantity' },
{ data: 'transactiondetail_sum_quantity', name: 'transactiondetail_sum_quantity', orderable: false, //fungsinya supaya field action gabisa disortir
searchable:false, },
{
data: 'action',
name: 'action',
......
......@@ -27,6 +27,7 @@ class="section-content section-dashboard-home"
</ul>
</div>
@endif
<div class="card">
<div class="card-body">
<form action="{{ route('user.store') }}" method="POST" enctype="multipart/form-data">
......
......@@ -61,12 +61,9 @@ class="section-content section-dashboard-home"
{ data: 'name', name: 'name' },
{ data: 'email', name: 'email' },
{ data: 'roles', name: 'roles' },
{
data: 'suspend',
name: 'suspend',
orderable: false,
searchable:false,
},
{data: 'suspend', name: 'suspend'
,orderable: false,
searchable:false,},
{
data: 'action',
name: 'action',
......
@extends('layouts.app1')
@extends('layouts.app')
@section('title')
Cart - Sekolah Vokasi E-COM
......@@ -126,7 +126,7 @@ class="cart-image" alt="" />
<select name="provinces_id" id="provinces_id" class="form-control" v-if="provinces"
v-model="provinces_id"> <!-- v-if="provinces" klo data provinsi ada baru dimunculin, klo gada ya ga.
v-model:provinces_id datanya bisa dibaca divuejs-->
<option v-for="province in provinces" :value="province.id"> @{{ province.name }} <!--klo mau output vue tu pke etsoalnya biar ga kebaca sebagai output blade karena vue js dan blad utput variable hampir sama -->
<option v-for="province in provinces" :value="province.id"> @{{ province.name }} <!--klo mau output vue tu pke et soalnya biar ga kebaca sebagai output blade karena vue js dan blad utput variable hampir sama -->
</option>
</select>
<select v-else class="form-control"></select>
......
......@@ -10,7 +10,7 @@
<div class="container">
<div class="row">
<div class="col-12">
<h5>All Categories</h5>
<h5>Semua Kategori</h5>
</div>
</div>
<div class="row">
......@@ -44,7 +44,7 @@ class="col-6 col-md-3 col-lg-2"
<div class="container">
<div class="row">
<div class="col-12" data-aos="fade-up">
<h5>All Products</h5>
<h5>Semua Produk</h5>
</div>
</div>
<div class="row">
......
......@@ -28,27 +28,6 @@ class="section-content section-dashboard-home"
<input type="text" class="form-control" name="store_name" value="{{ $user->store_name}}"/>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Kategori</label>
<select name="categories_id" class="form-control">
<option value="{{ $user->categories_id }}">Tidak Ganti</option>
@foreach ($categories as $category)
<option value="{{ $category->id }}">{{ $category->name }}</option>
@endforeach
</select>
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<label>Deskripsi Toko</label>
<textarea
name=""
id=""
class="form-control"
></textarea>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Toko</label>
......
......@@ -211,7 +211,7 @@ class="w-100 thumbnail-image"
<div class="container">
<div class="row">
<div class="col-12 col-lg-12 mb-3 mt-3">
<h3>Customer Review ( {{$comment->count()}} )</h3>
<h3>Komentar( {{$comment->count()}} )</h3>
</div>
</div>
<div class="row">
......
......@@ -69,7 +69,7 @@ class="carousel-control-next-icon"
<div class="container">
<div class="row">
<div class="col-12">
<h5>Trend Categories</h5>
<h5>Kategori</h5>
</div>
</div>
<div class="row">
......@@ -118,12 +118,11 @@ class="col-6 col-md-4 col-lg-3"
>
<a href="{{ route('detail', $product->slug)}}" class="component-products d-block">
<div class="products-thumbnail">
<!-- if($product->galleries->count()) = pengecekan jika produk galeri ada datanya mata manggil data -->
<div
class="products-image"
style="
@if($product->galleries->count())
background-image: url('{{ Storage::url($product->galleries->first()->photos) }}')
@else
background-color: #17A2B8
......
@extends('layouts.app')
@extends('layouts.app1')
@section('title')
Kategori - Sekolah Vokasi E-COM
......
......@@ -83,7 +83,6 @@
Route::get('/listproduct', [ListProductController::class, 'index'])->name('listproduct');
Route::get('/details/{id}', [DetailController::class, 'index'])->name('detail');
Route::post('/details/{product}', [DetailController::class, 'add'])->name('detail-add');
Route::get('/profile/{id}', [ProfileController::class, 'index'])->name('profile');
......@@ -172,6 +171,21 @@
Route::post('/dashboard/portofolio/setting/update', [SettingController::class, 'update'])->name('portofolio-setting-update');
});
Route::prefix('campur')
->namespace('')
->middleware(['auth', 'campur'])
->group(function(){
Route::post('/details/{product}', [DetailController::class, 'add'])->name('detail-add');
Route::get('/cart', [CartController::class, 'index'])->name('cart');
Route::patch('/cart/{cart}', [CartController::class, 'updateQuantity'])->name('cart-update-quantity');
Route::delete('/cart/{id}', [CartController::class, 'delete'])->name('cart-delete');
Route::get('ongkir/{regencies_id}', [CartController::class, 'cekOngkir'])->name('api-cek-ongkir');
Route::post('/checkout', [CheckoutController::class, 'process'])->name('checkout');
});
Route::prefix('user')
->namespace('')
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment