diff --git a/public/src/forum/accountedit.js b/public/src/forum/accountedit.js index f4c86f3ba4..b681522457 100644 --- a/public/src/forum/accountedit.js +++ b/public/src/forum/accountedit.js @@ -41,6 +41,17 @@ define(['forum/accountheader', 'uploader'], function(header, uploader) { return false; }); + + function getSignatureCharsLeft() { + return '(' + $('#inputSignature').val().length + '/' + config.maximumSignatureLength + ')'; + } + + $('#signatureCharCountLeft').html(getSignatureCharsLeft()); + + $('#inputSignature').on('keyup change', function(ev) { + $('#signatureCharCountLeft').html(getSignatureCharsLeft()); + }); + $('#changePictureBtn').on('click', function() { selectedImageType = ''; AccountEdit.updateImages(); diff --git a/public/templates/accountedit.tpl b/public/templates/accountedit.tpl index fa0e64d055..9dd8d97ef4 100644 --- a/public/templates/accountedit.tpl +++ b/public/templates/accountedit.tpl @@ -84,9 +84,9 @@
- +
- +
diff --git a/public/templates/admin/settings.tpl b/public/templates/admin/settings.tpl index 4a72c95fcc..ea3655bd24 100644 --- a/public/templates/admin/settings.tpl +++ b/public/templates/admin/settings.tpl @@ -83,6 +83,8 @@
Minimum Password Length

+ Maximum Signature Length
+
diff --git a/src/install.js b/src/install.js index ba59ac4826..dd65779b92 100644 --- a/src/install.js +++ b/src/install.js @@ -220,6 +220,9 @@ var async = require('async'), }, { field: 'imgurClientID', value: '' + }, { + field: 'maximumSignatureLength', + value: 255 }, { field: 'maximumProfileImageSize', value: 256 diff --git a/src/plugins.js b/src/plugins.js index ca7114da82..2681b30dea 100644 --- a/src/plugins.js +++ b/src/plugins.js @@ -274,10 +274,17 @@ var fs = require('fs'), return; } + + if(active) { + Plugins.fireHook('action:plugin.deactivate', id); + } + // Reload meta data Plugins.reload(function() { - // (De)activation Hooks - Plugins.fireHook('action:plugin.' + (active ? 'de' : '') + 'activate', id); + + if(!active) { + Plugins.fireHook('action:plugin.activate', id); + } if (callback) { callback({ diff --git a/src/routes/api.js b/src/routes/api.js index cb28e0bffb..8eee0fe789 100644 --- a/src/routes/api.js +++ b/src/routes/api.js @@ -34,6 +34,7 @@ var path = require('path'), config.minimumUsernameLength = meta.config.minimumUsernameLength; config.maximumUsernameLength = meta.config.maximumUsernameLength; config.minimumPasswordLength = meta.config.minimumPasswordLength; + config.maximumSignatureLength = meta.config.maximumSignatureLength; config.useOutgoingLinksPage = meta.config.useOutgoingLinksPage; config.emailSetup = !!meta.config['email:from']; @@ -149,11 +150,11 @@ var path = require('path'), } else { next(); } - }, req.params.id, uid); + }, req.params.id, uid); } else { res.send(403); } - + }); } else { res.send(403); diff --git a/src/user.js b/src/user.js index fd6a6eea31..6a79652b08 100644 --- a/src/user.js +++ b/src/user.js @@ -190,9 +190,9 @@ var bcrypt = require('bcrypt'), }; function isSignatureValid(next) { - if (data.signature !== undefined && data.signature.length > 150) { + if (data.signature !== undefined && data.signature.length > meta.config.maximumSignatureLength) { next({ - error: 'Signature can\'t be longer than 150 characters!' + error: 'Signature can\'t be longer than ' + meta.config.maximumSignatureLength + ' characters!' }, false); } else { next(null, true); diff --git a/src/websockets.js b/src/websockets.js index 2000b34617..55c606b909 100644 --- a/src/websockets.js +++ b/src/websockets.js @@ -593,7 +593,9 @@ websockets.init = function(io) { socket.on('api:categories.get', function(callback) { categories.getAllCategories(0, function(err, categories) { - callback(categories); + if(callback) { + callback(categories); + } }); }); @@ -1095,7 +1097,7 @@ websockets.init = function(io) { groups.leaveByGroupName('cid:' + cid + ':privileges:' + privilege, gid, cb); } }); - + socket.on('api:admin.categories.groupsearch', function(cid, callback) { groups.list({expand:false}, function(err, data){ async.map(data, function(groupObj, next) { @@ -1111,7 +1113,7 @@ websockets.init = function(io) { }, function(err, data) { if (!callback) socket.emit('api:admin.categories.groupsearch', data); else callback(null, data); - }); + }); }); });