Browse Source

Implemented user defined subline.

pull/48/head
Simon Eisenmann 12 years ago
parent
commit
5add1c5a81
  1. 4
      static/js/controllers/mediastreamcontroller.js
  2. 22
      static/js/services/buddylist.js
  3. 4
      static/partials/buddy.html
  4. 2
      static/partials/buddyactions.html
  5. 25
      static/partials/settings.html

4
static/js/controllers/mediastreamcontroller.js

@ -139,6 +139,7 @@ define(['underscore', 'bigscreen', 'moment', 'sjcl', 'webrtc.adapter'], function @@ -139,6 +139,7 @@ define(['underscore', 'bigscreen', 'moment', 'sjcl', 'webrtc.adapter'], function
$scope.master = {
displayName: null,
buddyPicture: null,
message: null,
settings: {
videoQuality: "high",
stereo: true,
@ -175,7 +176,8 @@ define(['underscore', 'bigscreen', 'moment', 'sjcl', 'webrtc.adapter'], function @@ -175,7 +176,8 @@ define(['underscore', 'bigscreen', 'moment', 'sjcl', 'webrtc.adapter'], function
// This is the user status.
var status = {
displayName: $scope.master.displayName || null,
buddyPicture: $scope.master.buddyPicture || null
buddyPicture: $scope.master.buddyPicture || null,
message: $scope.master.message || null
}
if (_.isEqual(status, cache.status)) {
console.log("Status update skipped, as status has not changed.")

22
static/js/services/buddylist.js

@ -435,7 +435,7 @@ define(['underscore', 'modernizr', 'avltree', 'text!partials/buddy.html', 'text! @@ -435,7 +435,7 @@ define(['underscore', 'modernizr', 'avltree', 'text!partials/buddy.html', 'text!
display.buddyPicture = status.buddyPicture;
this.updateBuddyPicture(display);
// Set display subline.
display.subLine = data.Ua;
this.updateSubline(display, status.message);
// Add to render queue when no element exists.
if (!scope.element) {
var before = this.tree.add(id, scope);
@ -462,8 +462,8 @@ define(['underscore', 'modernizr', 'avltree', 'text!partials/buddy.html', 'text! @@ -462,8 +462,8 @@ define(['underscore', 'modernizr', 'avltree', 'text!partials/buddy.html', 'text!
this.queue.push([queueName, id, before]);
}
// Update display subline.
if (data.Ua) {
display.subLine = data.Ua;
if (status.message) {
this.updateSubline(display, status.message);
}
// Update display picture.
display.buddyPicture = status.buddyPicture || null;
@ -471,6 +471,22 @@ define(['underscore', 'modernizr', 'avltree', 'text!partials/buddy.html', 'text! @@ -471,6 +471,22 @@ define(['underscore', 'modernizr', 'avltree', 'text!partials/buddy.html', 'text!
};
Buddylist.prototype.updateSubline = function(display, s) {
if (!s || s === "__none__") {
display.subline = "";
return;
}
if (s.length > 20) {
display.sublineFull = s;
s = s.substr(0, 20) + "...";
} else {
display.sublineFull = null;
}
display.subline = s;
};
Buddylist.prototype.onStatus = function(data) {
//console.log("onStatus", data);

4
static/partials/buddy.html

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
<div class="buddy" ng-class="{'contact': contact, 'withSubline': display.subLine}">
<div class="buddy" ng-class="{'contact': contact, 'withSubline': display.subline}">
<div class="buddyPicture"><i class="fa fa-user fa-3x"/><img ng-show="display.buddyPicture" alt ng-src="{{display.buddyPicture}}" width="46" height="46"/></div>
<div class="buddy1">{{session.Id|displayName}}</div>
<div class="buddy2"><span ng-show="session.Userid"><i class="fa contact" data-action="contact"></i><span ng-show="session.count"> ({{session.count}})</span></span> {{display.subLine}}</div>
<div class="buddy2"><span ng-show="session.Userid"><i class="fa contact" data-action="contact"></i><span ng-show="session.count"> ({{session.count}})</span></span> <span title="{{display.sublineFull}}">{{display.subline}}</span></div>
</div>

2
static/partials/buddyactions.html

@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
</div>
<div class="buddysessions" ng-if="session.count>1">
<ul>
<li ng-repeat="(id, s) in session.sessions" ng-class="{currentsession: s.Id === session.Id}"><!--<div class="buddyPicture buddyPictureSmall"><i class="fa fa-user fa-2x"/><img ng-show="s.Status.buddyPicture" alt ng-src="{{s.Status.buddyPicture}}" width="30" height="30"/></div>--><span class="btn-group"><a class="btn btn-sm btn-default buddy3" ng-click="$event.stopPropagation()"><span>{{s.Status.displayName}}, {{s.Ua}}</span></a><a class="btn btn-sm btn-default" title="{{_('Start video call')}}" ng-click="doCall(s.Id); $event.stopPropagation()"><i class="fa fa-eye"></i></a><a class="btn btn-sm btn-default" title="{{_('Start chat')}}" ng-click="doChat(s.Id); $event.stopPropagation()"><i class="fa fa-comments-o"></i></a></span></li>
<li ng-repeat="(id, s) in session.sessions" ng-class="{currentsession: s.Id === session.Id}"><!--<div class="buddyPicture buddyPictureSmall"><i class="fa fa-user fa-2x"/><img ng-show="s.Status.buddyPicture" alt ng-src="{{s.Status.buddyPicture}}" width="30" height="30"/></div>--><span class="btn-group"><a class="btn btn-sm btn-default buddy3" ng-click="$event.stopPropagation()"><span>{{s.Status.displayName}}, {{s.Message}}</span></a><a class="btn btn-sm btn-default" title="{{_('Start video call')}}" ng-click="doCall(s.Id); $event.stopPropagation()"><i class="fa fa-eye"></i></a><a class="btn btn-sm btn-default" title="{{_('Start chat')}}" ng-click="doChat(s.Id); $event.stopPropagation()"><i class="fa fa-comments-o"></i></a></span></li>
</ul>
</div>
</div>

25
static/partials/settings.html

@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
<div class="form-horizontal" on-enter="saveSettings(user)" on-escape="reset()"
<fieldset>
<legend>{{_('Settings')}}</legend>
<legend>{{_('Profile')}}</legend>
<div class="form-group">
<label class="col-xs-4 control-label">{{_('Your picture')}}</label>
<div class="col-xs-8">
@ -16,11 +16,23 @@ @@ -16,11 +16,23 @@
<label class="col-xs-4 control-label">{{_('Your name')}}</label>
<div class="col-xs-8">
<input type="text" class="form-control" ng-model="user.displayName" placeholder="{{_('Name')}}" />
<span class="help-block">{{_('Your picture and name are visible to others.')}}</span>
</div>
</div>
<div class="form-group">
<label class="col-xs-4 control-label">{{_('Status message')}}</label>
<div class="col-xs-8">
<input type="text" class="form-control" ng-model="user.message" placeholder="{{_('What\'s on your mind?')}}" />
</div>
</div>
<div class="form-group">
<div class="col-xs-8 col-xs-offset-4">
{{_('Profile information is public.')}}
</div>
</div>
<div ng-controller="UsersettingsController as usersettings">
<div class="form-group" ng-if="(withUsers && withUsersRegistration) || userid">
<div ng-if="(withUsers && withUsersRegistration) || userid">
<legend>{{_('Account')}}</legend>
<div class="form-group">
<label class="col-xs-4 control-label">{{_('Your ID')}}</label>
<div ng-switch="withUsersMode">
<form ng-switch-when="certificate" class="col-xs-8" target="users_registration_certificate_iframe">
@ -53,8 +65,10 @@ @@ -53,8 +65,10 @@
</div>
</div>
</div>
</div>
<div ng-show="mediaSources.supported || isChrome">
<legend>{{_('Media')}}</legend>
<div ng-show="mediaSources.supported">
<hr/>
<div class="form-group">
<label class="col-xs-4 control-label">{{_('Microphone')}}</label>
<div class="col-xs-8">
@ -78,7 +92,8 @@ @@ -78,7 +92,8 @@
</div>
</div>
</div>
<hr/>
</div>
<legend>{{_('Settings')}}</legend>
<div class="form-group">
<label class="col-xs-4 control-label">{{_('Language')}}</label>
<div class="col-xs-8">

Loading…
Cancel
Save