Committer: dpetrov
OPSC-340: After processing payment API request from application dynamically update user's LJ Wallet balance at the top of the page.U trunk/htdocs/js/livejournal.js
Modified: trunk/htdocs/js/livejournal.js =================================================================== --- trunk/htdocs/js/livejournal.js 2011-06-01 09:46:04 UTC (rev 19192) +++ trunk/htdocs/js/livejournal.js 2011-06-02 03:16:03 UTC (rev 19193) @@ -17,12 +17,8 @@ var hookfuncs = LiveJournal.hooks[a[0]]; if (!hookfuncs || !hookfuncs.length) return; - var hookargs = []; + var hookargs = [].slice.call( arguments, 1 ); - for (var i = 1; i < a.length; i++) { - hookargs.push(a[i]); - } - var rv = null; hookfuncs.forEach(function (hookfunc) { @@ -33,6 +29,9 @@ }; LiveJournal.initPage = function () { + //register system hooks + LiveJournal.register_hook( 'update_wallet_balance', LiveJournal.updateWalletBalance ); + // set up various handlers for every page LiveJournal.initInboxUpdate(); @@ -60,29 +59,44 @@ // Do AJAX request to find the number of unread items in the inbox LiveJournal.updateInbox = function () { - var postData = { - "action": "get_unread_items" - }; - var opts = { - "data": HTTPReq.formEncoded(postData), - "method": "POST", - "onData": LiveJournal.gotInboxUpdate - }; + jQuery.post( LiveJournal.getAjaxUrl( 'esn_inbox' ), { + "action": "get_unread_items" + }, function( resp ) { + if (! resp || resp.error) return; - opts.url = Site.currentJournal ? "/" + Site.currentJournal + "/__rpc_esn_inbox" : "/__rpc_esn_inbox"; - - HTTPReq.getJSON(opts); + var unread = $("LJ_Inbox_Unread_Count"); + if( unread ) { + unread.innerHTML = resp.unread_count ? " (" + resp.unread_count + ")" : ""; + } else { + var unread = $("LJ_Inbox_Unread_Count_Controlstrip"); + if( unread ) { + unread.innerHTML = resp.unread_count ? resp.unread_count : "0"; + } + } + }, 'json' ); }; -// We received the number of unread inbox items from the server -LiveJournal.gotInboxUpdate = function (resp) { - if (! resp || resp.error) return; +//refresh number of tokens in the header +LiveJournal.updateWalletBalance = function () { + jQuery.get( LiveJournal.getAjaxUrl( 'get_balance' ), function( resp ) { + if (! resp || resp.status != 'OK') return; - var unread = $("LJ_Inbox_Unread_Count"); - if (! unread) return; - - unread.innerHTML = resp.unread_count ? " (" + resp.unread_count + ")" : ""; + var balance = $("LJ_Wallet_Balance"); + if( balance ) { + if( resp.balance ) { + balance.innerHTML = balance.innerHTML.replace( /\d+/, resp.balance ); + } else { + balance.innerHTML = ""; + } + } else { + var balance = $("LJ_Wallet_Balance_Controlstrip"); + if( balance ) { + balance.innerHTML = resp.balance ? resp.balance : "0"; + } + } + } + ); }; // Placeholder onclick event