From 4f21bbd21ff280a31065ed19b2bf4fc464c1f2d8 Mon Sep 17 00:00:00 2001 From: lilia Date: Thu, 16 Oct 2014 14:14:00 -0700 Subject: [PATCH] Use textsecure.messaging to create groups Not textsecure.storage. Sigh. Also accomodate the fact that the group id is not returned directly, but rather at the end of a promise chain. --- js/models/threads.js | 13 ++++++++----- js/views/new_group_view.js | 10 ++++++---- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/js/models/threads.js b/js/models/threads.js index d2bd69d0c..38824c9aa 100644 --- a/js/models/threads.js +++ b/js/models/threads.js @@ -36,7 +36,7 @@ var Whisper = Whisper || {}; var promise = textsecure.messaging.sendMessageToNumber(this.get('id'), message, []); } else { - var promise = textsecure.messaging.sendMessageToGroup(this.get('id'), message, []); + var promise = textsecure.messaging.sendMessageToGroup(this.get('groupId'), message, []); } promise.then( function(result) { @@ -68,15 +68,18 @@ var Whisper = Whisper || {}; }, createGroup: function(recipients, name) { - var group = textsecure.storage.groups.createNewGroup(recipients); var attributes = {}; attributes = { - id : group.id, name : name, - numbers : group.numbers, + numbers : recipients, type : 'group', }; - return this.findOrCreate(attributes); + var thread = this.findOrCreate(attributes); + return textsecure.messaging.createGroup(recipients, name).then(function(groupId) { + thread.set('groupId', groupId); + thread.save(); + return thread; + }); }, findOrCreateForRecipient: function(recipient) { diff --git a/js/views/new_group_view.js b/js/views/new_group_view.js index cd68d0cf9..662dcfab3 100644 --- a/js/views/new_group_view.js +++ b/js/views/new_group_view.js @@ -36,10 +36,12 @@ var Whisper = Whisper || {}; e.preventDefault(); var numbers = this.$el.find('input.numbers').val().split(','); var name = this.$el.find('input.name').val(); - var thread = Whisper.Threads.createGroup(numbers, name); - thread.sendMessage(this.$el.find('input.send-message').val()); - this.remove(); - thread.trigger('render'); + var view = this; + Whisper.Threads.createGroup(numbers, name).then(function(thread){ + thread.sendMessage(view.$el.find('input.send-message').val()); + view.remove(); + thread.trigger('render'); + }); }, render: function() {