X-Git-Url: http://git.bytex64.net/?a=blobdiff_plain;f=www%2Fjs%2Fblerg.js;h=4efad6a33b881fcbc605272a21f26915a1823a87;hb=53272b3c1ec9303c69ccd55facfd5b90598a376c;hp=1f413ad3a240de0d8dc8a3f2b83ea51b4a7d2c68;hpb=db45aeacb003f72b853abbccd6f722770732438b;p=blerg.git diff --git a/www/js/blerg.js b/www/js/blerg.js index 1f413ad..4efad6a 100644 --- a/www/js/blerg.js +++ b/www/js/blerg.js @@ -8,10 +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}
' + '
@#{author} #{data}
' ); // Page elements @@ -188,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) { @@ -264,8 +286,8 @@ function mangleRecord(record, template) { record.data = record.data.replace(/(\s)\*([^*]+)\*(\s)/g, '$1$2$3'); // Turn refs and tags into links - record.data = record.data.replace(/(\s|^)#([A-Za-z0-9_-]+)/g, '$1#$2'); - record.data = record.data.replace(/(\s|^)@([A-Za-z0-9_-]+)/g, '$1@$2'); + record.data = record.data.replace(/(\s|^)#([A-Za-z0-9_-]+)/g, '$1#$2'); + record.data = record.data.replace(/(\s|^)@([A-Za-z0-9_-]+)/g, '$1@$2'); // Turn newlines into linebreaks and paragraphs record.data = record.data.replace(/\r?\n\r?\n/g, "

").replace(/\r?\n/g, "
"); @@ -391,6 +413,50 @@ function older_page() { currentPager.olderPage(); } +function obsess() { + new Ajax.Request(baseURL + '/subscribe/' + currentPager.username, { + method: 'post', + parameters: { + username: loginStatus.username + }, + onSuccess: function(r) { + var response = r.responseText.evalJSON(); + if (response.status == 'success') { + alert("You call " + currentPager.username + " and begin breathing heavily into the handset."); + $$('[name=user.obsesslink]').each(Element.hide); + $$('[name=user.unobsesslink]').each(Element.show); + } else { + alert('Failed to obsess. This is probably for the best'); + } + }, + onFailure: function(r) { + alert('Failed to obsess. This is probably for the best'); + } + }); +} + +function unobsess() { + new Ajax.Request(baseURL + '/unsubscribe/' + currentPager.username, { + method: 'post', + parameters: { + username: loginStatus.username + }, + onSuccess: function(r) { + var response = r.responseText.evalJSON(); + if (response.status == 'success') { + alert("You come to your senses."); + $$('[name=user.obsesslink]').each(Element.show); + $$('[name=user.unobsesslink]').each(Element.hide); + } else { + alert('You are unable to tear yourself away (because something failed on the server)'); + } + }, + onFailure: function(r) { + alert('You are unable to tear yourself away (because something failed on the server)'); + } + }); +} + var resizePostContentTimeout = null; function resizePostContent() { if (resizePostContentTimeout) @@ -425,9 +491,6 @@ function tickerFader(a, b, p) { b.hide(); } -function fadeOut(p) { -} - function ticker() { tickerHead.show(); Bytex64.FX.run(tickerFader.curry(tickerHead, tickerTail), 0.5); @@ -447,7 +510,7 @@ function startTicker() { // Show the first five tickerHead = $('latest-posts').firstChild; - for (var i = 0; i < 5 && tickerHead; i++) { + for (var i = 0; i < 10 && tickerHead; i++) { tickerHead.show(); tickerHead = tickerHead.nextSibling; } @@ -470,6 +533,7 @@ function loadLatest() { j.tags.each(function(v) { var a = new Element('a', {href: '/#tag/' + v}); a.insert('#' + v); + a.className = 'ref'; $('latest-tags').insert(a); $('latest-tags').appendChild(document.createTextNode(' ')); });