mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-02-05 05:59:30 +01:00
feat(trances): system trances log pagination
This commit is contained in:
3
config/env/torrents.js
vendored
3
config/env/torrents.js
vendored
@@ -189,7 +189,8 @@ module.exports = {
|
||||
replies_per_page: 10,
|
||||
topics_search_per_page: 10,
|
||||
torrents_per_page: 15,
|
||||
torrents_comments_per_page: 10
|
||||
torrents_comments_per_page: 10,
|
||||
traces_per_page: 30
|
||||
},
|
||||
resourcesTags: {
|
||||
movie: {
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
*/
|
||||
vm.figureOutItemsToDisplay = function (callback) {
|
||||
vm.doSearch(vm.currentPage, function (items) {
|
||||
console.log(items);
|
||||
vm.filterLength = items.total;
|
||||
vm.pagedItems = items.rows;
|
||||
|
||||
@@ -67,8 +66,6 @@
|
||||
limit: vm.itemsPerPage
|
||||
});
|
||||
|
||||
console.log(fs);
|
||||
|
||||
fs.$search(function (res) {
|
||||
vm.isLoading = false;
|
||||
callback(res);
|
||||
@@ -101,7 +98,7 @@
|
||||
angular.forEach(keysA, function (k) {
|
||||
regex = new RegExp(k, 'ig');
|
||||
t = t.replace(regex, function (match) {
|
||||
return '<span class="keys">' + match + '</span>'
|
||||
return '<span class="keys">' + match + '</span>';
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
function TracesController($scope, $state, $translate, $timeout, Authentication, $filter, NotifycationService, $stateParams, MessagesService,
|
||||
MeanTorrentConfig, ModalConfirmService, marked, $rootScope, TracesService) {
|
||||
var vm = this;
|
||||
vm.itemsPerPageConfig = MeanTorrentConfig.meanTorrentConfig.itemsPerPage;
|
||||
|
||||
/**
|
||||
* If user is not signed in then redirect back home
|
||||
@@ -19,44 +20,55 @@
|
||||
$state.go('authentication.signin');
|
||||
}
|
||||
|
||||
/**
|
||||
* getTraces
|
||||
*/
|
||||
vm.getTraces = function () {
|
||||
TracesService.query(function (data) {
|
||||
vm.traces = data;
|
||||
vm.buildPager();
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* buildPager
|
||||
* pagination init
|
||||
*/
|
||||
vm.buildPager = function () {
|
||||
vm.pagedItems = [];
|
||||
vm.itemsPerPage = 10;
|
||||
vm.itemsPerPage = vm.itemsPerPageConfig.traces_per_page;
|
||||
vm.currentPage = 1;
|
||||
vm.figureOutItemsToDisplay();
|
||||
};
|
||||
|
||||
/**
|
||||
* figureOutItemsToDisplay
|
||||
* @param callback
|
||||
*/
|
||||
vm.figureOutItemsToDisplay = function () {
|
||||
vm.filteredItems = $filter('filter')(vm.traces, {
|
||||
$: vm.search
|
||||
vm.figureOutItemsToDisplay = function (callback) {
|
||||
vm.getTraces(vm.currentPage, function (items) {
|
||||
vm.filterLength = items.total;
|
||||
vm.pagedItems = items.rows;
|
||||
|
||||
if (callback) callback();
|
||||
});
|
||||
vm.filterLength = vm.filteredItems.length;
|
||||
var begin = ((vm.currentPage - 1) * vm.itemsPerPage);
|
||||
var end = begin + vm.itemsPerPage;
|
||||
vm.pagedItems = vm.filteredItems.slice(begin, end);
|
||||
};
|
||||
|
||||
/**
|
||||
* pageChanged
|
||||
*/
|
||||
vm.pageChanged = function () {
|
||||
vm.figureOutItemsToDisplay();
|
||||
var element = angular.element('#top_of_traces_list');
|
||||
|
||||
vm.figureOutItemsToDisplay(function () {
|
||||
$timeout(function () {
|
||||
$('html,body').animate({scrollTop: element[0].offsetTop + 15}, 200);
|
||||
}, 10);
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* getTraces
|
||||
* @param p
|
||||
* @param callback
|
||||
*/
|
||||
vm.getTraces = function (p, callback) {
|
||||
TracesService.get({
|
||||
skip: (p - 1) * vm.itemsPerPage,
|
||||
limit: vm.itemsPerPage
|
||||
}, function (data) {
|
||||
callback(data);
|
||||
});
|
||||
};
|
||||
}
|
||||
}());
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<section class="container" ng-controller="TracesController as vm" ng-init="vm.getTraces();">
|
||||
<section class="container" ng-controller="TracesController as vm" ng-init="vm.buildPager();">
|
||||
<div class="row margin-top-20">
|
||||
<div class="col-sm-12 traces-list">
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pagination-div-top">
|
||||
<div class="pagination-div-top" id="top_of_traces_list">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-7">
|
||||
<ul uib-pagination boundary-links="true" max-size="8" items-per-page="vm.itemsPerPage" total-items="vm.filterLength"
|
||||
|
||||
@@ -17,26 +17,57 @@ var path = require('path'),
|
||||
* @param res
|
||||
*/
|
||||
exports.list = function (req, res) {
|
||||
Trace.find({})
|
||||
.sort('-createdat')
|
||||
.populate('user', 'username displayName')
|
||||
.populate({
|
||||
path: 'content.user',
|
||||
select: 'username displayName',
|
||||
model: 'User'
|
||||
})
|
||||
.populate({
|
||||
path: 'content.forum',
|
||||
model: 'Forum'
|
||||
})
|
||||
.exec(function (err, traces) {
|
||||
var skip = 0;
|
||||
var limit = 0;
|
||||
|
||||
if (req.query.skip !== undefined) {
|
||||
skip = parseInt(req.query.skip, 10);
|
||||
}
|
||||
if (req.query.limit !== undefined) {
|
||||
limit = parseInt(req.query.limit, 10);
|
||||
}
|
||||
|
||||
var countQuery = function (callback) {
|
||||
Trace.count({}, function (err, count) {
|
||||
if (err) {
|
||||
return res.status(422).send({
|
||||
message: errorHandler.getErrorMessage(err)
|
||||
});
|
||||
callback(err, null);
|
||||
} else {
|
||||
callback(null, count);
|
||||
}
|
||||
res.json(traces);
|
||||
});
|
||||
};
|
||||
|
||||
var findQuery = function (callback) {
|
||||
Trace.find({})
|
||||
.sort('-createdat')
|
||||
.populate('user', 'username displayName')
|
||||
.populate({
|
||||
path: 'content.user',
|
||||
select: 'username displayName',
|
||||
model: 'User'
|
||||
})
|
||||
.populate({
|
||||
path: 'content.forum',
|
||||
model: 'Forum'
|
||||
})
|
||||
.skip(skip)
|
||||
.limit(limit)
|
||||
.exec(function (err, traces) {
|
||||
if (err) {
|
||||
callback(err, null);
|
||||
} else {
|
||||
callback(null, traces);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
async.parallel([countQuery, findQuery], function (err, results) {
|
||||
if (err) {
|
||||
return res.status(422).send(err);
|
||||
} else {
|
||||
res.json({rows: results[1], total: results[0]});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user