Source: invitation.js

/**
* This function handles button click to end the invitiation call session
*/
$(document).on('click', '#endInvitationSession', function () {
    var invitation_id = $(this).data('invitation_id');
    $.confirm({
        title: 'Are you sure you want to end the session        ssss?',
        columnClass: 'col-md-6 col-md-offset-2',
        content: '',
        buttons: {
            cancel: {
                btnClass: 'btn btn-danger mr-3',
            },
            ok: {
                text: "Ok",
                btnClass: 'btn btn-success',
                keys: ['enter'],
                action: function () {
                    jist_stop();
                    
                    //staff/invitee/end-session

                    $.get(base_url + "staff/invitee/end-session/"+invitation_id, function (data) {
                        location.reload();
                        
                        
                    });
                }
            }
        }
    })
});

/**
* This function handles button click to remove the invitiation call session
*/
$(document).on('click', '.js-respond-callers', function () {
    var id = $(this).data('id');
    $.confirm({
        title: 'Remove Call From List',
        columnClass: 'col-md-6 col-md-offset-2',
        content: '',
        buttons: {
            cancel: {
                btnClass: 'btn btn-danger mr-3',
            },
            ok: {
                text: "Ok",
                btnClass: 'btn btn-success',
                keys: ['enter'],
                action: function () {
                    jist_stop();
                    
                    //staff/invitee/end-session

                    $.get(base_url + "staff/end-callers/"+id,function (data) {
                        // location.reload();
                        // getCallers();
                        
                    });
                }
            }
        }
    })
});



/**
* This function responds to staff's invitation. It handles the click function on Invitation box whether to re-start video session 
    or are there any other previous active session. 
*/
$(document).on('click', '.js-respond-invitation', function() {
    //alert($(this).data('inv_id'));
    var isCurrentBox = $(this).find('.blinking-color').hasClass('js-session-active')
    var hasOtherActiveStatus = $(this).parents('#myInvitations').find('.blinking-color').hasClass('js-session-active')
    
    if(isCurrentBox === false && hasOtherActiveStatus === true) {
        $.confirm({
            title: `You are on a session with other staff. Please end the previous session before accepting a new invitation.`, 
            columnClass: 'col-md-6 col-md-offset-2',
            content: '',
            buttons: {   
                ok: {
                    text: 'OK',
                    btnClass: 'btn btn-success mr-3',
                    action: function() {
                        
                    }
                },
            
            }
        });
    }
    else {
        var invitation_id = $(this).data('inv_id');
        var invited_by = $(this).data('inv_by');
        var status = $(this).data('status');
        // show_control(invitation_id);
        console.log('inv '+invitation_id);
        $.get(base_url + "staff/get-invitation-detail/"+invitation_id, 
            function (data) {
                switch(data.status){

                    case "active":
                        

                        var offender_id = data.offender_id;
                        $.confirm({
                            title: 'Do you want to restart or join the video with '+ invited_by + '?',  
                            columnClass: 'col-md-8 col-md-offset-2',
                            content: ``,
                            buttons: {   
                                cancel: {
                                    btnClass: 'btn btn-danger mr-3',
                                    action: function(){infoToastr('You currently have an active session for this invitation.');}
                    
                                },
                                ok: {
                                    btnClass: 'btn btn-success',
                                    action: function(){
                                        // $.get(base_url + "invitee-join-session/"+invitation_id, function (data){

                                        // });
                                        window.location.replace(base_url + "invitee-join-session/"+invitation_id+'/'+offender_id); 
                                        // jist_start(data.offender_staff_session_id, registration_info);
                                        // subscribe_offender(data.offender_staff_session_id);

                                        
                                        // var user= "session_"+ data.offender_staff_session_id;
                                        // conn.subscribe(user, function(topic, data) {
                                        //     show_control(invitation_id);
                                        // });
                                    }   
                                }
                            }
                            
                        });

                    break;
                    case "inactive":
                        infoToastr('Could not connect to this staff');

                    break;
                    default:
                    
                        $.confirm({
                            title: '<div class="pl-3">Invitation from '+ invited_by+'</div>',   
                            columnClass: 'col-md-8 col-md-offset-2',
                            content: `<div class="container-fluid text-left new-conf-body">
                    <form class="" name="">
                    <div class="row"> 
                    <div class="col-md-6 form-group">
                                    <h6>Case Title</h6>
                                    <div class="text-black-50">${data.case_title}</div>
								</div>
								<div class="col-md-6 form-group">
                                    <h6>Case No</h6>
                                    <div class="text-black-50">${data.court_case_no}</div>
								</div>
                                </div>
                        <div class="row">
                            
                            <div class="col-md-6 form-group">
                                <h6>Offender\'s name</h6>
                                <div class="text-black-50">${data.offenderName}</div>
                            </div>
                            <div class="col-md-6 form-group">
                                <h6>DOB</h6>
                               <div class="text-black-50">${data.offenderDOB}</div>
                            </div>
                            <div class="col-md-6 form-group">
                                <label>Choice</label>
                                <select class="select form-control" name="staff_choice" id="choice">
                               

                                    <option value="accept">Accept</option>
                                    <option value="reject">Reject</option>
                                    <option value="defer">Defer</option>
                                </select>
                            </div>
                            <input type="hidden" id="room_id" name="room_id" value="${data.offender_staff_session_id}"/>
                            <input type="hidden" id="offender_id" name="offender_id" value="${data.offender_id}"/>
                        </div>
                    </form>
                </div>`,
                            buttons: {   
                                cancel: {
                                    btnClass: 'btn btn-danger mr-3',
                                },
                                ok: {
                                    text: "Submit",
                                    btnClass: 'btn btn-success',
                                    keys: ['enter'],
                                    action: function(){
                                        var room_id = $('#room_id').val();;
                                        var choice =$('#choice').val();
                                        var offender_id =$('#offender_id').val();
                                        console.log(choice);
                                        $.post(base_url + "staff/update-invitation", { invitation: invitation_id, status: choice,offender_id: offender_id }, function (data) {
                                            if (data.status.localeCompare("success") == 0) {

                                                switch(data.chat_status){
                                                    case "active":
                                                        
                                                        window.location.replace(base_url + "invitee-join-session/"+invitation_id+'/'+offender_id); 
                                                        //console.log(btoa(data.info-box));

                                                        // jist_start(room_id, registration_info);
                                                        // show_invitee_control(data);
                                                        // subscribe_offender(room_id);
                                                    // show_control(invitation_id);
                                                    invitation_data = invitation_id;
                                                        $('.js-respond-invitation').addClass('in-session')
                                                    break;

                                                    jist_start(room_id, registration_info);
                                                    // show_invitee_control(data);
                                                    show_control(invitation_id);
                                                    invitation_data = invitation_id;
                                                break;

                                                    case "defer":

                                                    break;


                                                }
                                                
                                                // update ui status 
                                                

                                            }
                                            getInvitations();
                                        }

                                        , 'json');  
                                    }
                                }
                            }
                        })
                        $('.new-conf-body').parents('.jconfirm-content-pane').addClass('my-new-conf').css('display','block !important')
                        console.log('called------')
                    break;
                }

            }
        );

        
        }
    
    
})


/**
* This function helps to show the controls such as 'End the session' button on the dashboard
*/
var show_control = function(inviteId){
    console.log('inviteid '+inviteId);
    $.get(base_url + "staff/get-invitation-controls/"+inviteId, function (data) {
        $('#main-section').empty();
        $('#main-section').append(data);
        
        
    });
    
}
// var current = function(){
//     $('body').find('.modal-backdrop').remove()
//         getHistory();   /// sagun added
//         // findCurrentStaff();
        
//         // getRegistrationDetails();
// }

// to be deleted
var getHistory = function(){
    console.log('roadmap being reloaded...');
    
	$.get(base_url+ "invitee-history", function(data){
        //alert(atob(data.status));
        // alert("data.status="+data.status);
        switch(data.status){
            case "success":
                
            break;
            case "fail":
                
            break;
            default:
              
            break;

        }

        $("#offender_road_map").html(atob(data.message));       
           
    },"json");
}

// to be deleted
var updateInviteStatus = function(){
    $.post(base_url + "staff/update-invite/", function (data) {
       
        
        
    });
}