fully translateable backend
This commit is contained in:
parent
88eafb72c5
commit
70828b6d48
12 changed files with 507 additions and 414 deletions
|
@ -61,6 +61,7 @@
|
|||
"Minimum": "Mindest",
|
||||
"IO": "IO",
|
||||
"Databases": "Datenbanken",
|
||||
"Database": "Datenbank",
|
||||
"Backups": "Backups",
|
||||
"Allocations": "Port Zuweisungen",
|
||||
"Disabled": "Deaktiviert",
|
||||
|
@ -97,8 +98,52 @@
|
|||
|
||||
"Active": "Aktiv",
|
||||
"Paypal is not configured.": "Paypal ist nicht konfiguriert!",
|
||||
"To configure PayPal, head to the .env and add your PayPal’s client id and secret.": "Um Paypal zu konfigurieren, füge deine Paypal client ID und Secretkey in deine .env-Datei hinzu"
|
||||
"To configure PayPal, head to the .env and add your PayPal’s client id and secret.": "Um Paypal zu konfigurieren, füge deine Paypal client ID und Secretkey in deine .env-Datei hinzu",
|
||||
|
||||
"Useful Links": "Nützliche Links",
|
||||
"Icon class name": "Icon Klassen-Name",
|
||||
"You can find available free icons": "Hier gibt es kostenlose Icons",
|
||||
"Title": "Titel",
|
||||
"Link": "Link",
|
||||
|
||||
"Username": "Username",
|
||||
"Email": "E-Mail",
|
||||
"Pterodactly ID": "Pterodactyl ID",
|
||||
"Server Limit": "Serverlimit",
|
||||
"Role": "Rolle",
|
||||
"Administrator": "Administrator",
|
||||
"Client": "Client",
|
||||
"Member": "Member",
|
||||
"New Password": "Neues Passwort",
|
||||
"Confirm Password": "Passwort bestätigen",
|
||||
"This ID refers to the user account created on pterodactyls panel.": "Die ist die Pterodactyl-ID des Users",
|
||||
"Only edit this if you know what youre doing :)": "Bearbeite dies nur, wenn du weißt, was du tust :)",
|
||||
|
||||
"Verified": "Verifiziert",
|
||||
"Last seen": "Zuletzt online",
|
||||
"Notify": "Benachrichtigen",
|
||||
|
||||
"All": "Alle",
|
||||
"Send via": "Senden via",
|
||||
"Content": "Inhalt",
|
||||
"Notifications": "Benachrichtigungen",
|
||||
|
||||
"Usage": "Nutzung",
|
||||
|
||||
"Config": "Konfiguration",
|
||||
|
||||
"Vouchers": "Gutscheine",
|
||||
"Voucher details": "Gutschein details",
|
||||
"Memo": "Name",
|
||||
"Code": "Code",
|
||||
"Uses": "Benutzungen",
|
||||
"Expires at": "Läuft ab am",
|
||||
"Max": "Max",
|
||||
"Random": "Zufällig",
|
||||
|
||||
"Status": "Status",
|
||||
"Used / Uses": "Benutzungen",
|
||||
"Expires": "Ablauf"
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -6,13 +6,15 @@
|
|||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1>Useful Links</h1>
|
||||
<h1>{{__('Useful Links')}}</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">Dashboard</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{route('admin.usefullinks.index')}}">Useful Links</a></li>
|
||||
<li class="breadcrumb-item"><a class="text-muted" href="{{route('admin.usefullinks.create')}}">Create</a>
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">{{__('Dashboard')}}</a></li>
|
||||
<li class="breadcrumb-item"><a
|
||||
href="{{route('admin.usefullinks.index')}}">{{__('Useful Links')}}</a></li>
|
||||
<li class="breadcrumb-item"><a class="text-muted"
|
||||
href="{{route('admin.usefullinks.create')}}">{{__('Create')}}</a>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
|
@ -34,15 +36,15 @@
|
|||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="icon">Icon class name</label>
|
||||
<label for="icon">{{__('Icon class name')}}</label>
|
||||
<input value="{{old('icon')}}" id="icon" name="icon"
|
||||
type="text"
|
||||
placeholder="fas fa-user"
|
||||
class="form-control @error('icon') is-invalid @enderror"
|
||||
required="required">
|
||||
<div class="text-muted">
|
||||
You can find available free icons <a target="_blank"
|
||||
href="https://fontawesome.com/v5.15/icons?d=gallery&p=2">here</a>
|
||||
{{__('You can find available free icons')}} <a target="_blank"
|
||||
href="https://fontawesome.com/v5.15/icons?d=gallery&p=2">here</a>
|
||||
</div>
|
||||
@error('icon')
|
||||
<div class="invalid-feedback">
|
||||
|
@ -52,7 +54,7 @@
|
|||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="title">Title</label>
|
||||
<label for="title">{{__('Title')}}</label>
|
||||
<input value="{{old('title')}}" id="title" name="title"
|
||||
type="text"
|
||||
class="form-control @error('title') is-invalid @enderror"
|
||||
|
@ -65,7 +67,7 @@
|
|||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="link">Link</label>
|
||||
<label for="link">{{__('Link')}}</label>
|
||||
<input value="{{old('link')}}" id="link" name="link"
|
||||
type="text"
|
||||
class="form-control @error('link') is-invalid @enderror"
|
||||
|
@ -78,7 +80,7 @@
|
|||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="description">Description</label>
|
||||
<label for="description">{{__('Description')}}</label>
|
||||
<textarea id="description"
|
||||
name="description"
|
||||
type="text"
|
||||
|
@ -95,7 +97,7 @@
|
|||
|
||||
<div class="form-group text-right">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
Submit
|
||||
{{__('Submit')}}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
@ -109,19 +111,19 @@
|
|||
<!-- END CONTENT -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', (event) => {
|
||||
// Summernote
|
||||
// Summernote
|
||||
$('#description').summernote({
|
||||
height: 100,
|
||||
toolbar: [
|
||||
[ 'style', [ 'style' ] ],
|
||||
[ 'font', [ 'bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript', 'clear'] ],
|
||||
[ 'fontname', [ 'fontname' ] ],
|
||||
[ 'fontsize', [ 'fontsize' ] ],
|
||||
[ 'color', [ 'color' ] ],
|
||||
[ 'para', [ 'ol', 'ul', 'paragraph', 'height' ] ],
|
||||
[ 'table', [ 'table' ] ],
|
||||
[ 'insert', [ 'link'] ],
|
||||
[ 'view', [ 'undo', 'redo', 'fullscreen', 'codeview', 'help' ] ]
|
||||
['style', ['style']],
|
||||
['font', ['bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript', 'clear']],
|
||||
['fontname', ['fontname']],
|
||||
['fontsize', ['fontsize']],
|
||||
['color', ['color']],
|
||||
['para', ['ol', 'ul', 'paragraph', 'height']],
|
||||
['table', ['table']],
|
||||
['insert', ['link']],
|
||||
['view', ['undo', 'redo', 'fullscreen', 'codeview', 'help']]
|
||||
]
|
||||
})
|
||||
})
|
||||
|
|
|
@ -6,13 +6,15 @@
|
|||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1>Useful Links</h1>
|
||||
<h1>{{__('Useful Links')}}</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">Dashboard</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{route('admin.usefullinks.index')}}">Useful Links</a></li>
|
||||
<li class="breadcrumb-item"><a class="text-muted" href="{{route('admin.usefullinks.edit' , $link->id)}}">Edit</a>
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">{{__('Dashboard')}}</a></li>
|
||||
<li class="breadcrumb-item"><a
|
||||
href="{{route('admin.usefullinks.index')}}">{{__('Useful Links')}}</a></li>
|
||||
<li class="breadcrumb-item"><a class="text-muted"
|
||||
href="{{route('admin.usefullinks.edit' , $link->id)}}">{{__('Edit')}}</a>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
|
@ -35,15 +37,15 @@
|
|||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="icon">Icon class name</label>
|
||||
<label for="icon">{{__('Icon class name')}}</label>
|
||||
<input value="{{$link->icon}}" id="icon" name="icon"
|
||||
type="text"
|
||||
placeholder="fas fa-user"
|
||||
class="form-control @error('icon') is-invalid @enderror"
|
||||
required="required">
|
||||
<div class="text-muted">
|
||||
You can find available free icons <a target="_blank"
|
||||
href="https://fontawesome.com/v5.15/icons?d=gallery&p=2">here</a>
|
||||
{{__('You can find available free icons')}} <a target="_blank"
|
||||
href="https://fontawesome.com/v5.15/icons?d=gallery&p=2">here</a>
|
||||
</div>
|
||||
@error('icon')
|
||||
<div class="invalid-feedback">
|
||||
|
@ -53,7 +55,7 @@
|
|||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="title">Title</label>
|
||||
<label for="title">{{__('Title')}}</label>
|
||||
<input value="{{$link->title}}" id="title" name="title"
|
||||
type="text"
|
||||
class="form-control @error('title') is-invalid @enderror"
|
||||
|
@ -66,7 +68,7 @@
|
|||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="link">Link</label>
|
||||
<label for="link">{{__('Link')}}</label>
|
||||
<input value="{{$link->link}}" id="link" name="link"
|
||||
type="text"
|
||||
class="form-control @error('link') is-invalid @enderror"
|
||||
|
@ -79,7 +81,7 @@
|
|||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="description">Description</label>
|
||||
<label for="description">{{__('Description')}}</label>
|
||||
<textarea id="description"
|
||||
name="description"
|
||||
type="text"
|
||||
|
@ -94,10 +96,9 @@
|
|||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group text-right">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
Submit
|
||||
{{__('Submit')}}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
@ -112,19 +113,19 @@
|
|||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', (event) => {
|
||||
// Summernote
|
||||
// Summernote
|
||||
$('#description').summernote({
|
||||
height: 100,
|
||||
toolbar: [
|
||||
[ 'style', [ 'style' ] ],
|
||||
[ 'font', [ 'bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript', 'clear'] ],
|
||||
[ 'fontname', [ 'fontname' ] ],
|
||||
[ 'fontsize', [ 'fontsize' ] ],
|
||||
[ 'color', [ 'color' ] ],
|
||||
[ 'para', [ 'ol', 'ul', 'paragraph', 'height' ] ],
|
||||
[ 'table', [ 'table' ] ],
|
||||
[ 'insert', [ 'link'] ],
|
||||
[ 'view', [ 'undo', 'redo', 'fullscreen', 'codeview', 'help' ] ]
|
||||
['style', ['style']],
|
||||
['font', ['bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript', 'clear']],
|
||||
['fontname', ['fontname']],
|
||||
['fontsize', ['fontsize']],
|
||||
['color', ['color']],
|
||||
['para', ['ol', 'ul', 'paragraph', 'height']],
|
||||
['table', ['table']],
|
||||
['insert', ['link']],
|
||||
['view', ['undo', 'redo', 'fullscreen', 'codeview', 'help']]
|
||||
]
|
||||
})
|
||||
})
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1>Useful Links</h1>
|
||||
<h1>{{__('Useful Links')}}</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">Dashboard</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">{{__('Dashboard')}}</a></li>
|
||||
<li class="breadcrumb-item"><a class="text-muted"
|
||||
href="{{route('admin.usefullinks.index')}}">Useful Links</a></li>
|
||||
href="{{route('admin.usefullinks.index')}}">{{__('Useful Links')}}</a></li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -27,9 +27,9 @@
|
|||
|
||||
<div class="card-header">
|
||||
<div class="d-flex justify-content-between">
|
||||
<h5 class="card-title"><i class="fas fa-sliders-h mr-2"></i>Useful Links</h5>
|
||||
<h5 class="card-title"><i class="fas fa-sliders-h mr-2"></i>{{__('Useful Links')}}</h5>
|
||||
<a href="{{route('admin.usefullinks.create')}}" class="btn btn-sm btn-primary"><i
|
||||
class="fas fa-plus mr-1"></i>Create new</a>
|
||||
class="fas fa-plus mr-1"></i>{{__('Create new')}}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -37,11 +37,11 @@
|
|||
<table id="datatable" class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>description</th>
|
||||
<th width="50">Icon</th>
|
||||
<th>Title</th>
|
||||
<th>Link</th>
|
||||
<th>Created at</th>
|
||||
<th>{{__('description')}}</th>
|
||||
<th width="50">{{__('Icon')}}</th>
|
||||
<th>{{__('Title')}}</th>
|
||||
<th>{{__('Link')}}</th>
|
||||
<th>{{__('Created at')}}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
@ -61,7 +61,7 @@
|
|||
|
||||
<script>
|
||||
function submitResult() {
|
||||
return confirm("Are you sure you wish to delete?") !== false;
|
||||
return confirm("{{__('Are you sure you wish to delete?')}}") !== false;
|
||||
}
|
||||
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1>Users</h1>
|
||||
<h1>{{__('Users')}}</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">Dashboard</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{route('admin.users.index')}}">Users</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">{{__('Dashboard')}}</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{route('admin.users.index')}}">{{__('Users')}}</a></li>
|
||||
<li class="breadcrumb-item"><a class="text-muted"
|
||||
href="{{route('admin.users.edit' , $user->id)}}">Edit</a></li>
|
||||
href="{{route('admin.users.edit' , $user->id)}}">{{__('Edit')}}</a></li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -33,7 +33,7 @@
|
|||
@csrf
|
||||
@method('PATCH')
|
||||
<div class="form-group">
|
||||
<label for="name">Username</label>
|
||||
<label for="name">{{__('Username')}}</label>
|
||||
<input value="{{$user->name}}" id="name" name="name" type="text"
|
||||
class="form-control @error('name') is-invalid @enderror" required="required">
|
||||
@error('name')
|
||||
|
@ -43,7 +43,7 @@
|
|||
@enderror
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="email">Email</label>
|
||||
<label for="email">{{__('Email')}}</label>
|
||||
<input value="{{$user->email}}" id="email" name="email" type="text"
|
||||
class="form-control @error('email') is-invalid @enderror"
|
||||
required="required">
|
||||
|
@ -54,7 +54,7 @@
|
|||
@enderror
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="pterodactyl_id">Pterodactyl ID</label>
|
||||
<label for="pterodactyl_id">{{__('Pterodactyl ID')}}</label>
|
||||
<input value="{{$user->pterodactyl_id}}" id="pterodactyl_id" name="pterodactyl_id"
|
||||
type="number"
|
||||
class="form-control @error('pterodactyl_id') is-invalid @enderror"
|
||||
|
@ -65,8 +65,8 @@
|
|||
</div>
|
||||
@enderror
|
||||
<div class="text-muted">
|
||||
This ID refers to the user account created on pterodactyl's panel. <br>
|
||||
<small>Only edit this if you know what you're doing :)</small>
|
||||
{{__('This ID refers to the user account created on pterodactyls panel.')}} <br>
|
||||
<small>{{__('Only edit this if you know what youre doing :)')}}</small>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -82,7 +82,7 @@
|
|||
@enderror
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="server_limit">Server Limit</label>
|
||||
<label for="server_limit">{{__('Server Limit')}}</label>
|
||||
<input value="{{$user->server_limit}}" id="server_limit" name="server_limit" min="0"
|
||||
max="1000000"
|
||||
type="number"
|
||||
|
@ -95,33 +95,33 @@
|
|||
@enderror
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="role">Role</label>
|
||||
<label for="role">{{__('Role')}}</label>
|
||||
<div>
|
||||
<select id="role" name="role"
|
||||
class="custom-select @error('role') is-invalid @enderror"
|
||||
required="required">
|
||||
<option @if($user->role == 'admin') selected @endif class="text-danger"
|
||||
value="admin">
|
||||
Administrator
|
||||
</option>
|
||||
<option @if($user->role == 'client') selected @endif class="text-success"
|
||||
value="client">
|
||||
Client
|
||||
</option>
|
||||
<option @if($user->role == 'member') selected @endif class="text-secondary"
|
||||
value="member">
|
||||
Member
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
@error('role')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
{{__(' Administrator')}}
|
||||
</option>
|
||||
<option @if($user->role == 'client') selected @endif class="text-success"
|
||||
value="client">
|
||||
{{__('Client')}}
|
||||
</option>
|
||||
<option @if($user->role == 'member') selected @endif class="text-secondary"
|
||||
value="member">
|
||||
{{__('Member')}}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
@error('role')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="form-group text-right">
|
||||
<button type="submit" class="btn btn-primary">Submit</button>
|
||||
<button type="submit" class="btn btn-primary">{{__('Submit')}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -130,7 +130,7 @@
|
|||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="col">
|
||||
<div class="form-group"><label>New Password</label> <input
|
||||
<div class="form-group"><label>{{__('New Password')}}</label> <input
|
||||
class="form-control @error('new_password') is-invalid @enderror"
|
||||
name="new_password" type="password" placeholder="••••••">
|
||||
|
||||
|
@ -142,7 +142,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="form-group"><label>Confirm Password</label>
|
||||
<div class="form-group"><label>{{__('Confirm Password')}}</label>
|
||||
<input
|
||||
class="form-control @error('new_password_confirmation') is-invalid @enderror"
|
||||
name="new_password_confirmation" type="password"
|
||||
|
|
|
@ -6,12 +6,12 @@
|
|||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1>Users</h1>
|
||||
<h1>{{__('Users')}}</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">Dashboard</a></li>
|
||||
<li class="breadcrumb-item"><a class="text-muted" href="{{route('admin.users.index')}}">Users</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">{{__('Dashboard')}}</a></li>
|
||||
<li class="breadcrumb-item"><a class="text-muted" href="{{route('admin.users.index')}}">{{__('Users')}}</a></li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -27,9 +27,9 @@
|
|||
|
||||
<div class="card-header">
|
||||
<div class="d-flex justify-content-between">
|
||||
<h5 class="card-title"><i class="fas fa-users mr-2"></i>Users</h5>
|
||||
<h5 class="card-title"><i class="fas fa-users mr-2"></i>{{__('Users')}}</h5>
|
||||
<a href="{{route('admin.users.notifications')}}" class="btn btn-sm btn-primary"><i
|
||||
class="fas fa-paper-plane mr-1"></i>Notify</a>
|
||||
class="fas fa-paper-plane mr-1"></i>{{__('Notify')}}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -41,14 +41,14 @@
|
|||
<th>discordId</th>
|
||||
<th>ip</th>
|
||||
<th>pterodactyl_id</th>
|
||||
<th>Avatar</th>
|
||||
<th>Name</th>
|
||||
<th>Role</th>
|
||||
<th>Email</th>
|
||||
<th>{{__('Avatar')}}</th>
|
||||
<th>{{__('Name')}}</th>
|
||||
<th>{{__('Role')}}</th>
|
||||
<th>{{__('Email')}}</th>
|
||||
<th>{{CREDITS_DISPLAY_NAME}}</th>
|
||||
<th>Servers</th>
|
||||
<th>Verified</th>
|
||||
<th>Last seen</th>
|
||||
<th>{{__('Servers')}}</th>
|
||||
<th>{{__('Verified')}}</th>
|
||||
<th>{{__('Last seen')}}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
|
@ -5,14 +5,14 @@
|
|||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1>Users</h1>
|
||||
<h1>{{__('Users')}}</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">Dashboard</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{route('admin.users.index')}}">Users</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">{{__('Dashboard')}}</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{route('admin.users.index')}}">{{__('Users')}}</a></li>
|
||||
<li class="breadcrumb-item"><a class="text-muted"
|
||||
href="{{route('admin.users.notifications')}}">Notifications</a></li>
|
||||
href="{{route('admin.users.notifications')}}">{{__('Notifications')}}</a></li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -33,11 +33,11 @@
|
|||
@method('POST')
|
||||
|
||||
<div class="form-group">
|
||||
<label>Users</label><br>
|
||||
<label>{{__('Users')}}</label><br>
|
||||
<input id="all" name="all"
|
||||
type="checkbox" value="1"
|
||||
onchange="toggleClass('users-form', 'd-none')">
|
||||
<label for="all">All</label>
|
||||
<label for="all">{{__('All')}}</label>
|
||||
<div id="users-form">
|
||||
<select id="users" name="users[]" class="form-control" multiple></select>
|
||||
</div>
|
||||
|
@ -54,14 +54,14 @@
|
|||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Send via</label><br>
|
||||
<label>{{__('Send via')}}</label><br>
|
||||
<input value="database" id="database" name="via[]"
|
||||
type="checkbox">
|
||||
<label for="database">Database</label>
|
||||
<label for="database">{{__('Database')}}</label>
|
||||
<br>
|
||||
<input value="mail" id="mail" name="via[]"
|
||||
type="checkbox">
|
||||
<label for="mail">Mail</label>
|
||||
<label for="mail">{{__('Email')}}</label>
|
||||
@error('via')
|
||||
<div class="invalid-feedback d-block">
|
||||
{{$message}}
|
||||
|
@ -70,7 +70,7 @@
|
|||
</div>
|
||||
|
||||
<div class="form-group" >
|
||||
<label for="title">Title</label>
|
||||
<label for="title">{{__('Title')}}</label>
|
||||
<input value="{{old('title')}}" id="title" name="title"
|
||||
type="text"
|
||||
class="form-control @error('title') is-invalid @enderror">
|
||||
|
@ -81,7 +81,7 @@
|
|||
@enderror
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="content">Content</label>
|
||||
<label for="content">{{__('Content')}}</label>
|
||||
<textarea id="content"
|
||||
name="content"
|
||||
type="content"
|
||||
|
@ -95,7 +95,7 @@
|
|||
@enderror
|
||||
</div>
|
||||
<div class="form-group text-right">
|
||||
<button type="submit" class="btn btn-primary">Submit</button>
|
||||
<button type="submit" class="btn btn-primary">{{__('Submit')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
@ -162,7 +162,7 @@
|
|||
$container.find(".select2-result-users__username").text(data.name);
|
||||
$container.find(".select2-result-users__email").text(data.email);
|
||||
|
||||
return $container;
|
||||
return $container;
|
||||
},
|
||||
templateSelection: function (data) {
|
||||
$container = $('<div> \
|
||||
|
@ -172,7 +172,7 @@
|
|||
<span class="select2-selection-users__username" style="padding-left:10px;padding-right:10px;"></span> \
|
||||
</div>');
|
||||
$container.find(".select2-selection-users__username").text(data.name);
|
||||
return $container;
|
||||
return $container;
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1>Users</h1>
|
||||
<h1{{__('Users')}}</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">Dashboard</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{route('admin.users.index')}}">Users</a></li>
|
||||
<li class="breadcrumb-item"><a class="text-muted" href="{{route('admin.users.show' , $user->id)}}">Show</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">{{__('Dashboard')}}</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{route('admin.users.index')}}">{{__('Users')}}</a></li>
|
||||
<li class="breadcrumb-item"><a class="text-muted" href="{{route('admin.users.show' , $user->id)}}">{{__('Show')}}</a></li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -47,7 +47,7 @@
|
|||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="card-title"><i class="fas fa-users mr-2"></i>Users</h5>
|
||||
<h5 class="card-title"><i class="fas fa-users mr-2"></i>{{__('Users')}}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
|
@ -55,7 +55,7 @@
|
|||
<div class="col-lg-6">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<label>ID</label>
|
||||
<label>{{__('ID')}}</label>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<span style="max-width: 250px;" class="d-inline-block text-truncate">
|
||||
|
@ -68,7 +68,7 @@
|
|||
<div class="col-lg-6">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<label>Role</label>
|
||||
<label>{{__('Role')}}</label>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<span style="max-width: 250px;"
|
||||
|
@ -82,7 +82,7 @@
|
|||
<div class="col-lg-6">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<label>Pterodactyl ID</label>
|
||||
<label>{{__('Pterodactyl ID')}}</label>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<span style="max-width: 250px;" class="d-inline-block text-truncate">
|
||||
|
@ -95,7 +95,7 @@
|
|||
<div class="col-lg-6">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<label>Email</label>
|
||||
<label>{{__('Email')}}</label>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<span style="max-width: 250px;" class="d-inline-block text-truncate">
|
||||
|
@ -109,7 +109,7 @@
|
|||
<div class="col-lg-6">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<label>Server limit</label>
|
||||
<label>{{__('Server limit')}}</label>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<span style="max-width: 250px;" class="d-inline-block text-truncate">
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="col-lg-6">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<label>Name</label>
|
||||
<label>{{__('Name')}}</label>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<span style="max-width: 250px;" class="d-inline-block text-truncate">
|
||||
|
@ -135,7 +135,7 @@
|
|||
<div class="col-lg-6">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<label>Verified Email</label>
|
||||
<label>{{__('Verified')}} {{__('Email')}}</label>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<span style="max-width: 250px;" class="d-inline-block text-truncate">
|
||||
|
@ -161,7 +161,7 @@
|
|||
<div class="col-lg-6">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<label>Verified Discord</label>
|
||||
<label>{{__('Verified')}} {{__('Discord')}}</label>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<span style="max-width: 250px;" class="d-inline-block text-truncate">
|
||||
|
@ -174,7 +174,7 @@
|
|||
<div class="col-lg-6">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<label>Usage</label>
|
||||
<label>{{__('Usage')}}</label>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<span style="max-width: 250px;" class="d-inline-block text-truncate">
|
||||
|
@ -188,7 +188,7 @@
|
|||
<div class="col-lg-6">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<label>IP</label>
|
||||
<label>{{__('IP')}}</label>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<span style="max-width: 250px;" class="d-inline-block text-truncate">
|
||||
|
@ -201,7 +201,7 @@
|
|||
<div class="col-lg-6">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<label>Created At</label>
|
||||
<label>{{__('Created at')}}</label>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<span style="max-width: 250px;" class="d-inline-block text-truncate">
|
||||
|
@ -217,7 +217,7 @@
|
|||
<div class="col-lg-6">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<label>Last seen</label>
|
||||
<label>{{__('Last seen')}}</label>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<span style="max-width: 250px;" class="d-inline-block text-truncate">
|
||||
|
@ -237,7 +237,7 @@
|
|||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="card-title"><i class="fas fa-server mr-2"></i>Servers</h5>
|
||||
<h5 class="card-title"><i class="fas fa-server mr-2"></i>{{__('Servers')}}</h5>
|
||||
</div>
|
||||
<div class="card-body table-responsive">
|
||||
|
||||
|
|
|
@ -1,170 +1,192 @@
|
|||
@extends('layouts.main')
|
||||
|
||||
@section('content')
|
||||
<!-- CONTENT HEADER -->
|
||||
<section class="content-header">
|
||||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1>Vouchers</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">Dashboard</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{route('admin.vouchers.index')}}">Vouchers</a></li>
|
||||
<li class="breadcrumb-item"><a class="text-muted" href="{{route('admin.products.create')}}">Create</a>
|
||||
</li>
|
||||
</ol>
|
||||
<!-- CONTENT HEADER -->
|
||||
<section class="content-header">
|
||||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1>{{__('Vouchers')}}</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">{{__('Dashboard')}}</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{route('admin.vouchers.index')}}">{{__('Vouchers')}}</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item"><a class="text-muted"
|
||||
href="{{route('admin.products.create')}}">{{__('Create')}}</a>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- END CONTENT HEADER -->
|
||||
</section>
|
||||
<!-- END CONTENT HEADER -->
|
||||
|
||||
<!-- MAIN CONTENT -->
|
||||
<section class="content">
|
||||
<div class="container-fluid">
|
||||
<!-- MAIN CONTENT -->
|
||||
<section class="content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="card-title">
|
||||
<i class="fas fa-money-check-alt mr-2"></i>Voucher details
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form action="{{route('admin.vouchers.store')}}" method="POST">
|
||||
@csrf
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="card-title">
|
||||
<i class="fas fa-money-check-alt mr-2"></i>{{__('Voucher details')}}
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form action="{{route('admin.vouchers.store')}}" method="POST">
|
||||
@csrf
|
||||
|
||||
<div class="form-group">
|
||||
<label for="memo">Memo <i data-toggle="popover" data-trigger="hover" data-content="Only admins can see this" class="fas fa-info-circle"></i></label>
|
||||
<input value="{{old('memo')}}" placeholder="Summer break voucher" id="memo" name="memo" type="text" class="form-control @error('memo') is-invalid @enderror">
|
||||
@error('memo')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
<div class="form-group">
|
||||
<label for="memo">{{__('Memo')}} <i data-toggle="popover" data-trigger="hover"
|
||||
data-content="Only admins can see this"
|
||||
class="fas fa-info-circle"></i></label>
|
||||
<input value="{{old('memo')}}" placeholder="{{__('Summer break voucher')}}" id="memo"
|
||||
name="memo" type="text"
|
||||
class="form-control @error('memo') is-invalid @enderror">
|
||||
@error('memo')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="credits">* {{CREDITS_DISPLAY_NAME}}</label>
|
||||
<input value="{{old('credits')}}" placeholder="500" id="credits" name="credits" type="number" step="any" min="0" max="99999999" class="form-control @error('credits') is-invalid @enderror">
|
||||
@error('credits')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
<div class="form-group">
|
||||
<label for="credits">* {{CREDITS_DISPLAY_NAME}}</label>
|
||||
<input value="{{old('credits')}}" placeholder="500" id="credits" name="credits"
|
||||
type="number" step="any" min="0" max="99999999"
|
||||
class="form-control @error('credits') is-invalid @enderror">
|
||||
@error('credits')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="code">* Code</label>
|
||||
<div class="input-group">
|
||||
<input value="{{old('code')}}" placeholder="SUMMER" id="code" name="code" type="text" class="form-control @error('code') is-invalid @enderror" required="required">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-info" onclick="setRandomCode()" type="button">
|
||||
Random
|
||||
<div class="form-group">
|
||||
<label for="code">* {{__('Code')}}</label>
|
||||
<div class="input-group">
|
||||
<input value="{{old('code')}}" placeholder="SUMMER" id="code" name="code"
|
||||
type="text" class="form-control @error('code') is-invalid @enderror"
|
||||
required="required">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-info" onclick="setRandomCode()" type="button">
|
||||
{{__('Random')}}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@error('code')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="uses">* Uses <i data-toggle="popover" data-trigger="hover" data-content="A voucher can only be used one time per user. Uses specifies the number of different users that can use this voucher." class="fas fa-info-circle"></i></label>
|
||||
<div class="input-group">
|
||||
<input value="{{old('uses') ?? 1}}" id="uses" min="1" max="2147483647" name="uses" type="number" class="form-control @error('uses') is-invalid @enderror" required="required">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-info" onclick="setMaxUses()" type="button">Max
|
||||
</button>
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
@error('uses')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group mb-3">
|
||||
<label for="expires_at">Expires at <i data-toggle="popover" data-trigger="hover" data-content="Timezone: {{ Config::get('app.timezone') }}" class="fas fa-info-circle"></i></label>
|
||||
<div class="input-group date" id="expires_at" data-target-input="nearest">
|
||||
<input value="{{old('expires_at')}}" name="expires_at" placeholder="dd-mm-yyyy hh:mm:ss" type="text" class="form-control @error('expires_at') is-invalid @enderror datetimepicker-input" data-target="#expires_at" />
|
||||
<div class="input-group-append" data-target="#expires_at" data-toggle="datetimepicker">
|
||||
<div class="input-group-text"><i class="fa fa-calendar"></i></div>
|
||||
<div class="form-group">
|
||||
<label for="uses">* {{__('Uses')}} <i data-toggle="popover" data-trigger="hover"
|
||||
data-content="{{__('A voucher can only be used one time per user. Uses specifies the number of different users that can use this voucher.')}}"
|
||||
class="fas fa-info-circle"></i></label>
|
||||
<div class="input-group">
|
||||
<input value="{{old('uses') ?? 1}}" id="uses" min="1" max="2147483647"
|
||||
name="uses" type="number"
|
||||
class="form-control @error('uses') is-invalid @enderror"
|
||||
required="required">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-info" onclick="setMaxUses()" type="button">{{__('Max')}}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@error('uses')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
@error('expires_at')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group text-right">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
Submit
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<div class="form-group mb-3">
|
||||
<label for="expires_at">{{__('Expires at')}} <i data-toggle="popover"
|
||||
data-trigger="hover"
|
||||
data-content="Timezone: {{ Config::get('app.timezone') }}"
|
||||
class="fas fa-info-circle"></i></label>
|
||||
<div class="input-group date" id="expires_at" data-target-input="nearest">
|
||||
<input value="{{old('expires_at')}}" name="expires_at"
|
||||
placeholder="dd-mm-yyyy hh:mm:ss" type="text"
|
||||
class="form-control @error('expires_at') is-invalid @enderror datetimepicker-input"
|
||||
data-target="#expires_at"/>
|
||||
<div class="input-group-append" data-target="#expires_at"
|
||||
data-toggle="datetimepicker">
|
||||
<div class="input-group-text"><i class="fa fa-calendar"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
@error('expires_at')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group text-right">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
{{__('Submit')}}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<i class="fas"></i>
|
||||
|
||||
</div>
|
||||
|
||||
<i class="fas"></i>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<!-- END CONTENT -->
|
||||
</section>
|
||||
<!-- END CONTENT -->
|
||||
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', (event) => {
|
||||
$('#expires_at').datetimepicker({
|
||||
format: 'DD-MM-yyyy HH:mm:ss',
|
||||
icons: {
|
||||
time: 'far fa-clock',
|
||||
date: 'far fa-calendar',
|
||||
up: 'fas fa-arrow-up',
|
||||
down: 'fas fa-arrow-down',
|
||||
previous: 'fas fa-chevron-left',
|
||||
next: 'fas fa-chevron-right',
|
||||
today: 'fas fa-calendar-check',
|
||||
clear: 'far fa-trash-alt',
|
||||
close: 'far fa-times-circle'
|
||||
}
|
||||
});
|
||||
})
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', (event) => {
|
||||
$('#expires_at').datetimepicker({
|
||||
format: 'DD-MM-yyyy HH:mm:ss',
|
||||
icons: {
|
||||
time: 'far fa-clock',
|
||||
date: 'far fa-calendar',
|
||||
up: 'fas fa-arrow-up',
|
||||
down: 'fas fa-arrow-down',
|
||||
previous: 'fas fa-chevron-left',
|
||||
next: 'fas fa-chevron-right',
|
||||
today: 'fas fa-calendar-check',
|
||||
clear: 'far fa-trash-alt',
|
||||
close: 'far fa-times-circle'
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
function setMaxUses() {
|
||||
let element = document.getElementById('uses')
|
||||
element.value = element.max;
|
||||
console.log(element.max)
|
||||
}
|
||||
|
||||
|
||||
function setRandomCode() {
|
||||
let element = document.getElementById('code')
|
||||
element.value = getRandomCode(36)
|
||||
}
|
||||
|
||||
function getRandomCode(length) {
|
||||
let result = '';
|
||||
let characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-';
|
||||
let charactersLength = characters.length;
|
||||
for (let i = 0; i < length; i++) {
|
||||
result += characters.charAt(Math.floor(Math.random() *
|
||||
charactersLength));
|
||||
function setMaxUses() {
|
||||
let element = document.getElementById('uses')
|
||||
element.value = element.max;
|
||||
console.log(element.max)
|
||||
}
|
||||
return result;
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
function setRandomCode() {
|
||||
let element = document.getElementById('code')
|
||||
element.value = getRandomCode(36)
|
||||
}
|
||||
|
||||
function getRandomCode(length) {
|
||||
let result = '';
|
||||
let characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-';
|
||||
let charactersLength = characters.length;
|
||||
for (let i = 0; i < length; i++) {
|
||||
result += characters.charAt(Math.floor(Math.random() *
|
||||
charactersLength));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@endsection
|
||||
|
|
|
@ -1,170 +1,193 @@
|
|||
@extends('layouts.main')
|
||||
|
||||
@section('content')
|
||||
<!-- CONTENT HEADER -->
|
||||
<section class="content-header">
|
||||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1>Vouchers</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">Dashboard</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{route('admin.vouchers.index')}}">Vouchers</a></li>
|
||||
<li class="breadcrumb-item"><a class="text-muted" href="{{route('admin.products.edit' , $voucher->id)}}">Edit</a>
|
||||
</li>
|
||||
</ol>
|
||||
<!-- CONTENT HEADER -->
|
||||
<section class="content-header">
|
||||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1>{{__('Vouchers')}}</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">{{__('Dashboard')}}</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{route('admin.vouchers.index')}}">{{__('Vouchers')}}</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item"><a class="text-muted"
|
||||
href="{{route('admin.products.edit' , $voucher->id)}}">{{__('Edit')}}</a>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- END CONTENT HEADER -->
|
||||
</section>
|
||||
<!-- END CONTENT HEADER -->
|
||||
|
||||
<!-- MAIN CONTENT -->
|
||||
<section class="content">
|
||||
<div class="container-fluid">
|
||||
<!-- MAIN CONTENT -->
|
||||
<section class="content">
|
||||
<div class="container-fluid">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="card-title">
|
||||
<i class="fas fa-money-check-alt mr-2"></i>Voucher details
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form action="{{route('admin.vouchers.update' , $voucher->id)}}" method="POST">
|
||||
@csrf
|
||||
@method('PATCH')
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="card-title">
|
||||
<i class="fas fa-money-check-alt mr-2"></i>{{__('Voucher details')}}
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form action="{{route('admin.vouchers.update' , $voucher->id)}}" method="POST">
|
||||
@csrf
|
||||
@method('PATCH')
|
||||
|
||||
<div class="form-group">
|
||||
<label for="memo">Memo <i data-toggle="popover" data-trigger="hover" data-content="Only admins can see this" class="fas fa-info-circle"></i></label>
|
||||
<input value="{{ $voucher->memo }}" placeholder="Summer break voucher" id="memo" name="memo" type="text" class="form-control @error('memo') is-invalid @enderror">
|
||||
@error('memo')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
<div class="form-group">
|
||||
<label for="memo">{{__('Memo')}} <i data-toggle="popover" data-trigger="hover"
|
||||
data-content="Only admins can see this"
|
||||
class="fas fa-info-circle"></i></label>
|
||||
<input value="{{ $voucher->memo }}" placeholder="{{__('Summer break voucher')}}"
|
||||
id="memo" name="memo" type="text"
|
||||
class="form-control @error('memo') is-invalid @enderror">
|
||||
@error('memo')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="credits">{{CREDITS_DISPLAY_NAME}} *</label>
|
||||
<input value="{{$voucher->credits}}" placeholder="500" id="credits" name="credits" type="number" step="any" min="0" max="99999999" class="form-control @error('credits') is-invalid @enderror">
|
||||
@error('credits')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
<div class="form-group">
|
||||
<label for="credits">{{CREDITS_DISPLAY_NAME}} *</label>
|
||||
<input value="{{$voucher->credits}}" placeholder="500" id="credits" name="credits"
|
||||
type="number" step="any" min="0" max="99999999"
|
||||
class="form-control @error('credits') is-invalid @enderror">
|
||||
@error('credits')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="code">Code *</label>
|
||||
<div class="input-group">
|
||||
<input value="{{$voucher->code}}" placeholder="SUMMER" id="code" name="code" type="text" class="form-control @error('code') is-invalid @enderror" required="required">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-info" onclick="setRandomCode()" type="button">
|
||||
Random
|
||||
<div class="form-group">
|
||||
<label for="code">{{__('Code')}} *</label>
|
||||
<div class="input-group">
|
||||
<input value="{{$voucher->code}}" placeholder="SUMMER" id="code" name="code"
|
||||
type="text" class="form-control @error('code') is-invalid @enderror"
|
||||
required="required">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-info" onclick="setRandomCode()" type="button">
|
||||
{{__('Random')}}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@error('code')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="uses">Uses * <i data-toggle="popover" data-trigger="hover" data-content="A voucher can only be used one time per user. Uses specifies the number of different users that can use this voucher." class="fas fa-info-circle"></i></label>
|
||||
<div class="input-group">
|
||||
<input value="{{$voucher->uses}}" id="uses" min="1" max="2147483647" name="uses" type="number" class="form-control @error('uses') is-invalid @enderror" required="required">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-info" onclick="setMaxUses()" type="button">Max
|
||||
</button>
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
@error('uses')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="form-group mb-3">
|
||||
<label for="expires_at">Expires at <i data-toggle="popover" data-trigger="hover" data-content="Timezone: {{ Config::get('app.timezone') }}" class="fas fa-info-circle"></i></label>
|
||||
<div class="input-group date" id="expires_at" data-target-input="nearest">
|
||||
<input value="{{$voucher->expires_at ? $voucher->expires_at->format('d-m-Y H:i:s') : ''}}" name="expires_at" placeholder="dd-mm-yyyy hh:mm:ss" type="text" class="form-control @error('expires_at') is-invalid @enderror datetimepicker-input" data-target="#expires_at" />
|
||||
<div class="input-group-append" data-target="#expires_at" data-toggle="datetimepicker">
|
||||
<div class="input-group-text"><i class="fa fa-calendar"></i></div>
|
||||
<div class="form-group">
|
||||
<label for="uses">{{__('Uses')}} * <i data-toggle="popover" data-trigger="hover"
|
||||
data-content="{{__('A voucher can only be used one time per user. Uses specifies the number of different users that can use this voucher.')}}"
|
||||
class="fas fa-info-circle"></i></label>
|
||||
<div class="input-group">
|
||||
<input value="{{$voucher->uses}}" id="uses" min="1" max="2147483647" name="uses"
|
||||
type="number" class="form-control @error('uses') is-invalid @enderror"
|
||||
required="required">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-info" onclick="setMaxUses()"
|
||||
type="button">{{__('Max')}}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@error('uses')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
@error('expires_at')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
|
||||
<div class="form-group mb-3">
|
||||
<label for="expires_at">{{__('Expires at')}} <i data-toggle="popover"
|
||||
data-trigger="hover"
|
||||
data-content="Timezone: {{ Config::get('app.timezone') }}"
|
||||
class="fas fa-info-circle"></i></label>
|
||||
<div class="input-group date" id="expires_at" data-target-input="nearest">
|
||||
<input
|
||||
value="{{$voucher->expires_at ? $voucher->expires_at->format('d-m-Y H:i:s') : ''}}"
|
||||
name="expires_at" placeholder="dd-mm-yyyy hh:mm:ss" type="text"
|
||||
class="form-control @error('expires_at') is-invalid @enderror datetimepicker-input"
|
||||
data-target="#expires_at"/>
|
||||
<div class="input-group-append" data-target="#expires_at"
|
||||
data-toggle="datetimepicker">
|
||||
<div class="input-group-text"><i class="fa fa-calendar"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
@error('expires_at')
|
||||
<div class="text-danger">
|
||||
{{$message}}
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group text-right">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
Submit
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<div class="form-group text-right">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
{{__('Submit')}}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<!-- END CONTENT -->
|
||||
</section>
|
||||
<!-- END CONTENT -->
|
||||
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', (event) => {
|
||||
$('#expires_at').datetimepicker({
|
||||
format: 'DD-MM-yyyy HH:mm:ss',
|
||||
icons: {
|
||||
time: 'far fa-clock',
|
||||
date: 'far fa-calendar',
|
||||
up: 'fas fa-arrow-up',
|
||||
down: 'fas fa-arrow-down',
|
||||
previous: 'fas fa-chevron-left',
|
||||
next: 'fas fa-chevron-right',
|
||||
today: 'fas fa-calendar-check',
|
||||
clear: 'far fa-trash-alt',
|
||||
close: 'far fa-times-circle'
|
||||
}
|
||||
});
|
||||
})
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', (event) => {
|
||||
$('#expires_at').datetimepicker({
|
||||
format: 'DD-MM-yyyy HH:mm:ss',
|
||||
icons: {
|
||||
time: 'far fa-clock',
|
||||
date: 'far fa-calendar',
|
||||
up: 'fas fa-arrow-up',
|
||||
down: 'fas fa-arrow-down',
|
||||
previous: 'fas fa-chevron-left',
|
||||
next: 'fas fa-chevron-right',
|
||||
today: 'fas fa-calendar-check',
|
||||
clear: 'far fa-trash-alt',
|
||||
close: 'far fa-times-circle'
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
function setMaxUses() {
|
||||
let element = document.getElementById('uses')
|
||||
element.value = element.max;
|
||||
console.log(element.max)
|
||||
}
|
||||
|
||||
|
||||
function setRandomCode() {
|
||||
let element = document.getElementById('code')
|
||||
element.value = getRandomCode(36)
|
||||
}
|
||||
|
||||
function getRandomCode(length) {
|
||||
let result = '';
|
||||
let characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-';
|
||||
let charactersLength = characters.length;
|
||||
for (let i = 0; i < length; i++) {
|
||||
result += characters.charAt(Math.floor(Math.random() *
|
||||
charactersLength));
|
||||
function setMaxUses() {
|
||||
let element = document.getElementById('uses')
|
||||
element.value = element.max;
|
||||
console.log(element.max)
|
||||
}
|
||||
return result;
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
function setRandomCode() {
|
||||
let element = document.getElementById('code')
|
||||
element.value = getRandomCode(36)
|
||||
}
|
||||
|
||||
function getRandomCode(length) {
|
||||
let result = '';
|
||||
let characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-';
|
||||
let charactersLength = characters.length;
|
||||
for (let i = 0; i < length; i++) {
|
||||
result += characters.charAt(Math.floor(Math.random() *
|
||||
charactersLength));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@endsection
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1>Vouchers</h1>
|
||||
<h1>{{__('Vouchers')}}</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">Dashboard</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">{{__('Dashboard')}}</a></li>
|
||||
<li class="breadcrumb-item"><a class="text-muted"
|
||||
href="{{route('admin.vouchers.index')}}">Vouchers</a></li>
|
||||
href="{{route('admin.vouchers.index')}}">{{__('Vouchers')}}</a></li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -28,9 +28,9 @@
|
|||
|
||||
<div class="card-header">
|
||||
<div class="d-flex justify-content-between">
|
||||
<h5 class="card-title"><i class="fas fa-money-check-alt mr-2"></i>Vouchers</h5>
|
||||
<h5 class="card-title"><i class="fas fa-money-check-alt mr-2"></i>{{__('Vouchers')}}</h5>
|
||||
<a href="{{route('admin.vouchers.create')}}" class="btn btn-sm btn-primary"><i
|
||||
class="fas fa-plus mr-1"></i>Create new</a>
|
||||
class="fas fa-plus mr-1"></i>{{__('Create new')}}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -39,12 +39,12 @@
|
|||
<table id="datatable" class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Status</th>
|
||||
<th>Code</th>
|
||||
<th>Memo</th>
|
||||
<th>{{__('Status')}}</th>
|
||||
<th>{{__('Code')}}</th>
|
||||
<th>{{__('Memo')}}</th>
|
||||
<th>{{CREDITS_DISPLAY_NAME}}</th>
|
||||
<th>Used / Uses</th>
|
||||
<th>Expires</th>
|
||||
<th>{{__('Used / Uses')}}</th>
|
||||
<th>{{__('Expires')}}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
@ -64,7 +64,7 @@
|
|||
|
||||
<script>
|
||||
function submitResult() {
|
||||
return confirm("Are you sure you wish to delete?") !== false;
|
||||
return confirm("{{__('Are you sure you wish to delete?')}}") !== false;
|
||||
}
|
||||
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1>Vouchers</h1>
|
||||
<h1>{{__('Vouchers')}}</h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
<li class="breadcrumb-item"><a href="{{ route('home') }}">Dashboard</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{ route('admin.vouchers.index') }}">Vouchers</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{ route('home') }}">{{__('Dashboard')}}</a></li>
|
||||
<li class="breadcrumb-item"><a href="{{ route('admin.vouchers.index') }}">{{__('Vouchers')}}</a></li>
|
||||
<li class="breadcrumb-item"><a class="text-muted"
|
||||
href="{{ route('admin.vouchers.users', $voucher->id) }}">Users</a>
|
||||
href="{{ route('admin.vouchers.users', $voucher->id) }}">{{__('Users')}}</a>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -29,7 +29,7 @@
|
|||
|
||||
<div class="card-header">
|
||||
<div class="d-flex justify-content-between">
|
||||
<h5 class="card-title"><i class="fas fa-users mr-2"></i>Users</h5>
|
||||
<h5 class="card-title"><i class="fas fa-users mr-2"></i>{{__('Users')}}</h5>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -38,11 +38,11 @@
|
|||
<table id="datatable" class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Name</th>
|
||||
<th>Email</th>
|
||||
<th>{{__('ID')}}</th>
|
||||
<th>{{__('Name')}}</th>
|
||||
<th>{{__('Email')}}</th>
|
||||
<th>{{ CREDITS_DISPLAY_NAME }}</th>
|
||||
<th>Last Seen</th>
|
||||
<th>{{__('Last seen')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
|
Loading…
Add table
Reference in a new issue