snappymail/dev/Settings/Admin/Domains.js

71 lines
1.8 KiB
JavaScript
Raw Normal View History

2014-08-21 23:08:34 +08:00
2016-07-16 05:29:42 +08:00
import _ from '_';
import ko from 'ko';
2016-06-30 08:02:45 +08:00
2016-07-16 05:29:42 +08:00
import {StorageResultType} from 'Common/Enums';
import {showScreenPopup} from 'Knoin/Knoin';
2016-06-30 08:02:45 +08:00
2016-07-16 05:29:42 +08:00
import DomainStore from 'Stores/Admin/Domain';
import Remote from 'Remote/Admin/Ajax';
2016-06-30 08:02:45 +08:00
import {getApp} from 'Helper/Apps/Admin';
2016-07-16 05:29:42 +08:00
class DomainsAdminSettings
2016-06-30 08:02:45 +08:00
{
2016-07-16 05:29:42 +08:00
constructor() {
this.domains = DomainStore.domains;
2016-06-30 08:02:45 +08:00
2016-07-16 05:29:42 +08:00
this.visibility = ko.computed(() => (this.domains.loading() ? 'visible' : 'hidden'));
2016-06-30 08:02:45 +08:00
2016-07-16 05:29:42 +08:00
this.domainForDeletion = ko.observable(null).deleteAccessHelper();
2016-06-30 08:02:45 +08:00
2016-07-16 05:29:42 +08:00
this.onDomainListChangeRequest = _.bind(this.onDomainListChangeRequest, this);
this.onDomainLoadRequest = _.bind(this.onDomainLoadRequest, this);
}
2016-06-30 08:02:45 +08:00
2016-07-16 05:29:42 +08:00
createDomain() {
showScreenPopup(require('View/Popup/Domain'));
}
2016-06-30 08:02:45 +08:00
2016-07-16 05:29:42 +08:00
createDomainAlias() {
showScreenPopup(require('View/Popup/DomainAlias'));
}
2016-06-30 08:02:45 +08:00
2016-07-16 05:29:42 +08:00
deleteDomain(domain) {
this.domains.remove(domain);
Remote.domainDelete(this.onDomainListChangeRequest, domain.name);
}
2016-06-30 08:02:45 +08:00
2016-07-16 05:29:42 +08:00
disableDomain(domain) {
domain.disabled(!domain.disabled());
Remote.domainDisable(this.onDomainListChangeRequest, domain.name, domain.disabled());
}
2016-06-30 08:02:45 +08:00
2016-07-16 05:29:42 +08:00
onBuild(oDom) {
const self = this;
oDom
.on('click', '.b-admin-domains-list-table .e-item .e-action', function() { // eslint-disable-line prefer-arrow-callback
const domainItem = ko.dataFor(this); // eslint-disable-line no-invalid-this
2016-07-16 05:29:42 +08:00
if (domainItem)
{
Remote.domain(self.onDomainLoadRequest, domainItem.name);
}
});
getApp().reloadDomainList();
2014-08-21 23:08:34 +08:00
}
2016-07-16 05:29:42 +08:00
onDomainLoadRequest(sResult, oData) {
if (StorageResultType.Success === sResult && oData && oData.Result)
{
showScreenPopup(require('View/Popup/Domain'), [oData.Result]);
}
}
onDomainListChangeRequest() {
getApp().reloadDomainList();
2016-07-16 05:29:42 +08:00
}
}
2014-08-21 23:08:34 +08:00
2016-07-16 03:54:37 +08:00
export {DomainsAdminSettings, DomainsAdminSettings as default};