/* Copyright (c) 2006-2010, ePages GmbH All Rights Reserved. */ dojo.provide("epages.cartridges.de_epages.mediagallery.widget.GallerySizeUsage"); dojo.require('epages.widget.LocalizedWidget'); dojo.require("dojo.number"); dojo.declare( "epages.cartridges.de_epages.mediagallery.widget.GallerySizeUsage", [epages.widget.LocalizedWidget], { /** * public properties */ maxGallerySize : 0.0, currentGallerySize : 0.0, unitString : 'MB', usageTextClass : undefined, /** * widget properties */ percentageClass : 'PercentageNormal', templatePath : dojo.moduleUrl('epages.cartridges.de_epages.mediagallery.widget','templates/GallerySizeUsage.html'), translationName : dojo.moduleUrl('epages.cartridges.de_epages.mediagallery.widget','templates/translation'), postCreate: function() { this.inherited("postCreate", arguments); dojo.subscribe(this.id+'/updateCurrentBytes', this, 'updateCurrentBytes'); }, updateUsage : function(/* Object */ usageData) { // summary: Write gallery usage data to class members and update widget. this.maxGallerySize = parseFloat(usageData.maxGallerySize); this.currentGallerySize = parseFloat(usageData.currentGallerySize); this._updateWidget(); }, updateCurrentBytes : function (/* Integer */ kilobytes) { // summary: Change the current gallery usage and update the widget. this.currentGallerySize = parseFloat(kilobytes); this._updateWidget(); }, _updateWidget : function() { // summary: Compose strings with usage percentage, max gallery size and current gallery size // and update the widget's template attach points. var percentage = 100 * this.currentGallerySize / this.maxGallerySize; if(percentage > 100) { percentage = 100.0; } var tmpCurrentSize = this.currentGallerySize; var tmpMaxSize = this.maxGallerySize; if(tmpCurrentSize > tmpMaxSize) { tmpCurrentSize = tmpMaxSize; } var displayPercentageNoDec = dojo.number.round(percentage, 0).toString() + '%'; var displayCurrentValue = dojo.number.round(tmpCurrentSize/1024,0).toString(); var displayMaxValue = dojo.number.round(tmpMaxSize/1024,0).toString(); var displayFreeMemory = dojo.number.round((tmpMaxSize - tmpCurrentSize)/1024,0).toString(); if(percentage > 90.0) { this.percentageClass = 'PercentageCritical'; } else if(percentage > 60.0) { this.percentageClass = 'PercentageMiddle'; } else { this.percentageClass = 'PercentageNormal'; } dojo.attr(this.percentageClassNode, 'class', this.percentageClass); dojo.attr(this.percentageClassNode, 'style', { 'width' : displayPercentageNoDec }); if(this.usageTextClass != undefined) { dojo.removeClass(this.usageText); dojo.addClass(this.usageText, this.usageTextClass); } this.statusBar.title = this.translate('TotalMemory') + ': ' + displayMaxValue + ' ' + this.unitString + ' / ' + this.translate('UsedMemory') + ': ' + displayCurrentValue + ' ' + this.unitString; this.usageTextPercentage.innerHTML = displayPercentageNoDec + ' '; this.usageText.innerHTML = this.translate('FreeMemory')+ ': ' + displayFreeMemory + ' ' + this.unitString; } });