hfkfhkfhgjkuhgfkjfghkj
This commit is contained in:
69
app/views/admin/contact.html
Executable file
69
app/views/admin/contact.html
Executable file
@ -0,0 +1,69 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Send Email</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<div class="col-lg-6 offset-md-3">
|
||||
<p>
|
||||
Please be very careful with this feature. This form allows you to send an email (formatted within the default site email template) to registered emails from various sources including newsletter subscribers, call to action subscribers, and all registered user accounts.
|
||||
</p>
|
||||
</div>
|
||||
<form method="post">
|
||||
<fieldset>
|
||||
<!-- Subject -->
|
||||
<div class="mb-3 row">
|
||||
<label for="mailSubject" class="col-lg-3 col-form-label text-end">Subject:</label>
|
||||
<div class="col-lg-6">
|
||||
<input type="text" class="form-control" name="mailSubject" id="mailSubject" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Title -->
|
||||
<div class="mb-3 row">
|
||||
<label for="mailTitle" class="col-lg-3 col-form-label text-end">Title:</label>
|
||||
<div class="col-lg-6">
|
||||
<input type="text" class="form-control" name="mailTitle" id="mailTitle" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Recipients -->
|
||||
<div class="mb-3 row">
|
||||
<label for="mailType" class="col-lg-3 col-form-label text-end">Recipients:</label>
|
||||
<div class="col-lg-6">
|
||||
<select class="form-control" name="mailType" id="mailType">
|
||||
<option value='none' checked>none</option>
|
||||
<option value='registered'>all registered users</option>
|
||||
<option value='newsletter'>only newsletter opt-ins</option>
|
||||
<option value='subscribers'>only CTA subscribers</option>
|
||||
<option value='opt'>CTA subscribers and newsletter opt-ins</option>
|
||||
<option value='all'>all available emails</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Email (Optional) -->
|
||||
<div class="mb-3 row">
|
||||
<label for="contactEmail" class="col-lg-3 col-form-label text-end">E-mail: (optional)</label>
|
||||
<div class="col-lg-6">
|
||||
<input type="email" class="form-control" name="contactEmail" id="contactEmail">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Message -->
|
||||
<div class="mb-3 row">
|
||||
<label for="mailMessage" class="col-lg-3 col-form-label text-end">Body:</label>
|
||||
<div class="col-lg-6">
|
||||
<textarea class="form-control" name="mailMessage" id="mailMessage" rows="6" maxlength="2000" required></textarea>
|
||||
<small class="form-text text-muted">Max: 2000 characters</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Hidden Token -->
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
</fieldset>
|
||||
|
||||
<!-- Submit Button -->
|
||||
<div class="text-center">
|
||||
<button type="submit" name="submit" value="submit" class="btn btn-primary btn-lg center-block">Submit</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
45
app/views/admin/dashboard/dash.html
Executable file
45
app/views/admin/dashboard/dash.html
Executable file
@ -0,0 +1,45 @@
|
||||
<div class="context-main-bg context-main">
|
||||
<legend class="text-center my-2">Admin Dashboard</legend>
|
||||
<div class="row">
|
||||
<div class="col-5 offset-1">
|
||||
{userDash}
|
||||
</div>
|
||||
<div class="col-5">
|
||||
{commentDash}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-10 offset-1">
|
||||
{contactDash}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-10 offset-1">
|
||||
{blogDash}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<legend class="text-center my-2">Results</legend>
|
||||
<form method="post">
|
||||
<fieldset>
|
||||
<!-- Search -->
|
||||
<div class="mb-3 row">
|
||||
<label for="searchTerm" class="col-lg-6 col-form-label text-end">Search:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="text" class="form-control" name="searchTerm" id="searchTerm">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Hidden Token -->
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
|
||||
<!-- Submit Button -->
|
||||
<div class="text-center">
|
||||
<button type="submit" name="submit" value="submit" class="btn btn-primary btn-lg">Search</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
<div class="col-5 offset-1">
|
||||
{searchResults}
|
||||
</div>
|
28
app/views/admin/dashboard/users.html
Executable file
28
app/views/admin/dashboard/users.html
Executable file
@ -0,0 +1,28 @@
|
||||
<legend>New Users</legend>
|
||||
<table class="table context-main">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 85%"></th>
|
||||
<th style="width: 5%"></th>
|
||||
<th style="width: 5%"></th>
|
||||
<th style="width: 5%"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{LOOP}
|
||||
<tr>
|
||||
<td align="center">{username}</td>
|
||||
<td><a href="{ROOT_URL}admin/users/view/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-user"></i></a></td>
|
||||
<td><a href="{ROOT_URL}admin/users/edit/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil"></i></a></td>
|
||||
<td><a href="{ROOT_URL}admin/users/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{/LOOP}
|
||||
{ALT}
|
||||
<tr>
|
||||
<td align="center" colspan="4">
|
||||
No results to show.
|
||||
</td>
|
||||
</tr>
|
||||
{/ALT}
|
||||
</tbody>
|
||||
</table>
|
26
app/views/admin/groups/create.html
Executable file
26
app/views/admin/groups/create.html
Executable file
@ -0,0 +1,26 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Add Group</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form method="post">
|
||||
<fieldset>
|
||||
<!-- Name -->
|
||||
<div class="mb-3 row">
|
||||
<label for="name" class="col-lg-6 col-form-label text-end">Name:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="text" class="form-control" name="name" id="name" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{PERMISSIONS_FORM}
|
||||
|
||||
<!-- Hidden Token -->
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
|
||||
<!-- Submit Button -->
|
||||
<div class="text-center">
|
||||
<button type="submit" name="submit" value="submit" class="btn btn-primary btn-lg">Create</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
26
app/views/admin/groups/edit.html
Executable file
26
app/views/admin/groups/edit.html
Executable file
@ -0,0 +1,26 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Edit Group: {name}</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form method="post">
|
||||
<fieldset>
|
||||
<!-- Name -->
|
||||
<div class="mb-3 row">
|
||||
<label for="name" class="col-lg-6 col-form-label text-end">Name:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="text" class="form-control" name="name" id="name" value="{name}" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{PERMISSIONS_FORM}
|
||||
|
||||
<!-- Hidden Token -->
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
|
||||
<!-- Submit Button -->
|
||||
<div class="text-center">
|
||||
<button type="submit" name="submit" value="submit" class="btn btn-primary btn-lg">Save</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
42
app/views/admin/groups/list.html
Executable file
42
app/views/admin/groups/list.html
Executable file
@ -0,0 +1,42 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Groups</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form action="{ROOT_URL}admin/groups/delete" method="post">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 50%">Name</th>
|
||||
<th style="width: 35%">Users</th>
|
||||
<th style="width: 5%"></th>
|
||||
<th style="width: 5%"></th>
|
||||
<th style="width: 5%">
|
||||
<input type="checkbox" onchange="checkAll(this)" name="check.g" value="G_[]">
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{LOOP}
|
||||
<tr>
|
||||
<td><a href="{ROOT_URL}admin/groups/view/{ID}" class="text-decoration-none">{name}</a></td>
|
||||
<td><a href="{ROOT_URL}admin/groups/listmembers/{ID}" class="text-decoration-none">{userCount}</a></td>
|
||||
<td><a href="{ROOT_URL}admin/groups/edit/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil"></i></a></td>
|
||||
<td><a href="{ROOT_URL}admin/groups/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||
<td>
|
||||
<input type="checkbox" value="{ID}" name="G_[]">
|
||||
</td>
|
||||
</tr>
|
||||
{/LOOP}
|
||||
{ALT}
|
||||
<tr>
|
||||
<td align="center" colspan="5">
|
||||
No results to show.
|
||||
</td>
|
||||
</tr>
|
||||
{/ALT}
|
||||
</tbody>
|
||||
</table>
|
||||
<a href="{ROOT_URL}admin/groups/create" class="btn btn-sm btn-primary">Create</a>
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||
</form>
|
||||
</div>
|
43
app/views/admin/groups/list_members.html
Executable file
43
app/views/admin/groups/list_members.html
Executable file
@ -0,0 +1,43 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">{groupName} <small>user list</small></legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form action="{ROOT_URL}admin/users/delete" method="post">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 5%">ID</th>
|
||||
<th style="width: 55%">Username</th>
|
||||
<th style="width: 25%">Joined</th>
|
||||
<th style="width: 5%"></th>
|
||||
<th style="width: 5%"></th>
|
||||
<th style="width: 5%">
|
||||
<input type="checkbox" onchange="checkAll(this)" name="check.u" value="U_[]">
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{LOOP}
|
||||
<tr>
|
||||
<td>{ID}</td>
|
||||
<td><a href='{ROOT_URL}admin/users/view/{ID}' class="text-decoration-none">{username}</a></td>
|
||||
<td>{DTC date}{registered}{/DTC}</td>
|
||||
<td><a href="{ROOT_URL}admin/users/edit/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil"></i></a></td>
|
||||
<td><a href="{ROOT_URL}admin/users/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||
<td>
|
||||
<input type="checkbox" value="{ID}" name="U_[]">
|
||||
</td>
|
||||
</tr>
|
||||
{/LOOP}
|
||||
{ALT}
|
||||
<tr>
|
||||
<td align="center" colspan="6">
|
||||
No results to show.
|
||||
</td>
|
||||
</tr>
|
||||
{/ALT}
|
||||
</tbody>
|
||||
</table>
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||
</form>
|
||||
</div>
|
31
app/views/admin/groups/view.html
Executable file
31
app/views/admin/groups/view.html
Executable file
@ -0,0 +1,31 @@
|
||||
<div class="container py-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<div class="card shadow">
|
||||
<!-- Card Header -->
|
||||
<div class="card-header text-center bg-dark text-white">
|
||||
<h3 class="card-title mb-0">{name}</h3>
|
||||
</div>
|
||||
|
||||
<!-- Card Body -->
|
||||
<div class="card-body">
|
||||
<div class="row align-items-center">
|
||||
<!-- Log Details -->
|
||||
<table class="table table-borderless">
|
||||
<tbody>
|
||||
{PERMISSIONS_ROWS}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Admin Controls -->
|
||||
<div class="card-footer text-center">
|
||||
<a href="{ROOT_URL}admin/groups/edit/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil"></i></a>
|
||||
<a href="{ROOT_URL}admin/groups/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
30
app/views/admin/images/list/combined.html
Normal file
30
app/views/admin/images/list/combined.html
Normal file
@ -0,0 +1,30 @@
|
||||
<div class="container py-5 context-main-bg">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<a href="{ROOT_URL}admin/images/upload" class="btn btn-sm btn-primary">Create</a>
|
||||
</div>
|
||||
<div class="row row-cols-1 row-cols-sm-2 row-cols-md-3 g-3">
|
||||
{LOOP}
|
||||
<div class="col">
|
||||
<div class="card h-100 shadow-sm context-other-bg">
|
||||
<div class="d-flex justify-content-center align-items-center context-other-bg" style="height: 250px;">
|
||||
<img src="{url}" class="img-fluid p-2" style="max-width: 100%; max-height: 100%; object-fit: contain;">
|
||||
</div>
|
||||
<div class="card-body context-third-bg d-flex flex-column">
|
||||
<div class="flex-grow-1">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div class="">
|
||||
<a href="{ROOT_URL}admin/images/view?fileLocation={locationSafe}" class="btn btn-sm btn-outline-primary">View</a>
|
||||
<a href="{url}" class="btn btn-sm btn-outline-primary" target="_blank">Open</a>
|
||||
<a href="{ROOT_URL}admin/images/rename?fileLocation={locationSafe}" class="btn btn-sm btn-outline-warning">Rename</a>
|
||||
<a href="{ROOT_URL}admin/images/delete?fileLocation={locationSafe}" class="btn btn-sm btn-outline-danger">Delete</a>
|
||||
</div>
|
||||
<small class="text-muted">{filename}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/LOOP}
|
||||
</div>
|
||||
</div>
|
35
app/views/admin/images/rename.html
Normal file
35
app/views/admin/images/rename.html
Normal file
@ -0,0 +1,35 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Rename Image</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form method="post">
|
||||
<fieldset>
|
||||
<!-- Name -->
|
||||
<div class="mb-3 row">
|
||||
<label for="nickname" class="col-lg-6 col-form-label text-end">Location:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="hidden" class="form-control" name="filelocation" id="filelocation" value="{filelocation}">
|
||||
<strong>
|
||||
{filelocation}
|
||||
</strong>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Forward URL -->
|
||||
<div class="mb-3 row">
|
||||
<label for="newname" class="col-lg-6 col-form-label text-end">New filename ( Extensions cannot be modified ):</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="text" class="form-control" name="newname" id="newname" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Hidden Token -->
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
|
||||
<!-- Submit Button -->
|
||||
<div class="text-center">
|
||||
<button type="submit" name="submit" value="submit" class="btn btn-primary btn-lg">Save</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
29
app/views/admin/images/upload.html
Normal file
29
app/views/admin/images/upload.html
Normal file
@ -0,0 +1,29 @@
|
||||
|
||||
|
||||
|
||||
<div class="container p-4 context-main-bg mb-4 text-center">
|
||||
<h3 class="mb-4">Image Upload</h3>
|
||||
<hr>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-6">
|
||||
<form method="post" enctype="multipart/form-data">
|
||||
<fieldset>
|
||||
<div class="mb-3 row">
|
||||
<label for="avatar" class="h4 col-lg-6 col-form-label text-start text-lg-end">Image</label>
|
||||
<div class="col-lg-6">
|
||||
<input type="file" class="form-control" name="uploadImage" id="uploadImage">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<span class="h4 col-lg-6 col-form-label text-start text-lg-end">Destination Folder</span>
|
||||
<div class="col-lg-6">
|
||||
{FOLDER_SELECT}
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Update</button><br>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
66
app/views/admin/images/view.html
Normal file
66
app/views/admin/images/view.html
Normal file
@ -0,0 +1,66 @@
|
||||
<div class="container py-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<div class="card shadow">
|
||||
<!-- Card Header -->
|
||||
<div class="card-header text-center bg-dark text-white">
|
||||
<h3 class="card-title mb-0">{filename}</h3>
|
||||
</div>
|
||||
|
||||
<!-- Card Body -->
|
||||
<div class="card-body">
|
||||
<div class="row align-items-center">
|
||||
<!-- User Image -->
|
||||
<div class="col-md-4 text-center">
|
||||
<img src="{url}" alt="User Pic" class="img-fluid" style="max-width: 150px;">
|
||||
</div>
|
||||
|
||||
<!-- User Details -->
|
||||
<div class="col-md-8">
|
||||
<table class="table table-borderless">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">filename</th>
|
||||
<td>{filename}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">extension</th>
|
||||
<td>{extension}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">fileSize</th>
|
||||
<td>{fileSize}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">location</th>
|
||||
<td>{location}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">url</th>
|
||||
<td>{url}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">folder</th>
|
||||
<td>{folder}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Admin Controls -->
|
||||
<div class="card-footer text-center">
|
||||
{ADMIN}
|
||||
<a href="{ROOT_URL}admin/images/rename?fileLocation={locationSafe}" class="btn btn-warning btn-sm me-2" data-bs-toggle="tooltip" title="Rename image">
|
||||
<i class="fa fa-fw fa-pencil"></i>
|
||||
</a>
|
||||
<a href="{ROOT_URL}admin/images/delete?fileLocation={locationSafe}" class="btn btn-danger btn-sm" data-bs-toggle="tooltip" title="Delete image">
|
||||
<i class="fa fa-fw fa-trash"></i>
|
||||
</a>
|
||||
{/ADMIN}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
56
app/views/admin/logs/admin.html
Executable file
56
app/views/admin/logs/admin.html
Executable file
@ -0,0 +1,56 @@
|
||||
<div class="container py-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
<div class="card shadow">
|
||||
<!-- Card Header -->
|
||||
<div class="card-header text-center bg-dark text-white">
|
||||
<h3 class="card-title mb-0">Admin Log</h3>
|
||||
</div>
|
||||
|
||||
<!-- Card Body -->
|
||||
<div class="card-body">
|
||||
<div class="row align-items-center">
|
||||
<!-- Log Details -->
|
||||
<div class="col-md-8">
|
||||
<table class="table table-borderless">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">ID:</th>
|
||||
<td>{ID}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">User:</th>
|
||||
<td>{logUser}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Time:</th>
|
||||
<td>{DTC}{time}{/DTC}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">IP:</th>
|
||||
<td>{ip}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Log:</th>
|
||||
<td>{action}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Admin Controls -->
|
||||
<div class="card-footer text-center">
|
||||
{ADMIN}
|
||||
<form action="{ROOT_URL}admin/admin/delete" method="post">
|
||||
<input type="hidden" name="L_" value="{ID}">
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||
</form>
|
||||
{/ADMIN}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
43
app/views/admin/logs/admin_list.html
Executable file
43
app/views/admin/logs/admin_list.html
Executable file
@ -0,0 +1,43 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Admin Logs</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form action="{ROOT_URL}admin/admin/delete" method="post">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 5%">ID</th>
|
||||
<th style="width: 30%">Time</th>
|
||||
<th style="width: 50%">Action</th>
|
||||
<th style="width: 5%"></th>
|
||||
<th style="width: 5%"></th>
|
||||
<th style="width: 5%"">
|
||||
<input type="checkbox" onchange="checkAll(this)" name="check.l" value="A_[]">
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{LOOP}
|
||||
<tr>
|
||||
<td>{ID}</td>
|
||||
<td>{DTC}{time}{/DTC}</td>
|
||||
<td>{action}</td>
|
||||
<td><a href="{ROOT_URL}admin/admin/view/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-upload"></i></a></td>
|
||||
<td><a href="{ROOT_URL}admin/admin/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||
<td>
|
||||
<input type="checkbox" value="{ID}" name="A_[]">
|
||||
</td>
|
||||
</tr>
|
||||
{/LOOP}
|
||||
{ALT}
|
||||
<tr>
|
||||
<td align="center" colspan="6">
|
||||
No results to show.
|
||||
</td>
|
||||
</tr>
|
||||
{/ALT}
|
||||
</tbody>
|
||||
</table>
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||
</form>
|
||||
</div>
|
66
app/views/admin/logs/error.html
Executable file
66
app/views/admin/logs/error.html
Executable file
@ -0,0 +1,66 @@
|
||||
<div class="container py-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
<div class="card shadow">
|
||||
<!-- Card Header -->
|
||||
<div class="card-header text-center bg-dark text-white">
|
||||
<h3 class="card-title mb-0">Error Log</h3>
|
||||
</div>
|
||||
|
||||
<!-- Card Body -->
|
||||
<div class="card-body">
|
||||
<div class="row align-items-center">
|
||||
<!-- Log Details -->
|
||||
<div class="col-md-8">
|
||||
<table class="table table-borderless">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">ID:</th>
|
||||
<td>{ID}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Class:</th>
|
||||
<td>{class}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Function:</th>
|
||||
<td>{function}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Time:</th>
|
||||
<td>{DTC}{time}{/DTC}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">IP:</th>
|
||||
<td>{ip}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Error:</th>
|
||||
<td>{error}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row" colspan="2">Description:</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">{description}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Admin Controls -->
|
||||
<div class="card-footer text-center">
|
||||
{ADMIN}
|
||||
<form action="{ROOT_URL}admin/errors/delete" method="post">
|
||||
<input type="hidden" name="E_" value="{ID}">
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||
</form>
|
||||
{/ADMIN}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
43
app/views/admin/logs/error_list.html
Executable file
43
app/views/admin/logs/error_list.html
Executable file
@ -0,0 +1,43 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Errors</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form action="{ROOT_URL}admin/errors/delete" method="post">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 5%">ID</th>
|
||||
<th style="width: 25%">Time</th>
|
||||
<th style="width: 55%">Description</th>
|
||||
<th style="width: 5%"></th>
|
||||
<th style="width: 5%"></th>
|
||||
<th style="width: 5%">
|
||||
<input type="checkbox" onchange="checkAll(this)" name="check.e" value="E_[]">
|
||||
</th>
|
||||
</tr></thead><tbody>
|
||||
{LOOP}
|
||||
<tr>
|
||||
<td align="center">{ID}</td>
|
||||
<td align="center">{DTC}{time}{/DTC}</td>
|
||||
<td>{error}</td>
|
||||
<td><a href="{ROOT_URL}admin/errors/view/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-upload"></i></a></td>
|
||||
<td><a href="{ROOT_URL}admin/errors/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||
<td>
|
||||
<input type="checkbox" value="{ID}" name="E_[]">
|
||||
</td>
|
||||
</tr>
|
||||
{/LOOP}
|
||||
{ALT}
|
||||
<tr>
|
||||
<td align="center" colspan="6">
|
||||
No results to show.
|
||||
</td>
|
||||
</tr>
|
||||
{/ALT}
|
||||
</tbody>
|
||||
</table>
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||
</form>
|
||||
<br>
|
||||
<a href="{ROOT_URL}admin/errors/clear">clear all</a>
|
||||
</div>
|
56
app/views/admin/logs/login.html
Executable file
56
app/views/admin/logs/login.html
Executable file
@ -0,0 +1,56 @@
|
||||
<div class="container py-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
<div class="card shadow">
|
||||
<!-- Card Header -->
|
||||
<div class="card-header text-center bg-dark text-white">
|
||||
<h3 class="card-title mb-0">Login Log</h3>
|
||||
</div>
|
||||
|
||||
<!-- Card Body -->
|
||||
<div class="card-body">
|
||||
<div class="row align-items-center">
|
||||
<!-- Log Details -->
|
||||
<div class="col-md-8">
|
||||
<table class="table table-borderless">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">ID:</th>
|
||||
<td>{ID}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">User:</th>
|
||||
<td>{logUser}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Time:</th>
|
||||
<td>{DTC}{time}{/DTC}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">IP:</th>
|
||||
<td>{ip}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Pass or Fail:</th>
|
||||
<td>{action}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Admin Controls -->
|
||||
<div class="card-footer text-center">
|
||||
{ADMIN}
|
||||
<form action="{ROOT_URL}admin/logins/delete" method="post">
|
||||
<input type="hidden" name="L_" value="{ID}">
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||
</form>
|
||||
{/ADMIN}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
45
app/views/admin/logs/login_list.html
Executable file
45
app/views/admin/logs/login_list.html
Executable file
@ -0,0 +1,45 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Logins</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form action="{ROOT_URL}admin/logins/delete" method="post">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 5%">ID</th>
|
||||
<th style="width: 30%">Time</th>
|
||||
<th style="width: 50%">Pass / fail</th>
|
||||
<th style="width: 5%"></th>
|
||||
<th style="width: 5%"></th>
|
||||
<th style="width: 5%"">
|
||||
<input type="checkbox" onchange="checkAll(this)" name="check.l" value="L_[]">
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{LOOP}
|
||||
<tr>
|
||||
<td>{ID}</td>
|
||||
<td>{DTC}{time}{/DTC}</td>
|
||||
<td>{action}</td>
|
||||
<td><a href="{ROOT_URL}admin/logins/view/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-upload"></i></a></td>
|
||||
<td><a href="{ROOT_URL}admin/logins/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||
<td>
|
||||
<input type="checkbox" value="{ID}" name="L_[]">
|
||||
</td>
|
||||
</tr>
|
||||
{/LOOP}
|
||||
{ALT}
|
||||
<tr>
|
||||
<td align="center" colspan="6">
|
||||
No results to show.
|
||||
</td>
|
||||
</tr>
|
||||
{/ALT}
|
||||
</tbody>
|
||||
</table>
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||
</form>
|
||||
<br>
|
||||
<a href="{ROOT_URL}admin/logins/clear">clear all</a>
|
||||
</div>
|
30
app/views/admin/modules/dependencies.html
Executable file
30
app/views/admin/modules/dependencies.html
Executable file
@ -0,0 +1,30 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Installed Dependencies</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 40%">Name</th>
|
||||
<th style="width: 40%">Required Version</th>
|
||||
<th style="width: 20%">Installed Version</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{LOOP}
|
||||
<tr>
|
||||
<td><b>{name}</b></td>
|
||||
<td>{requiredVersion}</td>
|
||||
<td>{version}</td>
|
||||
</tr>
|
||||
{/LOOP}
|
||||
{ALT}
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
No results to show.
|
||||
</td>
|
||||
</tr>
|
||||
{/ALT}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
13
app/views/admin/modules/plugins/disable.html
Executable file
13
app/views/admin/modules/plugins/disable.html
Executable file
@ -0,0 +1,13 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Disable {PLUGIN}</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<div class="col-lg-6 offset-md-3 text-center">
|
||||
<p>Are you absolutely <b>SURE</b> you wish to <b>Disable</b> this plugin?</p>
|
||||
<p>The Tempus Project cannot guarantee the safety or effectiveness of any plugins not offered directly from the organization's GitHub at <a href="https://github.com/TheTempusProject">The Tempus Project</a></p>
|
||||
<form method="post">
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Disable</button>
|
||||
<input type="hidden" name="installHash" value="{TOKEN}">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
13
app/views/admin/modules/plugins/enable.html
Executable file
13
app/views/admin/modules/plugins/enable.html
Executable file
@ -0,0 +1,13 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Enable {PLUGIN}</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<div class="col-lg-6 offset-md-3 text-center">
|
||||
<p>Are you absolutely <b>SURE</b> you wish to <b>Enable</b> this plugin?</p>
|
||||
<p>The Tempus Project cannot guarantee the safety or effectiveness of any plugins not offered directly from the organization's GitHub at <a href="https://github.com/TheTempusProject">The Tempus Project</a></p>
|
||||
<form method="post">
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-success center-block">Enable</button>
|
||||
<input type="hidden" name="installHash" value="{TOKEN}">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
12
app/views/admin/modules/plugins/install.html
Executable file
12
app/views/admin/modules/plugins/install.html
Executable file
@ -0,0 +1,12 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Install {PLUGIN}</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<div class="col-lg-6 offset-md-3 text-center">
|
||||
<p>The Tempus Project cannot guarantee the safety or effectiveness of any plugins not offered directly from the organization's GitHub at <a href="https://github.com/TheTempusProject">The Tempus Project</a></p>
|
||||
<form method="post">
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Install</button>
|
||||
<input type="hidden" name="installHash" value="{TOKEN}">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
38
app/views/admin/modules/plugins/list.html
Executable file
38
app/views/admin/modules/plugins/list.html
Executable file
@ -0,0 +1,38 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Installed Plugins</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 20%">Name</th>
|
||||
<th style="width: 5%">Enabled</th>
|
||||
<th style="width: 15%">Install Status</th>
|
||||
<th style="width: 10%">File Version</th>
|
||||
<th style="width: 10%">Installed Version</th>
|
||||
<th style="width: 15%">Install Date</th>
|
||||
<th style="width: 15%">Last Updated</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{LOOP}
|
||||
<tr>
|
||||
<td><a href="{ROOT_URL}admin/plugins/view/{name}" class="text-decoration-none">{name}</a></td>
|
||||
<td>{enabled_txt}</td>
|
||||
<td>{installStatus}</td>
|
||||
<td>{version}</td>
|
||||
<td>{installedVersion}</td>
|
||||
<td>{DTC=date}{installDate}{/DTC}</td>
|
||||
<td>{DTC=date}{lastUpdate}{/DTC}</td>
|
||||
</tr>
|
||||
{/LOOP}
|
||||
{ALT}
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
No results to show.
|
||||
</td>
|
||||
</tr>
|
||||
{/ALT}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
12
app/views/admin/modules/plugins/uninstall.html
Executable file
12
app/views/admin/modules/plugins/uninstall.html
Executable file
@ -0,0 +1,12 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Uninstall {PLUGIN}</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<div class="col-lg-6 offset-md-3 text-center">
|
||||
<p>Are you sure you would like to uninstall this plugin and all of its components? There is no guarantee that your site will continue to run without error.</p>
|
||||
<form method="post">
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-outline-danger center-block">Uninstall</button>
|
||||
<input type="hidden" name="uninstallHash" value="{TOKEN}">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
80
app/views/admin/modules/plugins/view.html
Executable file
80
app/views/admin/modules/plugins/view.html
Executable file
@ -0,0 +1,80 @@
|
||||
<div class="container py-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<div class="card shadow">
|
||||
<!-- Card Header -->
|
||||
<div class="card-header text-center bg-dark text-white">
|
||||
<h3 class="card-title mb-0">Plugin: {name}</h3>
|
||||
</div>
|
||||
|
||||
<!-- Card Body -->
|
||||
<div class="card-body">
|
||||
<div class="row align-items-center">
|
||||
<!-- Log Details -->
|
||||
<table class="table table-borderless">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row" class="col-3">Name</th>
|
||||
<td>{name}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Enabled</th>
|
||||
<td>{enabled_txt}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Status</th>
|
||||
<td>{installStatus}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Install Date</th>
|
||||
<td>{DTC}{installDate}{/DTC}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Last Updated</th>
|
||||
<td>{DTC}{lastUpdate}{/DTC}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">File Version</th>
|
||||
<td>{version}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Installed Version</th>
|
||||
<td>{installedVersion}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Preferences Installed</th>
|
||||
<td>{preferences_installed}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Permissions Installed</th>
|
||||
<td>{permissions_installed}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Configs Installed</th>
|
||||
<td>{configs_installed}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Models Installed</th>
|
||||
<td>{models_installed}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Resources Installed</th>
|
||||
<td>{resources_installed}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Admin Controls -->
|
||||
<div class="card-footer text-center">
|
||||
<a href="{ROOT_URL}admin/plugins/install/{name}" class="btn btn-sm btn-primary">Install</a>
|
||||
<a href="{ROOT_URL}admin/plugins/enable/{name}" class="btn btn-sm btn-success">Enable</a>
|
||||
<a href="{ROOT_URL}admin/plugins/disable/{name}" class="btn btn-sm btn-danger">Disable</a>
|
||||
<a href="{ROOT_URL}admin/plugins/uninstall/{name}" class="btn btn-sm btn-danger">Uninstall</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
51
app/views/admin/routes/create.html
Executable file
51
app/views/admin/routes/create.html
Executable file
@ -0,0 +1,51 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Create Route</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form method="post">
|
||||
<fieldset>
|
||||
<!-- Name -->
|
||||
<div class="mb-3 row">
|
||||
<label for="nickname" class="col-lg-6 col-form-label text-end">Nickname:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="text" class="form-control" name="nickname" id="nickname" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Original URL -->
|
||||
<div class="mb-3 row">
|
||||
<label for="original_url" class="col-lg-6 col-form-label text-end">Original URL:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="text" class="form-control" name="original_url" id="original_url" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Forward URL -->
|
||||
<div class="mb-3 row">
|
||||
<label for="forwarded_url" class="col-lg-6 col-form-label text-end">Forward URL:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="text" class="form-control" name="forwarded_url" id="forwarded_url" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Redirect Type -->
|
||||
<div class="mb-3 row">
|
||||
<label for="redirect_type" class="col-lg-6 col-form-label text-end">Redirect Type:</label>
|
||||
<div class="col-lg-2">
|
||||
<select name="redirect_type" id="redirect_type" class="form-control">
|
||||
<option value='external'>External</option>
|
||||
<option value='internal'>Internal</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Hidden Token -->
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
|
||||
<!-- Submit Button -->
|
||||
<div class="text-center">
|
||||
<button type="submit" name="submit" value="submit" class="btn btn-primary btn-lg">Save</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
52
app/views/admin/routes/edit.html
Executable file
52
app/views/admin/routes/edit.html
Executable file
@ -0,0 +1,52 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Edit Route: {nickname}</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form method="post">
|
||||
<fieldset>
|
||||
<!-- Name -->
|
||||
<div class="mb-3 row">
|
||||
<label for="nickname" class="col-lg-6 col-form-label text-end">Nickname:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="text" class="form-control" name="nickname" id="nickname" value="{nickname}" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Original URL -->
|
||||
<div class="mb-3 row">
|
||||
<label for="original_url" class="col-lg-6 col-form-label text-end">Original URL:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="text" class="form-control" name="original_url" id="original_url" value="{original_url}" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Forward URL -->
|
||||
<div class="mb-3 row">
|
||||
<label for="forwarded_url" class="col-lg-6 col-form-label text-end">Forward URL:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="text" class="form-control" name="forwarded_url" id="forwarded_url" value="{forwarded_url}" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Redirect Type -->
|
||||
<div class="mb-3 row">
|
||||
<label for="redirect_type" class="col-lg-6 col-form-label text-end">Redirect Type:</label>
|
||||
<div class="col-lg-2">
|
||||
<select name="redirect_type" id="redirect_type" class="form-control">
|
||||
{OPTION=redirect_type}
|
||||
<option value='external'>External</option>
|
||||
<option value='internal'>Internal</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Hidden Token -->
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
|
||||
<!-- Submit Button -->
|
||||
<div class="text-center">
|
||||
<button type="submit" name="submit" value="submit" class="btn btn-primary btn-lg">Save</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
48
app/views/admin/routes/list.html
Executable file
48
app/views/admin/routes/list.html
Executable file
@ -0,0 +1,48 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Redirects</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form action="{ROOT_URL}admin/routes/delete" method="post">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 5%">ID</th>
|
||||
<th style="width: 15%">Nickname</th>
|
||||
<th style="width: 15%">Type</th>
|
||||
<th style="width: 15%">Path</th>
|
||||
<th style="width: 15%">Destination</th>
|
||||
<th style="width: 5%">Edit</th>
|
||||
<th style="width: 5%">Delete</th>
|
||||
<th style="width: 5%">
|
||||
<input type="checkbox" onchange="checkAll(this)" name="check.r" value="R_[]">
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{LOOP}
|
||||
<tr>
|
||||
<td align="center">{ID}</td>
|
||||
<td><a href='{ROOT_URL}admin/routes/view/{ID}' class="text-decoration-none">{nickname}</a></td>
|
||||
<td>{redirect_type}</td>
|
||||
<td>{original_url}</td>
|
||||
<td>{forwarded_url}</td>
|
||||
<td><a href="{ROOT_URL}admin/routes/edit/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil"></i></a></td>
|
||||
<td><a href="{ROOT_URL}admin/routes/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||
<td>
|
||||
<input type="checkbox" value="{ID}" name="R_[]">
|
||||
</td>
|
||||
</tr>
|
||||
{/LOOP}
|
||||
{ALT}
|
||||
<tr>
|
||||
<td align="center" colspan="6">
|
||||
No results to show.
|
||||
</td>
|
||||
</tr>
|
||||
{/ALT}
|
||||
</tbody>
|
||||
</table>
|
||||
<a href="{ROOT_URL}admin/routes/create" class="btn btn-sm btn-primary">Create</a>
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||
</form>
|
||||
</div>
|
42
app/views/admin/routes/view.html
Executable file
42
app/views/admin/routes/view.html
Executable file
@ -0,0 +1,42 @@
|
||||
<div class="container py-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<div class="card shadow">
|
||||
<!-- Card Header -->
|
||||
<div class="card-header text-center bg-dark text-white">
|
||||
<h3 class="card-title mb-0">{nickname}</h3>
|
||||
</div>
|
||||
|
||||
<!-- Card Body -->
|
||||
<div class="card-body">
|
||||
<div class="row align-items-center">
|
||||
<!-- Log Details -->
|
||||
<table class="table table-borderless">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row" class="col-3">Type</th>
|
||||
<td>{redirect_type}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row" class="col-3">Original URL</th>
|
||||
<td>{original_url}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row" class="col-3">Destination URL</th>
|
||||
<td>{forwarded_url}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Admin Controls -->
|
||||
<div class="card-footer text-center">
|
||||
<a href="{ROOT_URL}admin/routes/edit/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil"></i></a>
|
||||
<a href="{ROOT_URL}admin/routes/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
18
app/views/admin/settings.html
Executable file
18
app/views/admin/settings.html
Executable file
@ -0,0 +1,18 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Settings</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form method="post" enctype="multipart/form-data">
|
||||
<fieldset>
|
||||
{configForm}
|
||||
|
||||
<!-- Hidden Token -->
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
</fieldset>
|
||||
|
||||
<!-- Submit Button -->
|
||||
<div class="text-center">
|
||||
<button type="submit" name="submit" value="submit" class="btn btn-primary btn-lg center-block">Submit</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
40
app/views/admin/tokens/create.html
Executable file
40
app/views/admin/tokens/create.html
Executable file
@ -0,0 +1,40 @@
|
||||
<div class="mb-4 mt-4">
|
||||
<div class="offset-md-1 col-10 py-3 context-main-bg">
|
||||
<legend class="text-center">Create Token</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form method="post" class="container py-4">
|
||||
<fieldset>
|
||||
<div class="mb-3 row">
|
||||
<label for="name" class="col-lg-5 col-form-label text-end">Name</label>
|
||||
<div class="col-lg-3">
|
||||
<input type="text" class="form-control" name="name" id="name" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="token_type" class="col-lg-5 col-form-label text-end">Token Type</label>
|
||||
<div class="col-lg-3">
|
||||
<select id="token_type" name="token_type" class="form-control">
|
||||
<option value='app' selected>Application</option>
|
||||
<option value='user'>User</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="notes" class="col-lg-5 col-form-label text-end">Notes:</label>
|
||||
<div class="col-lg-3">
|
||||
<textarea class="form-control" name="notes" maxlength="2000" rows="5" cols="50" id="notes"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Hidden Token -->
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
|
||||
<!-- Submit Button -->
|
||||
<div class="text-center">
|
||||
<button type="submit" name="submit" value="submit" class="btn btn-primary btn-lg">Create</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
41
app/views/admin/tokens/edit.html
Executable file
41
app/views/admin/tokens/edit.html
Executable file
@ -0,0 +1,41 @@
|
||||
<div class="mb-4 mt-4">
|
||||
<div class="offset-md-1 col-10 p-3 context-main-bg">
|
||||
<legend class="text-center">Edit Token</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form method="post" class="container py-4">
|
||||
<fieldset>
|
||||
<div class="mb-3 row">
|
||||
<label for="name" class="col-lg-5 col-form-label text-end">Name</label>
|
||||
<div class="col-lg-3">
|
||||
<input type="text" class="form-control" name="name" id="name" value="{name}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="token_type" class="col-lg-5 col-form-label text-end">Token Type</label>
|
||||
<div class="col-lg-3">
|
||||
<select id="token_type" name="token_type" class="form-control">
|
||||
{OPTION=token_type}
|
||||
<option value='app' selected>Application</option>
|
||||
<option value='user'>User</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="title" class="col-lg-5 col-form-label text-end">Notes:</label>
|
||||
<div class="col-lg-3">
|
||||
<textarea class="form-control" name="notes" maxlength="2000" rows="5" cols="50" id="notes">{notes}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Hidden Token -->
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
|
||||
<!-- Submit Button -->
|
||||
<div class="text-center">
|
||||
<button type="submit" name="submit" value="submit" class="btn btn-primary btn-lg">Save</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
33
app/views/admin/tokens/list.html
Executable file
33
app/views/admin/tokens/list.html
Executable file
@ -0,0 +1,33 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Tokens</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 55%">Name</th>
|
||||
<th style="width: 25%">Type</th>
|
||||
<th style="width: 10%">Delete</th>
|
||||
<th style="width: 10%">Delete</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{LOOP}
|
||||
<tr>
|
||||
<td><a href='{ROOT_URL}admin/tokens/view/{ID}' class="text-decoration-none">{name}</a></td>
|
||||
<td>{token_type}</td>
|
||||
<td><a href="{ROOT_URL}admin/tokens/edit/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil"></i></a></td>
|
||||
<td><a href="{ROOT_URL}admin/tokens/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||
</tr>
|
||||
{/LOOP}
|
||||
{ALT}
|
||||
<tr>
|
||||
<td align="center" colspan="6">
|
||||
No results to show.
|
||||
</td>
|
||||
</tr>
|
||||
{/ALT}
|
||||
</tbody>
|
||||
</table>
|
||||
<a href="{ROOT_URL}admin/tokens/create" class="btn btn-sm btn-primary">Create</a>
|
||||
</div>
|
53
app/views/admin/tokens/view.html
Executable file
53
app/views/admin/tokens/view.html
Executable file
@ -0,0 +1,53 @@
|
||||
<div class="container py-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<div class="card shadow">
|
||||
<!-- Card Header -->
|
||||
<div class="card-header text-center bg-dark text-white">
|
||||
<h3 class="card-title mb-0">{name}</h3>
|
||||
</div>
|
||||
|
||||
<!-- Card Body -->
|
||||
<div class="card-body">
|
||||
<div class="row align-items-center">
|
||||
<!-- Log Details -->
|
||||
<table class="table table-borderless">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row" class="col-3">Type</th>
|
||||
<td>{token_type}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Created At</th>
|
||||
<td>{DTC}{createdAt}{/DTC}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Expires At</th>
|
||||
<td>{DTC}{expiresAt}{/DTC}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Token</th>
|
||||
<td class="text-break">{token}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Secret</th>
|
||||
<td class="text-break">{secret}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Notes</th>
|
||||
<td>{notes}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Admin Controls -->
|
||||
<div class="card-footer text-center">
|
||||
<a href="{ROOT_URL}admin/tokens/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
74
app/views/admin/users/create.html
Executable file
74
app/views/admin/users/create.html
Executable file
@ -0,0 +1,74 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Add User</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form method="post">
|
||||
<fieldset>
|
||||
<!-- Group -->
|
||||
<div class="mb-3 row">
|
||||
<label for="groupSelect" class="col-lg-6 col-form-label text-end">Group:</label>
|
||||
<div class="col-lg-2">
|
||||
{groupSelect}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Username -->
|
||||
<div class="mb-3 row">
|
||||
<label for="username" class="col-lg-6 col-form-label text-end">Username:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="text" class="form-control" name="username" id="username" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Email -->
|
||||
<div class="mb-3 row">
|
||||
<label for="email" class="col-lg-6 col-form-label text-end">Email:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="email" class="form-control" name="email" id="email" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Re-enter Email -->
|
||||
<div class="mb-3 row">
|
||||
<label for="email2" class="col-lg-6 col-form-label text-end">Re-Enter Email:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="email" class="form-control" name="email2" id="email2" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Password -->
|
||||
<div class="mb-3 row">
|
||||
<label for="password" class="col-lg-6 col-form-label text-end">Password:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="password" class="form-control" name="password" id="password" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Re-enter Password -->
|
||||
<div class="mb-3 row">
|
||||
<label for="password2" class="col-lg-6 col-form-label text-end">Re-Enter Password:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="password" class="form-control" name="password2" id="password2" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Confirmation -->
|
||||
<div class="mb-3 row">
|
||||
<label for="confirmation" class="col-lg-6 col-form-label text-end">Send Confirmation:</label>
|
||||
<div class="col-lg-2">
|
||||
<div class="mb-3 form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" role="switch" name="confirmation" id="confirmation" value="true">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Hidden Token -->
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
|
||||
<!-- Submit Button -->
|
||||
<div class="text-center">
|
||||
<button type="submit" name="submit" value="submit" class="btn btn-primary btn-lg">Create</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
78
app/views/admin/users/edit.html
Executable file
78
app/views/admin/users/edit.html
Executable file
@ -0,0 +1,78 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Edit User: <b>{USERNAME}</b></legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form action="{ROOT_URL}admin/users/edit/{ID}" method="post" enctype="multipart/form-data">
|
||||
<fieldset>
|
||||
<!-- Group -->
|
||||
<div class="mb-3 row">
|
||||
<label for="groupSelect" class="col-lg-6 col-form-label text-end">Group:</label>
|
||||
<div class="col-lg-2">
|
||||
{groupSelect}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Username -->
|
||||
<div class="mb-3 row">
|
||||
<label for="username" class="col-lg-6 col-form-label text-end">Username:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="text" class="form-control" name="username" id="username" value="{username}" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Email -->
|
||||
<div class="mb-3 row">
|
||||
<label for="email" class="col-lg-6 col-form-label text-end">Email:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="email" class="form-control" name="email" id="email" value="{email}" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{AvatarSettings}
|
||||
|
||||
<!-- Password -->
|
||||
<div class="mb-3 row">
|
||||
<label for="password" class="col-lg-6 col-form-label text-end">Password:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="password" class="form-control" name="password" id="password" value="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Re-enter Password -->
|
||||
<div class="mb-3 row">
|
||||
<label for="password2" class="col-lg-6 col-form-label text-end">Re-Enter Password:</label>
|
||||
<div class="col-lg-2">
|
||||
<input type="password" class="form-control" name="password2" id="password2" value="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Confirmation -->
|
||||
<div class="mb-3 row">
|
||||
<label for="confirmation" class="col-lg-6 col-form-label text-end">Send Confirmation:</label>
|
||||
<div class="col-lg-2">
|
||||
<div class="mb-3 form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" role="switch" name="confirmation" id="confirmation" value="true">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Confirmed -->
|
||||
<div class="mb-3 row">
|
||||
<label for="confirmed" class="col-lg-6 col-form-label text-end">Email is confirmed:</label>
|
||||
<div class="col-lg-2">
|
||||
<div class="mb-3 form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" role="switch" name="confirmed" id="confirmed" value="true">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Hidden Token -->
|
||||
<input type="hidden" name="token" value="{TOKEN}">
|
||||
|
||||
<!-- Submit Button -->
|
||||
<div class="text-center">
|
||||
<button type="submit" name="submit" value="submit" class="btn btn-primary btn-lg">Save</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
44
app/views/admin/users/list.html
Executable file
44
app/views/admin/users/list.html
Executable file
@ -0,0 +1,44 @@
|
||||
<div class="context-main-bg context-main p-3">
|
||||
<legend class="text-center">Users</legend>
|
||||
<hr>
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<form action="{ROOT_URL}admin/users/delete" method="post">
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 5%">ID</th>
|
||||
<th style="width: 60%">Username</th>
|
||||
<th style="width: 20%">Joined</th>
|
||||
<th style="width: 5%">Edit</th>
|
||||
<th style="width: 5%">Delete</th>
|
||||
<th style="width: 5%">
|
||||
<input type="checkbox" onchange="checkAll(this)" name="check.u" value="U_[]">
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{LOOP}
|
||||
<tr>
|
||||
<td align="center">{ID}</td>
|
||||
<td><a href='{ROOT_URL}admin/users/view/{ID}' class="text-decoration-none">{usernamePretty}</a></td>
|
||||
<td>{DTC date}{registered}{/DTC}</td>
|
||||
<td><a href="{ROOT_URL}admin/users/edit/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil"></i></a></td>
|
||||
<td><a href="{ROOT_URL}admin/users/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||
<td>
|
||||
<input type="checkbox" value="{ID}" name="U_[]">
|
||||
</td>
|
||||
</tr>
|
||||
{/LOOP}
|
||||
{ALT}
|
||||
<tr>
|
||||
<td align="center" colspan="6">
|
||||
No results to show.
|
||||
</td>
|
||||
</tr>
|
||||
{/ALT}
|
||||
</tbody>
|
||||
</table>
|
||||
<a href="{ROOT_URL}admin/users/create" class="btn btn-sm btn-primary">Create</a>
|
||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||
</form>
|
||||
</div>
|
78
app/views/admin/users/view.html
Executable file
78
app/views/admin/users/view.html
Executable file
@ -0,0 +1,78 @@
|
||||
<div class="container py-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
{ADMIN_BREADCRUMBS}
|
||||
<div class="card shadow">
|
||||
<!-- Card Header -->
|
||||
<div class="card-header text-center bg-dark text-white">
|
||||
<h3 class="card-title mb-0">{usernamePretty}</h3>
|
||||
</div>
|
||||
|
||||
<!-- Card Body -->
|
||||
<div class="card-body">
|
||||
<div class="row align-items-center">
|
||||
<!-- User Image -->
|
||||
<div class="col-md-4 text-center">
|
||||
<img src="{ROOT_URL}{avatar}" alt="User Pic" class="rounded-circle img-fluid" style="max-width: 150px;">
|
||||
</div>
|
||||
|
||||
<!-- User Details -->
|
||||
<div class="col-md-8">
|
||||
<table class="table table-borderless">
|
||||
<tbody>
|
||||
{ADMIN}
|
||||
<tr>
|
||||
<th scope="row">Confirmed:</th>
|
||||
<td>{confirmedText}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Group:</th>
|
||||
<td><a href="{ROOT_URL}admin/groups/view/{userGroup}" class="text-decoration-none">{groupName}</a></td>
|
||||
</tr>
|
||||
{/ADMIN}
|
||||
<tr>
|
||||
<th scope="row">Registered:</th>
|
||||
<td>{DTC}{registered}{/DTC}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Last Seen:</th>
|
||||
<td>{DTC}{lastLogin}{/DTC}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Gender:</th>
|
||||
<td>{gender}</td>
|
||||
</tr>
|
||||
{ADMIN}
|
||||
<tr>
|
||||
<th scope="row">Email:</th>
|
||||
<td><a href="mailto:{email}" class="text-decoration-none">{email}</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">User ID:</th>
|
||||
<td>{ID}</td>
|
||||
</tr>
|
||||
{/ADMIN}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Admin Controls -->
|
||||
<div class="card-footer text-center">
|
||||
{ADMIN}
|
||||
<a href="{ROOT_URL}messages/create?prepopuser={USERNAME}" class="btn btn-primary btn-sm me-2" data-bs-toggle="tooltip" title="Broadcast Message">
|
||||
<i class="fa fa-fw fa-envelope"></i>
|
||||
</a>
|
||||
<a href="{ROOT_URL}admin/users/edit/{ID}" class="btn btn-warning btn-sm me-2" data-bs-toggle="tooltip" title="Edit User">
|
||||
<i class="fa fa-fw fa-pencil"></i>
|
||||
</a>
|
||||
<a href="{ROOT_URL}admin/users/delete/{ID}" class="btn btn-danger btn-sm" data-bs-toggle="tooltip" title="Delete User">
|
||||
<i class="fa fa-fw fa-trash"></i>
|
||||
</a>
|
||||
{/ADMIN}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
Reference in New Issue
Block a user