File: /home/barbeatleanalyti/www/public_html/webmail/modules/MailWebclient/js/views/CFolderListView.js
'use strict';
var
ko = require('knockout'),
TextUtils = require('%PathToCoreWebclientModule%/js/utils/Text.js'),
ModulesManager = require('%PathToCoreWebclientModule%/js/ModulesManager.js'),
Routing = require('%PathToCoreWebclientModule%/js/Routing.js'),
Screens = require('%PathToCoreWebclientModule%/js/Screens.js'),
UserSettings = require('%PathToCoreWebclientModule%/js/Settings.js'),
Popups = require('%PathToCoreWebclientModule%/js/Popups.js'),
CreateFolderPopup = require('modules/%ModuleName%/js/popups/CreateFolderPopup.js'),
AccountList = require('modules/%ModuleName%/js/AccountList.js'),
MailCache = require('modules/%ModuleName%/js/Cache.js'),
Settings = require('modules/%ModuleName%/js/Settings.js')
;
/**
* @constructor
*/
function CFolderListView()
{
this.folderList = MailCache.folderList;
this.manageFoldersHash = ko.computed(function () {
if (ModulesManager.isModuleEnabled('SettingsWebclient'))
{
var
oCurrentAccount = AccountList.getCurrent()
;
if (oCurrentAccount)
{
return Routing.buildHashFromArray(['settings', 'mail-accounts', 'account', oCurrentAccount.hash(), 'folders']);
}
}
return '#';
}, this);
this.quotaProc = ko.observable(-1);
this.quotaDesc = ko.observable('');
if (UserSettings.ShowQuotaBar)
{
ko.computed(function () {
MailCache.quotaChangeTrigger();
var
oAccount = AccountList.getCurrent(),
iQuota = oAccount ? oAccount.quota() : 0,
iUsed = oAccount ? oAccount.usedSpace() : 0,
iProc = 0 < iQuota ? Math.ceil((iUsed / iQuota) * 100) : -1
;
iProc = 100 < iProc ? 100 : iProc;
this.quotaProc(iProc);
this.quotaDesc(-1 < iProc ?
TextUtils.i18n('COREWEBCLIENT/INFO_QUOTA', {
'PROC': iProc,
'QUOTA': TextUtils.getFriendlySize(iQuota * 1024)
}) : '');
if (UserSettings.QuotaWarningPerc > 0 && iProc !== -1 && UserSettings.QuotaWarningPerc > (100 - iProc))
{
Screens.showError(TextUtils.i18n('COREWEBCLIENT/WARNING_QUOTA_ALMOST_REACHED'), true);
}
return true;
}, this);
}
this.visibleNewFolderButton = ko.computed(function () {
return Settings.AllowAddNewFolderOnMainScreen && this.folderList().collection().length > 0;
}, this);
}
CFolderListView.prototype.ViewTemplate = '%ModuleName%_FoldersView';
CFolderListView.prototype.addNewFolder = function ()
{
Popups.showPopup(CreateFolderPopup);
};
module.exports = CFolderListView;