123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399 |
- var Bizgaze;
- (function (Bizgaze) {
- let Apps;
- (function (Apps) {
- let PM;
- (function (PM) {
- let Components;
- (function (Components) {
- class TaskSummary extends Unibase.Platform.Core.BaseComponent {
- constructor() {
- super(...arguments);
- this.serverFormat = "YYYY/MM/DD";
- }
- cssFiles() {
- return [];
- }
- jsFiles() {
- return ['apps/pm/managers/taskmanager.js'];
- }
- html(id, containerid) {
- let html = `<div id="divTaskSummary">
-
- </div>
- <form id="frm_TaskSummaryProjectFilter" method="post" data-validate="parsley" class="hidden">
- <header class="b-b bg-white modal-header">
- <strong class="text-dark titlename">Project</strong>
- <div class="btn-group ml-auto"> <a class="btn btn-sm"><i class="ti-help-alt" title="help" href="" target="_blank"></i></a></div>
- </header>
- <div style="overflow-x:hidden;" class="scrollable">
- <div id="bizgaze_CreateProjectErrorMessages" class="clear"></div>
- <div class="card">
- <div class="card-body">
- <div class="row" style="overflow-x:hidden;">
- <div class="row col-sm-12">
- <div class="col-sm-12">
- <div class="floating-label-form-group floating-label-form-group-with-value" style="border-bottom:0;">
- <label for="txtTaskSummary_ProjectId">Project<span class="text-danger"> *</span></label>
- <select id="txtTaskSummary_ProjectId" style="width:100%" placeholder="Select Project*" class="txtTaskSummary_ProjectId form-control floating-label-control" data-placeholder="Select Project" data-label="Project*" />
- <input id="hfTaskSummaryAutoCompleteId_ProjectId" class="hfTaskSummaryAutoComplete_ProjectId" type="hidden">
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <footer class="bg-white modal-footer" style="position:absolute; bottom:0px;width:100%;">
- <a href="javascript:;" id="btn_TaskSummaryProjectClose" class="btn btn-light btn-sm mr-auto "> Close</a>
- <a href="javascript:;" id="btn_TaskSummaryProjectApply" class="btn btn-primary btn-sm">Apply</a>
- </footer>
- </form>`;
- return html;
- }
- load(id, containerid, callback) {
- var instance = this;
- Bizgaze.Apps.PM.Components.TaskSummary.Instance().defaultData();
- Bizgaze.Apps.PM.Components.TaskSummary.Instance().loadProjects();
- Bizgaze.Apps.PM.Components.TaskSummary.Instance().SummaryGetWidgetData();
- $("#tasksummaryExport").click(function () {
- instance.exportData();
- });
- $("#tasksummaryprojectfilter").click(function () {
- var theHtml = $("#frm_TaskSummaryProjectFilter").html();
- Unibase.Platform.Helpers.NavigationHelper.Instance().popupHtml(theHtml, Unibase.Platform.Helpers.Size.Medium, function () {
- $(document).on('click', '#btn_TaskSummaryProjectClose', function () {
- var panel = $("#_bizgaze_modal").prev('.modal')[0].getAttribute('id');
- $('#' + panel).modal('hide');
- $('#' + panel).remove();
- });
- var oldvalue = Number($("#txtTaskSummary_ProjectId").val());
- $('#txtTaskSummary_ProjectId option[value=' + oldvalue + ']').removeAttr("selected");
- $(document).on('change', '#txtTaskSummary_ProjectId', function () {
- $("#txtTaskSummary_ProjectId").val(Number($(this).val()));
- $('#txtTaskSummary_ProjectId option[value=' + $(this).val() + ']').attr("selected", 'true');
- $(document).on('click', '#btn_TaskSummaryProjectApply', function () {
- Unibase.Platform.Helpers.NavigationHelper.Instance().closePopUp();
- Bizgaze.Apps.PM.Components.TaskSummary.Instance().SummaryGetWidgetData();
- });
- });
- });
- });
- $('#TaskSummaryList_search').on('input', function () {
- Bizgaze.Apps.PM.Components.TaskSummary.Instance().SummaryGetWidgetData();
- });
- }
- init(containerid) {
- var instance = this;
- instance.fileCacheHelper.loadJsFiles(["apps/pm/components/tasksummary.js"], function () {
- instance.navigationHelper.loadSection(0, containerid, Bizgaze.Apps.PM.Components.TaskSummary.Instance(), null, null);
- });
- }
- defaultData() {
- var html = '<div id="tasksummary_lists" class="card shadow-hover">' +
- '<div class="card-header card-header-action">' +
- '<span id="hf_widget_title" class="ml-10">Employee Task Summary</span></a>' +
- '<div class="d-flex align-items-center card-action-wrap">' +
- '<span class="pull-right badge badge-light badge-pill badge-outline mr-10 span_TaskSummaryListsearch_count">0</span>' +
- '<a id="tasksummaryExport" class="mr-15" href="javascript:void(0);"><i class="fa fa-download" aria-hidden="true"></i></a>' +
- '<a id="tasksummaryprojectfilter" class="" href="javascript:void(0);"><i class="ti-filter"></i></a>' +
- '<div class="d-flex" id="div_List_addnew">' +
- '</div>' +
- '</div>' +
- '</div>' +
- '<div class="card-body pa-0">' +
- '<div class="Dynamic-ListSearch"><div class="col-sm-12 mb-10"><div class="floating-label-form-group" id="div_Listsearch">' +
- '<input type="text" maxlength="50" class="form-control floating-label-control" id="TaskSummaryList_search" value="" data-isdynamic="false" ' +
- 'placeholder="Search" data-placeholder="Search" data-label="Search"><span id="TaskSummaryclearSearch" class="hidden" ' +
- 'style="right: 20px; cursor: pointer; float: right; margin-top: -35px; position: absolute; color: rgb(50, 65, 72);">x</span></div></div></div>' +
- '<div class="font-14 d-none d-md-block card-header bg-cyan-light-5 listwidget_headertext" id="listwidget_headertext">' +
- '<div class="row"><div class="col-10"><div class="row"><div class="col-sm-4"><strong>Employee Name</strong></div><div class="col-sm-2"><strong>Upcoming Tasks</strong></div>' +
- '<div class="col-sm-2" ><strong> Inpro.Tasks</strong></div><div class="col-sm-2"><strong>Testing Inpro.Tasks</strong></div><div class="col-sm-2"><strong>Closed Tasks</strong></div></div></div>' +
- '<div class="col-sm-2"><strong>Reopened Tasks</strong></div></div > ' +
- '</div>' +
- '<div>' +
- '<ul class="list-group list-group-flush tasksummary_lists font-14" id="tasksummary_lists_container">' +
- '<li><div class="text-center"><i class="fa fa-spinner fa-spin font-20 mt-40"></i></div></li>' +
- '</ul>' +
- '</div>' +
- '</div>' +
- '<div id="pagination-footer">' +
- '<div class="card-footer text-muted Div_pagination mb-12">' +
- '<div class="col-12 row">' +
- '<div class="col-sm-2 pl-0">' +
- '<span style="font-weight:bold" id="GrandTotaltext" class="text-dark">Grand Total</span>' +
- '</div>' +
- '<div class="col-sm-2">' +
- '<span style="font-weight:bold" id="UpcomingTaskstext" class="text-dark"></span>' +
- '</div>' +
- '<div class="col-sm-2 text-right">' +
- '<span style="font-weight:bold" id="InproTaskstext" class="text-dark"></span>' +
- '</div>' +
- '<div class="col-sm-2 text-right">' +
- '<span style="font-weight:bold" id="TestingInproTaskstext" class="text-dark"></span>' +
- '</div>' +
- '<div class="col-sm-2 text-right">' +
- '<span style="font-weight:bold" id="ClosedTaskstext" class="text-dark"></span>' +
- '</div>' +
- '<div class="col-sm-2 text-right">' +
- '<span style="font-weight:bold" id="ReopenedTaskstext" class="text-dark"></span>' +
- '<input type="hidden" id="hfportletwidgetid" />' +
- '</div>' +
- '</div>' +
- '</div>' +
- '</div>' +
- '</div>' +
- '</div>';
- $("#divTaskSummary").html(html);
- }
- loadProjects() {
- Bizgaze.Apps.PM.Managers.TaskManager.Instance().getProjects().then(function (response) {
- var selectedProject = new Option("All", "0");
- $("#txtTaskSummary_ProjectId").append(selectedProject);
- if (response.result != "") {
- var data = response.result;
- for (let i = 0; i < data.length; i++) {
- var selectedProject = new Option(data[i].ProjectName, data[i].ProjectId);
- $("#txtTaskSummary_ProjectId").append(selectedProject);
- }
- $("#hfTaskSummaryAutoCompleteId_ProjectId").val(Number($("#txtTaskSummary_ProjectId").val()));
- $("#txtTaskSummary_ProjectId").val($("#txtTaskSummary_ProjectId option:eq(1)").val());
- $('#txtTaskSummary_ProjectId option:eq(1)').attr('selected', 'selected');
- Bizgaze.Apps.PM.Components.TaskSummary.Instance().SummaryGetWidgetData();
- }
- });
- }
- SummaryGetWidgetData() {
- var instance = this;
- let FromDate;
- let ToDate;
- FromDate = $('.CommonFilter_FromDate').val();
- ToDate = $('.CommonFilter_ToDate').val();
- if (FromDate == undefined && ToDate == undefined) {
- let fdate = [moment().subtract(29, 'days'), moment()][0];
- let tdate = [moment().subtract(29, 'days'), moment()][1];
- FromDate = fdate.format(instance.serverFormat);
- ToDate = tdate.format(instance.serverFormat);
- }
- let reportObj = {
- FromDate: FromDate,
- ToDate: ToDate,
- WidgetId: Number($("#txtTaskSummary_ProjectId").val()),
- Title: $("#TaskSummaryList_search").val()
- };
- Bizgaze.Apps.PM.Managers.TaskManager.Instance().getTaskSummaryData(reportObj).then(function (response) {
- var newData = JSON.parse(JSON.stringify(response));
- var upcomingcount = 0;
- var inprocount = 0;
- var testingcount = 0;
- var closedcount = 0;
- var reopenedcount = 0;
- var html = '';
- if (newData != "") {
- var result = JSON.parse(newData);
- $('#div_TeamMembers_Details_NoData').remove();
- $("#pagination-footer").removeClass("hidden");
- $(".span_TaskSummaryListsearch_count").text(result.length + ' Resources');
- for (let i = 0; i < result.length; i++) {
- var data = result[i];
- upcomingcount += data.upcomingtaskcount;
- inprocount += data.inprotaskcount;
- testingcount += data.testinprotaskcount;
- closedcount += data.closedtaskcount;
- reopenedcount += data.reopenedtaskcount;
- html += '<li class="list-group-item employee-item added-employee-item employee-task-duration"><input type="hidden">' +
- '<div class="row"><div class="col-10"><div class="row"><div class="col-sm-4"><span>' +
- '<a style="text-decoration:underline;" class="font-bold" href="#"><span>' + data.employeename + '</span></a></span><span>(' + data.projectname + ')</span></div>' +
- '<div class="col-sm-2"><span class="upcoming">' + data.upcomingtasks + '</span><span style="background-color:#00ffcc" class="upcomingcount btn-xs ml-5 pl-10 pr-10">' + data.upcomingtaskcount + '</span></div>' +
- '<div class="col-sm-2"><span class="inprogress">' + data.inprotasks + '</span>' +
- '<span style="background-color:#f5b48c" class="inprogresscount btn-xs ml-5 pl-10 pr-10">' + data.inprotaskcount + '</span></div>' +
- '<div class="col-sm-2"><span class="testinprogress">' + data.testinprotasks + '</span><span style="background-color:skyblue" class="testinprogresscount btn-xs ml-5 pl-10 pr-10">' + data.testinprotaskcount + '</span></div>' +
- '<div class="col-sm-2"><span class="closed">' + data.closedprotasks + '</span><span style="background-color:#f5b48c" class="closedtaskcount btn-xs ml-5 pl-10 pr-10">' + data.closedtaskcount + '</span></div>' +
- '</div></div>' +
- '<div class="col-sm-2"><span class="reopened">' + data.reopenedtasks + '</span>' +
- '<span style="background-color:#c4a6a1;color:black" class="reopenedcount btn-xs ml-5 pl-10 pr-10">' + data.reopenedtaskcount + '</span></div></div></li>';
- }
- $("#tasksummary_lists_container").html(html);
- Bizgaze.Apps.PM.Components.TaskSummary.Instance().calculateGrandTotal('upcoming', upcomingcount);
- Bizgaze.Apps.PM.Components.TaskSummary.Instance().calculateGrandTotal('inprogress', inprocount);
- Bizgaze.Apps.PM.Components.TaskSummary.Instance().calculateGrandTotal('testinprogress', testingcount);
- Bizgaze.Apps.PM.Components.TaskSummary.Instance().calculateGrandTotal('closed', closedcount);
- Bizgaze.Apps.PM.Components.TaskSummary.Instance().calculateGrandTotal('reopened', reopenedcount);
- }
- else {
- $(".employee-task-duration").remove();
- $('#div_TeamMembers_Details_NoData').remove();
- $("#pagination-footer").addClass("hidden");
- $('#listwidget_headertext').after('<div class="alert alert-info ma-0" id="div_TeamMembers_Details_NoData">There is no Data</div>');
- }
- });
- }
- calculateGrandTotal(cls, count) {
- var totalh = 0;
- var totalm = 0;
- $('.' + cls).each(function () {
- if (($(this).text())) {
- var val = $(this).text();
- if (val.indexOf(":") >= 0) {
- val.replace('h', '');
- val.replace('m', '');
- var h = parseInt((val).split(':')[0]);
- var m = parseInt((val).split(':')[1]);
- totalh += h;
- totalm += m;
- }
- else if ($(this).text().indexOf("h") >= 0) {
- val.replace('h', '');
- var h = parseInt(val);
- totalh += h;
- }
- else if (val.indexOf("m") >= 0) {
- val.replace('m', '');
- var m = parseInt(val);
- totalm += m;
- }
- }
- });
- totalh += Math.floor(totalm / 60);
- totalm = totalm % 60;
- if (cls == "upcoming")
- $('#UpcomingTaskstext').text((totalh < 10 ? '0' : '') + totalh.toString() + 'h:' + (totalm < 10 ? '0' : '') + totalm.toString() + 'm' + '(' + count + ')' + '');
- else if (cls == "inprogress")
- $('#InproTaskstext').text((totalh < 10 ? '0' : '') + totalh.toString() + 'h:' + (totalm < 10 ? '0' : '') + totalm.toString() + 'm' + '(' + count + ')' + '');
- else if (cls == "testinprogress")
- $('#TestingInproTaskstext').text((totalh < 10 ? '0' : '') + totalh.toString() + 'h:' + (totalm < 10 ? '0' : '') + totalm.toString() + 'm' + '(' + count + ')' + '');
- else if (cls == "closed")
- $('#ClosedTaskstext').text((totalh < 10 ? '0' : '') + totalh.toString() + 'h:' + (totalm < 10 ? '0' : '') + totalm.toString() + 'm' + '(' + count + ')' + '');
- else if (cls == "reopened")
- $('#ReopenedTaskstext').text((totalh < 10 ? '0' : '') + totalh.toString() + 'h:' + (totalm < 10 ? '0' : '') + totalm.toString() + 'm' + '(' + count + ')' + '');
- }
- exportData() {
- var instance = this;
- let FromDate;
- let ToDate;
- FromDate = $('.CommonFilter_FromDate').val();
- ToDate = $('.CommonFilter_ToDate').val();
- if (FromDate == undefined && ToDate == undefined) {
- let fdate = [moment().subtract(29, 'days'), moment()][0];
- let tdate = [moment().subtract(29, 'days'), moment()][1];
- FromDate = fdate.format(instance.serverFormat);
- ToDate = tdate.format(instance.serverFormat);
- }
- var postData = {
- FromDate: FromDate,
- ToDate: ToDate,
- WidgetId: Number($("#txtTaskSummary_ProjectId").val())
- };
- Bizgaze.Apps.PM.Managers.TaskManager.Instance().getTaskSummaryData(postData).then(function (response) {
- var newData = JSON.parse(JSON.stringify(response));
- var rows = new Array();
- var upcomingtaskcount = 0;
- var inprotaskcount = 0;
- var testinginprotaskcount = 0;
- var closedcount = 0;
- var reopenedtaskcount = 0;
- if (newData != "") {
- var result = JSON.parse(newData);
- for (var i = 0; i < result.length; i++) {
- var data = result[i];
- var cell = new Array();
- cell.push(data.employeename);
- cell.push(data.upcomingtasks);
- cell.push(data.upcomingtaskcount);
- cell.push(data.inprotasks);
- cell.push(data.inprotaskcount);
- cell.push(data.testinprotasks);
- cell.push(data.testinprotaskcount);
- cell.push(data.closedprotasks);
- cell.push(data.closedtaskcount);
- cell.push(data.reopenedtasks);
- cell.push(data.reopenedtaskcount);
- rows.push({ Id: i, cell: cell });
- upcomingtaskcount += data.upcomingtaskcount;
- inprotaskcount += data.inprotaskcount;
- testinginprotaskcount += data.testinprotaskcount;
- closedcount += parseInt(data.closedtaskcount);
- reopenedtaskcount += parseInt(data.reopenedtaskcount);
- }
- var totalcell = new Array();
- var upcomingtasks = $("#UpcomingTaskstext").text().replace(/ *\([^)]*\) */g, "");
- var inprotasks = $("#InproTaskstext").text().replace(/ *\([^)]*\) */g, "");
- var testinginprotasks = $("#TestingInproTaskstext").text().replace(/ *\([^)]*\) */g, "");
- var closedtasks = $("#ClosedTaskstext").text().replace(/ *\([^)]*\) */g, "");
- var reopenedtasks = $("#ReopenedTaskstext").text().replace(/ *\([^)]*\) */g, "");
- totalcell.push("GrandTotal");
- totalcell.push(upcomingtasks);
- totalcell.push(upcomingtaskcount);
- totalcell.push(inprotasks);
- totalcell.push(inprotaskcount);
- totalcell.push(testinginprotasks);
- totalcell.push(testinginprotaskcount);
- totalcell.push(closedtasks);
- totalcell.push(closedcount);
- totalcell.push(reopenedtasks);
- totalcell.push(reopenedtaskcount);
- rows.push({ Id: i + 1, cell: totalcell });
- var columns = [
- { ColumnName: "EmployeeName" },
- { ColumnName: "UpcomingTasks" },
- { ColumnName: "UpcomingTaskCount" },
- { ColumnName: "InprogressTasks" },
- { ColumnName: "InprogressTaskcount" },
- { ColumnName: "TestingInProgress" },
- { ColumnName: "TestingInProgressCount" },
- { ColumnName: "ClosedTasks" },
- { ColumnName: "ClosedTasksCount" },
- { ColumnName: "ReopenedTasks" },
- { ColumnName: "ReopenedTaskCount" }
- ];
- result.columns = columns;
- result.rows = rows;
- Bizgaze.Apps.PM.Components.TaskSummary.Instance().exportToExcel(result, "export");
- }
- });
- }
- exportToExcel(pagedList, filename) {
- var finalVal = "data:text/csv;charset=utf-8,";
- for (var i = 0; i < pagedList.columns.length; i++) {
- var cvalue = pagedList.columns[i];
- var innerValue = cvalue === null ? '' : cvalue.ColumnName.toString();
- var result = innerValue.replace(/"/g, '""');
- if (result.search(/("|,|\n)/g) >= 0)
- result = '"' + result + '"';
- if (i > 0)
- finalVal += ',';
- finalVal += result;
- }
- finalVal += '\n';
- for (var i = 0; i < pagedList.rows.length; i++) {
- var value = pagedList.rows[i].cell;
- for (var j = 0; j < value.length; j++) {
- var innerValue = value[j] === null ? '' : value[j].toString();
- var result = innerValue.replace(/"/g, '""');
- if (result.search(/("|,|\n)/g) >= 0)
- result = '"' + result + '"';
- if (j > 0)
- finalVal += ',';
- finalVal += result;
- }
- finalVal += '\n';
- }
- var encodedUri = encodeURI(finalVal);
- var link = document.createElement("a");
- document.body.appendChild(link);
- link.setAttribute("href", encodedUri);
- link.setAttribute("download", "my_data.csv");
- link.click();
- }
- static Instance() {
- if (this.instance === undefined) {
- this.instance = new TaskSummary();
- }
- return this.instance;
- }
- }
- Components.TaskSummary = TaskSummary;
- })(Components = PM.Components || (PM.Components = {}));
- })(PM = Apps.PM || (Apps.PM = {}));
- })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
- })(Bizgaze || (Bizgaze = {}));
|