From 0b95606eff5e424e71baabdfcd4837005e5ee065 Mon Sep 17 00:00:00 2001 From: lilia Date: Fri, 4 Dec 2015 15:09:53 -0800 Subject: [PATCH] Display nicely formatted phone numbers In conversation headers and as titles for contacts with no name. Updated tests accordingly. // FREEBIE --- js/models/conversations.js | 18 ++++++++++++++---- test/models/conversations_test.js | 4 ++-- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/js/models/conversations.js b/js/models/conversations.js index 0fdc1df59..093d65b12 100644 --- a/js/models/conversations.js +++ b/js/models/conversations.js @@ -223,18 +223,28 @@ getTitle: function() { if (this.isPrivate()) { - return this.get('name') || this.id; + return this.get('name') || this.getNumber(); } else { return this.get('name') || 'Unknown group'; } }, getNumber: function() { - if (this.isPrivate()) { - return this.id; - } else { + if (!this.isPrivate()) { return ''; } + var number = this.id; + try { + var parsedNumber = libphonenumber.parse(number); + var regionCode = libphonenumber.getRegionCodeForNumber(parsedNumber); + if (regionCode === storage.get('regionCode')) { + return libphonenumber.format(parsedNumber, libphonenumber.PhoneNumberFormat.NATIONAL); + } else { + return libphonenumber.format(parsedNumber, libphonenumber.PhoneNumberFormat.INTERNATIONAL); + } + } catch (e) { + return number; + } }, isPrivate: function() { diff --git a/test/models/conversations_test.js b/test/models/conversations_test.js index 5ff7cf843..bd4f78765 100644 --- a/test/models/conversations_test.js +++ b/test/models/conversations_test.js @@ -123,7 +123,7 @@ it('has a title', function() { var convos = new Whisper.ConversationCollection(); var convo = convos.add(attributes); - assert.equal(convo.getTitle(), convo.id); + assert.equal(convo.getTitle(), '+1 808-555-5555'); convo = convos.add({type: ''}); assert.equal(convo.getTitle(), 'Unknown group'); @@ -135,7 +135,7 @@ it('returns the number', function() { var convos = new Whisper.ConversationCollection(); var convo = convos.add(attributes); - assert.equal(convo.getNumber(), convo.id); + assert.equal(convo.getNumber(), '+1 808-555-5555'); convo = convos.add({type: ''}); assert.equal(convo.getNumber(), '');