Browse Source

List contacts in contacts manager.

pull/67/head
Evan Theurer 11 years ago
parent
commit
687a2bd965
  1. 25
      src/styles/components/_contactsmanager.scss
  2. 52
      static/js/directives/contactsmanager.js
  3. 6
      static/js/directives/directives.js
  4. 9
      static/js/services/contactdata.js
  5. 68
      static/partials/contactsmanager.html
  6. 2
      static/partials/settings.html

25
src/styles/components/_contactsmanager.scss

@ -45,6 +45,22 @@
.contactsUploadPicBtn { .contactsUploadPicBtn {
margin-top: 7px; margin-top: 7px;
} }
.buddyPicture {
position: relative;
width: 46px;
height: 46px;
background: $actioncolor1;
border-radius: 2px;
margin: 0 auto;
&:after {
content: "\f007";
color: $actioncolor2;
font-family: fontAwesome;
font-size: 3em;
position: relative;
top: -6px;
}
}
} }
.search { .search {
@ -86,12 +102,3 @@
vertical-align: middle; vertical-align: middle;
} }
} }
.userAvatar {
position: relative;
width: 46px;
height: 46px;
background: grey;
border-radius: 2px;
margin: 0 auto;
}

52
static/js/directives/contactsmanager.js

@ -0,0 +1,52 @@
/*
* Spreed WebRTC.
* Copyright (C) 2013-2014 struktur AG
*
* This file is part of Spreed WebRTC.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
define(['jquery', 'underscore', 'text!partials/contactsmanager.html'], function($, _, templateContactsManager) {
return [function() {
var contactsManagerController = ['$scope', '$modalInstance', 'contactData', function($scope, $modalInstance, contactData) {
$scope.contacts = contactData.getAllContacts();
$scope.close = function() {
$modalInstance.close('Close');
};
}];
var controller = ['$scope', '$modal', function($scope, $modal) {
$scope.contactsManager = function() {
$modal.open({
template: templateContactsManager,
controller: contactsManagerController,
windowClass: 'contactsManager'
});
};
}];
var link = function($scope, $element) {};
return {
scope: true,
restrict: 'E',
controller: controller,
link: link
};
}];
});

6
static/js/directives/directives.js

@ -36,7 +36,8 @@ define([
'directives/roombar', 'directives/roombar',
'directives/socialshare', 'directives/socialshare',
'directives/page', 'directives/page',
'directives/contactrequest'], function(_, onEnter, onEscape, statusMessage, buddyList, buddyPicture, settings, chat, audioVideo, usability, audioLevel, fileInfo, screenshare, roomBar, socialShare, page, contactRequest) { 'directives/contactrequest',
'directives/contactsmanager'], function(_, onEnter, onEscape, statusMessage, buddyList, buddyPicture, settings, chat, audioVideo, usability, audioLevel, fileInfo, screenshare, roomBar, socialShare, page, contactRequest, contactsManager) {
var directives = { var directives = {
onEnter: onEnter, onEnter: onEnter,
@ -54,7 +55,8 @@ define([
roomBar: roomBar, roomBar: roomBar,
socialShare: socialShare, socialShare: socialShare,
page: page, page: page,
contactRequest: contactRequest contactRequest: contactRequest,
contactsManager: contactsManager
}; };
var initialize = function(angModule) { var initialize = function(angModule) {

9
static/js/services/contactdata.js

@ -63,7 +63,7 @@ define(['underscore', 'jquery'], function(underscore, $) {
var userid = data.Userid; var userid = data.Userid;
var id; var id;
if (users.hasOwnProperty(userid)) { if (users.hasOwnProperty(userid)) {
id = users[userid] id = users[userid];
} else { } else {
id = String(count++); id = String(count++);
users[userid] = id; users[userid] = id;
@ -88,12 +88,15 @@ define(['underscore', 'jquery'], function(underscore, $) {
}, },
getById: function(id) { getById: function(id) {
if (id.indexOf("contact-") === 0) { if (id.indexOf("contact-") === 0) {
id = id.substr(8) id = id.substr(8);
} }
if (contacts.hasOwnProperty(id)) { if (contacts.hasOwnProperty(id)) {
return contacts[id]; return contacts[id];
} }
return null return null;
},
getAllContacts: function() {
return contacts;
} }
}; };

68
static/partials/contactsmanager.html

@ -1,5 +1,5 @@
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">{{_('Close')}}</span></button> <button type="button" class="close" ng-click="close()"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel"> <h4 class="modal-title" id="myModalLabel">
{{_('Contacts Manager')}} {{_('Contacts Manager')}}
</h4> </h4>
@ -9,7 +9,7 @@
<div class="col-xs-offset-7 col-xs-5"> <div class="col-xs-offset-7 col-xs-5">
<div class="pull-right"> <div class="pull-right">
<button class="btn btn-success contactsAddBtn"> <button class="btn btn-success contactsAddBtn">
Find new contacts&nbsp; {{_('Find new contacts')}}&nbsp;
<i class="fa fa-users"></i> <i class="fa fa-users"></i>
<i class="fa fa-plus"></i> <i class="fa fa-plus"></i>
</button> </button>
@ -20,70 +20,16 @@
<div class="col-xs-12 contactsEditList"> <div class="col-xs-12 contactsEditList">
<table class="table table-bordered table-hover table-condensed contactsTable"> <table class="table table-bordered table-hover table-condensed contactsTable">
<tbody> <tbody>
<tr> <tr ng-repeat="contact in contacts">
<td class="picture"> <td class="picture">
<div class="userAvatar"></div> <img ng-show="contact.Status.buddyPicture" ng-src="{{contact.Status.buddyPicture}}">
<div ng-show="!contact.Status.buddyPicture" class="buddyPicture"></div>
</td> </td>
<td class="name"> <td class="name">
Mike <span>{{contact.Status.displayName}}</span>
</td> </td>
<td class="action"> <td class="action">
<button class="btn btn-info">{{_('Edit')}}</button> <button class="btn btn-primary">{{_('Edit')}}</button>
</td>
</tr>
<tr>
<td class="picture">
<div class="userAvatar"></div>
</td>
<td class="name">
Mike
</td>
<td class="action">
<button class="btn btn-info">Edit</button>
</td>
</tr>
<tr>
<td class="picture">
<div class="userAvatar"></div>
</td>
<td class="name">
Mike
</td>
<td class="action">
<button class="btn btn-info">Edit</button>
</td>
</tr>
<tr>
<td class="picture">
<div class="userAvatar"></div>
</td>
<td class="name">
Mike
</td>
<td class="action">
<button class="btn btn-info">Edit</button>
</td>
</tr>
<tr>
<td class="picture">
<div class="userAvatar"></div>
</td>
<td class="name">
Mike
</td>
<td class="action">
<button class="btn btn-info">Edit</button>
</td>
</tr>
<tr>
<td class="picture">
<div class="userAvatar"></div>
</td>
<td class="name">
Mike
</td>
<td class="action">
<button class="btn btn-info">Edit</button>
</td> </td>
</tr> </tr>
</tbody> </tbody>

2
static/partials/settings.html

@ -69,6 +69,7 @@
</div> </div>
</div> </div>
</div> </div>
<contacts-manager>
<div ng-if="userid"> <div ng-if="userid">
<legend>{{_('Contacts')}}</legend> <legend>{{_('Contacts')}}</legend>
<div class="form-group"> <div class="form-group">
@ -77,6 +78,7 @@
</div> </div>
</div> </div>
</div> </div>
<contacts-manager/>
<div ng-show="mediaSources.supported || isChrome"> <div ng-show="mediaSources.supported || isChrome">
<legend>{{_('Media')}}</legend> <legend>{{_('Media')}}</legend>
<div ng-show="mediaSources.supported"> <div ng-show="mediaSources.supported">

Loading…
Cancel
Save