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
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;
|
|
}); |