Hello,
I have updated Schamper's shoutbox plugin https://github.com/Schamper/nodebb-plugin-shoutbox
Since I only changed 2 files could somebody update it, or should I send a pull request. I dont see a point to share the same plugin with some changed lines as a new shoutbox plugin
plugin.json
{
"id": "nodebb-plugin-shoutbox",
"name": "Shoutbox",
"description": "NodeBB Plugin Shoutbox",
"url": "https://github.com/Schamper/nodebb-plugin-shoutbox",
"library": "./library.js",
"hooks": [
{ "hook": "static:app.load", "method": "init.load" },
{ "hook": "filter:admin.header.build", "method": "init.addAdminNavigation" },
{ "hook": "filter:header.build", "method": "init.addGlobalNavigation" },
{ "hook": "filter:sounds.get", "method": "init.getSounds" },
{ "hook": "filter:user.customSettings", "method": "settings.addUserSettings" },
{ "hook": "filter:user.getSettings", "method": "settings.getUserSettings" },
{ "hook": "action:user.saveSettings", "method": "settings.saveUserSettings" },
{ "hook": "filter:widgets.getWidgets", "method": "widget.define" },
{ "hook": "filter:widget.render:shoutbox", "method": "widget.render" }
],
"staticDirs": {
"public": "./public"
},
"less": [
"public/less/style.less"
],
"scripts": [
"public/js/loader.js",
"public/js/lib/actions.js",
"public/js/lib/base.js",
"public/js/lib/commands.js",
"public/js/lib/settings.js",
"public/js/lib/sockets.js",
"public/js/lib/utils.js",
"public/js/lib/actions/bug.js",
"public/js/lib/actions/default.js",
"public/js/lib/actions/gist.js",
"public/js/lib/actions/hide.js",
"public/js/lib/actions/settings.js",
"public/js/lib/commands/default.js"
],
"acpScripts": [
"public/js/admin.js"
],
"templates": "./templates"
}
library.js
"use strict";
var NodeBB = require('./lib/nodebb'),
Config = require('./lib/config'),
Sockets = require('./lib/sockets'),
Commands = require('./lib/commands'),
app,
Shoutbox = {};
Shoutbox.init = {};
Shoutbox.widget = {};
Shoutbox.settings = {};
Shoutbox.init.load = function(params, callback) {
function renderGlobal(req, res, next) {
Config.getTemplateData(function(data) {
res.render(Config.plugin.id, data);
});
}
function renderAdmin(req, res, next) {
Config.getTemplateData(function(data) {
res.render('admin/plugins/' + Config.plugin.id, data);
});
}
var router = params.router;
router.get('/' + Config.plugin.id, params.middleware.buildHeader, renderGlobal);
router.get('/api/' + Config.plugin.id, renderGlobal);
router.get('/admin/plugins/' + Config.plugin.id, params.middleware.admin.buildHeader, renderAdmin);
router.get('/api/admin/plugins/' + Config.plugin.id, renderAdmin);
NodeBB.SocketPlugins[Config.plugin.id] = Sockets.events;
NodeBB.SocketAdmin[Config.plugin.id] = Config.adminSockets;
app = params.app;
Config.init(callback);
};
Shoutbox.init.addGlobalNavigation = function(header, callback) {
if (Config.global.get('toggles.headerLink')) {
header.navigation.push({
class: '',
iconClass: 'fa fa-fw ' + Config.plugin.icon,
route: '/' + Config.plugin.id,
text: Config.plugin.name
});
}
callback(null, header);
};
Shoutbox.init.addAdminNavigation = function(header, callback) {
header.plugins.push({
route: '/plugins/' + Config.plugin.id,
icon: Config.plugin.icon,
name: Config.plugin.name
});
callback(null, header);
};
Shoutbox.init.getSounds = function(sounds, callback) {
sounds.push(__dirname + '/public/sounds/shoutbox-notification.mp3');
sounds.push(__dirname + '/public/sounds/shoutbox-wobble.mp3');
sounds.push(__dirname + '/public/sounds/shoutbox-cena.mp3');
callback(null, sounds);
};
Shoutbox.widget.define = function(widgets, callback) {
widgets.push({
name: Config.plugin.name,
widget: Config.plugin.id,
description: Config.plugin.description,
content: ''
});
callback(null, widgets);
};
Shoutbox.widget.render = function(widget, callback) {
//Remove any container
widget.data.container = '';
Config.user.get({ uid: widget.uid, settings: {} }, function(err, result) {
Config.getTemplateData(function(data) {
data.hiddenStyle = '';
if (!err && result && result.settings && parseInt(result.settings['shoutbox:toggles:hide'], 10) == 1) {
data.hiddenStyle = 'display: none;';
}
app.render('shoutbox/panel', { html: '<div id="tablediv"></div>', time: Date.now() }, function(err, html){
widget.html = html;
callback(err, widget);
});
});
});
};
Shoutbox.settings.addUserSettings = function(settings, callback) {
app.render('shoutbox/user/settings', { settings: settings.settings }, function(err, html) {
settings.customSettings.push({
title: Config.plugin.name,
content: html
});
callback(null, settings);
});
};
Shoutbox.settings.getUserSettings = function(data, callback) {
Config.user.get(data, callback);
};
Shoutbox.settings.saveUserSettings = function(data) {
Config.user.save(data);
};
module.exports = Shoutbox;