snappymail/dev/Remote/Admin/Ajax.js

275 lines
5.2 KiB
JavaScript

import { AbstractAjaxRemote } from 'Remote/AbstractAjax';
class RemoteAdminAjax extends AbstractAjaxRemote {
constructor() {
super();
this.oRequests = {};
}
/**
* @param {?Function} fCallback
* @param {string} sLogin
* @param {string} sPassword
*/
adminLogin(fCallback, sLogin, sPassword) {
this.defaultRequest(fCallback, 'AdminLogin', {
Login: sLogin,
Password: sPassword
});
}
/**
* @param {?Function} fCallback
*/
adminLogout(fCallback) {
this.defaultRequest(fCallback, 'AdminLogout');
}
/**
* @param {?Function} fCallback
* @param {?} oData
*/
saveAdminConfig(fCallback, oData) {
this.defaultRequest(fCallback, 'AdminSettingsUpdate', oData);
}
/**
* @param {string} key
* @param {?Function} valueFn
* @param {?Function} fn
*/
saveAdminConfigHelper(key, valueFn, fn) {
return (value) => {
const data = {};
data[key] = valueFn ? valueFn(value) : value;
this.saveAdminConfig(fn || null, data);
};
}
/**
* @param {?Function} fCallback
* @param {boolean=} bIncludeAliases = true
*/
domainList(fCallback, bIncludeAliases = true) {
this.defaultRequest(fCallback, 'AdminDomainList', {
IncludeAliases: bIncludeAliases ? 1 : 0
});
}
/**
* @param {?Function} fCallback
*/
pluginList(fCallback) {
this.defaultRequest(fCallback, 'AdminPluginList');
}
/**
* @param {?Function} fCallback
*/
packagesList(fCallback) {
this.defaultRequest(fCallback, 'AdminPackagesList');
}
/**
* @param {?Function} fCallback
* @param {Object} oPackage
*/
packageInstall(fCallback, oPackage) {
this.defaultRequest(
fCallback,
'AdminPackageInstall',
{
Id: oPackage.id,
Type: oPackage.type,
File: oPackage.file
},
60000
);
}
/**
* @param {?Function} fCallback
* @param {Object} oPackage
*/
packageDelete(fCallback, oPackage) {
this.defaultRequest(fCallback, 'AdminPackageDelete', {
Id: oPackage.id
});
}
/**
* @param {?Function} fCallback
* @param {string} sName
*/
domain(fCallback, sName) {
this.defaultRequest(fCallback, 'AdminDomainLoad', {
Name: sName
});
}
/**
* @param {?Function} fCallback
* @param {string} sName
*/
plugin(fCallback, sName) {
this.defaultRequest(fCallback, 'AdminPluginLoad', {
Name: sName
});
}
/**
* @param {?Function} fCallback
* @param {string} sName
*/
domainDelete(fCallback, sName) {
this.defaultRequest(fCallback, 'AdminDomainDelete', {
Name: sName
});
}
/**
* @param {?Function} fCallback
* @param {string} sName
* @param {boolean} bDisabled
*/
domainDisable(fCallback, sName, bDisabled) {
return this.defaultRequest(fCallback, 'AdminDomainDisable', {
Name: sName,
Disabled: bDisabled ? 1 : 0
});
}
/**
* @param {?Function} fCallback
* @param {Object} oConfig
*/
pluginSettingsUpdate(fCallback, oConfig) {
return this.defaultRequest(fCallback, 'AdminPluginSettingsUpdate', oConfig);
}
/**
* @param {?Function} fCallback
* @param {string} sName
* @param {boolean} bDisabled
*/
pluginDisable(fCallback, sName, bDisabled) {
return this.defaultRequest(fCallback, 'AdminPluginDisable', {
Name: sName,
Disabled: bDisabled ? 1 : 0
});
}
createDomainAlias(fCallback, sName, sAlias) {
this.defaultRequest(fCallback, 'AdminDomainAliasSave', {
Name: sName,
Alias: sAlias
});
}
createOrUpdateDomain(
fCallback,
bCreate,
sName,
sIncHost,
iIncPort,
sIncSecure,
bIncShortLogin,
bUseSieve,
sSieveAllowRaw,
sSieveHost,
iSievePort,
sSieveSecure,
sOutHost,
iOutPort,
sOutSecure,
bOutShortLogin,
bOutAuth,
bOutPhpMail,
sWhiteList
) {
this.defaultRequest(fCallback, 'AdminDomainSave', {
Create: bCreate ? 1 : 0,
Name: sName,
IncHost: sIncHost,
IncPort: iIncPort,
IncSecure: sIncSecure,
IncShortLogin: bIncShortLogin ? 1 : 0,
UseSieve: bUseSieve ? 1 : 0,
SieveAllowRaw: sSieveAllowRaw ? 1 : 0,
SieveHost: sSieveHost,
SievePort: iSievePort,
SieveSecure: sSieveSecure,
OutHost: sOutHost,
OutPort: iOutPort,
OutSecure: sOutSecure,
OutShortLogin: bOutShortLogin ? 1 : 0,
OutAuth: bOutAuth ? 1 : 0,
OutUsePhpMail: bOutPhpMail ? 1 : 0,
WhiteList: sWhiteList
});
}
testConnectionForDomain(
fCallback,
sName,
sIncHost,
iIncPort,
sIncSecure,
bUseSieve,
sSieveHost,
iSievePort,
sSieveSecure,
sOutHost,
iOutPort,
sOutSecure,
bOutAuth,
bOutPhpMail
) {
this.defaultRequest(fCallback, 'AdminDomainTest', {
Name: sName,
IncHost: sIncHost,
IncPort: iIncPort,
IncSecure: sIncSecure,
UseSieve: bUseSieve ? 1 : 0,
SieveHost: sSieveHost,
SievePort: iSievePort,
SieveSecure: sSieveSecure,
OutHost: sOutHost,
OutPort: iOutPort,
OutSecure: sOutSecure,
OutAuth: bOutAuth ? 1 : 0,
OutUsePhpMail: bOutPhpMail ? 1 : 0
});
}
/**
* @param {?Function} fCallback
* @param {?} oData
*/
testContacts(fCallback, oData) {
this.defaultRequest(fCallback, 'AdminContactsTest', oData);
}
/**
* @param {?Function} fCallback
* @param {?} oData
*/
saveNewAdminPassword(fCallback, oData) {
this.defaultRequest(fCallback, 'AdminPasswordUpdate', oData);
}
/**
* @param {?Function} fCallback
*/
adminPing(fCallback) {
this.defaultRequest(fCallback, 'AdminPing');
}
}
export default new RemoteAdminAjax();