API Docs for:
Show:

File: Report\reportTicketOpen.js


/*================================================================================================================\
+
+ Project     : GoData-Eicher
+ Filename    : reportTicketOpen.js
+ Module Name : OpenTicketReport
+ Purpose     : For reporting              
+ Coded By    : Parul Gupta
+
+================================================================================================================*/


/**
* For reporting
* @module ReportModule
*/



/**
* This class contains functionality of Ticket report(Open) 
* @class OpenTicketReport
* @constructor
*/



//Global variables
var slaMetImagePath = "../../Content/css/images/icons/green_circle.png";
var slaNotMetImagePath = "../../Content/css/images/icons/red_circle.png";
var xhr_exportExport;


/**
* Function to display open ticket details
* @method showOpenTicketDetails
* @for OpenTicketReport
*/
function showOpenTicketDetails(e) {
    var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
    //console.log(dataItem.Id);

    $.ajax({
        type: "POST",
        url: "/Report/Ticket_GetOpencloseTicketFullDetails/",
        data: { ticketId: dataItem.Id, ticketStatus: "open" },
        success: function (data) {
            $("#divTicketDetails").html(data);
            //open window in new dialog box
            $("#divTicketDetails").data("kendoWindow").open();
        },
        error: function (data) {
            console.log(data);
        }

    });

}


/**
* Function to get open tickets history
* @method getOpenTicketHistory
* @for OpenTicketReport
*/
function getOpenTicketHistory() {
    var startDate, endDate;
    var userID = userId;
    //console.log(userID);
    //console.log(startDateParam, endDateParam);
    if (startDateParam) {
        startDate = startDateParam;
    } else {
        startDate = "";
    }

    if (endDateParam) {
        endDate = endDateParam;
    } else {
        endDate = "";
    }
    //console.log(startDate, endDate);
    //send ajax request
    $.ajax({
        type: "POST",
        url: "/Report/Ticket_Open_Grid/",
        data: { userId: userID, startDate: startDate, endDate: endDate, ticketStatus: "open" },
        success: function (data) {
            $("#divGrid").html(data);
            if (document.getElementById('OpenTicket') !== null) {
                applyFiltersBasedOnParametersToKendoGrid();
                setTimeout(function () {
                    if ($("#OpenTicket .k-grid-content table tbody tr").length > 0) {
                        $('.excelIcon').show();
                    } else {
                        $('.excelIcon').hide();
                    }
                }, 1000);
            } else {
                $('.excelIcon').hide();
            }
        },
        complete: function () {
            startDateParam = "";
            endDateParam = "";
        },
        error: function (data) {
            console.log(data);
        }
    });

}


/**
* Function to apply filters on kendo grid based on parameters
* @method applyFiltersBasedOnParametersToKendoGrid
* @for OpenTicketReport
*/
function applyFiltersBasedOnParametersToKendoGrid() {

    if (assignedTo) {
        //applyFilterToKendoGrid('OpenTicket', 'AssignedTo', 'or', 'eq', [assignedTo]);
        applyFilterToKendoGrid('OpenTicket', 'AssignedTo', 'eq', assignedTo);
    }
}


/**
* Function call on row bound of close tickets table
* @method onRowBound
* @for OpenTicketReport
*/
function onRowBound(e) {
    $('.k-grid-TicketDetails').text("").removeClass("k-button k-button-icontext").html("<span class='k-icon k-justifyFull'></span>");
    //$('.k-grid-Performance').text("").removeClass("k-button k-button-icontext").html("<span class='k-icon k-performance'></span>");
    // called common file function to show title on mouse hover.
    addTitleAttribute();

    // sla met or not met functionality
    var data = this.dataSource.view();
    //  console.log(data);

    for (var i = 0; i < data.length; i++) {

        //get uid of row
        var uid = data[i].uid;
        // get default sla time of row
        var defaultSla = data[i].DefaultSlaTime;
        // get total ticket life cycle sla value
        var totalLifeCycleSla = data[i].TotalTicketLifeCycleTimeSlab;

        var row = this.table.find("tr[data-uid='" + uid + "']");

        //console.log(defaultSla, totalLifeCycleSla);

        if (defaultSla > totalLifeCycleSla) {
            row.find('.k-grid-resolutionSla').text("").removeClass("k-button k-button-icontext").html("<img src='" + slaMetImagePath + "' title='SLA met'>");
        } else {
            row.find('.k-grid-resolutionSla').text("").removeClass("k-button k-button-icontext").html("<img src='" + slaNotMetImagePath + "' title='SLA not met'>");
        }

    }

}


/**
* To get filter parameters and export report. 
* @method exportReport
* @for OpenTicketReport
*/
function exportReport() {
    var userID = userId;


    // sending ajax request to export ICR Unique Users and Data Usage to Excel, and hadling its completion
    if (xhr_exportExport && xhr_exportExport.readystate != 4) {
        xhr_exportExport.abort();
    }
    xhr_exportExport = $.ajax({
        type: "POST",
        url: "/Report/Ticket_Close_Open_ExportToExcel/",
        data: { UserId: userID, startDate: "", endDate: "", ticketStatus: "open" },
        success: function (data) {
            // making the generated Excel available for downloading.
            window.location.href = data;
        },
        complete: function () {
        },
        error: function (data) {
            console.log("Error in Export to Excel");
        }
    });
}


/**
* To apply filters to the Kendo-Grid-Columns.
* @method applyFilterToKendoGrid
* @param {String} gridId Target-Grid
* @param {String} columnName Target-Column-Name
* @param {String} logic Filtering-Logic (eg: for Equals-to = eq)
* @param {String} operator Filtering-Operator (eg: AND, OR)
* @param {Array} filterValues Values to be filtered in the Target column
* @for OpenTicketReport
*/
function applyFilterToKendoGrid(gridId, columnName, operator, filterValues) {
    var filter = {
        "field": columnName,
        "operator": operator,
        "value": filterValues
    }
    $("#" + gridId).data('kendoGrid').dataSource.filter(filter);
}
//function applyFilterToKendoGrid(gridId, columnName, logic, operator, filterValues) {
//    var filter = {
//        logic: logic,
//        filters: []
//    };
//    for (var i = 0; i < filterValues.length; i++) {
//        filter.filters.push({
//            field: columnName,
//            operator: operator,
//            value: filterValues[i]
//        });
//    }
//    console.log(gridId);
//    $("#" + gridId).data('kendoGrid').dataSource.filter(filter);
//}
var assignedTo, startDateParam, endDateParam;

//============================= document ready function ===============================//

$(document).ready(function () {
    $('.excelIcon').hide();
    /**
   * Global References: Getting parameters from query string.
   * @for OpenTicketReport
   */
    assignedTo = getParameterByName('assignedTo');
    startDateParam = getParameterByName('startDate');
    endDateParam = getParameterByName('endDate');
    //console.log(startDateParam, endDateParam);

    getOpenTicketHistory();

    addKendoWindow("#divTicketDetails", "Ticket Details", "1000px", 150, 120);
    $("#divTicketDetails").parent().addClass("TicketReportDetails_Window");
});