snappymail/dev/Settings/Admin/Prem/Licensing.js
2016-09-15 23:34:30 +03:00

71 lines
1.7 KiB
JavaScript

import ko from 'ko';
import moment from 'moment';
import {settingsGet} from 'Storage/Settings';
import {showScreenPopup} from 'Knoin/Knoin';
import LicenseStore from 'Stores/Admin/License';
import {getApp} from 'Helper/Apps/Admin';
class LicensingPremAdminSettings
{
constructor() {
this.licensing = LicenseStore.licensing;
this.licensingProcess = LicenseStore.licensingProcess;
this.licenseValid = LicenseStore.licenseValid;
this.licenseExpired = LicenseStore.licenseExpired;
this.licenseError = LicenseStore.licenseError;
this.licenseTrigger = LicenseStore.licenseTrigger;
this.adminDomain = ko.observable('');
this.subscriptionEnabled = ko.observable(!!settingsGet('SubscriptionEnabled'));
this.licenseTrigger.subscribe(() => {
if (this.subscriptionEnabled())
{
getApp().reloadLicensing(true);
}
});
}
onBuild() {
if (this.subscriptionEnabled())
{
getApp().reloadLicensing(false);
}
}
onShow() {
this.adminDomain(settingsGet('AdminDomain'));
}
showActivationForm() {
showScreenPopup(require('View/Popup/Activate'));
}
showTrialForm() {
showScreenPopup(require('View/Popup/Activate'), [true]);
}
/**
* @returns {boolean}
*/
licenseIsUnlim() {
return 1898625600 === this.licenseExpired() || 1898625700 === this.licenseExpired(); // eslint-disable-line no-magic-numbers
}
/**
* @returns {string}
*/
licenseExpiredMomentValue() {
const
time = this.licenseExpired(),
momentUnix = moment.unix(time);
return this.licenseIsUnlim() ? 'Never' : (time && (momentUnix.format('LL') + ' (' + momentUnix.from(moment()) + ')'));
}
}
export {LicensingPremAdminSettings, LicensingPremAdminSettings as default};