Compare commits

...

5 Commits
5.0 ... 5.1

Author SHA1 Message Date
f928e87141 bugfixes 2025-02-05 20:45:41 -05:00
a6b241c7f0 add qr-codes, share button, and pwa config toggle 2025-02-05 19:39:54 -05:00
a38d132e61 rename comments 2025-02-05 06:36:53 -05:00
d7e8b586d7 various updates
remove dependence on jQuery
add image delete
Admin ui fix for mobile
image updates to new style
update comments
2025-02-05 06:36:29 -05:00
ea120e09bc add missing webmanifest parts 2025-02-05 05:30:23 -05:00
117 changed files with 549 additions and 298 deletions

1
.gitignore vendored
View File

@ -65,3 +65,4 @@ vendor/canary/logs/*
components/* components/*
mailhog.log mailhog.log
uploads/* uploads/*
images/qr-codes/

View File

@ -35,7 +35,7 @@ New classes must be prefaced with a doc-block following this style:
* *
* This is the admin controller. * This is the admin controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This is the base admin controller. Every other admin controller should * This is the base admin controller. Every other admin controller should
* extend this class. * extend this class.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This is the base api controller. Every other api controller should * This is the base api controller. Every other api controller should
* extend this class. * extend this class.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This class handles all the hard-coded configurations. * This class handles all the hard-coded configurations.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]
@ -69,14 +69,21 @@ class Config extends BedrockConfig {
$html .= '<div class="col-lg-6">'; $html .= '<div class="col-lg-6">';
$html .= $fieldHtml; $html .= $fieldHtml;
$html .= '</div>'; $html .= '</div>';
$html .= '</div>';
if ( 'file' === $node['type'] ) { if ( 'file' === $node['type'] ) {
$html .= '<div class="mb-3 row">'; $html .= '<div class="mb-3 row">';
$html .= '<h4 class="col-lg-3 col-form-label text-end">Current Image</h4>'; $html .= '<h4 class="col-lg-3 col-form-label text-end">Current Value</h4>';
$html .= '<div class="col-lg-6">'; $html .= '<div class="col-lg-6">';
$html .= '<input type="text" class="form-control" name="'.$name.'Text" value="'.$node['value'] . '">';
$html .= '</div>';
$html .= '</div>';
$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 d-flex justify-content-center">';
$html .= '<img alt="configured image" src="{ROOT_URL}' . $node['value'] . '" class="img-circle img-fluid p-2 avatar-125">'; $html .= '<img alt="configured image" src="{ROOT_URL}' . $node['value'] . '" class="img-circle img-fluid p-2 avatar-125">';
$html .= '</div>'; $html .= '</div>';
$html .= '</div>';
} }
$html .= '</div>';
return Template::parse( $html ); return Template::parse( $html );
} }

View File

@ -4,7 +4,7 @@
* *
* This is the main controller class. * This is the main controller class.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the main TempusProject database model. * This is the main TempusProject database model.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is our class for constructing and sending various kinds of emails. * This is our class for constructing and sending various kinds of emails.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -7,7 +7,7 @@
* error reporting to easily define exactly what feedback you * error reporting to easily define exactly what feedback you
* would like to give. * would like to give.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -6,7 +6,7 @@
* the application. It handles installing the application, installing and updating * the application. It handles installing the application, installing and updating
* models as well as the database, and generating and checking the htaccess file. * models as well as the database, and generating and checking the htaccess file.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This class handles all the hard-coded permissions. * This class handles all the hard-coded permissions.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This class is used as a foundation for all plugins to build from. * This class is used as a foundation for all plugins to build from.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This class handles all the hard-coded preferences. * This class handles all the hard-coded preferences.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the admin log controller. * This is the admin log controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the composer controller. Its only very effective when using composer for autoloading. * This is the composer controller. Its only very effective when using composer for autoloading.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the error logs controller. * This is the error logs controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the groups admin controller. * This is the groups admin controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the admin dashboard controller. * This is the admin dashboard controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the admin app/user tokens controller. * This is the admin app/user tokens controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]
@ -36,6 +36,8 @@ class Images extends AdminController {
APP_ROOT_DIRECTORY . 'app/plugins' APP_ROOT_DIRECTORY . 'app/plugins'
]; ];
private $spacer = [];
private $excludedDirectories = [ private $excludedDirectories = [
'.', '.',
'..', '..',
@ -74,35 +76,17 @@ class Images extends AdminController {
Views::view( 'admin.images.upload' ); Views::view( 'admin.images.upload' );
} }
private function getFolderObject( $folder, $subdirs = '' ) { private function getFolderObject( $folder, $subdirs = '' ) {
$names = explode( DIRECTORY_SEPARATOR, $folder ); $names = explode( DIRECTORY_SEPARATOR, $folder );
$folderName = array_pop( $names ); $folderName = array_pop( $names );
$out = [ $out = [
'spacer' => implode( '', $this->spacer ),
'folderName' => $folderName, 'folderName' => $folderName,
'location' => $folder, 'location' => $folder,
'subdirs' => $subdirs, 'subdirs' => $subdirs,
]; ];
if ( ! empty( $subdirs ) ) { if ( ! empty( $subdirs ) ) {
$out['folderexpand'] = '<i class="fa-solid fa-caret-down justify-content-end"></i>'; $out['folderexpand'] = '<i class="fa fa-caret-down"></i>';
} else { } else {
$out['folderexpand'] = ''; $out['folderexpand'] = '';
} }
@ -116,7 +100,9 @@ class Images extends AdminController {
if ( $top == $sub ) { if ( $top == $sub ) {
$html = ''; $html = '';
} else { } else {
$this->spacer[] = '-> ';
$children = $this->generateFolderHtml( $sub ); $children = $this->generateFolderHtml( $sub );
array_pop( $this->spacer );
Components::set( 'parentfolderName', $object->folderName ); Components::set( 'parentfolderName', $object->folderName );
$html = Views::simpleView( 'forms.folderSelectParent', $children ); $html = Views::simpleView( 'forms.folderSelectParent', $children );
Components::set( 'parentfolderName', '' ); Components::set( 'parentfolderName', '' );
@ -150,28 +136,6 @@ class Images extends AdminController {
return $dirs; return $dirs;
} }
public function __construct() { public function __construct() {
parent::__construct(); parent::__construct();
self::$title = 'Admin - Images'; self::$title = 'Admin - Images';
@ -199,38 +163,44 @@ class Images extends AdminController {
Debug::error( 'There was an error with your upload.'); Debug::error( 'There was an error with your upload.');
Issues::add( 'error', [ 'There was an error with your upload.' => Check::userErrors() ] ); Issues::add( 'error', [ 'There was an error with your upload.' => Check::userErrors() ] );
} }
// if ( self::$token->create(
// Input::post( 'name' ),
// Input::post( 'notes' ),
// Input::post( 'token_type' )
// ) ) {
// Session::flash( 'success', 'Token Created' );
// Redirect::to( 'admin/images' );
// }
} }
Views::view( 'admin.images.create' ); Views::view( 'admin.images.create' );
} }
public function delete() { public function delete() {
if ( self::$token->delete( [ $id ] ) ) { if ( ! Input::exists( 'fileLocation' ) ) {
Session::flash( 'success', 'Token deleted.' ); Session::flash( 'warning', 'Unknown image.' );
Redirect::to( 'admin/images' );
} }
Redirect::to( 'admin/images' );
$fileLocation = Input::get('fileLocation');
// Ensure the file exists
if ( ! file_exists( $fileLocation ) ) {
Session::flash('error', 'File does not exist.');
Redirect::to('admin/images');
}
// Check if the file is an image
$validMimeTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'];
$fileMimeType = mime_content_type( $fileLocation );
if ( ! in_array( $fileMimeType, $validMimeTypes ) ) {
Session::flash('error', 'Invalid file type. Only images can be deleted.');
Redirect::to('admin/images');
}
// Attempt to delete the file
if (@unlink($fileLocation)) {
Session::flash('success', 'Image deleted.');
} else {
Session::flash('error', 'Failed to delete the image.');
}
Redirect::to('admin/images');
} }
public function rename() { public function rename() {
if ( ! Input::exists( 'fileLocation' ) ) { if ( ! Input::exists( 'fileLocation' ) ) {
Session::flash( 'warning', 'Unknown image.' ); Session::flash( 'warning', 'Unknown image.' );
Redirect::to( 'admin/images' ); Redirect::to( 'admin/images' );
@ -243,7 +213,6 @@ class Images extends AdminController {
Issues::add( 'error', [ 'There was an error renaming the image.' => Check::userErrors() ] ); Issues::add( 'error', [ 'There was an error renaming the image.' => Check::userErrors() ] );
} else { } else {
$result = $this->renameFile( Input::post( 'filelocation' ), Input::post( 'newname' ) ); $result = $this->renameFile( Input::post( 'filelocation' ), Input::post( 'newname' ) );
if ( ! empty( $result ) ) { if ( ! empty( $result ) ) {
Session::flash( 'success', 'Image has been renamed.' ); Session::flash( 'success', 'Image has been renamed.' );
Redirect::to( 'admin/images' ); Redirect::to( 'admin/images' );

View File

@ -4,7 +4,7 @@
* *
* This is the login logs controller. * This is the login logs controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the generic logs controller. * This is the generic logs controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the installed plugins controller. * This is the installed plugins controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the admin routes/redirects controller. * This is the admin routes/redirects controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the admin email controller. The only real use is to send out emails to the various lists. * This is the admin email controller. The only real use is to send out emails to the various lists.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the configuration and settings controller. * This is the configuration and settings controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the admin app/user tokens controller. * This is the admin app/user tokens controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the users admin controller. * This is the users admin controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the api authentication controller. * This is the api authentication controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the api authentication controller. * This is the api authentication controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the users' api controller. * This is the users' api controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the error controller. * This is the error controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the home or 'index' controller. * This is the home or 'index' controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the user registration controller. * This is the user registration controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the user control panel controller. * This is the user control panel controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]
@ -31,7 +31,7 @@ use TheTempusProject\Bedrock\Functions\Session;
class Usercp extends Controller { class Usercp extends Controller {
public function __construct() { public function __construct() {
parent::__construct(); parent::__construct();
if ( !App::$isLoggedIn ) { if ( ! App::$isLoggedIn ) {
Session::flash( 'notice', 'You must be logged in to view this page!' ); Session::flash( 'notice', 'You must be logged in to view this page!' );
Redirect::home(); Redirect::home();
} }

View File

@ -3,7 +3,7 @@
* *
* This is css used in the debuging console. * This is css used in the debuging console.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -3,7 +3,7 @@
* *
* This file provides dark mode styles to override existing Bootstrap 5 base styles. * This file provides dark mode styles to override existing Bootstrap 5 base styles.
* *
* @version 3.0-dark * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]
@ -12,6 +12,9 @@
.context-main-border { .context-main-border {
border-color: #f5f5f5!important; border-color: #f5f5f5!important;
} }
.context-main-border-other {
border-color: #1e1e1e!important;
}
.context-main-bg { .context-main-bg {
background-color: #2c2c2c; background-color: #2c2c2c;

View File

@ -3,7 +3,7 @@
* *
* This file is for any css that should be applied site wide. * This file is for any css that should be applied site wide.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]
@ -12,6 +12,9 @@
.context-main-border { .context-main-border {
border-color: #1e1e1e!important; border-color: #1e1e1e!important;
} }
.context-main-border-other {
border-color: #f5f5f5!important;
}
.context-main-bg { .context-main-bg {
background-color: #f7f7f7; background-color: #f7f7f7;

View File

@ -2,7 +2,7 @@
/** /**
* app/functions/common.php * app/functions/common.php
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

BIN
app/images/ttp-gitlab.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 47 KiB

View File

@ -3,11 +3,68 @@
* *
* This file is for 'access anywhere' javascript. * This file is for 'access anywhere' javascript.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]
*/ */
let deferredPrompt;
const installPrompt = document.getElementById("install-prompt");
const installButton = document.getElementById("install-button");
const dismissButton = document.querySelector("#install-prompt .btn-close");
// Check if the user previously dismissed the prompt
if (!localStorage.getItem("pwaInstallDismissed")) {
window.addEventListener("beforeinstallprompt", (event) => {
event.preventDefault();
deferredPrompt = event;
installPrompt.classList.remove("d-none");
installPrompt.classList.add("d-block"); // Show the prompt
});
}
// Handle Install Button Click
if ( installButton ) {
installButton.addEventListener("click", async () => {
if (deferredPrompt) {
deferredPrompt.prompt();
const { outcome } = await deferredPrompt.userChoice;
if (outcome === "dismissed") {
setInstallDismissed(); // Store that the user dismissed the prompt
}
deferredPrompt = null; // Reset prompt
installPrompt.classList.remove("d-block");
installPrompt.classList.add("d-none");
}
});
}
// Handle Close Button Click
if ( dismissButton ) {
dismissButton.addEventListener("click", () => {
setInstallDismissed(); // Store that the user dismissed the prompt
});
}
// Function to remember user choice for 7 days
function setInstallDismissed() {
localStorage.setItem("pwaInstallDismissed", Date.now() + 7 * 24 * 60 * 60 * 1000);
installPrompt.classList.remove("d-block"); // Hide the prompt
installPrompt.classList.add("d-none");
}
// Check if the 7-day period has passed
if (localStorage.getItem("pwaInstallDismissed")) {
const dismissUntil = parseInt(localStorage.getItem("pwaInstallDismissed"), 10);
if (Date.now() < dismissUntil) {
//
} else {
localStorage.removeItem("pwaInstallDismissed"); // Reset after 7 days
}
}
/** /**
* Automatically selects/de-selects all check boxes associated with that field * Automatically selects/de-selects all check boxes associated with that field
**/ **/
@ -80,14 +137,14 @@ function copyElementText( id ) {
} }
} }
$(document).ready(function() { document.addEventListener("DOMContentLoaded", function () {
$('select').each(function() { document.querySelectorAll("select").forEach(function (select) {
var selectedValue = $(this).attr('value'); var selectedValue = select.getAttribute("value");
if (selectedValue) { if (selectedValue) {
$(this).removeAttr('value'); select.removeAttribute("value");
$(this).find('option').each(function() { select.querySelectorAll("option").forEach(function (option) {
if ($(this).attr('value') === selectedValue) { if (option.getAttribute("value") === selectedValue) {
$(this).prop('selected', true); option.selected = true;
} }
}); });
} }
@ -178,12 +235,43 @@ document.addEventListener('DOMContentLoaded', function () {
}); });
} }
function toggleDarkModePref( value ) { function toggleDarkModePref(value) {
var fields = {}; var fields = new URLSearchParams();
fields.prefName = 'darkMode'; fields.append("prefName", "darkMode");
fields.prefValue = value; fields.append("prefValue", value);
$.post( '/usercp/updatePref', fields ).done(function(response) {
// alert('Timer updated successfully!'); fetch("/usercp/updatePref", {
}); method: "POST",
body: fields,
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
})
// .then(response => response.text()) // Handle response if needed
.catch(error => console.error("Error:", error));
} }
}); });
// this reverses the carets for the folderSelect
document.querySelectorAll('[data-bs-toggle="collapse"]').forEach(button => {
button.addEventListener('click', () => {
setTimeout(() => {
const icon = button.querySelector('i');
// Only proceed if the icon already has one of the relevant classes
if (icon && (icon.classList.contains('fa-caret-down') || icon.classList.contains('fa-caret-up'))) {
icon.classList.toggle('fa-caret-down', button.classList.contains('collapsed'));
icon.classList.toggle('fa-caret-up', !button.classList.contains('collapsed'));
}
}, 150);
});
});
// this should load all popovers
document.addEventListener("DOMContentLoaded", function () {
var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'));
var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {
return new bootstrap.Popover(popoverTriggerEl);
});
});

View File

@ -4,7 +4,7 @@
* *
* This class is used for the manipulation of the groups database table. * This class is used for the manipulation of the groups database table.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* Model for handling all logging. * Model for handling all logging.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This class is used for the manipulation of the routes database table. * This class is used for the manipulation of the routes database table.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -7,7 +7,7 @@
* Notes: After refactor, the sessions will use ID's for short term, and Cookies * Notes: After refactor, the sessions will use ID's for short term, and Cookies
* will use the token for long term storage * will use the token for long term storage
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This class is used for the manipulation of the tokens database table. * This class is used for the manipulation of the tokens database table.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -8,7 +8,7 @@
* @todo finish fixing the check functions that were migrated here * @todo finish fixing the check functions that were migrated here
* These could go in the Forms class? * These could go in the Forms class?
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This is the Blog admin controller. * This is the Blog admin controller.
* *
* @package TP Blog * @package TP Blog
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This is the blog controller. * This is the blog controller.
* *
* @package TP Blog * @package TP Blog
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This houses all of the form checking functions for this plugin. * This houses all of the form checking functions for this plugin.
* *
* @package TP Blog * @package TP Blog
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This class is used for the manipulation of the blog database table. * This class is used for the manipulation of the blog database table.
* *
* @package TP Blog * @package TP Blog
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This houses all of the main plugin info and functionality. * This houses all of the main plugin info and functionality.
* *
* @package TP Blog * @package TP Blog
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This is the loader for the blog template. * This is the loader for the blog template.
* *
* @package TP Blog * @package TP Blog
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* app/plugins/blog/templates/blog.tpl * app/plugins/blog/templates/blog.tpl
* *
* @package TP Blog * @package TP Blog
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]
@ -130,7 +130,6 @@
{FOOT} {FOOT}
</div> </div>
<!-- Bootstrap core JavaScript and jquery --> <!-- Bootstrap core JavaScript and jquery -->
<script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="{JQUERY_CDN}jquery.min.js"></script>
<script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script> <script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script>
<script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="{BOOTSTRAP_CDN}js/bootstrap.min.js"></script> <script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="{BOOTSTRAP_CDN}js/bootstrap.min.js"></script>
<!-- Custom javascript for this template --> <!-- Custom javascript for this template -->

View File

@ -5,7 +5,7 @@
* This is the loader for the rss template. * This is the loader for the rss template.
* *
* @package TP Blog * @package TP Blog
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This is the bug report admin controller. * This is the bug report admin controller.
* *
* @package TP BugReports * @package TP BugReports
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This is the bug reports controller. * This is the bug reports controller.
* *
* @package TP BugReports * @package TP BugReports
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This houses all of the form checking functions for this plugin. * This houses all of the form checking functions for this plugin.
* *
* @package TP BugReports * @package TP BugReports
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This class is used for the manipulation of the bugreports database table. * This class is used for the manipulation of the bugreports database table.
* *
* @package TP BugReports * @package TP BugReports
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This houses all of the main plugin info and functionality. * This houses all of the main plugin info and functionality.
* *
* @package TP BugReports * @package TP BugReports
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This is the comments admin controller. * This is the comments admin controller.
* *
* @package TP Comments * @package TP Comments
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the Moderator controller. * This is the Moderator controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This houses all of the form checking functions for this plugin. * This houses all of the form checking functions for this plugin.
* *
* @package TP Comments * @package TP Comments
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -6,7 +6,7 @@
* of the comments table. * of the comments table.
* *
* @package TP Comments * @package TP Comments
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This houses all of the main plugin info and functionality. * This houses all of the main plugin info and functionality.
* *
* @package TP Comments * @package TP Comments
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This is the contact admin controller. * This is the contact admin controller.
* *
* @package TP Contact * @package TP Contact
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This is the home controller for the contact plugin. * This is the home controller for the contact plugin.
* *
* @package TP Contact * @package TP Contact
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This houses all of the form checking functions for this plugin. * This houses all of the form checking functions for this plugin.
* *
* @package TP Contact * @package TP Contact
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -7,7 +7,7 @@
* @todo make this send a confirmation email * @todo make this send a confirmation email
* *
* @package TP Contact * @package TP Contact
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This houses all of the main plugin info and functionality. * This houses all of the main plugin info and functionality.
* *
* @package TP Contact * @package TP Contact
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the user messages controller. * This is the user messages controller.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* Houses all of the functions for the core messaging system. * Houses all of the functions for the core messaging system.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This houses all of the main plugin info and functionality. * This houses all of the main plugin info and functionality.
* *
* @package TP Messages * @package TP Messages
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This is the notifications admin controller. * This is the notifications admin controller.
* *
* @package TP Notifications * @package TP Notifications
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This is the home controller for the notifications plugin. * This is the home controller for the notifications plugin.
* *
* @package TP Notifications * @package TP Notifications
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This houses all of the form checking functions for this plugin. * This houses all of the form checking functions for this plugin.
* *
* @package TP Notifications * @package TP Notifications
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This class is used for the manipulation of the notifications database table. * This class is used for the manipulation of the notifications database table.
* *
* @package TP Notifications * @package TP Notifications
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This houses all of the main plugin info and functionality. * This houses all of the main plugin info and functionality.
* *
* @package TP Notifications * @package TP Notifications
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This is the subscriptions admin controller. * This is the subscriptions admin controller.
* *
* @package TP Subscribe * @package TP Subscribe
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This is the home controller for the subscribe plugin. * This is the home controller for the subscribe plugin.
* *
* @package TP Subscribe * @package TP Subscribe
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This houses all of the form checking functions for this plugin. * This houses all of the form checking functions for this plugin.
* *
* @package TP Subscribe * @package TP Subscribe
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This class is used for the manipulation of the subscribers database table. * This class is used for the manipulation of the subscribers database table.
* *
* @package TP Subscribe * @package TP Subscribe
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This houses all of the main plugin info and functionality. * This houses all of the main plugin info and functionality.
* *
* @package TP Subscribe * @package TP Subscribe
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is an example controller layout. * This is an example controller layout.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is an example model. * This is an example model.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -5,7 +5,7 @@
* This houses all of the main plugin info and functionality. * This houses all of the main plugin info and functionality.
* *
* @package TP XXXXXXXXXX * @package TP XXXXXXXXXX
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -3,7 +3,7 @@
<!-- <!--
* app/resources/templates/example.tpl * app/resources/templates/example.tpl
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is an example loader for the example template. * This is an example loader for the example template.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the loader for the admin template. * This is the loader for the admin template.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -3,7 +3,7 @@
<!-- <!--
* app/templates/admin/admin.tpl * app/templates/admin/admin.tpl
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]
@ -28,26 +28,34 @@
<!-- Main Content Area --> <!-- Main Content Area -->
<div class="d-flex flex-grow-1"> <div class="d-flex flex-grow-1">
<!-- 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 p-md-3 text-bg-dark">
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-white text-decoration-none"> <div class="collapse d-md-block" id="mainMenu">
<img src="{ROOT_URL}{LOGO}" class="bi me-2" width="40" height="32" role="img" aria-label="{SITENAME} Logo"> <a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-white text-decoration-none justify-content-center">
<span class="fs-4">{SITENAME}</span> <img src="{ROOT_URL}{LOGO}" class="bi me-2" width="40" height="32" role="img" aria-label="{SITENAME} Logo">
</a> </a>
<hr> <div class="border-top border-bottom border-white mt-4 mb-2 pt-3 pb-5">
{ADMIN} {ADMIN}
{ADMIN_LINKS} {ADMIN_LINKS}
{/ADMIN} {/ADMIN}
<hr> </div>
<div class="d-flex align-items-center"> <div class="d-flex align-items-center p-2">
{topNavRight} {topNavRight}
</div>
</div> </div>
</div> </div>
<!-- Center Element --> <!-- Center Element -->
<div class="flex-grow-1 d-flex flex-column"> <div class="flex-grow-1 d-flex flex-column">
<!-- Top Navigation Bar --> <!-- Top Navigation Bar -->
<div class="p-2 text-bg-dark"> <div class="p-2 text-bg-dark">
<div class="d-flex flex-wrap align-items-center justify-content-center justify-content-lg-start"> <div class="d-flex justify-content-between justify-content-md-center">
{topNavLeft} <div class="d-flex flex-wrap align-items-center justify-content-lg-start">
{topNavLeft}
</div>
<div class="mx-3 d-md-none">
<button class="my-3 btn btn-lg btn-outline-light" type="button" data-bs-toggle="collapse" data-bs-target="#mainMenu" aria-controls="mainMenu" aria-expanded="false" aria-label="Toggle navigation">
<i class="fa fa-bars"></i>
</button>
</div>
</div> </div>
</div> </div>
@ -66,26 +74,62 @@
</div> </div>
<!-- Footer --> <!-- Footer -->
<footer class="border-top context-main-bg"> <div class="container mt-auto border-top context-main-border">
<div class="container pb-4 pt-3 align-items-center"> <footer class="pt-0">
<div class="d-flex justify-content-between align-items-center context-main-bg"> <div class="d-md-block collapse" id="footerMenu">
{COPY} <div class="d-flex justify-content-between align-items-center py-2 my-2">
<div class="col-6 col-md-2"> <a href="/" class="text-decoration-none lh-1 d-flex align-items-center px-md-5 mx-md-5">
<div class="material-switch"> <img src="{ROOT_URL}{LOGO}" class="bi me-2" width="40" height="32" alt="Joey Kimsey Logo">
</a>
<div class="material-switch d-flex align-items-center">
<input name="dark-mode-toggle" type="checkbox" id="dark-mode-toggle" class="form-check-input"> <input name="dark-mode-toggle" type="checkbox" id="dark-mode-toggle" class="form-check-input">
<label for="dark-mode-toggle" class="label-default"></label> <label for="dark-mode-toggle" class="label-default"></label>
</div> </div>
<ul class="list-unstyled d-flex align-items-center mb-0">
<li class="ms-3">
<a class="context-main" href="{ROOT_URL}fb">
<span class="fa-brands fa-fw fa-facebook"></span>
</a>
</li>
<li class="ms-3">
<a class="context-main" href="{ROOT_URL}twitter">
<span class="fa-brands fa-fw fa-twitter"></span>
</a>
</li>
<li class="ms-3">
<a class="context-main" href="{ROOT_URL}in">
<span class="fa-brands fa-fw fa-linkedin"></span>
</a>
</li>
<li class="ms-3">
<a class="context-main" href="{ROOT_URL}youtube">
<span class="fa-brands fa-fw fa-youtube"></span>
</a>
</li>
<li class="ms-3">
<a class="context-main" href="{ROOT_URL}git">
<span class="fa-brands fa-fw fa-github"></span>
</a>
</li>
</ul>
</div>
<div class="d-flex justify-content-center justify-content-md-center text-center text-md-center my-2">
<span>© 2025 {SITENAME}, Powered by <a href="https://thetempusproject.com" class="text-decoration-none">The Tempus Project</a></span>
</div> </div>
{SOCIAL}
</div> </div>
</div> <div class="text-center">
</footer> <button class="d-md-none my-3 btn btn-lg context-main context-main-border" type="button" data-bs-toggle="collapse" data-bs-target="#footerMenu" aria-controls="footerMenu" aria-expanded="false" aria-label="Toggle footer navigation">
<i class="fa fa-bars"></i>
</button>
</div>
</footer>
</div>
</div> </div>
</div> </div>
</div> </div>
<!-- Bootstrap core JavaScript and jquery --> <!-- Bootstrap core JavaScript and jquery -->
<script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="{JQUERY_CDN}jquery.min.js"></script>
<script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script> <script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script>
<script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="{BOOTSTRAP_CDN}js/bootstrap.min.js"></script> <script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="{BOOTSTRAP_CDN}js/bootstrap.min.js"></script>
<!-- Custom javascript for this template --> <!-- Custom javascript for this template -->

View File

@ -4,7 +4,7 @@
* *
* This is the loader for the admin template. * This is the loader for the admin template.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]

View File

@ -4,7 +4,7 @@
* *
* This is the loader for the default template. * This is the loader for the default template.
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]
@ -19,11 +19,19 @@ use TheTempusProject\Houdini\Classes\Components;
use TheTempusProject\Bedrock\Classes\Config; use TheTempusProject\Bedrock\Classes\Config;
use TheTempusProject\Bedrock\Functions\Input; use TheTempusProject\Bedrock\Functions\Input;
use TheTempusProject\TheTempusProject as App; use TheTempusProject\TheTempusProject as App;
use Endroid\QrCode\Builder\Builder;
use Endroid\QrCode\Encoding\Encoding;
use Endroid\QrCode\ErrorCorrectionLevel;
use Endroid\QrCode\Label\LabelAlignment;
use Endroid\QrCode\Label\Font\OpenSans;
use Endroid\QrCode\RoundBlockSizeMode;
use Endroid\QrCode\Writer\PngWriter;
use TheTempusProject\Hermes\Functions\Route as Routes;
use TheTempusProject\Canary\Bin\Canary as Debug;
class DefaultLoader extends Loader { class DefaultLoader extends Loader {
private static $loaded = false; private static $loaded = false;
const TEMPLATE_NAME = 'Default Tempus Project Template'; const TEMPLATE_NAME = 'Default Tempus Project Template';
const JQUERY_CDN = 'https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/';
const BOOTSTRAP_CDN = 'https://cdn.jsdelivr.net/npm/bootstrap@3.3.6/dist/'; const BOOTSTRAP_CDN = 'https://cdn.jsdelivr.net/npm/bootstrap@3.3.6/dist/';
const FONT_AWESOME_URL = 'https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/'; const FONT_AWESOME_URL = 'https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/';
@ -36,20 +44,67 @@ class DefaultLoader extends Loader {
if ( VENDOR_AUTOLOADED === true ) { if ( VENDOR_AUTOLOADED === true ) {
Components::set( 'FONT_AWESOME_URL', '/vendor/fortawesome/font-awesome/css/' ); Components::set( 'FONT_AWESOME_URL', '/vendor/fortawesome/font-awesome/css/' );
Components::set( 'BOOTSTRAP_CDN', '/vendor/twbs/bootstrap/dist/' ); Components::set( 'BOOTSTRAP_CDN', '/vendor/twbs/bootstrap/dist/' );
Components::set( 'JQUERY_CDN', '/vendor/components/jquery/' );
} else { } else {
Components::set( 'BOOTSTRAP_CDN', self::BOOTSTRAP_CDN ); Components::set( 'BOOTSTRAP_CDN', self::BOOTSTRAP_CDN );
Components::set( 'JQUERY_CDN', self::JQUERY_CDN );
Components::set( 'FONT_AWESOME_URL', self::FONT_AWESOME_URL ); Components::set( 'FONT_AWESOME_URL', self::FONT_AWESOME_URL );
} }
$this->addJs( '<script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="{ROOT_URL}app/js/main.js"></script>' ); $this->addJs( '<script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="{ROOT_URL}app/js/main.js"></script>' );
Components::setIfNull( 'LOGO', Config::getValue( 'main/logo' ) ?? TP_DEFAULT_LOGO ); Components::setIfNull( 'LOGO', Config::getValue( 'main/logo' ) ?? TP_DEFAULT_LOGO );
if ( ! empty( Config::getValue( 'share/enabled' ) ) ) {
$currentUrl = Routes::getAddress() . Input::get( 'url' );
$folder = IMAGE_DIRECTORY . 'qr-codes' . DIRECTORY_SEPARATOR ;
$filename = md5( $currentUrl ) . '.png';
if ( ! file_exists( $folder ) ) {
Debug::Info( 'Creating Directory because it does not exist' );
mkdir( $folder, 0777, true );
}
if ( ! empty( Config::getValue( 'share/qr' ) ) ) {
if ( ! file_exists( $folder . $filename ) ) {
Debug::Info( 'Creating qr-image because it does not exist' );
$builder = new Builder(
writer: new PngWriter(),
writerOptions: [],
validateResult: false,
data: Routes::getAddress() . Input::get( 'url' ),
encoding: new Encoding('UTF-8'),
errorCorrectionLevel: ErrorCorrectionLevel::High,
size: 200,
margin: 10,
roundBlockSizeMode: RoundBlockSizeMode::Margin,
logoPath: APP_ROOT_DIRECTORY . DIRECTORY_SEPARATOR . Config::getValue( 'main/logo' ),
logoResizeToWidth: 30,
logoPunchoutBackground: true,
labelText: Config::getValue( 'main/name' ),
labelFont: new OpenSans(14),
labelAlignment: LabelAlignment::Center
);
$result = $builder->build();
$result->saveToFile( $folder . $filename );
}
Components::set( 'QR_CODE','<img src="{ROOT_URL}images/qr-codes/' . $filename . '" alt="QR Code" class="img-fluid mb-2">' );
} else {
Components::setIfNull( 'QR_CODE', '' );
}
Components::setIfNull( 'SHARE_IMAGE', Views::simpleView( 'footer.share' ) );
} else {
Components::setIfNull( 'SHARE_IMAGE', '' );
}
if ( ! empty( Config::getValue( 'main/pwa' ) ) ) {
Components::setIfNull( 'PWA', Views::simpleView( 'pwa') );
} else {
Components::setIfNull( 'PWA', '' );
}
Components::setIfNull( 'COPY', Views::simpleView( 'footer.copy') ); Components::setIfNull( 'COPY', Views::simpleView( 'footer.copy') );
Components::setIfNull( 'SOCIAL', Views::simpleView( 'footer.social') ); Components::setIfNull( 'SOCIAL', Views::simpleView( 'footer.social') );
Components::prepend( 'FOOTER_LEFT', Views::simpleView( 'footer.left', Navigation::getMenuLinks( App::CONTACT_FOOTER_MENU_NAME ) ) ); Components::prepend( 'FOOTER_LEFT', Views::simpleView( 'footer.left', Navigation::getMenuLinks( App::CONTACT_FOOTER_MENU_NAME ) ) );
Components::prepend( 'FOOTER_CENTER', Views::simpleView( 'footer.center', Navigation::getMenuLinks( App::INFO_FOOTER_MENU_NAME ) ) ); Components::prepend( 'FOOTER_CENTER', Views::simpleView( 'footer.center', Navigation::getMenuLinks( App::INFO_FOOTER_MENU_NAME ) ) );
Components::prepend( 'FOOTER_RIGHT', Views::simpleView( 'footer.right') ); Components::prepend( 'FOOTER_RIGHT', Views::simpleView( 'footer.right') );
Components::setIfNull( 'FOOT', Views::simpleView( 'footer.container') ); Components::setIfNull( 'FOOT', Views::simpleView( 'footer.container') );
/** /**
* Top-Nav * Top-Nav
*/ */

View File

@ -3,7 +3,7 @@
<!-- <!--
* app/templates/default/default.tpl * app/templates/default/default.tpl
* *
* @version 3.0 * @version 5.0.1
* @author Joey Kimsey <Joey@thetempusproject.com> * @author Joey Kimsey <Joey@thetempusproject.com>
* @link https://TheTempusProject.com * @link https://TheTempusProject.com
* @license https://opensource.org/licenses/MIT [MIT LICENSE] * @license https://opensource.org/licenses/MIT [MIT LICENSE]
@ -91,6 +91,7 @@
</div> </div>
</div> </div>
{/ISSUES} {/ISSUES}
{PWA}
<!-- Main Page Content --> <!-- Main Page Content -->
{CONTENT} {CONTENT}
</div> </div>
@ -100,7 +101,6 @@
<!-- User Pref to control Dark mode across frontend and backend --> <!-- User Pref to control Dark mode across frontend and backend -->
<input type="hidden" name="dark-mode-pref" id="dark-mode-pref" value="{DARK_MODE_SETTING}"> <input type="hidden" name="dark-mode-pref" id="dark-mode-pref" value="{DARK_MODE_SETTING}">
<!-- Bootstrap core JavaScript and jquery --> <!-- Bootstrap core JavaScript and jquery -->
<script crossorigin="anonymous" src="{JQUERY_CDN}jquery.min.js"></script>
<script crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script> <script crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script>
<script crossorigin="anonymous" src="{BOOTSTRAP_CDN}js/bootstrap.min.js"></script> <script crossorigin="anonymous" src="{BOOTSTRAP_CDN}js/bootstrap.min.js"></script>
<!-- Custom javascript for this template --> <!-- Custom javascript for this template -->

View File

@ -23,7 +23,7 @@
</h2> </h2>
<div id="collapse1" class="accordion-collapse collapse" aria-labelledby="generalHeading1" data-bs-parent="#generalAccordion"> <div id="collapse1" class="accordion-collapse collapse" aria-labelledby="generalHeading1" data-bs-parent="#generalAccordion">
<div class="ml-5 accordion-body context-main context-other-bg" id="general1"> <div class="ml-5 accordion-body context-main context-other-bg" id="general1">
<span class="text-lead"> <span class="text-lead text-primary">
Yes, {SITENAME} is a responsive web-app and it works seamlessly on mobile devices. Yes, {SITENAME} is a responsive web-app and it works seamlessly on mobile devices.
The front-end is powered by Bootstrap 5.2.3 the original design system used by twitter. The front-end is powered by Bootstrap 5.2.3 the original design system used by twitter.
In addition to the powerful tools behind the scenes, every page on {SITENAME} has been tested to work on devices of all sizes. In addition to the powerful tools behind the scenes, every page on {SITENAME} has been tested to work on devices of all sizes.
@ -39,7 +39,7 @@
</h2> </h2>
<div id="collapse2" class="accordion-collapse collapse" aria-labelledby="generalHeading2" data-bs-parent="#generalAccordion"> <div id="collapse2" class="accordion-collapse collapse" aria-labelledby="generalHeading2" data-bs-parent="#generalAccordion">
<div class="accordion-body context-main context-other-bg" id="general2"> <div class="accordion-body context-main context-other-bg" id="general2">
<span class="text-lead"> <span class="text-lead text-primary">
Yes, in more ways than one. Yes, in more ways than one.
Since {SITENAME} is designed as a responsive web-app, its accessible from any browser connected to the internet. Since {SITENAME} is designed as a responsive web-app, its accessible from any browser connected to the internet.
Behind the scenes, the app can be installed on any server hardware and has been tested with both nginx and Apache web-servers. Behind the scenes, the app can be installed on any server hardware and has been tested with both nginx and Apache web-servers.
@ -55,7 +55,7 @@
</h2> </h2>
<div id="collapse3" class="accordion-collapse collapse" aria-labelledby="generalHeading3" data-bs-parent="#generalAccordion"> <div id="collapse3" class="accordion-collapse collapse" aria-labelledby="generalHeading3" data-bs-parent="#generalAccordion">
<div class="accordion-body context-main context-other-bg" id="general3"> <div class="accordion-body context-main context-other-bg" id="general3">
<span class="text-lead"> <span class="text-lead text-primary">
{SITENAME} is open source and available free of charge through <a href="{ROOT_URL}libraries/ttp/git" class="text-decoration-none">GitLab</a> and <a href="{ROOT_URL}libraries/ttp/packagist" class="text-decoration-none">Packagist</a>. {SITENAME} is open source and available free of charge through <a href="{ROOT_URL}libraries/ttp/git" class="text-decoration-none">GitLab</a> and <a href="{ROOT_URL}libraries/ttp/packagist" class="text-decoration-none">Packagist</a>.
The developer behind the project is <a href="https://joeykimsey.com/" class="text-decoration-none">Joey Kimsey</a> and he can be contacted through his website for development services. The developer behind the project is <a href="https://joeykimsey.com/" class="text-decoration-none">Joey Kimsey</a> and he can be contacted through his website for development services.
</span> </span>

View File

@ -1,4 +1,5 @@
<div class="col-12 col-sm-6 col-md-3 col-lg-2 mb-3 text-center"> <div class="col-12 col-sm-6 col-md-3 col-lg-2 mb-3 text-center">
{SHARE_IMAGE}
<h5>Dark Mode</h5> <h5>Dark Mode</h5>
<div class="material-switch px-4 mt-2"> <div class="material-switch px-4 mt-2">
<input name="dark-mode-toggle" type="checkbox" id="dark-mode-toggle" class="form-check-input"> <input name="dark-mode-toggle" type="checkbox" id="dark-mode-toggle" class="form-check-input">

View File

@ -0,0 +1,17 @@
<div class="text-center mb-3">
<h5 class="mb-3">Share</h5>
<div class="px-4 mt-2">
<!-- Share Button (visible only on medium+ screens) -->
<button type="button" class="btn btn-outline-primary"
data-bs-toggle="popover" data-bs-html="true" title="Share"
data-bs-content='
{QR_CODE}
<div class="d-flex justify-content-between">
<a href="https://www.reddit.com/submit?type=LINK&url={CURRENT_URL_SAFE}" target="_blank" class="mx-1 btn btn-sm btn-outline-danger"><i class="fa-brands fa-fw fa-reddit"></i></a>
<a href="https://www.facebook.com/sharer/sharer.php?u={CURRENT_URL_SAFE}" target="_blank" class="mx-1 btn btn-sm btn-outline-primary"><i class="fa-brands fa-fw fa-facebook"></i></a>
<a href="https://twitter.com/intent/tweet?url={CURRENT_URL_SAFE}" target="_blank" class="mx-1 btn btn-sm btn-outline-info"><i class="fa-brands fa-fw fa-x"></i></a>
</div>'>
Share
</button>
</div>
</div>

View File

@ -1,29 +1,29 @@
<div class="d-flex justify-content-center justify-content-md-end mt-3 mt-md-0"> <div class="d-flex justify-content-center justify-content-md-end mt-3 mt-md-0">
<ul class="list-unstyled d-flex mb-0"> <ul class="list-unstyled d-flex mb-0">
<li class="ms-3"> <li class="ms-3">
<a class="context-main" href="{ROOT_URL}fb"> <a class="context-main" href="{ROOT_URL}fb">
<span class="fa-brands fa-fw fa-facebook"></span> <span class="fa-brands fa-fw fa-facebook"></span>
</a> </a>
</li> </li>
<li class="ms-3"> <li class="ms-3">
<a class="context-main" href="{ROOT_URL}twitter"> <a class="context-main" href="{ROOT_URL}twitter">
<span class="fa-brands fa-fw fa-twitter"></span> <span class="fa-brands fa-fw fa-twitter"></span>
</a> </a>
</li> </li>
<li class="ms-3"> <li class="ms-3">
<a class="context-main" href="{ROOT_URL}in"> <a class="context-main" href="{ROOT_URL}in">
<span class="fa-brands fa-fw fa-linkedin"></span> <span class="fa-brands fa-fw fa-linkedin"></span>
</a> </a>
</li> </li>
<li class="ms-3"> <li class="ms-3">
<a class="context-main" href="{ROOT_URL}youtube"> <a class="context-main" href="{ROOT_URL}youtube">
<span class="fa-brands fa-fw fa-youtube"></span> <span class="fa-brands fa-fw fa-youtube"></span>
</a> </a>
</li> </li>
<li class="ms-3"> <li class="ms-3">
<a class="context-main" href="{ROOT_URL}git"> <a class="context-main" href="{ROOT_URL}git">
<span class="fa-brands fa-fw fa-github"></span> <span class="fa-brands fa-fw fa-github"></span>
</a> </a>
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -1,17 +1,17 @@
Folder: <strong>{FOLDER_SELECT_ROOT}</strong> Folder: <strong>{FOLDER_SELECT_ROOT}</strong>
<div class="list-group mx-0 mx-auto"> <div class="list-group mx-0 mx-auto">
{LOOP} {LOOP}
<label class="list-group-item d-flex justify-content-between align-items-center"> <label class="list-group-item d-flex align-items-center">
<div class="d-flex align-items-center"> <input class="form-check-input me-2" type="radio" name="folderSelect" value="{location}">
<input class="form-check-input me-2" type="radio" name="folderSelect" value="{location}" data-bs-toggle="collapse" data-bs-target="#top-{folderName}"> <button class="btn d-flex justify-content-between align-items-center w-100" type="button" aria-expanded="false" aria-controls="top-{folderName}" data-bs-toggle="collapse" data-bs-target="#top-{folderName}">
<span> <span class="d-flex flex-grow-1">
{folderName} {folderName}
</span> </span>
<i class="fa fa-solid fa-caret-down"></i>
</button>
</label>
<div id="top-{folderName}" class="collapse">
{subdirs}
</div> </div>
{folderexpand}
</label>
<div id="top-{folderName}" class="collapse">
{subdirs}
</div>
{/LOOP} {/LOOP}
</div> </div>

Some files were not shown because too many files have changed in this diff Show More