mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-03-13 16:10:43 +01:00
Merge branch 'master' into 0.7.0
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
"use strict";
|
||||
/* globals app, define, ajaxify, socket, bootbox, utils */
|
||||
/* globals app, define, ajaxify, socket, bootbox, utils, templates */
|
||||
|
||||
define('forum/groups/list', function() {
|
||||
var Groups = {};
|
||||
@@ -29,6 +29,32 @@ define('forum/groups/list', function() {
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Group searching
|
||||
$('#search-text').on('keydown', function(e) {
|
||||
if (e.keyCode === 13) { Groups.search($(this).val()); }
|
||||
});
|
||||
|
||||
$('#search-button').on('click', function() {
|
||||
Groups.search($(this).siblings('input').val());
|
||||
});
|
||||
};
|
||||
|
||||
Groups.search = function(query) {
|
||||
var groupsEl = $('.groups.row');
|
||||
|
||||
socket.emit('groups.search', {
|
||||
query: query,
|
||||
options: {
|
||||
expand: true
|
||||
}
|
||||
}, function(err, groups) {
|
||||
templates.parse('partials/group_list', {
|
||||
groups: groups
|
||||
}, function(html) {
|
||||
groupsEl.empty().append(html);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
return Groups;
|
||||
|
||||
@@ -775,7 +775,7 @@ var async = require('async'),
|
||||
return 'group:' + groupName;
|
||||
});
|
||||
|
||||
db.getObjectsFields(groupKeys, ['name', 'slug', 'hidden', 'userTitle', 'icon', 'labelColor'], function(err, groupData) {
|
||||
db.getObjects(groupKeys, function(err, groupData) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
@@ -786,6 +786,12 @@ var async = require('async'),
|
||||
|
||||
var groupSets = groupData.map(function(group) {
|
||||
group.labelColor = group.labelColor || '#000000';
|
||||
|
||||
if (!group['cover:url']) {
|
||||
group['cover:url'] = nconf.get('relative_path') + '/images/cover-default.png';
|
||||
group['cover:position'] = '50% 50%';
|
||||
}
|
||||
|
||||
return 'group:' + group.name + ':members';
|
||||
});
|
||||
|
||||
@@ -892,4 +898,23 @@ var async = require('async'),
|
||||
db.setRemove('group:' + groupName + ':owners', toUid, callback);
|
||||
};
|
||||
|
||||
Groups.search = function(query, options, callback) {
|
||||
if (!query || !query.length) {
|
||||
return callback(null, []);
|
||||
}
|
||||
|
||||
async.waterfall([
|
||||
async.apply(db.getObjectValues, 'groupslug:groupname'),
|
||||
function(groupNames, next) {
|
||||
groupNames = groupNames.filter(function(name) {
|
||||
return name.match(new RegExp(query, 'i'));
|
||||
});
|
||||
|
||||
async.mapLimit(groupNames, 5, function(groupName, next) {
|
||||
Groups.get(groupName, options || {}, next);
|
||||
}, next);
|
||||
}
|
||||
], callback);
|
||||
};
|
||||
|
||||
}(module.exports));
|
||||
|
||||
@@ -126,6 +126,14 @@ SocketGroups.delete = function(socket, data, callback) {
|
||||
});
|
||||
};
|
||||
|
||||
SocketGroups.search = function(socket, data, callback) {
|
||||
if (!data || !data.query) {
|
||||
return callback(null, []);
|
||||
}
|
||||
|
||||
groups.search(data.query, data.options || {}, callback);
|
||||
};
|
||||
|
||||
SocketGroups.cover = {};
|
||||
|
||||
SocketGroups.cover.get = function(socket, data, callback) {
|
||||
|
||||
@@ -695,6 +695,10 @@ Upgrade.upgrade = function(callback) {
|
||||
tasks.push(async.apply(db.setObjectField, 'groupslug:groupname', Utils.slugify(groupObj.name), groupObj.name));
|
||||
});
|
||||
|
||||
// Administrator group
|
||||
tasks.push(async.apply(db.setObjectField, 'group:administrators', 'slug', 'administrators'));
|
||||
tasks.push(async.apply(db.setObjectField, 'groupslug:groupname', 'administrators', 'administrators'));
|
||||
|
||||
async.parallel(tasks, function(err) {
|
||||
if (err) {
|
||||
winston.error('[2015/01/19] Error encountered while Generating group slugs');
|
||||
|
||||
Reference in New Issue
Block a user