This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/models/mention.js.coffee
2013-02-07 16:45:24 +01:00

42 lines
947 B
CoffeeScript

Discourse.Mention = (->
localCache = {}
cache = (name, valid) ->
localCache[name] = valid
return
lookupCache = (name) ->
localCache[name]
lookup = (name, callback) ->
cached = lookupCache(name)
if cached == true || cached == false
callback(cached)
return false
else
$.get "/users/is_local_username", username: name, (r) ->
cache(name,r.valid)
callback(r.valid)
return true
load = (e) ->
$elem = $(e)
return if $elem.data('mention-tested')
username = $elem.text()
username = username.substr(1)
loading = lookup username, (valid) ->
if valid
$elem.replaceWith("<a href='/users/#{username.toLowerCase()}' class='mention'>@#{username}</a>")
else
$elem.removeClass('mention-loading').addClass('mention-tested')
$elem.addClass('mention-loading') if loading
load: load
lookup: lookup
lookupCache: lookupCache
)()