mirror of
https://github.com/KevinMidboe/zoff.git
synced 2026-05-12 08:36:27 +00:00
Previous/next pagination working
This commit is contained in:
@@ -383,6 +383,14 @@ li.disabled span {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.filter-pagination-container {
|
||||
display: flex;
|
||||
justify-content: space-evenly;
|
||||
padding-top: 15px;
|
||||
width: 50%;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.extra-button{
|
||||
margin: 0 4px !important;
|
||||
padding: 0px !important;
|
||||
|
||||
@@ -21,7 +21,7 @@ function removeAllListeners() {
|
||||
socket.removeEventListener(id);
|
||||
}
|
||||
|
||||
function filterPlaylistElements() {
|
||||
function filterPlaylistElements(page) {
|
||||
Helper.ajax({
|
||||
type: "POST",
|
||||
headers: {
|
||||
@@ -30,14 +30,28 @@ function filterPlaylistElements() {
|
||||
url: "/api/search/" + chan.toLowerCase(),
|
||||
data: {
|
||||
searchQuery: document.getElementById("filtersearch_input").value,
|
||||
token: zoff_api_token
|
||||
token: zoff_api_token,
|
||||
page: page
|
||||
},
|
||||
success: function(data){
|
||||
var json = JSON.parse(data);
|
||||
document.querySelector(".filter-results").innerHTML = "";
|
||||
if(json.results.length > 0) {
|
||||
for(var i = 0; i < json.results.length; i++) {
|
||||
document.querySelector(".filter-results").innerHTML += List.generateSong(json.results[i], false, false, true, false, "block", false, true);;
|
||||
if(json.results.search_results.length > 0) {
|
||||
for(var i = 0; i < json.results.search_results.length; i++) {
|
||||
document.querySelector(".filter-results").innerHTML += List.generateSong(json.results.search_results[i], false, false, true, false, "block", false, true);;
|
||||
}
|
||||
if(json.results.next != undefined || json.results.prev != undefined) {
|
||||
document.querySelector(".filter-results").innerHTML += "<div class='filter-pagination-container'></div>"
|
||||
if(json.results.prev != undefined) {
|
||||
document.querySelector(".filter-pagination-container").innerHTML += "<a href='#' class='btn orange prev-filter' data-page='" + json.results.prev + "'>Prev</a>";
|
||||
} else {
|
||||
document.querySelector(".filter-pagination-container").innerHTML += "<a href='#' class='btn orange disabled'>Prev</a>";
|
||||
}
|
||||
if(json.results.next != undefined) {
|
||||
document.querySelector(".filter-pagination-container").innerHTML += "<a href='#' class='btn orange next-filter' data-page='" + json.results.next + "'>Next</a>";
|
||||
} else {
|
||||
document.querySelector(".filter-pagination-container").innerHTML += "<a href='#' class='btn orange disabled'>Next</a>";
|
||||
}
|
||||
}
|
||||
} else {
|
||||
toast("Couldn't find any items with those tags..", "red");
|
||||
|
||||
@@ -697,12 +697,28 @@ function addDynamicListeners() {
|
||||
|
||||
addListener("submit", "#filter-form", function(e) {
|
||||
this.preventDefault();
|
||||
filterPlaylistElements();
|
||||
filterPlaylistElements(1);
|
||||
});
|
||||
|
||||
addListener("click", ".submit-filter-search", function(e) {
|
||||
this.preventDefault();
|
||||
filterPlaylistElements();
|
||||
filterPlaylistElements(1);
|
||||
});
|
||||
|
||||
addListener("click", ".next-filter", function(e) {
|
||||
this.preventDefault();
|
||||
var page = e.getAttribute("data-page");
|
||||
page = parseInt(page);
|
||||
if(page == undefined || isNaN(page)) return;
|
||||
filterPlaylistElements(page);
|
||||
});
|
||||
|
||||
addListener("click", ".prev-filter", function(e) {
|
||||
this.preventDefault();
|
||||
var page = e.getAttribute("data-page");
|
||||
page = parseInt(page);
|
||||
if(page == undefined || isNaN(page)) return;
|
||||
filterPlaylistElements(page);
|
||||
});
|
||||
|
||||
addListener("click", ".delete-context-menu", function(e) {
|
||||
|
||||
@@ -15,6 +15,7 @@ var Search = require(pathThumbnails + '/handlers/search.js');
|
||||
var uniqid = require('uniqid');
|
||||
var Filter = require('bad-words');
|
||||
var filter = new Filter({ placeHolder: 'x'});
|
||||
var paginate = require('mongojs-paginate');
|
||||
|
||||
var _exports = {
|
||||
router: router,
|
||||
@@ -748,6 +749,10 @@ router.route('/api/search/:channel_name/').post(function(req, res) {
|
||||
} else {
|
||||
userpass = "";
|
||||
}
|
||||
var page = 1;
|
||||
if(req.body.hasOwnProperty("page") && req.body.page > 0) {
|
||||
page = req.body.page;
|
||||
}
|
||||
var searchQuery = "";
|
||||
if(req.body.searchQuery == undefined || req.body.searchQuery == "") {
|
||||
var to_send = error.formatting;
|
||||
@@ -800,13 +805,24 @@ router.route('/api/search/:channel_name/').post(function(req, res) {
|
||||
res.status(403).send(error.not_authenticated);
|
||||
return;
|
||||
}
|
||||
db.collection(channel_name).find({tags: {$regex : ".*" + searchQuery + ".*"}}, function(e, results) {
|
||||
if(results.length == 0) {
|
||||
var query = db.collection(channel_name).find({tags: {
|
||||
$regex : ".*" + searchQuery + ".*"
|
||||
}});
|
||||
paginate(query, { limit : 30, page : page }, function(err, result) {
|
||||
if(result.items.length == 0) {
|
||||
res.status(404).send(error.not_found.local);
|
||||
return;
|
||||
}
|
||||
var to_return = error.no_error;
|
||||
to_return.results = results;
|
||||
var to_return = error.no_error
|
||||
to_return.results = {};
|
||||
if(result.hasNext) {
|
||||
to_return.results.next = result.page + 1;
|
||||
}
|
||||
if(result.hasPrevious) {
|
||||
to_return.results.prev = result.page - 1;
|
||||
}
|
||||
to_return.results.search_results = result.items;
|
||||
|
||||
res.status(200).send(to_return);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user