diff --git a/public/templates/account.tpl b/public/templates/account.tpl index af717beadd..572b69b0a0 100644 --- a/public/templates/account.tpl +++ b/public/templates/account.tpl @@ -54,6 +54,10 @@ <span class="account-bio-label">posts</span> <span id='postcount'>{postcount}</span> + <br/> + + <span class="account-bio-label">signature</span> + <span id='signature'>{signature}</span> </div> </div> </div> diff --git a/public/templates/accountedit.tpl b/public/templates/accountedit.tpl index 5f6ca44b15..77902659f1 100644 --- a/public/templates/accountedit.tpl +++ b/public/templates/accountedit.tpl @@ -116,6 +116,13 @@ <input type="text" id="inputBirthday" placeholder="mm/dd/yyyy" value="{birthday}"> </div> </div> + + <div class="control-group"> + <label class="control-label" for="inputSignature">Signature</label> + <div class="controls"> + <textarea id="inputSignature" placeholder="your signature" rows="5">{signature}</textarea> + </div> + </div> <input type="hidden" id="inputUID" value="{uid}"> @@ -227,14 +234,15 @@ $(document).ready(function() { var selectedImageType = ''; $('#submitBtn').on('click',function(){ - + var userData = { uid:$('#inputUID').val(), email:$('#inputEmail').val(), fullname:$('#inputFullname').val(), website:$('#inputWebsite').val(), birthday:$('#inputBirthday').val(), - location:$('#inputLocation').val() + location:$('#inputLocation').val(), + signature:$('#inputSignature').val(), }; $.post('/users/doedit', diff --git a/public/templates/topic.tpl b/public/templates/topic.tpl index 091fac6c54..f21be3eec1 100644 --- a/public/templates/topic.tpl +++ b/public/templates/topic.tpl @@ -44,6 +44,7 @@ <div style="clear:both; margin-bottom: 10px;"></div> <div id="content_{main_posts.pid}" class="post-content">{main_posts.content}</div> + <div>{main_posts.signature}</div> <div class="profile-block"></div> </div> </div> @@ -62,6 +63,7 @@ <div class="span11"> <div class="post-block"> <div id="content_{posts.pid}" class="post-content">{posts.content}</div> + <div>{posts.signature}</div> <div class="profile-block"> <span class="post-buttons"> <div id="ids_{posts.pid}_{posts.uid}" class="edit {posts.display_moderator_tools} hidden-phone"><i class="icon-pencil"></i></div> diff --git a/src/posts.js b/src/posts.js index 35931d5a90..85103b827f 100644 --- a/src/posts.js +++ b/src/posts.js @@ -48,6 +48,7 @@ marked.setOptions({ 'username' : user_data[uid].username || 'anonymous', 'user_rep' : user_data[uid].reputation || 0, 'gravatar' : user_data[uid].picture || 'http://www.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e', + 'signature' : user_data[uid].signature, 'fav_star_class' : vote_data[pid] ? 'icon-star' : 'icon-star-empty', 'display_moderator_tools': (uid == current_user || manage_content || viewer_data.isModerator) ? 'show' : 'none', 'edited-class': post_data.editor[i] !== null ? '' : 'none', @@ -147,7 +148,7 @@ marked.setOptions({ } } - user.getMultipleUserFields(post_data.uid, ['username','reputation','picture'], function(user_details){ + user.getMultipleUserFields(post_data.uid, ['username','reputation','picture', 'signature'], function(user_details){ user_data = user_details; generateThread(); }); diff --git a/src/topics.js b/src/topics.js index ab0246e285..8cd14057a7 100644 --- a/src/topics.js +++ b/src/topics.js @@ -4,7 +4,7 @@ var RDB = require('./redis.js'), user = require('./user.js'), configs = require('../config.js'), categories = require('./categories.js'), - marked = require('marked') + marked = require('marked'), async = require('async'); marked.setOptions({ diff --git a/src/user.js b/src/user.js index dd23660769..399f0ebb08 100644 --- a/src/user.js +++ b/src/user.js @@ -6,7 +6,9 @@ var config = require('../config.js'), crypto = require('crypto'), emailjs = require('emailjs'), emailjsServer = emailjs.server.connect(config.mailer), - bcrypt = require('bcrypt'); + bcrypt = require('bcrypt'), + marked = require('marked'); + (function(User) { @@ -79,19 +81,24 @@ var config = require('../config.js'), User.updateProfile = function(uid, data) { - var fields = ['email', 'fullname', 'website', 'location', 'birthday']; + var fields = ['email', 'fullname', 'website', 'location', 'birthday', 'signature']; var key = ''; for(var i=0,ii=fields.length; i<ii; ++i) { key = fields[i]; - if(data[key] !== undefined) { - User.setUserField(uid, key, data[key]); + if(data[key] !== undefined) { if(key === 'email') { User.setUserField(uid, 'gravatarpicture', User.createGravatarURLFromEmail(data[key])); RDB.set('email:' + data['email'] +':uid', uid); } + else if(key === 'signature') { + //sanitize sig plx - baris + //data[key] = marked(data[key]); + } + + User.setUserField(uid, key, data[key]); } } } @@ -268,6 +275,7 @@ var config = require('../config.js'), 'birthday':'', 'website':'', 'email' : email, + 'signature':'', 'joindate' : new Date().getTime(), 'picture': gravatar, 'gravatarpicture' : gravatar,