UNPKG

nodebb-plugin-azn-regis-field

Version:
158 lines (118 loc) 3.68 kB
"use strict"; var customFields = { mcuser : "" }, customData = [], user = module.parent.require('./user'), db = module.parent.require('./database'), plugin = {}; plugin.init = function(params, callback) { var app = params.router, middleware = params.middleware, controllers = params.controllers; app.get('/admin/azn-regis-field', middleware.admin.buildHeader, renderAdmin); app.get('/api/admin/azn-regis-field', renderAdmin); callback(); }; plugin.addAdminNavigation = function(header, callback) { header.plugins.push({ route: '/azn-regis-field', icon: 'fa-tint', name: 'AzN Registration Fields' }); callback(null, header); }; plugin.customHeaders = function(headers, callback) { for(var key in customFields) { switch(key) { case 'mcuser': var label = "Minecraft Username"; break; } headers.headers.push({ label: label }); } callback(null, headers); }; plugin.customFields = function(params, callback) { var users = params.users.map(function(user) { if (!user.customRows) { user.customRows = []; for(var key in customFields) { user.customRows.push({value: customFields[key]}); } } return user; }); callback(null, {users: users}); }; plugin.addField = function(params, callback) { for(var key in customFields) { if (key == "") { callback(null, params); return; } switch(key) { case 'mcuser': var html = '<input class="form-control" type="text" name="mcuser" id="mcuser" placeholder="Enter your Minecraft Username"><span class="custom-feedback" id="mcuser-notify"'; var label = "Minecraft Username"; break; } var captcha = { label: label, html: html }; if (params.templateData.regFormEntry && Array.isArray(params.templateData.regFormEntry)) { params.templateData.regFormEntry.push(captcha); } else { params.templateData.captcha = captcha; } } callback(null, params); }; plugin.checkField = function(params, callback) { var userData = params.userData; var error = null; for(var key in customFields) { var value = userData[key]; if (value == "" || value == undefined) { error = {message: 'Please complete all fields before registering.'}; } } callback(error, params); }; plugin.creatingUser = function(params, callback) { customData = params.data.customRows; callback(null, params); }; plugin.createdUser = function(params) { var addCustomData = { mcuser : customData[0].value } var keyID = 'user:' + params.uid + ':ns:custom_fields'; db.setObject(keyID, addCustomData, function(err) { if (err) { return callback(err); } }); }; plugin.addToApprovalQueue = function(params, callback) { var data = params.data; var userData = params.userData; data.customRows = []; for (var key in customFields) { switch(key) { case 'mcuser': var fieldData = params.userData['mcuser']; break; } customFields[key] = fieldData; data.customRows.push({value: customFields[key]}); } callback(null, {data: data, userData: userData}); }; function renderAdmin(req, res, next) { res.render('admin/azn-regis-field', {fields: customFields}); } module.exports = plugin;