plugin wip
This commit is contained in:
@ -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.
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
@ -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 )]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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.' );
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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>
|
@ -1,8 +1,13 @@
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="offset-md-2 col-8 py-3">
|
||||
<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>
|
@ -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
|
||||
|
@ -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}
|
@ -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}
|
@ -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}
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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">
|
||||
|
@ -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">
|
||||
|
@ -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>
|
||||
|
@ -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 );
|
||||
}
|
||||
|
@ -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 ) {
|
||||
|
@ -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;
|
||||
|
@ -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' ],
|
@ -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/',
|
||||
|
@ -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}
|
||||
|
@ -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>
|
||||
|
@ -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}
|
||||
|
@ -1 +0,0 @@
|
||||
{reviews}
|
@ -1,10 +1,17 @@
|
||||
<legend>Reviews</legend>
|
||||
<table class="table table-striped">
|
||||
<div class="col-8 mx-auto p-4 rounded shadow-sm mb-5 context-main-bg mt-4 context-main">
|
||||
<legend>Reviews</legend>
|
||||
<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}
|
||||
@ -29,4 +34,5 @@
|
||||
</tr>
|
||||
{/ALT}
|
||||
</tbody>
|
||||
</table>
|
||||
</table>
|
||||
</div>
|
@ -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',
|
||||
|
@ -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_[]">
|
||||
|
@ -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}">
|
||||
</form>
|
||||
|
||||
<!-- Submit Button -->
|
||||
<div class="text-center">
|
||||
<button type="submit" name="submit" value="submit" class="btn btn-primary btn-lg">Submit</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
@ -1,6 +1,7 @@
|
||||
<legend>Suggestions</legend>
|
||||
{PAGINATION}
|
||||
{LOOP}
|
||||
<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>
|
||||
<div class="well">
|
||||
@ -10,10 +11,11 @@
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{/LOOP}
|
||||
{ALT}
|
||||
{/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>
|
||||
{/ALT}
|
||||
<a href="{ROOT_URL}suggestions/create" class="btn btn-sm btn-primary" role="button">Make a Suggestion</a>
|
||||
</div>
|
@ -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>
|
||||
|
@ -1,19 +1,21 @@
|
||||
<h1>Work in Progress</h1>
|
||||
<hr>
|
||||
{LOOP}
|
||||
<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">
|
||||
<h3 class="wip-project-title">{title}</h3>
|
||||
<p><b>Started: </b><i>{prettyStart}</i></p>
|
||||
<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>
|
||||
{/LOOP}
|
||||
{ALT}
|
||||
{/LOOP}
|
||||
{ALT}
|
||||
<div class="wip-project">
|
||||
<p>None Found</p>
|
||||
</div>
|
||||
{/ALT}
|
||||
{/ALT}
|
||||
</div>
|
@ -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}
|
||||
|
Reference in New Issue
Block a user