diff --git a/UI/Contacts/UIxContactEditor.m b/UI/Contacts/UIxContactEditor.m index 001a5d68e..72f702ff8 100644 --- a/UI/Contacts/UIxContactEditor.m +++ b/UI/Contacts/UIxContactEditor.m @@ -367,6 +367,8 @@ static Class SOGoContactGCSEntryK = Nil; day = [date dayOfMonth]; [card setBday: [NSString stringWithFormat: @"%.4d%.2d%.2d", year, month, day]]; } + else + [card setBday: nil]; if ([[attributes objectForKey: @"addresses"] isKindOfClass: [NSArray class]]) { diff --git a/UI/Contacts/UIxContactView.m b/UI/Contacts/UIxContactView.m index 3c9c6d35b..eb77e7ded 100644 --- a/UI/Contacts/UIxContactView.m +++ b/UI/Contacts/UIxContactView.m @@ -838,11 +838,10 @@ o = [card birthday]; if (o) { - NSNumber *time = [NSNumber numberWithInt: [o timeIntervalSince1970]]; - [data setObject: time forKey: @"birthday"]; + [data setObject: [NSNumber numberWithInt: [o timeIntervalSince1970]] + forKey: @"birthday"]; } - // o = [card source]; - // if (o) [data setObject: o forKey: @"source"]; + o = [card tz]; if (o) [data setObject: o forKey: @"tz"]; diff --git a/UI/Templates/ContactsUI/UIxContactEditorTemplate.wox b/UI/Templates/ContactsUI/UIxContactEditorTemplate.wox index 140e912a3..3b92397aa 100644 --- a/UI/Templates/ContactsUI/UIxContactEditorTemplate.wox +++ b/UI/Templates/ContactsUI/UIxContactEditorTemplate.wox @@ -115,7 +115,6 @@ remove_circle -
@@ -128,12 +127,25 @@
- - - - +
+
+ + + + remove_circle + +
+
+ + add_circle + + +
+
diff --git a/UI/Templates/ContactsUI/UIxContactViewTemplate.wox b/UI/Templates/ContactsUI/UIxContactViewTemplate.wox index 95863bea3..c3f209268 100644 --- a/UI/Templates/ContactsUI/UIxContactViewTemplate.wox +++ b/UI/Templates/ContactsUI/UIxContactViewTemplate.wox @@ -65,14 +65,14 @@
-
+
- {{editor.card.$birthday() | date}} + {{editor.card.$birthday()}}
diff --git a/UI/WebServerResources/js/Contacts/Card.service.js b/UI/WebServerResources/js/Contacts/Card.service.js index 291fd166e..ce868d2d5 100644 --- a/UI/WebServerResources/js/Contacts/Card.service.js +++ b/UI/WebServerResources/js/Contacts/Card.service.js @@ -176,6 +176,8 @@ if (index > -1 && this[attribute].length > index) { this[attribute].splice(index, 1); } + else + delete this[attribute]; } else { // No arguments -- delete card @@ -274,8 +276,16 @@ return fullname; }; + /** + * @function $birthday + * @memberof Card.prototype + * @returns the formatted birthday object + */ Card.prototype.$birthday = function() { - return new Date(this.birthday * 1000); + if (this.birthday) { + return [this.birthday.getFullYear(), this.birthday.getMonth() + 1, this.birthday.getDate()].join('/'); + } + return ''; }; Card.prototype.$isCard = function() { @@ -481,6 +491,13 @@ card[key] = value; } }); + + // We convert back our birthday object + if (card.birthday) + card.birthday = card.birthday.getTime()/1000; + else + card.birthday = 0; + return card; }; diff --git a/UI/WebServerResources/js/Contacts/CardController.js b/UI/WebServerResources/js/Contacts/CardController.js index 78a77c51b..36f9b8504 100644 --- a/UI/WebServerResources/js/Contacts/CardController.js +++ b/UI/WebServerResources/js/Contacts/CardController.js @@ -21,6 +21,7 @@ vm.categories = {}; vm.userFilterResults = []; vm.addOrgUnit = addOrgUnit; + vm.addBirthday = addBirthday; vm.addEmail = addEmail; vm.addPhone = addPhone; vm.addUrl = addUrl; @@ -37,6 +38,9 @@ var i = vm.card.$addOrgUnit(''); focus('orgUnit_' + i); } + function addBirthday() { + vm.card.birthday = new Date(); + } function addEmail() { var i = vm.card.$addEmail(''); focus('email_' + i);