diff options
Diffstat (limited to 'client/components/main/helpers.js')
-rw-r--r-- | client/components/main/helpers.js | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/client/components/main/helpers.js b/client/components/main/helpers.js deleted file mode 100644 index 91205351..00000000 --- a/client/components/main/helpers.js +++ /dev/null @@ -1,65 +0,0 @@ -var Helpers = { - error: function() { - return Session.get('error'); - }, - - toLowerCase: function(text) { - return text && text.toLowerCase(); - }, - - toUpperCase: function(text) { - return text && text.toUpperCase(); - }, - - firstChar: function(text) { - return text && text[0].toUpperCase(); - }, - - session: function(prop) { - return Session.get(prop); - }, - - getUser: function(userId) { - return Users.findOne(userId); - } -}; - -// Register all Helpers -_.each(Helpers, function(fn, name) { Blaze.registerHelper(name, fn); }); - -// XXX I believe we should compute a HTML rendered field on the server that -// would handle markdown, emojies and user mentions. We can simply have two -// fields, one source, and one compiled version (in HTML) and send only the -// compiled version to most users -- who don't need to edit. -// In the meantime, all the transformation are done on the client using the -// Blaze API. -var at = HTML.CharRef({html: '@', str: '@'}); -Blaze.Template.registerHelper('mentions', new Template('mentions', function() { - var view = this; - var content = Blaze.toHTML(view.templateContentBlock); - var currentBoard = Session.get('currentBoard'); - var knowedUsers = _.map(currentBoard.members, function(member) { - member.username = Users.findOne(member.userId).username; - return member; - }); - - var mentionRegex = /\B@(\w*)/gi; - var currentMention, knowedUser, href, linkClass, linkValue, link; - while (!! (currentMention = mentionRegex.exec(content))) { - - knowedUser = _.findWhere(knowedUsers, { username: currentMention[1] }); - if (! knowedUser) - continue; - - linkValue = [' ', at, knowedUser.username]; - href = Router.url('Profile', { username: knowedUser.username }); - linkClass = 'atMention'; - if (knowedUser.userId === Meteor.userId()) - linkClass += ' me'; - link = HTML.A({ href: href, 'class': linkClass }, linkValue); - - content = content.replace(currentMention[0], Blaze.toHTML(link)); - } - - return HTML.Raw(content); -})); |