<script class="update_chat_script">
jQuery(document).ready(function($) {
form = $('#send-message-form');
conv = $("#conversation-list");
scroll_el(conv,100);
form.find('#mgs-text-input').on('keydown', function(event) {
if(event.keyCode == 13 && event.shiftKey == 0){
form.submit();
}
});
form.ajaxForm({
url: link('messages/send'),
type: 'POST',
dataType: 'json',
beforeSend: function(){
var mtext = form.find('#mgs-text-input').val();
// if (not(mtext.trim().length)) {
// return false;
// }
form.find('button.btn-main').attr('disabled', 'disabled');
},
success: function(data){
if (data.status == 200) {
conv.append(data.html);
}else if(data.status == 400){
$.toast(data.message,{
duration: 5000,
type: 'success',
align: 'bottom',
singleton: true
});
}
scroll_el(conv,500);
form.find('button.btn-main').removeAttr('disabled');
form.get(0).reset();
}
});
$("#delete__chat").click(function(event) {
$('div.delchat--modal').fadeIn(250);
});
$("#clear_messages").click(function(event) {
$('div.clearchat--modal').fadeIn(250);
});
$('.clear--chat').click(function(event) {
var zis = $(this);
zis.parents('.confirm--modal').fadeOut();
conv.empty();
$.get(link('messages/clear-chat'), function(data) {
if (data.status == 200) {
$.toast(data.message,{
duration: 5000,
type: '',
align: 'top-right',
singleton: false
});
}
});
});
$('.delete--chat').click(function(event) {
var zis = $(this);
zis.parents('.confirm--modal').fadeOut();
conv.empty();
$.get(link('messages/delete-chat'), function(data) {
if (data.status == 200) {
$("div.chat-list").find('li.active').slideUp(200,function(){
$(this).remove();
});
delay(function(){
window.location.href = data.url;
},1000);
}
});
});
$(document).on('click', '.user__avatar', function(event) {
event.preventDefault();
$(this).toggleClass('active');
$(this).closest(".message-list-item").toggleClass('active');
var selected = $("#conversation-list").find('.user__avatar.active').length;
if(selected){
$("#conversation-list").addClass('active');
$('.delete-selected').removeClass('hidden').find('b').text(selected);
}
else{
$("#conversation-list").removeClass('active');
$('.delete-selected').addClass('hidden').find('b').text('');
}
});
$('.deselect-messages').click(function(event) {
$('.user__avatar').each(function(index, el) {
$(el).removeClass('active');
});
$('.delete-selected').addClass('hidden').find('b').text('');
});
$('.delselected-messages').click(function(event) {
$('div.delmessages--modal').fadeIn(250);
});
$('.delete--messages').click(function(event) {
var zis = $(this);
var lst = [];
zis.parents('.confirm--modal').fadeOut();
$('.message-list-item.active').each(function(index, el) {
lst[index] = $(el).data('id');
$(el).fadeOut(400,function(){
$(this).remove();
});
});
$("#conversation-list").removeClass('active');
$('.delete-selected').addClass('hidden').find('b').text('');
if (lst.length) {
$.post(link('messages/delete-messages'),{messages:lst},function(data) {},dataType = 'json');
}
});
});
window.chat_interval = setInterval(function(){
var last_msg = 0;
var data = new Object();
if (conv.find('.message-list-item').length > 0) {
last_msg = conv.find('.message-list-item:last').data('id');
data['lid'] = last_msg;
}
$.ajax({
url: link('messages/update-chat'),
type: 'GET',
dataType: 'json',
data: data,
})
.done(function(data) {
if (data.status == 200) {
if (data.html) {
conv.append(data.html);
scroll_el(conv,100);
}
}
});
}, 4000);
$(document).on('click','.mobile_msg_close',function(){
select_chat();
});
$('#conversation-list').on('scroll', function() {
var scrollTop = $(this).scrollTop();
if (scrollTop + $(this).innerHeight() >= this.scrollHeight) {
$('#old_messages').hide();
} else if (scrollTop <= 0) {
$('#old_messages').show();
} else {
$('#old_messages').hide();
}
});
function get_old_messages() {
last_msg = conv.find('.message-list-item:first').data('id');
$.ajax({
url: link('messages/get_old_messages'),
type: 'GET',
dataType: 'json',
data: {last_msg:last_msg},
})
.done(function(data) {
if (data.status == 200) {
if (data.html) {
conv.prepend(data.html);
}
}
else{
$('#old_messages').remove();
}
});
}
</script>