2011-05-03 16:19:47 +03:00
|
|
|
var ls = ls || {};
|
2011-04-01 10:49:36 +03:00
|
|
|
|
2011-05-03 16:19:47 +03:00
|
|
|
/**
|
|
|
|
* Функционал личных сообщений
|
|
|
|
*/
|
|
|
|
ls.talk = (function ($) {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Добавляет пользователя к переписке
|
|
|
|
*/
|
|
|
|
this.addToTalk = function(idTalk){
|
|
|
|
var sUsers = $('#talk_speaker_add').val();
|
2011-04-01 10:49:36 +03:00
|
|
|
if(!sUsers) return false;
|
|
|
|
$('#talk_speaker_add').val('');
|
2011-05-03 16:19:47 +03:00
|
|
|
|
2012-01-28 17:52:44 +02:00
|
|
|
var url = aRouter['talk']+'ajaxaddtalkuser/';
|
|
|
|
var params = {users: sUsers, idTalk: idTalk};
|
|
|
|
|
|
|
|
'*addToTalkBefore*'; '*/addToTalkBefore*';
|
|
|
|
ls.ajax(url, params, function(result) {
|
2011-04-01 10:49:36 +03:00
|
|
|
if (result.bStateError) {
|
2011-05-03 16:19:47 +03:00
|
|
|
ls.msg.error(null, result.sMsg);
|
2011-04-01 10:49:36 +03:00
|
|
|
} else {
|
|
|
|
$.each(result.aUsers, function(index, item) {
|
|
|
|
if(item.bStateError){
|
2011-05-03 16:19:47 +03:00
|
|
|
ls.msg.notice(null, item.sMsg);
|
2011-04-01 10:49:36 +03:00
|
|
|
} else {
|
2012-01-28 17:52:44 +02:00
|
|
|
var list = $('#speaker_list');
|
|
|
|
if(list.length == 0) {
|
|
|
|
list = $('<ul class="list" id="speaker_list"></ul>');
|
|
|
|
$('#speaker_list_block').append(list);
|
2011-04-01 10:49:36 +03:00
|
|
|
}
|
2012-01-28 17:52:44 +02:00
|
|
|
var listItem = $('<li id="speaker_item_'+item.sUserId+'_area"><a href="'+item.sUserLink+'" class="user">'+item.sUserLogin+'</a> - <a href="#" id="speaker_item_'+item.sUserId+'" class="delete">'+ls.lang.get('delete')+'</a></li>')
|
|
|
|
list.append(listItem);
|
|
|
|
ls.hook.run('ls_talk_add_to_talk_item_after',[idTalk,item],listItem);
|
2011-04-01 10:49:36 +03:00
|
|
|
}
|
|
|
|
});
|
2012-01-28 17:52:44 +02:00
|
|
|
|
|
|
|
ls.hook.run('ls_talk_add_to_talk_after',[idTalk,result]);
|
2011-04-01 10:49:36 +03:00
|
|
|
}
|
|
|
|
});
|
|
|
|
return false;
|
2011-05-03 16:19:47 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Удаляет пользователя из переписки
|
|
|
|
*/
|
|
|
|
this.removeFromTalk = function(link, idTalk) {
|
2011-04-01 10:49:36 +03:00
|
|
|
link = $(link);
|
|
|
|
|
2011-05-03 16:19:47 +03:00
|
|
|
$('#'+link.attr('id')+'_area').fadeOut(500,function(){
|
|
|
|
$(this).remove();
|
|
|
|
});
|
2012-01-28 17:52:44 +02:00
|
|
|
var idTarget = link.attr('id').replace('speaker_item_','');
|
|
|
|
|
|
|
|
var url = aRouter['talk']+'ajaxdeletetalkuser/';
|
|
|
|
var params = {idTarget: idTarget, idTalk: idTalk};
|
2011-04-01 10:49:36 +03:00
|
|
|
|
2012-01-28 17:52:44 +02:00
|
|
|
'*removeFromTalkBefore*'; '*/removeFromTalkBefore*';
|
|
|
|
ls.ajax(url, params, function(result) {
|
2011-04-01 10:49:36 +03:00
|
|
|
if (!result) {
|
2011-05-03 16:19:47 +03:00
|
|
|
ls.msg.error('Error','Please try again later');
|
2011-04-01 10:49:36 +03:00
|
|
|
link.parent('li').show();
|
|
|
|
}
|
|
|
|
if (result.bStateError) {
|
2011-05-03 16:19:47 +03:00
|
|
|
ls.msg.error(null, result.sMsg);
|
2011-04-01 10:49:36 +03:00
|
|
|
link.parent('li').show();
|
|
|
|
}
|
2012-01-28 17:52:44 +02:00
|
|
|
ls.hook.run('ls_talk_remove_from_talk_after',[idTalk,idTarget],link);
|
2011-04-01 10:49:36 +03:00
|
|
|
});
|
2011-05-03 16:19:47 +03:00
|
|
|
|
2011-04-01 10:49:36 +03:00
|
|
|
return false;
|
2012-04-14 15:13:51 +03:00
|
|
|
};
|
2011-04-01 10:49:36 +03:00
|
|
|
|
2011-05-03 16:19:47 +03:00
|
|
|
/**
|
|
|
|
* Добавляет пользователя в черный список
|
|
|
|
*/
|
|
|
|
this.addToBlackList = function() {
|
|
|
|
var sUsers = $('#talk_blacklist_add').val();
|
2011-04-01 10:49:36 +03:00
|
|
|
if(!sUsers) return false;
|
|
|
|
$('#talk_blacklist_add').val('');
|
2011-05-03 16:19:47 +03:00
|
|
|
|
2012-01-28 17:52:44 +02:00
|
|
|
var url = aRouter['talk']+'ajaxaddtoblacklist/';
|
|
|
|
var params = {users: sUsers};
|
|
|
|
|
|
|
|
'*addToBlackListBefore*'; '*/addToBlackListBefore*';
|
|
|
|
ls.ajax(url, params, function(result) {
|
2011-04-01 10:49:36 +03:00
|
|
|
if (result.bStateError) {
|
2011-05-03 16:19:47 +03:00
|
|
|
ls.msg.error(null, result.sMsg);
|
2011-04-01 10:49:36 +03:00
|
|
|
} else {
|
|
|
|
$.each(result.aUsers, function(index, item) {
|
|
|
|
if(item.bStateError){
|
2011-05-03 16:19:47 +03:00
|
|
|
ls.msg.notice(null, item.sMsg);
|
2011-04-01 10:49:36 +03:00
|
|
|
} else {
|
2012-01-28 17:52:44 +02:00
|
|
|
var list = $('#black_list');
|
|
|
|
if(list.length == 0) {
|
|
|
|
list = $('<ul class="list" id="black_list"></ul>');
|
|
|
|
$('#black_list_block').append(list);
|
2011-04-01 10:49:36 +03:00
|
|
|
}
|
2012-01-28 17:52:44 +02:00
|
|
|
var listItem = $('<li id="blacklist_item_'+item.sUserId+'_area"><a href="#" class="user">'+item.sUserLogin+'</a> - <a href="#" id="blacklist_item_'+item.sUserId+'" class="delete">'+ls.lang.get('delete')+'</a></li>');
|
|
|
|
$('#black_list').append(listItem);
|
|
|
|
ls.hook.run('ls_talk_add_to_black_list_item_after',[item],listItem);
|
2011-04-01 10:49:36 +03:00
|
|
|
}
|
|
|
|
});
|
2012-01-28 17:52:44 +02:00
|
|
|
ls.hook.run('ls_talk_add_to_black_list_after',[result]);
|
2011-04-01 10:49:36 +03:00
|
|
|
}
|
|
|
|
});
|
|
|
|
return false;
|
2012-04-14 15:13:51 +03:00
|
|
|
};
|
2011-04-01 10:49:36 +03:00
|
|
|
|
2011-05-03 16:19:47 +03:00
|
|
|
/**
|
|
|
|
* Удаляет пользователя из черного списка
|
|
|
|
*/
|
|
|
|
this.removeFromBlackList = function(link) {
|
2011-04-01 10:49:36 +03:00
|
|
|
link = $(link);
|
|
|
|
|
2011-05-03 16:19:47 +03:00
|
|
|
$('#'+link.attr('id')+'_area').fadeOut(500,function(){
|
|
|
|
$(this).remove();
|
|
|
|
});
|
|
|
|
var idTarget = link.attr('id').replace('blacklist_item_','');
|
2011-04-01 10:49:36 +03:00
|
|
|
|
2012-01-28 17:52:44 +02:00
|
|
|
var url = aRouter['talk']+'ajaxdeletefromblacklist/';
|
|
|
|
var params = {idTarget: idTarget};
|
|
|
|
|
|
|
|
'*removeFromBlackListBefore*'; '*/removeFromBlackListBefore*';
|
|
|
|
ls.ajax(url, params, function(result) {
|
2011-04-01 10:49:36 +03:00
|
|
|
if (!result) {
|
2011-05-03 16:19:47 +03:00
|
|
|
ls.msg.error('Error','Please try again later');
|
2011-04-01 10:49:36 +03:00
|
|
|
link.parent('li').show();
|
|
|
|
}
|
|
|
|
if (result.bStateError) {
|
2011-05-03 16:19:47 +03:00
|
|
|
ls.msg.error(null, result.sMsg);
|
2011-04-01 10:49:36 +03:00
|
|
|
link.parent('li').show();
|
|
|
|
}
|
2012-01-28 17:52:44 +02:00
|
|
|
ls.hook.run('ls_talk_remove_from_black_list_after',[idTarget],link);
|
2011-04-01 10:49:36 +03:00
|
|
|
});
|
|
|
|
return false;
|
2012-04-14 15:13:51 +03:00
|
|
|
};
|
2011-04-01 10:49:36 +03:00
|
|
|
|
2011-05-03 16:19:47 +03:00
|
|
|
/**
|
|
|
|
* Добавляет или удаляет друга из списка получателей
|
|
|
|
*/
|
|
|
|
this.toggleRecipient = function(login, add) {
|
|
|
|
var to = $.map($('#talk_users').val().split(','), function(item, index){
|
|
|
|
item = $.trim(item);
|
2011-04-01 10:49:36 +03:00
|
|
|
return item != '' ? item : null;
|
|
|
|
});
|
|
|
|
if (add) { to.push(login); to = $.richArray.unique(to); } else { to = $.richArray.without(to, login); }
|
|
|
|
$('#talk_users').val(to.join(', '));
|
2012-04-14 15:13:51 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Очищает поля фильтра
|
|
|
|
*/
|
|
|
|
this.clearFilter = function() {
|
|
|
|
$('#block_talk_search_content').find('input[type="text"]').val('');
|
|
|
|
$('#block_talk_search_content').find('input[type="checkbox"]').removeAttr("checked");
|
|
|
|
return false;
|
|
|
|
};
|
2011-05-03 16:19:47 +03:00
|
|
|
|
|
|
|
return this;
|
|
|
|
}).call(ls.talk || {},jQuery);
|