first commit
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
||||
<title>Bệnh viện SIS</title>
|
||||
<meta name="description" content="">
|
||||
<meta name="keywords" content="">
|
||||
<meta name="format-detection" content="telephone=yes">
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
<link rel="stylesheet" href="{{asset('libs/bootstrap/css/bootstrap.min.css')}}">
|
||||
<link rel="stylesheet" href="{{asset('backend/css/style.css')}}">
|
||||
<script src="{{asset('libs/jquery/jquery.min.js')}}"></script>
|
||||
<script src="{{asset('libs/bootstrap/js/bootstrap.js')}}"></script>
|
||||
<script src="{{asset('libs/bootstrap/js/bootstrap.min.js')}}"></script>
|
||||
<script src="{{asset('backend/js/main.js')}}"></script>
|
||||
<link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.10.0/css/all.css"
|
||||
integrity="sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p" crossorigin="anonymous"/>
|
||||
|
||||
<link rel="stylesheet" href="{{asset('libs/datatable/dataTables.bootstrap4.css')}}"/>
|
||||
<link rel="stylesheet" href="{{asset('libs/datatable/responsive.bootstrap4.css')}}"/>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div class='dashboard'>
|
||||
<div class="dashboard-nav">
|
||||
<!-- menu left header -->
|
||||
<header>
|
||||
<a href="#!" class="menu-toggle">
|
||||
<i class="fas fa-bars"></i>
|
||||
</a>
|
||||
<a href="#" class="brand-logo">
|
||||
<img src="{{asset('frontend/imgs/LogoSIS.png')}}" />
|
||||
</a>
|
||||
</header>
|
||||
<!-- end menu left header -->
|
||||
<!-- menu left -->
|
||||
@include('backend.menu_left')
|
||||
<!-- end menu left -->
|
||||
</div>
|
||||
<div class='dashboard-app'>
|
||||
<!-- main header -->
|
||||
<header class='dashboard-toolbar'>
|
||||
<a href="#!" class="menu-toggle">
|
||||
<i class="fas fa-bars"></i>
|
||||
</a>
|
||||
</header>
|
||||
<!-- end main header -->
|
||||
<div class='dashboard-content'>
|
||||
<div class='container'>
|
||||
<div class='card'>
|
||||
@yield('content')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" language="javascript" src="{{asset('libs/datatable/dataTables.js')}}"></script>
|
||||
<script type="text/javascript" language="javascript" src="{{asset('libs/datatable/dataTables.bootstrap4.js')}}"></script>
|
||||
<script type="text/javascript" language="javascript" src="{{asset('libs/datatable/dataTables.responsive.js')}}"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,70 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="vi">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Bệnh viện S.I.S</title>
|
||||
<link rel="stylesheet" href="{{asset('libs/bootstrap/css/bootstrap.min.css')}}">
|
||||
<link rel="stylesheet" href="{{asset('backend/css/login.css')}}">
|
||||
<script src="{{asset('libs/jquery/jquery.min.js')}}"></script>
|
||||
<script src="{{asset('libs/bootstrap/js/bootstrap.js')}}"></script>
|
||||
<script src="{{asset('libs/bootstrap/js/bootstrap.min.js')}}"></script>
|
||||
<link href='https://fonts.googleapis.com/css?family=Ubuntu:500' rel='stylesheet' type='text/css'>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<div class="login_box">
|
||||
<div class="login-header">
|
||||
<span>S.I.S</span>
|
||||
</div>
|
||||
@if(Session::has('errors'))
|
||||
<div class="alert alert-danger">
|
||||
{{ 'Đăng nhập thất bại' }}
|
||||
@php
|
||||
Session::forget('errors');
|
||||
@endphp
|
||||
</div>
|
||||
@endif
|
||||
@if(Session::has('error'))
|
||||
<div class="alert alert-danger">
|
||||
{{ Session::get('error') ?? ''}}
|
||||
@php
|
||||
Session::forget('error');
|
||||
@endphp
|
||||
</div>
|
||||
@endif
|
||||
<form class="login-form" action="{{route('adminlogin')}}" method="POST">
|
||||
{{ csrf_field() }}
|
||||
<div class="input_box">
|
||||
@php
|
||||
$email = '';
|
||||
if (old('email') != '') {
|
||||
$email = old('email');
|
||||
}
|
||||
@endphp
|
||||
<input type="text" id="email" name="email" class="input-field" value="{{ $email ?? '' }}" required
|
||||
autocomplete="off">
|
||||
<label for="email" class="label">Tên đăng nhập</label>
|
||||
<i class="bx bx-user icon"></i>
|
||||
</div>
|
||||
@if ($errors->has('email'))
|
||||
<span class="text-danger">{{ $errors->first('email') }}</span>
|
||||
@endif
|
||||
<div class="input_box">
|
||||
<input type="password" id="pass" name="password" class="input-field" required autocomplete="new-password">
|
||||
<label for="pass" class="label">Mật khẩu</label>
|
||||
<i class="bx bx-lock-alt icon"></i>
|
||||
</div>
|
||||
@if ($errors->has('password'))
|
||||
<span class="text-danger">{{ $errors->first('password') }}</span>
|
||||
@endif
|
||||
<div class="input_box">
|
||||
<input type="submit" class="input-submit" value="Login">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,31 @@
|
||||
<nav class="dashboard-nav-list">
|
||||
@php
|
||||
$menu_data = [];
|
||||
if (Auth::check()) {
|
||||
$menu_data = constructMenuLeft('backend_menu', Auth::user()->id);
|
||||
}
|
||||
@endphp
|
||||
@foreach ($menu_data as $menu_item)
|
||||
@php
|
||||
$menu_route = route($menu_item['route']);
|
||||
@endphp
|
||||
<a href="{{$menu_route ?? ''}}" class="dashboard-nav-item {{str_contains(Route::currentRouteName(), $menu_item['route']) ? 'active' : ''}}">
|
||||
<i class="{{$menu_item['icon'] ?? ''}}"></i> {{$menu_item['menu_name'] ?? ''}}
|
||||
</a>
|
||||
@endforeach
|
||||
<!-- <div class='dashboard-nav-dropdown'>
|
||||
<a href="#!" class="dashboard-nav-item dashboard-nav-dropdown-toggle">
|
||||
<i class="fas fa-users"></i> Users
|
||||
</a>
|
||||
<div class='dashboard-nav-dropdown-menu'>
|
||||
<a href="#" class="dashboard-nav-dropdown-item">All</a>
|
||||
<a href="#" class="dashboard-nav-dropdown-item">Subscribed</a>
|
||||
<a href="#" class="dashboard-nav-dropdown-item">Non-subscribed</a>
|
||||
<a href="#" class="dashboard-nav-dropdown-item">Banned</a>
|
||||
<a href="#" class="dashboard-nav-dropdown-item">New</a>
|
||||
</div>
|
||||
</div> -->
|
||||
<a href="{{route('admin/logout')}}" class="dashboard-nav-item">
|
||||
<i class="fas fa-sign-out-alt"></i> Logout
|
||||
</a>
|
||||
</nav>
|
||||
@@ -0,0 +1,167 @@
|
||||
@extends('backend.layout')
|
||||
@section('content')
|
||||
<script src="{{asset('libs/ckeditor/ckeditor.js')}}"></script>
|
||||
<div class='card-header'>
|
||||
<h1>{{$title ?? ''}}</h1>
|
||||
</div>
|
||||
@if(Session::has('success'))
|
||||
<div class="alert alert-success">
|
||||
{{ Session::get('success') }}
|
||||
@php
|
||||
Session::forget('success');
|
||||
@endphp
|
||||
</div>
|
||||
@endif
|
||||
@if(Session::has('errors'))
|
||||
<div class="alert alert-danger">
|
||||
{{ 'Có lỗi xảy ra (' . implode(', ', $errors->all(':message')) . ')'}}
|
||||
@php
|
||||
Session::forget('errors');
|
||||
@endphp
|
||||
</div>
|
||||
@endif
|
||||
<div class='card-body'>
|
||||
<form action="{{route('admin/parameter')}}" method="POST" enctype="multipart/form-data">
|
||||
<button type="submit" class="btn btn-primary btn-custom">Cập nhật</button>
|
||||
{{ csrf_field() }}
|
||||
<div class="row">
|
||||
@foreach ($data as $item)
|
||||
@if ($item->parameter_key == 'logo_image')
|
||||
<div class="col-md-6">
|
||||
<p style="text-transform: uppercase; text-align: center;"><b>Logo:</b></p>
|
||||
<div class="custom-file">
|
||||
<input type="file" name="logo_image" class="custom-file-input" id="logo-upload-image">
|
||||
<label class="upload-image-file-label" for="logo-upload-image" id="logo-upload-image-label">
|
||||
<i class='fa fa-camera'></i>
|
||||
</label>
|
||||
<div class="imgPreviewLogo">
|
||||
@if(isset($item->parameter_value) && $item->parameter_value != '')
|
||||
<img src="{{asset('images/' . $item->parameter_value)}}" />
|
||||
@endif
|
||||
</div>
|
||||
<span class="text-danger" id="logo-image_ErrorMsg"></span>
|
||||
</div>
|
||||
</div>
|
||||
@elseif ($item->parameter_key == 'banner_image')
|
||||
<div class="col-md-6">
|
||||
<p style="text-transform: uppercase; text-align: center;"><b>Banner:</b></p>
|
||||
<div class="custom-file">
|
||||
<input type="file" name="banner_image" class="custom-file-input" id="banner-upload-image">
|
||||
<label class="upload-image-file-label" for="banner-upload-image" id="banner-upload-image-label">
|
||||
<i class='fa fa-camera'></i>
|
||||
</label>
|
||||
<div class="imgPreviewBanner">
|
||||
@if(isset($item->parameter_value) && $item->parameter_value != '')
|
||||
<img src="{{asset('images/' . $item->parameter_value)}}" />
|
||||
@endif
|
||||
</div>
|
||||
<span class="text-danger" id="banner-image_ErrorMsg"></span>
|
||||
</div>
|
||||
<div class="text-danger text-center">(*) Kích thước khuyến nghị 626 x 401, định dạng hình: PNG, JPG</div>
|
||||
</div>
|
||||
@else
|
||||
<div class="form-group">
|
||||
<label for="{{$item->parameter_key ?? ''}}" style="text-transform: uppercase;">
|
||||
<b>{{$item->parameter_name ?? ''}}</b>
|
||||
</label>
|
||||
<textarea class="form-control" name="{{$item->parameter_key ?? ''}}" id="{{$item->parameter_key ?? ''}}"
|
||||
style="height: 10rem;">{{$item->parameter_value ?? ''}}</textarea>
|
||||
</div>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
<br>
|
||||
<button type="submit" class="btn btn-primary btn-custom">Cập nhật</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
CKEDITOR.editorConfig = function (config) {
|
||||
config.versionCheck = false;
|
||||
};
|
||||
var post_content = CKEDITOR.replace('game_rule', {
|
||||
filebrowserBrowseUrl: '{{ asset('libs/ckfinder/ckfinder.html') }}',
|
||||
filebrowserImageBrowseUrl: '{{ asset('libs/ckfinder/ckfinder.html?type=Images') }}',
|
||||
filebrowserFlashBrowseUrl: '{{ asset('libs/ckfinder/ckfinder.html?type=Flash') }}',
|
||||
filebrowserUploadUrl: '{{ asset('libs/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files') }}',
|
||||
filebrowserImageUploadUrl: '{{ asset('libs/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images') }}',
|
||||
filebrowserFlashUploadUrl: '{{ asset('libs/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash') }}'
|
||||
});
|
||||
post_content.config.height = 800;
|
||||
$(document).ready(function () {
|
||||
var multiImgPreview = function (input, imgPreviewPlaceholder, className) {
|
||||
if (input.files) {
|
||||
$('.' + className).empty();
|
||||
var filesAmount = input.files.length;
|
||||
for (i = 0; i < filesAmount; i++) {
|
||||
var reader = new FileReader();
|
||||
reader.onload = function (event) {
|
||||
$($.parseHTML('<img>')).attr('src', event.target.result).appendTo(imgPreviewPlaceholder);
|
||||
}
|
||||
reader.readAsDataURL(input.files[i]);
|
||||
}
|
||||
}
|
||||
};
|
||||
$('#logo-upload-image').on('change', function () {
|
||||
multiImgPreview(this, 'div.imgPreviewLogo', 'imgPreviewLogo');
|
||||
});
|
||||
$('#banner-upload-image').on('change', function () {
|
||||
multiImgPreview(this, 'div.imgPreviewBanner', 'imgPreviewBanner');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<style>
|
||||
#logo-upload-image,
|
||||
#banner-upload-image {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#logo-upload-image-label,
|
||||
#banner-upload-image-label {
|
||||
font-size: 3rem;
|
||||
}
|
||||
|
||||
.custom-file {
|
||||
text-align: center;
|
||||
min-height: 15rem;
|
||||
}
|
||||
|
||||
.imgPreviewLogo {
|
||||
width: 8rem;
|
||||
height: 8rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
overflow: hidden;
|
||||
border: 0.1rem solid;
|
||||
border-radius: 1rem;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.imgPreviewLogo img {
|
||||
width: auto;
|
||||
height: auto;
|
||||
max-height: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.imgPreviewBanner {
|
||||
width: 8rem;
|
||||
height: 8rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
overflow: hidden;
|
||||
border: 0.1rem solid;
|
||||
border-radius: 1rem;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.imgPreviewBanner img {
|
||||
width: auto;
|
||||
height: auto;
|
||||
max-height: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
</style>
|
||||
@endsection
|
||||
@@ -0,0 +1,157 @@
|
||||
@extends('backend.layout')
|
||||
@section('content')
|
||||
<script src="{{asset('libs/ckeditor/ckeditor.js')}}"></script>
|
||||
@if(Session::has('success'))
|
||||
<div class="alert alert-success">
|
||||
{{ Session::get('success') }}
|
||||
@php
|
||||
Session::forget('success');
|
||||
@endphp
|
||||
</div>
|
||||
@endif
|
||||
@if(Session::has('errors'))
|
||||
<div class="alert alert-danger">
|
||||
{{ 'Có lỗi xảy ra (' . implode(', ', $errors->all(':message')) . ')'}}
|
||||
@php
|
||||
Session::forget('errors');
|
||||
@endphp
|
||||
</div>
|
||||
@endif
|
||||
<div class='card-header'>
|
||||
<h1>{{$title ?? ''}}</h1>
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
<a class="btn btn-primary btn-custom right default" href="{{route('admin/prizes')}}">Trở về danh sách</a><br>
|
||||
<form enctype="multipart/form-data" action="{{route('admin/prize/update')}}" method="POST">
|
||||
{{ csrf_field() }}
|
||||
<input type="hidden" name="id" value="{{$data->id ?? 0}}" />
|
||||
<button class="btn btn-primary btn-custom" type="submit">
|
||||
@if (isset($data->id) && $data->id != '')
|
||||
Cập nhật
|
||||
@else
|
||||
Thêm mới
|
||||
@endif
|
||||
</button>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="custom-file">
|
||||
<input type="file" name="prize_image" class="custom-file-input" id="upload-image">
|
||||
<label class="upload-image-file-label" for="upload-image" id="upload-image-label">
|
||||
<i class='fa fa-camera'></i>
|
||||
</label>
|
||||
<div class="imgPreview">
|
||||
@if(isset($data->prize_image) && $data->prize_image != '')
|
||||
<img src="{{asset('images/' . $data->prize_image)}}" />
|
||||
@endif
|
||||
</div>
|
||||
<span class="text-danger" id="prize-image_ErrorMsg"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label for="prize_name">Tên giải thưởng</label>
|
||||
@php
|
||||
$prize_name = $data->prize_name ?? '';
|
||||
if (old('prize_name') != '') {
|
||||
$prize_name = old('prize_name');
|
||||
}
|
||||
@endphp
|
||||
<input class="form-control" id="prize_name" name="prize_name" value="{{$prize_name ?? ''}}" />
|
||||
@if ($errors->has('prize_name'))
|
||||
<span class="text-danger">{{ $errors->first('prize_name') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<label for="prize_number">Số lượng giải thưởng</label>
|
||||
@php
|
||||
$prize_number = $data->prize_number ?? '';
|
||||
if (old('prize_number') != '') {
|
||||
$prize_number = old('prize_number');
|
||||
}
|
||||
@endphp
|
||||
<input class="form-control" id="prize_number" name="prize_number" value="{{$prize_number ?? ''}}" />
|
||||
@if ($errors->has('prize_number'))
|
||||
<span class="text-danger">{{ $errors->first('prize_number') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<label for="prize_order">STT giải thưởng</label>
|
||||
@php
|
||||
$prize_order = $data->prize_order ?? '';
|
||||
if (old('prize_order') != '') {
|
||||
$prize_order = old('prize_order');
|
||||
}
|
||||
@endphp
|
||||
<input class="form-control" id="prize_order" name="prize_order" value="{{$prize_order ?? ''}}" />
|
||||
@if ($errors->has('prize_order'))
|
||||
<span class="text-danger">{{ $errors->first('prize_order') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<label for="prize_status">Trạng thái</label>
|
||||
@php
|
||||
$prize_status = $data->prize_status ?? '';
|
||||
if (old('prize_status') != '') {
|
||||
$prize_status = old('prize_status');
|
||||
}
|
||||
@endphp
|
||||
<select class="form-control" id="prize_status" name="prize_status">
|
||||
<option value="">Chưa chọn</option>
|
||||
<option value="1" {{isset($prize_status) && $prize_status == 1 ? 'selected' : ''}}>Hiển thị
|
||||
</option>
|
||||
<option value="0" {{isset($prize_status) && $prize_status == 0 ? 'selected' : ''}}>Ẩn</option>
|
||||
</select>
|
||||
@if ($errors->has('prize_status'))
|
||||
<span class="text-danger">{{ $errors->first('prize_status') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12" style="display: none;">
|
||||
<div class="form-group">
|
||||
<label for="prize_content">Nội dung giải thưởng</label>
|
||||
@php
|
||||
$prize_content = $data->prize_content ?? '';
|
||||
if (old('prize_content') != '') {
|
||||
$prize_content = old('prize_content');
|
||||
}
|
||||
@endphp
|
||||
<textarea class="form-control" id="prize_content" name="prize_content"
|
||||
rows="10">{{$prize_content ?? ''}}</textarea>
|
||||
@if ($errors->has('prize_content'))
|
||||
<span class="text-danger">{{ $errors->first('prize_content') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<button class="btn btn-primary btn-custom" type="submit">
|
||||
@if (isset($data->id) && $data->id != '')
|
||||
Cập nhật
|
||||
@else
|
||||
Thêm mới
|
||||
@endif
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<script>
|
||||
CKEDITOR.editorConfig = function (config) {
|
||||
config.versionCheck = false;
|
||||
};
|
||||
var post_content = CKEDITOR.replace('prize_content', {
|
||||
filebrowserBrowseUrl: '{{ asset('libs/ckfinder/ckfinder.html') }}',
|
||||
filebrowserImageBrowseUrl: '{{ asset('libs/ckfinder/ckfinder.html?type=Images') }}',
|
||||
filebrowserFlashBrowseUrl: '{{ asset('libs/ckfinder/ckfinder.html?type=Flash') }}',
|
||||
filebrowserUploadUrl: '{{ asset('libs/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files') }}',
|
||||
filebrowserImageUploadUrl: '{{ asset('libs/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images') }}',
|
||||
filebrowserFlashUploadUrl: '{{ asset('libs/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash') }}'
|
||||
});
|
||||
post_content.config.height = 800;
|
||||
</script>
|
||||
@endsection
|
||||
@@ -0,0 +1,9 @@
|
||||
@extends('backend.layout')
|
||||
@section('content')
|
||||
<div class='card-header'>
|
||||
<h1>{{$title ?? ''}}</h1>
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
@include('backend.prize.table')
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,50 @@
|
||||
@php
|
||||
$order_number = 0;
|
||||
@endphp
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<a class="btn btn-primary btn-custom right small" href="{{route($route_name_update)}}?id=0">Thêm mới</a>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="container">
|
||||
<table class="datatable table table-striped table-bordered" id="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-center">STT</th>
|
||||
<th>TÊN GIẢI THƯỞNG</th>
|
||||
<th class="text-center">HÌNH ẢNH</th>
|
||||
<th class="text-center">SỐ NGƯỜI NHẬN GIẢI</th>
|
||||
<th class="text-center">Trạng thái</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($data as $item)
|
||||
<tr>
|
||||
<td class="text-center">{{++$order_number ?? ''}}</td>
|
||||
<td>
|
||||
<a class="custom-link" href="{{route($route_name_update)}}?id={{$item->id ?? ''}}">
|
||||
Giải {{$item->prize_order ?? ''}} - {{$item->prize_name ?? ''}}
|
||||
</a>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
@if ($item->prize_image != '')
|
||||
<img src="{{asset('images/' . $item->prize_image)}}" />
|
||||
@endif
|
||||
</td>
|
||||
<td class="text-center">
|
||||
{{ $item->prize_count ?? 0 }} / {{ $item->prize_number ?? 0 }}
|
||||
@if ($item->prize_count >= $item->prize_number)
|
||||
<span class="text-danger"> (Số lượng hết)</span>
|
||||
@endif
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<p>{{$item->prize_status == 1 ? 'Hiển thị' : 'Ẩn'}}</p>
|
||||
<a href="{{route('admin/prize/delete', $item->id)}}" class="custom-danger-link"
|
||||
onclick="return confirm('Bạn có chắc muốn xóa ?')">Xóa</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -0,0 +1,157 @@
|
||||
@extends('backend.layout')
|
||||
@section('content')
|
||||
<script src="{{asset('libs/ckeditor/ckeditor.js')}}"></script>
|
||||
@if(Session::has('success'))
|
||||
<div class="alert alert-success">
|
||||
{{ Session::get('success') }}
|
||||
@php
|
||||
Session::forget('success');
|
||||
@endphp
|
||||
</div>
|
||||
@endif
|
||||
@if(Session::has('errors'))
|
||||
<div class="alert alert-danger">
|
||||
{{ 'Có lỗi xảy ra (' . implode(', ', $errors->all(':message')) . ')'}}
|
||||
@php
|
||||
Session::forget('errors');
|
||||
@endphp
|
||||
</div>
|
||||
@endif
|
||||
<div class='card-header'>
|
||||
<h1>{{$title ?? ''}}</h1>
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
<a class="btn btn-primary btn-custom right default" href="{{route('admin/prize')}}">Trở về danh sách</a><br>
|
||||
<form enctype="multipart/form-data" action="{{route('admin/prize/update')}}" method="POST">
|
||||
{{ csrf_field() }}
|
||||
<input type="hidden" name="id" value="{{$data->id ?? 0}}" />
|
||||
<button class="btn btn-primary btn-custom" type="submit">
|
||||
@if (isset($data->id) && $data->id != '')
|
||||
Cập nhật
|
||||
@else
|
||||
Thêm mới
|
||||
@endif
|
||||
</button>
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="custom-file">
|
||||
<input type="file" name="prize_image" class="custom-file-input" id="upload-image">
|
||||
<label class="upload-image-file-label" for="upload-image" id="upload-image-label">
|
||||
<i class='fa fa-camera'></i>
|
||||
</label>
|
||||
<div class="imgPreview">
|
||||
@if(isset($data->prize_image) && $data->prize_image != '')
|
||||
<img src="{{asset('images/' . $data->prize_image)}}" />
|
||||
@endif
|
||||
</div>
|
||||
<span class="text-danger" id="prize-image_ErrorMsg"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label for="prize_name">Tên giải thưởng</label>
|
||||
@php
|
||||
$prize_name = $data->prize_name ?? '';
|
||||
if (old('prize_name') != '') {
|
||||
$prize_name = old('prize_name');
|
||||
}
|
||||
@endphp
|
||||
<input class="form-control" id="prize_name" name="prize_name" value="{{$prize_name ?? ''}}" />
|
||||
@if ($errors->has('prize_name'))
|
||||
<span class="text-danger">{{ $errors->first('prize_name') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<label for="prize_number">Số lượng giải thưởng</label>
|
||||
@php
|
||||
$prize_number = $data->prize_number ?? '';
|
||||
if (old('prize_number') != '') {
|
||||
$prize_number = old('prize_number');
|
||||
}
|
||||
@endphp
|
||||
<input class="form-control" id="prize_number" name="prize_number" value="{{$prize_number ?? ''}}" />
|
||||
@if ($errors->has('prize_number'))
|
||||
<span class="text-danger">{{ $errors->first('prize_number') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<label for="prize_order">STT giải thưởng</label>
|
||||
@php
|
||||
$prize_order = $data->prize_order ?? '';
|
||||
if (old('prize_order') != '') {
|
||||
$prize_order = old('prize_order');
|
||||
}
|
||||
@endphp
|
||||
<input class="form-control" id="prize_order" name="prize_order" value="{{$prize_order ?? ''}}" />
|
||||
@if ($errors->has('prize_order'))
|
||||
<span class="text-danger">{{ $errors->first('prize_order') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<label for="prize_status">Trạng thái</label>
|
||||
@php
|
||||
$prize_status = $data->prize_status ?? '';
|
||||
if (old('prize_status') != '') {
|
||||
$prize_status = old('prize_status');
|
||||
}
|
||||
@endphp
|
||||
<select class="form-control" id="prize_status" name="prize_status">
|
||||
<option value="">Chưa chọn</option>
|
||||
<option value="1" {{isset($prize_status) && $prize_status == 1 ? 'selected' : ''}}>Hiển thị
|
||||
</option>
|
||||
<option value="0" {{isset($prize_status) && $prize_status == 0 ? 'selected' : ''}}>Ẩn</option>
|
||||
</select>
|
||||
@if ($errors->has('prize_status'))
|
||||
<span class="text-danger">{{ $errors->first('prize_status') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12" style="display: none;">
|
||||
<div class="form-group">
|
||||
<label for="prize_content">Nội dung giải thưởng</label>
|
||||
@php
|
||||
$prize_content = $data->prize_content ?? '';
|
||||
if (old('prize_content') != '') {
|
||||
$prize_content = old('prize_content');
|
||||
}
|
||||
@endphp
|
||||
<textarea class="form-control" id="prize_content" name="prize_content"
|
||||
rows="10">{{$prize_content ?? ''}}</textarea>
|
||||
@if ($errors->has('prize_content'))
|
||||
<span class="text-danger">{{ $errors->first('prize_content') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<button class="btn btn-primary btn-custom" type="submit">
|
||||
@if (isset($data->id) && $data->id != '')
|
||||
Cập nhật
|
||||
@else
|
||||
Thêm mới
|
||||
@endif
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<script>
|
||||
CKEDITOR.editorConfig = function (config) {
|
||||
config.versionCheck = false;
|
||||
};
|
||||
var post_content = CKEDITOR.replace('prize_content', {
|
||||
filebrowserBrowseUrl: '{{ asset('libs/ckfinder/ckfinder.html') }}',
|
||||
filebrowserImageBrowseUrl: '{{ asset('libs/ckfinder/ckfinder.html?type=Images') }}',
|
||||
filebrowserFlashBrowseUrl: '{{ asset('libs/ckfinder/ckfinder.html?type=Flash') }}',
|
||||
filebrowserUploadUrl: '{{ asset('libs/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files') }}',
|
||||
filebrowserImageUploadUrl: '{{ asset('libs/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images') }}',
|
||||
filebrowserFlashUploadUrl: '{{ asset('libs/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash') }}'
|
||||
});
|
||||
post_content.config.height = 800;
|
||||
</script>
|
||||
@endsection
|
||||
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
// require '../../../vendor/autoload.php';
|
||||
|
||||
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
||||
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
|
||||
use PhpOffice\PhpSpreadsheet\Style\Border;
|
||||
use PhpOffice\PhpSpreadsheet\Style\Alignment;
|
||||
$spreadsheet = new Spreadsheet();
|
||||
$sheet = $spreadsheet->getActiveSheet();
|
||||
|
||||
$sheet->setTitle('Danh sách');
|
||||
$sheet->setCellValue('A1', 'STT');
|
||||
$sheet->setCellValue('B1', 'HỌ TÊN');
|
||||
$sheet->setCellValue('C1', 'SỐ ĐIỆN THOẠI');
|
||||
$sheet->setCellValue('D1', 'NGHỀ NGHIỆP');
|
||||
$sheet->setCellValue('E1', 'TÊN GIẢI THƯỞNG');
|
||||
$sheet->setCellValue('F1', 'NGÀY QUAY SỐ');
|
||||
$row = 1;// Initialize row counter
|
||||
$stt = 1;
|
||||
// $newsheet = new \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet($spreadsheet, str_replace("/", "-", $date));
|
||||
// $spreadsheet->addSheet($newsheet, 0);
|
||||
// $sheet->mergeCells('A' . $row . ':X' . $row);
|
||||
$sheet->getStyle('A' . $row)->applyFromArray(array(
|
||||
'font' => array(
|
||||
'name' => 'Calibri',
|
||||
'size' => 14,
|
||||
'bold' => true
|
||||
),
|
||||
'alignment' => [
|
||||
'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT,
|
||||
'vertical' => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER,
|
||||
'wrapText' => true,
|
||||
],
|
||||
));
|
||||
$row++;
|
||||
foreach ($data as $item) {
|
||||
$sheet->setTitle('DS Nhận Giải');
|
||||
$sheet->setCellValue('A' . $row, $stt);
|
||||
$sheet->setCellValue('B' . $row, $item->name ?? '');
|
||||
$sheet->setCellValue('C' . $row, $item->phone ?? '');
|
||||
$sheet->setCellValue('D' . $row, $item->job ?? '');
|
||||
$sheet->setCellValue('E' . $row, $item->prize_name ?? '');
|
||||
$sheet->setCellValue('F' . $row, $item->created_at != '' ? date_format(date_create($item->created_at), "d/m/Y H:i") : '');
|
||||
$row++;
|
||||
$stt++;
|
||||
}
|
||||
$sheet->getStyle('A1:F1')->applyFromArray(array(
|
||||
'font' => array(
|
||||
'name' => 'Calibri',
|
||||
'size' => 14,
|
||||
'bold' => true
|
||||
)
|
||||
));
|
||||
$sheet->getStyle('A1:F' . $row - 1)->applyFromArray(array(
|
||||
'borders' => [
|
||||
'allBorders' => [
|
||||
'borderStyle' => Border::BORDER_THIN,
|
||||
'color' => ['rgb' => '000000'],
|
||||
],
|
||||
]
|
||||
));
|
||||
foreach (range('A', 'F') as $column) {
|
||||
$sheet->getColumnDimension($column)->setAutoSize(true);
|
||||
}
|
||||
$writer = new Xlsx($spreadsheet);
|
||||
$fileName = "Danh sách nhận giải.xlsx";
|
||||
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
||||
header("Content-Disposition: attachment;filename=\"$fileName\"");
|
||||
$writer->save("php://output");
|
||||
exit();
|
||||
?>
|
||||
@@ -0,0 +1,149 @@
|
||||
@extends('backend.layout')
|
||||
@section('content')
|
||||
<link rel="stylesheet" href="{{asset('backend/css/jquery-ui.css')}}">
|
||||
<link href="{{asset('backend/css/bootstrap-datepicker.css')}}" rel="stylesheet">
|
||||
<script src="{{asset('backend/js/bootstrap-datepicker.js')}}"></script>
|
||||
<script src="{{asset('backend/js/bootstrap-datepicker.vi.min.js')}}"></script>
|
||||
<script src="{{asset('backend/js/jquery-ui.min.js')}}"></script>
|
||||
<div class='card-header'>
|
||||
<h1>{{$title ?? ''}}</h1>
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
<div class="row" style="padding: 1rem 0;">
|
||||
<div class="col-md-2">
|
||||
<label for="fromDateTime">Từ ngày</label>
|
||||
<input type="text" id="fromDateTime" class="form-control datepicker" placeholder="dd/mm/yyyy"
|
||||
value="{{ $fromdate }}" />
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<label for="toDateTime">Đến ngày</label>
|
||||
<input type="text" id="toDateTime" class="form-control datepicker" placeholder="dd/mm/yyyy"
|
||||
value="{{ $todate }}" />
|
||||
</div>
|
||||
<div class="col-md-2"><br>
|
||||
<button type="button" class="btn btn-primary btn-custom" id="datetime_filter">Lọc dữ liệu</button>
|
||||
<a id="excel_export" class="btn btn-primary btn-custom">Xuất excel</a>
|
||||
</div>
|
||||
</div>
|
||||
@include('backend.prizeuser.table')
|
||||
</div>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$('#datetime_filter').on('click', function () {
|
||||
let tungay = $('#fromDateTime').val();
|
||||
let denngay = $('#toDateTime').val();
|
||||
|
||||
if ((tungay != '' && !isValidDDMMYYYY(tungay)) || (denngay != '' && !isValidDDMMYYYY(denngay))) {
|
||||
alert('Ngày không đúng định dạng');
|
||||
return;
|
||||
}
|
||||
|
||||
let url = "{{ route('admin/prizeuser') }}?tungay=" + tungay + '&denngay=' + denngay;
|
||||
window.location.href = url;
|
||||
});
|
||||
|
||||
$('#excel_export').on('click', function(e) {
|
||||
let fromdate = $('#fromDateTime').val();
|
||||
let todate = $('#toDateTime').val();
|
||||
|
||||
let a = document.createElement("a");
|
||||
a.href = "{{route('admin/prizeuser/export')}}?fromdate=" + fromdate +
|
||||
'&todate=' + todate;
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
});
|
||||
});
|
||||
|
||||
function isValidDDMMYYYY(dateString) {
|
||||
// Kiểm tra định dạng bằng regex
|
||||
const regex = /^(0[1-9]|[12]\d|3[01])\/(0[1-9]|1[0-2])\/(\d{4})$/;
|
||||
if (!regex.test(dateString)) {
|
||||
return false; // Sai định dạng
|
||||
}
|
||||
|
||||
// Tách ngày, tháng, năm
|
||||
const parts = dateString.split('/');
|
||||
const day = parseInt(parts[0], 10);
|
||||
const month = parseInt(parts[1], 10);
|
||||
const year = parseInt(parts[2], 10);
|
||||
|
||||
// Kiểm tra tháng hợp lệ (1-12)
|
||||
if (month < 1 || month > 12) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Kiểm tra số ngày hợp lệ trong tháng
|
||||
const daysInMonth = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
||||
|
||||
// Kiểm tra năm nhuận cho tháng 2
|
||||
if (year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0)) {
|
||||
daysInMonth[2] = 29;
|
||||
}
|
||||
|
||||
if (day < 1 || day > daysInMonth[month]) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true; // Định dạng hợp lệ và ngày tháng năm hợp lệ
|
||||
}
|
||||
|
||||
function update_spined(user_id) {
|
||||
var csrfToken = $('meta[name="csrf-token"]').attr('content');
|
||||
|
||||
$.ajax({
|
||||
url: "{{ route('updatespined') }}",
|
||||
type: 'POST',
|
||||
data: {
|
||||
user_id: user_id,
|
||||
_token: csrfToken // Bao gồm CSRF token
|
||||
},
|
||||
dataType: 'json', // Mong đợi dữ liệu trả về là JSON
|
||||
success: function (response) {
|
||||
if (response.success) {
|
||||
alert('Thành công');
|
||||
window.location.reload();
|
||||
} else {
|
||||
alert('Thất bại');
|
||||
}
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
alert('Thất bại');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
$.datepicker.regional['vi'] = {
|
||||
closeText: 'Đóng',
|
||||
prevText: '<Trước',
|
||||
nextText: 'Tiếp>',
|
||||
currentText: 'Hôm nay',
|
||||
monthNames: ['Tháng Một', 'Tháng Hai', 'Tháng Ba', 'Tháng Tư', 'Tháng Năm', 'Tháng Sáu',
|
||||
'Tháng Bảy', 'Tháng Tám', 'Tháng Chín', 'Tháng Mười', 'Tháng Mười Một', 'Tháng Mười Hai'],
|
||||
monthNamesShort: ['Th1', 'Th2', 'Th3', 'Th4', 'Th5', 'Th6',
|
||||
'Th7', 'Th8', 'Th9', 'Th10', 'Th11', 'Th12'],
|
||||
dayNames: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'],
|
||||
dayNamesShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
|
||||
dayNamesMin: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
|
||||
weekHeader: 'Tu',
|
||||
dateFormat: 'dd/mm/yy',
|
||||
firstDay: 1,
|
||||
isRTL: false,
|
||||
showMonthAfterYear: false,
|
||||
yearSuffix: ''
|
||||
};
|
||||
$.datepicker.setDefaults($.datepicker.regional['vi']);
|
||||
|
||||
$(".datepicker").datepicker({
|
||||
dateFormat: "dd/mm/yy",
|
||||
weekStart: 0,
|
||||
calendarWeeks: true,
|
||||
autoclose: true,
|
||||
todayHighlight: true,
|
||||
rtl: true,
|
||||
orientation: "auto"
|
||||
// minDate: new Date()
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
@@ -0,0 +1,48 @@
|
||||
@php
|
||||
$order_number = 0;
|
||||
@endphp
|
||||
<div class="container">
|
||||
<table class="datatable table table-striped table-bordered" id="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-center">STT</th>
|
||||
<th>TÊN NGƯỜI DÙNG</th>
|
||||
<th class="text-center">SỐ ĐIỆN THOẠI</th>
|
||||
<th>ĐỊA CHỈ</th>
|
||||
<th>BIẾT SIS</th>
|
||||
<th>NGHỀ NGHIỆP</th>
|
||||
<th>TÊN GIẢI THƯỞNG</th>
|
||||
<th class="text-center">NGÀY QUAY THƯỞNG</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($data as $item)
|
||||
<tr>
|
||||
<td class="text-center">{{++$order_number ?? ''}}</td>
|
||||
<td>
|
||||
<p>{{$item->name ?? ''}}</p>
|
||||
<button class="btn btn-danger btn-custom" onclick="update_spined({{ $item->id ?? '' }})">Thêm lượt quay</button>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
{{$item->phone ?? ''}}
|
||||
</td>
|
||||
<td>
|
||||
{{ $item->address ?? '' }}
|
||||
</td>
|
||||
<td>
|
||||
{{ isset($item->known_sis) ? ($item->known_sis ? 'Có' : 'Không') : '' }}
|
||||
</td>
|
||||
<td>
|
||||
{{ $item->job ?? '' }}
|
||||
</td>
|
||||
<td>
|
||||
{{ $item->prize_name ?? '' }}
|
||||
</td>
|
||||
<td class="text-center">
|
||||
{{ date_format(date_create($item->created_at),"d/m/Y H:i") }}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -0,0 +1,70 @@
|
||||
@extends('backend.layout')
|
||||
@section('content')
|
||||
@if(Session::has('success'))
|
||||
<div class="alert alert-success">
|
||||
{{ Session::get('success') }}
|
||||
@php
|
||||
Session::forget('success');
|
||||
@endphp
|
||||
</div>
|
||||
@endif
|
||||
@if(Session::has('errors'))
|
||||
<div class="alert alert-danger">
|
||||
{{ 'Có lỗi xảy ra (' . implode(', ', $errors->all(':message')) . ')'}}
|
||||
@php
|
||||
Session::forget('errors');
|
||||
@endphp
|
||||
</div>
|
||||
@endif
|
||||
<div class='card-header'>
|
||||
<h1>{{$title ?? ''}}</h1>
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
<a class="btn btn-primary btn-custom right default" href="{{route('admin/users')}}">Trở về danh sách</a><br>
|
||||
<form action="{{route('admin/users/update')}}" method="POST">
|
||||
{{ csrf_field() }}
|
||||
<input type="hidden" name="type" value="account" />
|
||||
<input type="hidden" name="id" value="{{$data->id ?? 0}}" />
|
||||
<div class="form-group">
|
||||
<label for="name">Tên hiển thị</label>
|
||||
@php
|
||||
$name = $data->name ?? '';
|
||||
if (old('name') != '') {
|
||||
$name = old('name');
|
||||
}
|
||||
@endphp
|
||||
<input class="form-control" id="name" name="name" value="{{$name ?? ''}}" />
|
||||
@if ($errors->has('name'))
|
||||
<span class="text-danger">{{ $errors->first('name') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="email">Tên đăng nhập</label>
|
||||
@php
|
||||
$email = $data->email ?? '';
|
||||
if (old('email') != '') {
|
||||
$email = old('email');
|
||||
}
|
||||
@endphp
|
||||
<input class="form-control" id="email" name="email" value="{{$email ?? ''}}" {{$data->id != '' ? 'readonly' : ''}} />
|
||||
@if ($errors->has('email'))
|
||||
<span class="text-danger">{{ $errors->first('email') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password">Mật khẩu</label>
|
||||
<input class="form-control" id="password" name="password" value="" />
|
||||
@if ($errors->has('password'))
|
||||
<span class="text-danger">{{ $errors->first('password') }}</span>
|
||||
@endif
|
||||
</div><br>
|
||||
<button class="btn btn-primary btn-custom" type="submit">
|
||||
@if (isset($data->id) && $data->id != '')
|
||||
Cập nhật
|
||||
@else
|
||||
Thêm mới
|
||||
@endif
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,119 @@
|
||||
@extends('backend.layout')
|
||||
@section('content')
|
||||
@if(Session::has('success'))
|
||||
<div class="alert alert-success">
|
||||
{{ Session::get('success') }}
|
||||
@php
|
||||
Session::forget('success');
|
||||
@endphp
|
||||
</div>
|
||||
@endif
|
||||
@if(Session::has('errors'))
|
||||
<div class="alert alert-danger">
|
||||
{{ 'Có lỗi xảy ra (' . implode(', ', $errors->all(':message')) . ')'}}
|
||||
@php
|
||||
Session::forget('errors');
|
||||
@endphp
|
||||
</div>
|
||||
@endif
|
||||
<div class='card-header'>
|
||||
<h1>{{$title ?? ''}}</h1>
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
<a class="btn btn-primary btn-custom right default" href="{{route('admin/users')}}">Trở về danh sách</a><br>
|
||||
<form action="{{route('admin/users/update')}}" method="POST">
|
||||
{{ csrf_field() }}
|
||||
<input type="hidden" name="id" value="{{$data->id ?? 0}}" />
|
||||
<div class="form-group">
|
||||
<label for="name">Tên hiển thị</label>
|
||||
@php
|
||||
$name = $data->name ?? '';
|
||||
if (old('name') != '') {
|
||||
$name = old('name');
|
||||
}
|
||||
@endphp
|
||||
<input class="form-control" id="name" name="name" value="{{$name ?? ''}}" />
|
||||
@if ($errors->has('name'))
|
||||
<span class="text-danger">{{ $errors->first('name') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="email">Tên đăng nhập</label>
|
||||
@php
|
||||
$email = $data->email ?? '';
|
||||
if (old('email') != '') {
|
||||
$email = old('email');
|
||||
}
|
||||
@endphp
|
||||
<input class="form-control" id="email" name="email" value="{{$email ?? ''}}" {{isset($data->id) && $data->id != '' ? 'readonly' : ''}} />
|
||||
@if ($errors->has('email'))
|
||||
<span class="text-danger">{{ $errors->first('email') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password">Mật khẩu</label>
|
||||
<input class="form-control" id="password" name="password" value="" />
|
||||
@if ($errors->has('password'))
|
||||
<span class="text-danger">{{ $errors->first('password') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="status">Trạng thái</label>
|
||||
@php
|
||||
$status = $data->status ?? '';
|
||||
if (old('status') != '') {
|
||||
$status = old('status');
|
||||
}
|
||||
@endphp
|
||||
<select class="form-control" id="status" name="status">
|
||||
<option value="">Chưa chọn</option>
|
||||
<option value="1" {{isset($status) && $status == 1 ? 'selected' : ''}}>Đang hoạt động</option>
|
||||
<option value="0" {{isset($status) && $status == 0 ? 'selected' : ''}}>Ngừng hoạt động</option>
|
||||
</select>
|
||||
@if ($errors->has('status'))
|
||||
<span class="text-danger">{{ $errors->first('status') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="account_type">Loại tài khoản</label>
|
||||
@php
|
||||
$account_type = $data->account_type ?? '';
|
||||
if (old('account_type') != '') {
|
||||
$account_type = old('account_type');
|
||||
}
|
||||
@endphp
|
||||
<select class="form-control" id="account_type" name="account_type">
|
||||
<option value="">Chưa chọn</option>
|
||||
<option value="1" {{isset($account_type) && $account_type == 1 ? 'selected' : ''}}>Tài khoản thông thường</option>
|
||||
<option value="2" {{isset($account_type) && $account_type == 2 ? 'selected' : ''}}>Tài khoản VIP</option>
|
||||
<option value="3" {{isset($account_type) && $account_type == 3 ? 'selected' : ''}}>Chờ xác nhận</option>
|
||||
<option value="4" {{isset($account_type) && $account_type == 4 ? 'selected' : ''}}>Từ chối xác nhận</option>
|
||||
</select>
|
||||
@if ($errors->has('account_type'))
|
||||
<span class="text-danger">{{ $errors->first('account_type') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
@if (isset($data->id) && $data->id != '')
|
||||
<div class="form-group">
|
||||
<label>Phân quyền:</label><br>
|
||||
@foreach ($role_data as $role_item)
|
||||
<div class="form-check form-check-inline">
|
||||
<input name="user_role[]" value="{{$role_item->id ?? ''}}" class="form-check-input"
|
||||
type="checkbox" id="chk_role_{{$role_item->id ?? ''}}"
|
||||
{{in_array($role_item->id, $user_role) ? 'checked' : ''}} >
|
||||
<label class="form-check-label" for="chk_role_{{$role_item->id ?? ''}}">{{$role_item->role_name ?? ''}}</label>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
<br>
|
||||
<button class="btn btn-primary btn-custom" type="submit">
|
||||
@if (isset($data->id) && $data->id != '')
|
||||
Cập nhật
|
||||
@else
|
||||
Thêm mới
|
||||
@endif
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,35 @@
|
||||
@extends('backend.layout')
|
||||
@section('content')
|
||||
<div class='card-header'>
|
||||
<h1>{{$title ?? ''}}</h1>
|
||||
</div>
|
||||
<div class='card-body'>
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<div class="form-group">
|
||||
<label for="account_type">Loại tài khoản</label>
|
||||
<select class="form-control" id="account_type" name="account_type">
|
||||
<option value="">Tất cả</option>
|
||||
<option value="1" {{ isset($request_type) && $request_type == 1 ? 'selected' : '' }}>Tài khoản thông thường</option>
|
||||
<option value="2" {{ isset($request_type) && $request_type == 2 ? 'selected' : '' }}>Tài khoản VIP</option>
|
||||
<option value="3" {{ isset($request_type) && $request_type == 3 ? 'selected' : '' }}>Chờ xác nhận</option>
|
||||
<option value="4" {{ isset($request_type) && $request_type == 4 ? 'selected' : '' }}>Từ chối xác nhận</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@include('backend.user.table')
|
||||
</div>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#account_type').on('change', function() {
|
||||
let type = $(this).val();
|
||||
let redirect_url = "{{route('admin/users')}}";
|
||||
if (type != '') {
|
||||
redirect_url = redirect_url + '?type=' + type;
|
||||
}
|
||||
window.location.href = redirect_url;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
@@ -0,0 +1,32 @@
|
||||
@php
|
||||
$order_number = 0;
|
||||
@endphp
|
||||
<a class="btn btn-primary btn-custom" href="{{route($route_name_update)}}?id=0">Thêm mới</a>
|
||||
<div class="container">
|
||||
<table class="datatable table table-striped table-bordered" id="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-center">STT</th>
|
||||
<th>Tên hiển thị</th>
|
||||
<th>Tên đăng nhập</th>
|
||||
<th class="text-center">Trạng thái</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($data as $item)
|
||||
<tr>
|
||||
<td class="text-center">{{++$order_number ?? ''}}</td>
|
||||
<td>
|
||||
<a class="custom-link" href="{{route($route_name_update)}}?id={{$item->id ?? ''}}">{{$item->name ?? ''}}</a>
|
||||
</td>
|
||||
<td>
|
||||
{{$item->email ?? ''}}
|
||||
</td>
|
||||
<td class="text-center">
|
||||
{{$item->status == 1 ? 'Đang hoạt động' : 'Ngừng hoạt động'}}
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
Reference in New Issue
Block a user