/home/ivoiecob/email.hirewise-va.com/modules/MailWebclient/js/popups/SetSystemFoldersPopup.js
'use strict';
var
_ = require('underscore'),
ko = require('knockout'),
TextUtils = require('%PathToCoreWebclientModule%/js/utils/Text.js'),
Utils = require('%PathToCoreWebclientModule%/js/utils/Common.js'),
Api = require('%PathToCoreWebclientModule%/js/Api.js'),
CAbstractPopup = require('%PathToCoreWebclientModule%/js/popups/CAbstractPopup.js'),
AccountList = require('modules/%ModuleName%/js/AccountList.js'),
Ajax = require('modules/%ModuleName%/js/Ajax.js'),
MailCache = require('modules/%ModuleName%/js/Cache.js'),
Settings = require('modules/%ModuleName%/js/Settings.js')
;
/**
* @constructor
*/
function CSetSystemFoldersPopup()
{
CAbstractPopup.call(this);
this.folders = MailCache.editedFolderList;
this.sentFolderFullName = ko.observable('');
this.draftsFolderFullName = ko.observable('');
this.spamFolderFullName = ko.observable('');
this.trashFolderFullName = ko.observable('');
this.options = ko.observableArray([]);
this.defaultOptionsAfterRender = Utils.defaultOptionsAfterRender;
this.bAllowSpamFolderEditing = Settings.AllowSpamFolder;
}
_.extendOwn(CSetSystemFoldersPopup.prototype, CAbstractPopup.prototype);
CSetSystemFoldersPopup.prototype.PopupTemplate = '%ModuleName%_Settings_SetSystemFoldersPopup';
CSetSystemFoldersPopup.prototype.onOpen = function ()
{
var oFolderList = MailCache.editedFolderList();
this.options(oFolderList.getOptions(TextUtils.i18n('%MODULENAME%/LABEL_NO_FOLDER_USAGE_ASSIGNED'), false, false, false));
this.sentFolderFullName(oFolderList.sentFolderFullName());
this.draftsFolderFullName(oFolderList.draftsFolderFullName());
if (Settings.AllowSpamFolder)
{
this.spamFolderFullName(oFolderList.spamFolderFullName());
}
this.trashFolderFullName(oFolderList.trashFolderFullName());
};
/**
* @param {Object} oResponse
* @param {Object} oRequest
*/
CSetSystemFoldersPopup.prototype.onResponseFoldersSetupSystem = function (oResponse, oRequest)
{
if (oResponse.Result === false)
{
Api.showErrorByCode(oResponse, TextUtils.i18n('%MODULENAME%/ERROR_SETUP_SPECIAL_FOLDERS'));
MailCache.getFolderList(AccountList.editedId());
}
};
CSetSystemFoldersPopup.prototype.apply = function ()
{
var
oFolderList = MailCache.editedFolderList(),
bHasChanges = false,
oParameters = null
;
if (this.sentFolderFullName() !== oFolderList.sentFolderFullName())
{
oFolderList.sentFolderFullName(this.sentFolderFullName());
bHasChanges = true;
}
if (this.draftsFolderFullName() !== oFolderList.draftsFolderFullName())
{
oFolderList.draftsFolderFullName(this.draftsFolderFullName());
bHasChanges = true;
}
if (Settings.AllowSpamFolder && this.spamFolderFullName() !== oFolderList.spamFolderFullName())
{
oFolderList.spamFolderFullName(this.spamFolderFullName());
bHasChanges = true;
}
if (this.trashFolderFullName() !== oFolderList.trashFolderFullName())
{
oFolderList.trashFolderFullName(this.trashFolderFullName());
bHasChanges = true;
}
if (bHasChanges)
{
oParameters = {
'AccountID': AccountList.editedId(),
'Sent': oFolderList.sentFolderFullName(),
'Drafts': oFolderList.draftsFolderFullName(),
'Trash': oFolderList.trashFolderFullName(),
'Spam': oFolderList.spamFolderFullName()
};
Ajax.send('SetupSystemFolders', oParameters, this.onResponseFoldersSetupSystem, this);
}
this.closePopup();
};
module.exports = new CSetSystemFoldersPopup();