X-Git-Url: http://git.bytex64.net/?a=blobdiff_plain;f=www%2Fjs%2Fblerg.js;h=9f92594ba51b22777d5855bf0390d4854d0bb3b9;hb=f4bf2d2efc566e9f165b97bda72cd5a27e0d2b19;hp=c5fd50413476f042a759fdc13a6fe89385c18886;hpb=2a252001cf9fbb3b5459d142b340a02b5c6eaaa9;p=blerg.git diff --git a/www/js/blerg.js b/www/js/blerg.js index c5fd504..9f92594 100644 --- a/www/js/blerg.js +++ b/www/js/blerg.js @@ -8,7 +8,10 @@ var recordTemplate = new Template( '
#{data}
Posted #{date}
' ); var tagRecordTemplate = new Template( - '
#{data}
Posted by @#{author} on #{date}
' + '
#{data}
Posted by @#{author} on #{date}
' +); +var latestRecordsTemplate = new Template( + '
@#{author} #{data}
' ); // Page elements @@ -79,6 +82,7 @@ LoginStatus.prototype.update = function() { if (this.loggedIn) { $('userlink').href = '/#' + this.username; $('userlink').update('@' + this.username); + $('reflink').href = '/#ref/' + this.username; $('login').hide(); $('logout').show(); } else { @@ -91,7 +95,7 @@ LoginStatus.prototype.update = function() { LoginStatus.prototype.post = function(msg) { if (!this.loggedIn) { alert("You are not logged in!"); - exit(0); + return; } new Ajax.Request(baseURL + '/put', { @@ -184,6 +188,28 @@ function User(username) { this.initPager(); this.username = username; + $$('[name=user.obsesslink]').each(Element.hide); + $$('[name=user.unobsesslink]').each(Element.hide); + + if (loginStatus.loggedIn) { + new Ajax.Request(baseURL + '/feedinfo/' + username, { + method: 'post', + parameters: { + username: loginStatus.username + }, + onSuccess: function(r) { + var json = r.responseText.evalJSON(); + if (json.subscribed) { + $$('[name=user.obsesslink]').each(Element.hide); + $$('[name=user.unobsesslink]').each(Element.show); + } else { + $$('[name=user.obsesslink]').each(Element.show); + $$('[name=user.unobsesslink]').each(Element.hide); + } + } + }); + } + new Ajax.Request(baseURL + '/info/' + username, { method: 'get', onSuccess: function(r) { @@ -202,9 +228,12 @@ User.prototype.show = function() { $$('[name=section]').each(function(v) { v.update(' @' + this.username) }.bind(this)); $('welcome').hide(); items.show(); - $('reflink').href = '/#ref/' + this.username; $('rss').show(); $('rsslink').href = '/rss/' + this.username; + $$('[name=user.reflink]').each(function(e) { + e.href = '/#ref/' + this.username; + }.bind(this)); + $('usercontrols').show(); } User.prototype.loadItems = function(from, to) { @@ -243,26 +272,82 @@ User.prototype.loadItems = function(from, to) { function mangleRecord(record, template) { record.recInt = parseInt(record.record); - // Sanitize HTML input - record.data = record.data.replace('&', '&').replace('<', '<').replace('>', '>'); + var lines = record.data.split(/\r?\n/); + if (lines[lines.length - 1] == '') + lines.pop(); + + var out = ['

']; + var endpush = null; + var listMode = false; + lines.each(function(l) { + if (l == '') { + if (out[out.length - 1] == '
') { + out[out.length - 1] = '

'; + } + if (out[out.length - 1] == '') { + out.push(''); + out.push('

'); + listMode = false; + } + return; + } + + if (l[0] == '>') { + var pi = out.lastIndexOf('

'); + if (pi != -1) { + out[pi] = '

'; + l = l.replace(/^>\s*/, ''); + } + } + if (l[0] == '*') { + if (!listMode) { + var pi = out.lastIndexOf('

'); + out[pi] = '