Browse Source

Add support for chat and call in contacts manager.

pull/147/head
Evan Theurer 11 years ago
parent
commit
890b96ccc2
  1. 2
      src/styles/components/_buddylist.scss
  2. 5
      src/styles/components/_contactsmanager.scss
  3. 1
      src/styles/global/_variables.scss
  4. 23
      static/js/controllers/contactsmanagercontroller.js
  5. 8
      static/partials/contactsmanager.html

2
src/styles/components/_buddylist.scss

@ -240,7 +240,7 @@
text-align: center; text-align: center;
vertical-align: middle; vertical-align: middle;
line-height: 40px; line-height: 40px;
font-size: 1.6em; font-size: $buddylist-action-font-size;
} }
} }

5
src/styles/components/_contactsmanager.scss

@ -47,9 +47,12 @@
overflow-y: auto; overflow-y: auto;
} }
.picture { .picture {
display: table-cell;
border-bottom: 0; border-bottom: 0;
cursor: auto; cursor: auto;
min-height: 46px; min-height: 46px;
position: static;
width: auto;
.buddyPicture { .buddyPicture {
margin: 0 0 0 10px; margin: 0 0 0 10px;
} }
@ -60,7 +63,7 @@
border-top: none; border-top: none;
} }
.name { .name {
width: 70%; width: 40%;
text-align: left; text-align: left;
vertical-align: middle; vertical-align: middle;
} }

1
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-action-background: rgba(255,255,255,0.5) !default;
$buddylist-buddy1: $componentfg1 !default; $buddylist-buddy1: $componentfg1 !default;
$buddylist-buddy2: $componentfg2 !default; $buddylist-buddy2: $componentfg2 !default;
$buddylist-action-font-size: 1.6em;
// chat // chat
$chat-width: $pane-width !default; $chat-width: $pane-width !default;

23
static/js/controllers/contactsmanagercontroller.js

@ -21,7 +21,15 @@
define([], function() { define([], function() {
// ContactsmanagerController // 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.header = data.header;
$scope.contacts = []; $scope.contacts = [];
$scope.openContactsManagerEdit = function(contact) { $scope.openContactsManagerEdit = function(contact) {
@ -36,7 +44,6 @@ define([], function() {
} }
); );
}; };
var updateContacts = function() { var updateContacts = function() {
$scope.contacts = contactData.getAll(); $scope.contacts = contactData.getAll();
}; };
@ -50,7 +57,17 @@ define([], function() {
contacts.e.on('contactremoved', function() { contacts.e.on('contactremoved', function() {
updateContacts(); 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();
};
}]; }];
}); });

8
static/partials/contactsmanager.html

@ -13,14 +13,18 @@
<table class="table table-hover table-condensed"> <table class="table table-hover table-condensed">
<tbody> <tbody>
<tr ng-repeat="contact in contacts"> <tr ng-repeat="contact in contacts">
<td class="picture buddy" width="56"> <td class="picture buddy">
<div class="buddyPicture"><i class="fa fa-user"/><img ng-show="contact.Status.buddyPicture" alt ng-src="{{contact.Status.buddyPicture}}"/></div> <div class="buddyPicture"><i class="fa fa-user"/><img ng-show="contact.Status.buddyPicture" alt ng-src="{{contact.Status.buddyPicture}}"/></div>
</td> </td>
<td class="name"> <td class="name">
<span>{{contact.Userid|displayName}}</span> <span>{{contact.Userid|displayName}}</span>
</td> </td>
<td class="action"> <td class="action">
<button class="btn btn-primary" ng-click="openContactsManagerEdit(contact)">{{_('Edit')}}</button> <div class="btn-group buddyactions">
<button class="btn btn-primary" ng-click="doCall(contact)" title="{{_('Start video call')}}"><i class="fa fa-phone"></i></button>
<button class="btn btn-primary" ng-click="startChat(contact)" title="{{_('Start chat')}}"><i class="fa fa-comments-o"></i></button>
</div>
<button class="btn btn-primary" ng-click="openContactsManagerEdit(contact)" title="{{_('Edit contact')}}">{{_('Edit')}}</button>
</td> </td>
</tr> </tr>
</tbody> </tbody>

Loading…
Cancel
Save