diff --git a/resources/static/pages/js/manage_account.js b/resources/static/pages/js/manage_account.js index c6f85634a123582a6c0b80420911385ac1fbfe04..d1b35a5c4f44289ff53f365a4eea963187a463b0 100644 --- a/resources/static/pages/js/manage_account.js +++ b/resources/static/pages/js/manage_account.js @@ -79,16 +79,19 @@ BrowserID.manageAccount = (function() { dom.setInner(list, ""); - // Set up to use mustache style templating, the normal Django style blows - // up the node templates - _.templateSettings = { - interpolate : /\{\{(.+?)\}\}/g - }; - var template = dom.getInner("#templateUser"); + function substitute(text, values, re) { + re = re || /\{\{([^\{\}]+)\}\}/g; + return String(text).replace(re, function(m, name) { + return (values[name] != null) ? values[name] : ''; + }); + } + + var template = $("#templateUser").html(); _(emails).each(function(item) { - var e = item.address, - identity = _.template(template, { email: e }); + var e = item.address; + var id = e.replace('@', '_').replace('.', '_', 'g'); + var identity = substitute(template, { email: e, id: id }); var idEl = dom.appendTo(identity, list), deleteButton = dom.getDescendentElements(".delete", idEl); diff --git a/resources/views/index.ejs b/resources/views/index.ejs index 600183a560fc6ba8717b5e1cca8ad93b8dd1f084..b4d6f2b65dcb9827bce45cbb329d03eb2dcedee6 100644 --- a/resources/views/index.ejs +++ b/resources/views/index.ejs @@ -25,8 +25,8 @@ --> <script type="text/html" id="templateUser"> - <li class="identity cf" id="{{ email.replace('@', '_').replace('.', '_') }}"> - <div class="email">{{ email }}</div> + <li class="identity cf" id="{{id}}"> + <div class="email">{{email}}</div> <button class="delete"><%- gettext('remove') %></button> </li> </script>