From 5397fc21c6e5972333dbc6f7470c26309c7a0bc2 Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Tue, 21 Jul 2015 11:17:50 +0530 Subject: [PATCH] quota: add credit management in the ui Signed-off-by: Rohit Yadav --- client/tomcatconf/commands.properties.in | 6 +- ui/plugins/quota/quota.js | 250 ++++++++++++++++++++--- 2 files changed, 218 insertions(+), 38 deletions(-) diff --git a/client/tomcatconf/commands.properties.in b/client/tomcatconf/commands.properties.in index 03b1918312d..161a0cce7d7 100644 --- a/client/tomcatconf/commands.properties.in +++ b/client/tomcatconf/commands.properties.in @@ -785,13 +785,11 @@ addGloboDnsHost=1 ### Quota Service quotaTariffList=15 quotaTariffUpdate=7 - -quotaRefresh=15 -quotaCredits=15 quotaStatement=15 +quotaCredits=1 quotaBalance=15 +quotaRefresh=7 quotaEmailTemplateUpdate=15 quotaEmailTemplateDelete=15 quotaEmailTemplateAdd=15 -quotaReports=15 diff --git a/ui/plugins/quota/quota.js b/ui/plugins/quota/quota.js index d60f9728d7a..923c761e72a 100644 --- a/ui/plugins/quota/quota.js +++ b/ui/plugins/quota/quota.js @@ -14,6 +14,8 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. + +var g_quotaCurrency = ''; (function (cloudStack) { cloudStack.plugins.quota = function(plugin) { @@ -64,6 +66,22 @@ return true; }, show: function() { + $.ajax({ + url: createURL('listConfigurations'), + data: { + name: 'quota.currency.symbol' + }, + success: function(json) { + if (json.hasOwnProperty('listconfigurationsresponse') && json.listconfigurationsresponse.hasOwnProperty('configuration')) { + console.log(json.listconfigurationsresponse); + g_quotaCurrency = json.listconfigurationsresponse.configuration[0].value + ' '; + } + }, + error: function(data) { + // FIXME: what to do on error? + } + }); + var $quotaView = $('
'); var $toolbar = $('
'); var $tabs = $('
    '); @@ -101,7 +119,10 @@ }); generateStatementButton.click(function() { - var domainId = domainDropdown.find("select :selected").val(); + var domainId = g_domainid; + if (isAdmin() || isDomainAdmin()) { + domainId = domainDropdown.find("select :selected").val(); + } var accountId = accountDropdown.find("select :selected").val(); var account = accountDropdown.find("select :selected").html(); var startDate = startDateInput.val(); @@ -123,14 +144,15 @@ generatedStatement.empty(); $("

    ").appendTo(generatedStatement); - $("

    ").html("Total Quota: " + totalQuota).appendTo(generatedStatement); + $("

    ").html("Total Quota: " + g_quotaCurrency + totalQuota).appendTo(generatedStatement); if (quotaUsage.length < 1) { return; } + $("

    ").html("
    Quota Usage:").appendTo(generatedStatement); var statementTable = $(''); - statementTable.appendTo($('
    ').appendTo(generatedStatement)); + statementTable.appendTo($('
    ').appendTo(generatedStatement)); var statementTableHead = $('
    '); $('
    ').html(_l('label.usage.type')).appendTo(statementTableHead); @@ -151,7 +173,7 @@ } $('').html(quotaUsage[i].type).appendTo(statementTableBodyRow); $('').html(quotaUsage[i].name).appendTo(statementTableBodyRow); - $('').html(quotaUsage[i].quota).appendTo(statementTableBodyRow); + $('').html(g_quotaCurrency + quotaUsage[i].quota).appendTo(statementTableBodyRow); $('').html(quotaUsage[i].unit).appendTo(statementTableBodyRow); $('').html(quotaUsage[i].startdate).appendTo(statementTableBodyRow); $('').html(quotaUsage[i].enddate).appendTo(statementTableBodyRow); @@ -177,38 +199,74 @@ generateStatementButton.appendTo(statementForm); - - $.ajax({ - url: createURL('listDomains&listall=true'), - success: function(json) { - var domains = json.listdomainsresponse.domain; - var dropdown = $(''); - for (var i = 0; i < accounts.length; i++) { - $('').appendTo(dropdown); + $.ajax({ + url: createURL('listAccounts'), + data : data, + success: function(json) { + accountDropdown.empty(); + if (json.hasOwnProperty('listaccountsresponse') && json.listaccountsresponse.hasOwnProperty('account')) { + var accounts = json.listaccountsresponse.account; + var dropdown = $(''); + if (domains.length > 1) { + $('').appendTo(dropdown); + } + for (var i = 0; i < domains.length; i++) { + $('').appendTo(dropdown); + } + $('Domain: ').appendTo(domainDropdown); + dropdown.appendTo(domainDropdown); + + dropdown.change(function() { + var selectedDomainId = $(this).find(':selected').val(); + if (!selectedDomainId) { + accountDropdown.empty(); + $('Accounts: Select a valid domain to start with').appendTo(accountDropdown); + return; + } + accountLister(selectedDomainId); + }); + dropdown.change(); + }, + error: function(data) { + // FIXME: what to do on error? + } + }); + }; + + if (isAdmin() || isDomainAdmin()) { + domainLister(); + } else { + accountLister(g_domainid); + } statementForm.appendTo(statementView); generatedStatement.appendTo(statementView); @@ -307,6 +365,120 @@ tariffView.appendTo($node); } }, + {'id': 'quota-credit', + 'name': 'Manage Credits', + 'render': function($node) { + var manageCreditView = $('
    '); + var creditStatement = $('
    '); + + var creditForm = $('
    '); + var domainDropdown = $('
    '); + var accountDropdown = $('