View file messages/templates/messages/js/script.html

File size: 4.83Kb
<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>