X-Git-Url: http://git.bytex64.net/?a=blobdiff_plain;f=www%2Fjs%2Fblerg.js;h=2125c5bef86f5faace6e856f7249cf3f2d4bd543;hb=80ad774f55998cc11e08694245dfd6cb1b49a86f;hp=fac5371b391d381553a849bf3111b27783b53555;hpb=a579fec94d5058776ea0fb6f47f922ea48ff876f;p=blerg.git diff --git a/www/js/blerg.js b/www/js/blerg.js index fac5371..2125c5b 100644 --- a/www/js/blerg.js +++ b/www/js/blerg.js @@ -14,89 +14,6 @@ var latestRecordsTemplate = new Template( '
@#{author} #{data}
' ); -// Page elements -var items; - -// Other globals -var currentPager; -var loginStatus; - -// Object to keep track of login status -function LoginStatus() { - var cookies = {}; - document.cookie.split(/;\s+/).each(function(v) { - kv = v.split('='); - cookies[kv[0]] = kv[1]; - }); - if (cookies.auth && cookies.username) { - this.loggedIn = true; - this.username = cookies.username; - this.requestFeedStatus(); - this.feedStatusUpdateInterval = setInterval(this.requestFeedStatus.bind(this), 900000); - } else { - this.loggedIn = false; - this.username = null; - } - this.update(); -} - -LoginStatus.prototype.login = function(username, password) { - new Ajax.Request(baseURL + '/login', { - parameters: { - username: username, - password: password - }, - onSuccess: function(r) { - var j = r.responseText.evalJSON(); - if (j && j.status == 'success') { - this.loggedIn = true; - this.username = username; - document.cookie = "username=" + username; - $('login.password').value = ''; - this.requestFeedStatus(); - this.feedStatusUpdateInterval = setInterval(this.requestFeedStatus.bind(this), 900000); - this.update(); - } else { - alert("Could not log in"); - $('login.username').focus(); - } - }.bind(this), - onFailure: function(r) { - alert("Could not log in"); - $('login.username').focus(); - } - }); -} - -LoginStatus.prototype.logout = function() { - new Ajax.Request(baseURL + '/logout', { - parameters: { - username: this.username - }, - onComplete: function(r) { - this.loggedIn = false; - document.cookie = "auth=; expires=1-Jan-1970 00:00:00 GMT"; - this.update(); - clearInterval(this.feedStatusUpdateInterval); - }.bind(this) - }); - document.cookie = "username=; expires=1-Jan-1970 00:00:00 GMT"; -} - -LoginStatus.prototype.update = function() { - if (this.loggedIn) { - $('userlink').href = baseURL + '/#' + this.username; - $('userlink').update('@' + this.username); - $('reflink').href = baseURL + '/#/ref/' + this.username; - $('login').hide(); - $('logout').show(); - } else { - $('post').hide(); - $('login').show(); - $('logout').hide(); - } -} - LoginStatus.prototype.post = function(msg) { if (!this.loggedIn) { alert("You are not logged in!"); @@ -128,20 +45,6 @@ LoginStatus.prototype.post = function(msg) { }); } -LoginStatus.prototype.requestFeedStatus = function() { - new Ajax.Request('/feedinfo', { - parameters: { username: this.username }, - onSuccess: function(r) { - var j = r.responseText.evalJSON(); - if (j['new'] > 0) { - $('newFeedMessages').update('(' + j['new'] + ' new)'); - } else { - $('newFeedMessages').update(''); - } - } - }); -} - // Base object for paged data function Pager() { this.itemsPerPage = 10; @@ -245,78 +148,6 @@ function displayError(msg) { items.innerText = msg; } - -// Object for browsing tags -function Tag(m) { - Pager.call(this); - this.type = m[1]; - this.tag = m[2]; - this.pageStart = parseInt(m[3]); - - var url = baseURL + "/tag/"; - switch(this.type) { - case 'tag': - //url += '%23'; - url += 'H'; // apache is eating the hash, even encoded. Probably a security feature. - this.baseFrag = '/tag/' + this.tag; - break; - case 'ref': - url += '%40'; - this.baseFrag = '/ref/' + this.tag; - break; - default: - alert('Invalid tag type: ' + this.type); - return; - } - url += this.tag; - - new Ajax.Request(url, { - method: 'get', - onSuccess: function(r) { - var j = r.responseText.evalJSON(); - if (j) { - var maxid = j.length - 1; - j.each(function(v, i) { - v.id = maxid - i; - mangleRecord(v, tagRecordTemplate) - }); - this.addItems(j); - if (!this.pageStart) - this.pageStart = j.length - 1; - this.itemCount = j.length; - } - this.displayItems(); - }.bind(this), - onFailure: function(r) { - this.displayItems(); - }.bind(this) - }); - -} -Tag.prototype = new Pager(); -Tag.prototype.constructor = Tag; - -Tag.prototype.updateState = function(m) { - if (this.type != m[1] || this.tag != m[2]) - return false; - - this.pageStart = parseInt(m[3]) || this.itemCount - 1; - this.displayItems(); - - return true; -} - -Tag.prototype.show = function() { - Pager.prototype.show.call(this); - - var ctype = {ref: '@', tag: '#'}[this.type]; - - $$('[name=section]').each(function(v) { - v.update(' about ' + ctype + this.tag); - }.bind(this)); -} - - // Pager for browsing subscription feeds function Feed(m) { Pager.call(this);