Browse Source

Breakup lists of buddys.

pull/154/head
Evan Theurer 12 years ago
parent
commit
f433586742
  1. 36
      src/styles/components/_buddycondensed.scss
  2. 27
      static/js/directives/buddycondensed.js
  3. 21
      static/partials/buddycondensed.html

36
src/styles/components/_buddycondensed.scss

@ -18,23 +18,45 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
*/ */
#buddycondensed {
display: table;
float: left;
height: 50px;
overflow: hidden;
padding-left: 20px;
vertical-align: bottom;
min-width: 355px;
}
.buddycondensed { .buddycondensed {
display: table-cell;
width: 380px;
&.buddy { &.buddy {
background: none; background: none;
border-bottom: none; border-bottom: none;
cursor: auto;
min-height: 50px; min-height: 50px;
padding-left: 20px;
vertical-align: bottom; vertical-align: bottom;
.buddyPicture { .buddyPicture {
margin: 2px; margin: 2px;
} }
} }
.more { .defaultDisplayNum {
padding-left: 10px; }
.overDefaultDisplayNum {
background: #f8f8f8;
display: none;
position: fixed;
&:hover {
display: block;
}
}
.desc {
display: inline-block;
font-weight: bold; font-weight: bold;
padding-left: 10px;
&:hover ~ .overDefaultDisplayNum {
display: block;
}
}
.buddyPicture {
cursor: pointer;
} }
} }

27
static/js/directives/buddycondensed.js

@ -21,9 +21,9 @@
define(['angular', 'text!partials/buddycondensed.html'], function(angular, template) { define(['angular', 'text!partials/buddycondensed.html'], function(angular, template) {
// buddycondensed // buddycondensed
return ["mediaStream", function(mediaStream) { return [function() {
var controller = ['$scope', '$element', 'mediaStream', 'buddyList', 'buddyPicture', 'contacts', function($scope, $element, mediaStream, buddyList, buddyPicture, contacts) { var controller = ['$scope', 'mediaStream', 'contacts', function($scope, mediaStream, contacts) {
var buddycondensed = []; var buddycondensed = [];
var joined = function(buddy) { var joined = function(buddy) {
buddycondensed.push(buddy); buddycondensed.push(buddy);
@ -37,9 +37,9 @@ define(['angular', 'text!partials/buddycondensed.html'], function(angular, templ
} }
$scope.$apply(); $scope.$apply();
}; };
// replace session data with contact data
var contactadded = function(data) { var contactadded = function(data) {
// replace session data with contact data //console.log('contactadded', data);
console.log('contactadded', data);
var hasSession = false; var hasSession = false;
for (var i in buddycondensed) { for (var i in buddycondensed) {
if(buddycondensed[i].Userid === data.Userid) { if(buddycondensed[i].Userid === data.Userid) {
@ -53,15 +53,26 @@ define(['angular', 'text!partials/buddycondensed.html'], function(angular, templ
} }
$scope.$apply(); $scope.$apply();
}; };
$scope.list = function() { $scope.listDefault = function() {
return buddycondensed; if(buddycondensed.length >= $scope.maxBuddiesToShow) {
return buddycondensed.slice(0, $scope.maxBuddiesToShow);
} else {
return buddycondensed;
}
};
$scope.listOverDefault = function() {
if(buddycondensed.length >= $scope.maxBuddiesToShow) {
return buddycondensed.slice($scope.maxBuddiesToShow);
} else {
return [];
}
}; };
$scope.maxBuddiesToShow = 5; $scope.maxBuddiesToShow = 5;
contacts.e.on("contactadded", function(event, data) { contacts.e.on("contactadded", function(event, data) {
contactadded(data); contactadded(data);
}); });
mediaStream.api.e.on("received.userleftorjoined", function(event, dataType, data) { mediaStream.api.e.on("received.userleftorjoined", function(event, dataType, data) {
console.log("received.userleftorjoined", data.Id); //console.log("received.userleftorjoined", data.Id);
if (dataType === "Left") { if (dataType === "Left") {
left(data.Id); left(data.Id);
} else { } else {
@ -69,7 +80,7 @@ define(['angular', 'text!partials/buddycondensed.html'], function(angular, templ
} }
}); });
mediaStream.api.e.on("received.users", function(event, data) { mediaStream.api.e.on("received.users", function(event, data) {
console.log("received.users", data); //console.log("received.users", data);
var selfId = $scope.id; var selfId = $scope.id;
data.forEach(function(x) { data.forEach(function(x) {
if (x.Id !== selfId) { if (x.Id !== selfId) {

21
static/partials/buddycondensed.html

@ -1,6 +1,15 @@
<span class="buddycondensed buddy"> <div id="buddycondensed">
<span ng-repeat="buddy in list() | limitTo:maxBuddiesToShow"> <div class="buddycondensed buddy">
<span class="buddyPicture"><i class="fa fa-user"/><img ng-show="buddy.Status.buddyPicture" alt="{{buddy.Status.displayName}}" ng-src="{{buddy.Userid | buddyImageSrc}}"/></span> <span class="desc" ng-if="listOverDefault().length > maxBuddiesToShow">+ {{listOverDefault().length - maxBuddiesToShow}} {{_("more")}}</span>
</span> <div class="defaultDisplayNum pull-left">
<span class="more" ng-if="list().length > maxBuddiesToShow">+ {{list().length - maxBuddiesToShow}} {{_("more")}}</span> <span ng-repeat="buddy in listDefault()">
</span> <span class="buddyPicture"><i class="fa fa-user"/><img ng-show="buddy.Status.buddyPicture" alt ng-src="{{buddy.Userid | buddyImageSrc}}"/></span>
</span>
</div>
<div class="overDefaultDisplayNum">
<span ng-repeat="buddy in listOverDefault()">
<span class="buddyPicture"><i class="fa fa-user"/><img ng-show="buddy.Status.buddyPicture" alt ng-src="{{buddy.Userid | buddyImageSrc}}"/></span>
</span>
</div>
</div>
</div>

Loading…
Cancel
Save