Вход Регистрация
Файл: chatigniter v2/assets/js/chatigniter.js
Строк: 150
<?php
/*
|-------------------------------------------------------------------------
| Copyright (c) 2013 
| This script may be used for non-commercial purposes only. For any
| commercial purposes, please contact the author at sammkaranja@gmail.com
|-------------------------------------------------------------------------
*/

/*
|-------------------------------------------------------------------------
| Funtion to trigger the refresh event
|-------------------------------------------------------------------------
*/
bootChat();

/*----------------------------------------------------------------------
| Function to display individual chatbox
------------------------------------------------------------------------*/

$(document).on('click''[data-toggle="popover"]', function(){
        $(
this).popover('hide');
        $(
'ul.chat-box-body').empty();
        
user = $(this).find('input[name="user_id"]').val();
        $(
this).find('span[rel="'+user+'"]').text('');

        
load_thread(user);

        var 
offset = $(this).offset(); 
        var 
h_main = $('#chat-container').height();
        var 
h_title = $("#chat-box > .chat-box-header").height();
        var 
top = ($('#chat-box').is(':visible') ? (offset.top h_title 40) : (offset.top h_title 20));
        if((
top + $('#chat-box').height()) > h_main){ top h_main -  $('#chat-box').height();}
        $(
'#chat-box').css({'top'top});
        if(!$(
'#chat-box').is(':visible')){
            $(
'#chat-box').toggle('slide',{
                
direction'right'
            
}, 500);
        }
        $(
'.chat-box-body').slimScroll({ height'300px' });
        
// FOCUS INPUT TExT WHEN CLICK
        
$("#chat-box .chat-textarea input").focus();
});
/*----------------------------------------------------------------------
| Function to send message
------------------------------------------------------------------------*/
$(document).on('keypress''.chat-textarea input', function(e){
        var 
txtarea = $(this);
        var 
message txtarea.val();
        if(
message !== "" && e.which == 13){
            
txtarea.val('');
            
// save the message 
            
$.ajax({ type"POST"urlbase  "chat/save_message"data: {messagemessageuser user},cachefalse,
                
success: function(response){
                    
msg response.message;
                    
li '<li class=" bubble 'msg.type +'"><img src="assets/images/thumbs/'+msg.avatar+'" class="avt img-responsive">
                    <div class="message">
                    <span class="chat-arrow"></span>
                    <a href="javascript:void(0)" class="chat-name">'
+msg.name+'</a>&nbsp;
                    <span class="chat-datetime">at '
+msg.time+'</span>
                    <span class="chat-body">'
+msg.body+'</span></div></li>';

                    $(
'ul.chat-box-body').append(li);

                    $(
'ul.chat-box-body').animate({scrollTop: $('ul.chat-box-body').prop("scrollHeight")}, 500);
                }
            });
        }
});

/*----------------------------------------------------------------------------------------------------
| Function to load messages
-------------------------------------------------------------------------------------------------------*/
function bootChat()
{
    
refresh setInterval(function()
    {
 
    $.
ajax(
        {
            
type'GET',
            
url base "chat/updates/",
            
async true,
            
cache false,
            
success: function(data){
                if(
data.success){
                     
thread data.messages;
                     
senders data.senders;
                     $.
each(thread, function() {
                        if($(
"#chat-box").is(":visible")){
                            
chatbuddy = $("#chat_buddy_id").val();
                                if(
this.sender == chatbuddy){
                                  
li '<li class="'this.type +'"><img src="assets/images/thumbs/'+this.avatar+'" class="avt img-responsive">
                                    <div class="message">
                                    <span class="chat-arrow"></span>
                                    <a href="javascript:void(0)" class="chat-name">'
+this.name+'</a>&nbsp;
                                    <span class="chat-datetime">at '
+this.time+'</span>
                                    <span class="chat-body">'
+this.body+'</span></div></li>';
                                    $(
'ul.chat-box-body').append(li);
                                    $(
'ul.chat-box-body').animate({scrollTop: $('ul.chat-box-body').prop("scrollHeight")}, 500);
                                    
//Mark this message as read
                                
$.ajax({ type"POST"urlbase "chat/mark_read"data: {idthis.msg}});
                                }
                                else{
                                    
from this.sender;
                                    $.
each(senders, function() {
                                        if(
this.user == from){
                                            $(
".chat-group").find('span[rel="'+from+'"]').text(this.count);
                                        }
                                    });
                                }
                         }
                         else{
                            
from this.sender;
                            $.
each(senders, function() {
                                if(
this.user == from){
                                    $(
".chat-group").find('span[rel="'+from+'"]').text(this.count);
                                }
                            });
                            
                         }
                     });

                    var 
audio = new Audio('assets/notify/notify.mp3').play();
                }
            },
                
error : function(XMLHttpRequesttextstatuserror) { 
                            
console.log(error); 
                }
        }
    );

       }, 
2000);
}

/*----------------------------------------------------------------------
| Function to load threaded messages or user conversation
------------------------------------------------------------------------*/
var limit 1;
function 
load_thread(userlimit){
        
//send an ajax request to get the user conversation 
       
$.ajax({ type"POST"urlbase  "chat/messages"data: {user userlimit:limit },cachefalse,
        
success: function(response){
        if(
response.success){
            
buddy response.buddy;
            
status buddy.status == 'Online' 'Offline';
            
statusClass buddy.status == 'user-status is-online' 'user-status is-offline';

            $(
'#chat_buddy_id').val(buddy.id);
            $(
'.display-name''#chat-box').html(buddy.name);
            $(
'#chat-box > .chat-box-header > small').html(status);
            $(
'#chat-box > .chat-box-header > span.user-status').removeClass().addClass(statusClass);

            $(
'ul.chat-box-body').html('');
            if(
buddy.more){
             $(
'ul.chat-box-body').append('<li id="load-more-wrap" style="text-align:center"><a onclick="javascript: load_thread(''+buddy.id+'', ''+buddy.limit+'')" class="btn btn-xs btn-info" style="width:100%">View older messsages('+buddy.remaining+')</a></li>');
            }
 

                
thread response.thread;
                $.
each(thread, function() {
                  
li '<li class="'this.type +'"><img src="assets/images/thumbs/'+this.avatar+'" class="avt img-responsive">
                    <div class="message">
                    <span class="chat-arrow"></span>
                    <a href="javascript:void(0)" class="chat-name">'
+this.name+'</a>&nbsp;
                    <span class="chat-datetime">at '
+this.time+'</span>
                    <span class="chat-body">'
+this.body+'</span></div></li>';

                    $(
'ul.chat-box-body').append(li);
                });
                if(
buddy.scroll){
                    $(
'ul.chat-box-body').animate({scrollTop: $('ul.chat-box-body').prop("scrollHeight")}, 500);
                }
                
            }
        }});
}


/*
|----------------------------------------------------------------------------
| End of file
|----------------------------------------------------------------------------
*/
?>
Онлайн: 0
Реклама