From 890b96ccc2b887e50035afd076f69db97fe6472d Mon Sep 17 00:00:00 2001 From: Evan Theurer Date: Tue, 16 Sep 2014 12:13:39 +0200 Subject: [PATCH] Add support for chat and call in contacts manager. --- src/styles/components/_buddylist.scss | 2 +- src/styles/components/_contactsmanager.scss | 5 +++- src/styles/global/_variables.scss | 1 + .../controllers/contactsmanagercontroller.js | 23 ++++++++++++++++--- static/partials/contactsmanager.html | 8 +++++-- 5 files changed, 32 insertions(+), 7 deletions(-) diff --git a/src/styles/components/_buddylist.scss b/src/styles/components/_buddylist.scss index 1e6cb04b..a338e950 100644 --- a/src/styles/components/_buddylist.scss +++ b/src/styles/components/_buddylist.scss @@ -240,7 +240,7 @@ text-align: center; vertical-align: middle; line-height: 40px; - font-size: 1.6em; + font-size: $buddylist-action-font-size; } } diff --git a/src/styles/components/_contactsmanager.scss b/src/styles/components/_contactsmanager.scss index 5f55c9f7..04a89da6 100644 --- a/src/styles/components/_contactsmanager.scss +++ b/src/styles/components/_contactsmanager.scss @@ -47,9 +47,12 @@ overflow-y: auto; } .picture { + display: table-cell; border-bottom: 0; cursor: auto; min-height: 46px; + position: static; + width: auto; .buddyPicture { margin: 0 0 0 10px; } @@ -60,7 +63,7 @@ border-top: none; } .name { - width: 70%; + width: 40%; text-align: left; vertical-align: middle; } diff --git a/src/styles/global/_variables.scss b/src/styles/global/_variables.scss index 82342339..97fe79c9 100644 --- a/src/styles/global/_variables.scss +++ b/src/styles/global/_variables.scss @@ -105,6 +105,7 @@ $buddylist-tab-background: $componentbg !default; $buddylist-action-background: rgba(255,255,255,0.5) !default; $buddylist-buddy1: $componentfg1 !default; $buddylist-buddy2: $componentfg2 !default; +$buddylist-action-font-size: 1.6em; // chat $chat-width: $pane-width !default; diff --git a/static/js/controllers/contactsmanagercontroller.js b/static/js/controllers/contactsmanagercontroller.js index 1596689c..b6ffbf23 100644 --- a/static/js/controllers/contactsmanagercontroller.js +++ b/static/js/controllers/contactsmanagercontroller.js @@ -21,7 +21,15 @@ define([], function() { // ContactsmanagerController - return ["$scope", "$modalInstance", "contactData", "data", "contacts", 'dialogs', 'translation', function($scope, $modalInstance, contactData, data, contacts, dialogs, translation) { + return ["$scope", "$modalInstance", "contactData", "data", "contacts", "dialogs", "translation", "mediaStream", "buddyData", function($scope, $modalInstance, contactData, data, contacts, dialogs, translation, mediaStream, buddyData) { + var getContactSessionId = function(userid) { + var session = null; + var scope = buddyData.lookup(userid, false, false); + if (scope) { + session = scope.session.get(); + } + return session && session.Id ? session.Id : null; + }; $scope.header = data.header; $scope.contacts = []; $scope.openContactsManagerEdit = function(contact) { @@ -36,7 +44,6 @@ define([], function() { } ); }; - var updateContacts = function() { $scope.contacts = contactData.getAll(); }; @@ -50,7 +57,17 @@ define([], function() { contacts.e.on('contactremoved', function() { updateContacts(); }); - + $scope.doCall = function(contact) { + mediaStream.webrtc.doCall(getContactSessionId(contact.Userid)); + $modalInstance.close(); + }; + $scope.startChat = function(contact) { + $scope.$emit("startchat", getContactSessionId(contact.Userid), { + autofocus: true, + restore: true + }); + $modalInstance.close(); + }; }]; }); diff --git a/static/partials/contactsmanager.html b/static/partials/contactsmanager.html index aaa71d15..cd8679e9 100644 --- a/static/partials/contactsmanager.html +++ b/static/partials/contactsmanager.html @@ -13,14 +13,18 @@ -
+
{{contact.Userid|displayName}} - +
+ + +
+