plugin wip

This commit is contained in:
Joey Kimsey
2024-12-14 06:10:01 -05:00
parent 03f1c978e3
commit c0e211eda7
36 changed files with 319 additions and 197 deletions

View File

@ -123,3 +123,67 @@ $(document).ready(function() {
}
});
});
document.addEventListener('DOMContentLoaded', () => {
// Initialize Masonry
const masonryContainer = document.querySelector('[data-masonry]');
const masonryInstance = new Masonry(masonryContainer, {
// horizontalOrder: false, // Maintains natural order in DOM
columnHeight: '.accordion',
// columnWidth: '.card', // Use the card width as the column reference
percentPosition: true
});
// const sortContainer = document.getElementById('bookmarkSort');
// Sortable.create(masonryContainer, {
// // animation: 150, // Smooth animations
// sort: true,
// ghostClass: 'bg-primary',
// onEnd: () => {
// // Trigger Masonry layout after drag-and-drop
// masonryInstance.layout();
// }
// });
// Function to trigger layout after any accordion change
const updateMasonryLayout = () => masonryInstance.layout();
// Listen for all accordion collapse/expand events
masonryContainer.addEventListener('hidden.bs.collapse', updateMasonryLayout);
masonryContainer.addEventListener('shown.bs.collapse', updateMasonryLayout);
// Observe dynamic content changes (e.g., rows added/removed)
const observer = new MutationObserver(() => {
updateMasonryLayout();
});
// Observe all cards for changes in the DOM
document.querySelectorAll('.card').forEach((card) => {
observer.observe(card, { childList: true, subtree: true });
});
jQuery(function($) {
var panelList = $('#bookmarkSort');
panelList.sortable({
// Only make the .panel-heading child elements support dragging.
// Omit this to make then entire <li>...</li> draggable.
handle: '.card',
update: function() {
console.error( 'update' );
$('.bookmark-card', panelList).each(function(index, elem) {
var $listItem = $(elem),
newIndex = $listItem.index();
masonryInstance.layout();
console.error( $listItem );
console.error( index );
console.error( newIndex );
// Persist the new indices.
});
}
});
});
});

View File

@ -47,8 +47,8 @@ class BookmarkFolders extends ApiController {
$responseType = 'error';
$response = 'There was an error creating your folder.';
} else {
$responseType = 'success';
$response = 'success';
$responseType = 'id';
$response = $result;
}
Views::view( 'api.response', ['response' => json_encode( [ $responseType => $response ], true )]);
}
@ -68,4 +68,3 @@ class BookmarkFolders extends ApiController {
Views::view( 'api.response', ['response' => json_encode( [ $responseType => $response ], true )]);
}
}

View File

@ -70,12 +70,11 @@ class Bookmarks extends Controller {
$folderObject->title = $folder->title;
$folderObject->color = $folder->color;
$folderObject->bookmarkListRows = Views::simpleView( 'bookmarks.components.bookmarkListRows', $folderObject->bookmarks );
$panel->panel = Views::simpleView( 'bookmarks.components.bookmarkListPanel', [$folderObject] );
$panelArray[] = $panel;
$panelArray[] = $folderObject;
}
}
Components::set( 'foldersList', Views::simpleView( 'bookmarks.folders.list', $folders ) );
Components::set( 'folderPanels', Views::simpleView( 'bookmarks.components.folderPanelList', $panelArray ) );
Components::set( 'folderPanels', Views::simpleView( 'bookmarks.components.bookmarkListPanel', $panelArray ) );
Components::set( 'bookmarksList', Views::simpleView( 'bookmarks.bookmarks.list', $bookmarks ) );
return Views::view( 'bookmarks.dash' );
}
@ -122,7 +121,7 @@ class Bookmarks extends Controller {
$panel->panel = Views::simpleView( 'bookmarks.components.bookmarkListPanel', [$folderObject] );
$panelArray[] = $panel;
return Views::view( 'bookmarks.components.folderPanelList', $panelArray );
return Views::view( 'bookmarks.bookmarks.listPage', $panelArray );
}
public function createBookmark( $id = null ) {
@ -227,7 +226,7 @@ class Bookmarks extends Controller {
if ( $folder == false ) {
$folders = self::$folders->byUser();
Components::set( 'foldersList', Views::simpleView( 'bookmarks.folders.list', $folders ) );
return Views::view( 'bookmarks.folders.listPage', $folders );
return Views::view( 'bookmarks.folders.listPage' );
}
if ( $folder->createdBy != App::$activeUser->ID ) {
Session::flash( 'error', 'You do not have permission to view this folder.' );

View File

@ -171,4 +171,23 @@ class Folders extends DatabaseModel {
}
return $out;
}
public function filter( $data, $params = [] ) {
foreach ( $data as $instance ) {
if ( !is_object( $instance ) ) {
$instance = $data;
$end = true;
}
// Real Work Starts Here
$instance->prettyPrivacy = ucfirst( $instance->privacy );
$instance->prettyTitle = ucfirst( $instance->title );
// Real Work Ends Here
$out[] = $instance;
if ( !empty( $end ) ) {
$out = $out[0];
break;
}
}
return $out;
}
}

View File

@ -21,7 +21,7 @@
{privacy}
</td>
<td><a href="{ROOT_URL}bookmarks/bookmark/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-upload"></i></a></td>
<td><a href="{ROOT_URL}bookmarks/editBookmark/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil-square"></i></a></td>
<td><a href="{ROOT_URL}bookmarks/editBookmark/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil"></i></a></td>
<td><a href="{ROOT_URL}bookmarks/deleteBookmark/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
</tr>
{/LOOP}
@ -34,4 +34,7 @@
{/ALT}
</tbody>
</table>
<a href="{ROOT_URL}bookmarks/createBookmark" class="btn btn-sm btn-primary">Create</a>
<div class="text-center">
<a href="{ROOT_URL}bookmarks/createBookmark" class="btn btn-md btn-primary">Create</a>
</div>

View File

@ -1,8 +1,13 @@
<div class="row">
<div class="offset-md-2 col-8 py-3">
{LOOP}
<legend class="">Bookmark List</legend>
{bookmarksList}
<div class="col-6 col-md-12">
{panel}
</div>
{/LOOP}
{ALT}
<div class="col-12">
<p>no folders</p>
</div>
{/ALT}
</div>

View File

@ -100,7 +100,7 @@
{hideBtn}
{archiveBtn}
<a href="{ROOT_URL}bookmarks/editBookmark/{ID}" class="btn btn-warning btn-sm me-2" data-bs-toggle="tooltip" title="Edit Bookmark">
<i class="fa fa-pencil-square"></i> Edit
<i class="fa fa-pencil"></i> Edit
</a>
<a href="{ROOT_URL}bookmarks/deleteBookmark/{ID}" class="btn btn-danger btn-sm" data-bs-toggle="tooltip" title="Delete Bookmark">
<i class="fa fa-trash"></i> Delete

View File

@ -1,21 +1,32 @@
<div class="card panel-{color}">
<div class="card-header" data-bs-target="#Collapse{ID}" data-bs-toggle="collapse" aria-expanded="true" aria-controls="#Collapse{ID}">
{LOOP}
<div class="col-xlg-6 col-lg-6 col-md-6 col-sm-6 bookmark-card">
<div class="card m-3 accordion">
<div class="accordion-item">
<div class="card-header accordion-header bg-{color} context-main" data-bs-target="#Collapse{ID}" data-bs-toggle="collapse" aria-expanded="true" aria-controls="Collapse{ID}">
{title}
</div>
<div id="Collapse{ID}" class="panel-collapse collapse in" style="width:100%; position: relative;" role="tabpanel" aria-expanded="true">
<div class="card-body">
<div id="Collapse{ID}" class="accordion-collapse collapse show" style="width:100%; position: relative;">
<div class="card-body accordion-body context-other-bg p-2">
<ul class="list-group">
{bookmarkListRows}
</ul>
</div>
<div class="card-footer">
<div class="card-footer d-flex justify-content-center align-items-center context-main-bg">
<a href="{ROOT_URL}bookmarks/createBookmark/{ID}" class="btn btn-sm btn-success"><i class="fa fa-fw fa-plus"></i></a></td>
<span class="float-right">
<span class="ms-auto">
<a href="{ROOT_URL}bookmarks/bookmarks/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-list"></i></a>
<a href="{ROOT_URL}bookmarks/folders/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-info-circle"></i></a></td>
<a href="{ROOT_URL}bookmarks/editFolder/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil-square"></i></a></td>
<a href="{ROOT_URL}bookmarks/editFolder/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil"></i></a></td>
<a href="{ROOT_URL}bookmarks/deleteFolder/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
</span>
</div>
</div>
</div>
</div>
</div>
{/LOOP}
{ALT}
<div class="col-xlg-6 col-lg-6 col-md-6 col-sm-6">
<p>no folders</p>
</div>
{/ALT}

View File

@ -1,18 +1,18 @@
{LOOP}
<li class="list-group-item list-group-item-{color}">
<a href="{ROOT_URL}bookmarks/bookmarks/{ID}" class="btn btn-sm">{iconHtml}</a>
<a href="{url}" class="list-group"> {title}</a>
<span class="float-right">
<li class="list-group-item mb-1 context-main-b bg-{color}">
<a href="{ROOT_URL}bookmarks/bookmark/{ID}" class="context-main">{iconHtml}</a>
<a href="{url}"> {title}</a>
<span class="float-end">
{hideBtn}
{archiveBtn}
<a href="{ROOT_URL}bookmarks/editBookmark/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil-square"></i></a>
<a href="{ROOT_URL}bookmarks/editBookmark/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil"></i></a>
<a href="{ROOT_URL}bookmarks/deleteBookmark/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a>
</span>
</li>
{/LOOP}
{ALT}
<li class="list-group-item">
<a href="#" class="list-group">No Bookmarks</a>
<li class="list-group-item py-1">
<p class="list-group text-center">No Bookmarks</p>
</li>
{/ALT}

View File

@ -1,10 +0,0 @@
{LOOP}
<div class="col-xlg-6 col-lg-6 col-md-6 col-sm-6">
{panel}
</div>
{/LOOP}
{ALT}
<div class="col-xlg-6 col-lg-6 col-md-6 col-sm-6">
<p>no folders</p>
</div>
{/ALT}

View File

@ -1,17 +1,20 @@
<div class="row">
<div class="offset-md-2 col-4 py-3">
<legend class="">Unsorted Bookmarks</legend>
<div class="row mt-4">
<div class="offset-md-1 col-5 mr-2 py-3 context-main-bg">
<legend class="text-center">Unsorted Bookmarks</legend>
{bookmarksList}
</div>
<div class="col-4 py-3">
<legend class="">Folders List</legend>
<div class="col-5 py-3 ml-2 context-main-bg">
<legend class="text-center">Folders List</legend>
{foldersList}
</div>
</div>
<div class="row">
<div class="offset-md-2 col-8 py-3">
<legend class="">Bookmarks</legend>
<div class="row mb-4 mt-4">
<div class="offset-md-1 col-10 py-3 context-main-bg">
<legend class="text-center">Bookmarks</legend>
<hr>
<div class="row g-3" data-masonry='{ "percentPosition": false }' id="bookmarkSort">
{folderPanels}
</div>
</div>
</div>

View File

@ -2,9 +2,9 @@
<table class="table context-main">
<thead>
<tr>
<th style="width: 35%">Title</th>
<th style="width: 20%">Privacy</th>
<th style="width: 30%">Description</th>
<th class="text-center" style="width: 35%">Title</th>
<th class="text-center" style="width: 20%">Privacy</th>
<th class="text-center" style="width: 30%">Description</th>
<th style="width: 5%"></th>
<th style="width: 5%"></th>
<th style="width: 5%"></th>
@ -13,11 +13,11 @@
<tbody>
{LOOP}
<tr>
<td class="text-center">{title}</td>
<td class="text-center">{privacy}</td>
<td class="text-center">{prettyTitle}</td>
<td class="text-center">{prettyPrivacy}</td>
<td>{description}</td>
<td><a href="{ROOT_URL}bookmarks/folders/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-info-circle"></i></a></td>
<td><a href="{ROOT_URL}bookmarks/editFolder/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil-square"></i></a></td>
<td><a href="{ROOT_URL}bookmarks/editFolder/{ID}" class="btn btn-sm btn-warning"><i class="fa fa-fw fa-pencil"></i></a></td>
<td><a href="{ROOT_URL}bookmarks/deleteFolder/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
</tr>
{/LOOP}
@ -30,4 +30,6 @@
{/ALT}
</tbody>
</table>
<a href="{ROOT_URL}bookmarks/createFolder" class="btn btn-sm btn-primary">Create</a>
<div class="text-center">
<a href="{ROOT_URL}bookmarks/createFolder" class="btn btn-md btn-primary">Create</a>
</div>

View File

@ -1,7 +1,8 @@
<div class="row">
<div class="offset-md-2 col-8 py-3">
<div class="offset-md-2 col-8 py-3 context-main-bg mt-4">
<div class="text-center">
<legend class="">Folders List</legend>
</div>
{foldersList}
</div>
</div>

View File

@ -59,7 +59,7 @@
<i class="fa fa-list"></i> Bookmarks
</a>
<a href="{ROOT_URL}bookmarks/editFolder/{ID}" class="btn btn-warning btn-sm me-2" data-bs-toggle="tooltip" title="Edit User">
<i class="fa fa-pencil-square"></i> Edit
<i class="fa fa-pencil"></i> Edit
</a>
<a href="{ROOT_URL}bookmarks/deleteFolder/{ID}" class="btn btn-danger btn-sm" data-bs-toggle="tooltip" title="Delete User">
<i class="fa fa-trash"></i> Delete

View File

@ -1,4 +1,4 @@
<ul class="nav nav-tabs justify-content-center" role="tablist">
<ul class="nav nav-tabs justify-content-center mt-4" role="tablist">
<li class="nav-item context-main-bg mx-1"><a href="{ROOT_URL}bookmarks/index/" class="nav-link">Dashboard</a></li>
<li class="nav-item context-main-bg mx-1"><a href="{ROOT_URL}bookmarks/folders/" class="nav-link">Folders</a></li>
<li class="nav-item context-main-bg mx-1"><a href="{ROOT_URL}bookmarks/import/" class="nav-link">Import</a></li>

View File

@ -1,4 +1,4 @@
<ul class="nav nav-tabs justify-content-center" role="tablist">
<ul class="nav nav-tabs justify-content-center mt-4" role="tablist">
<li class="nav-item context-main-bg mx-1"><a href="{ROOT_URL}bookmarks/folders/" class="nav-link">All</a></li>
{LOOP}
<li class="nav-item context-main-bg mx-1"><a href="{ROOT_URL}bookmarks/bookmarks/{ID}" class="nav-link">{title}</a></li>

View File

@ -1,8 +1,8 @@
<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 panel-primary">
<div class="card-header">
<div class="card">
<div class="card-header bg-dark">
<h3 class="card-title">Membership Product</h3>
</div>
<div class="card-body">

View File

@ -32,8 +32,8 @@
</div>
</div>
<div class="col-sm-4">
<div class="card panel-primary">
<div class="card-header">
<div class="card">
<div class="card-header bg-primary">
<h3>{name} Monthly</h3>
</div>
<div class="card-body">
@ -45,8 +45,8 @@
</div>
</div>
<div class="col-sm-4">
<div class="card panel-primary">
<div class="card-header">
<div class="card">
<div class="card-header bg-primary">
<h3>{name} Yearly</h3>
</div>
<div class="card-body">

View File

@ -15,8 +15,8 @@
<h2 class="text-center">Affordable Plans</h2>
<div class="row">
<div class="col-sm-6">
<div class="card panel-success">
<div class="card-header">{name} Monthly Plan</div>
<div class="card">
<div class="card-header bg-success">{name} Monthly Plan</div>
<div class="card-body">
<p>{prettyPriceMonthly}/month</p>
<p>All pro features unlocked</p>
@ -25,8 +25,8 @@
</div>
</div>
<div class="col-sm-6">
<div class="card panel-info">
<div class="card-header">{name} Yearly Plan</div>
<div class="card">
<div class="card-header bg-info">{name} Yearly Plan</div>
<div class="card-body">
<p>{prettyPriceYearly}/year</p>
<p>Save {prettySavings} annually!</p>

View File

@ -19,7 +19,7 @@ use TheTempusProject\Houdini\Classes\Navigation;
use TheTempusProject\Houdini\Classes\Components;
use TheTempusProject\Classes\AdminController;
use TheTempusProject\Models\Review;
use TheTempusProject\Models\Reviewcategory;
use TheTempusProject\Models\ReviewCategory;
use TheTempusProject\Classes\Forms;
class Reviews extends AdminController {
@ -30,7 +30,7 @@ class Reviews extends AdminController {
parent::__construct();
self::$title = 'Admin - Reviews';
self::$reviews = new Review;
self::$categories = new Reviewcategory;
self::$categories = new ReviewCategory;
$view = Navigation::activePageSelect( 'nav.admin', '/admin/reviews' );
Components::set( 'ADMINNAV', $view );
}

View File

@ -24,7 +24,7 @@ use TheTempusProject\Models\Review;
use TheTempusProject\TheTempusProject as App;
use TheTempusProject\Houdini\Classes\Components;
use TheTempusProject\Houdini\Classes\Template;
use TheTempusProject\Models\Reviewcategory;
use TheTempusProject\Models\ReviewCategory;
use TheTempusProject\Houdini\Classes\Forms as HoudiniForms;
class Reviews extends Controller {
@ -33,7 +33,7 @@ class Reviews extends Controller {
public function __construct() {
self::$title = 'Reviews - {SITENAME}';
self::$pageDescription = 'On this page you can submit a reviews for a product from the site.';
self::$pageDescription = 'On this page you can submit a reviews for a product.';
if ( ! App::$isLoggedIn ) {
Session::flash( 'notice', 'You must be logged in to review products.' );
@ -42,7 +42,7 @@ class Reviews extends Controller {
parent::__construct();
self::$reviews = new Review;
self::$categories = new Reviewcategory;
self::$categories = new ReviewCategory;
Components::append( 'TEMPLATE_JS_INCLUDES', Template::parse('<script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="{ROOT_URL}app/plugins/reviews/js/reviews.js"></script>' ) );
Components::append( 'TEMPLATE_CSS_INCLUDES', Template::parse('<link rel="stylesheet" href="{ROOT_URL}app/plugins/reviews/css/reviews.css" />') );
}
@ -50,7 +50,7 @@ class Reviews extends Controller {
public function index() {
$reviews = Views::simpleView( 'reviews.list', self::$reviews->byUser() );
Components::set( 'reviews', $reviews );
Views::view( 'reviews.index' );
Views::view( 'reviews.list' );
}
public function review( $slug = null ) {

View File

@ -14,7 +14,7 @@ namespace TheTempusProject\Models;
use TheTempusProject\Bedrock\Classes\Config;
use TheTempusProject\Bedrock\Functions\Check;
use TheTempusProject\Canary\Canary as Debug;
use TheTempusProject\Canary\Bin\Canary as Debug;
use TheTempusProject\Classes\DatabaseModel;
use TheTempusProject\Plugins\Reviews as Plugin;
use TheTempusProject\TheTempusProject as App;

View File

@ -1,6 +1,6 @@
<?php
/**
* app/plugins/reviews/models/reviewcategory.php
* app/plugins/reviews/models/review_category.php
*
* This class is used for the manipulation of the review_categories database table.
*
@ -14,13 +14,13 @@ namespace TheTempusProject\Models;
use TheTempusProject\Bedrock\Classes\Config;
use TheTempusProject\Bedrock\Functions\Check;
use TheTempusProject\Canary\Canary as Debug;
use TheTempusProject\Canary\Bin\Canary as Debug;
use TheTempusProject\Classes\DatabaseModel;
use TheTempusProject\Plugins\Reviews as Plugin;
use TheTempusProject\TheTempusProject as App;
use TheTempusProject\Canary\Classes\CustomException;
class Reviewcategory extends DatabaseModel {
class ReviewCategory extends DatabaseModel {
public $tableName = 'review_categories';
public $databaseMatrix = [
[ 'name', 'varchar', '128' ],

View File

@ -37,7 +37,7 @@ class Reviews extends Plugin {
'url' => '{ROOT_URL}admin/reviews',
],
];
public $footer_links = [
public $contact_footer_links = [
[
'text' => 'Reviews',
'url' => '{ROOT_URL}reviews/index/',

View File

@ -16,9 +16,9 @@
<td align="center">{ID}</td>
<td>{name}</td>
<td>{slug}</td>
<td><a href="{ROOT_URL}admin/reviews/categoryView/{ID}" class="btn btn-sm btn-primary" role="button"><i class="glyphicon glyphicon-info-sign"></i></a></td>
<td><a href="{ROOT_URL}admin/reviews/categoryEdit/{ID}" class="btn btn-sm btn-warning" role="button"><i class="glyphicon glyphicon-edit"></i></a></td>
<td><a href="{ROOT_URL}admin/reviews/categoryDelete/{ID}" class="btn btn-sm btn-danger" role="button"><i class="glyphicon glyphicon-trash"></i></a></td>
<td><a href="{ROOT_URL}admin/reviews/categoryView/{ID}" class="btn btn-sm btn-primary" role="button"><i class="fa fa-fw fa-info-circle"></i></a></td>
<td><a href="{ROOT_URL}admin/reviews/categoryEdit/{ID}" class="btn btn-sm btn-warning" role="button"><i class="fa fa-fw fa-pencil"></i></a></td>
<td><a href="{ROOT_URL}admin/reviews/categoryDelete/{ID}" class="btn btn-sm btn-danger" role="button"><i class="fa fa-fw fa-trash"></i></a></td>
</tr>
{/LOOP}
{ALT}

View File

@ -33,9 +33,9 @@
</div>
</div>
<div class="panel-footer">
<a href="{ROOT_URL}admin/reviews/reviewApprove/{ID}" class="btn btn-sm btn-success" role="button"><i class="glyphicon glyphicon-info-check"></i></a>
<a href="{ROOT_URL}admin/reviews/reviewHide/{ID}" class="btn btn-sm btn-info" role="button"><i class="glyphicon glyphicon-eye-closed"></i></a>
<a href="{ROOT_URL}admin/reviews/reviewDelete/{ID}" class="btn btn-sm btn-danger" role="button"><i class="glyphicon glyphicon-trash"></i></a>
<a href="{ROOT_URL}admin/reviews/reviewApprove/{ID}" class="btn btn-sm btn-success" role="button"><i class="fa fa-fw fa-info-circle"></i></a>
<a href="{ROOT_URL}admin/reviews/reviewHide/{ID}" class="btn btn-sm btn-info" role="button"><i class="fa fa-fw fa-eye-closed"></i></a>
<a href="{ROOT_URL}admin/reviews/reviewDelete/{ID}" class="btn btn-sm btn-danger" role="button"><i class="fa fa-fw fa-trash"></i></a>
</div>
</div>
</div>

View File

@ -16,9 +16,9 @@
<td align="center">{ID}</td>
<td><a href="{ROOT_URL}admin/reviews/reviewView/{ID}" class="btn btn-sm btn-primary" role="button">{title}</a></td>
<td align="center">{rating}</td>
<td><a href="{ROOT_URL}admin/reviews/reviewApprove/{ID}" class="btn btn-sm btn-success" role="button"><i class="glyphicon glyphicon-info-check"></i></a></td>
<td><a href="{ROOT_URL}admin/reviews/reviewHide/{ID}" class="btn btn-sm btn-info" role="button"><i class="glyphicon glyphicon-eye-closed"></i></a></td>
<td><a href="{ROOT_URL}admin/reviews/reviewDelete/{ID}" class="btn btn-sm btn-danger" role="button"><i class="glyphicon glyphicon-trash"></i></a></td>
<td><a href="{ROOT_URL}admin/reviews/reviewApprove/{ID}" class="btn btn-sm btn-success" role="button"><i class="fa fa-fw fa-check"></i></a></td>
<td><a href="{ROOT_URL}admin/reviews/reviewHide/{ID}" class="btn btn-sm btn-info" role="button"><i class="fa fa-fw fa-eye-closed"></i></a></td>
<td><a href="{ROOT_URL}admin/reviews/reviewDelete/{ID}" class="btn btn-sm btn-danger" role="button"><i class="fa fa-fw fa-trash"></i></a></td>
</tr>
{/LOOP}
{ALT}

View File

@ -1 +0,0 @@
{reviews}

View File

@ -1,10 +1,17 @@
<div class="col-8 mx-auto p-4 rounded shadow-sm mb-5 context-main-bg mt-4 context-main">
<legend>Reviews</legend>
<table class="table table-striped">
<hr>
<p>
Understanding the customer is a huge part of making products better. Whether its feedback that we are doing great, or we need work; the review allows users to share that with us.
</p>
<p>
On this page you can find <strong>your</strong> reviews to see any responses or make edits.
</p>
<table class="table context-main">
<thead>
<tr>
<th style="width: 10%">ID</th>
<th style="width: 30%">Title</th>
<th style="width: 30%">Rating</th>
<th style="width: 60%">Title</th>
<th style="width: 10%">Rating</th>
<th style="width: 10%"></th>
<th style="width: 10%"></th>
<th style="width: 10%"></th>
@ -13,12 +20,10 @@
<tbody>
{LOOP}
<tr>
<td align="center">{ID}</td>
<td><a href="{ROOT_URL}admin/reviews/reviewView/{ID}" class="btn btn-sm btn-primary" role="button">{title}</a></td>
<td align="center">{rating}</td>
<td><a href="{ROOT_URL}admin/reviews/reviewApprove/{ID}" class="btn btn-sm btn-success" role="button"><i class="glyphicon glyphicon-info-check"></i></a></td>
<td><a href="{ROOT_URL}admin/reviews/reviewHide/{ID}" class="btn btn-sm btn-info" role="button"><i class="glyphicon glyphicon-eye-closed"></i></a></td>
<td><a href="{ROOT_URL}admin/reviews/reviewDelete/{ID}" class="btn btn-sm btn-danger" role="button"><i class="glyphicon glyphicon-trash"></i></a></td>
<td><a href="{ROOT_URL}admin/reviews/reviewEdit/{ID}" class="btn btn-sm btn-info" role="button"><i class="fa fa-fw fa-pencil"></i></a></td>
<td><a href="{ROOT_URL}admin/reviews/reviewDelete/{ID}" class="btn btn-sm btn-danger" role="button"><i class="fa fa-fw fa-trash"></i></a></td>
</tr>
{/LOOP}
{ALT}
@ -30,3 +35,4 @@
{/ALT}
</tbody>
</table>
</div>

View File

@ -37,7 +37,7 @@ class Suggestions extends Plugin {
'url' => '{ROOT_URL}admin/suggestions',
],
];
public $footer_links = [
public $contact_footer_links = [
[
'text' => 'Suggestions',
'url' => '{ROOT_URL}suggestions/index',

View File

@ -29,12 +29,12 @@
<td align="center">{DTC}{approvedOn}{/DTC}</td>
<td align="center">{approvedByName}</td>
<td>
<a href="{ROOT_URL}admin/suggestions/approve/{ID}" class="btn btn-sm btn-success" role="button"><i class="glyphicon glyphicon-ok"></i></a>
<a href="{ROOT_URL}admin/suggestions/reject/{ID}" class="btn btn-sm btn-danger" role="button"><i class="glyphicon glyphicon-remove"></i></a>
<a href="{ROOT_URL}admin/suggestions/approve/{ID}" class="btn btn-sm btn-success" role="button"><i class="fa fa-fw fa-check"></i></a>
<a href="{ROOT_URL}admin/suggestions/reject/{ID}" class="btn btn-sm btn-danger" role="button"><i class="fa fa-fw fa-close"></i></a>
</td>
<td>
<a href="{ROOT_URL}admin/suggestions/view/{ID}" class="btn btn-sm btn-primary" role="button"><i class="glyphicon glyphicon-open"></i></a>
<a href="{ROOT_URL}admin/suggestions/delete/{ID}" class="btn btn-sm btn-danger" role="button"><i class="glyphicon glyphicon-trash"></i></a>
<a href="{ROOT_URL}admin/suggestions/view/{ID}" class="btn btn-sm btn-primary" role="button"><i class="fa fa-fw fa-upload"></i></a>
<a href="{ROOT_URL}admin/suggestions/delete/{ID}" class="btn btn-sm btn-danger" role="button"><i class="fa fa-fw fa-trash"></i></a>
</td>
<td>
<input type="checkbox" value="{ID}" name="BR_[]">

View File

@ -1,16 +1,32 @@
<form action="" method="post" class="form-horizontal">
<legend>Submit a Suggestion</legend>
<div class="form-group">
<label for="title" class="col-lg-3 control-label">Title</label>
<div class="col-lg-3">
<input type="text" class="form-check-input" name="title" id="title" value="{title}">
<div class="context-main-bg container py-4 mt-4">
<h2 class="text-center mb-4">Make a suggestion</h2>
<p class="col-lg-6 offset-md-3">
I can't be expected to come up with all the great ideas around here. Feel free to make a suggestion here. Some suggestions will be approved for the community to comment on!
</p>
<form action="" method="post">
<!-- Title -->
<div class="my-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>
<div class="form-group center-block">
<div class="col-lg-8 col-lg-offset-2">
<textarea class="form-control" name="suggestion" maxlength="2000" rows="4" cols="50" id="suggestion"></textarea>
<!-- Feedback -->
<div class="mb-3 row">
<label for="suggestion" class="col-lg-3 col-form-label text-end">Suggestion:</label>
<div class="col-lg-6">
<textarea class="form-control" name="suggestion" id="suggestion" rows="6" maxlength="2000" required></textarea>
<small class="form-text text-muted">Max: 2000 characters</small>
</div>
</div>
<button name="submit" value="submit" type="submit" class="btn btn-lg btn-primary center-block">Submit</button>
<!-- 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">Submit</button>
</div>
</form>
</div>

View File

@ -1,5 +1,6 @@
<legend>Suggestions</legend>
{PAGINATION}
<div class="col-10 offset-md-1 context-main-bg p-4 my-5">
<legend class="text-center">Suggestions</legend>
<hr>
{LOOP}
<div class="blog-post">
<h2 class="blog-post-title"><a href="{ROOT_URL}suggestions/view/{ID}">{title}</a></h2>
@ -13,7 +14,8 @@
{/LOOP}
{ALT}
<div class="blog-post">
<p class="blog-post-meta">No Suggestions Found.</p>
<p class="blog-post-meta py-3 text-center">No Suggestions Found.</p>
</div>
{/ALT}
<a href="{ROOT_URL}suggestions/create" class="btn btn-sm btn-primary" role="button">Create</a>
<a href="{ROOT_URL}suggestions/create" class="btn btn-sm btn-primary" role="button">Make a Suggestion</a>
</div>

View File

@ -20,8 +20,8 @@
<td><a href="{ROOT_URL}admin/wip/view/{ID}">{title}</a></td>
<td>{progress}</td>
<td>{startDate}</td>
<td><a href="{ROOT_URL}admin/wip/edit/{ID}" class="btn btn-sm btn-warning" role="button"><i class="glyphicon glyphicon-edit"></i></a></td>
<td><a href="{ROOT_URL}admin/wip/delete/{ID}" class="btn btn-sm btn-danger" role="button"><i class="glyphicon glyphicon-trash"></i></a></td>
<td><a href="{ROOT_URL}admin/wip/edit/{ID}" class="btn btn-sm btn-warning" role="button"><i class="fa fa-fw fa-pencil"></i></a></td>
<td><a href="{ROOT_URL}admin/wip/delete/{ID}" class="btn btn-sm btn-danger" role="button"><i class="fa fa-fw fa-trash"></i></a></td>
<td>
<input type="checkbox" value="{ID}" name="P_[]">
</td>

View File

@ -1,4 +1,5 @@
<h1>Work in Progress</h1>
<div class="col-8 mx-auto p-4 rounded shadow-sm mt-5 context-main-bg">
<h1 class="text-center">Work in Progress</h1>
<hr>
{LOOP}
<div class="wip-project">
@ -7,7 +8,7 @@
<div class="progress">
<div class="progress-bar" role="progressbar" style="width: {progress}%" aria-valuenow="{progress}" aria-valuemin="0" aria-valuemax="100"></div>
</div>
<div class="well">
<div class="well mt-3">
{description}
</div>
</div>
@ -17,3 +18,4 @@
<p>None Found</p>
</div>
{/ALT}
</div>

View File

@ -72,6 +72,7 @@
<!-- 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 src="https://cdn.jsdelivr.net/npm/masonry-layout@4.2.2/dist/masonry.pkgd.min.js" integrity="sha384-GNFwBvfVxBkLMJpYMOABq3c+d3KnQxudP/mGPkzpZSTYykLBNsZEnG2D9G/X/+7D" crossorigin="anonymous" ></script>
<script language="JavaScript" crossorigin="anonymous" type="text/javascript" src="{BOOTSTRAP_CDN}js/bootstrap.min.js"></script>
<!-- Custom javascript for this template -->
{TEMPLATE_JS_INCLUDES}