mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-07-04 12:18:22 +02:00
feat(tickets): count opened tickets
This commit is contained in:
@@ -6,16 +6,29 @@
|
||||
.controller('MessageTicketController', MessageTicketController);
|
||||
|
||||
MessageTicketController.$inject = ['$scope', '$state', '$timeout', '$translate', 'Authentication', 'MessageTicketsService', 'ModalConfirmService', 'NotifycationService', 'marked',
|
||||
'DebugConsoleService', 'MeanTorrentConfig', '$filter', '$rootScope'];
|
||||
'DebugConsoleService', 'MeanTorrentConfig', '$filter', '$rootScope', 'MailTicketsService'];
|
||||
|
||||
function MessageTicketController($scope, $state, $timeout, $translate, Authentication, MessageTicketsService, ModalConfirmService, NotifycationService, marked,
|
||||
mtDebug, MeanTorrentConfig, $filter, $rootScope) {
|
||||
mtDebug, MeanTorrentConfig, $filter, $rootScope, MailTicketsService) {
|
||||
var vm = this;
|
||||
$rootScope.$state = $state;
|
||||
vm.user = Authentication.user;
|
||||
vm.itemsPerPageConfig = MeanTorrentConfig.meanTorrentConfig.itemsPerPage;
|
||||
vm.supportConfig = MeanTorrentConfig.meanTorrentConfig.support;
|
||||
|
||||
/**
|
||||
* getOpenedTicketsNumber
|
||||
*/
|
||||
vm.getOpenedTicketsNumber = function () {
|
||||
MessageTicketsService.getOpenedCount(function (res) {
|
||||
console.log(res);
|
||||
$scope.messageOpened = res.opened;
|
||||
});
|
||||
MailTicketsService.getOpenedCount(function (res) {
|
||||
console.log(res);
|
||||
$scope.mailOpened = res.opened;
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* buildPager
|
||||
@@ -35,6 +48,7 @@
|
||||
vm.getMessageTickets(vm.currentPage, function (items) {
|
||||
vm.filterLength = items.total;
|
||||
vm.pagedItems = items.rows;
|
||||
$rootScope.messageOpened = items.opened;
|
||||
|
||||
if (callback) callback();
|
||||
});
|
||||
|
||||
@@ -28,6 +28,10 @@
|
||||
params: {
|
||||
messageTicketId: '@messageTicketId'
|
||||
}
|
||||
},
|
||||
getOpenedCount: {
|
||||
method: 'GET',
|
||||
url: '/api/messageTickets/openedCount'
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -44,6 +48,10 @@
|
||||
}, {
|
||||
update: {
|
||||
method: 'PUT'
|
||||
},
|
||||
getOpenedCount: {
|
||||
method: 'GET',
|
||||
url: '/api/mailTickets/openedCount'
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<section ng-controller="MessageTicketController as vm">
|
||||
<section ng-controller="MessageTicketController as vm" ng-init="vm.getOpenedTicketsNumber()">
|
||||
<div class="pagetop">
|
||||
<div class="container padding-top-30 padding-bottom-30">
|
||||
<div class="row">
|
||||
@@ -6,14 +6,14 @@
|
||||
<a class="btn btn-default btn-lg btn-block" ui-sref="admin.tickets.support.message"
|
||||
ui-sref-active="btn-success btn-un-default"
|
||||
ng-class="{'btn-success btn-un-default': $state.current.name.indexOf('viewMessage')>=0}">
|
||||
{{'SUPPORT.TITLE_MESSAGE_SUPPORT' | translate}} <span class="badge">{{vm.user.followers.length}}</span>
|
||||
{{'SUPPORT.TITLE_MESSAGE_SUPPORT' | translate}} <span class="badge">{{messageOpened || 0}}</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-4">
|
||||
<a class="btn btn-default btn-lg btn-block" ui-sref="admin.tickets.support.mail"
|
||||
ui-sref-active="btn-success btn-un-default"
|
||||
ng-class="{'btn-success btn-un-default': $state.current.name.indexOf('viewMail')}>=0">
|
||||
{{'SUPPORT.TITLE_MAIL_SUPPORT' | translate}} <span class="badge badge_default">{{vm.user.following.length}}</span>
|
||||
{{'SUPPORT.TITLE_MAIL_SUPPORT' | translate}} <span class="badge badge_default">{{mailOpened || 0}}</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -171,6 +171,23 @@ exports.createReply = function (req, res) {
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* openedCount
|
||||
* @param req
|
||||
* @param res
|
||||
*/
|
||||
exports.openedCount = function (req, res) {
|
||||
MailTicket.count({status: 'open'}, function (err, count) {
|
||||
if (err) {
|
||||
return res.status(422).send({
|
||||
message: errorHandler.getErrorMessage(err)
|
||||
});
|
||||
} else {
|
||||
res.json({opened: count});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Invitation middleware
|
||||
*/
|
||||
|
||||
@@ -86,6 +86,16 @@ exports.list = function (req, res) {
|
||||
});
|
||||
};
|
||||
|
||||
var countUnSolvedMessage = function (callback) {
|
||||
MessageTicket.count({status: 'open'}, function (err, count) {
|
||||
if (err) {
|
||||
callback(err, null);
|
||||
} else {
|
||||
callback(null, count);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
var findMessage = function (callback) {
|
||||
MessageTicket.find(condition)
|
||||
.sort('-updatedAt -createdAt')
|
||||
@@ -107,11 +117,11 @@ exports.list = function (req, res) {
|
||||
});
|
||||
};
|
||||
|
||||
async.parallel([countMessage, findMessage], function (err, results) {
|
||||
async.parallel([countMessage, findMessage, countUnSolvedMessage], function (err, results) {
|
||||
if (err) {
|
||||
return res.status(422).send(err);
|
||||
} else {
|
||||
res.json({rows: results[1], total: results[0]});
|
||||
res.json({rows: results[1], total: results[0], opened: results[2]});
|
||||
}
|
||||
});
|
||||
};
|
||||
@@ -260,6 +270,23 @@ function move(oldPath, newPath, callback) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* openedCount
|
||||
* @param req
|
||||
* @param res
|
||||
*/
|
||||
exports.openedCount = function (req, res) {
|
||||
MessageTicket.count({status: 'open'}, function (err, count) {
|
||||
if (err) {
|
||||
return res.status(422).send({
|
||||
message: errorHandler.getErrorMessage(err)
|
||||
});
|
||||
} else {
|
||||
res.json({opened: count});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* uploadTicketImage
|
||||
* @param req
|
||||
|
||||
@@ -22,10 +22,13 @@ exports.invokeRolesPolicies = function () {
|
||||
{resources: '/api/messageTickets/solved/:messageTicketId', permissions: '*'},
|
||||
{resources: '/api/messageTickets/:messageTicketId', permissions: '*'},
|
||||
{resources: '/api/messageTickets/:messageTicketId/:replyId', permissions: '*'},
|
||||
{resources: '/api/messageTickets/uploadTicketImage', permissions: '*'},
|
||||
{resources: '/api/messageTickets/openedCount', permissions: '*'},
|
||||
|
||||
{resources: '/api/mailTickets', permissions: '*'},
|
||||
{resources: '/api/mailTickets/:mailTicketId', permissions: '*'},
|
||||
{resources: '/api/mailTickets/:mailTicketId/:replyId', permissions: '*'},
|
||||
{resources: '/api/messageTickets/uploadTicketImage', permissions: '*'}
|
||||
{resources: '/api/mailTickets/openedCount', permissions: '*'}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -15,6 +15,9 @@ module.exports = function (app) {
|
||||
app.route('/api/messageTickets/uploadTicketImage').all(ticketsPolicy.isAllowed)
|
||||
.post(messageTickets.uploadTicketImage);
|
||||
|
||||
app.route('/api/messageTickets/openedCount').all(ticketsPolicy.isAllowed)
|
||||
.get(messageTickets.openedCount);
|
||||
|
||||
app.route('/api/messageTickets/handle/:messageTicketId').all(ticketsPolicy.isAllowed)
|
||||
.put(messageTickets.handle);
|
||||
|
||||
@@ -36,6 +39,9 @@ module.exports = function (app) {
|
||||
.get(mailTickets.list)
|
||||
.delete(mailTickets.delete);
|
||||
|
||||
app.route('/api/mailTickets/openedCount').all(ticketsPolicy.isAllowed)
|
||||
.get(mailTickets.openedCount);
|
||||
|
||||
app.route('/api/mailTickets/:mailTicketId').all(ticketsPolicy.isAllowed)
|
||||
.get(mailTickets.read)
|
||||
.delete(mailTickets.delete)
|
||||
|
||||
Reference in New Issue
Block a user