mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 11:35:55 +01:00
@@ -24,7 +24,7 @@ var socket,
|
||||
reconnecting = false;
|
||||
|
||||
// Rejoin room that was left when we disconnected
|
||||
var url_parts = document.location.pathname.slice(RELATIVE_PATH.length).split('/').slice(1);
|
||||
var url_parts = window.location.pathname.slice(RELATIVE_PATH.length).split('/').slice(1);
|
||||
var room;
|
||||
|
||||
switch(url_parts[0]) {
|
||||
@@ -512,7 +512,10 @@ var socket,
|
||||
app.load = function() {
|
||||
$('document').ready(function () {
|
||||
var url = window.location.pathname.slice(1),
|
||||
tpl_url = ajaxify.getTemplateMapping(url);
|
||||
search = window.location.search,
|
||||
hash = window.location.hash,
|
||||
tpl_url = ajaxify.getTemplateMapping(url),
|
||||
$window = $(window);
|
||||
|
||||
url = url.replace(/\/$/, "");
|
||||
|
||||
@@ -520,7 +523,7 @@ var socket,
|
||||
url = url.slice(RELATIVE_PATH.length);
|
||||
}
|
||||
|
||||
$(window).trigger('action:ajaxify.start', {
|
||||
$window.trigger('action:ajaxify.start', {
|
||||
url: url
|
||||
});
|
||||
|
||||
@@ -532,11 +535,11 @@ var socket,
|
||||
|
||||
$('#logout-link').on('click', app.logout);
|
||||
|
||||
$(window).blur(function(){
|
||||
$window.blur(function(){
|
||||
app.isFocused = false;
|
||||
});
|
||||
|
||||
$(window).focus(function(){
|
||||
$window.focus(function(){
|
||||
app.isFocused = true;
|
||||
app.alternatingTitle('');
|
||||
});
|
||||
@@ -549,21 +552,20 @@ var socket,
|
||||
ajaxify.widgets.render(tpl_url, url);
|
||||
|
||||
if (window.history && window.history.replaceState) {
|
||||
var hash = window.location.hash ? window.location.hash : '';
|
||||
window.history.replaceState({
|
||||
url: url + hash
|
||||
}, url, RELATIVE_PATH + '/' + url + hash);
|
||||
url: url + search + hash
|
||||
}, url, RELATIVE_PATH + '/' + url + search + hash);
|
||||
}
|
||||
|
||||
ajaxify.loadScript(tpl_url, function() {
|
||||
$(window).trigger('action:ajaxify.end', {
|
||||
$window.trigger('action:ajaxify.end', {
|
||||
url: url
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
showWelcomeMessage = location.href.indexOf('loggedin') !== -1;
|
||||
showWelcomeMessage = window.location.href.indexOf('loggedin') !== -1;
|
||||
|
||||
app.loadConfig();
|
||||
app.alternatingTitle('');
|
||||
|
||||
@@ -272,6 +272,87 @@
|
||||
return env;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// get all the url params in a single key/value hash
|
||||
params: function(options) {
|
||||
var a, hash = {}, params;
|
||||
|
||||
options = options || {};
|
||||
options.skipToType = options.skipToType || {};
|
||||
|
||||
if (options.url) {
|
||||
a = utils.urlToLocation(options.url);
|
||||
}
|
||||
params = (a ? a.search : window.location.search).substring(1).split("&");
|
||||
|
||||
params.forEach(function(param) {
|
||||
var val = param.split('='),
|
||||
key = decodeURI(val[0]),
|
||||
value = options.skipToType[key] ? decodeURI(val[1]) : utils.toType(decodeURI(val[1]));
|
||||
|
||||
if (key)
|
||||
hash[key] = value;
|
||||
});
|
||||
return hash;
|
||||
},
|
||||
|
||||
param: function(key) {
|
||||
return this.params()[key];
|
||||
},
|
||||
|
||||
urlToLocation: function(url) {
|
||||
var a = document.createElement('a');
|
||||
a.href = url;
|
||||
return a;
|
||||
},
|
||||
|
||||
// return boolean if string 'true' or string 'false', or if a parsable string which is a number
|
||||
// also supports JSON object and/or arrays parsing
|
||||
toType: function(str) {
|
||||
var type = typeof str;
|
||||
if (type !== 'string') {
|
||||
return str;
|
||||
} else {
|
||||
var nb = parseFloat(str);
|
||||
if (!isNaN(nb) && isFinite(str))
|
||||
return nb;
|
||||
if (str === 'false')
|
||||
return false;
|
||||
if (str === 'true')
|
||||
return true;
|
||||
|
||||
try {
|
||||
str = JSON.parse(str);
|
||||
} catch (e) {}
|
||||
|
||||
return str;
|
||||
}
|
||||
},
|
||||
|
||||
// Safely get/set chained properties on an object
|
||||
// set example: utils.props(A, 'a.b.c.d', 10) // sets A to {a: {b: {c: {d: 10}}}}, and returns 10
|
||||
// get example: utils.props(A, 'a.b.c') // returns {d: 10}
|
||||
// get example: utils.props(A, 'a.b.c.foo.bar') // returns undefined without throwing a TypeError
|
||||
// credits to github.com/gkindel
|
||||
props: function(obj, props, value) {
|
||||
if(obj === undefined)
|
||||
obj = window;
|
||||
if(props == null)
|
||||
return undefined;
|
||||
var i = props.indexOf('.');
|
||||
if( i == -1 ) {
|
||||
if(value !== undefined)
|
||||
obj[props] = value;
|
||||
return obj[props];
|
||||
}
|
||||
var prop = props.slice(0, i),
|
||||
newProps = props.slice(i + 1);
|
||||
|
||||
if(props !== undefined && !(obj[prop] instanceof Object) )
|
||||
obj[prop] = {};
|
||||
|
||||
return util.props(obj[prop], newProps, value);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -207,7 +207,12 @@ Controllers.register = function(req, res, next) {
|
||||
data.minimumPasswordLength = meta.config.minimumPasswordLength;
|
||||
data.termsOfUse = meta.config.termsOfUse;
|
||||
|
||||
res.render('register', data);
|
||||
plugins.fireHook('filter:register.build', req, res, data, function(err, data) {
|
||||
if (err && process.env === 'development') {
|
||||
winston.warn(JSON.stringify(err));
|
||||
}
|
||||
res.render('register', data);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -295,14 +295,14 @@ var fs = require('fs'),
|
||||
};
|
||||
|
||||
Plugins.fireHook = function(hook) {
|
||||
var callback = typeof arguments[arguments.length-1] === "function" ? arguments[arguments.length-1] : null,
|
||||
var callback = typeof arguments[arguments.length-1] === 'function' ? arguments[arguments.length-1] : null,
|
||||
args = arguments.length ? Array.prototype.slice.call(arguments, 1) : [];
|
||||
|
||||
if (callback) {
|
||||
args.pop();
|
||||
}
|
||||
|
||||
hookList = Plugins.loadedHooks[hook];
|
||||
var hookList = Plugins.loadedHooks[hook];
|
||||
|
||||
if (hookList && Array.isArray(hookList)) {
|
||||
// if (global.env === 'development') winston.info('[plugins] Firing hook: \'' + hook + '\'');
|
||||
@@ -334,7 +334,7 @@ var fs = require('fs'),
|
||||
}, function(err, values) {
|
||||
if (err) {
|
||||
if (global.env === 'development') {
|
||||
winston.info('[plugins] Problem executing hook: ' + hook);
|
||||
winston.info('[plugins] Problem executing hook: ' + hook + ' err: ' + JSON.stringify(err));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -73,13 +73,12 @@
|
||||
var userData = {
|
||||
username: req.body.username,
|
||||
password: req.body.password,
|
||||
email: req.body.email,
|
||||
ip: req.ip
|
||||
email: req.body.email
|
||||
};
|
||||
|
||||
plugins.fireHook('filter:register.check', userData, function(err, userData) {
|
||||
plugins.fireHook('filter:register.check', req, res, userData, function(err, userData) {
|
||||
if (err) {
|
||||
return res.redirect(nconf.get('relative_path') + '/register');
|
||||
return res.redirect(nconf.get('relative_path') + '/register' + (err.message ? '?error=' + err.message : ''));
|
||||
}
|
||||
|
||||
user.create(userData, function(err, uid) {
|
||||
|
||||
Reference in New Issue
Block a user