You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.4 KiB
JavaScript

"use strict";
/* globals app, define, ajaxify, socket, bootbox, utils, templates */
define('forum/groups/list', function() {
var Groups = {};
Groups.init = function() {
var groupsEl = $('#groups-list');
groupsEl.on('click', '.list-cover', function() {
var groupName = $(this).parents('[data-group]').attr('data-group');
ajaxify.go('groups/' + utils.slugify(groupName));
});
// Group creation
$('button[data-action="new"]').on('click', function() {
bootbox.prompt('Group Name:', function(name) {
if (name && name.length) {
socket.emit('groups.create', {
name: name
}, function(err) {
if (!err) {
ajaxify.go('groups/' + utils.slugify(name));
} else {
app.alertError(err.message);
}
});
}
});
});
// Group searching
$('#search-text').on('keydown', function(e) {
if (e.keyCode === 13) { Groups.search(); }
});
$('#search-button').on('click', Groups.search);
};
Groups.search = function() {
var groupsEl = $('#groups-list'),
queryEl = $('#search-text'),
sortEl = $('#search-sort');
socket.emit('groups.search', {
query: queryEl.val(),
options: {
expand: true,
sort: sortEl.val()
}
}, function(err, groups) {
templates.parse('partials/groups/list', {
groups: groups
}, function(html) {
groupsEl.empty().append(html);
});
});
};
return Groups;
});