import _ from '_'; import ko from 'ko'; import {delegateRunOnDestroy, boolToAjax} from 'Common/Utils'; import {Magics} from 'Common/Enums'; import {bIsHttps} from 'Common/Globals'; import PgpStore from 'Stores/User/Pgp'; import SettingsStore from 'Stores/User/Settings'; import Remote from 'Remote/User/Ajax'; import {getApp} from 'Helper/Apps/User'; import {showScreenPopup} from 'Knoin/Knoin'; class OpenPgpUserSettings { constructor() { this.openpgpkeys = PgpStore.openpgpkeys; this.openpgpkeysPublic = PgpStore.openpgpkeysPublic; this.openpgpkeysPrivate = PgpStore.openpgpkeysPrivate; this.openPgpKeyForDeletion = ko.observable(null).deleteAccessHelper(); this.allowDraftAutosave = SettingsStore.allowDraftAutosave; this.isHttps = bIsHttps; } addOpenPgpKey() { showScreenPopup(require('View/Popup/AddOpenPgpKey')); } generateOpenPgpKey() { showScreenPopup(require('View/Popup/NewOpenPgpKey')); } viewOpenPgpKey(openPgpKey) { if (openPgpKey) { showScreenPopup(require('View/Popup/ViewOpenPgpKey'), [openPgpKey]); } } /** * @param {OpenPgpKeyModel} openPgpKeyToRemove * @returns {void} */ deleteOpenPgpKey(openPgpKeyToRemove) { if (openPgpKeyToRemove && openPgpKeyToRemove.deleteAccess()) { this.openPgpKeyForDeletion(null); if (openPgpKeyToRemove && PgpStore.openpgpKeyring) { const findedItem = _.find(PgpStore.openpgpkeys(), (key) => openPgpKeyToRemove === key); if (findedItem) { PgpStore.openpgpkeys.remove(findedItem); delegateRunOnDestroy(findedItem); PgpStore .openpgpKeyring[findedItem.isPrivate ? 'privateKeys' : 'publicKeys'] .removeForId(findedItem.guid); PgpStore.openpgpKeyring.store(); } getApp().reloadOpenPgpKeys(); } } } onBuild() { _.delay(() => { this.allowDraftAutosave.subscribe( Remote.saveSettingsHelper('AllowDraftAutosave', boolToAjax) ); }, Magics.Time50ms); } } export {OpenPgpUserSettings, OpenPgpUserSettings as default};