Bugfixes and Bootstrap 5 finalized
This commit is contained in:
@ -12,6 +12,7 @@
|
|||||||
namespace TheTempusProject\Classes;
|
namespace TheTempusProject\Classes;
|
||||||
|
|
||||||
use TheTempusProject\Houdini\Classes\Forms;
|
use TheTempusProject\Houdini\Classes\Forms;
|
||||||
|
use TheTempusProject\Houdini\Classes\Template;
|
||||||
use TheTempusProject\Canary\Bin\Canary as Debug;
|
use TheTempusProject\Canary\Bin\Canary as Debug;
|
||||||
use TheTempusProject\Bedrock\Functions\Check;
|
use TheTempusProject\Bedrock\Functions\Check;
|
||||||
use TheTempusProject\Bedrock\Functions\Input;
|
use TheTempusProject\Bedrock\Functions\Input;
|
||||||
@ -19,7 +20,6 @@ use TheTempusProject\Bedrock\Classes\Config as BedrockConfig;
|
|||||||
|
|
||||||
class Config extends BedrockConfig {
|
class Config extends BedrockConfig {
|
||||||
public static function getFieldEditHtml( $name, $includeProtected = false ) {
|
public static function getFieldEditHtml( $name, $includeProtected = false ) {
|
||||||
// @todo: includeProtected is unused here
|
|
||||||
$node = self::get( $name );
|
$node = self::get( $name );
|
||||||
if ( empty( $node ) ) {
|
if ( empty( $node ) ) {
|
||||||
return;
|
return;
|
||||||
@ -28,13 +28,57 @@ class Config extends BedrockConfig {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$fieldname = str_ireplace( '/', '-', $name );
|
$fieldname = str_ireplace( '/', '-', $name );
|
||||||
$html = Forms::getFormFieldHtml(
|
|
||||||
$fieldname,
|
$html = '';
|
||||||
$node['pretty'],
|
$fieldHtml = '';
|
||||||
$node['type'],
|
switch ( $node['type'] ) {
|
||||||
$node['value'],
|
case 'radio':
|
||||||
);
|
case 'bool':
|
||||||
return $html;
|
case 'boolean':
|
||||||
|
$fieldHtml = Forms::getSwitchHtml( $fieldname, [ 'true', 'false' ], $node['value'] );
|
||||||
|
break;
|
||||||
|
case 'select':
|
||||||
|
$fieldHtml = Forms::getSelectHtml( $fieldname, $options, $node['value'] );
|
||||||
|
break;
|
||||||
|
case 'block':
|
||||||
|
$fieldHtml = Forms::getTextBlockHtml( $fieldname, $node['value'] );
|
||||||
|
break;
|
||||||
|
case 'text':
|
||||||
|
case 'url':
|
||||||
|
$fieldHtml = Forms::getTextHtml( $fieldname, $node['value'] );
|
||||||
|
break;
|
||||||
|
case 'checkbox':
|
||||||
|
$fieldHtml = Forms::getCheckboxHtml( $fieldname, $node['value'] );
|
||||||
|
break;
|
||||||
|
case 'timezone':
|
||||||
|
$fieldHtml = Forms::getTimezoneHtml( $node['value'] );
|
||||||
|
break;
|
||||||
|
case 'file':
|
||||||
|
$fieldHtml = Forms::getFileHtml( $fieldname );
|
||||||
|
break;
|
||||||
|
case 'customSelect':
|
||||||
|
if ( empty( $options ) ) {
|
||||||
|
$options = '{' . $fieldname . '-options}';
|
||||||
|
}
|
||||||
|
$fieldHtml = Forms::getSelectHtml( $fieldname, $options, $node['value'] );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$html .= '<div class="mb-3 row">';
|
||||||
|
$html .= '<label for="' . $fieldname . '" class="col-lg-3 col-form-label text-end">' . $node['pretty'] . '</label>';
|
||||||
|
$html .= '<div class="col-lg-6">';
|
||||||
|
$html .= $fieldHtml;
|
||||||
|
$html .= '</div>';
|
||||||
|
if ( 'file' === $node['type'] ) {
|
||||||
|
$html .= '<div class="mb-3 row">';
|
||||||
|
$html .= '<h4 class="col-lg-3 col-form-label text-end">Current Image</h4>';
|
||||||
|
$html .= '<div class="col-lg-6">';
|
||||||
|
$html .= '<img alt="User Avatar" src="{ROOT_URL}' . $node['value'] . '" class="img-circle img-fluid p-2 avatar-125">';
|
||||||
|
$html .= '</div>';
|
||||||
|
}
|
||||||
|
$html .= '</div>';
|
||||||
|
|
||||||
|
return Template::parse( $html );
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getCategoryEditHtml( $category ) {
|
public static function getCategoryEditHtml( $category ) {
|
||||||
@ -47,12 +91,12 @@ class Config extends BedrockConfig {
|
|||||||
Debug::warn( "Config category not found: $category" );
|
Debug::warn( "Config category not found: $category" );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$categoryHeader = '<div class="form-group"><label>' . ucfirst( $category ) . ':</label><hr></div>';
|
$categoryHeader = '<div class=""><h3 class="text-center">' . ucfirst( $category ) . ':</h3><hr>';
|
||||||
foreach ( self::$config[$category] as $field => $node ) {
|
foreach ( self::$config[$category] as $field => $node ) {
|
||||||
$html .= self::getFieldEditHtml( $category . '/' . $field );
|
$html .= self::getFieldEditHtml( $category . '/' . $field );
|
||||||
}
|
}
|
||||||
if ( !empty( $html ) ) {
|
if ( !empty( $html ) ) {
|
||||||
$html = $categoryHeader . $html;
|
$html = $categoryHeader . $html . '</div>';
|
||||||
}
|
}
|
||||||
return $html;
|
return $html;
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ use TheTempusProject\Canary\Bin\Canary as Debug;
|
|||||||
use TheTempusProject\Bedrock\Functions\Check;
|
use TheTempusProject\Bedrock\Functions\Check;
|
||||||
use TheTempusProject\Houdini\Classes\Forms;
|
use TheTempusProject\Houdini\Classes\Forms;
|
||||||
use TheTempusProject\Bedrock\Functions\Input;
|
use TheTempusProject\Bedrock\Functions\Input;
|
||||||
|
use TheTempusProject\Houdini\Classes\Template;
|
||||||
|
|
||||||
class Permissions {
|
class Permissions {
|
||||||
public static $permissions = false;
|
public static $permissions = false;
|
||||||
@ -237,8 +238,21 @@ class Permissions {
|
|||||||
} else {
|
} else {
|
||||||
$checked = false;
|
$checked = false;
|
||||||
}
|
}
|
||||||
$form .= Forms::getFormFieldHtml( $name, $details['pretty'], 'checkbox', $checked );
|
$form .= self::getFieldEditHtml( $name, $checked, $details['pretty'] );
|
||||||
}
|
}
|
||||||
return $form;
|
return $form;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getFieldEditHtml( $name, $default, $pretty ) {
|
||||||
|
$fieldname = str_ireplace( '/', '-', $name );
|
||||||
|
$fieldHtml = Forms::getSwitchHtml( $fieldname, [ 'true', 'false' ], $default );
|
||||||
|
$html = '';
|
||||||
|
$html .= '<div class="mb-3 row">';
|
||||||
|
$html .= '<label for="' . $fieldname . '" class="col-lg-6 col-form-label text-end">' . $pretty . '</label>';
|
||||||
|
$html .= '<div class="col-lg-6">';
|
||||||
|
$html .= $fieldHtml;
|
||||||
|
$html .= '</div>';
|
||||||
|
$html .= '</div>';
|
||||||
|
return Template::parse( $html );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,7 @@ class Admin extends AdminController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function index() {
|
public function index() {
|
||||||
return Views::view( 'admin.logs.admin_list', self::$log->listPaginated( 'admin' ) );
|
return Views::view( 'admin.logs.admin_list', self::$log->list( 'admin' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function view( $id = null ) {
|
public function view( $id = null ) {
|
||||||
|
@ -59,6 +59,6 @@ class Composer extends AdminController {
|
|||||||
$out[] = (object) $versionsInstalled[ $name ];
|
$out[] = (object) $versionsInstalled[ $name ];
|
||||||
}
|
}
|
||||||
|
|
||||||
Views::view( 'admin.modules.composer.dependencies', $out );
|
Views::view( 'admin.modules.dependencies', $out );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,7 @@ class Errors extends AdminController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function index() {
|
public function index() {
|
||||||
return Views::view( 'admin.logs.error_list', self::$log->listPaginated( 'error' ) );
|
return Views::view( 'admin.logs.error_list', self::$log->list( 'error' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function view( $id = null ) {
|
public function view( $id = null ) {
|
||||||
|
@ -15,8 +15,11 @@ use TheTempusProject\Houdini\Classes\Views;
|
|||||||
use TheTempusProject\Houdini\Classes\Components;
|
use TheTempusProject\Houdini\Classes\Components;
|
||||||
use TheTempusProject\Classes\AdminController;
|
use TheTempusProject\Classes\AdminController;
|
||||||
use TheTempusProject\Models\User;
|
use TheTempusProject\Models\User;
|
||||||
use TheTempusProject\Plugins\Comments;
|
use TheTempusProject\Models\Comments;
|
||||||
use TheTempusProject\Plugins\Blog;
|
use TheTempusProject\Models\Posts;
|
||||||
|
use TheTempusProject\Plugins\Comments as CommentPlugin;
|
||||||
|
use TheTempusProject\Plugins\Blog as BlogPlugin;
|
||||||
|
use TheTempusProject\Canary\Bin\Canary as Debug;
|
||||||
|
|
||||||
class Home extends AdminController {
|
class Home extends AdminController {
|
||||||
public static $user;
|
public static $user;
|
||||||
@ -30,17 +33,29 @@ class Home extends AdminController {
|
|||||||
|
|
||||||
public function index() {
|
public function index() {
|
||||||
if ( class_exists( 'TheTempusProject\Plugins\Comments' ) ) {
|
if ( class_exists( 'TheTempusProject\Plugins\Comments' ) ) {
|
||||||
$comments = new Comments;
|
$plugin = new CommentPlugin;
|
||||||
self::$comments = $comments->getModel();
|
|
||||||
$comments = Views::simpleView( 'comments.admin.dashboard', self::$comments->recent( 'all', 5 ) );
|
if ( ! $plugin->checkEnabled() ) {
|
||||||
Components::set( 'commentDash', $comments );
|
Debug::info( 'Comments Plugin is disabled in the control panel.' );
|
||||||
|
Components::set( 'commentDash', '' );
|
||||||
|
} else {
|
||||||
|
$comments = new Comments;
|
||||||
|
$commentList = Views::simpleView( 'comments.admin.dashboard', $comments->recent( 'all', 5 ) );
|
||||||
|
Components::set( 'commentDash', $commentList );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( class_exists( 'TheTempusProject\Plugins\Blog' ) ) {
|
if ( class_exists( 'TheTempusProject\Plugins\Blog' ) ) {
|
||||||
$blog = new Blog;
|
$plugin = new BlogPlugin;
|
||||||
self::$posts = $blog->posts;
|
|
||||||
$posts = Views::simpleView( 'blog.admin.dashboard', self::$posts->recent( 5 ) );
|
if ( ! $plugin->checkEnabled() ) {
|
||||||
Components::set( 'blogDash', $posts );
|
Debug::info( 'Blog Plugin is disabled in the control panel.' );
|
||||||
|
Components::set( 'blogDash', '' );
|
||||||
|
} else {
|
||||||
|
$posts = new Posts;
|
||||||
|
$postsList = Views::simpleView( 'blog.admin.dashboard', $posts->recent( 5 ) );
|
||||||
|
Components::set( 'blogDash', $postsList );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self::$user = new User;
|
self::$user = new User;
|
||||||
|
@ -39,7 +39,7 @@ class Logins extends AdminController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function index() {
|
public function index() {
|
||||||
return Views::view( 'admin.logs.login_list', self::$log->listPaginated( 'login' ) );
|
return Views::view( 'admin.logs.login_list', self::$log->list( 'login' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function view( $id = null ) {
|
public function view( $id = null ) {
|
||||||
|
@ -26,8 +26,8 @@ class Logs extends AdminController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function index( $data = null ) {
|
public function index( $data = null ) {
|
||||||
Views::view( 'admin.logs.error_list', self::$log->listPaginated( 'error' ) );
|
Views::view( 'admin.logs.error_list', self::$log->list( 'error' ) );
|
||||||
Views::view( 'admin.logs.admin_list', self::$log->listPaginated( 'admin' ) );
|
Views::view( 'admin.logs.admin_list', self::$log->list( 'admin' ) );
|
||||||
Views::view( 'admin.logs.login_list', self::$log->listPaginated( 'login' ) );
|
Views::view( 'admin.logs.login_list', self::$log->list( 'login' ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,12 @@ class Plugins extends AdminController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function disable( $name = null ) {
|
public function disable( $name = null ) {
|
||||||
|
if ( empty( $name ) ) {
|
||||||
|
Session::flash( 'error', 'Unknown Plugin.' );
|
||||||
|
Redirect::to( 'admin/plugins' );
|
||||||
|
}
|
||||||
Components::set( 'PLUGIN', $name );
|
Components::set( 'PLUGIN', $name );
|
||||||
|
self::$title = 'Admin - Disable ' . $name;
|
||||||
if ( !Input::exists( 'installHash' ) ) {
|
if ( !Input::exists( 'installHash' ) ) {
|
||||||
return Views::view( 'admin.modules.plugins.disable' );
|
return Views::view( 'admin.modules.plugins.disable' );
|
||||||
}
|
}
|
||||||
@ -52,7 +57,12 @@ class Plugins extends AdminController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function enable( $name = null ) {
|
public function enable( $name = null ) {
|
||||||
|
if ( empty( $name ) ) {
|
||||||
|
Session::flash( 'error', 'Unknown Plugin.' );
|
||||||
|
Redirect::to( 'admin/plugins' );
|
||||||
|
}
|
||||||
Components::set( 'PLUGIN', $name );
|
Components::set( 'PLUGIN', $name );
|
||||||
|
self::$title = 'Admin - Enable ' . $name;
|
||||||
if ( !Input::exists( 'installHash' ) ) {
|
if ( !Input::exists( 'installHash' ) ) {
|
||||||
return Views::view( 'admin.modules.plugins.enable' );
|
return Views::view( 'admin.modules.plugins.enable' );
|
||||||
}
|
}
|
||||||
@ -71,6 +81,7 @@ class Plugins extends AdminController {
|
|||||||
}
|
}
|
||||||
$name = strtolower( $name );
|
$name = strtolower( $name );
|
||||||
Components::set( 'PLUGIN', $name );
|
Components::set( 'PLUGIN', $name );
|
||||||
|
self::$title = 'Admin - Install ' . $name;
|
||||||
if ( ! Input::exists( 'installHash' ) ) {
|
if ( ! Input::exists( 'installHash' ) ) {
|
||||||
return Views::view( 'admin.modules.plugins.install' );
|
return Views::view( 'admin.modules.plugins.install' );
|
||||||
}
|
}
|
||||||
@ -95,6 +106,7 @@ class Plugins extends AdminController {
|
|||||||
}
|
}
|
||||||
$name = strtolower($name);
|
$name = strtolower($name);
|
||||||
Components::set( 'PLUGIN', $name );
|
Components::set( 'PLUGIN', $name );
|
||||||
|
self::$title = 'Admin - Uninstall ' . $name;
|
||||||
|
|
||||||
if ( !Input::exists( 'uninstallHash' ) ) {
|
if ( !Input::exists( 'uninstallHash' ) ) {
|
||||||
return Views::view( 'admin.modules.plugins.uninstall' );
|
return Views::view( 'admin.modules.plugins.uninstall' );
|
||||||
|
@ -26,6 +26,7 @@ use TheTempusProject\Classes\AdminController;
|
|||||||
use TheTempusProject\Models\User;
|
use TheTempusProject\Models\User;
|
||||||
use TheTempusProject\Models\Group;
|
use TheTempusProject\Models\Group;
|
||||||
use TheTempusProject\TheTempusProject as App;
|
use TheTempusProject\TheTempusProject as App;
|
||||||
|
use TheTempusProject\Houdini\Classes\Template;
|
||||||
|
|
||||||
class Users extends AdminController {
|
class Users extends AdminController {
|
||||||
public static $user;
|
public static $user;
|
||||||
@ -63,8 +64,11 @@ class Users extends AdminController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$select = Forms::getSelectHtml(
|
||||||
$select = Forms::getFormFieldHtml( 'groupSelect', 'User Group', 'select', Config::getValue( 'group/defaultGroup' ), self::$group->listGroupsSimple() );
|
'groupSelect',
|
||||||
|
self::$group->listGroupsSimple(),
|
||||||
|
Config::getValue( 'group/defaultGroup' ),
|
||||||
|
);
|
||||||
Components::set( 'groupSelect', $select );
|
Components::set( 'groupSelect', $select );
|
||||||
Views::view( 'admin.users.create' );
|
Views::view( 'admin.users.create' );
|
||||||
}
|
}
|
||||||
@ -132,9 +136,15 @@ class Users extends AdminController {
|
|||||||
$userGroup = $userData->userGroup;
|
$userGroup = $userData->userGroup;
|
||||||
}
|
}
|
||||||
Forms::selectRadio( 'confirmed', $userData->confirmed );
|
Forms::selectRadio( 'confirmed', $userData->confirmed );
|
||||||
$avatar = Forms::getFormFieldHtml( 'avatar', 'User Avatar', 'file', $avatarLocation );
|
|
||||||
$select = Forms::getFormFieldHtml( 'groupSelect', 'User Group', 'select', $userGroup, self::$group->listGroupsSimple() );
|
$avatar = $this->getAvatar( 'avatar', $avatarLocation );
|
||||||
Components::set( 'AvatarSettings', $avatar );
|
Components::set( 'AvatarSettings', $avatar );
|
||||||
|
|
||||||
|
$select = Forms::getSelectHtml(
|
||||||
|
'groupSelect',
|
||||||
|
self::$group->listGroupsSimple(),
|
||||||
|
$userGroup,
|
||||||
|
);
|
||||||
Components::set( 'groupSelect', $select );
|
Components::set( 'groupSelect', $select );
|
||||||
Views::view( 'admin.users.edit', $userData );
|
Views::view( 'admin.users.edit', $userData );
|
||||||
}
|
}
|
||||||
@ -153,4 +163,28 @@ class Users extends AdminController {
|
|||||||
}
|
}
|
||||||
$this->index();
|
$this->index();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function getAvatar( $name, $value ) {
|
||||||
|
$fieldname = str_ireplace( '/', '-', $name );
|
||||||
|
|
||||||
|
$html = '';
|
||||||
|
$fieldHtml = '';
|
||||||
|
$fieldHtml = Forms::getFileHtml( $fieldname );
|
||||||
|
|
||||||
|
$html .= '<div class="mb-3 row">';
|
||||||
|
$html .= ' <label for="' . $fieldname . '" class="col-lg-6 col-form-label text-end">' . ucfirst( $fieldname ) . '</label>';
|
||||||
|
$html .= ' <div class="col-lg-2">';
|
||||||
|
$html .= ' ' . $fieldHtml;
|
||||||
|
$html .= ' </div>';
|
||||||
|
$html .= '</div>';
|
||||||
|
|
||||||
|
$html .= '<div class="mb-3 row">';
|
||||||
|
$html .= ' <h4 class="col-lg-6 col-form-label text-end">Current Image</h4>';
|
||||||
|
$html .= ' <div class="col-lg-2">';
|
||||||
|
$html .= ' <img alt="User Avatar" src="{ROOT_URL}' . $value . '" class="img-circle img-fluid p-2 avatar-125">';
|
||||||
|
$html .= ' </div>';
|
||||||
|
$html .= '</div>';
|
||||||
|
|
||||||
|
return Template::parse( $html );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,9 @@
|
|||||||
.context-main-bg {
|
.context-main-bg {
|
||||||
background-color: #2c2c2c;
|
background-color: #2c2c2c;
|
||||||
}
|
}
|
||||||
|
.context-second-bg {
|
||||||
|
background-color: #1e1e1e;
|
||||||
|
}
|
||||||
.bg-default {
|
.bg-default {
|
||||||
background-color: #2c2c2c;
|
background-color: #2c2c2c;
|
||||||
}
|
}
|
||||||
@ -109,8 +112,6 @@ body {
|
|||||||
*/
|
*/
|
||||||
.b-example-divider {
|
.b-example-divider {
|
||||||
background-color: rgba(255, 255, 255, .1);
|
background-color: rgba(255, 255, 255, .1);
|
||||||
border: solid rgba(255, 255, 255, .15);
|
|
||||||
box-shadow: inset 0 .5em 1.5em rgba(255, 255, 255, .1), inset 0 .125em .5em rgba(255, 255, 255, .15);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -27,15 +27,6 @@ function checkAll(ele) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function copyAll( ele ) {
|
|
||||||
var eleName = '#' + ele;
|
|
||||||
var text = $( eleName ).text();
|
|
||||||
text = text.replaceAll( "''", "\n" ).trim();
|
|
||||||
text = text.substring( 1, text.length - 1 );
|
|
||||||
navigator.clipboard.writeText( text );
|
|
||||||
console.log( '#' + ele );
|
|
||||||
}
|
|
||||||
|
|
||||||
function insertTag( box, tag ) {
|
function insertTag( box, tag ) {
|
||||||
var Field = document.getElementById( box );
|
var Field = document.getElementById( box );
|
||||||
var currentPos = cursorPos( Field );
|
var currentPos = cursorPos( Field );
|
||||||
@ -69,6 +60,26 @@ function getRandomInt(min, max) {
|
|||||||
return Math.floor(Math.random() * (maxFloored - minCeiled) + minCeiled);
|
return Math.floor(Math.random() * (maxFloored - minCeiled) + minCeiled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function copyElementText( id ) {
|
||||||
|
const inputElement = document.getElementById( id );
|
||||||
|
const textToCopy = inputElement.value;
|
||||||
|
|
||||||
|
if (navigator.clipboard && navigator.clipboard.writeText) {
|
||||||
|
navigator.clipboard.writeText(textToCopy)
|
||||||
|
.then(() => alert('Copied to clipboard!'))
|
||||||
|
.catch((err) => console.error('Failed to copy: ', err));
|
||||||
|
} else {
|
||||||
|
// Fallback for older browsers
|
||||||
|
inputElement.select();
|
||||||
|
try {
|
||||||
|
document.execCommand('copy');
|
||||||
|
alert('Copied to clipboard!');
|
||||||
|
} catch (err) {
|
||||||
|
console.error('Failed to copy: ', err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$('select').each(function() {
|
$('select').each(function() {
|
||||||
var selectedValue = $(this).attr('value');
|
var selectedValue = $(this).attr('value');
|
||||||
@ -84,21 +95,29 @@ $(document).ready(function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// with the dynamic footer, you need to adjust the content padding to make sure the footer doesn't overlap the content
|
// with the dynamic footer, you need to adjust the content padding to make sure the footer doesn't overlap the content
|
||||||
document.addEventListener('DOMContentLoaded', function () {
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
const toggleButton = document.getElementById('dark-mode-toggle');
|
const toggleButton = document.getElementById('dark-mode-toggle');
|
||||||
const enableButton = document.getElementById('dark-mode-toggle-button');
|
const enableButton = document.getElementById('dark-mode-toggle-button');
|
||||||
const darkModeStylesheet = document.getElementById('dark-mode-stylesheet');
|
const darkModeStylesheet = document.getElementById('dark-mode-stylesheet');
|
||||||
|
|
||||||
// Check if dark mode is saved in localStorage
|
// Check if dark mode is saved in localStorage
|
||||||
if (localStorage.getItem('darkMode') === 'enabled') {
|
if (localStorage.getItem('darkMode') === 'enabled') {
|
||||||
darkModeStylesheet.disabled = false;
|
darkModeStylesheet.disabled = false;
|
||||||
toggleButton.checked = true;
|
toggleButton.checked = true;
|
||||||
|
|
||||||
if ( enableButton ) {
|
if ( enableButton ) {
|
||||||
enableButton.innerText = 'Disable Now';
|
enableButton.innerText = 'Disable Now';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
document.querySelectorAll('.table-striped').forEach((table) => {
|
||||||
|
if (localStorage.getItem('darkMode') === 'enabled') {
|
||||||
|
table.classList.add('table-dark');
|
||||||
|
} else {
|
||||||
|
table.classList.add('table-light')
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if ( enableButton ) {
|
if ( enableButton ) {
|
||||||
enableButton.addEventListener('click', function () {
|
enableButton.addEventListener('click', function () {
|
||||||
if (darkModeStylesheet.disabled) {
|
if (darkModeStylesheet.disabled) {
|
||||||
@ -121,5 +140,15 @@ $(document).ready(function() {
|
|||||||
darkModeStylesheet.disabled = true;
|
darkModeStylesheet.disabled = true;
|
||||||
localStorage.setItem('darkMode', 'disabled');
|
localStorage.setItem('darkMode', 'disabled');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
document.querySelectorAll('.table-striped').forEach((table) => {
|
||||||
|
if (localStorage.getItem('darkMode') === 'enabled') {
|
||||||
|
table.classList.add('table-dark');
|
||||||
|
table.classList.remove('table-light');
|
||||||
|
} else {
|
||||||
|
table.classList.add('table-light');
|
||||||
|
table.classList.remove('table-dark');
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
@ -20,15 +20,14 @@ use TheTempusProject\Houdini\Classes\Navigation;
|
|||||||
use TheTempusProject\Houdini\Classes\Components;
|
use TheTempusProject\Houdini\Classes\Components;
|
||||||
use TheTempusProject\Classes\AdminController;
|
use TheTempusProject\Classes\AdminController;
|
||||||
use TheTempusProject\Classes\Forms;
|
use TheTempusProject\Classes\Forms;
|
||||||
use TheTempusProject\Plugins\Blog as BlogPlugin;
|
use TheTempusProject\Models\Posts;
|
||||||
|
|
||||||
class Blog extends AdminController {
|
class Blog extends AdminController {
|
||||||
public static $posts;
|
public static $posts;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
$blog = new BlogPlugin;
|
self::$posts = new Posts;
|
||||||
self::$posts = $blog->posts;
|
|
||||||
self::$title = 'Admin - Blog';
|
self::$title = 'Admin - Blog';
|
||||||
$view = Navigation::activePageSelect( 'nav.admin', '/admin/blog' );
|
$view = Navigation::activePageSelect( 'nav.admin', '/admin/blog' );
|
||||||
Components::set( 'ADMINNAV', $view );
|
Components::set( 'ADMINNAV', $view );
|
||||||
|
@ -27,17 +27,16 @@ use TheTempusProject\Plugins\Blog as BlogPlugin;
|
|||||||
use TheTempusProject\TheTempusProject as App;
|
use TheTempusProject\TheTempusProject as App;
|
||||||
use TheTempusProject\Plugins\Comments;
|
use TheTempusProject\Plugins\Comments;
|
||||||
use TheTempusProject\Models\Comments as CommentsModel;
|
use TheTempusProject\Models\Comments as CommentsModel;
|
||||||
|
use TheTempusProject\Models\Posts as PostsModel;
|
||||||
|
|
||||||
class Blog extends Controller {
|
class Blog extends Controller {
|
||||||
protected static $blog;
|
protected static $blog;
|
||||||
protected static $comments;
|
|
||||||
protected static $posts;
|
protected static $posts;
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
Template::setTemplate( 'blog' );
|
Template::setTemplate( 'blog' );
|
||||||
$blog = new BlogPlugin;
|
self::$posts = new PostsModel;
|
||||||
self::$posts = $blog->posts;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function index() {
|
public function index() {
|
||||||
@ -57,39 +56,41 @@ class Blog extends Controller {
|
|||||||
|
|
||||||
public function comments( $sub = null, $data = null ) {
|
public function comments( $sub = null, $data = null ) {
|
||||||
Debug::log( 'Controller initiated: ' . __METHOD__ . '.' );
|
Debug::log( 'Controller initiated: ' . __METHOD__ . '.' );
|
||||||
if ( empty( self::$comments ) ) {
|
|
||||||
self::$comments = new CommentsModel;
|
|
||||||
}
|
|
||||||
$plugin = new Comments;
|
|
||||||
if ( empty( $sub ) || empty( $data ) ) {
|
if ( empty( $sub ) || empty( $data ) ) {
|
||||||
Session::flash( 'error', 'Whoops, try again.' );
|
Issues::add( 'error', 'There was an issue with your request. Please check the url and try again.' );
|
||||||
Redirect::to( 'blog' );
|
return $this->index();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$plugin = new Comments;
|
||||||
|
if ( ! $plugin->checkEnabled() ) {
|
||||||
|
Issues::add( 'error', 'Comments are disabled.' );
|
||||||
|
return $this->index();
|
||||||
|
}
|
||||||
|
$comments = new CommentsModel;
|
||||||
|
|
||||||
switch ( $sub ) {
|
switch ( $sub ) {
|
||||||
case 'post':
|
case 'post':
|
||||||
$content = self::$posts->findById( (int) $data );
|
$content = self::$posts->findById( (int) $data );
|
||||||
if ( empty( $content ) ) {
|
if ( empty( $content ) ) {
|
||||||
Session::flash( 'error', 'Unknown Post.' );
|
Issues::add( 'error', 'Unknown Content.' );
|
||||||
Redirect::to( 'blog' );
|
return $this->index();
|
||||||
}
|
}
|
||||||
return $plugin->formPost( self::$posts->tableName, $content, 'blog/post/' );
|
return $plugin->formPost( self::$posts->tableName, $content, 'blog/post/' );
|
||||||
return self::$comments->formPost( 'blog', $content, 'blog/post/' );
|
|
||||||
case 'edit':
|
case 'edit':
|
||||||
$content = self::$comments->findById( $data );
|
$content = $comments->findById( $data );
|
||||||
if ( empty( $content ) ) {
|
if ( empty( $content ) ) {
|
||||||
Session::flash( 'error', 'Unknown Comment.' );
|
Issues::add( 'error', 'Unknown Comment.' );
|
||||||
Redirect::to( 'blog' );
|
return $this->index();
|
||||||
}
|
}
|
||||||
return $plugin->formEdit( self::$posts->tableName, $content, 'blog/post/' );
|
return $plugin->formEdit( self::$posts->tableName, $content, 'blog/post/' );
|
||||||
return self::$comments->formEdit( 'blog', $content, 'blog/post/' );
|
|
||||||
case 'delete':
|
case 'delete':
|
||||||
$content = self::$comments->findById( $data );
|
$content = $comments->findById( $data );
|
||||||
if ( empty( $content ) ) {
|
if ( empty( $content ) ) {
|
||||||
Session::flash( 'error', 'Unknown Comment.' );
|
Issues::add( 'error', 'Unknown Comment.' );
|
||||||
Redirect::to( 'blog' );
|
return $this->index();
|
||||||
}
|
}
|
||||||
return $plugin->formDelete( self::$posts->tableName, $content, 'blog/post/' );
|
return $plugin->formDelete( self::$posts->tableName, $content, 'blog/post/' );
|
||||||
return self::$comments->formDelete( 'blog', $content, 'blog/post/' );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,26 +102,34 @@ class Blog extends Controller {
|
|||||||
if ( empty( $post ) ) {
|
if ( empty( $post ) ) {
|
||||||
return $this->index();
|
return $this->index();
|
||||||
}
|
}
|
||||||
if ( empty( self::$comments ) ) {
|
|
||||||
self::$comments = new CommentsModel;
|
|
||||||
}
|
|
||||||
Debug::log( 'Controller initiated: ' . __METHOD__ . '.' );
|
Debug::log( 'Controller initiated: ' . __METHOD__ . '.' );
|
||||||
self::$title = 'Blog Post';
|
self::$title = 'Blog Post';
|
||||||
// I removed this once because i didn't realize.
|
|
||||||
// this triggers the comment post controller method when the comment form is submitted on the post viewing page
|
|
||||||
if ( Input::exists( 'contentId' ) ) {
|
if ( Input::exists( 'contentId' ) ) {
|
||||||
$this->comments( 'post', Input::post( 'contentId' ) );
|
$this->comments( 'post', Input::post( 'contentId' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
Components::set( 'CONTENT_ID', $id );
|
Components::set( 'CONTENT_ID', $id );
|
||||||
Components::set( 'COMMENT_TYPE', 'blog' );
|
Components::set( 'COMMENT_TYPE', self::$posts->tableName );
|
||||||
if ( App::$isLoggedIn ) {
|
|
||||||
Components::set( 'NEWCOMMENT', Views::simpleView( 'comments.create' ) );
|
$plugin = new Comments;
|
||||||
} else {
|
if ( ! $plugin->checkEnabled() ) {
|
||||||
Components::set( 'NEWCOMMENT', '' );
|
Components::set( 'NEWCOMMENT', '' );
|
||||||
|
Components::set( 'count', '0' );
|
||||||
|
Components::set( 'COMMENTS', '' );
|
||||||
|
} else {
|
||||||
|
$comments = new CommentsModel;
|
||||||
|
if ( App::$isLoggedIn ) {
|
||||||
|
Components::set( 'NEWCOMMENT', Views::simpleView( 'comments.create' ) );
|
||||||
|
} else {
|
||||||
|
Components::set( 'NEWCOMMENT', '' );
|
||||||
|
}
|
||||||
|
Components::set( 'count', $comments->count( self::$posts->tableName, $post->ID ) );
|
||||||
|
Components::set( 'COMMENTS', Views::simpleView( 'comments.list', $comments->display( 10, self::$posts->tableName, $post->ID ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
$post = self::$posts->findById( $id );
|
$post = self::$posts->findById( $id );
|
||||||
Components::set( 'count', self::$comments->count( self::$posts->tableName, $post->ID ) );
|
|
||||||
Components::set( 'COMMENTS', Views::simpleView( 'comments.list', self::$comments->display( 10, self::$posts->tableName, $post->ID ) ) );
|
|
||||||
self::$title .= ' - ' . $post->title;
|
self::$title .= ' - ' . $post->title;
|
||||||
self::$pageDescription = strip_tags( $post->contentSummaryNoLink );
|
self::$pageDescription = strip_tags( $post->contentSummaryNoLink );
|
||||||
Views::view( 'blog.post', $post );
|
Views::view( 'blog.post', $post );
|
||||||
|
@ -12,12 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
namespace TheTempusProject\Plugins;
|
namespace TheTempusProject\Plugins;
|
||||||
|
|
||||||
use ReflectionClass;
|
|
||||||
use TheTempusProject\Classes\Installer;
|
|
||||||
use TheTempusProject\Houdini\Classes\Navigation;
|
|
||||||
use TheTempusProject\Classes\Plugin;
|
use TheTempusProject\Classes\Plugin;
|
||||||
use TheTempusProject\Models\Posts;
|
|
||||||
use TheTempusProject\TheTempusProject as App;
|
|
||||||
|
|
||||||
class Blog extends Plugin {
|
class Blog extends Plugin {
|
||||||
public $pluginName = 'TP Blog';
|
public $pluginName = 'TP Blog';
|
||||||
@ -50,10 +45,4 @@ class Blog extends Plugin {
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
public $posts;
|
|
||||||
|
|
||||||
public function __construct( $load = false ) {
|
|
||||||
$this->posts = new Posts;
|
|
||||||
parent::__construct( $load );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
namespace TheTempusProject\Templates;
|
namespace TheTempusProject\Templates;
|
||||||
|
|
||||||
use TheTempusProject\Plugins\Blog;
|
use TheTempusProject\Models\Posts;
|
||||||
use TheTempusProject\Houdini\Classes\Components;
|
use TheTempusProject\Houdini\Classes\Components;
|
||||||
use TheTempusProject\Houdini\Classes\Navigation;
|
use TheTempusProject\Houdini\Classes\Navigation;
|
||||||
use TheTempusProject\Houdini\Classes\Views;
|
use TheTempusProject\Houdini\Classes\Views;
|
||||||
@ -25,8 +25,7 @@ class BlogLoader extends DefaultLoader {
|
|||||||
* needed by this template.
|
* needed by this template.
|
||||||
*/
|
*/
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
$blog = new Blog;
|
$posts = new Posts;
|
||||||
$posts = $blog->posts;
|
|
||||||
Components::set('SIDEBAR', Views::simpleView('blog.sidebar', $posts->recent(5)));
|
Components::set('SIDEBAR', Views::simpleView('blog.sidebar', $posts->recent(5)));
|
||||||
Components::set('SIDEBAR2', Views::simpleView('blog.sidebar2', $posts->archive()));
|
Components::set('SIDEBAR2', Views::simpleView('blog.sidebar2', $posts->archive()));
|
||||||
Components::set('SIDEBARABOUT', Views::simpleView('blog.about'));
|
Components::set('SIDEBARABOUT', Views::simpleView('blog.about'));
|
||||||
|
@ -1,31 +1,47 @@
|
|||||||
<form action="" method="post" class="form-horizontal" enctype="multipart/form-data">
|
<div class="context-main-bg context-main p-3">
|
||||||
<legend>New Blog Post</legend>
|
<legend class="text-center">Add Blog Post</legend>
|
||||||
<div class="form-group">
|
<hr>
|
||||||
<label for="title" class="col-lg-3 control-label">Title</label>
|
{ADMIN_BREADCRUMBS}
|
||||||
<div class="col-lg-3">
|
<form action="" method="post">
|
||||||
<input type="text" class="form-check-input" name="title" id="title">
|
<fieldset>
|
||||||
|
<!-- Title -->
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="title" class="col-lg-3 col-form-label text-end">Title:</label>
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<input type="text" class="form-control" name="title" id="title" required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- form buttons -->
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<div class="offset-3 col-lg-6">
|
||||||
|
<div class="btn-group w-100">
|
||||||
|
<button type="button" class="btn btn-sm btn-outline-primary" onclick="insertTag ('blogPost', 'c');">✔</button>
|
||||||
|
<button type="button" class="btn btn-sm btn-outline-primary" onclick="insertTag ('blogPost', 'x');">✖</button>
|
||||||
|
<button type="button" class="btn btn-sm btn-outline-primary" onclick="insertTag ('blogPost', '!');">❕</button>
|
||||||
|
<button type="button" class="btn btn-sm btn-outline-primary" onclick="insertTag ('blogPost', '?');">❔</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Message -->
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="blogPost" class="col-lg-3 col-form-label text-end">Post:</label>
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<textarea class="form-control" name="blogPost" id="blogPost" 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 name="submit" value="publish" type="submit" class="mx-2 btn btn-lg btn-primary">Publish</button>
|
||||||
|
<button name="submit" value="saveDraft" type="submit" class="mx-2 btn btn-lg btn-primary">Save as Draft</button>
|
||||||
|
<button name="submit" value="preview" type="submit" class="mx-2 btn btn-lg btn-primary">Preview</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</form>
|
||||||
<div class="form-group">
|
</div>
|
||||||
<div class="col-lg-6 col-lg-offset-3 btn-group">
|
|
||||||
<button type="button" class="btn btn-sm btn-primary" onclick="insertTag ('blogPost', 'c');">✔</button>
|
|
||||||
<button type="button" class="btn btn-sm btn-primary" onclick="insertTag ('blogPost', 'x');">✖</button>
|
|
||||||
<button type="button" class="btn btn-sm btn-primary" onclick="insertTag ('blogPost', '!');">❕</button>
|
|
||||||
<button type="button" class="btn btn-sm btn-primary" onclick="insertTag ('blogPost', '?');">❔</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="blogPost" class="col-lg-3 control-label">Post</label>
|
|
||||||
<div class="col-lg-6">
|
|
||||||
<textarea class="form-control" name="blogPost" maxlength="2000" rows="10" cols="50" id="blogPost"></textarea>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<div class="col-lg-6 col-lg-offset-3">
|
|
||||||
<button name="submit" value="publish" type="submit" class="btn btn-lg btn-primary">Publish</button>
|
|
||||||
<button name="submit" value="saveDraft" type="submit" class="btn btn-lg btn-primary">Save as Draft</button>
|
|
||||||
<button name="submit" value="preview" type="submit" class="btn btn-lg btn-primary">Preview</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
|
||||||
</form>
|
|
@ -1,31 +1,47 @@
|
|||||||
<form action="" method="post" class="form-horizontal" enctype="multipart/form-data">
|
<div class="context-main-bg context-main p-3">
|
||||||
<legend>Edit Blog Post</legend>
|
<legend class="text-center">Edit Blog Post</legend>
|
||||||
<div class="form-group">
|
<hr>
|
||||||
<label for="title" class="col-lg-3 control-label">Title</label>
|
{ADMIN_BREADCRUMBS}
|
||||||
<div class="col-lg-3">
|
<form action="" method="post">
|
||||||
<input type="text" class="form-check-input" name="title" id="title" value="{title}">
|
<fieldset>
|
||||||
|
<!-- Title -->
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="title" class="col-lg-3 col-form-label text-end">Title:</label>
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<input type="text" class="form-control" name="title" id="title" value="{title}" required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- form buttons -->
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<div class="offset-3 col-lg-6">
|
||||||
|
<div class="btn-group w-100">
|
||||||
|
<button type="button" class="btn btn-sm btn-outline-primary" onclick="insertTag ('blogPost', 'c');">✔</button>
|
||||||
|
<button type="button" class="btn btn-sm btn-outline-primary" onclick="insertTag ('blogPost', 'x');">✖</button>
|
||||||
|
<button type="button" class="btn btn-sm btn-outline-primary" onclick="insertTag ('blogPost', '!');">❕</button>
|
||||||
|
<button type="button" class="btn btn-sm btn-outline-primary" onclick="insertTag ('blogPost', '?');">❔</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Message -->
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="blogPost" class="col-lg-3 col-form-label text-end">Post:</label>
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<textarea class="form-control" name="blogPost" id="blogPost" rows="6" maxlength="2000" required>{content}</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 name="submit" value="publish" type="submit" class="mx-2 btn btn-lg btn-primary">Publish</button>
|
||||||
|
<button name="submit" value="saveDraft" type="submit" class="mx-2 btn btn-lg btn-primary">Save as Draft</button>
|
||||||
|
<button name="submit" value="preview" type="submit" class="mx-2 btn btn-lg btn-primary">Preview</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</form>
|
||||||
<div class="form-group">
|
</div>
|
||||||
<div class="col-lg-6 col-lg-offset-3 btn-group">
|
|
||||||
<button type="button" class="btn btn-sm btn-primary" onclick="insertTag ('blogPost', 'c');">✔</button>
|
|
||||||
<button type="button" class="btn btn-sm btn-primary" onclick="insertTag ('blogPost', 'x');">✖</button>
|
|
||||||
<button type="button" class="btn btn-sm btn-primary" onclick="insertTag ('blogPost', '!');">❕</button>
|
|
||||||
<button type="button" class="btn btn-sm btn-primary" onclick="insertTag ('blogPost', '?');">❔</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="blogPost" class="col-lg-3 control-label">Post</label>
|
|
||||||
<div class="col-lg-6">
|
|
||||||
<textarea class="form-control" name="blogPost" maxlength="2000" rows="10" cols="50" id="blogPost">{content}</textarea>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<div class="col-lg-6 col-lg-offset-3">
|
|
||||||
<button name="submit" value="publish" type="submit" class="btn btn-lg btn-primary">Publish</button>
|
|
||||||
<button name="submit" value="saveDraft" type="submit" class="btn btn-lg btn-primary">Save as Draft</button>
|
|
||||||
<button name="submit" value="preview" type="submit" class="btn btn-lg btn-primary">Preview</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
|
||||||
</form>
|
|
@ -1,45 +1,48 @@
|
|||||||
<legend>Blog Posts</legend>
|
<div class="context-main-bg context-main p-3">
|
||||||
{PAGINATION}
|
<legend class="text-center">Blog Posts</legend>
|
||||||
<form action="{ROOT_URL}admin/blog/delete" method="post">
|
<hr>
|
||||||
<table class="table table-striped">
|
{ADMIN_BREADCRUMBS}
|
||||||
<thead>
|
<form action="{ROOT_URL}admin/blog/delete" method="post">
|
||||||
<tr>
|
<table class="table table-striped">
|
||||||
<th style="width: 30%">Title</th>
|
<thead>
|
||||||
<th style="width: 20%">Author</th>
|
<tr>
|
||||||
<th style="width: 10%">comments</th>
|
<th style="width: 30%">Title</th>
|
||||||
<th style="width: 10%">Created</th>
|
<th style="width: 20%">Author</th>
|
||||||
<th style="width: 10%">Updated</th>
|
<th style="width: 10%">comments</th>
|
||||||
<th style="width: 5%"></th>
|
<th style="width: 10%">Created</th>
|
||||||
<th style="width: 5%"></th>
|
<th style="width: 10%">Updated</th>
|
||||||
<th style="width: 10%">
|
<th style="width: 5%"></th>
|
||||||
<INPUT type="checkbox" onchange="checkAll(this)" name="check.b" value="B_[]"/>
|
<th style="width: 5%"></th>
|
||||||
</th>
|
<th style="width: 10%">
|
||||||
</tr>
|
<INPUT type="checkbox" onchange="checkAll(this)" name="check.b" value="B_[]"/>
|
||||||
</thead>
|
</th>
|
||||||
<tbody>
|
</tr>
|
||||||
{LOOP}
|
</thead>
|
||||||
<tr>
|
<tbody>
|
||||||
<td><a href="{ROOT_URL}admin/blog/view/{ID}">{title}</a>{isDraft}</td>
|
{LOOP}
|
||||||
<td>{authorName}</td>
|
<tr>
|
||||||
<td>{commentCount}</td>
|
<td><a href="{ROOT_URL}admin/blog/view/{ID}">{title}</a>{isDraft}</td>
|
||||||
<td>{DTC}{created}{/DTC}</td>
|
<td>{authorName}</td>
|
||||||
<td>{DTC}{edited}{/DTC}</td>
|
<td>{commentCount}</td>
|
||||||
<td><a href="{ROOT_URL}admin/blog/edit/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil"></i></a></td>
|
<td>{DTC}{created}{/DTC}</td>
|
||||||
<td><a href="{ROOT_URL}admin/blog/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
<td>{DTC}{edited}{/DTC}</td>
|
||||||
<td>
|
<td><a href="{ROOT_URL}admin/blog/edit/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil"></i></a></td>
|
||||||
<input type="checkbox" value="{ID}" name="B_[]">
|
<td><a href="{ROOT_URL}admin/blog/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||||
</td>
|
<td>
|
||||||
</tr>
|
<input type="checkbox" value="{ID}" name="B_[]">
|
||||||
{/LOOP}
|
</td>
|
||||||
{ALT}
|
</tr>
|
||||||
<tr>
|
{/LOOP}
|
||||||
<td colspan="7">
|
{ALT}
|
||||||
No results to show.
|
<tr>
|
||||||
</td>
|
<td colspan="7">
|
||||||
</tr>
|
No results to show.
|
||||||
{/ALT}
|
</td>
|
||||||
</tbody>
|
</tr>
|
||||||
</table>
|
{/ALT}
|
||||||
<a href="{ROOT_URL}admin/blog/create" class="btn btn-sm btn-primary">Create</a>
|
</tbody>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger">Delete</button>
|
</table>
|
||||||
</form>
|
<a href="{ROOT_URL}admin/blog/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>
|
@ -1,9 +1,14 @@
|
|||||||
<div class="row">
|
<div class="context-main-bg context-main p-3">
|
||||||
<div class="col-sm-8 blog-main">
|
<legend class="text-center">Blog Post: {title}</legend>
|
||||||
<h1>{title} <small>{DTC}{created}{/DTC} by <a href="{ROOT_URL}admin/users/view/{author}">{authorName}</a></small></h1>
|
<hr>
|
||||||
<div class="well">{content}</div>
|
{ADMIN_BREADCRUMBS}
|
||||||
<a href="{ROOT_URL}admin/blog/delete/{ID}" class="btn btn-md btn-danger">Delete</a>
|
<p class="blog-post-meta">{DTC date}{created}{/DTC} by <a href="{ROOT_URL}admin/users/view/{author}">{authorName}</a></p>
|
||||||
<a href="{ROOT_URL}admin/blog/edit/{ID}" class="btn btn-md btn-warning">Edit</a>
|
<div class="well">{content}</div>
|
||||||
|
{ADMIN}
|
||||||
|
<hr>
|
||||||
|
<a href="{ROOT_URL}admin/blog/delete/{ID}" class="btn btn-md btn-danger"><i class="fa fa-fw fa-trash"></i></a>
|
||||||
|
<a href="{ROOT_URL}admin/blog/edit/{ID}" class="btn btn-md btn-warning"><i class="fa fa-fw fa-pencil"></i></a>
|
||||||
<a href="{ROOT_URL}admin/comments/blog/{ID}" class="btn btn-md btn-primary">View Comments</a>
|
<a href="{ROOT_URL}admin/comments/blog/{ID}" class="btn btn-md btn-primary">View Comments</a>
|
||||||
</div><!-- /.blog-main -->
|
<hr>
|
||||||
</div><!-- /.row -->
|
{/ADMIN}
|
||||||
|
</div>
|
@ -7,8 +7,8 @@
|
|||||||
{content}
|
{content}
|
||||||
{ADMIN}
|
{ADMIN}
|
||||||
<hr>
|
<hr>
|
||||||
<a href="{ROOT_URL}admin/blog/delete/{ID}" class="btn btn-md btn-danger">Delete</a>
|
<a href="{ROOT_URL}admin/blog/delete/{ID}" class="btn btn-md btn-danger"><i class="fa fa-fw fa-trash"></i></a>
|
||||||
<a href="{ROOT_URL}admin/blog/edit/{ID}" class="btn btn-md btn-warning">Edit</a>
|
<a href="{ROOT_URL}admin/blog/edit/{ID}" class="btn btn-md btn-warning"><i class="fa fa-fw fa-pencil"></i></a>
|
||||||
<hr>
|
<hr>
|
||||||
{/ADMIN}
|
{/ADMIN}
|
||||||
</div><!-- /.blog-post -->
|
</div><!-- /.blog-post -->
|
||||||
|
@ -41,7 +41,7 @@ class Bugreport extends Controller {
|
|||||||
return Views::view( 'bugreport.create' );
|
return Views::view( 'bugreport.create' );
|
||||||
}
|
}
|
||||||
$result = self::$bugreport->create( App::$activeUser->ID, Input::post( 'url' ), Input::post( 'ourl' ), Input::post( 'repeat' ), Input::post( 'entry' ) );
|
$result = self::$bugreport->create( App::$activeUser->ID, Input::post( 'url' ), Input::post( 'ourl' ), Input::post( 'repeat' ), Input::post( 'entry' ) );
|
||||||
if ( true === $result ) {
|
if ( false != $result ) {
|
||||||
Session::flash( 'success', 'Your Bug Report has been received. We may contact you for more information at the email address you provided.' );
|
Session::flash( 'success', 'Your Bug Report has been received. We may contact you for more information at the email address you provided.' );
|
||||||
Redirect::to( 'home/index' );
|
Redirect::to( 'home/index' );
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,42 +1,45 @@
|
|||||||
<legend>Bug Reports</legend>
|
<div class="context-main-bg context-main p-3">
|
||||||
{PAGINATION}
|
<legend class="text-center">Bug Reports</legend>
|
||||||
<form action="{ROOT_URL}admin/bugreport/delete" method="post">
|
<hr>
|
||||||
<table class="table table-striped">
|
{ADMIN_BREADCRUMBS}
|
||||||
<thead>
|
<form action="{ROOT_URL}admin/bugreport/delete" method="post">
|
||||||
<tr>
|
<table class="table table-striped">
|
||||||
<th style="width: 5%">ID</th>
|
<thead>
|
||||||
<th style="width: 20%">Time</th>
|
<tr>
|
||||||
<th style="width: 60%">Description</th>
|
<th style="width: 5%">ID</th>
|
||||||
<th style="width: 5%"></th>
|
<th style="width: 20%">Time</th>
|
||||||
<th style="width: 5%"></th>
|
<th style="width: 60%">Description</th>
|
||||||
<th style="width: 5%">
|
<th style="width: 5%"></th>
|
||||||
<INPUT type="checkbox" onchange="checkAll(this)" name="check.br" value="BR_[]"/>
|
<th style="width: 5%"></th>
|
||||||
</th>
|
<th style="width: 5%">
|
||||||
</tr>
|
<INPUT type="checkbox" onchange="checkAll(this)" name="check.br" value="BR_[]"/>
|
||||||
</thead>
|
</th>
|
||||||
<tbody>
|
</tr>
|
||||||
{LOOP}
|
</thead>
|
||||||
<tr>
|
<tbody>
|
||||||
<td align="center">{ID}</td>
|
{LOOP}
|
||||||
<td align="center">{DTC}{time}{/DTC}</td>
|
<tr>
|
||||||
<td>{description}</td>
|
<td align="center">{ID}</td>
|
||||||
<td><a href="{ROOT_URL}admin/bugreport/view/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-upload"></i></a></td>
|
<td align="center">{DTC}{time}{/DTC}</td>
|
||||||
<td><a href="{ROOT_URL}admin/bugreport/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
<td>{description}</td>
|
||||||
<td>
|
<td><a href="{ROOT_URL}admin/bugreport/view/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-upload"></i></a></td>
|
||||||
<input type="checkbox" value="{ID}" name="BR_[]">
|
<td><a href="{ROOT_URL}admin/bugreport/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||||
</td>
|
<td>
|
||||||
</tr>
|
<input type="checkbox" value="{ID}" name="BR_[]">
|
||||||
{/LOOP}
|
</td>
|
||||||
{ALT}
|
</tr>
|
||||||
<tr>
|
{/LOOP}
|
||||||
<td align="center" colspan="6">
|
{ALT}
|
||||||
No results to show.
|
<tr>
|
||||||
</td>
|
<td align="center" colspan="6">
|
||||||
</tr>
|
No results to show.
|
||||||
{/ALT}
|
</td>
|
||||||
</tbody>
|
</tr>
|
||||||
</table>
|
{/ALT}
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger">Delete</button>
|
</tbody>
|
||||||
</form>
|
</table>
|
||||||
<br />
|
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||||
<a href="{ROOT_URL}admin/bugreport/clear">clear all</a>
|
</form>
|
||||||
|
<br />
|
||||||
|
<a href="{ROOT_URL}admin/bugreport/clear">clear all</a>
|
||||||
|
</div>
|
@ -1,64 +1,69 @@
|
|||||||
<div class="container">
|
<div class="container py-4">
|
||||||
<div class="row">
|
<div class="row justify-content-center">
|
||||||
<div class="col-sm-12 col-md-6 col-lg-6 col-sm-offset-0 col-md-offset-3 col-lg-offset-3 top-pad bg-dark" >
|
<div class="col-md-8">
|
||||||
<div class="card">
|
{ADMIN_BREADCRUMBS}
|
||||||
<div class="card-header">
|
<div class="card shadow">
|
||||||
<h3 class="card-title">Bug Report</h3>
|
<!-- Card Header -->
|
||||||
</div>
|
<div class="card-header text-center bg-dark text-white">
|
||||||
<div class="card-body">
|
<h3 class="card-title mb-0">Bug Report</h3>
|
||||||
<div class="row">
|
</div>
|
||||||
<div class=" col-md-12 col-lg-12 ">
|
|
||||||
<table class="table table-user-primary">
|
<!-- Card Body -->
|
||||||
<tbody>
|
<div class="card-body">
|
||||||
|
<div class="row align-items-center">
|
||||||
|
<!-- Log Details -->
|
||||||
|
<table class="table table-borderless">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">ID:</th>
|
||||||
|
<td>{ID}</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="left" width="200"><b>ID</b></td>
|
<th scope="row">Time submitted</th>
|
||||||
<td align="right">{ID}</td>
|
<td>{DTC}{time}{/DTC}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Time submitted</b></td>
|
<th scope="row">URL:</th>
|
||||||
<td align="right">{DTC}{time}{/DTC}</td>
|
<td><a href="{URL}">{URL}</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Submitted by</b></td>
|
<th scope="row">Original URL</th>
|
||||||
<td align="right"><a href="{ROOT_URL}admin/users/view/{userID}">{submittedBy}</a></td>
|
<td><a href="{OURL}">{OURL}</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>IP</b></td>
|
<th scope="row">Multiple occurrences?</th>
|
||||||
<td align="right">{ip}</td>
|
<td>{repeatText}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">IP:</th>
|
||||||
|
<td>{ip}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">User:</th>
|
||||||
|
<td><a href="{ROOT_URL}admin/users/view/{userID}">{submittedBy}</a></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>URL:</b></td>
|
<th scope="row" colspan="2">Description:</th>
|
||||||
<td align="right"><a href="{URL}">{URL}</a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><b>Original URL</b></td>
|
|
||||||
<td align="right"><a href="{OURL}">{OURL}</a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><b>Multiple occurrences?</b></td>
|
|
||||||
<td align="right">{repeatText}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center" colspan="2"><b>Description</b></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2">{description}</td>
|
<td colspan="2">{description}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="card-footer">
|
<!-- Admin Controls -->
|
||||||
|
<div class="card-footer text-center">
|
||||||
{ADMIN}
|
{ADMIN}
|
||||||
<form action="{ROOT_URL}admin/bugreport/delete" method="post">
|
<form action="{ROOT_URL}admin/bugreport/delete" method="post">
|
||||||
<INPUT type="hidden" name="BR_" value="{ID}"/>
|
<INPUT type="hidden" name="BR_" value="{ID}"/>
|
||||||
<input type="hidden" name="token" value="{TOKEN}" />
|
<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-times"></i></button>
|
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||||
</form>
|
</form>
|
||||||
{/ADMIN}
|
{/ADMIN}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
@ -49,9 +49,13 @@ class Comments extends AdminController {
|
|||||||
$this->index();
|
$this->index();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function viewComment( $data = null ) {
|
public function viewComments( $contentIID = null ) {
|
||||||
$commentData = self::$comments->findById( $data );
|
if ( empty( $contentIID ) ) {
|
||||||
if ( $commentData !== false ) {
|
Issues::add( 'error', 'Content ID not found.' );
|
||||||
|
return $this->index();
|
||||||
|
}
|
||||||
|
$contentData = self::$comments->findById( $data );
|
||||||
|
if ( empty( $contentIID ) ) {
|
||||||
return Views::view( 'comments.list', $commentData );
|
return Views::view( 'comments.list', $commentData );
|
||||||
}
|
}
|
||||||
Issues::add( 'error', 'Comment not found.' );
|
Issues::add( 'error', 'Comment not found.' );
|
||||||
|
@ -25,9 +25,10 @@ use TheTempusProject\Houdini\Classes\Views;
|
|||||||
use TheTempusProject\Classes\Forms;
|
use TheTempusProject\Classes\Forms;
|
||||||
use TheTempusProject\Hermes\Functions\Redirect;
|
use TheTempusProject\Hermes\Functions\Redirect;
|
||||||
use TheTempusProject\Bedrock\Functions\Session;
|
use TheTempusProject\Bedrock\Functions\Session;
|
||||||
use TheTempusProject\Models\Comments as CommentModel;
|
use TheTempusProject\Models\Comments as CommentsModel;
|
||||||
|
|
||||||
class Comments extends Plugin {
|
class Comments extends Plugin {
|
||||||
|
protected static $comments;
|
||||||
public $pluginName = 'TP Comments';
|
public $pluginName = 'TP Comments';
|
||||||
public $pluginAuthor = 'JoeyK';
|
public $pluginAuthor = 'JoeyK';
|
||||||
public $pluginWebsite = 'https://TheTempusProject.com';
|
public $pluginWebsite = 'https://TheTempusProject.com';
|
||||||
@ -61,7 +62,6 @@ class Comments extends Plugin {
|
|||||||
]
|
]
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
public $comments;
|
|
||||||
|
|
||||||
public function __construct( $load = false ) {
|
public function __construct( $load = false ) {
|
||||||
if ( !empty(App::$activePerms) ) {
|
if ( !empty(App::$activePerms) ) {
|
||||||
@ -75,11 +75,16 @@ class Comments extends Plugin {
|
|||||||
'replace' => ( App::$isMod ? '$1' : '' ),
|
'replace' => ( App::$isMod ? '$1' : '' ),
|
||||||
'enabled' => true,
|
'enabled' => true,
|
||||||
];
|
];
|
||||||
$this->getModel();
|
self::$comments = new CommentsModel;
|
||||||
parent::__construct( $load );
|
parent::__construct( $load );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function formPost( $type, $content, $redirect ) {
|
public function formPost( $type, $content, $redirect ) {
|
||||||
|
if ( ! $this->checkEnabled() ) {
|
||||||
|
Debug::info( 'Comments Plugin is disabled in the control panel.' );
|
||||||
|
Issues::add( 'error', 'Comments are disabled.' );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if ( !App::$isLoggedIn ) {
|
if ( !App::$isLoggedIn ) {
|
||||||
Session::flash( 'notice', 'You must be logged in to post comments.' );
|
Session::flash( 'notice', 'You must be logged in to post comments.' );
|
||||||
return Redirect::to( $redirect . $content->ID );
|
return Redirect::to( $redirect . $content->ID );
|
||||||
@ -88,7 +93,7 @@ class Comments extends Plugin {
|
|||||||
Session::flash( 'error', [ 'There was a problem with your comment form.' => Check::userErrors() ] );
|
Session::flash( 'error', [ 'There was a problem with your comment form.' => Check::userErrors() ] );
|
||||||
return Redirect::to( $redirect . $content->ID );
|
return Redirect::to( $redirect . $content->ID );
|
||||||
}
|
}
|
||||||
if ( !$this->comments->create( $type, $content->ID, Input::post( 'comment' ) ) ) {
|
if ( !self::$comments->create( $type, $content->ID, Input::post( 'comment' ) ) ) {
|
||||||
Session::flash( 'error', [ 'There was a problem posting your comment.' => Check::userErrors() ] );
|
Session::flash( 'error', [ 'There was a problem posting your comment.' => Check::userErrors() ] );
|
||||||
} else {
|
} else {
|
||||||
Session::flash( 'success', 'Comment posted' );
|
Session::flash( 'success', 'Comment posted' );
|
||||||
@ -97,6 +102,11 @@ class Comments extends Plugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function formEdit( $type, $content, $redirect ) {
|
public function formEdit( $type, $content, $redirect ) {
|
||||||
|
if ( ! $this->checkEnabled() ) {
|
||||||
|
Debug::info( 'Comments Plugin is disabled in the control panel.' );
|
||||||
|
Issues::add( 'error', 'Comments are disabled.' );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if ( !App::$isLoggedIn ) {
|
if ( !App::$isLoggedIn ) {
|
||||||
Session::flash( 'notice', 'You must be logged in to do that.' );
|
Session::flash( 'notice', 'You must be logged in to do that.' );
|
||||||
return Redirect::to( $type );
|
return Redirect::to( $type );
|
||||||
@ -112,7 +122,7 @@ class Comments extends Plugin {
|
|||||||
Issues::add( 'error', [ 'There was a problem editing your comment.' => Check::userErrors() ] );
|
Issues::add( 'error', [ 'There was a problem editing your comment.' => Check::userErrors() ] );
|
||||||
return Views::view( 'comments.admin.edit', $content );
|
return Views::view( 'comments.admin.edit', $content );
|
||||||
}
|
}
|
||||||
if ( !$this->comments->update( $content->ID, Input::post( 'comment' ) ) ) {
|
if ( !self::$comments->update( $content->ID, Input::post( 'comment' ) ) ) {
|
||||||
Issues::add( 'error', [ 'There was a problem editing your comment.' => Check::userErrors() ] );
|
Issues::add( 'error', [ 'There was a problem editing your comment.' => Check::userErrors() ] );
|
||||||
return Views::view( 'comments.admin.edit', $content );
|
return Views::view( 'comments.admin.edit', $content );
|
||||||
}
|
}
|
||||||
@ -121,6 +131,11 @@ class Comments extends Plugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function formDelete( $type, $content, $redirect ) {
|
public function formDelete( $type, $content, $redirect ) {
|
||||||
|
if ( ! $this->checkEnabled() ) {
|
||||||
|
Debug::info( 'Comments Plugin is disabled in the control panel.' );
|
||||||
|
Issues::add( 'error', 'Comments are disabled.' );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if ( !App::$isLoggedIn ) {
|
if ( !App::$isLoggedIn ) {
|
||||||
Session::flash( 'notice', 'You must be logged in to do that.' );
|
Session::flash( 'notice', 'You must be logged in to do that.' );
|
||||||
return Redirect::to( $type );
|
return Redirect::to( $type );
|
||||||
@ -129,18 +144,11 @@ class Comments extends Plugin {
|
|||||||
Session::flash( 'error', 'You do not have permission to edit this comment' );
|
Session::flash( 'error', 'You do not have permission to edit this comment' );
|
||||||
return Redirect::to( $type );
|
return Redirect::to( $type );
|
||||||
}
|
}
|
||||||
if ( !$this->comments->delete( (array) $content->ID ) ) {
|
if ( !self::$comments->delete( (array) $content->ID ) ) {
|
||||||
Session::flash( 'error', 'There was an error with your request.' );
|
Session::flash( 'error', 'There was an error with your request.' );
|
||||||
} else {
|
} else {
|
||||||
Session::flash( 'success', 'Comment has been deleted' );
|
Session::flash( 'success', 'Comment has been deleted' );
|
||||||
}
|
}
|
||||||
return Redirect::to( $redirect . $content->contentID );
|
return Redirect::to( $redirect . $content->contentID );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getModel() {
|
|
||||||
if ( empty($this->comments) ) {
|
|
||||||
$this->comments = new CommentModel;
|
|
||||||
}
|
|
||||||
return $this->comments;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,25 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="mb-4 mt-4">
|
||||||
<div class="form-group center-block">
|
<div class="offset-md-1 col-10 p-3 context-main-bg">
|
||||||
<div class="col-lg-4 col-lg-offset-4">
|
<legend class="text-center">Edit Comment</legend>
|
||||||
<textarea class="form-control" name="comment" maxlength="2000" rows="10" cols="50" id="comment">{content}</textarea>
|
<hr>
|
||||||
</div>
|
{ADMIN_BREADCRUMBS}
|
||||||
|
<form action="" method="post" class="container py-4">
|
||||||
|
<fieldset>
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="comment" class="col-lg-5 col-form-label text-end">Comment:</label>
|
||||||
|
<div class="col-lg-3">
|
||||||
|
<textarea class="form-control" name="comment" maxlength="2000" rows="5" cols="50" id="comment">{content}</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>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Comment</button>
|
</div>
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
|
||||||
</form>
|
|
@ -1,43 +1,45 @@
|
|||||||
<legend>Recent Comments</legend>
|
<div class="context-main-bg context-main p-3">
|
||||||
{PAGINATION}
|
<legend class="text-center">Recent Comments</legend>
|
||||||
<form action="{ROOT_URL}admin/comments/delete" method="post">
|
<hr>
|
||||||
<table class="table table-striped">
|
{ADMIN_BREADCRUMBS}
|
||||||
<thead>
|
<form action="{ROOT_URL}admin/comments/delete" method="post">
|
||||||
<tr>
|
<table class="table table-striped">
|
||||||
<th style="width: 20%">Author</th>
|
<thead>
|
||||||
<th style="width: 20%">Subject</th>
|
<tr>
|
||||||
<th style="width: 35%">Comment</th>
|
<th style="width: 20%">Author</th>
|
||||||
<th style="width: 10%">Time</th>
|
<th style="width: 20%">Subject</th>
|
||||||
<th style="width: 5%"></th>
|
<th style="width: 35%">Comment</th>
|
||||||
<th style="width: 5%"></th>
|
<th style="width: 10%">Time</th>
|
||||||
<th style="width: 5%">
|
<th style="width: 5%"></th>
|
||||||
<INPUT type="checkbox" onchange="checkAll(this)" name="check.c" value="C_[]"/>
|
<th style="width: 5%"></th>
|
||||||
</th>
|
<th style="width: 5%">
|
||||||
</tr>
|
<INPUT type="checkbox" onchange="checkAll(this)" name="check.c" value="C_[]"/>
|
||||||
</thead>
|
</th>
|
||||||
<tbody>
|
</tr>
|
||||||
{LOOP}
|
</thead>
|
||||||
<tr>
|
<tbody>
|
||||||
<td><a href="{ROOT_URL}admin/users/view/{author}">{authorName}</a></td>
|
{LOOP}
|
||||||
<td><a href="{ROOT_URL}admin/blog/view/{contentID}">{contentTitle}</a></td>
|
<tr>
|
||||||
<td>{content}</td>
|
<td><a href="{ROOT_URL}admin/users/view/{author}">{authorName}</a></td>
|
||||||
<td>{DTC}{created}{/DTC}</td>
|
<td><a href="{ROOT_URL}admin/blog/view/{contentID}">{contentTitle}</a></td>
|
||||||
<td><a href="{ROOT_URL}admin/comments/edit/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil"></i></a></td>
|
<td>{content}</td>
|
||||||
<td><a href="{ROOT_URL}admin/comments/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
<td>{DTC}{created}{/DTC}</td>
|
||||||
<td>
|
<td><a href="{ROOT_URL}admin/comments/edit/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil"></i></a></td>
|
||||||
<input type="checkbox" value="{ID}" name="C_[]">
|
<td><a href="{ROOT_URL}admin/comments/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||||
</td>
|
<td>
|
||||||
</tr>
|
<input type="checkbox" value="{ID}" name="C_[]">
|
||||||
{/LOOP}
|
</td>
|
||||||
{ALT}
|
</tr>
|
||||||
<tr>
|
{/LOOP}
|
||||||
<td align="center" colspan="7">
|
{ALT}
|
||||||
No results to show.
|
<tr>
|
||||||
</td>
|
<td align="center" colspan="7">
|
||||||
</tr>
|
No results to show.
|
||||||
{/ALT}
|
</td>
|
||||||
</tbody>
|
</tr>
|
||||||
</table>
|
{/ALT}
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger">Delete</button>
|
</tbody>
|
||||||
</form>
|
</table>
|
||||||
<br />
|
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||||
|
</form>
|
||||||
|
</div>
|
@ -1,14 +1,14 @@
|
|||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header bg-secondary text-white d-flex align-items-center justify-content-between">
|
<div class="card-header d-flex align-items-center justify-content-between context-second-bg context-main">
|
||||||
<h3 class="card-title mb-0">
|
<h3 class="card-title mb-0">
|
||||||
<i class="fa fa-fw fa-comment"></i> Comments
|
<i class="fa fa-fw fa-comment"></i> Comments
|
||||||
</h3>
|
</h3>
|
||||||
<span class="badge bg-primary">{count}</span>
|
<span class="badge bg-primary">{count}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body bg-light">
|
<div class="card-body context-main-bg context-main">
|
||||||
<ul class="list-group list-group-flush">
|
<ul class="list-group list-group-flush">
|
||||||
{LOOP}
|
{LOOP}
|
||||||
<li class="list-group-item">
|
<li class="list-group-item context-second-bg context-main mb-2">
|
||||||
<div class="d-flex align-items-start">
|
<div class="d-flex align-items-start">
|
||||||
<div class="me-3">
|
<div class="me-3">
|
||||||
<img src="{ROOT_URL}{avatar}" class="rounded-circle" alt="User Avatar" style="width: 50px; height: 50px;">
|
<img src="{ROOT_URL}{avatar}" class="rounded-circle" alt="User Avatar" style="width: 50px; height: 50px;">
|
||||||
|
@ -1,42 +1,45 @@
|
|||||||
<legend>Contact Forms</legend>
|
<div class="context-main-bg context-main p-3">
|
||||||
{PAGINATION}
|
<legend class="text-center">Contact Forms</legend>
|
||||||
<form action="{ROOT_URL}admin/contact/delete" method="post">
|
<hr>
|
||||||
<table class="table table-striped">
|
{ADMIN_BREADCRUMBS}
|
||||||
<thead>
|
<form action="{ROOT_URL}admin/contact/delete" method="post">
|
||||||
<tr>
|
<table class="table table-striped">
|
||||||
<th style="width: 5%">ID</th>
|
<thead>
|
||||||
<th style="width: 25%">Time</th>
|
<tr>
|
||||||
<th style="width: 55%">Feedback</th>
|
<th style="width: 5%">ID</th>
|
||||||
<th style="width: 5%"></th>
|
<th style="width: 25%">Time</th>
|
||||||
<th style="width: 5%"></th>
|
<th style="width: 55%">Feedback</th>
|
||||||
<th style="width: 5%">
|
<th style="width: 5%"></th>
|
||||||
<INPUT type="checkbox" onchange="checkAll(this)" name="check.f" value="F_[]"/>
|
<th style="width: 5%"></th>
|
||||||
</th>
|
<th style="width: 5%">
|
||||||
</tr>
|
<INPUT type="checkbox" onchange="checkAll(this)" name="check.f" value="F_[]"/>
|
||||||
</thead>
|
</th>
|
||||||
<tbody>
|
</tr>
|
||||||
{LOOP}
|
</thead>
|
||||||
<tr>
|
<tbody>
|
||||||
<td>{ID}</td>
|
{LOOP}
|
||||||
<td>{DTC}{time}{/DTC}</td>
|
<tr>
|
||||||
<td>{feedback}</td>
|
<td>{ID}</td>
|
||||||
<td><a href="{ROOT_URL}admin/contact/view/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-upload"></i></a></td>
|
<td>{DTC}{time}{/DTC}</td>
|
||||||
<td><a href="{ROOT_URL}admin/contact/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
<td>{feedback}</td>
|
||||||
<td>
|
<td><a href="{ROOT_URL}admin/contact/view/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-upload"></i></a></td>
|
||||||
<input type="checkbox" value="{ID}" name="F_[]">
|
<td><a href="{ROOT_URL}admin/contact/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||||
</td>
|
<td>
|
||||||
</tr>
|
<input type="checkbox" value="{ID}" name="F_[]">
|
||||||
{/LOOP}
|
</td>
|
||||||
{ALT}
|
</tr>
|
||||||
<tr>
|
{/LOOP}
|
||||||
<td align="center" colspan="6">
|
{ALT}
|
||||||
No results to show.
|
<tr>
|
||||||
</td>
|
<td align="center" colspan="6">
|
||||||
</tr>
|
No results to show.
|
||||||
{/ALT}
|
</td>
|
||||||
</tbody>
|
</tr>
|
||||||
</table>
|
{/ALT}
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger">Delete</button>
|
</tbody>
|
||||||
</form>
|
</table>
|
||||||
<br />
|
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||||
<a href="{ROOT_URL}admin/contact/clear">clear all</a>
|
</form>
|
||||||
|
<br />
|
||||||
|
<a href="{ROOT_URL}admin/contact/clear">clear all</a>
|
||||||
|
</div>
|
@ -1,56 +1,61 @@
|
|||||||
<div class="container">
|
<div class="container py-4">
|
||||||
<div class="row">
|
<div class="row justify-content-center">
|
||||||
<div class="col-sm-12 col-md-6 col-lg-6 col-sm-offset-0 col-md-offset-3 col-lg-offset-3 top-pad" >
|
<div class="col-md-8">
|
||||||
<div class="card">
|
{ADMIN_BREADCRUMBS}
|
||||||
<div class="card-header bg-dark">
|
<div class="card shadow">
|
||||||
<h3 class="card-title">Contact</h3>
|
<!-- Card Header -->
|
||||||
</div>
|
<div class="card-header text-center bg-dark text-white">
|
||||||
<div class="card-body">
|
<h3 class="card-title mb-0">Contact Form</h3>
|
||||||
<div class="row">
|
</div>
|
||||||
<div class=" col-md-12 col-lg-12 ">
|
|
||||||
<table class="table table-user-primary">
|
<!-- Card Body -->
|
||||||
<tbody>
|
<div class="card-body">
|
||||||
|
<div class="row align-items-center">
|
||||||
|
<!-- Log Details -->
|
||||||
|
<table class="table table-borderless">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">ID:</th>
|
||||||
|
<td>{ID}</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="left" width="200">ID:</td>
|
<th scope="row">Time submitted</th>
|
||||||
<td align="right">{ID}</td>
|
<td>{DTC}{time}{/DTC}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Time submitted:</td>
|
<th scope="row">Email:</th>
|
||||||
<td align="right">{DTC}{time}{/DTC}</td>
|
<td>{email}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>IP:</td>
|
<th scope="row">Name:</th>
|
||||||
<td align="right">{ip}</td>
|
<td>{name}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">IP:</th>
|
||||||
|
<td>{ip}</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Email:</td>
|
<th scope="row" colspan="2">Feedback:</th>
|
||||||
<td align="right">{email}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Name</td>
|
|
||||||
<td align="right">{name}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center" colspan="2">Feedback</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2">{feedback}</td>
|
<td colspan="2">{feedback}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="card-footer">
|
<!-- Admin Controls -->
|
||||||
|
<div class="card-footer text-center">
|
||||||
{ADMIN}
|
{ADMIN}
|
||||||
<form action="{ROOT_URL}admin/contact/delete" method="post">
|
<form action="{ROOT_URL}admin/contact/delete" method="post">
|
||||||
<INPUT type="hidden" name="F_" value="{ID}"/>
|
<INPUT type="hidden" name="F_" value="{ID}"/>
|
||||||
<input type="hidden" name="token" value="{TOKEN}" />
|
<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-times"></i></button>
|
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||||
</form>
|
</form>
|
||||||
{/ADMIN}
|
{/ADMIN}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
@ -1,27 +0,0 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
|
||||||
<legend>Feedback</legend>
|
|
||||||
<p>Here at {SITENAME} we highly value your feedback. We constantly strive to provide our users with the highest level of quality in everything we do.</p>
|
|
||||||
<p>If you would like to provide any suggestions or comments on our service, we ask that you please fill out the quick form below and let us know what's on your mind.</p>
|
|
||||||
<fieldset>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="name" class="col-lg-1 control-label">Name:</label>
|
|
||||||
<div class="col-lg-2">
|
|
||||||
<input class="form-control" type="text" name="name" id="name">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="feedbackEmail" class="col-lg-1 control-label">E-mail: (optional)</label>
|
|
||||||
<div class="col-lg-2">
|
|
||||||
<input class="form-control" type="text" name="feedbackEmail" id="feedbackEmail">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="entry" class="col-lg-3 control-label">Feedback:<br> (max:2000 characters)</label>
|
|
||||||
<div class="col-lg-6">
|
|
||||||
<textarea class="form-control" name="entry" maxlength="2000" rows="10" cols="50" id="entry"></textarea>
|
|
||||||
</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">Submit</button><br>
|
|
||||||
</form>
|
|
@ -45,7 +45,10 @@ class Notifications extends AdminController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function create() {
|
public function create() {
|
||||||
$select = Forms::getFormFieldHtml( 'groupSelect', 'User Group', 'select', 'All', self::$group->listGroupsSimple( true ) );
|
$select = Forms::getSelectHtml(
|
||||||
|
'groupSelect',
|
||||||
|
self::$group->listGroupsSimple( true )
|
||||||
|
);
|
||||||
Components::set( 'groupSelect', $select );
|
Components::set( 'groupSelect', $select );
|
||||||
if ( ! Input::exists( 'submit' ) ) {
|
if ( ! Input::exists( 'submit' ) ) {
|
||||||
return Views::view( 'notifications.admin.send' );
|
return Views::view( 'notifications.admin.send' );
|
||||||
|
@ -1,44 +1,62 @@
|
|||||||
<form action="" method="post" class="form-horizontal" enctype="multipart/form-data">
|
<div class="context-main-bg context-main p-3">
|
||||||
<legend>Send Notification</legend>
|
<legend class="text-center">Send Notification</legend>
|
||||||
<div class="form-group">
|
<hr>
|
||||||
{groupSelect}
|
{ADMIN_BREADCRUMBS}
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<form action="" method="post" enctype="multipart/form-data">
|
||||||
<label for="expiration" class="col-lg-3 control-label">Expiration </label>
|
<fieldset>
|
||||||
<div class="col-lg-3">
|
<!-- Group -->
|
||||||
<select id="expiration" name="expiration" class="form-control custom-select">
|
<div class="mb-3 row">
|
||||||
<option value="0">forever</option>
|
<label for="groupSelect" class="col-lg-3 col-form-label text-end">Group:</label>
|
||||||
<option value="1800">30 Minutes</option>
|
<div class="col-lg-6">
|
||||||
<option value="3600">60 Minutes</option>
|
{groupSelect}
|
||||||
<option value="14400">4 hours</option>
|
</div>
|
||||||
<option value="28800">8 hours</option>
|
</div>
|
||||||
<option value="43200">12 hours</option>
|
|
||||||
<option value="86400">24 hours</option>
|
<!-- Recipients -->
|
||||||
<option value="172800">2 days</option>
|
<div class="mb-3 row">
|
||||||
<option value="259200">3 days</option>
|
<label for="expiration" class="col-lg-3 col-form-label text-end">Expiration:</label>
|
||||||
<option value="432000">5 days</option>
|
<div class="col-lg-6">
|
||||||
<option value="604800">7 days</option>
|
<select class="form-control" name="expiration" id="expiration">
|
||||||
<option value="1209600">2 weeks</option>
|
<option value="0">forever</option>
|
||||||
<option value="1814400">3 weeks</option>
|
<option value="1800">30 Minutes</option>
|
||||||
<option value="2419200">4 weeks</option>
|
<option value="3600">60 Minutes</option>
|
||||||
<option value="2592000">1 month</option>
|
<option value="14400">4 hours</option>
|
||||||
<option value="5184000">2 months</option>
|
<option value="28800">8 hours</option>
|
||||||
<option value="7776000">3 months</option>
|
<option value="43200">12 hours</option>
|
||||||
<option value="15552000">6 months</option>
|
<option value="86400">24 hours</option>
|
||||||
<option value="31536000">12 months</option>
|
<option value="172800">2 days</option>
|
||||||
</select>
|
<option value="259200">3 days</option>
|
||||||
|
<option value="432000">5 days</option>
|
||||||
|
<option value="604800">7 days</option>
|
||||||
|
<option value="1209600">2 weeks</option>
|
||||||
|
<option value="1814400">3 weeks</option>
|
||||||
|
<option value="2419200">4 weeks</option>
|
||||||
|
<option value="2592000">1 month</option>
|
||||||
|
<option value="5184000">2 months</option>
|
||||||
|
<option value="7776000">3 months</option>
|
||||||
|
<option value="15552000">6 months</option>
|
||||||
|
<option value="31536000">12 months</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Notification -->
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="notification" class="col-lg-3 col-form-label text-end">Notification:</label>
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<textarea class="form-control" name="notification" id="notification" 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">Send</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</form>
|
||||||
<div class="form-group">
|
</div>
|
||||||
<label for="notification" class="col-lg-3 control-label">Notification</label>
|
|
||||||
<div class="col-lg-6">
|
|
||||||
<textarea class="form-control" name="notification" maxlength="2000" rows="10" cols="50" id="notification"></textarea>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<div class="col-lg-6 col-lg-offset-3">
|
|
||||||
<button name="submit" value="publish" type="submit" class="btn btn-lg btn-primary">Send</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
|
||||||
</form>
|
|
@ -1,5 +1,24 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="context-main-bg context-main p-3">
|
||||||
<input type="email" placeholder="Email" id="email" name="email">
|
<legend class="text-center">Add Subscriber</legend>
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
<hr>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Submit</button><br>
|
{ADMIN_BREADCRUMBS}
|
||||||
</form>
|
<form action="" method="post">
|
||||||
|
<fieldset>
|
||||||
|
<!-- Subject -->
|
||||||
|
<div class="mb-3 row">
|
||||||
|
<label for="email" class="col-lg-5 col-form-label text-end">Email:</label>
|
||||||
|
<div class="col-lg-3">
|
||||||
|
<input type="email" class="form-control" name="email" id="email" required>
|
||||||
|
</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>
|
@ -1,37 +1,40 @@
|
|||||||
<legend>Subscribers</legend>
|
<div class="context-main-bg context-main p-3">
|
||||||
{PAGINATION}
|
<legend class="text-center">Subscribers</legend>
|
||||||
<form action="{ROOT_URL}admin/subscriptions/delete" method="post">
|
<hr>
|
||||||
<table class="table table-striped">
|
{ADMIN_BREADCRUMBS}
|
||||||
<thead>
|
<form action="{ROOT_URL}admin/subscriptions/delete" method="post">
|
||||||
<tr>
|
<table class="table table-striped">
|
||||||
<th style="width: 5%">ID</th>
|
<thead>
|
||||||
<th style="width: 85%">email</th>
|
<tr>
|
||||||
<th style="width: 5%"></th>
|
<th style="width: 5%">ID</th>
|
||||||
<th style="width: 5%">
|
<th style="width: 85%">email</th>
|
||||||
<INPUT type="checkbox" onchange="checkAll(this)" name="check.s" value="S_[]"/>
|
<th style="width: 5%"></th>
|
||||||
</th>
|
<th style="width: 5%">
|
||||||
</tr>
|
<INPUT type="checkbox" onchange="checkAll(this)" name="check.s" value="S_[]"/>
|
||||||
</thead>
|
</th>
|
||||||
<tbody>
|
</tr>
|
||||||
{LOOP}
|
</thead>
|
||||||
<tr>
|
<tbody>
|
||||||
<td align="center">{ID}</td>
|
{LOOP}
|
||||||
<td>{EMAIL}</td>
|
<tr>
|
||||||
<td><a href="{ROOT_URL}admin/subscriptions/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
<td align="center">{ID}</td>
|
||||||
<td>
|
<td>{EMAIL}</td>
|
||||||
<input type="checkbox" value="{ID}" name="S_[]">
|
<td><a href="{ROOT_URL}admin/subscriptions/delete/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
||||||
</td>
|
<td>
|
||||||
</tr>
|
<input type="checkbox" value="{ID}" name="S_[]">
|
||||||
{/LOOP}
|
</td>
|
||||||
{ALT}
|
</tr>
|
||||||
<tr>
|
{/LOOP}
|
||||||
<td align="center" colspan="6">
|
{ALT}
|
||||||
No results to show.
|
<tr>
|
||||||
</td>
|
<td align="center" colspan="6">
|
||||||
</tr>
|
No results to show.
|
||||||
{/ALT}
|
</td>
|
||||||
</tbody>
|
</tr>
|
||||||
</table>
|
{/ALT}
|
||||||
<a href="{ROOT_URL}admin/subscriptions/add" class="btn btn-sm btn-primary">Add</a>
|
</tbody>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger">Delete</button>
|
</table>
|
||||||
</form>
|
<a href="{ROOT_URL}admin/subscriptions/add" class="btn btn-sm btn-primary">Add</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>
|
@ -30,8 +30,8 @@
|
|||||||
<!-- Side Navigation -->
|
<!-- Side Navigation -->
|
||||||
<div class="d-flex flex-column flex-shrink-0 p-3 text-bg-dark" style="width: 280px;">
|
<div class="d-flex flex-column flex-shrink-0 p-3 text-bg-dark" style="width: 280px;">
|
||||||
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-white text-decoration-none">
|
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-white text-decoration-none">
|
||||||
<img src="/images/logo.png" class="bi me-2" width="40" height="32" role="img" aria-label="All The Bookmarks Logo">
|
<img src="{ROOT_URL}{LOGO}" class="bi me-2" width="40" height="32" role="img" aria-label="{SITENAME} Logo" />
|
||||||
<span class="fs-4">All The Bookmarks</span>
|
<span class="fs-4">{SITENAME}</span>
|
||||||
</a>
|
</a>
|
||||||
<hr>
|
<hr>
|
||||||
{ADMIN}
|
{ADMIN}
|
||||||
@ -62,7 +62,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/ISSUES}
|
{/ISSUES}
|
||||||
{ADMIN_BREADCRUMBS}
|
|
||||||
{CONTENT}
|
{CONTENT}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -71,6 +70,12 @@
|
|||||||
<div class="container pb-4 pt-3 align-items-center">
|
<div class="container pb-4 pt-3 align-items-center">
|
||||||
<div class="d-flex justify-content-between align-items-center context-main-bg">
|
<div class="d-flex justify-content-between align-items-center context-main-bg">
|
||||||
{COPY}
|
{COPY}
|
||||||
|
<div class="col-6 col-md-2">
|
||||||
|
<div class="material-switch">
|
||||||
|
<input name="dark-mode-toggle" type="checkbox" id="dark-mode-toggle" class="form-check-input">
|
||||||
|
<label for="dark-mode-toggle" class="label-default"></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{SOCIAL}
|
{SOCIAL}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -7,6 +7,10 @@
|
|||||||
Right now this entire system was built and managed by myself. As stated, I have used my own version of this for years but translating it to publicly available is not a 1 to 1 job. There may be bugs or issues encountered while you use the produxct. I can't guarantee a fix for every need in every case immidiately, but I do actively keep track of bugs and work hard to ensure everyone has a great experiience usiing the app.
|
Right now this entire system was built and managed by myself. As stated, I have used my own version of this for years but translating it to publicly available is not a 1 to 1 job. There may be bugs or issues encountered while you use the produxct. I can't guarantee a fix for every need in every case immidiately, but I do actively keep track of bugs and work hard to ensure everyone has a great experiience usiing the app.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
If you encounter any bugs, feel free to report it here. Likewise, there are forms for feedback, reviews, suggestions, and a general contact form. Thanks for taking the time to check out the product!
|
If you encounter any bugs, feel free to report them <a href="/bugreport" class="text-primary text-decoration-underline">here</a>. Likewise, there are forms for feedback, reviews, suggestions, and a general contact form. Thanks for taking the time to check out the product!
|
||||||
</p>
|
</p>
|
||||||
|
<div class="text-center mt-4 pb-4">
|
||||||
|
{loggedin}<a href="/bugreport" class="btn btn-primary btn-lg px-5">Report a Bug</a>{/loggedin}
|
||||||
|
<a href="/contact" class="btn btn-outline-secondary btn-lg px-5 ms-3">Contact Us</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
@ -1,39 +1,69 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="context-main-bg context-main p-3">
|
||||||
<legend>Send Email</legend>
|
<legend class="text-center">Send Email</legend>
|
||||||
<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>
|
<hr>
|
||||||
<fieldset>
|
{ADMIN_BREADCRUMBS}
|
||||||
<div class="form-group">
|
<div class="col-lg-6 offset-md-3">
|
||||||
<label for="mailType" class="col-lg-3 control-label">Recipients:</label>
|
<p>
|
||||||
<div class="col-lg-2">
|
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.
|
||||||
<select class="form-control" name="mailType" id="mailType">
|
</p>
|
||||||
<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>
|
</div>
|
||||||
<div class="form-group">
|
<form action="" method="post">
|
||||||
<label for="mailSubject" class="col-lg-3 control-label">Subject:</label>
|
<fieldset>
|
||||||
<div class="col-lg-2">
|
<!-- Subject -->
|
||||||
<input class="form-control" type="text" name="mailSubject" id="mailSubject">
|
<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>
|
</div>
|
||||||
</div>
|
</form>
|
||||||
<div class="form-group">
|
</div>
|
||||||
<label for="mailTitle" class="col-lg-3 control-label">Title:</label>
|
|
||||||
<div class="col-lg-2">
|
|
||||||
<input class="form-control" type="text" name="mailTitle" id="mailTitle">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="mailMessage" class="col-lg-3 control-label">Body:<br> (max:2000 characters)</label>
|
|
||||||
<div class="col-lg-6">
|
|
||||||
<textarea class="form-control" name="mailMessage" maxlength="2000" rows="10" cols="50" id="mailMessage"></textarea>
|
|
||||||
</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">Send</button><br>
|
|
||||||
</form>
|
|
@ -1,12 +1,26 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="context-main-bg context-main p-3">
|
||||||
<legend>New Group</legend>
|
<legend class="text-center">Add Group</legend>
|
||||||
<div class="form-group">
|
<hr>
|
||||||
<label for="name" class="col-lg-3 control-label">Name</label>
|
{ADMIN_BREADCRUMBS}
|
||||||
<div class="col-lg-3">
|
<form method="post">
|
||||||
<input type="text" class="form-check-input" name="name" id="name">
|
<fieldset>
|
||||||
</div>
|
<!-- Name -->
|
||||||
</div>
|
<div class="mb-3 row">
|
||||||
{PERMISSIONS_FORM}
|
<label for="name" class="col-lg-6 col-form-label text-end">Name:</label>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Create</button>
|
<div class="col-lg-2">
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
<input type="text" class="form-control" name="name" id="name" required>
|
||||||
</form>
|
</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>
|
@ -1,12 +1,26 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="context-main-bg context-main p-3">
|
||||||
<legend>Edit Group: {name}</legend>
|
<legend class="text-center">Edit Group: {name}</legend>
|
||||||
<div class="form-group">
|
<hr>
|
||||||
<label for="name" class="col-lg-3 control-label">Name</label>
|
{ADMIN_BREADCRUMBS}
|
||||||
<div class="col-lg-3">
|
<form method="post">
|
||||||
<input type="text" class="form-check-input" name="name" id="name" value="{name}">
|
<fieldset>
|
||||||
</div>
|
<!-- Name -->
|
||||||
</div>
|
<div class="mb-3 row">
|
||||||
{PERMISSIONS_FORM}
|
<label for="name" class="col-lg-6 col-form-label text-end">Name:</label>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Save</button>
|
<div class="col-lg-2">
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
<input type="text" class="form-control" name="name" id="name" value="{name}" required>
|
||||||
</form>
|
</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>
|
@ -1,39 +1,42 @@
|
|||||||
<legend>Groups</legend>
|
<div class="context-main-bg context-main p-3">
|
||||||
{PAGINATION}
|
<legend class="text-center">Groups</legend>
|
||||||
<form action="{ROOT_URL}admin/groups/delete" method="post">
|
<hr>
|
||||||
<table class="table table-striped">
|
{ADMIN_BREADCRUMBS}
|
||||||
<thead>
|
<form action="{ROOT_URL}admin/groups/delete" method="post">
|
||||||
<tr>
|
<table class="table table-striped">
|
||||||
<th style="width: 50%">Name</th>
|
<thead>
|
||||||
<th style="width: 35%">Users</th>
|
<tr>
|
||||||
<th style="width: 5%"></th>
|
<th style="width: 50%">Name</th>
|
||||||
<th style="width: 5%"></th>
|
<th style="width: 35%">Users</th>
|
||||||
<th style="width: 5%">
|
<th style="width: 5%"></th>
|
||||||
<INPUT type="checkbox" onchange="checkAll(this)" name="check.g" value="G_[]"/>
|
<th style="width: 5%"></th>
|
||||||
</th>
|
<th style="width: 5%">
|
||||||
</tr>
|
<INPUT type="checkbox" onchange="checkAll(this)" name="check.g" value="G_[]"/>
|
||||||
</thead>
|
</th>
|
||||||
<tbody>
|
</tr>
|
||||||
{LOOP}
|
</thead>
|
||||||
<tr>
|
<tbody>
|
||||||
<td><a href="{ROOT_URL}admin/groups/view/{ID}">{name}</a></td>
|
{LOOP}
|
||||||
<td><a href="{ROOT_URL}admin/groups/listmembers/{ID}">{userCount}</a></td>
|
<tr>
|
||||||
<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/view/{ID}">{name}</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><a href="{ROOT_URL}admin/groups/listmembers/{ID}">{userCount}</a></td>
|
||||||
<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>
|
||||||
<input type="checkbox" value="{ID}" name="G_[]">
|
<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>
|
<td>
|
||||||
</tr>
|
<input type="checkbox" value="{ID}" name="G_[]">
|
||||||
{/LOOP}
|
</td>
|
||||||
{ALT}
|
</tr>
|
||||||
<tr>
|
{/LOOP}
|
||||||
<td align="center" colspan="5">
|
{ALT}
|
||||||
No results to show.
|
<tr>
|
||||||
</td>
|
<td align="center" colspan="5">
|
||||||
</tr>
|
No results to show.
|
||||||
{/ALT}
|
</td>
|
||||||
</tbody>
|
</tr>
|
||||||
</table>
|
{/ALT}
|
||||||
<a href="{ROOT_URL}admin/groups/create" class="btn btn-sm btn-primary">Create</a>
|
</tbody>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger">Delete</button>
|
</table>
|
||||||
</form>
|
<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>
|
@ -36,5 +36,5 @@
|
|||||||
{/ALT}
|
{/ALT}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger">Delete</button>
|
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||||
</form>
|
</form>
|
@ -1,24 +1,29 @@
|
|||||||
<div class="container">
|
<div class="container py-4">
|
||||||
<div class="row">
|
<div class="row justify-content-center">
|
||||||
<div class="col-sm-12 col-md-6 col-lg-6 col-sm-offset-0 col-md-offset-3 col-lg-offset-3 top-pad" >
|
<div class="col-md-8">
|
||||||
<div class="card">
|
{ADMIN_BREADCRUMBS}
|
||||||
<div class="card-header bg-dark">
|
<div class="card shadow">
|
||||||
<h3 class="card-title">{name}</h3>
|
<!-- Card Header -->
|
||||||
|
<div class="card-header text-center bg-dark text-white">
|
||||||
|
<h3 class="card-title mb-0">{name}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Card Body -->
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="row">
|
<div class="row align-items-center">
|
||||||
<div class=" col-md-9 col-lg-9 ">
|
<!-- Log Details -->
|
||||||
<table class="table table-user-primary">
|
<table class="table table-borderless">
|
||||||
<tbody>
|
<tbody>
|
||||||
{PERMISSIONS_ROWS}
|
{PERMISSIONS_ROWS}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer">
|
|
||||||
<a href="{ROOT_URL}admin/groups/edit/{ID}" class="btn btn-sm btn-warning">Edit</a>
|
<!-- Admin Controls -->
|
||||||
<a href="{ROOT_URL}admin/groups/delete/{ID}" class="btn btn-sm btn-danger">Delete</a>
|
<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>
|
</div>
|
||||||
|
@ -1,50 +1,56 @@
|
|||||||
<div class="container">
|
<div class="container py-4">
|
||||||
<div class="row">
|
<div class="row justify-content-center">
|
||||||
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 col-xs-offset-0 col-sm-offset-0 col-md-offset-3 col-lg-offset-3 top-pad" >
|
<div class="col-md-8">
|
||||||
<div class="panel panel-primary">
|
<div class="card shadow">
|
||||||
<div class="panel-heading">
|
<!-- Card Header -->
|
||||||
<h3 class="panel-title">Admin Log</h3>
|
<div class="card-header text-center bg-dark text-white">
|
||||||
</div>
|
<h3 class="card-title mb-0">Admin Log</h3>
|
||||||
<div class="panel-body">
|
</div>
|
||||||
<div class="row">
|
|
||||||
<div class=" col-md-12 col-lg-12 ">
|
<!-- Card Body -->
|
||||||
<table class="table table-user-primary">
|
<div class="card-body">
|
||||||
<tbody>
|
<div class="row align-items-center">
|
||||||
<tr>
|
<!-- Log Details -->
|
||||||
<td align="left" width="200">ID</td>
|
<div class="col-md-8">
|
||||||
<td align="right">{ID}</td>
|
<table class="table table-borderless">
|
||||||
</tr>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>User:</td>
|
<th scope="row">ID:</th>
|
||||||
<td align="right">{logUser}</td>
|
<td>{ID}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Time:</td>
|
<th scope="row">User:</th>
|
||||||
<td align="right">{DTC}{time}{/DTC}</td>
|
<td>{logUser}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>IP:</td>
|
<th scope="row">Time:</th>
|
||||||
<td align="right">{ip}</td>
|
<td>{DTC}{time}{/DTC}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="left">Log:</td>
|
<th scope="row">IP:</th>
|
||||||
<td align="right">{action}</td>
|
<td>{ip}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
<tr>
|
||||||
</table>
|
<th scope="row">Log:</th>
|
||||||
</div>
|
<td>{action}</td>
|
||||||
</div>
|
</tr>
|
||||||
</div>
|
</tbody>
|
||||||
<div class="panel-footer">
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Admin Controls -->
|
||||||
|
<div class="card-footer text-center">
|
||||||
{ADMIN}
|
{ADMIN}
|
||||||
<form action="{ROOT_URL}admin/admin/delete" method="post">
|
<form action="{ROOT_URL}admin/admin/delete" method="post">
|
||||||
<INPUT type="hidden" name="L_" value="{ID}"/>
|
<INPUT type="hidden" name="L_" value="{ID}"/>
|
||||||
<input type="hidden" name="token" value="{TOKEN}" />
|
<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-times"></i></button>
|
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||||
</form>
|
</form>
|
||||||
{/ADMIN}
|
{/ADMIN}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
@ -1,40 +1,43 @@
|
|||||||
<legend>Admin Logs</legend>
|
<div class="context-main-bg context-main p-3">
|
||||||
{PAGINATION}
|
<legend class="text-center">Admin Logs</legend>
|
||||||
<form action="{ROOT_URL}admin/admin/delete" method="post">
|
<hr>
|
||||||
<table class="table table-striped">
|
{ADMIN_BREADCRUMBS}
|
||||||
<thead>
|
<form action="{ROOT_URL}admin/admin/delete" method="post">
|
||||||
<tr>
|
<table class="table table-striped">
|
||||||
<th style="width: 5%">ID</th>
|
<thead>
|
||||||
<th style="width: 30%">Time</th>
|
<tr>
|
||||||
<th style="width: 50%">Action</th>
|
<th style="width: 5%">ID</th>
|
||||||
<th style="width: 5%"></th>
|
<th style="width: 30%">Time</th>
|
||||||
<th style="width: 5%"></th>
|
<th style="width: 50%">Action</th>
|
||||||
<th style="width: 5%"">
|
<th style="width: 5%"></th>
|
||||||
<INPUT type="checkbox" onchange="checkAll(this)" name="check.l" value="A_[]"/>
|
<th style="width: 5%"></th>
|
||||||
</th>
|
<th style="width: 5%"">
|
||||||
</tr>
|
<INPUT type="checkbox" onchange="checkAll(this)" name="check.l" value="A_[]"/>
|
||||||
</thead>
|
</th>
|
||||||
<tbody>
|
</tr>
|
||||||
{LOOP}
|
</thead>
|
||||||
<tr>
|
<tbody>
|
||||||
<td>{ID}</td>
|
{LOOP}
|
||||||
<td>{DTC}{time}{/DTC}</td>
|
<tr>
|
||||||
<td>{action}</td>
|
<td>{ID}</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>{DTC}{time}{/DTC}</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>{action}</td>
|
||||||
<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>
|
||||||
<input type="checkbox" value="{ID}" name="A_[]">
|
<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>
|
<td>
|
||||||
</tr>
|
<input type="checkbox" value="{ID}" name="A_[]">
|
||||||
{/LOOP}
|
</td>
|
||||||
{ALT}
|
</tr>
|
||||||
<tr>
|
{/LOOP}
|
||||||
<td align="center" colspan="6">
|
{ALT}
|
||||||
No results to show.
|
<tr>
|
||||||
</td>
|
<td align="center" colspan="6">
|
||||||
</tr>
|
No results to show.
|
||||||
{/ALT}
|
</td>
|
||||||
</tbody>
|
</tr>
|
||||||
</table>
|
{/ALT}
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger">Delete</button>
|
</tbody>
|
||||||
</form>
|
</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>
|
@ -1,57 +1,66 @@
|
|||||||
<div class="container">
|
<div class="container py-4">
|
||||||
<div class="row">
|
<div class="row justify-content-center">
|
||||||
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 col-xs-offset-0 col-sm-offset-0 col-md-offset-3 col-lg-offset-3 top-pad" >
|
<div class="col-md-8">
|
||||||
<div class="panel panel-primary">
|
<div class="card shadow">
|
||||||
<div class="panel-heading">
|
<!-- Card Header -->
|
||||||
<h3 class="panel-title">Error</h3>
|
<div class="card-header text-center bg-dark text-white">
|
||||||
</div>
|
<h3 class="card-title mb-0">Error Log</h3>
|
||||||
<div class="panel-body">
|
</div>
|
||||||
<div class="row">
|
|
||||||
<div class=" col-md-12 col-lg-12 ">
|
<!-- Card Body -->
|
||||||
<table class="table table-user-primary">
|
<div class="card-body">
|
||||||
<tbody>
|
<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>
|
<tr>
|
||||||
<td align="left" width="200">ID</td>
|
<th scope="row" colspan="2">Description:</th>
|
||||||
<td align="right">{ID}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Time submitted:</td>
|
|
||||||
<td align="right">{DTC}{time}{/DTC}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>IP:</td>
|
|
||||||
<td align="right">{ip}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="left">Class:</td>
|
|
||||||
<td align="right">{class}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="left">Function</td>
|
|
||||||
<td align="right">{function}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="left">Error:</td>
|
|
||||||
<td align="right">{error}</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2">{description}</td>
|
<td colspan="2">{description}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-footer">
|
|
||||||
|
<!-- Admin Controls -->
|
||||||
|
<div class="card-footer text-center">
|
||||||
{ADMIN}
|
{ADMIN}
|
||||||
<form action="{ROOT_URL}admin/errors/delete" method="post">
|
<form action="{ROOT_URL}admin/errors/delete" method="post">
|
||||||
<INPUT type="hidden" name="E_" value="{ID}"/>
|
<INPUT type="hidden" name="E_" value="{ID}"/>
|
||||||
<input type="hidden" name="token" value="{TOKEN}" />
|
<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-times"></i></button>
|
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||||
</form>
|
</form>
|
||||||
{/ADMIN}
|
{/ADMIN}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
@ -1,40 +1,43 @@
|
|||||||
<legend>Errors</legend>
|
<div class="context-main-bg context-main p-3">
|
||||||
{PAGINATION}
|
<legend class="text-center">Errors</legend>
|
||||||
<form action="{ROOT_URL}admin/errors/delete" method="post">
|
<hr>
|
||||||
<table class="table table-striped">
|
{ADMIN_BREADCRUMBS}
|
||||||
<thead>
|
<form action="{ROOT_URL}admin/errors/delete" method="post">
|
||||||
<tr>
|
<table class="table table-striped">
|
||||||
<th style="width: 5%">ID</th>
|
<thead>
|
||||||
<th style="width: 25%">Time</th>
|
<tr>
|
||||||
<th style="width: 55%">Description</th>
|
<th style="width: 5%">ID</th>
|
||||||
<th style="width: 5%"></th>
|
<th style="width: 25%">Time</th>
|
||||||
<th style="width: 5%"></th>
|
<th style="width: 55%">Description</th>
|
||||||
<th style="width: 5%">
|
<th style="width: 5%"></th>
|
||||||
<INPUT type="checkbox" onchange="checkAll(this)" name="check.e" value="E_[]"/>
|
<th style="width: 5%"></th>
|
||||||
</th>
|
<th style="width: 5%">
|
||||||
</tr></thead><tbody>
|
<INPUT type="checkbox" onchange="checkAll(this)" name="check.e" value="E_[]"/>
|
||||||
{LOOP}
|
</th>
|
||||||
<tr>
|
</tr></thead><tbody>
|
||||||
<td align="center">{ID}</td>
|
{LOOP}
|
||||||
<td align="center">{DTC}{time}{/DTC}</td>
|
<tr>
|
||||||
<td>{error}</td>
|
<td align="center">{ID}</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 align="center">{DTC}{time}{/DTC}</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>{error}</td>
|
||||||
<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>
|
||||||
<input type="checkbox" value="{ID}" name="E_[]">
|
<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>
|
<td>
|
||||||
</tr>
|
<input type="checkbox" value="{ID}" name="E_[]">
|
||||||
{/LOOP}
|
</td>
|
||||||
{ALT}
|
</tr>
|
||||||
<tr>
|
{/LOOP}
|
||||||
<td align="center" colspan="6">
|
{ALT}
|
||||||
No results to show.
|
<tr>
|
||||||
</td>
|
<td align="center" colspan="6">
|
||||||
</tr>
|
No results to show.
|
||||||
{/ALT}
|
</td>
|
||||||
</tbody>
|
</tr>
|
||||||
</table>
|
{/ALT}
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger">Delete</button>
|
</tbody>
|
||||||
</form>
|
</table>
|
||||||
<br />
|
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||||
<a href="{ROOT_URL}admin/errors/clear">clear all</a>
|
</form>
|
||||||
|
<br />
|
||||||
|
<a href="{ROOT_URL}admin/errors/clear">clear all</a>
|
||||||
|
</div>
|
@ -1,50 +1,56 @@
|
|||||||
<div class="container">
|
<div class="container py-4">
|
||||||
<div class="row">
|
<div class="row justify-content-center">
|
||||||
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 col-xs-offset-0 col-sm-offset-0 col-md-offset-3 col-lg-offset-3 top-pad" >
|
<div class="col-md-8">
|
||||||
<div class="panel panel-primary">
|
<div class="card shadow">
|
||||||
<div class="panel-heading">
|
<!-- Card Header -->
|
||||||
<h3 class="panel-title">Login Record</h3>
|
<div class="card-header text-center bg-dark text-white">
|
||||||
</div>
|
<h3 class="card-title mb-0">Login Log</h3>
|
||||||
<div class="panel-body">
|
</div>
|
||||||
<div class="row">
|
|
||||||
<div class=" col-md-12 col-lg-12 ">
|
<!-- Card Body -->
|
||||||
<table class="table table-user-primary">
|
<div class="card-body">
|
||||||
<tbody>
|
<div class="row align-items-center">
|
||||||
<tr>
|
<!-- Log Details -->
|
||||||
<td align="left" width="200">ID</td>
|
<div class="col-md-8">
|
||||||
<td align="right">{ID}</td>
|
<table class="table table-borderless">
|
||||||
</tr>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>User:</td>
|
<th scope="row">ID:</th>
|
||||||
<td align="right">{logUser}</td>
|
<td>{ID}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Time:</td>
|
<th scope="row">User:</th>
|
||||||
<td align="right">{DTC}{time}{/DTC}</td>
|
<td>{logUser}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>IP:</td>
|
<th scope="row">Time:</th>
|
||||||
<td align="right">{ip}</td>
|
<td>{DTC}{time}{/DTC}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="left">Pass or Fail:</td>
|
<th scope="row">IP:</th>
|
||||||
<td align="right">{action}</td>
|
<td>{ip}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
<tr>
|
||||||
</table>
|
<th scope="row">Pass or Fail:</th>
|
||||||
</div>
|
<td>{action}</td>
|
||||||
</div>
|
</tr>
|
||||||
</div>
|
</tbody>
|
||||||
<div class="panel-footer">
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Admin Controls -->
|
||||||
|
<div class="card-footer text-center">
|
||||||
{ADMIN}
|
{ADMIN}
|
||||||
<form action="{ROOT_URL}admin/logins/delete" method="post">
|
<form action="{ROOT_URL}admin/logins/delete" method="post">
|
||||||
<INPUT type="hidden" name="L_" value="{ID}"/>
|
<INPUT type="hidden" name="L_" value="{ID}"/>
|
||||||
<input type="hidden" name="token" value="{TOKEN}" />
|
<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-times"></i></button>
|
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||||
</form>
|
</form>
|
||||||
{/ADMIN}
|
{/ADMIN}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
@ -1,42 +1,45 @@
|
|||||||
<legend>Logins</legend>
|
<div class="context-main-bg context-main p-3">
|
||||||
{PAGINATION}
|
<legend class="text-center">Logins</legend>
|
||||||
<form action="{ROOT_URL}admin/logins/delete" method="post">
|
<hr>
|
||||||
<table class="table table-striped">
|
{ADMIN_BREADCRUMBS}
|
||||||
<thead>
|
<form action="{ROOT_URL}admin/logins/delete" method="post">
|
||||||
<tr>
|
<table class="table table-striped">
|
||||||
<th style="width: 5%">ID</th>
|
<thead>
|
||||||
<th style="width: 30%">Time</th>
|
<tr>
|
||||||
<th style="width: 50%">Pass / fail</th>
|
<th style="width: 5%">ID</th>
|
||||||
<th style="width: 5%"></th>
|
<th style="width: 30%">Time</th>
|
||||||
<th style="width: 5%"></th>
|
<th style="width: 50%">Pass / fail</th>
|
||||||
<th style="width: 5%"">
|
<th style="width: 5%"></th>
|
||||||
<INPUT type="checkbox" onchange="checkAll(this)" name="check.l" value="L_[]"/>
|
<th style="width: 5%"></th>
|
||||||
</th>
|
<th style="width: 5%"">
|
||||||
</tr>
|
<INPUT type="checkbox" onchange="checkAll(this)" name="check.l" value="L_[]"/>
|
||||||
</thead>
|
</th>
|
||||||
<tbody>
|
</tr>
|
||||||
{LOOP}
|
</thead>
|
||||||
<tr>
|
<tbody>
|
||||||
<td>{ID}</td>
|
{LOOP}
|
||||||
<td>{DTC}{time}{/DTC}</td>
|
<tr>
|
||||||
<td>{action}</td>
|
<td>{ID}</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>{DTC}{time}{/DTC}</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>{action}</td>
|
||||||
<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>
|
||||||
<input type="checkbox" value="{ID}" name="L_[]">
|
<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>
|
<td>
|
||||||
</tr>
|
<input type="checkbox" value="{ID}" name="L_[]">
|
||||||
{/LOOP}
|
</td>
|
||||||
{ALT}
|
</tr>
|
||||||
<tr>
|
{/LOOP}
|
||||||
<td align="center" colspan="6">
|
{ALT}
|
||||||
No results to show.
|
<tr>
|
||||||
</td>
|
<td align="center" colspan="6">
|
||||||
</tr>
|
No results to show.
|
||||||
{/ALT}
|
</td>
|
||||||
</tbody>
|
</tr>
|
||||||
</table>
|
{/ALT}
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger">Delete</button>
|
</tbody>
|
||||||
</form>
|
</table>
|
||||||
<br />
|
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></button>
|
||||||
<a href="{ROOT_URL}admin/logins/clear">clear all</a>
|
</form>
|
||||||
|
<br />
|
||||||
|
<a href="{ROOT_URL}admin/logins/clear">clear all</a>
|
||||||
|
</div>
|
@ -1,26 +0,0 @@
|
|||||||
<legend><h2>Installed Dependencies</h2></legend>
|
|
||||||
<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><a href="{ROOT_URL}admin/dependencies/viewInfo/{name}">{name}</a></td>
|
|
||||||
<td>{requiredVersion}</td>
|
|
||||||
<td>{version}</td>
|
|
||||||
</tr>
|
|
||||||
{/LOOP}
|
|
||||||
{ALT}
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
No results to show.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
{/ALT}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
30
app/views/admin/modules/dependencies.html
Normal file
30
app/views/admin/modules/dependencies.html
Normal 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>
|
@ -1,6 +0,0 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
|
||||||
<legend>Install {MODEL}</legend>
|
|
||||||
<p>The Tempus Project cannot guarantee the safety or effectiveness of any models not offered directly from the organizations GitHub at <a href="https://github.com/TheTempusProject">The Tempus Project</a></p>
|
|
||||||
<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><br>
|
|
@ -1,34 +0,0 @@
|
|||||||
<legend><h2>Installed Models</h2></legend>
|
|
||||||
<table class="table table-striped">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th style="width: 40%">Name</th>
|
|
||||||
<th style="width: 15%">Install Status</th>
|
|
||||||
<th style="width: 5%">File Version</th>
|
|
||||||
<th style="width: 5%">Installed Version</th>
|
|
||||||
<th style="width: 15%">Install Date</th>
|
|
||||||
<th style="width: 15%">Last Updated</th>
|
|
||||||
<th style="width: 10%"></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{LOOP}
|
|
||||||
<tr>
|
|
||||||
<td><a href="{ROOT_URL}admin/models/view/{name}">{name}</a></td>
|
|
||||||
<td>{installStatus}</td>
|
|
||||||
<td>{version}</td>
|
|
||||||
<td>{installedVersion}</td>
|
|
||||||
<td>{DTC=date}{installDate}{/DTC}</td>
|
|
||||||
<td>{DTC=date}{lastUpdate}{/DTC}</td>
|
|
||||||
<td><a href="{ROOT_URL}admin/models/view/{name}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-upload"></i></a></td>
|
|
||||||
</tr>
|
|
||||||
{/LOOP}
|
|
||||||
{ALT}
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
No results to show.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
{/ALT}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
@ -1,6 +0,0 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
|
||||||
<legend>Uninstall {MODEL}</legend>
|
|
||||||
<p>Are you sure you would like to uninstall this model and all of its components? There is no guarantee that your site will continue to run without error. This is especially the case when uninstalling core TTP models.</p>
|
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Uninstall</button>
|
|
||||||
<input type="hidden" name="uninstallHash" value="{TOKEN}">
|
|
||||||
</form><br>
|
|
@ -1,69 +0,0 @@
|
|||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-12 col-md-6 col-lg-6 col-sm-offset-0 col-md-offset-3 col-lg-offset-3 top-pad" >
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-header bg-dark">
|
|
||||||
<h3 class="card-title">Model Info</h3>
|
|
||||||
</div>
|
|
||||||
<div class="card-body">
|
|
||||||
<div class="row">
|
|
||||||
<div class=" col-md-12 col-lg-12 ">
|
|
||||||
<table class="table table-user-primary">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td align="left" width="200">Name:</td>
|
|
||||||
<td align="right">{name}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Status:</td>
|
|
||||||
<td align="right">{installStatus}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Installed:</td>
|
|
||||||
<td align="right">{DTC}{installDate}{/DTC}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Last Updated:</td>
|
|
||||||
<td align="right">{DTC}{lastUpdate}{/DTC}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>File Version:</td>
|
|
||||||
<td align="right">{version}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Installed Version:</td>
|
|
||||||
<td align="right">{installedVersion}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>installTable:</td>
|
|
||||||
<td align="right">{installTable}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>installPermissions:</td>
|
|
||||||
<td align="right">{installPermissions}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>installConfigs:</td>
|
|
||||||
<td align="right">{installConfigs}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>installResources:</td>
|
|
||||||
<td align="right">{installResources}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>installPreferences:</td>
|
|
||||||
<td align="right">{installPreferences}</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="card-footer">
|
|
||||||
<a href="{ROOT_URL}admin/models/install/{name}" class="btn btn-sm btn-warning">Install</a>
|
|
||||||
<a href="{ROOT_URL}admin/models/uninstall/{name}" class="btn btn-sm btn-danger">Uninstall</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
@ -1,7 +1,13 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="context-main-bg context-main p-3">
|
||||||
<legend>Disable {PLUGIN}</legend>
|
<legend class="text-center">Disable {PLUGIN}</legend>
|
||||||
<p>Are you absolutely <b>SURE</b> you wish to <b>Disable</b> this plugin?</p>
|
<hr>
|
||||||
<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>
|
{ADMIN_BREADCRUMBS}
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Disable</button>
|
<div class="col-lg-6 offset-md-3 text-center">
|
||||||
<input type="hidden" name="installHash" value="{TOKEN}">
|
<p>Are you absolutely <b>SURE</b> you wish to <b>Disable</b> this plugin?</p>
|
||||||
</form><br>
|
<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>
|
@ -1,7 +1,13 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="context-main-bg context-main p-3">
|
||||||
<legend>Enable {PLUGIN}</legend>
|
<legend class="text-center">Enable {PLUGIN}</legend>
|
||||||
<p>Are you absolutely <b>SURE</b> you wish to <b>Enable</b> this plugin?</p>
|
<hr>
|
||||||
<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>
|
{ADMIN_BREADCRUMBS}
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Enable</button>
|
<div class="col-lg-6 offset-md-3 text-center">
|
||||||
<input type="hidden" name="installHash" value="{TOKEN}">
|
<p>Are you absolutely <b>SURE</b> you wish to <b>Enable</b> this plugin?</p>
|
||||||
</form><br>
|
<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">Enable</button>
|
||||||
|
<input type="hidden" name="installHash" value="{TOKEN}">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -1,6 +1,12 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="context-main-bg context-main p-3">
|
||||||
<legend>Install {PLUGIN}</legend>
|
<legend class="text-center">Install {PLUGIN}</legend>
|
||||||
<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>
|
<hr>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Install</button>
|
{ADMIN_BREADCRUMBS}
|
||||||
<input type="hidden" name="installHash" value="{TOKEN}">
|
<div class="col-lg-6 offset-md-3 text-center">
|
||||||
</form><br>
|
<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>
|
@ -1,34 +1,38 @@
|
|||||||
<legend><h2>Installed Plugins</h2></legend>
|
<div class="context-main-bg context-main p-3">
|
||||||
<table class="table table-striped">
|
<legend class="text-center">Installed Plugins</legend>
|
||||||
<thead>
|
<hr>
|
||||||
<tr>
|
{ADMIN_BREADCRUMBS}
|
||||||
<th style="width: 20%">Name</th>
|
<table class="table table-striped">
|
||||||
<th style="width: 5%">Enabled</th>
|
<thead>
|
||||||
<th style="width: 15%">Install Status</th>
|
<tr>
|
||||||
<th style="width: 10%">File Version</th>
|
<th style="width: 20%">Name</th>
|
||||||
<th style="width: 10%">Installed Version</th>
|
<th style="width: 5%">Enabled</th>
|
||||||
<th style="width: 15%">Install Date</th>
|
<th style="width: 15%">Install Status</th>
|
||||||
<th style="width: 15%">Last Updated</th>
|
<th style="width: 10%">File Version</th>
|
||||||
</tr>
|
<th style="width: 10%">Installed Version</th>
|
||||||
</thead>
|
<th style="width: 15%">Install Date</th>
|
||||||
<tbody>
|
<th style="width: 15%">Last Updated</th>
|
||||||
{LOOP}
|
</tr>
|
||||||
<tr>
|
</thead>
|
||||||
<td><a href="{ROOT_URL}admin/plugins/view/{name}">{name}</a></td>
|
<tbody>
|
||||||
<td>{enabled_txt}</td>
|
{LOOP}
|
||||||
<td>{installStatus}</td>
|
<tr>
|
||||||
<td>{version}</td>
|
<td><a href="{ROOT_URL}admin/plugins/view/{name}">{name}</a></td>
|
||||||
<td>{installedVersion}</td>
|
<td>{enabled_txt}</td>
|
||||||
<td>{DTC=date}{installDate}{/DTC}</td>
|
<td>{installStatus}</td>
|
||||||
<td>{DTC=date}{lastUpdate}{/DTC}</td>
|
<td>{version}</td>
|
||||||
</tr>
|
<td>{installedVersion}</td>
|
||||||
{/LOOP}
|
<td>{DTC=date}{installDate}{/DTC}</td>
|
||||||
{ALT}
|
<td>{DTC=date}{lastUpdate}{/DTC}</td>
|
||||||
<tr>
|
</tr>
|
||||||
<td colspan="6">
|
{/LOOP}
|
||||||
No results to show.
|
{ALT}
|
||||||
</td>
|
<tr>
|
||||||
</tr>
|
<td colspan="6">
|
||||||
{/ALT}
|
No results to show.
|
||||||
</tbody>
|
</td>
|
||||||
</table>
|
</tr>
|
||||||
|
{/ALT}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
@ -1,6 +1,12 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="context-main-bg context-main p-3">
|
||||||
<legend>Uninstall {PLUGIN}</legend>
|
<legend class="text-center">Uninstall {PLUGIN}</legend>
|
||||||
<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>
|
<hr>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Uninstall</button>
|
{ADMIN_BREADCRUMBS}
|
||||||
<input type="hidden" name="uninstallHash" value="{TOKEN}">
|
<div class="col-lg-6 offset-md-3 text-center">
|
||||||
</form><br>
|
<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-primary center-block">Uninstall</button>
|
||||||
|
<input type="hidden" name="uninstallHash" value="{TOKEN}">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -1,75 +1,80 @@
|
|||||||
<div class="container">
|
<div class="container py-4">
|
||||||
<div class="row">
|
<div class="row justify-content-center">
|
||||||
<div class="col-sm-12 col-md-6 col-lg-6 col-sm-offset-0 col-md-offset-3 col-lg-offset-3 top-pad" >
|
<div class="col-md-8">
|
||||||
<div class="card">
|
{ADMIN_BREADCRUMBS}
|
||||||
<div class="card-header bg-dark">
|
<div class="card shadow">
|
||||||
<h3 class="card-title">Plugin Info</h3>
|
<!-- Card Header -->
|
||||||
</div>
|
<div class="card-header text-center bg-dark text-white">
|
||||||
<div class="card-body">
|
<h3 class="card-title mb-0">Plugin: {name}</h3>
|
||||||
<div class="row">
|
</div>
|
||||||
<div class=" col-md-12 col-lg-12 ">
|
|
||||||
<table class="table table-user-primary">
|
<!-- Card Body -->
|
||||||
<tbody>
|
<div class="card-body">
|
||||||
|
<div class="row align-items-center">
|
||||||
|
<!-- Log Details -->
|
||||||
|
<table class="table table-borderless">
|
||||||
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="left" width="200">Name:</td>
|
<th scope="row" class="col-3">Name</th>
|
||||||
<td align="right">{name}</td>
|
<td>{name}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Enabled:</td>
|
<th scope="row">Enabled</th>
|
||||||
<td align="right">{enabled_txt}</td>
|
<td>{enabled_txt}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Status:</td>
|
<th scope="row">Status</th>
|
||||||
<td align="right">{installStatus}</td>
|
<td>{installStatus}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Install Date:</td>
|
<th scope="row">Install Date</th>
|
||||||
<td align="right">{DTC}{installDate}{/DTC}</td>
|
<td>{DTC}{installDate}{/DTC}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Last Updated:</td>
|
<th scope="row">Last Updated</th>
|
||||||
<td align="right">{DTC}{lastUpdate}{/DTC}</td>
|
<td>{DTC}{lastUpdate}{/DTC}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>File Version:</td>
|
<th scope="row">File Version</th>
|
||||||
<td align="right">{version}</td>
|
<td>{version}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Installed Version:</td>
|
<th scope="row">Installed Version</th>
|
||||||
<td align="right">{installedVersion}</td>
|
<td>{installedVersion}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Preferences Installed:</td>
|
<th scope="row">Preferences Installed</th>
|
||||||
<td align="right">{preferences_installed}</td>
|
<td>{preferences_installed}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Permissions Installed:</td>
|
<th scope="row">Permissions Installed</th>
|
||||||
<td align="right">{permissions_installed}</td>
|
<td>{permissions_installed}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Configs Installed:</td>
|
<th scope="row">Configs Installed</th>
|
||||||
<td align="right">{configs_installed}</td>
|
<td>{configs_installed}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Models Installed:</td>
|
<th scope="row">Models Installed</th>
|
||||||
<td align="right">{models_installed}</td>
|
<td>{models_installed}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Resources Installed:</td>
|
<th scope="row">Resources Installed</th>
|
||||||
<td align="right">{resources_installed}</td>
|
<td>{resources_installed}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="card-footer">
|
<!-- 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/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/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/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>
|
<a href="{ROOT_URL}admin/plugins/uninstall/{name}" class="btn btn-sm btn-danger">Uninstall</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
@ -1,34 +1,51 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="context-main-bg context-main p-3">
|
||||||
<legend>New Route</legend>
|
<legend class="text-center">Edit Route: {nickname}</legend>
|
||||||
<fieldset>
|
<hr>
|
||||||
<div class="form-group">
|
{ADMIN_BREADCRUMBS}
|
||||||
<label for="nickname" class="col-lg-6 control-label">Nickname:</label>
|
<form method="post">
|
||||||
<div class="col-lg-2">
|
<fieldset>
|
||||||
<input class="form-control" type="text" name="nickname" id="nickname">
|
<!-- 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>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<!-- Original URL -->
|
||||||
<label for="original_url" class="col-lg-6 control-label">Original URL:</label>
|
<div class="mb-3 row">
|
||||||
<div class="col-lg-2">
|
<label for="original_url" class="col-lg-6 col-form-label text-end">Original URL:</label>
|
||||||
<input class="form-control" type="text" name="original_url" id="original_url">
|
<div class="col-lg-2">
|
||||||
|
<input type="text" class="form-control" name="original_url" id="original_url" required>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<!-- Forward URL -->
|
||||||
<label for="forwarded_url" class="col-lg-6 control-label">Forward URL:</label>
|
<div class="mb-3 row">
|
||||||
<div class="col-lg-2">
|
<label for="forwarded_url" class="col-lg-6 col-form-label text-end">Forward URL:</label>
|
||||||
<input class="form-control" type="text" name="forwarded_url" id="forwarded_url">
|
<div class="col-lg-2">
|
||||||
|
<input type="text" class="form-control" name="forwarded_url" id="forwarded_url" required>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<!-- Redirect Type -->
|
||||||
<label for="redirect_type" class="col-lg-6 control-label">Redirect Type:</label>
|
<div class="mb-3 row">
|
||||||
<div class="col-lg-2">
|
<label for="redirect_type" class="col-lg-6 col-form-label text-end">Redirect Type:</label>
|
||||||
<select name="redirect_type" id="redirect_type" class="">
|
<div class="col-lg-2">
|
||||||
<option value='internal' selected>Internal</option>
|
<select name="redirect_type" id="redirect_type" class="form-control">
|
||||||
<option value='external'>External</option>
|
<option value='external'>External</option>
|
||||||
</select>
|
<option value='internal'>Internal</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</fieldset>
|
<!-- Hidden Token -->
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
<input type="hidden" name="token" value="{TOKEN}">
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Create</button><br>
|
|
||||||
</form>
|
<!-- 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>
|
@ -1,35 +1,52 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="context-main-bg context-main p-3">
|
||||||
<legend>Edit Route</legend>
|
<legend class="text-center">Edit Route: {nickname}</legend>
|
||||||
<fieldset>
|
<hr>
|
||||||
<div class="form-group">
|
{ADMIN_BREADCRUMBS}
|
||||||
<label for="nickname" class="col-lg-6 control-label">Nickname:</label>
|
<form method="post">
|
||||||
<div class="col-lg-2">
|
<fieldset>
|
||||||
<input class="form-control" type="text" name="nickname" id="nickname" value="{nickname}">
|
<!-- 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>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<!-- Original URL -->
|
||||||
<label for="original_url" class="col-lg-6 control-label">Original URL:</label>
|
<div class="mb-3 row">
|
||||||
<div class="col-lg-2">
|
<label for="original_url" class="col-lg-6 col-form-label text-end">Original URL:</label>
|
||||||
<input class="form-control" type="text" name="original_url" id="original_url" value="{original_url}">
|
<div class="col-lg-2">
|
||||||
|
<input type="text" class="form-control" name="original_url" id="original_url" value="{original_url}" required>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<!-- Forward URL -->
|
||||||
<label for="forwarded_url" class="col-lg-6 control-label">Forward URL:</label>
|
<div class="mb-3 row">
|
||||||
<div class="col-lg-2">
|
<label for="forwarded_url" class="col-lg-6 col-form-label text-end">Forward URL:</label>
|
||||||
<input class="form-control" type="text" name="forwarded_url" id="forwarded_url" value="{forwarded_url}">
|
<div class="col-lg-2">
|
||||||
|
<input type="text" class="form-control" name="forwarded_url" id="forwarded_url" value="{forwarded_url}" required>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<!-- Redirect Type -->
|
||||||
<label for="redirect_type" class="col-lg-6 control-label">Redirect Type:</label>
|
<div class="mb-3 row">
|
||||||
<div class="col-lg-2">
|
<label for="redirect_type" class="col-lg-6 col-form-label text-end">Redirect Type:</label>
|
||||||
<select name="redirect_type" id="redirect_type" class="">
|
<div class="col-lg-2">
|
||||||
{OPTION=redirect_type}
|
<select name="redirect_type" id="redirect_type" class="form-control">
|
||||||
<option value='external'>External</option>
|
{OPTION=redirect_type}
|
||||||
<option value='internal'>Internal</option>
|
<option value='external'>External</option>
|
||||||
</select>
|
<option value='internal'>Internal</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</fieldset>
|
<!-- Hidden Token -->
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
<input type="hidden" name="token" value="{TOKEN}">
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Save</button><br>
|
|
||||||
</form>
|
<!-- 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>
|
@ -1,45 +1,48 @@
|
|||||||
<legend>Redirects</legend>
|
<div class="context-main-bg context-main p-3">
|
||||||
{PAGINATION}
|
<legend class="text-center">Redirects</legend>
|
||||||
<form action="{ROOT_URL}admin/routes/delete" method="post">
|
<hr>
|
||||||
<table class="table table-striped">
|
{ADMIN_BREADCRUMBS}
|
||||||
<thead>
|
<form action="{ROOT_URL}admin/routes/delete" method="post">
|
||||||
<tr>
|
<table class="table table-striped">
|
||||||
<th style="width: 5%">ID</th>
|
<thead>
|
||||||
<th style="width: 15%">Nickname</th>
|
<tr>
|
||||||
<th style="width: 15%">Type</th>
|
<th style="width: 5%">ID</th>
|
||||||
<th style="width: 15%">Path</th>
|
<th style="width: 15%">Nickname</th>
|
||||||
<th style="width: 15%">Destination</th>
|
<th style="width: 15%">Type</th>
|
||||||
<th style="width: 5%">Edit</th>
|
<th style="width: 15%">Path</th>
|
||||||
<th style="width: 5%">Delete</th>
|
<th style="width: 15%">Destination</th>
|
||||||
<th style="width: 5%">
|
<th style="width: 5%">Edit</th>
|
||||||
<input type="checkbox" onchange="checkAll(this)" name="check.r" value="R_[]"/>
|
<th style="width: 5%">Delete</th>
|
||||||
</th>
|
<th style="width: 5%">
|
||||||
</tr>
|
<input type="checkbox" onchange="checkAll(this)" name="check.r" value="R_[]"/>
|
||||||
</thead>
|
</th>
|
||||||
<tbody>
|
</tr>
|
||||||
{LOOP}
|
</thead>
|
||||||
<tr>
|
<tbody>
|
||||||
<td align="center">{ID}</td>
|
{LOOP}
|
||||||
<td><a href='{ROOT_URL}admin/routes/view/{ID}'>{nickname}</a></td>
|
<tr>
|
||||||
<td>{redirect_type}</td>
|
<td align="center">{ID}</td>
|
||||||
<td>{original_url}</td>
|
<td><a href='{ROOT_URL}admin/routes/view/{ID}'>{nickname}</a></td>
|
||||||
<td>{forwarded_url}</td>
|
<td>{redirect_type}</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>{original_url}</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>{forwarded_url}</td>
|
||||||
<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>
|
||||||
<input type="checkbox" value="{ID}" name="R_[]">
|
<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>
|
<td>
|
||||||
</tr>
|
<input type="checkbox" value="{ID}" name="R_[]">
|
||||||
{/LOOP}
|
</td>
|
||||||
{ALT}
|
</tr>
|
||||||
<tr>
|
{/LOOP}
|
||||||
<td align="center" colspan="6">
|
{ALT}
|
||||||
No results to show.
|
<tr>
|
||||||
</td>
|
<td align="center" colspan="6">
|
||||||
</tr>
|
No results to show.
|
||||||
{/ALT}
|
</td>
|
||||||
</tbody>
|
</tr>
|
||||||
</table>
|
{/ALT}
|
||||||
<a href="{ROOT_URL}admin/routes/create" class="btn btn-sm btn-primary">Create</a>
|
</tbody>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger">Delete</button>
|
</table>
|
||||||
</form>
|
<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>
|
@ -1,35 +1,40 @@
|
|||||||
<div class="container">
|
<div class="container py-4">
|
||||||
<div class="row">
|
<div class="row justify-content-center">
|
||||||
<div class="col-sm-12 col-md-6 col-lg-6 col-sm-offset-0 col-md-offset-3 col-lg-offset-3 top-pad" >
|
<div class="col-md-8">
|
||||||
<div class="card">
|
{ADMIN_BREADCRUMBS}
|
||||||
<div class="card-header bg-dark">
|
<div class="card shadow">
|
||||||
<h3 class="card-title">{nickname}</h3>
|
<!-- Card Header -->
|
||||||
|
<div class="card-header text-center bg-dark text-white">
|
||||||
|
<h3 class="card-title mb-0">{nickname}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Card Body -->
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="row">
|
<div class="row align-items-center">
|
||||||
<div class=" col-md-9 col-lg-9 ">
|
<!-- Log Details -->
|
||||||
<table class="table table-user-primary">
|
<table class="table table-borderless">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Type</td>
|
<th scope="row" class="col-3">Type</th>
|
||||||
<td>{redirect_type}</td>
|
<td>{redirect_type}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Original URL</td>
|
<th scope="row" class="col-3">Original URL</th>
|
||||||
<td>{original_url}</td>
|
<td>{original_url}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Destination URL</td>
|
<th scope="row" class="col-3">Destination URL</th>
|
||||||
<td>{forwarded_url}</td>
|
<td>{forwarded_url}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer">
|
|
||||||
<a href="{ROOT_URL}admin/routes/edit/{ID}" class="btn btn-sm btn-warning">Edit</a>
|
<!-- Admin Controls -->
|
||||||
<a href="{ROOT_URL}admin/routes/delete/{ID}" class="btn btn-sm btn-danger">Delete</a>
|
<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>
|
</div>
|
||||||
|
@ -1,6 +1,16 @@
|
|||||||
<form action="" method="post" class="form-horizontal" enctype="multipart/form-data">
|
<div class="context-main-bg context-main p-3">
|
||||||
<legend>Settings</legend>
|
{ADMIN_BREADCRUMBS}
|
||||||
{configForm}
|
<form action="" method="post" class="form-horizontal" enctype="multipart/form-data">
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
<fieldset>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Save</button><br>
|
{configForm}
|
||||||
</form>
|
|
||||||
|
<!-- 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>
|
@ -1,28 +1,40 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="mb-4 mt-4">
|
||||||
<legend>Create Token</legend>
|
<div class="offset-md-1 col-10 py-3 context-main-bg">
|
||||||
<fieldset>
|
<legend class="text-center">Create Token</legend>
|
||||||
<div class="form-group">
|
<hr>
|
||||||
<label for="name" class="col-lg-6 control-label">Name:</label>
|
{ADMIN_BREADCRUMBS}
|
||||||
<div class="col-lg-2">
|
<form action="" method="post" class="container py-4">
|
||||||
<input class="form-control" type="text" name="name" id="name">
|
<fieldset>
|
||||||
</div>
|
<div class="mb-3 row">
|
||||||
</div>
|
<label for="name" class="col-lg-5 col-form-label text-end">Name</label>
|
||||||
<div class="form-group">
|
<div class="col-lg-3">
|
||||||
<label for="notes" class="col-lg-3 control-label">Notes</label>
|
<input type="text" class="form-control" name="name" id="name" required>
|
||||||
<div class="col-lg-6">
|
</div>
|
||||||
<textarea class="form-control" name="notes" maxlength="2000" rows="10" cols="50" id="notes"></textarea>
|
</div>
|
||||||
</div>
|
<div class="mb-3 row">
|
||||||
</div>
|
<label for="token_type" class="col-lg-5 col-form-label text-end">Token Type</label>
|
||||||
<div class="form-group">
|
<div class="col-lg-3">
|
||||||
<label for="token_type" class="col-lg-6 control-label">Token Type:</label>
|
<select id="token_type" name="token_type" class="form-select">
|
||||||
<div class="col-lg-2">
|
<option value='app' selected>Application</option>
|
||||||
<select name="token_type" id="token_type" class="">
|
<option value='user'>User</option>
|
||||||
<option value='app' selected>Application</option>
|
</select>
|
||||||
<option value='user'>User</option>
|
</div>
|
||||||
</select>
|
</div>
|
||||||
</div>
|
<div class="mb-3 row">
|
||||||
</div>
|
<label for="notes" class="col-lg-5 col-form-label text-end">Notes:</label>
|
||||||
</fieldset>
|
<div class="col-lg-3">
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
<textarea class="form-control" name="notes" maxlength="2000" rows="5" cols="50" id="notes"></textarea>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Create</button><br>
|
</div>
|
||||||
</form>
|
</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>
|
@ -1,29 +1,41 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="mb-4 mt-4">
|
||||||
<legend>Edit Token</legend>
|
<div class="offset-md-1 col-10 p-3 context-main-bg">
|
||||||
<fieldset>
|
<legend class="text-center">Edit Token</legend>
|
||||||
<div class="form-group">
|
<hr>
|
||||||
<label for="name" class="col-lg-6 control-label">Name:</label>
|
{ADMIN_BREADCRUMBS}
|
||||||
<div class="col-lg-2">
|
<form action="" method="post" class="container py-4">
|
||||||
<input class="form-control" type="text" name="name" id="name" value="{name}">
|
<fieldset>
|
||||||
</div>
|
<div class="mb-3 row">
|
||||||
</div>
|
<label for="name" class="col-lg-5 col-form-label text-end">Name</label>
|
||||||
<div class="form-group">
|
<div class="col-lg-3">
|
||||||
<label for="notes" class="col-lg-3 control-label">Notes</label>
|
<input type="text" class="form-control" name="name" id="name" value="{name}" required>
|
||||||
<div class="col-lg-6">
|
</div>
|
||||||
<textarea class="form-control" name="notes" maxlength="2000" rows="10" cols="50" id="notes">{notes}</textarea>
|
</div>
|
||||||
</div>
|
<div class="mb-3 row">
|
||||||
</div>
|
<label for="token_type" class="col-lg-5 col-form-label text-end">Token Type</label>
|
||||||
<div class="form-group">
|
<div class="col-lg-3">
|
||||||
<label for="token_type" class="col-lg-6 control-label">Token Type:</label>
|
<select id="token_type" name="token_type" class="form-select">
|
||||||
<div class="col-lg-2">
|
{OPTION=token_type}
|
||||||
<select name="token_type" id="token_type" class="">
|
<option value='app' selected>Application</option>
|
||||||
{OPTION=token_type}
|
<option value='user'>User</option>
|
||||||
<option value='app'>Application</option>
|
</select>
|
||||||
<option value='user'>User</option>
|
</div>
|
||||||
</select>
|
</div>
|
||||||
</div>
|
<div class="mb-3 row">
|
||||||
</div>
|
<label for="title" class="col-lg-5 col-form-label text-end">Notes:</label>
|
||||||
</fieldset>
|
<div class="col-lg-3">
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
<textarea class="form-control" name="notes" maxlength="2000" rows="5" cols="50" id="notes">{notes}</textarea>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Save</button><br>
|
</div>
|
||||||
</form>
|
</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>
|
@ -1,20 +1,22 @@
|
|||||||
<legend>Tokens</legend>
|
<div class="context-main-bg context-main p-3">
|
||||||
{PAGINATION}
|
<legend class="text-center">Tokens</legend>
|
||||||
|
<hr>
|
||||||
|
{ADMIN_BREADCRUMBS}
|
||||||
<table class="table table-striped">
|
<table class="table table-striped">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width: 15%">ID</th>
|
<th style="width: 55%">Name</th>
|
||||||
<th style="width: 45%">Name</th>
|
|
||||||
<th style="width: 25%">Type</th>
|
<th style="width: 25%">Type</th>
|
||||||
<th style="width: 15%">Delete</th>
|
<th style="width: 10%">Delete</th>
|
||||||
|
<th style="width: 10%">Delete</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{LOOP}
|
{LOOP}
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center">{ID}</td>
|
|
||||||
<td><a href='{ROOT_URL}admin/tokens/view/{ID}'>{name}</a></td>
|
<td><a href='{ROOT_URL}admin/tokens/view/{ID}'>{name}</a></td>
|
||||||
<td>{token_type}</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>
|
<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>
|
</tr>
|
||||||
{/LOOP}
|
{/LOOP}
|
||||||
@ -28,3 +30,4 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<a href="{ROOT_URL}admin/tokens/create" class="btn btn-sm btn-primary">Create</a>
|
<a href="{ROOT_URL}admin/tokens/create" class="btn btn-sm btn-primary">Create</a>
|
||||||
|
</div>
|
@ -1,46 +1,51 @@
|
|||||||
<div class="container">
|
<div class="container py-4">
|
||||||
<div class="row">
|
<div class="row justify-content-center">
|
||||||
<div class="col-sm-12 col-md-6 col-lg-6 col-sm-offset-0 col-md-offset-3 col-lg-offset-3 top-pad" >
|
<div class="col-md-8">
|
||||||
<div class="card">
|
{ADMIN_BREADCRUMBS}
|
||||||
<div class="card-header bg-dark">
|
<div class="card shadow">
|
||||||
<h3 class="card-title">{name}</h3>
|
<!-- Card Header -->
|
||||||
|
<div class="card-header text-center bg-dark text-white">
|
||||||
|
<h3 class="card-title mb-0">{name}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Card Body -->
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="row">
|
<div class="row align-items-center">
|
||||||
<div class=" col-md-9 col-lg-9 ">
|
<!-- Log Details -->
|
||||||
<table class="table table-user-primary">
|
<table class="table table-borderless">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Type</td>
|
<th scope="row" class="col-3">Type</th>
|
||||||
<td>{token_type}</td>
|
<td>{token_type}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Created At</td>
|
<th scope="row">Created At</th>
|
||||||
<td>{DTC}{createdAt}{/DTC}</td>
|
<td>{DTC}{createdAt}{/DTC}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Expires At</td>
|
<th scope="row">Expires At</th>
|
||||||
<td>{DTC}{expiresAt}{/DTC}</td>
|
<td>{DTC}{expiresAt}{/DTC}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Token</td>
|
<th scope="row">Token</th>
|
||||||
<td>{token}</td>
|
<td class="text-break">{token}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Secret</td>
|
<th scope="row">Secret</th>
|
||||||
<td>{secret}</td>
|
<td class="text-break">{secret}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Notes</td>
|
<th scope="row">Notes</th>
|
||||||
<td>{notes}</td>
|
<td>{notes}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer">
|
|
||||||
<a href="{ROOT_URL}admin/tokens/delete/{ID}" class="btn btn-sm btn-danger">Delete</a>
|
<!-- 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>
|
</div>
|
||||||
|
@ -1,44 +1,74 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="context-main-bg context-main p-3">
|
||||||
<legend>Register</legend>
|
<legend class="text-center">Add User</legend>
|
||||||
<fieldset>
|
<hr>
|
||||||
<div class="form-group">
|
{ADMIN_BREADCRUMBS}
|
||||||
<label for="username" class="col-lg-3 control-label">Username:</label>
|
<form method="post">
|
||||||
<div class="col-lg-2">
|
<fieldset>
|
||||||
<input class="form-control" type="text" name="username" id="username">
|
<!-- 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>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<!-- Username -->
|
||||||
<label for="email" class="col-lg-3 control-label">Email:</label>
|
<div class="mb-3 row">
|
||||||
<div class="col-lg-2">
|
<label for="username" class="col-lg-6 col-form-label text-end">Username:</label>
|
||||||
<input class="form-control" type="email" name="email" id="email">
|
<div class="col-lg-2">
|
||||||
|
<input type="text" class="form-control" name="username" id="username" required>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<!-- Email -->
|
||||||
<label for="email2" class="col-lg-3 control-label">Re-Enter Email:</label>
|
<div class="mb-3 row">
|
||||||
<div class="col-lg-2">
|
<label for="email" class="col-lg-6 col-form-label text-end">Email:</label>
|
||||||
<input class="form-control" type="email" name="email2" id="email2">
|
<div class="col-lg-2">
|
||||||
|
<input type="email" class="form-control" name="email" id="email" required>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<!-- Re-enter Email -->
|
||||||
<label for="password" class="col-lg-3 control-label">Password:</label>
|
<div class="mb-3 row">
|
||||||
<div class="col-lg-2">
|
<label for="email2" class="col-lg-6 col-form-label text-end">Re-Enter Email:</label>
|
||||||
<input class="form-control" type="password" name="password" id="password">
|
<div class="col-lg-2">
|
||||||
|
<input type="email" class="form-control" name="email2" id="email2" required>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<!-- Password -->
|
||||||
<label for="password2" class="col-lg-3 control-label">Re-Enter Password:</label>
|
<div class="mb-3 row">
|
||||||
<div class="col-lg-2">
|
<label for="password" class="col-lg-6 col-form-label text-end">Password:</label>
|
||||||
<input class="form-control" type="password" name="password2" id="password2">
|
<div class="col-lg-2">
|
||||||
|
<input type="password" class="form-control" name="password" id="password" required>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<!-- Re-enter Password -->
|
||||||
<label for="confirmation" class="col-lg-3 control-label">Send Confirmation Email?:</label>
|
<div class="mb-3 row">
|
||||||
<div class="col-lg-2">
|
<label for="password2" class="col-lg-6 col-form-label text-end">Re-Enter Password:</label>
|
||||||
<input class="form-control" type="checkbox" name="confirmation" id="confirmation">
|
<div class="col-lg-2">
|
||||||
|
<input type="password" class="form-control" name="password2" id="password2" required>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
{groupSelect}
|
<!-- Confirmation -->
|
||||||
</fieldset>
|
<div class="mb-3 row">
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
<label for="confirmation" class="col-lg-6 col-form-label text-end">Send Confirmation:</label>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Create</button><br>
|
<div class="col-lg-2">
|
||||||
</form>
|
<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>
|
@ -1,45 +1,78 @@
|
|||||||
<form action="{ROOT_URL}admin/users/edit/{ID}" method="post" class="form-horizontal" enctype="multipart/form-data">
|
<div class="context-main-bg context-main p-3">
|
||||||
<legend>Edit User: <b>{USERNAME}</b></legend>
|
<legend class="text-center">Edit User: <b>{USERNAME}</b></legend>
|
||||||
<fieldset>
|
<hr>
|
||||||
<div class="form-group">
|
{ADMIN_BREADCRUMBS}
|
||||||
<label for="username" class="col-lg-3 control-label">Username:</label>
|
<form action="{ROOT_URL}admin/users/edit/{ID}" method="post" enctype="multipart/form-data">
|
||||||
<div class="col-lg-2">
|
<fieldset>
|
||||||
<input class="form-control" type="text" name="username" id="username" value="{username}">
|
<!-- 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>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<!-- Username -->
|
||||||
<label for="email" class="col-lg-3 control-label">Email:</label>
|
<div class="mb-3 row">
|
||||||
<div class="col-lg-2">
|
<label for="username" class="col-lg-6 col-form-label text-end">Username:</label>
|
||||||
<input class="form-control" type="email" name="email" id="email" value="{email}">
|
<div class="col-lg-2">
|
||||||
|
<input type="text" class="form-control" name="username" id="username" value="{username}" required>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<!-- Email -->
|
||||||
<label for="confirmation" class="col-lg-3 control-label">Send Confirmation Email? (when updating the email):</label>
|
<div class="mb-3 row">
|
||||||
<div class="col-lg-2">
|
<label for="email" class="col-lg-6 col-form-label text-end">Email:</label>
|
||||||
<input class="form-control" type="checkbox" name="confirmation" id="confirmation">
|
<div class="col-lg-2">
|
||||||
|
<input type="email" class="form-control" name="email" id="email" value="{email}" required>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
{AvatarSettings}
|
||||||
<label for="password" class="col-lg-3 control-label">New Password:</label>
|
|
||||||
<div class="col-lg-2">
|
<!-- Password -->
|
||||||
<input class="form-control" type="password" name="password" id="password" value="">
|
<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="" required>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
<!-- Re-enter Password -->
|
||||||
<label for="password2" class="col-lg-3 control-label">Re-Enter New Password:</label>
|
<div class="mb-3 row">
|
||||||
<div class="col-lg-2">
|
<label for="password2" class="col-lg-6 col-form-label text-end">Re-Enter Password:</label>
|
||||||
<input class="form-control" type="password" name="password2" id="password2" value="">
|
<div class="col-lg-2">
|
||||||
|
<input type="password" class="form-control" name="password2" id="password2" value="" required>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
{AvatarSettings}
|
<!-- Confirmation -->
|
||||||
<div class="form-group">
|
<div class="mb-3 row">
|
||||||
<label for="confirmed" class="col-lg-3 control-label">Email is confirmed:</label>
|
<label for="confirmation" class="col-lg-6 col-form-label text-end">Send Confirmation:</label>
|
||||||
<div class="col-lg-2">
|
<div class="col-lg-2">
|
||||||
<input class="form-control" type="checkbox" name="confirmed" id="confirmed" value="true" {CHECKED:confirmed=1}>
|
<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>
|
</div>
|
||||||
</div>
|
|
||||||
{groupSelect}
|
<!-- Confirmed -->
|
||||||
</fieldset>
|
<div class="mb-3 row">
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
<label for="confirmed" class="col-lg-6 col-form-label text-end">Email is confirmed:</label>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Update</button><br>
|
<div class="col-lg-2">
|
||||||
</form>
|
<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>
|
@ -1,41 +1,44 @@
|
|||||||
<legend>Users</legend>
|
<div class="context-main-bg context-main p-3">
|
||||||
{PAGINATION}
|
<legend class="text-center">Users</legend>
|
||||||
<form action="{ROOT_URL}admin/users/delete" method="post">
|
<hr>
|
||||||
<table class="table table-striped">
|
{ADMIN_BREADCRUMBS}
|
||||||
<thead>
|
<form action="{ROOT_URL}admin/users/delete" method="post">
|
||||||
<tr>
|
<table class="table table-striped">
|
||||||
<th style="width: 5%">ID</th>
|
<thead>
|
||||||
<th style="width: 60%">Username</th>
|
<tr>
|
||||||
<th style="width: 20%">Joined</th>
|
<th style="width: 5%">ID</th>
|
||||||
<th style="width: 5%">Edit</th>
|
<th style="width: 60%">Username</th>
|
||||||
<th style="width: 5%">Delete</th>
|
<th style="width: 20%">Joined</th>
|
||||||
<th style="width: 5%">
|
<th style="width: 5%">Edit</th>
|
||||||
<input type="checkbox" onchange="checkAll(this)" name="check.u" value="U_[]"/>
|
<th style="width: 5%">Delete</th>
|
||||||
</th>
|
<th style="width: 5%">
|
||||||
</tr>
|
<input type="checkbox" onchange="checkAll(this)" name="check.u" value="U_[]"/>
|
||||||
</thead>
|
</th>
|
||||||
<tbody>
|
</tr>
|
||||||
{LOOP}
|
</thead>
|
||||||
<tr>
|
<tbody>
|
||||||
<td align="center">{ID}</td>
|
{LOOP}
|
||||||
<td><a href='{ROOT_URL}admin/users/view/{ID}'>{username}</a></td>
|
<tr>
|
||||||
<td>{DTC date}{registered}{/DTC}</td>
|
<td align="center">{ID}</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/view/{ID}'>{username}</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>{DTC date}{registered}{/DTC}</td>
|
||||||
<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>
|
||||||
<input type="checkbox" value="{ID}" name="U_[]">
|
<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>
|
<td>
|
||||||
</tr>
|
<input type="checkbox" value="{ID}" name="U_[]">
|
||||||
{/LOOP}
|
</td>
|
||||||
{ALT}
|
</tr>
|
||||||
<tr>
|
{/LOOP}
|
||||||
<td align="center" colspan="6">
|
{ALT}
|
||||||
No results to show.
|
<tr>
|
||||||
</td>
|
<td align="center" colspan="6">
|
||||||
</tr>
|
No results to show.
|
||||||
{/ALT}
|
</td>
|
||||||
</tbody>
|
</tr>
|
||||||
</table>
|
{/ALT}
|
||||||
<a href="{ROOT_URL}admin/users/create" class="btn btn-sm btn-primary">Create</a>
|
</tbody>
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-sm btn-danger">Delete</button>
|
</table>
|
||||||
</form>
|
<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>
|
@ -1,68 +1,78 @@
|
|||||||
<div class="container">
|
<div class="container py-4">
|
||||||
<div class="row">
|
<div class="row justify-content-center">
|
||||||
<div class="col-sm-12 col-md-6 col-lg-6 col-sm-offset-0 col-md-offset-3 col-lg-offset-3 top-pad" >
|
<div class="col-md-8">
|
||||||
<div class="card">
|
{ADMIN_BREADCRUMBS}
|
||||||
<div class="card-header bg-dark">
|
<div class="card shadow">
|
||||||
<h3 class="card-title">{username}</h3>
|
<!-- Card Header -->
|
||||||
</div>
|
<div class="card-header text-center bg-dark text-white">
|
||||||
<div class="card-body">
|
<h3 class="card-title mb-0">{username}</h3>
|
||||||
<div class="row">
|
</div>
|
||||||
<div class="col-md-3 col-lg-3 " align="center">
|
|
||||||
<img alt="User Pic" src="{ROOT_URL}{avatar}" class="img-circle img-responsive">
|
<!-- Card Body -->
|
||||||
</div>
|
<div class="card-body">
|
||||||
<div class=" col-md-9 col-lg-9 ">
|
<div class="row align-items-center">
|
||||||
<table class="table table-user-primary">
|
<!-- User Image -->
|
||||||
<tbody>
|
<div class="col-md-4 text-center">
|
||||||
{ADMIN}
|
<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>
|
<tr>
|
||||||
<td>Confirmed:</td>
|
<th scope="row">Group:</th>
|
||||||
<td>{confirmedText}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Group:</td>
|
|
||||||
<td><a href="{ROOT_URL}admin/groups/view/{userGroup}">{groupName}</a></td>
|
<td><a href="{ROOT_URL}admin/groups/view/{userGroup}">{groupName}</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
{/ADMIN}
|
{/ADMIN}
|
||||||
<tr>
|
<tr>
|
||||||
<td>Registered:</td>
|
<th scope="row">Registered:</th>
|
||||||
<td>{DTC date}{registered}{/DTC}</td>
|
<td>{DTC}{registered}{/DTC}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Last seen</td>
|
<th scope="row">Last Seen:</th>
|
||||||
<td>{DTC date}{lastLogin}{/DTC}</td>
|
<td>{DTC}{lastLogin}{/DTC}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Gender</td>
|
<th scope="row">Gender:</th>
|
||||||
<td>{gender}</td>
|
<td>{gender}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{ADMIN}
|
{ADMIN}
|
||||||
<tr>
|
<tr>
|
||||||
<td>Email</td>
|
<th scope="row">Email:</th>
|
||||||
<td><a href="mailto:{email}">{email}</a></td>
|
<td><a href="mailto:{email}">{email}</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<td>User ID</td>
|
<tr>
|
||||||
<td>{ID}</td>
|
<th scope="row">User ID:</th>
|
||||||
</tr>
|
<td>{ID}</td>
|
||||||
{/ADMIN}
|
</tr>
|
||||||
</tbody>
|
{/ADMIN}
|
||||||
</table>
|
</tbody>
|
||||||
</div>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer">
|
</div>
|
||||||
<a href="{ROOT_URL}messages/create?prepopuser={USERNAME}" data-original-title="Broadcast Message" data-bs-toggle="tooltip" type="button" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-envelope"></i></a>
|
|
||||||
{ADMIN}
|
<!-- Admin Controls -->
|
||||||
<span class="float-right">
|
<div class="card-footer text-center">
|
||||||
<a href="{ROOT_URL}admin/users/edit/{ID}">
|
{ADMIN}
|
||||||
<button name="submit" value="edit" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil"></i></button>
|
<a href="{ROOT_URL}messages/create?prepopuser={USERNAME}" class="btn btn-primary btn-sm me-2" data-bs-toggle="tooltip" title="Broadcast Message">
|
||||||
</a>
|
<i class="fa fa-fw fa-envelope"></i>
|
||||||
<a href="{ROOT_URL}admin/users/delete/{ID}">
|
</a>
|
||||||
<button name="submit" value="delete" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-times"></i></button>
|
<a href="{ROOT_URL}admin/users/edit/{ID}" class="btn btn-warning btn-sm me-2" data-bs-toggle="tooltip" title="Edit User">
|
||||||
</a>
|
<i class="fa fa-fw fa-pencil"></i>
|
||||||
</span>
|
</a>
|
||||||
{/ADMIN}
|
<a href="{ROOT_URL}admin/users/delete/{ID}" class="btn btn-danger btn-sm" data-bs-toggle="tooltip" title="Delete User">
|
||||||
</div>
|
<i class="fa fa-fw fa-trash"></i>
|
||||||
</div>
|
</a>
|
||||||
</div>
|
{/ADMIN}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
@ -1,14 +0,0 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
|
||||||
<legend>Email Confirmation</legend>
|
|
||||||
<p>Please enter the confirmation code you received in your email.</p>
|
|
||||||
<fieldset>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="confirmationCode" class="col-lg-3 control-label">Confirmation Code:</label>
|
|
||||||
<div class="col-lg-3">
|
|
||||||
<input class="form-control" type="text" name="confirmationCode" id="confirmationCode">
|
|
||||||
</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">Submit</button><br>
|
|
||||||
</form>
|
|
@ -1,6 +0,0 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
|
||||||
<p>Please click the resend button to resend your email confirmation. Don't forget to check the spam folder!</p>
|
|
||||||
<input type="hidden" name="resendConfirmation" value="true">
|
|
||||||
<input type="hidden" name="token" value="{TOKEN}">
|
|
||||||
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Resend Confirmation</button><br>
|
|
||||||
</form>
|
|
@ -63,7 +63,7 @@
|
|||||||
<i class="fa fa-pencil"></i> Edit
|
<i class="fa fa-pencil"></i> Edit
|
||||||
</a>
|
</a>
|
||||||
<a href="{ROOT_URL}admin/users/delete/{ID}" class="btn btn-danger btn-sm" data-bs-toggle="tooltip" title="Delete User">
|
<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-times"></i> Delete
|
<i class="fa fa-trash"></i> Delete
|
||||||
</a>
|
</a>
|
||||||
{/ADMIN}
|
{/ADMIN}
|
||||||
</div>
|
</div>
|
||||||
|
@ -94,7 +94,7 @@ class TheTempusProject extends Bedrock {
|
|||||||
],
|
],
|
||||||
[
|
[
|
||||||
'text' => '<i class="fa fa-fw fa-phone"></i> Contact',
|
'text' => '<i class="fa fa-fw fa-phone"></i> Contact',
|
||||||
'url' => '{ROOT_URL}admin/contact',
|
'url' => '{ROOT_URL}admin/SendMail',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'text' => '<i class="fa fa-fw fa-shield-halved"></i> Tokens',
|
'text' => '<i class="fa fa-fw fa-shield-halved"></i> Tokens',
|
||||||
|
Reference in New Issue
Block a user