Skip to content

NodeBB v2 Compatibility #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions controllers.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
var onesignal = require('./library'),
meta = module.parent.parent.require('./meta'),
nconf = module.parent.parent.require('nconf'),
var onesignal = require('./library');
const meta = require.main.require('./src/meta');
const nconf = require.main.require('nconf');

Controllers = {};
const Controllers = {};

Controllers.renderACP = function(req, res) {
onesignal.getAssociatedUsers(function(err, users) {
Expand All @@ -29,14 +29,14 @@ Controllers.renderSettings = function(req, res) {
};

Controllers.getPlayerIds = function(req,res){
onesignal.getPlayerIds(req.user.uid, function(err, player_ids) {
if(!err) {
players = JSON.parse(player_ids);
res.json(players);
}else{
res.status(500).json(err);
onesignal.getPlayerIds(req.user.uid, function(err, player_ids) {
if(!err) {
players = JSON.parse(player_ids);
res.json(players);
}else{
res.status(500).json(err);
}
});
});
}

module.exports = Controllers;
2 changes: 1 addition & 1 deletion lib/client-settings.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"use strict";
/* globals define, socket, app */

define('forum/onesignal/settings', ['vendor/jquery/serializeObject/jquery.ba-serializeobject.min'], function() {
define('forum/onesignal/settings', [], function() {
var Settings = {};

Settings.init = function() {
Expand Down
72 changes: 36 additions & 36 deletions library.js
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
"use strict";

var db = module.parent.require('./database'),
meta = module.parent.require('./meta'),
user = module.parent.require('./user'),
posts = module.parent.require('./posts'),
topics = module.parent.require('./topics'),
translator = module.parent.require('../public/src/modules/translator'),
SocketPlugins = module.parent.require('./socket.io/plugins'),
globalMiddleware = module.parent.require('./middleware'),

winston = module.parent.require('winston'),
nconf = module.parent.require('nconf'),
async = module.parent.require('async'),
request = module.parent.require('request'),
S = module.parent.require('string'),
querystring = require('querystring'),
path = require('path'),
cache = require('lru-cache'),
url = require('url'),

constants = Object.freeze({
authorize_url: 'https://www.onesignal.com/authorize',
push_url: 'https://onesignal.com/api/v1/notifications'
}),

onesignal = {};
const db = require.main.require('./src/database');
const meta = require.main.require('./src/meta');
const user = require.main.require('./src/user');
const posts = require.main.require('./src/posts');
const topics = require.main.require('./src/topics');
const translator = require.main.require('./src/translator');
const SocketPlugins = require.main.require('./src/socket.io/plugins');
const globalMiddleware = require.main.require('./src/middleware');

const winston = require.main.require('winston');
const nconf = require.main.require('nconf');
const async = require('async');
const request = require('request');
const S = require('string');
const querystring = require('querystring');
const path = require('path');
const cache = require('lru-cache');
const url = require('url');

const constants = Object.freeze({
authorize_url: 'https://www.onesignal.com/authorize',
push_url: 'https://onesignal.com/api/v1/notifications'
});

const onesignal = {};

onesignal.init = function(data, callback) {
var pluginMiddleware = require('./middleware')(data.middleware),
Expand All @@ -35,10 +35,10 @@ onesignal.init = function(data, callback) {
data.router.get('/api/admin/plugins/onesignal', pluginControllers.renderACP);

// User routes
data.router.get('/onesignal/settings', pluginMiddleware.hasConfig, globalMiddleware.authenticate,pluginMiddleware.setupRequired, data.middleware.buildHeader, pluginControllers.renderSettings);
data.router.get('/api/me/onesignal/devices', globalMiddleware.authenticate, pluginMiddleware.isLoggedIn, pluginControllers.getPlayerIds);
data.router.post('/api/me/onesignal/devices', globalMiddleware.authenticate, pluginMiddleware.isLoggedIn, pluginMiddleware.addDevice, pluginControllers.getPlayerIds);
data.router.get('/onesignal/settings', pluginMiddleware.hasConfig, globalMiddleware.authenticateRequest, pluginMiddleware.setupRequired, data.middleware.buildHeader, pluginControllers.renderSettings);
data.router.get('/api/me/onesignal/devices', globalMiddleware.authenticateRequest, pluginMiddleware.isLoggedIn, pluginControllers.getPlayerIds);
data.router.post('/api/me/onesignal/devices', globalMiddleware.authenticateRequest, pluginMiddleware.isLoggedIn, pluginMiddleware.addDevice, pluginControllers.getPlayerIds);

// Config set-up
db.getObject('settings:onesignal', function(err, config) {
if (!err && config) {
Expand Down Expand Up @@ -187,7 +187,7 @@ function pushToUid(uid, notifObj, players, settings, app_id) {
app_id: app_id,
headings: {'en' : data.title ? data.title : ""} ,
contents: {'en': data.text },
include_player_ids: JSON.parse(players),
include_player_ids: JSON.parse(players),
url: notifObj.path || nconf.get('url') + '/topic/' + data.topicSlug + '/' + data.postIndex,
};

Expand All @@ -200,9 +200,9 @@ function pushToUid(uid, notifObj, players, settings, app_id) {
} else if (result) {
try {
if (result.hasOwnProperty('errors')) {
result.errors.forEach(function(err){
winston.error('[plugins/onesignal] ' + err);
});
result.errors.forEach(function(err){
winston.error('[plugins/onesignal] ' + err);
});
}
} catch (e) {
winston.error('[plugins/onesignal] ' + e);
Expand Down Expand Up @@ -241,11 +241,11 @@ onesignal.savePlayerId = function(uid, playerId, callback) {

async.waterfall([
function(next){
db.isObjectField('users:onesignal:players', uid, next);
db.isObjectField('users:onesignal:players', uid, next);
},
function(exists, next){
if(exists){
onesignal.getPlayerIds(uid,next);
onesignal.getPlayerIds(uid,next);
}else{
next(null,JSON.stringify([]));
}
Expand All @@ -259,7 +259,7 @@ onesignal.savePlayerId = function(uid, playerId, callback) {
};

onesignal.getPlayerIds = function(uid, callback) {
db.getObjectField('users:onesignal:players', uid, callback);
db.getObjectField('users:onesignal:players', uid, callback);
};

onesignal.getUserDevices = function(uid, callback) {
Expand Down
8 changes: 6 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,13 @@
},
"readmeFilename": "README.md",
"dependencies": {
"lru-cache": "^2.5.0"
"async": "^3.2.4",
"lru-cache": "^2.5.0",
"querystring": "^0.2.1",
"request": "^2.88.2",
"string": "^3.3.3"
},
"nbbpm": {
"compatibility": "^1.3.1"
"compatibility": "^2.0.0"
}
}
6 changes: 5 additions & 1 deletion plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,9 @@
],
"scripts": [
"lib/client-settings.js"
]
],
"modules": {
"../client/onesignal/settings.js": "./lib/client-settings.js",
"../admin/plugins/onesignal.js": "./static/lib/admin.js"
}
}
28 changes: 28 additions & 0 deletions static/lib/admin.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
'use strict';

define('admin/plugins/onesignal', [
'settings', 'alerts',
], function (settings, alerts) {
var ACP = {};

ACP.init = function () {
settings.load('onesignal', $('.onesignal-settings'));
$('#save').on('click', saveSettings);
};

function saveSettings() {
settings.save('onesignal', $('.onesignal-settings'), function () {
alerts.alert({
type: 'success',
alert_id: 'onesignal-saved',
title: 'Reload Required',
message: 'Please reload your NodeBB to complete configuration of the OneSignal plugin',
clickfn: function () {
socket.emit('admin.reload');
},
});
});
}

return ACP;
});
22 changes: 1 addition & 21 deletions static/templates/admin/plugins/onesignal.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -57,24 +57,4 @@
</div>
</div>
</div>
</div>

<script type="text/javascript">
require(['settings'], function(Settings) {
Settings.load('onesignal', $('.onesignal-settings'));

$('#save').on('click', function() {
Settings.save('onesignal', $('.onesignal-settings'), function() {
app.alert({
type: 'success',
alert_id: 'onesignal-saved',
title: 'Reload Required',
message: 'Please reload your NodeBB to complete configuration of the OneSignal plugin',
clickfn: function() {
socket.emit('admin.reload');
}
})
});
});
});
</script>
</div>
2 changes: 1 addition & 1 deletion static/templates/onesignal/settings.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
<select class="form-control" name="onesignal:target" id="target">
<option value="">All associated devices</option>
<!-- BEGIN devices -->
<option value="@value">@value</option>
<option value="{@value}">{@value}</option>
<!-- END devices -->
</select>
</div>
Expand Down
Loading