mirror of
https://github.com/the-djmaze/snappymail.git
synced 2024-09-20 07:35:55 +08:00
53 lines
1.1 KiB
JavaScript
53 lines
1.1 KiB
JavaScript
import { AbstractModel } from 'Knoin/AbstractModel';
|
|
import { addObservablesTo, addComputablesTo } from 'External/ko';
|
|
|
|
export class IdentityModel extends AbstractModel {
|
|
/**
|
|
* @param {string} id
|
|
* @param {string} email
|
|
*/
|
|
constructor() {
|
|
super();
|
|
|
|
addObservablesTo(this, {
|
|
id: '',
|
|
label: '',
|
|
email: '',
|
|
name: '',
|
|
|
|
replyTo: '',
|
|
bcc: '',
|
|
sentFolder: '',
|
|
|
|
signature: '',
|
|
signatureInsertBefore: false,
|
|
|
|
pgpSign: false,
|
|
pgpEncrypt: false,
|
|
|
|
smimeKey: '',
|
|
smimeCertificate: '',
|
|
|
|
askDelete: false,
|
|
|
|
exists: false
|
|
});
|
|
|
|
addComputablesTo(this, {
|
|
smimeKeyEncrypted: () => this.smimeKey().includes('-----BEGIN ENCRYPTED PRIVATE KEY-----'),
|
|
smimeKeyValid: () => /^-----BEGIN (ENCRYPTED |RSA )?PRIVATE KEY-----/.test(this.smimeKey()),
|
|
smimeCertificateValid: () => /^-----BEGIN CERTIFICATE-----/.test(this.smimeCertificate())
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @returns {string}
|
|
*/
|
|
formattedName() {
|
|
const name = this.name(),
|
|
email = this.email(),
|
|
label = this.label();
|
|
return (name ? `${name} ` : '') + `<${email}>` + (label ? ` (${label})` : '');
|
|
}
|
|
}
|