diff --git a/webgui/js/app/sprintf.js b/webgui/js/app/sprintf.js deleted file mode 100644 index 78897763cba53b2b4bd2b15ca2202b9befcbbacc..0000000000000000000000000000000000000000 --- a/webgui/js/app/sprintf.js +++ /dev/null @@ -1,55 +0,0 @@ -/** - * sprintf() for JavaScript v.0.4 - * - * Copyright (c) 2007 Alexandru Marasteanu <http://alexei.417.ro/> - * Thanks to David Baird (unit test and patch). - * - * This program is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) any later - * version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -function str_repeat(i, m) { for (var o = []; m > 0; o[--m] = i); return(o.join('')); } - -function sprintf () { - var i = 0, a, f = arguments[i++], o = [], m, p, c, x; - while (f) { - if (m = /^[^\x25]+/.exec(f)) o.push(m[0]); - else if (m = /^\x25{2}/.exec(f)) o.push('%'); - else if (m = /^\x25(?:(\d+)\$)?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(f)) { - if (((a = arguments[m[1] || i++]) == null) || (a == undefined)) throw("Too few arguments."); - if (/[^s]/.test(m[7]) && (typeof(a) != 'number')) - throw("Expecting number but found " + typeof(a)); - switch (m[7]) { - case 'b': a = a.toString(2); break; - case 'c': a = String.fromCharCode(a); break; - case 'd': a = parseInt(a); break; - case 'e': a = m[6] ? a.toExponential(m[6]) : a.toExponential(); break; - case 'f': a = m[6] ? parseFloat(a).toFixed(m[6]) : parseFloat(a); break; - case 'o': a = a.toString(8); break; - case 's': a = ((a = String(a)) && m[6] ? a.substring(0, m[6]) : a); break; - case 'u': a = Math.abs(a); break; - case 'x': a = a.toString(16); break; - case 'X': a = a.toString(16).toUpperCase(); break; - } - a = (/[def]/.test(m[7]) && m[2] && a > 0 ? '+' + a : a); - c = m[3] ? m[3] == '0' ? '0' : m[3].charAt(1) : ' '; - x = m[5] - String(a).length; - p = m[5] ? str_repeat(c, x) : ''; - o.push(m[4] ? a + p : p + a); - } - else throw ("Huh ?!"); - f = f.substring(m[0].length); - } - return o.join(''); -} diff --git a/webgui/js/app/util.js b/webgui/js/app/util.js deleted file mode 100644 index b030d5f610272ff70d4e982fcadcf1aa77c2037a..0000000000000000000000000000000000000000 --- a/webgui/js/app/util.js +++ /dev/null @@ -1,12 +0,0 @@ -/* Generate a random password */ -function getRandomPass(len) { - var keylist="abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789" - var ret='' - - - for (i = 0; i < len; i++) - ret += keylist.charAt( Math.floor(Math.random() * keylist.length) ) - - return ret -} - diff --git a/webgui/js/app/windows/AdminUserLogs.js b/webgui/js/app/windows/AdminUserLogs.js index c6afb4ef976b8af77e9ff945902e03fab8ac4544..94455141b85ed16edd7c6ef4b7c868cdf57f7cab 100644 --- a/webgui/js/app/windows/AdminUserLogs.js +++ b/webgui/js/app/windows/AdminUserLogs.js @@ -177,6 +177,10 @@ function showAdminUserLogsWindow(id) { header: "Output Mbyte", dataIndex: 'AcctOutputMbyte' }, + { + header: "Session Uptime", + dataIndex: 'AcctSessionTime' + }, { header: "Term. Reason", dataIndex: 'ConnectTermReason' @@ -219,6 +223,7 @@ function showAdminUserLogsWindow(id) { {type: 'string', dataIndex: 'FramedIPAddress'}, {type: 'numeric', dataIndex: 'AcctInputMbyte'}, {type: 'numeric', dataIndex: 'AcctOutputMbyte'}, + {type: 'numeric', dataIndex: 'AcctSessionTime'}, {type: 'string', dataIndex: 'ConnectTermReason'} ] } @@ -229,22 +234,89 @@ function showAdminUserLogsWindow(id) { store.on('load',function() { var inputTotal = store.sum('AcctInputMbyte'); var outputTotal = store.sum('AcctOutputMbyte'); + var uptimeTotal = store.sum('AcctSessionTime'); - var userCap = 3000; - var userTopups = 1000; - - // Total up into this ... - - var userTotalAllowed = userCap + userTopups; - var userUsage = inputTotal + outputTotal; - var userLeft = userTotalAllowed - userUsage; + var searchForm = adminUserLogsWindow.getComponent('search-form'); + var afterField = (searchForm.getForm().findField('after')).getValue(); + var beforeField = (searchForm.getForm().findField('before')).getValue(); + + var trafficCap; + var uptimeCap; + var trafficTopups; + var uptimeTopups; + + var response; + + // Mask parent window + adminUserLogsWindow.getEl().mask(); + + uxAjaxRequest( + adminUserLogsWindow, + { + params: { + From: afterField, + To: beforeField, + ID: id, + SOAPUsername: globalConfig.soap.username, + SOAPPassword: globalConfig.soap.password, + SOAPAuthType: globalConfig.soap.authtype, + SOAPModule: 'AdminUserLogs', + SOAPFunction: 'getAdminUserLogsSummary', + SOAPParams: '0:ID,0:From,0:To' + }, + customSuccess: function (result) { + response = Ext.decode(result.responseText); - var form = adminUserLogsWindow.getComponent('summary-form'); - var summaryTotal = form.getForm().findField('summaryTotal'); + trafficCap = response.data.trafficCap; + uptimeCap = response.data.uptimeCap; + trafficTopups = response.data.trafficTopups; + uptimeTopups = response.data.uptimeTopups; - summaryTotal.setValue( - sprintf('Cap Total: %6d\nTopups : %6d\n-----------------\n %6d\n-----------------\nUsage : %6d\n=================\nAvailable: %6d',userCap,userTopups,userTotalAllowed,userUsage,userLeft) - ); + // Total up traffic + var trafficTotalAllowed; + if (trafficCap < 0) { + trafficTotalAllowed = trafficTopups; + } else { + trafficTotalAllowed = trafficCap + trafficTopups; + } + var trafficUsage = inputTotal + outputTotal; + var trafficRemaining = trafficTotalAllowed - trafficUsage; + + var form = adminUserLogsWindow.getComponent('summary-form'); + var summaryTotal = form.getForm().findField('summaryTotal'); + + // Format string before printing + var summaryString = ''; + if (trafficCap == -1) { + trafficCap = 'Prepaid'; + summaryString += sprintf( + 'Traffic Cap: %s Traffic Topups: %d\n------------------------------------\n'+ + 'Allowed: %d Used: %d\n-------------------------------\nRemaining: %d', + trafficCap,trafficTopups,trafficTotalAllowed,trafficUsage,trafficRemaining + ); + + } else if (trafficCap == 0) { + summaryString += sprintf( + 'Traffic Cap: Uncapped\n---------------------------------\nUsed: %d', + trafficUsage + ); + + } else { + summaryString += sprintf( + 'Traffic Cap: %d Traffic Topups: %d\n------------------------------------\n'+ + 'Allowed: %d Used: %d\n-------------------------------\nRemaining: %d', + trafficCap,trafficTopups,trafficTotalAllowed,trafficUsage,trafficRemaining + ); + } + +alert(summaryString); + summaryTotal.setValue(summaryString); + }, + failure: function (result) { + Ext.MessageBox.alert('Failed', 'Couldn\'t fetch data: '+result.date); + }, + }); + }); adminUserLogsWindow.show(); }