mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-29 20:19:22 +03:00
Some cleanups for new AddressBook
This commit is contained in:
parent
c162a3acc6
commit
052f34a9f5
4 changed files with 43 additions and 72 deletions
|
|
@ -15,7 +15,6 @@ export class ContactModel extends AbstractModel {
|
|||
constructor() {
|
||||
super();
|
||||
|
||||
this.properties = [];
|
||||
this.jCard = new JCard();
|
||||
|
||||
this.addObservables({
|
||||
|
|
@ -30,8 +29,7 @@ export class ContactModel extends AbstractModel {
|
|||
surName: '', // LastName
|
||||
middleName: '', // MiddleName
|
||||
namePrefix: '', // NamePrefix
|
||||
nameSuffix: '', // NameSuffix
|
||||
nickname: null
|
||||
nameSuffix: '' // NameSuffix
|
||||
});
|
||||
// this.email = koArrayWithDestroy();
|
||||
this.email = ko.observableArray();
|
||||
|
|
@ -43,6 +41,15 @@ export class ContactModel extends AbstractModel {
|
|||
|
||||
fullName: () => (this.givenName() + ' ' + this.surName()).trim(),
|
||||
|
||||
nickname: {
|
||||
read: () => {
|
||||
let prop = this.jCard.getOne('nickname');
|
||||
return prop && prop.value;
|
||||
},
|
||||
write: value =>
|
||||
value ? this.jCard.set('nickname', value/*, params, group*/) : this.jCard.remove('nickname')
|
||||
},
|
||||
|
||||
display: () => {
|
||||
let a = this.jCard.getOne('fn')?.value,
|
||||
b = this.fullName(),
|
||||
|
|
@ -85,17 +92,12 @@ export class ContactModel extends AbstractModel {
|
|||
static reviveFromJson(json) {
|
||||
const contact = super.reviveFromJson(json);
|
||||
if (contact) {
|
||||
let list = [];
|
||||
|
||||
let jCard = new JCard(json.jCard),
|
||||
props = jCard.getOne('n')?.value;
|
||||
props && props.forEach((value, index) =>
|
||||
value && contact[nProps[index]](value)
|
||||
);
|
||||
|
||||
props = jCard.getOne('nickname');
|
||||
props && contact.nickname(props.value);
|
||||
|
||||
['email', 'tel', 'url'].forEach(field => {
|
||||
props = jCard.get(field);
|
||||
props && props.forEach(prop => {
|
||||
|
|
@ -106,7 +108,6 @@ export class ContactModel extends AbstractModel {
|
|||
});
|
||||
});
|
||||
|
||||
contact.properties = list;
|
||||
contact.jCard = jCard;
|
||||
}
|
||||
return contact;
|
||||
|
|
@ -116,7 +117,7 @@ export class ContactModel extends AbstractModel {
|
|||
* @returns {string}
|
||||
*/
|
||||
generateUid() {
|
||||
return ''+this.id;
|
||||
return '' + this.id;
|
||||
}
|
||||
|
||||
addEmail() {
|
||||
|
|
@ -160,8 +161,6 @@ export class ContactModel extends AbstractModel {
|
|||
]/*, params, group*/);
|
||||
// jCard.parseFullName({set:true});
|
||||
|
||||
this.nickname() ? jCard.set('nickname', this.nickname()/*, params, group*/) : jCard.remove('nickname');
|
||||
|
||||
['email', 'tel', 'url'].forEach(field => {
|
||||
let values = this[field].map(item => item.value());
|
||||
jCard.get(field).forEach(prop => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue