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';
|
$responseType = 'error';
|
||||||
$response = 'There was an error creating your folder.';
|
$response = 'There was an error creating your folder.';
|
||||||
} else {
|
} else {
|
||||||
$responseType = 'success';
|
$responseType = 'id';
|
||||||
$response = 'success';
|
$response = $result;
|
||||||
}
|
}
|
||||||
Views::view( 'api.response', ['response' => json_encode( [ $responseType => $response ], true )]);
|
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 )]);
|
Views::view( 'api.response', ['response' => json_encode( [ $responseType => $response ], true )]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,12 +70,11 @@ class Bookmarks extends Controller {
|
|||||||
$folderObject->title = $folder->title;
|
$folderObject->title = $folder->title;
|
||||||
$folderObject->color = $folder->color;
|
$folderObject->color = $folder->color;
|
||||||
$folderObject->bookmarkListRows = Views::simpleView( 'bookmarks.components.bookmarkListRows', $folderObject->bookmarks );
|
$folderObject->bookmarkListRows = Views::simpleView( 'bookmarks.components.bookmarkListRows', $folderObject->bookmarks );
|
||||||
$panel->panel = Views::simpleView( 'bookmarks.components.bookmarkListPanel', [$folderObject] );
|
$panelArray[] = $folderObject;
|
||||||
$panelArray[] = $panel;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Components::set( 'foldersList', Views::simpleView( 'bookmarks.folders.list', $folders ) );
|
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 ) );
|
Components::set( 'bookmarksList', Views::simpleView( 'bookmarks.bookmarks.list', $bookmarks ) );
|
||||||
return Views::view( 'bookmarks.dash' );
|
return Views::view( 'bookmarks.dash' );
|
||||||
}
|
}
|
||||||
@ -122,7 +121,7 @@ class Bookmarks extends Controller {
|
|||||||
$panel->panel = Views::simpleView( 'bookmarks.components.bookmarkListPanel', [$folderObject] );
|
$panel->panel = Views::simpleView( 'bookmarks.components.bookmarkListPanel', [$folderObject] );
|
||||||
$panelArray[] = $panel;
|
$panelArray[] = $panel;
|
||||||
|
|
||||||
return Views::view( 'bookmarks.components.folderPanelList', $panelArray );
|
return Views::view( 'bookmarks.bookmarks.listPage', $panelArray );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function createBookmark( $id = null ) {
|
public function createBookmark( $id = null ) {
|
||||||
@ -227,7 +226,7 @@ class Bookmarks extends Controller {
|
|||||||
if ( $folder == false ) {
|
if ( $folder == false ) {
|
||||||
$folders = self::$folders->byUser();
|
$folders = self::$folders->byUser();
|
||||||
Components::set( 'foldersList', Views::simpleView( 'bookmarks.folders.list', $folders ) );
|
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 ) {
|
if ( $folder->createdBy != App::$activeUser->ID ) {
|
||||||
Session::flash( 'error', 'You do not have permission to view this folder.' );
|
Session::flash( 'error', 'You do not have permission to view this folder.' );
|
||||||
|
@ -171,4 +171,23 @@ class Folders extends DatabaseModel {
|
|||||||
}
|
}
|
||||||
return $out;
|
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}
|
{privacy}
|
||||||
</td>
|
</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/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>
|
<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>
|
</tr>
|
||||||
{/LOOP}
|
{/LOOP}
|
||||||
@ -34,4 +34,7 @@
|
|||||||
{/ALT}
|
{/ALT}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</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="offset-md-2 col-8 py-3">
|
||||||
|
{LOOP}
|
||||||
<div class="row">
|
|
||||||
<div class="offset-md-2 col-8 py-3">
|
|
||||||
<legend class="">Bookmark List</legend>
|
<legend class="">Bookmark List</legend>
|
||||||
{bookmarksList}
|
<div class="col-6 col-md-12">
|
||||||
</div>
|
{panel}
|
||||||
|
</div>
|
||||||
|
{/LOOP}
|
||||||
|
{ALT}
|
||||||
|
<div class="col-12">
|
||||||
|
<p>no folders</p>
|
||||||
|
</div>
|
||||||
|
{/ALT}
|
||||||
</div>
|
</div>
|
@ -100,7 +100,7 @@
|
|||||||
{hideBtn}
|
{hideBtn}
|
||||||
{archiveBtn}
|
{archiveBtn}
|
||||||
<a href="{ROOT_URL}bookmarks/editBookmark/{ID}" class="btn btn-warning btn-sm me-2" data-bs-toggle="tooltip" title="Edit Bookmark">
|
<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>
|
||||||
<a href="{ROOT_URL}bookmarks/deleteBookmark/{ID}" class="btn btn-danger btn-sm" data-bs-toggle="tooltip" title="Delete Bookmark">
|
<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
|
<i class="fa fa-trash"></i> Delete
|
||||||
|
@ -1,21 +1,32 @@
|
|||||||
<div class="card panel-{color}">
|
{LOOP}
|
||||||
<div class="card-header" data-bs-target="#Collapse{ID}" data-bs-toggle="collapse" aria-expanded="true" aria-controls="#Collapse{ID}">
|
<div class="col-xlg-6 col-lg-6 col-md-6 col-sm-6 bookmark-card">
|
||||||
{title}
|
<div class="card m-3 accordion">
|
||||||
</div>
|
<div class="accordion-item">
|
||||||
<div id="Collapse{ID}" class="panel-collapse collapse in" style="width:100%; position: relative;" role="tabpanel" aria-expanded="true">
|
<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}">
|
||||||
<div class="card-body">
|
{title}
|
||||||
<ul class="list-group">
|
</div>
|
||||||
{bookmarkListRows}
|
<div id="Collapse{ID}" class="accordion-collapse collapse show" style="width:100%; position: relative;">
|
||||||
</ul>
|
<div class="card-body accordion-body context-other-bg p-2">
|
||||||
</div>
|
<ul class="list-group">
|
||||||
<div class="card-footer">
|
{bookmarkListRows}
|
||||||
<a href="{ROOT_URL}bookmarks/createBookmark/{ID}" class="btn btn-sm btn-success"><i class="fa fa-fw fa-plus"></i></a></td>
|
</ul>
|
||||||
<span class="float-right">
|
</div>
|
||||||
<a href="{ROOT_URL}bookmarks/bookmarks/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-list"></i></a>
|
<div class="card-footer d-flex justify-content-center align-items-center context-main-bg">
|
||||||
<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/createBookmark/{ID}" class="btn btn-sm btn-success"><i class="fa fa-fw fa-plus"></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>
|
<span class="ms-auto">
|
||||||
<a href="{ROOT_URL}bookmarks/deleteFolder/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a></td>
|
<a href="{ROOT_URL}bookmarks/bookmarks/{ID}" class="btn btn-sm btn-primary"><i class="fa fa-fw fa-list"></i></a>
|
||||||
</span>
|
<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"></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>
|
</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}
|
{LOOP}
|
||||||
<li class="list-group-item list-group-item-{color}">
|
<li class="list-group-item mb-1 context-main-b bg-{color}">
|
||||||
<a href="{ROOT_URL}bookmarks/bookmarks/{ID}" class="btn btn-sm">{iconHtml}</a>
|
<a href="{ROOT_URL}bookmarks/bookmark/{ID}" class="context-main">{iconHtml}</a>
|
||||||
<a href="{url}" class="list-group"> {title}</a>
|
<a href="{url}"> {title}</a>
|
||||||
<span class="float-right">
|
<span class="float-end">
|
||||||
{hideBtn}
|
{hideBtn}
|
||||||
{archiveBtn}
|
{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>
|
<a href="{ROOT_URL}bookmarks/deleteBookmark/{ID}" class="btn btn-sm btn-danger"><i class="fa fa-fw fa-trash"></i></a>
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
{/LOOP}
|
{/LOOP}
|
||||||
{ALT}
|
{ALT}
|
||||||
<li class="list-group-item">
|
<li class="list-group-item py-1">
|
||||||
<a href="#" class="list-group">No Bookmarks</a>
|
<p class="list-group text-center">No Bookmarks</p>
|
||||||
</li>
|
</li>
|
||||||
{/ALT}
|
{/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="row mt-4">
|
||||||
<div class="offset-md-2 col-4 py-3">
|
<div class="offset-md-1 col-5 mr-2 py-3 context-main-bg">
|
||||||
<legend class="">Unsorted Bookmarks</legend>
|
<legend class="text-center">Unsorted Bookmarks</legend>
|
||||||
{bookmarksList}
|
{bookmarksList}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-4 py-3">
|
<div class="col-5 py-3 ml-2 context-main-bg">
|
||||||
<legend class="">Folders List</legend>
|
<legend class="text-center">Folders List</legend>
|
||||||
{foldersList}
|
{foldersList}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row mb-4 mt-4">
|
||||||
<div class="offset-md-2 col-8 py-3">
|
<div class="offset-md-1 col-10 py-3 context-main-bg">
|
||||||
<legend class="">Bookmarks</legend>
|
<legend class="text-center">Bookmarks</legend>
|
||||||
{folderPanels}
|
<hr>
|
||||||
|
<div class="row g-3" data-masonry='{ "percentPosition": false }' id="bookmarkSort">
|
||||||
|
{folderPanels}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
@ -2,9 +2,9 @@
|
|||||||
<table class="table context-main">
|
<table class="table context-main">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width: 35%">Title</th>
|
<th class="text-center" style="width: 35%">Title</th>
|
||||||
<th style="width: 20%">Privacy</th>
|
<th class="text-center" style="width: 20%">Privacy</th>
|
||||||
<th style="width: 30%">Description</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>
|
<th style="width: 5%"></th>
|
||||||
<th style="width: 5%"></th>
|
<th style="width: 5%"></th>
|
||||||
@ -13,11 +13,11 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
{LOOP}
|
{LOOP}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-center">{title}</td>
|
<td class="text-center">{prettyTitle}</td>
|
||||||
<td class="text-center">{privacy}</td>
|
<td class="text-center">{prettyPrivacy}</td>
|
||||||
<td>{description}</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/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>
|
<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>
|
</tr>
|
||||||
{/LOOP}
|
{/LOOP}
|
||||||
@ -30,4 +30,6 @@
|
|||||||
{/ALT}
|
{/ALT}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</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="row">
|
||||||
<div class="offset-md-2 col-8 py-3">
|
<div class="offset-md-2 col-8 py-3 context-main-bg mt-4">
|
||||||
<legend class="">Folders List</legend>
|
<div class="text-center">
|
||||||
|
<legend class="">Folders List</legend>
|
||||||
|
</div>
|
||||||
{foldersList}
|
{foldersList}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
@ -59,7 +59,7 @@
|
|||||||
<i class="fa fa-list"></i> Bookmarks
|
<i class="fa fa-list"></i> Bookmarks
|
||||||
</a>
|
</a>
|
||||||
<a href="{ROOT_URL}bookmarks/editFolder/{ID}" class="btn btn-warning btn-sm me-2" data-bs-toggle="tooltip" title="Edit User">
|
<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>
|
||||||
<a href="{ROOT_URL}bookmarks/deleteFolder/{ID}" class="btn btn-danger btn-sm" data-bs-toggle="tooltip" title="Delete User">
|
<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
|
<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/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/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>
|
<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>
|
<li class="nav-item context-main-bg mx-1"><a href="{ROOT_URL}bookmarks/folders/" class="nav-link">All</a></li>
|
||||||
{LOOP}
|
{LOOP}
|
||||||
<li class="nav-item context-main-bg mx-1"><a href="{ROOT_URL}bookmarks/bookmarks/{ID}" class="nav-link">{title}</a></li>
|
<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="container">
|
||||||
<div class="row">
|
<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="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">
|
||||||
<div class="card-header">
|
<div class="card-header bg-dark">
|
||||||
<h3 class="card-title">Membership Product</h3>
|
<h3 class="card-title">Membership Product</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
@ -32,8 +32,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<div class="card panel-primary">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header bg-primary">
|
||||||
<h3>{name} Monthly</h3>
|
<h3>{name} Monthly</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
@ -45,8 +45,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<div class="card panel-primary">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header bg-primary">
|
||||||
<h3>{name} Yearly</h3>
|
<h3>{name} Yearly</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
@ -15,8 +15,8 @@
|
|||||||
<h2 class="text-center">Affordable Plans</h2>
|
<h2 class="text-center">Affordable Plans</h2>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<div class="card panel-success">
|
<div class="card">
|
||||||
<div class="card-header">{name} Monthly Plan</div>
|
<div class="card-header bg-success">{name} Monthly Plan</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<p>{prettyPriceMonthly}/month</p>
|
<p>{prettyPriceMonthly}/month</p>
|
||||||
<p>All pro features unlocked</p>
|
<p>All pro features unlocked</p>
|
||||||
@ -25,8 +25,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<div class="card panel-info">
|
<div class="card">
|
||||||
<div class="card-header">{name} Yearly Plan</div>
|
<div class="card-header bg-info">{name} Yearly Plan</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<p>{prettyPriceYearly}/year</p>
|
<p>{prettyPriceYearly}/year</p>
|
||||||
<p>Save {prettySavings} annually!</p>
|
<p>Save {prettySavings} annually!</p>
|
||||||
|
@ -19,7 +19,7 @@ use TheTempusProject\Houdini\Classes\Navigation;
|
|||||||
use TheTempusProject\Houdini\Classes\Components;
|
use TheTempusProject\Houdini\Classes\Components;
|
||||||
use TheTempusProject\Classes\AdminController;
|
use TheTempusProject\Classes\AdminController;
|
||||||
use TheTempusProject\Models\Review;
|
use TheTempusProject\Models\Review;
|
||||||
use TheTempusProject\Models\Reviewcategory;
|
use TheTempusProject\Models\ReviewCategory;
|
||||||
use TheTempusProject\Classes\Forms;
|
use TheTempusProject\Classes\Forms;
|
||||||
|
|
||||||
class Reviews extends AdminController {
|
class Reviews extends AdminController {
|
||||||
@ -30,7 +30,7 @@ class Reviews extends AdminController {
|
|||||||
parent::__construct();
|
parent::__construct();
|
||||||
self::$title = 'Admin - Reviews';
|
self::$title = 'Admin - Reviews';
|
||||||
self::$reviews = new Review;
|
self::$reviews = new Review;
|
||||||
self::$categories = new Reviewcategory;
|
self::$categories = new ReviewCategory;
|
||||||
$view = Navigation::activePageSelect( 'nav.admin', '/admin/reviews' );
|
$view = Navigation::activePageSelect( 'nav.admin', '/admin/reviews' );
|
||||||
Components::set( 'ADMINNAV', $view );
|
Components::set( 'ADMINNAV', $view );
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ use TheTempusProject\Models\Review;
|
|||||||
use TheTempusProject\TheTempusProject as App;
|
use TheTempusProject\TheTempusProject as App;
|
||||||
use TheTempusProject\Houdini\Classes\Components;
|
use TheTempusProject\Houdini\Classes\Components;
|
||||||
use TheTempusProject\Houdini\Classes\Template;
|
use TheTempusProject\Houdini\Classes\Template;
|
||||||
use TheTempusProject\Models\Reviewcategory;
|
use TheTempusProject\Models\ReviewCategory;
|
||||||
use TheTempusProject\Houdini\Classes\Forms as HoudiniForms;
|
use TheTempusProject\Houdini\Classes\Forms as HoudiniForms;
|
||||||
|
|
||||||
class Reviews extends Controller {
|
class Reviews extends Controller {
|
||||||
@ -33,7 +33,7 @@ class Reviews extends Controller {
|
|||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
self::$title = 'Reviews - {SITENAME}';
|
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 ) {
|
if ( ! App::$isLoggedIn ) {
|
||||||
Session::flash( 'notice', 'You must be logged in to review products.' );
|
Session::flash( 'notice', 'You must be logged in to review products.' );
|
||||||
@ -42,7 +42,7 @@ class Reviews extends Controller {
|
|||||||
|
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
self::$reviews = new Review;
|
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_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" />') );
|
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() {
|
public function index() {
|
||||||
$reviews = Views::simpleView( 'reviews.list', self::$reviews->byUser() );
|
$reviews = Views::simpleView( 'reviews.list', self::$reviews->byUser() );
|
||||||
Components::set( 'reviews', $reviews );
|
Components::set( 'reviews', $reviews );
|
||||||
Views::view( 'reviews.index' );
|
Views::view( 'reviews.list' );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function review( $slug = null ) {
|
public function review( $slug = null ) {
|
||||||
|
@ -14,7 +14,7 @@ namespace TheTempusProject\Models;
|
|||||||
|
|
||||||
use TheTempusProject\Bedrock\Classes\Config;
|
use TheTempusProject\Bedrock\Classes\Config;
|
||||||
use TheTempusProject\Bedrock\Functions\Check;
|
use TheTempusProject\Bedrock\Functions\Check;
|
||||||
use TheTempusProject\Canary\Canary as Debug;
|
use TheTempusProject\Canary\Bin\Canary as Debug;
|
||||||
use TheTempusProject\Classes\DatabaseModel;
|
use TheTempusProject\Classes\DatabaseModel;
|
||||||
use TheTempusProject\Plugins\Reviews as Plugin;
|
use TheTempusProject\Plugins\Reviews as Plugin;
|
||||||
use TheTempusProject\TheTempusProject as App;
|
use TheTempusProject\TheTempusProject as App;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?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.
|
* 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\Classes\Config;
|
||||||
use TheTempusProject\Bedrock\Functions\Check;
|
use TheTempusProject\Bedrock\Functions\Check;
|
||||||
use TheTempusProject\Canary\Canary as Debug;
|
use TheTempusProject\Canary\Bin\Canary as Debug;
|
||||||
use TheTempusProject\Classes\DatabaseModel;
|
use TheTempusProject\Classes\DatabaseModel;
|
||||||
use TheTempusProject\Plugins\Reviews as Plugin;
|
use TheTempusProject\Plugins\Reviews as Plugin;
|
||||||
use TheTempusProject\TheTempusProject as App;
|
use TheTempusProject\TheTempusProject as App;
|
||||||
use TheTempusProject\Canary\Classes\CustomException;
|
use TheTempusProject\Canary\Classes\CustomException;
|
||||||
|
|
||||||
class Reviewcategory extends DatabaseModel {
|
class ReviewCategory extends DatabaseModel {
|
||||||
public $tableName = 'review_categories';
|
public $tableName = 'review_categories';
|
||||||
public $databaseMatrix = [
|
public $databaseMatrix = [
|
||||||
[ 'name', 'varchar', '128' ],
|
[ 'name', 'varchar', '128' ],
|
@ -37,7 +37,7 @@ class Reviews extends Plugin {
|
|||||||
'url' => '{ROOT_URL}admin/reviews',
|
'url' => '{ROOT_URL}admin/reviews',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
public $footer_links = [
|
public $contact_footer_links = [
|
||||||
[
|
[
|
||||||
'text' => 'Reviews',
|
'text' => 'Reviews',
|
||||||
'url' => '{ROOT_URL}reviews/index/',
|
'url' => '{ROOT_URL}reviews/index/',
|
||||||
|
@ -16,9 +16,9 @@
|
|||||||
<td align="center">{ID}</td>
|
<td align="center">{ID}</td>
|
||||||
<td>{name}</td>
|
<td>{name}</td>
|
||||||
<td>{slug}</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/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="glyphicon glyphicon-edit"></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="glyphicon glyphicon-trash"></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>
|
</tr>
|
||||||
{/LOOP}
|
{/LOOP}
|
||||||
{ALT}
|
{ALT}
|
||||||
|
@ -33,9 +33,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-footer">
|
<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/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="glyphicon glyphicon-eye-closed"></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="glyphicon glyphicon-trash"></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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -16,9 +16,9 @@
|
|||||||
<td align="center">{ID}</td>
|
<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><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 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/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="glyphicon glyphicon-eye-closed"></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="glyphicon glyphicon-trash"></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>
|
</tr>
|
||||||
{/LOOP}
|
{/LOOP}
|
||||||
{ALT}
|
{ALT}
|
||||||
|
@ -1 +0,0 @@
|
|||||||
{reviews}
|
|
@ -1,32 +1,38 @@
|
|||||||
<legend>Reviews</legend>
|
<div class="col-8 mx-auto p-4 rounded shadow-sm mb-5 context-main-bg mt-4 context-main">
|
||||||
<table class="table table-striped">
|
<legend>Reviews</legend>
|
||||||
<thead>
|
<hr>
|
||||||
<tr>
|
<p>
|
||||||
<th style="width: 10%">ID</th>
|
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.
|
||||||
<th style="width: 30%">Title</th>
|
</p>
|
||||||
<th style="width: 30%">Rating</th>
|
<p>
|
||||||
<th style="width: 10%"></th>
|
On this page you can find <strong>your</strong> reviews to see any responses or make edits.
|
||||||
<th style="width: 10%"></th>
|
</p>
|
||||||
<th style="width: 10%"></th>
|
<table class="table context-main">
|
||||||
</tr>
|
<thead>
|
||||||
</thead>
|
<tr>
|
||||||
<tbody>
|
<th style="width: 60%">Title</th>
|
||||||
{LOOP}
|
<th style="width: 10%">Rating</th>
|
||||||
<tr>
|
<th style="width: 10%"></th>
|
||||||
<td align="center">{ID}</td>
|
<th style="width: 10%"></th>
|
||||||
<td><a href="{ROOT_URL}admin/reviews/reviewView/{ID}" class="btn btn-sm btn-primary" role="button">{title}</a></td>
|
<th style="width: 10%"></th>
|
||||||
<td align="center">{rating}</td>
|
</tr>
|
||||||
<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>
|
</thead>
|
||||||
<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>
|
<tbody>
|
||||||
<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>
|
{LOOP}
|
||||||
</tr>
|
<tr>
|
||||||
{/LOOP}
|
<td><a href="{ROOT_URL}admin/reviews/reviewView/{ID}" class="btn btn-sm btn-primary" role="button">{title}</a></td>
|
||||||
{ALT}
|
<td align="center">{rating}</td>
|
||||||
<tr>
|
<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 align="center" colspan="6">
|
<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>
|
||||||
No results to show.
|
</tr>
|
||||||
</td>
|
{/LOOP}
|
||||||
</tr>
|
{ALT}
|
||||||
{/ALT}
|
<tr>
|
||||||
</tbody>
|
<td align="center" colspan="6">
|
||||||
</table>
|
No results to show.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{/ALT}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
@ -37,7 +37,7 @@ class Suggestions extends Plugin {
|
|||||||
'url' => '{ROOT_URL}admin/suggestions',
|
'url' => '{ROOT_URL}admin/suggestions',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
public $footer_links = [
|
public $contact_footer_links = [
|
||||||
[
|
[
|
||||||
'text' => 'Suggestions',
|
'text' => 'Suggestions',
|
||||||
'url' => '{ROOT_URL}suggestions/index',
|
'url' => '{ROOT_URL}suggestions/index',
|
||||||
|
@ -29,12 +29,12 @@
|
|||||||
<td align="center">{DTC}{approvedOn}{/DTC}</td>
|
<td align="center">{DTC}{approvedOn}{/DTC}</td>
|
||||||
<td align="center">{approvedByName}</td>
|
<td align="center">{approvedByName}</td>
|
||||||
<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/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="glyphicon glyphicon-remove"></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>
|
||||||
<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/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="glyphicon glyphicon-trash"></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>
|
||||||
<td>
|
<td>
|
||||||
<input type="checkbox" value="{ID}" name="BR_[]">
|
<input type="checkbox" value="{ID}" name="BR_[]">
|
||||||
|
@ -1,16 +1,32 @@
|
|||||||
<form action="" method="post" class="form-horizontal">
|
<div class="context-main-bg container py-4 mt-4">
|
||||||
<legend>Submit a Suggestion</legend>
|
<h2 class="text-center mb-4">Make a suggestion</h2>
|
||||||
<div class="form-group">
|
<p class="col-lg-6 offset-md-3">
|
||||||
<label for="title" class="col-lg-3 control-label">Title</label>
|
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!
|
||||||
<div class="col-lg-3">
|
</p>
|
||||||
<input type="text" class="form-check-input" name="title" id="title" value="{title}">
|
<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>
|
||||||
</div>
|
|
||||||
<div class="form-group center-block">
|
<!-- Feedback -->
|
||||||
<div class="col-lg-8 col-lg-offset-2">
|
<div class="mb-3 row">
|
||||||
<textarea class="form-control" name="suggestion" maxlength="2000" rows="4" cols="50" id="suggestion"></textarea>
|
<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>
|
</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}">
|
<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,19 +1,21 @@
|
|||||||
<legend>Suggestions</legend>
|
<div class="col-10 offset-md-1 context-main-bg p-4 my-5">
|
||||||
{PAGINATION}
|
<legend class="text-center">Suggestions</legend>
|
||||||
{LOOP}
|
<hr>
|
||||||
<div class="blog-post">
|
{LOOP}
|
||||||
<h2 class="blog-post-title"><a href="{ROOT_URL}suggestions/view/{ID}">{title}</a></h2>
|
<div class="blog-post">
|
||||||
<div class="well">
|
<h2 class="blog-post-title"><a href="{ROOT_URL}suggestions/view/{ID}">{title}</a></h2>
|
||||||
{suggestion}
|
<div class="well">
|
||||||
<p class="blog-post-meta">
|
{suggestion}
|
||||||
Suggested on <i>{DTC date}{suggestedOn}{/DTC}</i> by <a href="{ROOT_URL}home/profile/{author}"><strong>{submittedBy}</strong></a>
|
<p class="blog-post-meta">
|
||||||
</p>
|
Suggested on <i>{DTC date}{suggestedOn}{/DTC}</i> by <a href="{ROOT_URL}home/profile/{author}"><strong>{submittedBy}</strong></a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
{/LOOP}
|
||||||
{/LOOP}
|
{ALT}
|
||||||
{ALT}
|
<div class="blog-post">
|
||||||
<div class="blog-post">
|
<p class="blog-post-meta py-3 text-center">No Suggestions Found.</p>
|
||||||
<p class="blog-post-meta">No Suggestions Found.</p>
|
</div>
|
||||||
</div>
|
{/ALT}
|
||||||
{/ALT}
|
<a href="{ROOT_URL}suggestions/create" class="btn btn-sm btn-primary" role="button">Make a Suggestion</a>
|
||||||
<a href="{ROOT_URL}suggestions/create" class="btn btn-sm btn-primary" role="button">Create</a>
|
</div>
|
@ -20,8 +20,8 @@
|
|||||||
<td><a href="{ROOT_URL}admin/wip/view/{ID}">{title}</a></td>
|
<td><a href="{ROOT_URL}admin/wip/view/{ID}">{title}</a></td>
|
||||||
<td>{progress}</td>
|
<td>{progress}</td>
|
||||||
<td>{startDate}</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/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="glyphicon glyphicon-trash"></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>
|
<td>
|
||||||
<input type="checkbox" value="{ID}" name="P_[]">
|
<input type="checkbox" value="{ID}" name="P_[]">
|
||||||
</td>
|
</td>
|
||||||
|
@ -1,19 +1,21 @@
|
|||||||
<h1>Work in Progress</h1>
|
<div class="col-8 mx-auto p-4 rounded shadow-sm mt-5 context-main-bg">
|
||||||
<hr>
|
<h1 class="text-center">Work in Progress</h1>
|
||||||
{LOOP}
|
<hr>
|
||||||
<div class="wip-project">
|
{LOOP}
|
||||||
<h3 class="wip-project-title">{title}</h3>
|
<div class="wip-project">
|
||||||
<p><b>Started: </b><i>{prettyStart}</i></p>
|
<h3 class="wip-project-title">{title}</h3>
|
||||||
<div class="progress">
|
<p><b>Started: </b><i>{prettyStart}</i></p>
|
||||||
<div class="progress-bar" role="progressbar" style="width: {progress}%" aria-valuenow="{progress}" aria-valuemin="0" aria-valuemax="100"></div>
|
<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 mt-3">
|
||||||
|
{description}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="well">
|
{/LOOP}
|
||||||
{description}
|
{ALT}
|
||||||
|
<div class="wip-project">
|
||||||
|
<p>None Found</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
{/ALT}
|
||||||
{/LOOP}
|
</div>
|
||||||
{ALT}
|
|
||||||
<div class="wip-project">
|
|
||||||
<p>None Found</p>
|
|
||||||
</div>
|
|
||||||
{/ALT}
|
|
@ -72,6 +72,7 @@
|
|||||||
<!-- 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="{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 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>
|
<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 -->
|
||||||
{TEMPLATE_JS_INCLUDES}
|
{TEMPLATE_JS_INCLUDES}
|
||||||
|
Reference in New Issue
Block a user