mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-08-04 01:29:21 +00:00
Merge pull request #1798 from snicker/develop
Fixed issues with positioning of userlist
This commit is contained in:
commit
56b1684a45
4 changed files with 36 additions and 9 deletions
|
|
@ -34,7 +34,7 @@
|
|||
"github-buttons": "git://github.com/mdo/github-buttons.git",
|
||||
"marked": "~0.2.9",
|
||||
"JavaScriptButtons": "git://github.com/paypal/JavaScriptButtons.git#master",
|
||||
"Angular-At-Directive": "git://github.com/scarletsky/Angular-At-Directive.git#master"
|
||||
"Angular-At-Directive": "git://github.com/snicker/Angular-At-Directive#master"
|
||||
},
|
||||
"resolutions": {
|
||||
"jquery": "~2.0.3",
|
||||
|
|
|
|||
|
|
@ -67,8 +67,6 @@
|
|||
background: white;
|
||||
border: 1px solid #a4a4a4;
|
||||
z-index: 10;
|
||||
margin-left: -435px;
|
||||
margin-top: -355px;
|
||||
}
|
||||
|
||||
.list-at-user li {
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Groups', '$http', 'A
|
|||
}
|
||||
])
|
||||
|
||||
.controller('AutocompleteCtrl', ['$scope', 'Groups', 'User', function ($scope,Groups,User) {
|
||||
.controller('AutocompleteCtrl', ['$scope', '$timeout', 'Groups', 'User', 'InputCaret', function ($scope,$timeout,Groups,User,InputCaret) {
|
||||
$scope.clearUserlist = function() {
|
||||
$scope.response = [];
|
||||
$scope.usernames = [];
|
||||
|
|
@ -87,6 +87,7 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Groups', '$http', 'A
|
|||
|
||||
$scope.addNewUser = function(user) {
|
||||
if($.inArray(user.user,$scope.usernames) == -1) {
|
||||
user.username = user.user;
|
||||
$scope.usernames.push(user.user);
|
||||
$scope.response.push(user);
|
||||
}
|
||||
|
|
@ -103,10 +104,38 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Groups', '$http', 'A
|
|||
}
|
||||
|
||||
$scope.$watch('group.chat',$scope.chatChanged);
|
||||
|
||||
$scope.caretChanged = function(newCaretPos) {
|
||||
var relativeelement = $('.-options');
|
||||
var textarea = $('.chat-textarea');
|
||||
var userlist = $('.list-at-user');
|
||||
var offset = {
|
||||
x: textarea.offset().left - relativeelement.offset().left,
|
||||
y: textarea.offset().top - relativeelement.offset().top,
|
||||
};
|
||||
if(relativeelement) {
|
||||
var caretOffset = InputCaret.getPosition(textarea);
|
||||
userlist.css({
|
||||
left: caretOffset.left + offset.x,
|
||||
top: caretOffset.top + offset.y + 16
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
$scope.updateTimer = false;
|
||||
|
||||
$scope.$watch(function () { return $scope.caretPos; },function(newCaretPos) {
|
||||
if($scope.updateTimer){
|
||||
$timeout.cancel($scope.updateTimer)
|
||||
}
|
||||
$scope.updateTimer = $timeout(function(){
|
||||
$scope.caretChanged(newCaretPos);
|
||||
},$scope.watchDelay)
|
||||
});
|
||||
}])
|
||||
|
||||
.controller('ChatCtrl', ['$scope', 'Groups', 'User', function($scope, Groups, User){
|
||||
$scope._chatMessage = '';
|
||||
$scope.message = {content:''};
|
||||
$scope._sending = false;
|
||||
|
||||
$scope.postChat = function(group, message){
|
||||
|
|
@ -119,7 +148,7 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Groups', '$http', 'A
|
|||
}else if(data.message){
|
||||
group.chat.unshift(data.message);
|
||||
}
|
||||
$scope._chatMessage = '';
|
||||
$scope.message.content = '';
|
||||
$scope._sending = false;
|
||||
}, function(err){
|
||||
$scope._sending = false;
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
form(ng-submit='postChat(group,_chatMessage)')
|
||||
form(ng-submit='postChat(group,message.content)')
|
||||
.-options
|
||||
//FIXME ng-model makes this painfully slow! using jquery for now, which is really non-angular-like
|
||||
.control-group.option-large(ng-controller='AutocompleteCtrl')
|
||||
textarea.chat-textarea.option-content(style='height:6em;', ui-keypress='{13:"postChat(group,_chatMessage)"}', ng-model='_chatMessage', flag='@', at-user, auto-complete)
|
||||
span.user-list(ng-show='!isAtListHidden', auto-follow='true')
|
||||
textarea.chat-textarea.option-content(style='height:6em;', ui-keypress='{13:"postChat(group,message.content)"}', ng-model='message.content', updateinterval='250', flag='@', at-user, auto-complete)
|
||||
span.user-list(ng-show='!isAtListHidden')
|
||||
ul.list-at-user
|
||||
li(ng-repeat='user in users | filter:query.text | limitTo: 5', ng-click='autoComplete(user)')
|
||||
span.username.label(class='label-contributor-{{user.contributor.level}}') {{user.user}}
|
||||
|
|
|
|||
Loading…
Reference in a new issue