File: /home/barbeatleanalyti/www/public_html/webmail/modules/OAuthIntegratorWebclient/js/Settings.js
'use strict';
var
_ = require('underscore'),
ko = require('knockout'),
Types = require('%PathToCoreWebclientModule%/js/utils/Types.js'),
App = require('%PathToCoreWebclientModule%/js/App.js')
;
module.exports = {
ServerModuleName: 'OAuthIntegratorWebclient',
HashModuleName: 'oauth-integrator',
AuthModuleName: 'StandardAuth',
OnlyPasswordForAccountCreate: true,
userAccountsCount: ko.observable(0),
Services: [],
/**
* Initializes settings from AppData object sections.
*
* @param {Object} oAppData Object contained modules settings.
*/
init: function (oAppData)
{
var oAppDataSection = oAppData['%ModuleName%'];
if (!_.isEmpty(oAppDataSection))
{
this.AuthModuleName = Types.pString(oAppDataSection.AuthModuleName, this.AuthModuleName);
this.OnlyPasswordForAccountCreate = Types.pBool(oAppDataSection.OnlyPasswordForAccountCreate, this.OnlyPasswordForAccountCreate);
this.Services = Types.pArray(oAppDataSection.Services, this.Services);
}
App.registerUserAccountsCount(this.userAccountsCount);
},
/**
* Updates settings that is edited by administrator.
*
* @param {object} oServices Object with services settings.
*/
updateAdmin: function (oServices)
{
_.each(this.Services, function (oService) {
var oNewService = oServices[oService.Name];
if (oNewService)
{
oService.EnableModule = oNewService.EnableModule;
oService.Id = oNewService.Id;
oService.Secret = oNewService.Secret;
}
});
}
};