Skip to content

Commit

Permalink
Fixed a bug where groups were not showing on filter form
Browse files Browse the repository at this point in the history
Implemented Assignee user filter
  • Loading branch information
polonel committed Oct 28, 2015
1 parent 5e53e74 commit c3d4111
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 3 deletions.
5 changes: 3 additions & 2 deletions src/controllers/tickets.js
Original file line number Diff line number Diff line change
Expand Up @@ -175,12 +175,14 @@ ticketsController.filter = function(req, res, next) {
var dateEnd = queryString.de;
var status = queryString.st;
var groups = queryString.gp;
var assignee = queryString.au;

var rawNoPage = req.originalUrl.replace(new RegExp('[?&]page=[^&#]*(#.*)?$'), '$1')
.replace(new RegExp('([?&])page=[^&]*&'), '$1');

if (!_.isUndefined(status) && !_.isArray(status)) status = [status];
if (!_.isUndefined(groups) && !_.isArray(groups)) groups = [groups];
if (!_.isUndefined(assignee) && !_.isArray(assignee)) assignee = [assignee];

var filter = {
subject: subject,
Expand All @@ -190,6 +192,7 @@ ticketsController.filter = function(req, res, next) {
},
status: status,
groups: groups,
assignee: assignee,
raw: rawNoPage
};

Expand Down Expand Up @@ -233,7 +236,6 @@ ticketsController.processor = function(req, res) {
self.content.data.user = req.user;
self.content.data.common = req.viewdata;


var object = processor.object;
object.limit = (object.limit === 1) ? 10 : object.limit;

Expand All @@ -255,7 +257,6 @@ ticketsController.processor = function(req, res) {
function(callback) {
groupSchema.getAllGroupsOfUser(req.user._id, function(err, grps) {
userGroups = grps;
self.content.data.common.groups = grps;
callback(err, grps);
});
},
Expand Down
21 changes: 21 additions & 0 deletions src/helpers/viewdata/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,15 @@ viewController.getData = function(request, cb) {
function(callback) {
viewController.loggedInAccount(request, function(data) {
viewdata.loggedInAccount = data;
callback();
});
},
function(callback) {
viewController.getGroups(request, function(err, data) {
if (err) return callback(null, null);

viewdata.groups = data;

callback();
});
}
Expand Down Expand Up @@ -161,4 +170,16 @@ viewController.loggedInAccount = function(request, callback) {
});
};

viewController.getGroups = function(request, callback) {
var groupSchema = require('../../models/group');
groupSchema.getAllGroupsOfUser(request.user._id, function(err, data) {
if (err) {
winston.debug(err);
callback(err);
}

callback(null, data);
});
};

module.exports = viewController;
9 changes: 9 additions & 0 deletions src/models/ticket.js
Original file line number Diff line number Diff line change
Expand Up @@ -507,6 +507,10 @@ ticketSchema.statics.getTicketsWithObject = function(grpId, object, callback) {
q.where({status: {$in: _status}});
}

if (!_.isUndefined(object.filter) && !_.isUndefined(object.filter.assignee)) {
q.where({assignee: {$in: object.filter.assignee}});
}

if (!_.isUndefined(object.filter) && !_.isUndefined(object.filter.subject)) q.where({subject: new RegExp(object.filter.subject, "i")});

if (!_.isUndefined(object.assignedSelf) && !_.isNull(object.assignedSelf)) q.where('assignee', object.user);
Expand Down Expand Up @@ -552,6 +556,11 @@ ticketSchema.statics.getCountWithObject = function(grpId, object, callback) {
q.where({status: {$in: status} });
}

if (!_.isUndefined(object.filter) && !_.isUndefined(object.filter.assignee)) {
console.log(object.filter.assignee);
q.where({assignee: {$in: object.filter.assignee}});
}

if (!_.isUndefined(object.filter) && !_.isUndefined(object.filter.subject)) q.where({subject: new RegExp(object.filter.subject, "i")});

if (!_.isUndefined(object.assignedSelf) && object.assignedSelf == true && !_.isUndefined(object.assignedUserId) && !_.isNull(object.assignedUserId)) {
Expand Down
5 changes: 5 additions & 0 deletions src/public/js/angularjs/controllers/tickets.js
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,11 @@ define(['angular', 'underscore', 'jquery', 'modules/helpers', 'modules/socket',
querystring += '&gp=' + item;
});

var filterAssignee = $('#ticketFilterForm select#filterAssignee').val();
_.each(filterAssignee, function(item) {
querystring += '&au=' + item;
});

openFilterTicketWindow.closeWindow();
History.pushState(null, null, '/tickets/filter/' + querystring + '&r=' + Math.floor(Math.random() * (99999 - 1 + 1)) + 1);
};
Expand Down
1 change: 0 additions & 1 deletion src/routes/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ function mainRoutes(router, middleware, controllers) {
//Tickets
router.get('/tickets', middleware.redirectToLogin, middleware.loadCommonData, controllers.tickets.getActive, controllers.tickets.processor);
router.get('/tickets/filter', middleware.redirectToLogin, middleware.loadCommonData, controllers.tickets.filter, controllers.tickets.processor);
//router.get('/tickets/filter/:page', middleware.redirectToLogin, middleware.loadCommonData, controllers.tickets.filter, controllers.tickets.processor);
router.get('/tickets/active', middleware.redirectToLogin, middleware.loadCommonData, controllers.tickets.getActive, controllers.tickets.processor);
router.get('/tickets/active/page/:page', middleware.redirectToLogin, middleware.loadCommonData, controllers.tickets.getActive, controllers.tickets.processor);
router.get('/tickets/create', middleware.redirectToLogin, middleware.loadCommonData, controllers.tickets.create);
Expand Down

0 comments on commit c3d4111

Please sign in to comment.