Subversion Repositories SmartDukaan

Rev

Rev 4065 | Rev 4249 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

var orderTable;
var cartTable;

function loadUserPane(domId, userId) {
    $.ajax({
        type : "GET",
        url : "/crm/user-info?userId=" + userId,
        success : function(response) {
            $('#' + domId).html(response);
        }
    });
}

function loadOrderPane(domId, userId, orderId) {
    $.ajax({
        type : "GET",
        url : "/crm/user-orders?userId=" + userId,
        success : function(response) {
            $('#' + domId).html(response);
            loadOrderInfo("bottom-infopane", orderId);
            orderTable = $('#user-orders').dataTable({
                "aaSorting" : [ [ 1, 'desc' ] ],
                "fnDrawCallback": function() { truncateText(125); },
                "iDisplayLength" : 5,
                "sDom" : 'T<"clear">lfrtip',
                "oTableTools" : {
                    "sSwfPath" : "swf/copy_cvs_xls_pdf.swf"
                },
                "aLengthMenu" : [ [ 5, 10, 20, -1 ], [ 5, 10, 20, "All" ] ]
            });
        }
    });
}

function loadCartPane(domId, userId, cartId) {
    $.ajax({
        type : "GET",
        url : "/crm/user-cart?userId=" + userId + "&cartId=" + cartId,
        success : function(response) {
            $('#' + domId).html(response);
            cartTable = $('#user-cart').dataTable({
                "aaSorting" : [ [ 1, 'desc' ] ],
                "iDisplayLength" : 10,
                "sDom" : 'T<"clear">lfrtip',
                "oTableTools" : {
                    "sSwfPath" : "swf/copy_cvs_xls_pdf.swf"
                },
                "aLengthMenu" : [ [ 5, 10, 20, -1 ], [ 5, 10, 20, "All" ] ]
            });
        }
    });
}

function loadOrderInfo(domId, orderId) {
    $.ajax({
        type : "GET",
        url : "/crm/user-order-info?orderId=" + orderId,
        success : function(response) {
            $('#' + domId).html(response);

            var trId = 'order-row-' + orderId;
            if (orderTable != null) {
                for ( var index in orderTable.fnGetNodes()) {
                    var item = orderTable.fnGetNodes()[index];
                    if ($(item).attr('id') == trId) {
                        orderTable.fnDisplayRow(item);
                        break;
                    }
                }
            }

            $('#user-orders tr').removeClass('selected');
            $('#order-row-' + orderId).addClass('selected');
        }
    });
}

function loadLineInfo(domId, userId, itemId) {
    $.ajax({
        type : "GET",
        url : "/crm/user-line-info?userId=" + userId + "&itemId=" + itemId,
        success : function(response) {
            $('#' + domId).html(response);
            $('#user-cart tr').removeClass('selected');
            $('#cart-row-' + itemId).addClass('selected');
        }
    });
}

function loadTicketInfo(domId, ticketId, ticketTable, activityId) {
    $.ajax({
        type : "GET",
        url : "/crm/tickets/" + ticketId + "/edit",
        success : function(response) {
            $('#' + domId).html(response);

            var trId = 'ticket-row-' + ticketId;
            if (ticketTable != null) {
                for ( var index in ticketTable.fnGetNodes()) {
                    var item = ticketTable.fnGetNodes()[index];
                    if ($(item).attr('id') == trId) {
                        ticketTable.fnDisplayRow(item);
                        break;
                    }
                }
            }

            $('#tickets tr').removeClass('selected');
            $('#' + trId).addClass('selected');

            // For tickets accessed from activity page
            if (activityId != null) {
                $('#activity tr').removeClass('selected');
                $('#activity-row-' + activityId).addClass('selected');
            }
            
            $('#order-table').dataTable({
                "aaSorting" : [ [ 2, 'desc' ] ],
                "iDisplayLength" : 5,
                "fnDrawCallback": function() {truncateText(100);},
                "aLengthMenu" : [ [ 5, 10, 20, -1 ], [ 5, 10, 20, "All" ] ]
            });
        }
    });
}

function createTicketDataTable(domId) {
    var ticketsTable = $('#' + domId).dataTable({
         "aaSorting" : [ [ 3, 'asc' ] ],
//         "bAutoWidth": false,
//         "aoColumns" : [{ "sWidth": "5%" },
//                        { "sWidth": "20%" },
//                        { "sWidth": "20%" },
//                        { "sWidth": "12.5%" },
//                        { "sWidth": "12.5%" },
//                        { "sWidth": "10%" },
//                        { "sWidth": "10%" },
//                        { "sWidth": "10%" }],
        "fnDrawCallback": function() {truncateText(85);},
        "iDisplayLength" : 5,
        "sDom" : 'T<"clear">lfrtip',
        "oTableTools" : {
            "sSwfPath" : "swf/copy_cvs_xls_pdf.swf"
        },
        "aLengthMenu" : [ [ 5, 10, 20, -1 ], [ 5, 10, 20, "All" ] ]
    });

    return ticketsTable;
}

function loadActivityInfo(domId, activityId) {
    $.ajax({
        type : "GET",
        url : "/crm/activity-info?activityId=" + activityId,
        success : function(response) {
            $('#' + domId).html(response);
            $('#activity tr').removeClass('selected');
            $('#activity-row-' + activityId).addClass('selected');
            $('#activity').css('table-layout', 'fixed');
        }
    });
}

function createActivityDataTable(domId) {
    var activityTable = $('#' + domId).dataTable({
        "aaSorting" : [ [ 4, 'desc' ] ],
        "iDisplayLength" : 5,
        "sDom" : 'T<"clear">lfrtip',
        "fnDrawCallback": function() {truncateText(95);},
        "oTableTools" : {
            "sSwfPath" : "swf/copy_cvs_xls_pdf.swf"
        },
        "aLengthMenu" : [ [ 5, 10, 20, -1 ], [ 5, 10, 20, "All" ] ]
    });

    return activityTable;
}

function loadTicketCreationForm(domId, params) {
    $.ajax({
        type : "GET",
        url : "/crm/tickets/new",
        data : params,
        success : function(response) {
            $('#' + domId).html(response);
        }
    });
}

function loadActivityCreationForm(domId, params) {
    $.ajax({
        type : "GET",
        url : "/crm/activity/new",
        data : params,
        success : function(response) {
            $('#' + domId).html(response);
        }
    });
}

function updateTicket(domId, ticketId, params) {
    $.ajax({
        type : "PUT",
        url : "/crm/tickets/" + ticketId + "?" + params,
        success : function(response) {
            var ticketTable = $('table[id$="tickets"]');
            if (ticketTable.length == 1) {
                var rowIndex = ticketTable.dataTable().fnGetPosition($('tr#ticket-row-' + ticketId)[0]);
                var responseObj = jQuery(response);
                var actionMessages = responseObj.find('#action-messages').html();
                responseObj.find('#ticket-row-' + ticketId).children().each(
                        function(i, item) {
                            var th = responseObj.find('th').eq(i);
                            if (th.text() == "Ticket Id") {
                                return;
                            }

                            var thOld = ticketTable.find('th').filter(
                                    function(index) {
                                        if ($(this).text() == th.text()) {
                                            return true;
                                        }

                                        return false;
                                    });

                            if (thOld != null) {
                                ticketTable.dataTable().fnUpdate($(item).text(), rowIndex, $(thOld).index(), true, false);
                            }
                        });

                loadTicketInfo("bottom-infopane", ticketId, ticketTable.dataTable(), null);
                ticketTable.css('table-layout', 'fixed');

                var alertString = jQuery.trim(actionMessages);
                if (alertString != '') {
                    alert(alertString);
                }
            }
            else {
                loadTicketInfo("bottom-infopane", ticketId, null, null);
            }

            truncateText(85);
        }
    });
}

function createTicket(domId, params) {
    $.ajax({
        type : "POST",
        url : "/crm/tickets",
        data : params,
        success : function(response) {
            $('#' + domId).html(response);
            var ticketTable = createTicketDataTable('tickets');
        }
    });
}

function createActivity(domId, params) {
    $.ajax({
        type : "POST",
        url : "/crm/activity",
        data : params,
        success : function(response) {
            $('#' + domId).html(response);
            var activityTable = createActivityDataTable('activity');
        }
    });
}

function goToHomePage() {
    document.location.href = "/crm";
}

function loadTickets(domId, getURL, ticketId) {
    $.ajax({
        type : "GET",
        url : getURL,
        success : function(response) {
            $('#' + domId).html(response);
            var ticketTable = createTicketDataTable('tickets');
            if (ticketId != null) {
                loadTicketInfo("bottom-infopane", ticketId, ticketTable.dataTable(), null);
                ticketTable.css('table-layout', 'fixed');
            }
        }
    });
}

function processActivityTypeChange(activityType) {
    if (activityType == "SEND_EMAIL_TO_CUSTOMER") {
        $.colorbox({
            inline : true,
            width : "775px",
            height : "445px",
            href : "div#mail-div",
            onClosed : function() {
                                CKEDITOR.instances['mail-body'].destroy(false);
                $("div#mail-div").hide();
                $('select#activity-type').val('OTHER');
            }
        });

        $("div#mail-div").show();
        $('#mail-body').ckeditor({toolbar : 'Basic', scayt_autoStartup : true});
    }
    else if (activityType == "ESCALATE_TICKET") {
        $.colorbox({
            inline : true,
            width : "675px",
            height : "560px",
            href : "div#escalation-div",
            onClosed : function() {
                CKEDITOR.instances['escalation-mail-body'].destroy(false);
                $("div#escalation-div").hide();
                $('select#activity-type').val('OTHER');
            }
        });

        $("div#escalation-div").show();
        $('#escalation-mail-body').ckeditor({toolbar : 'Basic', scayt_autoStartup : true});
    }
}

function processInputFormSubmit() {
    $.ajax({
        type : "POST",
        url : "/crm/",
        success : function(response) {
            $.html(response);
            var ticketTable = createTicketDataTable('tickets');
        }
    });
}

function listActivities(domId, params) {
    $.ajax({
        type : "GET",
        url : "/crm/activity",
        data : params,
        success : function(response) {
            $('#' + domId).html(response);
            var activityTable = createActivityDataTable('activity');
        }
    });
}

function truncateText(widthSize) {
    $(".truncated-text").truncate({
        width : widthSize,
        addtitle : true
    });
}

function markAsRead(activityId) {
    $.ajax({
        type : "POST",
        url : "/crm/activity!markAsRead?activityId=" + activityId,
        success: function(response) {
            listActivities('infopane', "creatorId=1");
        }
    });
}

function loadAdvancedSearchBox() {
    $.colorbox({
        inline : true,
        width : "535px",
        height : "465px",
        href : "form#search",
        onClosed : function() {
            $("form#search").hide();
        }
    });

    $("form#search").show();
}

function processSearchEntityChange(searchEntity) {
    if (searchEntity == "Tickets") {
        $("#assignee").show();
        $("#creator").hide();
        $("tr#activityTypes").hide();
    }
    else if (searchEntity == "Activities") {
        $("#assignee").hide();
        $("#creator").show();
        $("tr#activityTypes").show();
    }
}

function increaseTrustLevel(domId, userId, trustLevelDelta) {
    $.ajax({
        type : "PUT",
        url : "/crm/user-info/" + userId + "?trustLevelDelta=" + trustLevelDelta,
        success : function(response) {
            $('#' + domId).html(response);
        }
    });
}

function updateOrderStatus(domId, ticketId, orderId, orderStatus) {
    if (orderStatus == "CANCELED") {
        if (!confirm("Are you sure you want to cancel order id: " + orderId + " ?")) {
            return;
        }
    }

    $.ajax({
        type : "POST",
        url : "/crm/tickets!updateOrderStatus?id=" + ticketId + "&orderId=" + orderId + "&orderStatus=" + orderStatus,
        success : function(response) {
            $('#' + domId).html(response);
        }
    });
}

function loadUnreadActivities(domId) {
    $.ajax({
        type : "GET",
        url : "/crm/activity!getUnreadActivities",
        success : function(response) {
            $('#' + domId).html(response);
            var activityTable = createActivityDataTable('activity');
        }
    });
}

function refreshSidebar() {
    $.ajax({
        type : "PUT",
        url : "/crm",
        success : function(response) {
            $('#sidebar').html($(response).find('#sidebar').html());
        }
    });
}

function changeAddress(urlParams) {
    $.ajax({
        type : "GET",
        url : "/crm",
        success : function(response) {
            $('#sidebar').html($(response).find('#sidebar').html());
        }
    });
}