ilham
ilhamwara 2025-07-21 15:24:57 +07:00
parent 014f2f7f0e
commit ccdaadacab
46 changed files with 51537 additions and 745 deletions

View File

@ -213,7 +213,7 @@ if (!function_exists('renderMenu')) {
$html = ''; $html = '';
foreach ($parent as $p1) { foreach ($parent as $p1) {
// echo $p1->MsMenuId.'<br>'; // echo $p1->MsMenuId.'<br>';
$child2 = Menu::where('status',true)->where('menu_type','sidebar')->where('parent_id',$p1->MsMenuId)->get(); $child2 = Menu::where('status',true)->where('menu_type','sidebar')->where('parent_id',$p1->MsMenuId)->orderBy('ordering','ASC')->get();
$access1 = permission('is_read', $p1->MsMenuId, 'menu', true); $access1 = permission('is_read', $p1->MsMenuId, 'menu', true);
$ch1 = count($child2) > 0 ? '' : ''; $ch1 = count($child2) > 0 ? '' : '';
@ -241,7 +241,7 @@ if (!function_exists('renderMenu')) {
$html .= '<div class="collapse menu-dropdown" id="key'.$p1->MsMenuId.'">'; $html .= '<div class="collapse menu-dropdown" id="key'.$p1->MsMenuId.'">';
$html .= '<ul class="nav nav-sm flex-column">'; $html .= '<ul class="nav nav-sm flex-column">';
foreach ($child2 as $p2) { foreach ($child2 as $p2) {
$child3 = Menu::where('status',true)->where('menu_type','sidebar')->where('parent_id',$p2->MsMenuId)->get(); $child3 = Menu::where('status',true)->where('menu_type','sidebar')->where('parent_id',$p2->MsMenuId)->orderBy('ordering','ASC')->get();
$access2 = permission('is_read', $p2->MsMenuId, 'menu', true); $access2 = permission('is_read', $p2->MsMenuId, 'menu', true);
$ch2 = count($child3) > 0 ? '' : ''; $ch2 = count($child3) > 0 ? '' : '';
$collapse2 = count($child3) > 0 ? 'data-fc-type="collapse"' : ''; $collapse2 = count($child3) > 0 ? 'data-fc-type="collapse"' : '';
@ -262,7 +262,7 @@ if (!function_exists('renderMenu')) {
$html .= '<div class="collapse menu-dropdown" id="key'.$p2->MsMenuId.'">'; $html .= '<div class="collapse menu-dropdown" id="key'.$p2->MsMenuId.'">';
$html .= '<ul class="nav nav-sm flex-column">'; $html .= '<ul class="nav nav-sm flex-column">';
foreach ($child3 as $p3) { foreach ($child3 as $p3) {
$child4 = Menu::where('status',true)->where('menu_type','sidebar')->where('parent_id',$p3->MsMenuId)->get(); $child4 = Menu::where('status',true)->where('menu_type','sidebar')->where('parent_id',$p3->MsMenuId)->orderBy('ordering','ASC')->get();
$access3 = permission('is_read', $p3->MsMenuId, 'menu', true); $access3 = permission('is_read', $p3->MsMenuId, 'menu', true);
$collapse3 = count($child4) > 0 ? 'data-fc-type="collapse"' : ''; $collapse3 = count($child4) > 0 ? 'data-fc-type="collapse"' : '';
$ch3 = count($child4) > 0 ? '' : ''; $ch3 = count($child4) > 0 ? '' : '';

View File

@ -26,4 +26,16 @@ class HomeController extends Controller
$data['title'] = 'Dashboard'; $data['title'] = 'Dashboard';
return view('dashboard',$data); return view('dashboard',$data);
} }
function profile(){
return view('admin.profile.profile');
}
function identitas_lokasi(){
return view('admin.identitas_lokasi.identitas_lokasi');
}
function data_dasar(){
return view('admin.data_dasar.data_dasar');
}
} }

View File

@ -42,7 +42,7 @@ class RoleController extends Controller
$action = ''; $action = '';
if((permission('is_create', $this->route.'.*','module',false)) || (permission('is_update', $this->route.'.*','module',false))){ if((permission('is_create', $this->route.'.*','module',false)) || (permission('is_update', $this->route.'.*','module',false))){
$action .= '<div class="flex gap-3 justify-center items-center flex-row">'; $action .= '<div class="d-flex gap-2 justify-center items-center flex-row">';
$action .= '<a href="'.url('/management/role/akses/'.encode_id($row->MsGroupId)).'/edit" data-toggle="tooltip" title="Edit Hak Akses Role" class="btn btn-sm bg-primary"><i class="ri-list-settings-line text-white"></i></a>'; $action .= '<a href="'.url('/management/role/akses/'.encode_id($row->MsGroupId)).'/edit" data-toggle="tooltip" title="Edit Hak Akses Role" class="btn btn-sm bg-primary"><i class="ri-list-settings-line text-white"></i></a>';
$action .= '<a href="'.url('/management/role/update/'.encode_id($row->MsGroupId)).'" data-toggle="tooltip" title="Edit Data" class="btn btn-sm bg-success"><i class="ri-pencil-line text-white"></i></a>'; $action .= '<a href="'.url('/management/role/update/'.encode_id($row->MsGroupId)).'" data-toggle="tooltip" title="Edit Data" class="btn btn-sm bg-success"><i class="ri-pencil-line text-white"></i></a>';
// $action .= '<a data-toggle="tooltip" title="Hapus Data" class="btn btn-xs bg-danger"><i class="ri-trash-line text-white"></i></a>'; // $action .= '<a data-toggle="tooltip" title="Hapus Data" class="btn btn-xs bg-danger"><i class="ri-trash-line text-white"></i></a>';

View File

@ -13,7 +13,7 @@ use App\Models\Master\Group;
class UserController extends Controller class UserController extends Controller
{ {
protected $title = 'User'; protected $title = 'Pengguna';
protected $template = 'modules.management.user'; protected $template = 'modules.management.user';
protected $route = 'modules.management.user'; protected $route = 'modules.management.user';
@ -27,7 +27,7 @@ class UserController extends Controller
$data['breadcrumbs'] = [ $data['breadcrumbs'] = [
['name' => 'Dashboard','url' => url('dashboard')], ['name' => 'Dashboard','url' => url('dashboard')],
['name' => 'Management & Akses Role'], ['name' => 'Management & Akses Role'],
['name' => 'Data User','active' => true], ['name' => 'Data Pengguna','active' => true],
]; ];
$data['title'] = $this->title; $data['title'] = $this->title;
$data['route'] = $this->route; $data['route'] = $this->route;
@ -37,8 +37,8 @@ class UserController extends Controller
public function grid(Request $request) public function grid(Request $request)
{ {
$data = User::with(['group'])->where('ms_group_id','!=',1)->where('id','!=',auth()->user()->id)->orderBy('id','DESC')->get(); // $data = User::with(['group'])->where('ms_group_id','!=',1)->where('id','!=',auth()->user()->id)->orderBy('id','DESC')->get();
// $data = User::with(['group'])->orderBy('id','DESC')->get(); $data = User::with(['group'])->get();
$_data = []; $_data = [];
@ -48,7 +48,7 @@ class UserController extends Controller
$action = ''; $action = '';
if((permission('is_create', $this->route.'.*','module',false)) || (permission('is_update', $this->route.'.*','module',false))){ if((permission('is_create', $this->route.'.*','module',false)) || (permission('is_update', $this->route.'.*','module',false))){
$action .= '<div class="flex gap-3 justify-center items-center flex-row">'; $action .= '<div class="d-flex gap-2 justify-content-center items-center flex-row">';
$action .= '<a href="'.url('management/user/update/'.encode_id($row->id)).'" data-toggle="tooltip" title="Edit Data" class="btn btn-sm btn-block bg-primary"><i class="ri-pencil-line text-white"></i></a>'; $action .= '<a href="'.url('management/user/update/'.encode_id($row->id)).'" data-toggle="tooltip" title="Edit Data" class="btn btn-sm btn-block bg-primary"><i class="ri-pencil-line text-white"></i></a>';
if(session('group_id') == 1){ if(session('group_id') == 1){
$action .= '<a href="#" data-href="'.url('management/user/forcelogin/'.encode_id($row->id)).'" data-toggle="tooltip" title="Force Login" class="forcelogin btn btn-sm btn-block bg-success"><i class="ri-user-2-line text-white"></i></a>'; $action .= '<a href="#" data-href="'.url('management/user/forcelogin/'.encode_id($row->id)).'" data-toggle="tooltip" title="Force Login" class="forcelogin btn btn-sm btn-block bg-success"><i class="ri-user-2-line text-white"></i></a>';
@ -175,7 +175,7 @@ class UserController extends Controller
$data['breadcrumbs'] = [ $data['breadcrumbs'] = [
['name' => 'Dashboard','url' => url('dashboard')], ['name' => 'Dashboard','url' => url('dashboard')],
['name' => 'Management & Akses Role'], ['name' => 'Management & Akses Role'],
['name' => 'Data User','active' => true], ['name' => 'Data Pengguna','active' => true],
]; ];
$keyId = decode_id($id); $keyId = decode_id($id);
$data['title'] = $this->title; $data['title'] = $this->title;

View File

@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers\Master;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class KabupatenController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}

View File

@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers\Master;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class KecamatanController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}

View File

@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers\Master;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class KotaController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}

View File

@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers\Master;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class ProvinsiController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}

View File

@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers\Master;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class WilayahController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}

View File

@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers\Proklim;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class AdaptasiIklimController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}

View File

@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers\Proklim;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class DasarLokasiController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}

View File

@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers\Proklim;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class HasilPenilaianController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}

View File

@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers\Proklim;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class IdentitasLokasiController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}

View File

@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers\Proklim;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class IdentitasPengisianController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}

View File

@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers\Proklim;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class KelembagaanMasyarakatController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}

View File

@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers\Proklim;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class MitigasiIklimController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}

View File

@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers\Proklim;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class PengajuanController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}

View File

@ -0,0 +1,65 @@
<?php
namespace App\Http\Controllers\Proklim;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class PerubahanIklimController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
//
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
//
}
}

View File

@ -0,0 +1,14 @@
<?php
namespace App\Models\Master;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class AccessMenu extends Model
{
use HasFactory;
protected $table = 'ms_access_menu';
protected $primaryKey = 'MsAccessMenuId';
protected $guarded = [];
}

View File

@ -45,4 +45,9 @@ class User extends Authenticatable
'password' => 'hashed', 'password' => 'hashed',
]; ];
} }
public function group()
{
return $this->belongsTo(\App\Models\Master\Group::class,'ms_group_id','MsGroupId');
}
} }

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,930 @@
body.stop-scrolling {
height: 100%;
overflow: hidden; }
.sweet-overlay {
background-color: black;
/* IE8 */
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
/* IE8 */
background-color: rgba(0, 0, 0, 0.4);
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
display: none;
z-index: 10000; }
.sweet-alert {
background-color: white;
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
width: 478px;
padding: 17px;
border-radius: 5px;
text-align: center;
position: fixed;
left: 50%;
top: 50%;
margin-left: -256px;
margin-top: -200px;
overflow: hidden;
display: none;
z-index: 99999; }
@media all and (max-width: 540px) {
.sweet-alert {
width: auto;
margin-left: 0;
margin-right: 0;
left: 15px;
right: 15px; } }
.sweet-alert h2 {
color: #575757;
font-size: 30px;
text-align: center;
font-weight: 600;
text-transform: none;
position: relative;
margin: 25px 0;
padding: 0;
line-height: 40px;
display: block; }
.sweet-alert p {
color: #797979;
font-size: 16px;
text-align: center;
font-weight: 300;
position: relative;
text-align: inherit;
float: none;
margin: 0;
padding: 0;
line-height: normal; }
.sweet-alert fieldset {
border: none;
position: relative; }
.sweet-alert .sa-error-container {
background-color: #f1f1f1;
margin-left: -17px;
margin-right: -17px;
overflow: hidden;
padding: 0 10px;
max-height: 0;
webkit-transition: padding 0.15s, max-height 0.15s;
transition: padding 0.15s, max-height 0.15s; }
.sweet-alert .sa-error-container.show {
padding: 10px 0;
max-height: 100px;
webkit-transition: padding 0.2s, max-height 0.2s;
transition: padding 0.25s, max-height 0.25s; }
.sweet-alert .sa-error-container .icon {
display: inline-block;
width: 24px;
height: 24px;
border-radius: 50%;
background-color: #ea7d7d;
color: white;
line-height: 24px;
text-align: center;
margin-right: 3px; }
.sweet-alert .sa-error-container p {
display: inline-block; }
.sweet-alert .sa-input-error {
position: absolute;
top: 29px;
right: 26px;
width: 20px;
height: 20px;
opacity: 0;
-webkit-transform: scale(0.5);
transform: scale(0.5);
-webkit-transform-origin: 50% 50%;
transform-origin: 50% 50%;
-webkit-transition: all 0.1s;
transition: all 0.1s; }
.sweet-alert .sa-input-error::before, .sweet-alert .sa-input-error::after {
content: "";
width: 20px;
height: 6px;
background-color: #f06e57;
border-radius: 3px;
position: absolute;
top: 50%;
margin-top: -4px;
left: 50%;
margin-left: -9px; }
.sweet-alert .sa-input-error::before {
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg); }
.sweet-alert .sa-input-error::after {
-webkit-transform: rotate(45deg);
transform: rotate(45deg); }
.sweet-alert .sa-input-error.show {
opacity: 1;
-webkit-transform: scale(1);
transform: scale(1); }
.sweet-alert input {
width: 100%;
box-sizing: border-box;
border-radius: 3px;
border: 1px solid #d7d7d7;
height: 43px;
margin-top: 10px;
margin-bottom: 17px;
font-size: 18px;
box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.06);
padding: 0 12px;
display: none;
-webkit-transition: all 0.3s;
transition: all 0.3s; }
.sweet-alert input:focus {
outline: none;
box-shadow: 0px 0px 3px #c4e6f5;
border: 1px solid #b4dbed; }
.sweet-alert input:focus::-moz-placeholder {
transition: opacity 0.3s 0.03s ease;
opacity: 0.5; }
.sweet-alert input:focus:-ms-input-placeholder {
transition: opacity 0.3s 0.03s ease;
opacity: 0.5; }
.sweet-alert input:focus::-webkit-input-placeholder {
transition: opacity 0.3s 0.03s ease;
opacity: 0.5; }
.sweet-alert input::-moz-placeholder {
color: #bdbdbd; }
.sweet-alert input:-ms-input-placeholder {
color: #bdbdbd; }
.sweet-alert input::-webkit-input-placeholder {
color: #bdbdbd; }
.sweet-alert.show-input input {
display: block; }
.sweet-alert .sa-confirm-button-container {
display: inline-block;
position: relative; }
.sweet-alert .la-ball-fall {
position: absolute;
left: 50%;
top: 50%;
margin-left: -27px;
margin-top: 4px;
opacity: 0;
visibility: hidden; }
.sweet-alert button {
background-color: #8CD4F5;
color: white;
border: none;
box-shadow: none;
font-size: 17px;
font-weight: 500;
padding: 10px 32px;
margin: 26px 5px 0 5px;
cursor: pointer; }
.sweet-alert button:focus {
outline: none;
box-shadow: 0 0 2px rgba(128, 179, 235, 0.5), inset 0 0 0 1px rgba(0, 0, 0, 0.05); }
.sweet-alert button:hover {
background-color: #7ecff4; }
.sweet-alert button:active {
background-color: #5dc2f1; }
.sweet-alert button.cancel {
background-color: #C1C1C1; }
.sweet-alert button.cancel:hover {
background-color: #b9b9b9; }
.sweet-alert button.cancel:active {
background-color: #a8a8a8; }
.sweet-alert button.cancel:focus {
box-shadow: rgba(197, 205, 211, 0.8) 0px 0px 2px, rgba(0, 0, 0, 0.0470588) 0px 0px 0px 1px inset !important; }
.sweet-alert button[disabled] {
opacity: .6;
cursor: default; }
.sweet-alert button.confirm[disabled] {
color: transparent; }
.sweet-alert button.confirm[disabled] ~ .la-ball-fall {
opacity: 1;
visibility: visible;
transition-delay: 0s; }
.sweet-alert button::-moz-focus-inner {
border: 0; }
.sweet-alert[data-has-cancel-button=false] button {
box-shadow: none !important; }
.sweet-alert[data-has-confirm-button=false][data-has-cancel-button=false] {
padding-bottom: 40px; }
.sweet-alert .sa-icon {
width: 80px;
height: 80px;
border: 4px solid gray;
-webkit-border-radius: 40px;
border-radius: 40px;
border-radius: 50%;
margin: 20px auto;
padding: 0;
position: relative;
box-sizing: content-box; }
.sweet-alert .sa-icon.sa-error {
border-color: #F27474; }
.sweet-alert .sa-icon.sa-error .sa-x-mark {
position: relative;
display: block; }
.sweet-alert .sa-icon.sa-error .sa-line {
position: absolute;
height: 5px;
width: 47px;
background-color: #F27474;
display: block;
top: 37px;
border-radius: 2px; }
.sweet-alert .sa-icon.sa-error .sa-line.sa-left {
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
left: 17px; }
.sweet-alert .sa-icon.sa-error .sa-line.sa-right {
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg);
right: 16px; }
.sweet-alert .sa-icon.sa-warning {
border-color: #F8BB86; }
.sweet-alert .sa-icon.sa-warning .sa-body {
position: absolute;
width: 5px;
height: 47px;
left: 50%;
top: 10px;
-webkit-border-radius: 2px;
border-radius: 2px;
margin-left: -2px;
background-color: #F8BB86; }
.sweet-alert .sa-icon.sa-warning .sa-dot {
position: absolute;
width: 7px;
height: 7px;
-webkit-border-radius: 50%;
border-radius: 50%;
margin-left: -3px;
left: 50%;
bottom: 10px;
background-color: #F8BB86; }
.sweet-alert .sa-icon.sa-info {
border-color: #C9DAE1; }
.sweet-alert .sa-icon.sa-info::before {
content: "";
position: absolute;
width: 5px;
height: 29px;
left: 50%;
bottom: 17px;
border-radius: 2px;
margin-left: -2px;
background-color: #C9DAE1; }
.sweet-alert .sa-icon.sa-info::after {
content: "";
position: absolute;
width: 7px;
height: 7px;
border-radius: 50%;
margin-left: -3px;
top: 19px;
background-color: #C9DAE1; }
.sweet-alert .sa-icon.sa-success {
border-color: #A5DC86; }
.sweet-alert .sa-icon.sa-success::before, .sweet-alert .sa-icon.sa-success::after {
content: '';
-webkit-border-radius: 40px;
border-radius: 40px;
border-radius: 50%;
position: absolute;
width: 60px;
height: 120px;
background: white;
-webkit-transform: rotate(45deg);
transform: rotate(45deg); }
.sweet-alert .sa-icon.sa-success::before {
-webkit-border-radius: 120px 0 0 120px;
border-radius: 120px 0 0 120px;
top: -7px;
left: -33px;
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg);
-webkit-transform-origin: 60px 60px;
transform-origin: 60px 60px; }
.sweet-alert .sa-icon.sa-success::after {
-webkit-border-radius: 0 120px 120px 0;
border-radius: 0 120px 120px 0;
top: -11px;
left: 30px;
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg);
-webkit-transform-origin: 0px 60px;
transform-origin: 0px 60px; }
.sweet-alert .sa-icon.sa-success .sa-placeholder {
width: 80px;
height: 80px;
border: 4px solid rgba(165, 220, 134, 0.2);
-webkit-border-radius: 40px;
border-radius: 40px;
border-radius: 50%;
box-sizing: content-box;
position: absolute;
left: -4px;
top: -4px;
z-index: 2; }
.sweet-alert .sa-icon.sa-success .sa-fix {
width: 5px;
height: 90px;
background-color: white;
position: absolute;
left: 28px;
top: 8px;
z-index: 1;
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg); }
.sweet-alert .sa-icon.sa-success .sa-line {
height: 5px;
background-color: #A5DC86;
display: block;
border-radius: 2px;
position: absolute;
z-index: 2; }
.sweet-alert .sa-icon.sa-success .sa-line.sa-tip {
width: 25px;
left: 14px;
top: 46px;
-webkit-transform: rotate(45deg);
transform: rotate(45deg); }
.sweet-alert .sa-icon.sa-success .sa-line.sa-long {
width: 47px;
right: 8px;
top: 38px;
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg); }
.sweet-alert .sa-icon.sa-custom {
background-size: contain;
border-radius: 0;
border: none;
background-position: center center;
background-repeat: no-repeat; }
/*
* Animations
*/
@-webkit-keyframes showSweetAlert {
0% {
transform: scale(0.7);
-webkit-transform: scale(0.7); }
45% {
transform: scale(1.05);
-webkit-transform: scale(1.05); }
80% {
transform: scale(0.95);
-webkit-transform: scale(0.95); }
100% {
transform: scale(1);
-webkit-transform: scale(1); } }
@keyframes showSweetAlert {
0% {
transform: scale(0.7);
-webkit-transform: scale(0.7); }
45% {
transform: scale(1.05);
-webkit-transform: scale(1.05); }
80% {
transform: scale(0.95);
-webkit-transform: scale(0.95); }
100% {
transform: scale(1);
-webkit-transform: scale(1); } }
@-webkit-keyframes hideSweetAlert {
0% {
transform: scale(1);
-webkit-transform: scale(1); }
100% {
transform: scale(0.5);
-webkit-transform: scale(0.5); } }
@keyframes hideSweetAlert {
0% {
transform: scale(1);
-webkit-transform: scale(1); }
100% {
transform: scale(0.5);
-webkit-transform: scale(0.5); } }
@-webkit-keyframes slideFromTop {
0% {
top: 0%; }
100% {
top: 50%; } }
@keyframes slideFromTop {
0% {
top: 0%; }
100% {
top: 50%; } }
@-webkit-keyframes slideToTop {
0% {
top: 50%; }
100% {
top: 0%; } }
@keyframes slideToTop {
0% {
top: 50%; }
100% {
top: 0%; } }
@-webkit-keyframes slideFromBottom {
0% {
top: 70%; }
100% {
top: 50%; } }
@keyframes slideFromBottom {
0% {
top: 70%; }
100% {
top: 50%; } }
@-webkit-keyframes slideToBottom {
0% {
top: 50%; }
100% {
top: 70%; } }
@keyframes slideToBottom {
0% {
top: 50%; }
100% {
top: 70%; } }
.showSweetAlert[data-animation=pop] {
-webkit-animation: showSweetAlert 0.3s;
animation: showSweetAlert 0.3s; }
.showSweetAlert[data-animation=none] {
-webkit-animation: none;
animation: none; }
.showSweetAlert[data-animation=slide-from-top] {
-webkit-animation: slideFromTop 0.3s;
animation: slideFromTop 0.3s; }
.showSweetAlert[data-animation=slide-from-bottom] {
-webkit-animation: slideFromBottom 0.3s;
animation: slideFromBottom 0.3s; }
.hideSweetAlert[data-animation=pop] {
-webkit-animation: hideSweetAlert 0.2s;
animation: hideSweetAlert 0.2s; }
.hideSweetAlert[data-animation=none] {
-webkit-animation: none;
animation: none; }
.hideSweetAlert[data-animation=slide-from-top] {
-webkit-animation: slideToTop 0.4s;
animation: slideToTop 0.4s; }
.hideSweetAlert[data-animation=slide-from-bottom] {
-webkit-animation: slideToBottom 0.3s;
animation: slideToBottom 0.3s; }
@-webkit-keyframes animateSuccessTip {
0% {
width: 0;
left: 1px;
top: 19px; }
54% {
width: 0;
left: 1px;
top: 19px; }
70% {
width: 50px;
left: -8px;
top: 37px; }
84% {
width: 17px;
left: 21px;
top: 48px; }
100% {
width: 25px;
left: 14px;
top: 45px; } }
@keyframes animateSuccessTip {
0% {
width: 0;
left: 1px;
top: 19px; }
54% {
width: 0;
left: 1px;
top: 19px; }
70% {
width: 50px;
left: -8px;
top: 37px; }
84% {
width: 17px;
left: 21px;
top: 48px; }
100% {
width: 25px;
left: 14px;
top: 45px; } }
@-webkit-keyframes animateSuccessLong {
0% {
width: 0;
right: 46px;
top: 54px; }
65% {
width: 0;
right: 46px;
top: 54px; }
84% {
width: 55px;
right: 0px;
top: 35px; }
100% {
width: 47px;
right: 8px;
top: 38px; } }
@keyframes animateSuccessLong {
0% {
width: 0;
right: 46px;
top: 54px; }
65% {
width: 0;
right: 46px;
top: 54px; }
84% {
width: 55px;
right: 0px;
top: 35px; }
100% {
width: 47px;
right: 8px;
top: 38px; } }
@-webkit-keyframes rotatePlaceholder {
0% {
transform: rotate(-45deg);
-webkit-transform: rotate(-45deg); }
5% {
transform: rotate(-45deg);
-webkit-transform: rotate(-45deg); }
12% {
transform: rotate(-405deg);
-webkit-transform: rotate(-405deg); }
100% {
transform: rotate(-405deg);
-webkit-transform: rotate(-405deg); } }
@keyframes rotatePlaceholder {
0% {
transform: rotate(-45deg);
-webkit-transform: rotate(-45deg); }
5% {
transform: rotate(-45deg);
-webkit-transform: rotate(-45deg); }
12% {
transform: rotate(-405deg);
-webkit-transform: rotate(-405deg); }
100% {
transform: rotate(-405deg);
-webkit-transform: rotate(-405deg); } }
.animateSuccessTip {
-webkit-animation: animateSuccessTip 0.75s;
animation: animateSuccessTip 0.75s; }
.animateSuccessLong {
-webkit-animation: animateSuccessLong 0.75s;
animation: animateSuccessLong 0.75s; }
.sa-icon.sa-success.animate::after {
-webkit-animation: rotatePlaceholder 4.25s ease-in;
animation: rotatePlaceholder 4.25s ease-in; }
@-webkit-keyframes animateErrorIcon {
0% {
transform: rotateX(100deg);
-webkit-transform: rotateX(100deg);
opacity: 0; }
100% {
transform: rotateX(0deg);
-webkit-transform: rotateX(0deg);
opacity: 1; } }
@keyframes animateErrorIcon {
0% {
transform: rotateX(100deg);
-webkit-transform: rotateX(100deg);
opacity: 0; }
100% {
transform: rotateX(0deg);
-webkit-transform: rotateX(0deg);
opacity: 1; } }
.animateErrorIcon {
-webkit-animation: animateErrorIcon 0.5s;
animation: animateErrorIcon 0.5s; }
@-webkit-keyframes animateXMark {
0% {
transform: scale(0.4);
-webkit-transform: scale(0.4);
margin-top: 26px;
opacity: 0; }
50% {
transform: scale(0.4);
-webkit-transform: scale(0.4);
margin-top: 26px;
opacity: 0; }
80% {
transform: scale(1.15);
-webkit-transform: scale(1.15);
margin-top: -6px; }
100% {
transform: scale(1);
-webkit-transform: scale(1);
margin-top: 0;
opacity: 1; } }
@keyframes animateXMark {
0% {
transform: scale(0.4);
-webkit-transform: scale(0.4);
margin-top: 26px;
opacity: 0; }
50% {
transform: scale(0.4);
-webkit-transform: scale(0.4);
margin-top: 26px;
opacity: 0; }
80% {
transform: scale(1.15);
-webkit-transform: scale(1.15);
margin-top: -6px; }
100% {
transform: scale(1);
-webkit-transform: scale(1);
margin-top: 0;
opacity: 1; } }
.animateXMark {
-webkit-animation: animateXMark 0.5s;
animation: animateXMark 0.5s; }
@-webkit-keyframes pulseWarning {
0% {
border-color: #F8D486; }
100% {
border-color: #F8BB86; } }
@keyframes pulseWarning {
0% {
border-color: #F8D486; }
100% {
border-color: #F8BB86; } }
.pulseWarning {
-webkit-animation: pulseWarning 0.75s infinite alternate;
animation: pulseWarning 0.75s infinite alternate; }
@-webkit-keyframes pulseWarningIns {
0% {
background-color: #F8D486; }
100% {
background-color: #F8BB86; } }
@keyframes pulseWarningIns {
0% {
background-color: #F8D486; }
100% {
background-color: #F8BB86; } }
.pulseWarningIns {
-webkit-animation: pulseWarningIns 0.75s infinite alternate;
animation: pulseWarningIns 0.75s infinite alternate; }
@-webkit-keyframes rotate-loading {
0% {
transform: rotate(0deg); }
100% {
transform: rotate(360deg); } }
@keyframes rotate-loading {
0% {
transform: rotate(0deg); }
100% {
transform: rotate(360deg); } }
/* Internet Explorer 9 has some special quirks that are fixed here */
/* The icons are not animated. */
/* This file is automatically merged into sweet-alert.min.js through Gulp */
/* Error icon */
.sweet-alert .sa-icon.sa-error .sa-line.sa-left {
-ms-transform: rotate(45deg) \9; }
.sweet-alert .sa-icon.sa-error .sa-line.sa-right {
-ms-transform: rotate(-45deg) \9; }
/* Success icon */
.sweet-alert .sa-icon.sa-success {
border-color: transparent\9; }
.sweet-alert .sa-icon.sa-success .sa-line.sa-tip {
-ms-transform: rotate(45deg) \9; }
.sweet-alert .sa-icon.sa-success .sa-line.sa-long {
-ms-transform: rotate(-45deg) \9; }
/*!
* Load Awesome v1.1.0 (http://github.danielcardoso.net/load-awesome/)
* Copyright 2015 Daniel Cardoso <@DanielCardoso>
* Licensed under MIT
*/
.la-ball-fall,
.la-ball-fall > div {
position: relative;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box; }
.la-ball-fall {
display: block;
font-size: 0;
color: #fff; }
.la-ball-fall.la-dark {
color: #333; }
.la-ball-fall > div {
display: inline-block;
float: none;
background-color: currentColor;
border: 0 solid currentColor; }
.la-ball-fall {
width: 54px;
height: 18px; }
.la-ball-fall > div {
width: 10px;
height: 10px;
margin: 4px;
border-radius: 100%;
opacity: 0;
-webkit-animation: ball-fall 1s ease-in-out infinite;
-moz-animation: ball-fall 1s ease-in-out infinite;
-o-animation: ball-fall 1s ease-in-out infinite;
animation: ball-fall 1s ease-in-out infinite; }
.la-ball-fall > div:nth-child(1) {
-webkit-animation-delay: -200ms;
-moz-animation-delay: -200ms;
-o-animation-delay: -200ms;
animation-delay: -200ms; }
.la-ball-fall > div:nth-child(2) {
-webkit-animation-delay: -100ms;
-moz-animation-delay: -100ms;
-o-animation-delay: -100ms;
animation-delay: -100ms; }
.la-ball-fall > div:nth-child(3) {
-webkit-animation-delay: 0ms;
-moz-animation-delay: 0ms;
-o-animation-delay: 0ms;
animation-delay: 0ms; }
.la-ball-fall.la-sm {
width: 26px;
height: 8px; }
.la-ball-fall.la-sm > div {
width: 4px;
height: 4px;
margin: 2px; }
.la-ball-fall.la-2x {
width: 108px;
height: 36px; }
.la-ball-fall.la-2x > div {
width: 20px;
height: 20px;
margin: 8px; }
.la-ball-fall.la-3x {
width: 162px;
height: 54px; }
.la-ball-fall.la-3x > div {
width: 30px;
height: 30px;
margin: 12px; }
/*
* Animation
*/
@-webkit-keyframes ball-fall {
0% {
opacity: 0;
-webkit-transform: translateY(-145%);
transform: translateY(-145%); }
10% {
opacity: .5; }
20% {
opacity: 1;
-webkit-transform: translateY(0);
transform: translateY(0); }
80% {
opacity: 1;
-webkit-transform: translateY(0);
transform: translateY(0); }
90% {
opacity: .5; }
100% {
opacity: 0;
-webkit-transform: translateY(145%);
transform: translateY(145%); } }
@-moz-keyframes ball-fall {
0% {
opacity: 0;
-moz-transform: translateY(-145%);
transform: translateY(-145%); }
10% {
opacity: .5; }
20% {
opacity: 1;
-moz-transform: translateY(0);
transform: translateY(0); }
80% {
opacity: 1;
-moz-transform: translateY(0);
transform: translateY(0); }
90% {
opacity: .5; }
100% {
opacity: 0;
-moz-transform: translateY(145%);
transform: translateY(145%); } }
@-o-keyframes ball-fall {
0% {
opacity: 0;
-o-transform: translateY(-145%);
transform: translateY(-145%); }
10% {
opacity: .5; }
20% {
opacity: 1;
-o-transform: translateY(0);
transform: translateY(0); }
80% {
opacity: 1;
-o-transform: translateY(0);
transform: translateY(0); }
90% {
opacity: .5; }
100% {
opacity: 0;
-o-transform: translateY(145%);
transform: translateY(145%); } }
@keyframes ball-fall {
0% {
opacity: 0;
-webkit-transform: translateY(-145%);
-moz-transform: translateY(-145%);
-o-transform: translateY(-145%);
transform: translateY(-145%); }
10% {
opacity: .5; }
20% {
opacity: 1;
-webkit-transform: translateY(0);
-moz-transform: translateY(0);
-o-transform: translateY(0);
transform: translateY(0); }
80% {
opacity: 1;
-webkit-transform: translateY(0);
-moz-transform: translateY(0);
-o-transform: translateY(0);
transform: translateY(0); }
90% {
opacity: .5; }
100% {
opacity: 0;
-webkit-transform: translateY(145%);
-moz-transform: translateY(145%);
-o-transform: translateY(145%);
transform: translateY(145%); } }

228
public/assets/css/toast.min.css vendored 100644
View File

@ -0,0 +1,228 @@
.toast-title {
font-weight: bold;
}
.toast-message {
-ms-word-wrap: break-word;
word-wrap: break-word;
}
.toast-message a,
.toast-message label {
color: #FFFFFF;
}
.toast-message a:hover {
color: #CCCCCC;
text-decoration: none;
}
.toast-close-button {
position: relative;
right: -0.3em;
top: -0.3em;
float: right;
font-size: 20px;
font-weight: bold;
color: #FFFFFF;
-webkit-text-shadow: 0 1px 0 #ffffff;
text-shadow: 0 1px 0 #ffffff;
opacity: 0.8;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
filter: alpha(opacity=80);
line-height: 1;
}
.toast-close-button:hover,
.toast-close-button:focus {
color: #000000;
text-decoration: none;
cursor: pointer;
opacity: 0.4;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
filter: alpha(opacity=40);
}
.rtl .toast-close-button {
left: -0.3em;
float: left;
right: 0.3em;
}
/*Additional properties for button version
iOS requires the button element instead of an anchor tag.
If you want the anchor version, it requires `href="#"`.*/
button.toast-close-button {
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
}
.toast-top-center {
top: 0;
right: 0;
width: 100%;
}
.toast-bottom-center {
bottom: 0;
right: 0;
width: 100%;
}
.toast-top-full-width {
top: 0;
right: 0;
width: 100%;
}
.toast-bottom-full-width {
bottom: 0;
right: 0;
width: 100%;
}
.toast-top-left {
top: 12px;
left: 12px;
}
.toast-top-right {
top: 12px;
right: 12px;
}
.toast-bottom-right {
right: 12px;
bottom: 12px;
}
.toast-bottom-left {
bottom: 12px;
left: 12px;
}
.toast-container {
position: fixed;
z-index: 999999;
pointer-events: none;
/*overrides*/
}
.toast-container * {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.toast-container > div {
position: relative;
pointer-events: auto;
overflow: hidden;
margin: 0 0 6px;
padding: 15px 15px 15px 50px;
width: 300px;
-moz-border-radius: 3px 3px 3px 3px;
-webkit-border-radius: 3px 3px 3px 3px;
border-radius: 3px 3px 3px 3px;
background-position: 15px center;
background-repeat: no-repeat;
-moz-box-shadow: 0 0 12px #999999;
-webkit-box-shadow: 0 0 12px #999999;
box-shadow: 0 0 12px #999999;
color: #FFFFFF;
opacity: 0.8;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
filter: alpha(opacity=80);
}
.toast-container > div.rtl {
direction: rtl;
padding: 15px 50px 15px 15px;
background-position: right 15px center;
}
.toast-container > div:hover {
-moz-box-shadow: 0 0 12px #000000;
-webkit-box-shadow: 0 0 12px #000000;
box-shadow: 0 0 12px #000000;
opacity: 1;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
filter: alpha(opacity=100);
cursor: pointer;
}
.toast-container > .toast-info {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important;
}
.toast-container > .toast-error {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important;
}
.toast-container > .toast-success {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important;
}
.toast-container > .toast-warning {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important;
}
.toast-container.toast-top-center > div,
.toast-container.toast-bottom-center > div {
width: 300px;
margin-left: auto;
margin-right: auto;
}
.toast-container.toast-top-full-width > div,
.toast-container.toast-bottom-full-width > div {
width: 96%;
margin-left: auto;
margin-right: auto;
}
.toast {
background-color: #030303;
}
.toast-success {
background-color: #51A351;
}
.toast-error {
background-color: #BD362F;
}
.toast-info {
background-color: #2F96B4;
}
.toast-warning {
background-color: #F89406;
}
.toast-progress {
position: absolute;
left: 0;
bottom: 0;
height: 4px;
background-color: #000000;
opacity: 0.4;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
filter: alpha(opacity=40);
}
/*Responsive Design*/
@media all and (max-width: 240px) {
.toast-container > div {
padding: 8px 8px 8px 50px;
width: 11em;
}
.toast-container > div.rtl {
padding: 8px 50px 8px 8px;
}
.toast-container .toast-close-button {
right: -0.2em;
top: -0.2em;
}
.toast-container .rtl .toast-close-button {
left: -0.2em;
right: 0.2em;
}
}
@media all and (min-width: 241px) and (max-width: 480px) {
.toast-container > div {
padding: 8px 8px 8px 50px;
width: 18em;
}
.toast-container > div.rtl {
padding: 8px 50px 8px 8px;
}
.toast-container .toast-close-button {
right: -0.2em;
top: -0.2em;
}
.toast-container .rtl .toast-close-button {
left: -0.2em;
right: 0.2em;
}
}
@media all and (min-width: 481px) and (max-width: 768px) {
.toast-container > div {
padding: 15px 15px 15px 50px;
width: 25em;
}
.toast-container > div.rtl {
padding: 15px 50px 15px 15px;
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

2
public/assets/js/jquery.min.js vendored 100644

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

1285
public/assets/js/sweetalert.min.js vendored 100644

File diff suppressed because one or more lines are too long

1
public/assets/js/toast.min.js vendored 100644

File diff suppressed because one or more lines are too long

BIN
resources/.DS_Store vendored 100644

Binary file not shown.

BIN
resources/views/.DS_Store vendored 100644

Binary file not shown.

View File

@ -6,12 +6,11 @@
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between"> <div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Analytics</h4> <h4 class="mb-sm-0">Dashboard</h4>
<div class="page-title-right"> <div class="page-title-right">
<ol class="breadcrumb m-0"> <ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Dashboards</a></li> <li class="breadcrumb-item active">Dashboard</li>
<li class="breadcrumb-item active">Analytics</li>
</ol> </ol>
</div> </div>
@ -560,5 +559,15 @@
</div><!-- end row --> </div><!-- end row -->
</div> </div>
@endsection
@section('js')
<!-- apexcharts -->
<script src="{{asset('assets/libs/apexcharts/apexcharts.min.js')}}"></script>
<!-- Vector map-->
<script src="{{asset('assets/libs/jsvectormap/js/jsvectormap.min.js')}}"></script>
<script src="{{asset('assets/libs/jsvectormap/maps/world-merc.js')}}"></script>
<!-- Dashboard init -->
<script src="{{asset('assets/js/pages/dashboard-analytics.init.js')}}"></script>
@endsection @endsection

View File

@ -3,25 +3,6 @@
<div class="navbar-header"> <div class="navbar-header">
<div class="d-flex"> <div class="d-flex">
<!-- LOGO --> <!-- LOGO -->
<div class="navbar-brand-box horizontal-logo">
<a href="index.html" class="logo logo-dark">
<span class="logo-sm">
<img src="assets/images/logo-sm.png" alt="" height="22">
</span>
<span class="logo-lg">
<img src="assets/images/logo-dark.png" alt="" height="17">
</span>
</a>
<a href="index.html" class="logo logo-light">
<span class="logo-sm">
<img src="assets/images/logo-sm.png" alt="" height="22">
</span>
<span class="logo-lg">
<img src="assets/images/logo-light.png" alt="" height="17">
</span>
</a>
</div>
<button type="button" class="btn btn-sm px-3 fs-16 header-item vertical-menu-btn topnav-hamburger" id="topnav-hamburger-icon"> <button type="button" class="btn btn-sm px-3 fs-16 header-item vertical-menu-btn topnav-hamburger" id="topnav-hamburger-icon">
<span class="hamburger-icon"> <span class="hamburger-icon">
@ -31,674 +12,31 @@
</span> </span>
</button> </button>
<!-- App Search-->
<form class="app-search d-none d-md-block">
<div class="position-relative">
<input type="text" class="form-control" placeholder="Search..." autocomplete="off" id="search-options" value="">
<span class="mdi mdi-magnify search-widget-icon"></span>
<span class="mdi mdi-close-circle search-widget-icon search-widget-icon-close d-none" id="search-close-options"></span>
</div>
<div class="dropdown-menu dropdown-menu-lg" id="search-dropdown">
<div data-simplebar style="max-height: 320px;">
<!-- item-->
<div class="dropdown-header">
<h6 class="text-overflow text-muted mb-0 text-uppercase">Recent Searches</h6>
</div>
<div class="dropdown-item bg-transparent text-wrap">
<a href="index.html" class="btn btn-soft-secondary btn-sm btn-rounded">how to setup <i class="mdi mdi-magnify ms-1"></i></a>
<a href="index.html" class="btn btn-soft-secondary btn-sm btn-rounded">buttons <i class="mdi mdi-magnify ms-1"></i></a>
</div>
<!-- item-->
<div class="dropdown-header mt-2">
<h6 class="text-overflow text-muted mb-1 text-uppercase">Pages</h6>
</div>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item">
<i class="ri-bubble-chart-line align-middle fs-18 text-muted me-2"></i>
<span>Analytics Dashboard</span>
</a>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item">
<i class="ri-lifebuoy-line align-middle fs-18 text-muted me-2"></i>
<span>Help Center</span>
</a>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item">
<i class="ri-user-settings-line align-middle fs-18 text-muted me-2"></i>
<span>My account settings</span>
</a>
<!-- item-->
<div class="dropdown-header mt-2">
<h6 class="text-overflow text-muted mb-2 text-uppercase">Members</h6>
</div>
<div class="notification-list">
<!-- item -->
<a href="javascript:void(0);" class="dropdown-item notify-item py-2">
<div class="d-flex">
<img src="assets/images/users/avatar-2.jpg" class="me-3 rounded-circle avatar-xs" alt="user-pic">
<div class="flex-1">
<h6 class="m-0">Angela Bernier</h6>
<span class="fs-11 mb-0 text-muted">Manager</span>
</div>
</div>
</a>
<!-- item -->
<a href="javascript:void(0);" class="dropdown-item notify-item py-2">
<div class="d-flex">
<img src="assets/images/users/avatar-3.jpg" class="me-3 rounded-circle avatar-xs" alt="user-pic">
<div class="flex-1">
<h6 class="m-0">David Grasso</h6>
<span class="fs-11 mb-0 text-muted">Web Designer</span>
</div>
</div>
</a>
<!-- item -->
<a href="javascript:void(0);" class="dropdown-item notify-item py-2">
<div class="d-flex">
<img src="assets/images/users/avatar-5.jpg" class="me-3 rounded-circle avatar-xs" alt="user-pic">
<div class="flex-1">
<h6 class="m-0">Mike Bunch</h6>
<span class="fs-11 mb-0 text-muted">React Developer</span>
</div>
</div>
</a>
</div>
</div>
<div class="text-center pt-3 pb-1">
<a href="pages-search-results.html" class="btn btn-primary btn-sm">View All Results <i class="ri-arrow-right-line ms-1"></i></a>
</div>
</div>
</form>
</div> </div>
<div class="d-flex align-items-center"> <div class="d-flex align-items-center">
<div class="dropdown d-md-none topbar-head-dropdown header-item">
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle" id="page-header-search-dropdown" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="bx bx-search fs-22"></i>
</button>
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-end p-0" aria-labelledby="page-header-search-dropdown">
<form class="p-3">
<div class="form-group m-0">
<div class="input-group">
<input type="text" class="form-control" placeholder="Search ..." aria-label="Recipient's username">
<button class="btn btn-primary" type="submit"><i class="mdi mdi-magnify"></i></button>
</div>
</div>
</form>
</div>
</div>
<div class="dropdown ms-1 topbar-head-dropdown header-item">
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<img id="header-lang-img" src="assets/images/flags/us.svg" alt="Header Language" height="20" class="rounded">
</button>
<div class="dropdown-menu dropdown-menu-end">
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item language py-2" data-lang="en" title="English">
<img src="assets/images/flags/us.svg" alt="user-image" class="me-2 rounded" height="18">
<span class="align-middle">English</span>
</a>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="sp" title="Spanish">
<img src="assets/images/flags/spain.svg" alt="user-image" class="me-2 rounded" height="18">
<span class="align-middle">Española</span>
</a>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="gr" title="German">
<img src="assets/images/flags/germany.svg" alt="user-image" class="me-2 rounded" height="18"> <span class="align-middle">Deutsche</span>
</a>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="it" title="Italian">
<img src="assets/images/flags/italy.svg" alt="user-image" class="me-2 rounded" height="18">
<span class="align-middle">Italiana</span>
</a>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="ru" title="Russian">
<img src="assets/images/flags/russia.svg" alt="user-image" class="me-2 rounded" height="18">
<span class="align-middle">русский</span>
</a>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="ch" title="Chinese">
<img src="assets/images/flags/china.svg" alt="user-image" class="me-2 rounded" height="18">
<span class="align-middle">中国人</span>
</a>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="fr" title="French">
<img src="assets/images/flags/french.svg" alt="user-image" class="me-2 rounded" height="18">
<span class="align-middle">français</span>
</a>
<!-- item-->
<a href="javascript:void(0);" class="dropdown-item notify-item language" data-lang="ar" title="Arabic">
<img src="assets/images/flags/ae.svg" alt="user-image" class="me-2 rounded" height="18">
<span class="align-middle">Arabic</span>
</a>
</div>
</div>
<div class="dropdown topbar-head-dropdown ms-1 header-item">
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class='bx bx-category-alt fs-22'></i>
</button>
<div class="dropdown-menu dropdown-menu-lg p-0 dropdown-menu-end">
<div class="p-3 border-top-0 border-start-0 border-end-0 border-dashed border">
<div class="row align-items-center">
<div class="col">
<h6 class="m-0 fw-semibold fs-15"> Web Apps </h6>
</div>
<div class="col-auto">
<a href="#!" class="btn btn-sm btn-soft-info"> View All Apps
<i class="ri-arrow-right-s-line align-middle"></i></a>
</div>
</div>
</div>
<div class="p-2">
<div class="row g-0">
<div class="col">
<a class="dropdown-icon-item" href="#!">
<img src="assets/images/brands/github.png" alt="Github">
<span>GitHub</span>
</a>
</div>
<div class="col">
<a class="dropdown-icon-item" href="#!">
<img src="assets/images/brands/bitbucket.png" alt="bitbucket">
<span>Bitbucket</span>
</a>
</div>
<div class="col">
<a class="dropdown-icon-item" href="#!">
<img src="assets/images/brands/dribbble.png" alt="dribbble">
<span>Dribbble</span>
</a>
</div>
</div>
<div class="row g-0">
<div class="col">
<a class="dropdown-icon-item" href="#!">
<img src="assets/images/brands/dropbox.png" alt="dropbox">
<span>Dropbox</span>
</a>
</div>
<div class="col">
<a class="dropdown-icon-item" href="#!">
<img src="assets/images/brands/mail_chimp.png" alt="mail_chimp">
<span>Mail Chimp</span>
</a>
</div>
<div class="col">
<a class="dropdown-icon-item" href="#!">
<img src="assets/images/brands/slack.png" alt="slack">
<span>Slack</span>
</a>
</div>
</div>
</div>
</div>
</div>
<div class="dropdown topbar-head-dropdown ms-1 header-item">
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle" id="page-header-cart-dropdown" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-haspopup="true" aria-expanded="false">
<i class='bx bx-shopping-bag fs-22'></i>
<span class="position-absolute topbar-badge cartitem-badge fs-10 translate-middle badge rounded-pill bg-info">5</span>
</button>
<div class="dropdown-menu dropdown-menu-xl dropdown-menu-end p-0 dropdown-menu-cart" aria-labelledby="page-header-cart-dropdown">
<div class="p-3 border-top-0 border-start-0 border-end-0 border-dashed border">
<div class="row align-items-center">
<div class="col">
<h6 class="m-0 fs-16 fw-semibold"> My Cart</h6>
</div>
<div class="col-auto">
<span class="badge badge-soft-info fs-13"><span class="cartitem-badge">7</span>
items</span>
</div>
</div>
</div>
<div data-simplebar style="max-height: 300px;">
<div class="p-2">
<div class="text-center empty-cart" id="empty-cart">
<div class="avatar-md mx-auto my-3">
<div class="avatar-title bg-soft-info text-info fs-36 rounded-circle">
<i class='bx bx-cart'></i>
</div>
</div>
<h5 class="mb-3">Your Cart is Empty!</h5>
<a href="apps-ecommerce-products.html" class="btn btn-success w-md mb-3">Shop Now</a>
</div>
<div class="d-block dropdown-item dropdown-item-cart text-wrap px-3 py-2">
<div class="d-flex align-items-center">
<img src="assets/images/products/img-1.png" class="me-3 rounded-circle avatar-sm p-2 bg-light" alt="user-pic">
<div class="flex-1">
<h6 class="mt-0 mb-1 fs-14">
<a href="apps-ecommerce-product-details.html" class="text-reset">Branded
T-Shirts</a>
</h6>
<p class="mb-0 fs-12 text-muted">
Quantity: <span>10 x $32</span>
</p>
</div>
<div class="px-2">
<h5 class="m-0 fw-normal">$<span class="cart-item-price">320</span></h5>
</div>
<div class="ps-2">
<button type="button" class="btn btn-icon btn-sm btn-ghost-secondary remove-item-btn"><i class="ri-close-fill fs-16"></i></button>
</div>
</div>
</div>
<div class="d-block dropdown-item dropdown-item-cart text-wrap px-3 py-2">
<div class="d-flex align-items-center">
<img src="assets/images/products/img-2.png" class="me-3 rounded-circle avatar-sm p-2 bg-light" alt="user-pic">
<div class="flex-1">
<h6 class="mt-0 mb-1 fs-14">
<a href="apps-ecommerce-product-details.html" class="text-reset">Bentwood Chair</a>
</h6>
<p class="mb-0 fs-12 text-muted">
Quantity: <span>5 x $18</span>
</p>
</div>
<div class="px-2">
<h5 class="m-0 fw-normal">$<span class="cart-item-price">89</span></h5>
</div>
<div class="ps-2">
<button type="button" class="btn btn-icon btn-sm btn-ghost-secondary remove-item-btn"><i class="ri-close-fill fs-16"></i></button>
</div>
</div>
</div>
<div class="d-block dropdown-item dropdown-item-cart text-wrap px-3 py-2">
<div class="d-flex align-items-center">
<img src="assets/images/products/img-3.png" class="me-3 rounded-circle avatar-sm p-2 bg-light" alt="user-pic">
<div class="flex-1">
<h6 class="mt-0 mb-1 fs-14">
<a href="apps-ecommerce-product-details.html" class="text-reset">
Borosil Paper Cup</a>
</h6>
<p class="mb-0 fs-12 text-muted">
Quantity: <span>3 x $250</span>
</p>
</div>
<div class="px-2">
<h5 class="m-0 fw-normal">$<span class="cart-item-price">750</span></h5>
</div>
<div class="ps-2">
<button type="button" class="btn btn-icon btn-sm btn-ghost-secondary remove-item-btn"><i class="ri-close-fill fs-16"></i></button>
</div>
</div>
</div>
<div class="d-block dropdown-item dropdown-item-cart text-wrap px-3 py-2">
<div class="d-flex align-items-center">
<img src="assets/images/products/img-6.png" class="me-3 rounded-circle avatar-sm p-2 bg-light" alt="user-pic">
<div class="flex-1">
<h6 class="mt-0 mb-1 fs-14">
<a href="apps-ecommerce-product-details.html" class="text-reset">Gray
Styled T-Shirt</a>
</h6>
<p class="mb-0 fs-12 text-muted">
Quantity: <span>1 x $1250</span>
</p>
</div>
<div class="px-2">
<h5 class="m-0 fw-normal">$ <span class="cart-item-price">1250</span></h5>
</div>
<div class="ps-2">
<button type="button" class="btn btn-icon btn-sm btn-ghost-secondary remove-item-btn"><i class="ri-close-fill fs-16"></i></button>
</div>
</div>
</div>
<div class="d-block dropdown-item dropdown-item-cart text-wrap px-3 py-2">
<div class="d-flex align-items-center">
<img src="assets/images/products/img-5.png" class="me-3 rounded-circle avatar-sm p-2 bg-light" alt="user-pic">
<div class="flex-1">
<h6 class="mt-0 mb-1 fs-14">
<a href="apps-ecommerce-product-details.html" class="text-reset">Stillbird Helmet</a>
</h6>
<p class="mb-0 fs-12 text-muted">
Quantity: <span>2 x $495</span>
</p>
</div>
<div class="px-2">
<h5 class="m-0 fw-normal">$<span class="cart-item-price">990</span></h5>
</div>
<div class="ps-2">
<button type="button" class="btn btn-icon btn-sm btn-ghost-secondary remove-item-btn"><i class="ri-close-fill fs-16"></i></button>
</div>
</div>
</div>
</div>
</div>
<div class="p-3 border-bottom-0 border-start-0 border-end-0 border-dashed border" id="checkout-elem">
<div class="d-flex justify-content-between align-items-center pb-3">
<h5 class="m-0 text-muted">Total:</h5>
<div class="px-2">
<h5 class="m-0" id="cart-item-total">$1258.58</h5>
</div>
</div>
<a href="apps-ecommerce-checkout.html" class="btn btn-success text-center w-100">
Checkout
</a>
</div>
</div>
</div>
<div class="ms-1 header-item d-none d-sm-flex">
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle" data-toggle="fullscreen">
<i class='bx bx-fullscreen fs-22'></i>
</button>
</div>
<div class="ms-1 header-item d-none d-sm-flex"> <div class="ms-1 header-item d-none d-sm-flex">
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle light-dark-mode"> <button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle light-dark-mode">
<i class='bx bx-moon fs-22'></i> <i class='bx bx-moon fs-22'></i>
</button> </button>
</div> </div>
<div class="dropdown topbar-head-dropdown ms-1 header-item" id="notificationDropdown">
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle" id="page-header-notifications-dropdown" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-haspopup="true" aria-expanded="false">
<i class='bx bx-bell fs-22'></i>
<span class="position-absolute topbar-badge fs-10 translate-middle badge rounded-pill bg-danger">3<span class="visually-hidden">unread messages</span></span>
</button>
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-end p-0" aria-labelledby="page-header-notifications-dropdown">
<div class="dropdown-head bg-secondary bg-pattern rounded-top">
<div class="p-3">
<div class="row align-items-center">
<div class="col">
<h6 class="m-0 fs-16 fw-semibold text-white"> Notifications </h6>
</div>
<div class="col-auto dropdown-tabs">
<span class="badge badge-soft-light fs-13"> 4 New</span>
</div>
</div>
</div>
<div class="px-2 pt-2">
<ul class="nav nav-tabs dropdown-tabs nav-tabs-custom" data-dropdown-tabs="true" id="notificationItemsTab" role="tablist">
<li class="nav-item waves-effect waves-light">
<a class="nav-link active" data-bs-toggle="tab" href="#all-noti-tab" role="tab" aria-selected="true">
All (4)
</a>
</li>
<li class="nav-item waves-effect waves-light">
<a class="nav-link" data-bs-toggle="tab" href="#messages-tab" role="tab" aria-selected="false">
Messages
</a>
</li>
<li class="nav-item waves-effect waves-light">
<a class="nav-link" data-bs-toggle="tab" href="#alerts-tab" role="tab" aria-selected="false">
Alerts
</a>
</li>
</ul>
</div>
</div>
<div class="tab-content position-relative" id="notificationItemsTabContent">
<div class="tab-pane fade show active py-2 ps-2" id="all-noti-tab" role="tabpanel">
<div data-simplebar style="max-height: 300px;" class="pe-2">
<div class="text-reset notification-item d-block dropdown-item position-relative">
<div class="d-flex">
<div class="avatar-xs me-3">
<span class="avatar-title bg-soft-info text-info rounded-circle fs-16">
<i class="bx bx-badge-check"></i>
</span>
</div>
<div class="flex-1">
<a href="#!" class="stretched-link">
<h6 class="mt-0 mb-2 lh-base">Your <b>Elite</b> author Graphic
Optimization <span class="text-secondary">reward</span> is
ready!
</h6>
</a>
<p class="mb-0 fs-11 fw-medium text-uppercase text-muted">
<span><i class="mdi mdi-clock-outline"></i> Just 30 sec ago</span>
</p>
</div>
<div class="px-2 fs-15">
<div class="form-check notification-check">
<input class="form-check-input" type="checkbox" value="" id="all-notification-check01">
<label class="form-check-label" for="all-notification-check01"></label>
</div>
</div>
</div>
</div>
<div class="text-reset notification-item d-block dropdown-item position-relative">
<div class="d-flex">
<img src="assets/images/users/avatar-2.jpg" class="me-3 rounded-circle avatar-xs" alt="user-pic">
<div class="flex-1">
<a href="#!" class="stretched-link">
<h6 class="mt-0 mb-1 fs-13 fw-semibold">Angela Bernier</h6>
</a>
<div class="fs-13 text-muted">
<p class="mb-1">Answered to your comment on the cash flow forecast's
graph 🔔.</p>
</div>
<p class="mb-0 fs-11 fw-medium text-uppercase text-muted">
<span><i class="mdi mdi-clock-outline"></i> 48 min ago</span>
</p>
</div>
<div class="px-2 fs-15">
<div class="form-check notification-check">
<input class="form-check-input" type="checkbox" value="" id="all-notification-check02">
<label class="form-check-label" for="all-notification-check02"></label>
</div>
</div>
</div>
</div>
<div class="text-reset notification-item d-block dropdown-item position-relative">
<div class="d-flex">
<div class="avatar-xs me-3">
<span class="avatar-title bg-soft-danger text-danger rounded-circle fs-16">
<i class='bx bx-message-square-dots'></i>
</span>
</div>
<div class="flex-1">
<a href="#!" class="stretched-link">
<h6 class="mt-0 mb-2 fs-13 lh-base">You have received <b class="text-success">20</b> new messages in the conversation
</h6>
</a>
<p class="mb-0 fs-11 fw-medium text-uppercase text-muted">
<span><i class="mdi mdi-clock-outline"></i> 2 hrs ago</span>
</p>
</div>
<div class="px-2 fs-15">
<div class="form-check notification-check">
<input class="form-check-input" type="checkbox" value="" id="all-notification-check03">
<label class="form-check-label" for="all-notification-check03"></label>
</div>
</div>
</div>
</div>
<div class="text-reset notification-item d-block dropdown-item position-relative">
<div class="d-flex">
<img src="assets/images/users/avatar-8.jpg" class="me-3 rounded-circle avatar-xs" alt="user-pic">
<div class="flex-1">
<a href="#!" class="stretched-link">
<h6 class="mt-0 mb-1 fs-13 fw-semibold">Maureen Gibson</h6>
</a>
<div class="fs-13 text-muted">
<p class="mb-1">We talked about a project on linkedin.</p>
</div>
<p class="mb-0 fs-11 fw-medium text-uppercase text-muted">
<span><i class="mdi mdi-clock-outline"></i> 4 hrs ago</span>
</p>
</div>
<div class="px-2 fs-15">
<div class="form-check notification-check">
<input class="form-check-input" type="checkbox" value="" id="all-notification-check04">
<label class="form-check-label" for="all-notification-check04"></label>
</div>
</div>
</div>
</div>
<div class="my-3 text-center view-all">
<button type="button" class="btn btn-soft-success waves-effect waves-light">View
All Notifications <i class="ri-arrow-right-line align-middle"></i></button>
</div>
</div>
</div>
<div class="tab-pane fade py-2 ps-2" id="messages-tab" role="tabpanel" aria-labelledby="messages-tab">
<div data-simplebar style="max-height: 300px;" class="pe-2">
<div class="text-reset notification-item d-block dropdown-item">
<div class="d-flex">
<img src="assets/images/users/avatar-3.jpg" class="me-3 rounded-circle avatar-xs" alt="user-pic">
<div class="flex-1">
<a href="#!" class="stretched-link">
<h6 class="mt-0 mb-1 fs-13 fw-semibold">James Lemire</h6>
</a>
<div class="fs-13 text-muted">
<p class="mb-1">We talked about a project on linkedin.</p>
</div>
<p class="mb-0 fs-11 fw-medium text-uppercase text-muted">
<span><i class="mdi mdi-clock-outline"></i> 30 min ago</span>
</p>
</div>
<div class="px-2 fs-15">
<div class="form-check notification-check">
<input class="form-check-input" type="checkbox" value="" id="messages-notification-check01">
<label class="form-check-label" for="messages-notification-check01"></label>
</div>
</div>
</div>
</div>
<div class="text-reset notification-item d-block dropdown-item">
<div class="d-flex">
<img src="assets/images/users/avatar-2.jpg" class="me-3 rounded-circle avatar-xs" alt="user-pic">
<div class="flex-1">
<a href="#!" class="stretched-link">
<h6 class="mt-0 mb-1 fs-13 fw-semibold">Angela Bernier</h6>
</a>
<div class="fs-13 text-muted">
<p class="mb-1">Answered to your comment on the cash flow forecast's
graph 🔔.</p>
</div>
<p class="mb-0 fs-11 fw-medium text-uppercase text-muted">
<span><i class="mdi mdi-clock-outline"></i> 2 hrs ago</span>
</p>
</div>
<div class="px-2 fs-15">
<div class="form-check notification-check">
<input class="form-check-input" type="checkbox" value="" id="messages-notification-check02">
<label class="form-check-label" for="messages-notification-check02"></label>
</div>
</div>
</div>
</div>
<div class="text-reset notification-item d-block dropdown-item">
<div class="d-flex">
<img src="assets/images/users/avatar-6.jpg" class="me-3 rounded-circle avatar-xs" alt="user-pic">
<div class="flex-1">
<a href="#!" class="stretched-link">
<h6 class="mt-0 mb-1 fs-13 fw-semibold">Kenneth Brown</h6>
</a>
<div class="fs-13 text-muted">
<p class="mb-1">Mentionned you in his comment on 📃 invoice #12501.
</p>
</div>
<p class="mb-0 fs-11 fw-medium text-uppercase text-muted">
<span><i class="mdi mdi-clock-outline"></i> 10 hrs ago</span>
</p>
</div>
<div class="px-2 fs-15">
<div class="form-check notification-check">
<input class="form-check-input" type="checkbox" value="" id="messages-notification-check03">
<label class="form-check-label" for="messages-notification-check03"></label>
</div>
</div>
</div>
</div>
<div class="text-reset notification-item d-block dropdown-item">
<div class="d-flex">
<img src="assets/images/users/avatar-8.jpg" class="me-3 rounded-circle avatar-xs" alt="user-pic">
<div class="flex-1">
<a href="#!" class="stretched-link">
<h6 class="mt-0 mb-1 fs-13 fw-semibold">Maureen Gibson</h6>
</a>
<div class="fs-13 text-muted">
<p class="mb-1">We talked about a project on linkedin.</p>
</div>
<p class="mb-0 fs-11 fw-medium text-uppercase text-muted">
<span><i class="mdi mdi-clock-outline"></i> 3 days ago</span>
</p>
</div>
<div class="px-2 fs-15">
<div class="form-check notification-check">
<input class="form-check-input" type="checkbox" value="" id="messages-notification-check04">
<label class="form-check-label" for="messages-notification-check04"></label>
</div>
</div>
</div>
</div>
<div class="my-3 text-center view-all">
<button type="button" class="btn btn-soft-success waves-effect waves-light">View
All Messages <i class="ri-arrow-right-line align-middle"></i></button>
</div>
</div>
</div>
<div class="tab-pane fade p-4" id="alerts-tab" role="tabpanel" aria-labelledby="alerts-tab"></div>
<div class="notification-actions" id="notification-actions">
<div class="d-flex text-muted justify-content-center">
Select <div id="select-content" class="text-body fw-semibold px-1">0</div> Result <button type="button" class="btn btn-link link-danger p-0 ms-3" data-bs-toggle="modal" data-bs-target="#removeNotificationModal">Remove</button>
</div>
</div>
</div>
</div>
</div>
<div class="dropdown ms-sm-3 header-item topbar-user"> <div class="dropdown ms-sm-3 header-item topbar-user">
<button type="button" class="btn" id="page-header-user-dropdown" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <button type="button" class="btn" id="page-header-user-dropdown" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="d-flex align-items-center"> <span class="d-flex align-items-center">
<img class="rounded-circle header-profile-user" src="assets/images/users/avatar-1.jpg" alt="Header Avatar"> <img class="rounded-circle header-profile-user" src="{{ asset('assets/images/users/avatar-1.jpg') }}" alt="Header Avatar">
<span class="text-start ms-xl-2"> <span class="text-start ms-xl-2">
<span class="d-none d-xl-inline-block ms-1 fw-semibold user-name-text">Anna Adame</span> <span class="d-none d-xl-inline-block ms-1 fw-semibold user-name-text">{{ auth()->user()->name }}</span>
<span class="d-none d-xl-block ms-1 fs-12 text-muted user-name-sub-text">Founder</span>
</span> </span>
</span> </span>
</button> </button>
<div class="dropdown-menu dropdown-menu-end"> <div class="dropdown-menu dropdown-menu-end">
<!-- item--> <!-- item-->
<h6 class="dropdown-header">Welcome Anna!</h6> <h6 class="dropdown-header">Selamat Datang {{ auth()->user()->name }}!</h6>
<a class="dropdown-item" href="pages-profile.html"><i class="mdi mdi-account-circle text-muted fs-16 align-middle me-1"></i> <span class="align-middle">Profile</span></a> <a class="dropdown-item" href="{{ url('profile') }}"><i class="mdi mdi-account-circle text-muted fs-16 align-middle me-1"></i> <span class="align-middle">Profile</span></a>
<a class="dropdown-item" href="apps-chat.html"><i class="mdi mdi-message-text-outline text-muted fs-16 align-middle me-1"></i> <span class="align-middle">Messages</span></a>
<a class="dropdown-item" href="apps-tasks-kanban.html"><i class="mdi mdi-calendar-check-outline text-muted fs-16 align-middle me-1"></i> <span class="align-middle">Taskboard</span></a>
<a class="dropdown-item" href="pages-faqs.html"><i class="mdi mdi-lifebuoy text-muted fs-16 align-middle me-1"></i> <span class="align-middle">Help</span></a>
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
<a class="dropdown-item" href="pages-profile.html"><i class="mdi mdi-wallet text-muted fs-16 align-middle me-1"></i> <span class="align-middle">Balance : <b>$5971.67</b></span></a> <a class="dropdown-item" href="{{ url('logout') }}"><i class="mdi mdi-logout text-muted fs-16 align-middle me-1"></i> <span class="align-middle" data-key="t-logout">Logout</span></a>
<a class="dropdown-item" href="pages-profile-settings.html"><span class="badge bg-soft-success text-success mt-1 float-end">New</span><i class="mdi mdi-cog-outline text-muted fs-16 align-middle me-1"></i> <span class="align-middle">Settings</span></a>
<a class="dropdown-item" href="auth-lockscreen-basic.html"><i class="mdi mdi-lock text-muted fs-16 align-middle me-1"></i> <span class="align-middle">Lock screen</span></a>
<a class="dropdown-item" href="auth-logout-basic.html"><i class="mdi mdi-logout text-muted fs-16 align-middle me-1"></i> <span class="align-middle" data-key="t-logout">Logout</span></a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -6,7 +6,7 @@
<a href="index.html" class="logo logo-dark"> <a href="index.html" class="logo logo-dark">
<div class="d-flex flex-row gap-2 justify-start items-center"> <div class="d-flex flex-row gap-2 justify-start items-center">
<div> <div>
<img class="" src="https://lingkunganhidup.jakarta.go.id/dist/images/logo/logo-dlh-big.png" alt="" <img class="" src="https://lingkunganhidup.jakarta.go.id/logo-dlh.png" alt=""
width="30"> width="30">
</div> </div>
<div> <div>

View File

@ -15,7 +15,7 @@
<link href="{{asset('assets/libs/jsvectormap/css/jsvectormap.min.css')}}" rel="stylesheet" type="text/css" /> <link href="{{asset('assets/libs/jsvectormap/css/jsvectormap.min.css')}}" rel="stylesheet" type="text/css" />
<!-- Layout config Js --> <!-- Layout config Js -->
<script src="assets/js/layout.js"></script> <script src="{{ asset('assets/js/layout.js') }}"></script>
<!-- Bootstrap Css --> <!-- Bootstrap Css -->
<link href="{{asset('assets/css/bootstrap.min.css')}}" rel="stylesheet" type="text/css" /> <link href="{{asset('assets/css/bootstrap.min.css')}}" rel="stylesheet" type="text/css" />
<!-- Icons Css --> <!-- Icons Css -->
@ -24,6 +24,11 @@
<link href="{{asset('assets/css/app.min.css')}}" rel="stylesheet" type="text/css" /> <link href="{{asset('assets/css/app.min.css')}}" rel="stylesheet" type="text/css" />
<!-- custom Css--> <!-- custom Css-->
<link href="{{asset('assets/css/custom.min.css')}}" rel="stylesheet" type="text/css" /> <link href="{{asset('assets/css/custom.min.css')}}" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="{{asset('assets/css/sweetalert.min.css')}}">
<link rel="stylesheet" href="{{asset('assets/css/toast.min.css')}}">
<link rel="stylesheet" href="{{asset('assets/css/select2.bundle.css')}}">
<link rel="stylesheet" href="{{asset('assets/css/datatables.bundle.css')}}">
<link rel="stylesheet" href="{{asset('assets/css/bootstrap-table.min.css')}}">
@yield('css') @yield('css')
</head> </head>
@ -54,12 +59,7 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<div class="col-sm-6"> <div class="col-sm-6">
<script>document.write(new Date().getFullYear())</script> © Velzon. <script>document.write(new Date().getFullYear())</script> © Dinas Lingkungan Hidup Provinsi DKI Jakarta.
</div>
<div class="col-sm-6">
<div class="text-sm-end d-none d-sm-block">
Copyright by Dinas Lingkungan Hidup Provinsi DKI Jakarta
</div>
</div> </div>
</div> </div>
</div> </div>
@ -68,9 +68,38 @@
<!-- end main content--> <!-- end main content-->
</div> </div>
<!-- removeNotificationModal -->
<div id="removeNotificationModal" class="modal fade zoomIn" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"
id="NotificationModalbtn-close"></button>
</div>
<div class="modal-body">
<div class="mt-2 text-center">
<lord-icon src="https://cdn.lordicon.com/gsqxdxog.json" trigger="loop"
colors="primary:#495057,secondary:#f06548" style="width:100px;height:100px"></lord-icon>
<div class="mt-4 pt-2 fs-15 mx-4 mx-sm-5">
<h4 class="fw-bold">Are you sure ?</h4>
<p class="text-muted mx-4 mb-0">Are you sure you want to remove this Notification ?</p>
</div>
</div>
<div class="d-flex gap-2 justify-content-center mt-4 mb-2">
<button type="button" class="btn w-sm btn-light" data-bs-dismiss="modal">Close</button>
<button type="button" class="btn w-sm btn-danger" id="delete-notification">Yes, Delete
It!</button>
</div>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<!-- END layout-wrapper --> <!-- END layout-wrapper -->
<!-- JAVASCRIPT --> <!-- JAVASCRIPT -->
<script src="{{asset('assets/js/jquery.min.js')}}"></script>
<script src="{{asset('assets/libs/bootstrap/js/bootstrap.bundle.min.js')}}"></script> <script src="{{asset('assets/libs/bootstrap/js/bootstrap.bundle.min.js')}}"></script>
<script src="{{asset('assets/libs/simplebar/simplebar.min.js')}}"></script> <script src="{{asset('assets/libs/simplebar/simplebar.min.js')}}"></script>
<script src="{{asset('assets/libs/node-waves/waves.min.js')}}"></script> <script src="{{asset('assets/libs/node-waves/waves.min.js')}}"></script>
@ -78,19 +107,14 @@
<script src="{{asset('assets/js/pages/plugins/lord-icon-2.1.0.js')}}"></script> <script src="{{asset('assets/js/pages/plugins/lord-icon-2.1.0.js')}}"></script>
<script src="{{asset('assets/js/plugins.js')}}"></script> <script src="{{asset('assets/js/plugins.js')}}"></script>
<!-- apexcharts --> <script src="{{asset('assets/js/bootstrap-table.min.js')}}"></script>
<script src="{{asset('assets/libs/apexcharts/apexcharts.min.js')}}"></script> <script src="{{ asset('assets/js/sweetalert.min.js') }}"></script>
<script src="{{asset('assets/js/toast.min.js')}}"></script>
<script src="{{asset('assets/js/select2.bundle.js')}}"></script>
<script type="text/javascript" src="{{asset('assets/js/datatables.bundle.js')}}"></script>
<!-- Vector map--> @yield('js')
<script src="{{asset('assets/libs/jsvectormap/js/jsvectormap.min.js')}}"></script>
<script src="{{asset('assets/libs/jsvectormap/maps/world-merc.js')}}"></script>
<!-- Dashboard init -->
<script src="{{asset('assets/js/pages/dashboard-analytics.init.js')}}"></script>
<!-- App js -->
<script src="{{asset('assets/js/app.js')}}"></script> <script src="{{asset('assets/js/app.js')}}"></script>
@yield('jss')
</body> </body>
</html> </html>

BIN
resources/views/modules/.DS_Store vendored 100644

Binary file not shown.

View File

@ -9,7 +9,7 @@
</div> </div>
<form action="{{route($route.'.store')}}" method="POST" class=""> <form action="{{route($route.'.store')}}" method="POST" class="">
{{csrf_field()}} {{csrf_field()}}
<div class="p-6"> <div class="p-2">
<table class="gridjs-table" <table class="gridjs-table"
data-toggle="table" data-toggle="table"
data-search="false" data-search="false"
@ -181,7 +181,7 @@
</table> </table>
<input type="hidden" name="group_id" value="{{encode_id(@$id)}}"> <input type="hidden" name="group_id" value="{{encode_id(@$id)}}">
</div> </div>
<div class="p-6"> <div class="p-2">
<a href="{{route('modules.management.role.index')}}" class="btn text-white bg-danger"><i class="ri-close-line"></i> Batal</a> <a href="{{route('modules.management.role.index')}}" class="btn text-white bg-danger"><i class="ri-close-line"></i> Batal</a>
<button class="btn text-white bg-success"><i class="ri-save-line"></i> Simpan</button> <button class="btn text-white bg-success"><i class="ri-save-line"></i> Simpan</button>
</div> </div>

View File

@ -7,18 +7,18 @@
<form action="{{route($route.'.store')}}" method="POST" class=""> <form action="{{route($route.'.store')}}" method="POST" class="">
{{csrf_field()}} {{csrf_field()}}
<input type="hidden" name="secure_id" value="{{@$keyId}}"> <input type="hidden" name="secure_id" value="{{@$keyId}}">
<div class="p-6"> <div class="p-2">
<div class="grid lg:grid-cols-2 gap-3"> <div class="grid lg:grid-cols-2 gap-3">
<div class="mb-3"> <div class="mb-3">
<label class="mb-3">Role</label> <label class="mb-3">Role</label>
<input type="text" value="{{@$item->name ? @$item->name : old('name')}}" name="name" class="form-input @error('name') is-invalid @enderror" placeholder="Masukan Nama Role" required> <input type="text" value="{{@$item->name ? @$item->name : old('name')}}" name="name" class="form-control @error('name') is-invalid @enderror" placeholder="Masukan Nama Role" required>
@error('name') @error('name')
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span> <span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
@enderror @enderror
</div> </div>
<div class="mb-3"> <div class="mb-3">
<label class="mb-3">Alias</label> <label class="mb-3">Alias</label>
<input type="text" value="{{@$item->alias ? @$item->alias : old('alias')}}" name="alias" class="form-input @error('alias') is-invalid @enderror" placeholder="Masukan Alias Role" required> <input type="text" value="{{@$item->alias ? @$item->alias : old('alias')}}" name="alias" class="form-control @error('alias') is-invalid @enderror" placeholder="Masukan Alias Role" required>
<small><i>Pastikan mengandung huruf kecil semua dan tidak ada "spasi" atau tanda baca "-"</i></small> <small><i>Pastikan mengandung huruf kecil semua dan tidak ada "spasi" atau tanda baca "-"</i></small>
@error('alias') @error('alias')
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span> <span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
@ -26,7 +26,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="p-6"> <div class="p-2">
<a href="{{route($route.'.index')}}" class="btn bg-danger text-white"><i class="ri-close-line"></i>&nbsp;Batal</a> <a href="{{route($route.'.index')}}" class="btn bg-danger text-white"><i class="ri-close-line"></i>&nbsp;Batal</a>
<button type="submit" class="btn bg-success text-white"><i class="ri-save-line"></i> Simpan</button> <button type="submit" class="btn bg-success text-white"><i class="ri-save-line"></i> Simpan</button>
</div> </div>

View File

@ -3,14 +3,14 @@
@section('css') @section('css')
@endsection @endsection
@section('content') @section('content')
<div class="flex flex-col gap-6"> <div class="d-flex flex-column">
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">
<div class="flex justify-between items-center"> <div class="flex justify-between items-center">
<h4 class="card-title">Data {{$title}}</h4> <h4 class="card-title">Data {{$title}}</h4>
</div> </div>
</div> </div>
<div class="p-6"> <div class="p-2">
<div id="toolbar"> <div id="toolbar">
<a href="{{route($route.'.create')}}" class="btn bg-primary text-white">Tambah Data</a> <a href="{{route($route.'.create')}}" class="btn bg-primary text-white">Tambah Data</a>
</div> </div>
@ -26,11 +26,11 @@
data-page-size="10" data-page-size="10"
data-id-field="id" data-id-field="id"
id="grid-data"> id="grid-data">
<thead class="gridjs-thead"> <thead class="">
<tr class="gridjs-tr bg-secondary/10"> <tr class="table-info">
<th class="gridjs-td gridjs-th text-sm text-gray-500" data-width="10" data-field="action">#</th> <th data-width="10" data-field="action">#</th>
<th class="gridjs-td gridjs-th text-sm text-gray-500" data-width="10" data-field="no">No</th> <th data-width="10" data-field="no">No</th>
<th class="gridjs-td gridjs-th text-sm text-gray-500" data-field="name">Name</th> <th data-field="name">Name</th>
</tr> </tr>
</thead> </thead>
<tbody class="gridjs-tbody"></tbody> <tbody class="gridjs-tbody"></tbody>

Binary file not shown.

View File

@ -1,6 +1,6 @@
@extends('layouts.master') @extends('layouts.master')
@section('content') @section('content')
<div class="flex flex-col gap-6"> <div class="d-flex flex-column gap-5">
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">
<div class="flex justify-between items-center"> <div class="flex justify-between items-center">
@ -10,32 +10,32 @@
<form action="{{route($route.'.store')}}" method="POST" class=""> <form action="{{route($route.'.store')}}" method="POST" class="">
{{csrf_field()}} {{csrf_field()}}
<input type="hidden" name="secure_id" value="{{@$keyId}}"> <input type="hidden" name="secure_id" value="{{@$keyId}}">
<div class="p-6"> <div class="p-2">
<div class="grid lg:grid-cols-2 gap-3"> <div class="grid lg:grid-cols-2 gap-3">
<div class="mb-3"> {{-- <div class="mb-3">
<label class="mb-3">Username</label> <label class="mb-3">Username</label>
<input type="text" value="{{@$item->username ? @$item->username : old('username')}}" name="username" class="form-input @error('username') is-invalid @enderror" placeholder="Masukan username" required> <input type="text" value="{{@$item->username ? @$item->username : old('username')}}" name="username" class="form-control @error('username') is-invalid @enderror" placeholder="Masukan username" required>
@error('username') @error('username')
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span> <span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
@enderror @enderror
</div> </div> --}}
<div class="mb-3"> <div class="mb-3">
<label class="mb-3">Nama</label> <label class="mb-3">Nama</label>
<input type="text" value="{{@$item->name ? @$item->name : old('name')}}" name="name" class="form-input @error('name') is-invalid @enderror" placeholder="Masukan Nama Sekolah" required> <input type="text" value="{{@$item->name ? @$item->name : old('name')}}" name="name" class="form-control @error('name') is-invalid @enderror" placeholder="Masukan Nama Sekolah" required>
@error('name') @error('name')
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span> <span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
@enderror @enderror
</div> </div>
<div class="mb-3"> <div class="mb-3">
<label class="mb-3">Email</label> <label class="mb-3">Email</label>
<input type="email" name="email" value="{{@$item->email ? @$item->email : old('email')}}" id="emailverify" class="form-input @error('email') is-invalid @enderror" placeholder="Masukan Email Aktif" required> <input type="email" name="email" value="{{@$item->email ? @$item->email : old('email')}}" id="emailverify" class="form-control @error('email') is-invalid @enderror" placeholder="Masukan Email Aktif" required>
@error('name') @error('name')
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span> <span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
@enderror @enderror
</div> </div>
<div class="mb-3"> <div class="mb-3">
<label class="mb-3">Role User</label> <label class="mb-3">Role User</label>
<select name="group" class="form-input @error('group') is-invalid @enderror" required> <select name="group" class="form-control @error('group') is-invalid @enderror" required>
<option value="">-Pilih Role User-</option> <option value="">-Pilih Role User-</option>
@foreach($group as $data_group) @foreach($group as $data_group)
<option {{@$item->ms_group_id == $data_group->MsGroupId ? 'selected' : ''}} value="{{encode_id($data_group->MsGroupId)}}">{{$data_group->name}}</option> <option {{@$item->ms_group_id == $data_group->MsGroupId ? 'selected' : ''}} value="{{encode_id($data_group->MsGroupId)}}">{{$data_group->name}}</option>
@ -49,7 +49,7 @@
<div class="grid lg:grid-cols-1"> <div class="grid lg:grid-cols-1">
<div class="mb-3"> <div class="mb-3">
<label class="mb-3">Password Baru</label> <label class="mb-3">Password Baru</label>
<input type="password" id="password" autocomplete="new-password" name="password" class="form-input @error('password') is-invalid @enderror" placeholder="Masukan Password Minimm 8 characters"> <input type="password" id="password" autocomplete="new-password" name="password" class="form-control @error('password') is-invalid @enderror" placeholder="Masukan Password Minimm 8 characters">
@error('password') @error('password')
<span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span> <span class="invalid-feedback" style="display: block!important;"><strong>{{$message}}</strong></span>
@enderror @enderror
@ -60,7 +60,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="p-6"> <div class="p-2">
<a href="{{route($route.'.index')}}" class="btn bg-danger text-white"><i class="ri-close-line"></i>&nbsp;Batal</a> <a href="{{route($route.'.index')}}" class="btn bg-danger text-white"><i class="ri-close-line"></i>&nbsp;Batal</a>
<button type="submit" class="btn bg-success text-white"><i class="ri-save-line"></i> Simpan</button> <button type="submit" class="btn bg-success text-white"><i class="ri-save-line"></i> Simpan</button>
</div> </div>
@ -68,7 +68,7 @@
</div> </div>
</div> </div>
@endsection @endsection
@section('page-js') @section('js')
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {
$('.numberInput').on('input', function() { $('.numberInput').on('input', function() {

View File

@ -1,17 +1,19 @@
@extends('layouts.master') @extends('layouts.master')
@section('css') @section('css')
@endsection @endsection
@section('content') @section('content')
<div class="flex flex-col gap-6"> <div class="flex flex-col gap-6">
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">
<div class="flex justify-between items-center"> <div class="d-flex justify-between items-center">
<h4 class="card-title">Data {{$title}}</h4> <h4 class="card-title">Data {{$title}}</h4>
</div> </div>
</div> </div>
<div class="p-6"> <div class="p-2">
<table class="gridjs-table" <div id="toolbar">
<a href="{{ route($route.'.create') }}" class="btn btn-primary"><i class="ri-add-line"></i> Tambah Pengguna</a>
</div>
<table class="table"
data-search="true" data-search="true"
data-toggle="table" data-toggle="table"
data-pagination="true" data-pagination="true"
@ -23,14 +25,13 @@
data-page-size="10" data-page-size="10"
data-id-field="id" data-id-field="id"
id="grid-data"> id="grid-data">
<thead class="gridjs-thead"> <thead class="">
<tr class="gridjs-tr bg-secondary/10"> <tr class="table-info">
<th class="gridjs-td gridjs-th text-sm text-gray-500" data-width="10" data-field="action">#</th> <th class="text-sm" data-field="action">#</th>
<th class="gridjs-td gridjs-th text-sm text-gray-500" data-width="10" data-field="no">No</th> <th class="text-sm" data-field="no">No</th>
<th class="gridjs-td gridjs-th text-sm text-gray-500" data-field="role">Role</th> <th class="text-sm" data-field="role">Role</th>
<th class="gridjs-td gridjs-th text-sm text-gray-500" data-field="email">Email</th> <th class="text-sm" data-field="email">Email</th>
<th class="gridjs-td gridjs-th text-sm text-gray-500" data-field="name">Name</th> <th class="text-sm" data-field="name">Name</th>
<th class="gridjs-td gridjs-th text-sm text-gray-500" data-field="created_at">Created At</th>
</tr> </tr>
</thead> </thead>
<tbody class="gridjs-tbody"></tbody> <tbody class="gridjs-tbody"></tbody>

View File

@ -2,6 +2,20 @@
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HomeController; use App\Http\Controllers\HomeController;
use App\Http\Controllers\Proklim\PengajuanController;
use App\Http\Controllers\Proklim\IdentitasPengisianController;
use App\Http\Controllers\Proklim\IdentitasLokasiController;
use App\Http\Controllers\Proklim\DasarLokasiController;
use App\Http\Controllers\Proklim\PerubahanIklimController;
use App\Http\Controllers\Proklim\AdaptasiIklimController;
use App\Http\Controllers\Proklim\MitigasiIklimController;
use App\Http\Controllers\Proklim\KelembagaanMasyarakatController;
use App\Http\Controllers\Proklim\HasilPenilaianController;
use App\Http\Controllers\Master\ProvinsiController;
use App\Http\Controllers\Master\KotaController;
use App\Http\Controllers\Master\KecamatanController;
use App\Http\Controllers\Master\KabupatenController;
use App\Http\Controllers\Master\WilayahController;
use App\Http\Controllers\Management\UserController; use App\Http\Controllers\Management\UserController;
use App\Http\Controllers\Management\RoleController; use App\Http\Controllers\Management\RoleController;
use App\Http\Controllers\Management\AksesController; use App\Http\Controllers\Management\AksesController;
@ -9,6 +23,101 @@ use App\Http\Controllers\Management\AksesController;
Route::get('dashboard',[HomeController::class,'dashboard'])->name('dashboard'); Route::get('dashboard',[HomeController::class,'dashboard'])->name('dashboard');
Route::name('proklim.')->prefix('proklim')->group(function () {
Route::name('pengajuan.')->prefix('pengajuan')->group(function () {
Route::resource('/',PengajuanController::class);
Route::get('grid',[PengajuanController::class,'grid'])->name('grid');
Route::get('update/{id?}',[PengajuanController::class,'update'])->name('update');
Route::get('delete/{id?}',[PengajuanController::class,'delete'])->name('delete');
});
Route::name('identitas_pengisian.')->prefix('identitas-pengisian')->group(function () {
Route::resource('/',IdentitasPengisianController::class);
Route::get('grid',[IdentitasPengisianController::class,'grid'])->name('grid');
Route::get('update/{id?}',[IdentitasPengisianController::class,'update'])->name('update');
Route::get('delete/{id?}',[IdentitasPengisianController::class,'delete'])->name('delete');
});
Route::name('identitas_lokasi.')->prefix('identitas-lokasi')->group(function () {
Route::resource('/',IdentitasLokasiController::class);
Route::get('grid',[IdentitasLokasiController::class,'grid'])->name('grid');
Route::get('update/{id?}',[IdentitasLokasiController::class,'update'])->name('update');
Route::get('delete/{id?}',[IdentitasLokasiController::class,'delete'])->name('delete');
});
Route::name('dasar_lokasi.')->prefix('dasar-lokasi')->group(function () {
Route::resource('/',DasarLokasiController::class);
Route::get('grid',[DasarLokasiController::class,'grid'])->name('grid');
Route::get('update/{id?}',[DasarLokasiController::class,'update'])->name('update');
Route::get('delete/{id?}',[DasarLokasiController::class,'delete'])->name('delete');
});
Route::name('perubahan_iklim.')->prefix('perubahan-iklim')->group(function () {
Route::resource('/',PerubahanIklimController::class);
Route::get('grid',[PerubahanIklimController::class,'grid'])->name('grid');
Route::get('update/{id?}',[PerubahanIklimController::class,'update'])->name('update');
Route::get('delete/{id?}',[PerubahanIklimController::class,'delete'])->name('delete');
});
Route::name('adaptasi_perubahan_iklim.')->prefix('adaptasi-perubahan-iklim')->group(function () {
Route::resource('/',AdaptasiIklimController::class);
Route::get('grid',[AdaptasiIklimController::class,'grid'])->name('grid');
Route::get('update/{id?}',[AdaptasiIklimController::class,'update'])->name('update');
Route::get('delete/{id?}',[AdaptasiIklimController::class,'delete'])->name('delete');
});
Route::name('mitigasi_perubahan_iklim.')->prefix('mitigasi-perubahan-iklim')->group(function () {
Route::resource('/',MitigasiIklimController::class);
Route::get('grid',[MitigasiIklimController::class,'grid'])->name('grid');
Route::get('update/{id?}',[MitigasiIklimController::class,'update'])->name('update');
Route::get('delete/{id?}',[MitigasiIklimController::class,'delete'])->name('delete');
});
Route::name('kelembagaan_masyarakat.')->prefix('kelembagaan-masyarakat')->group(function () {
Route::resource('/',KelembagaanMasyarakatController::class);
Route::get('grid',[KelembagaanMasyarakatController::class,'grid'])->name('grid');
Route::get('update/{id?}',[KelembagaanMasyarakatController::class,'update'])->name('update');
Route::get('delete/{id?}',[KelembagaanMasyarakatController::class,'delete'])->name('delete');
});
Route::name('hasil_penilaian.')->prefix('hasil-penilaian')->group(function () {
Route::resource('/',HasilPenilaianController::class);
Route::get('grid',[HasilPenilaianController::class,'grid'])->name('grid');
Route::get('update/{id?}',[HasilPenilaianController::class,'update'])->name('update');
Route::get('delete/{id?}',[HasilPenilaianController::class,'delete'])->name('delete');
});
});
Route::name('master.')->prefix('master')->group(function () {
Route::name('provinsi.')->prefix('provinsi')->group(function () {
Route::resource('/',ProvinsiController::class);
Route::get('grid',[ProvinsiController::class,'grid'])->name('grid');
Route::get('update/{id?}',[ProvinsiController::class,'update'])->name('update');
Route::get('delete/{id?}',[ProvinsiController::class,'delete'])->name('delete');
});
Route::name('kota.')->prefix('kota')->group(function () {
Route::resource('/',KotaController::class);
Route::get('grid',[KotaController::class,'grid'])->name('grid');
Route::get('update/{id?}',[KotaController::class,'update'])->name('update');
Route::get('delete/{id?}',[KotaController::class,'delete'])->name('delete');
});
Route::name('kabupaten.')->prefix('kabupaten')->group(function () {
Route::resource('/',KabupatenController::class);
Route::get('grid',[KabupatenController::class,'grid'])->name('grid');
Route::get('update/{id?}',[KabupatenController::class,'update'])->name('update');
Route::get('delete/{id?}',[KabupatenController::class,'delete'])->name('delete');
});
Route::name('kecamatan.')->prefix('kecamatan')->group(function () {
Route::resource('/',KecamatanController::class);
Route::get('grid',[KecamatanController::class,'grid'])->name('grid');
Route::get('update/{id?}',[KecamatanController::class,'update'])->name('update');
Route::get('delete/{id?}',[KecamatanController::class,'delete'])->name('delete');
});
Route::name('wilayah.')->prefix('wilayah')->group(function () {
Route::resource('/',WilayahController::class);
Route::get('grid',[WilayahController::class,'grid'])->name('grid');
Route::get('update/{id?}',[WilayahController::class,'update'])->name('update');
Route::get('delete/{id?}',[WilayahController::class,'delete'])->name('delete');
});
});
Route::name('management.')->prefix('management')->group(function () { Route::name('management.')->prefix('management')->group(function () {
Route::name('user.')->prefix('user')->group(function () { Route::name('user.')->prefix('user')->group(function () {
Route::resource('/',UserController::class); Route::resource('/',UserController::class);

View File

@ -9,7 +9,9 @@ use App\Http\Controllers\Auth\CustomLoginController;
use App\Http\Controllers\Auth\CustomRegisterController; use App\Http\Controllers\Auth\CustomRegisterController;
Route::get('/', function () { return view('welcome'); }); Route::get('/', function () {
return redirect('login');
});
Route::get('/login', [CustomLoginController::class,'index'])->name('login.login'); Route::get('/login', [CustomLoginController::class,'index'])->name('login.login');
Route::post('login',[CustomLoginController::class,'post_login'])->name('post_login'); Route::post('login',[CustomLoginController::class,'post_login'])->name('post_login');
@ -29,15 +31,15 @@ Route::middleware(Session::class)->name('modules.')->group(function () {
// Route::get('/home', [HomeController::class, 'home'])->name('landing-page.home'); // Route::get('/home', [HomeController::class, 'home'])->name('landing-page.home');
// Route::get('/dashboard-admin', [HomeController::class, 'dashboard'])->name('admin.dashboard-admin.dashboard'); // Route::get('/dashboard-admin', [HomeController::class, 'dashboard'])->name('admin.dashboard-admin.dashboard');
// Route::get('/admin', [HomeController::class, 'admin'])->name('admin.admin'); // Route::get('/admin', [HomeController::class, 'admin'])->name('admin.admin');
// Route::get('/profile', [HomeController::class, 'profile'])->name('admin.profile.profile'); Route::get('/profile', [HomeController::class, 'profile'])->name('admin.profile.profile');
// Route::get('/identitas_lokasi', [HomeController::class, 'identitas_lokasi'])->name('admin.identitas_lokasi.identitas_lokasi'); Route::get('/identitas_lokasi', [HomeController::class, 'identitas_lokasi'])->name('admin.identitas_lokasi.identitas_lokasi');
// Route::get('/data_dasar', [HomeController::class, 'data_dasar'])->name('admin.data_dasar.data_dasar'); Route::get('/data_dasar', [HomeController::class, 'data_dasar'])->name('admin.data_dasar.data_dasar');
// Route::get('/informasi_perubahan', [HomeController::class, 'informasi_perubahan'])->name('admin.informasi_perubahan.informasi_perubahan'); Route::get('/informasi_perubahan', [HomeController::class, 'informasi_perubahan'])->name('admin.informasi_perubahan.informasi_perubahan');
// Route::get('/adaptasi_perubahan', [HomeController::class, 'adaptasi_perubahan'])->name('admin.adaptasi_perubahan.adaptasi_perubahan'); Route::get('/adaptasi_perubahan', [HomeController::class, 'adaptasi_perubahan'])->name('admin.adaptasi_perubahan.adaptasi_perubahan');
// Route::get('/mitigasi_perubahan', [HomeController::class, 'mitigasi_perubahan'])->name('admin.mitigasi.mitigasi_perubahan'); Route::get('/mitigasi_perubahan', [HomeController::class, 'mitigasi_perubahan'])->name('admin.mitigasi.mitigasi_perubahan');
// Route::get('/kelembagaan_masyarakat', [HomeController::class, 'kelembagaan_masyarakat'])->name('admin.kelembagaan_masyarakat.kelembagaan_masyarakat'); Route::get('/kelembagaan_masyarakat', [HomeController::class, 'kelembagaan_masyarakat'])->name('admin.kelembagaan_masyarakat.kelembagaan_masyarakat');
// Route::get('/dashboard-admin2', [HomeController::class, 'dashboard2'])->name('admin.dashboard-admin.dashboard2'); Route::get('/dashboard-admin2', [HomeController::class, 'dashboard2'])->name('admin.dashboard-admin.dashboard2');
// Route::get('/verifikasi_final', [HomeController::class, 'verifikasi_final'])->name('admin.verifikasi_final.verifikasi_final'); Route::get('/verifikasi_final', [HomeController::class, 'verifikasi_final'])->name('admin.verifikasi_final.verifikasi_final');
// Auth::routes(); // Auth::routes();
// Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home'); // Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');