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.
nodebb/src/admin/categories.js

59 lines
1.4 KiB
JavaScript

var RDB = require('./../redis.js'),
utils = require('./../../public/src/utils.js'),
categories = require('./../categories.js');
(function(CategoriesAdmin) {
CategoriesAdmin.create = function(data, callback) {
RDB.incr('global:next_category_id', function(err, cid) {
RDB.handle(err);
var slug = cid + '/' + utils.slugify(data.name);
RDB.rpush('categories:cid', cid);
RDB.hmset('category:' + cid, {
cid: cid,
name: data.name,
description: data.description,
icon: data.icon,
blockclass: data.blockclass,
slug: slug,
topic_count: 0,
disabled: 0
});
RDB.set('categoryslug:' + slug + ':cid', cid);
if (callback) callback({'status': 1});
});
};
CategoriesAdmin.update = function(modified, socket) {
var updated = [];
for (var cid in modified) {
var category = modified[cid];
for (var key in category) {
RDB.hset('category:' + cid, key, category[key]);
if (key == 'name') {
// reset slugs if name is updated
var slug = cid + '/' + utils.slugify(category[key]);
RDB.hset('category:' + cid, 'slug', slug);
RDB.set('categoryslug:' + slug + ':cid', cid);
}
}
updated.push(cid);
}
socket.emit('event:alert', {
title: 'Updated Categories',
message: 'Category IDs ' + updated.join(', ') + ' was successfully updated.',
type: 'success',
timeout: 2000
});
};
}(exports));