let calmonths = []; var Unibase; (function (Unibase) { let Platform; (function (Platform) { let Analytics; (function (Analytics) { let Viewers; (function (Viewers) { class CalendarViewer extends Platform.Core.BaseComponent { constructor() { super(); this.appInstalledappid = 0; this.reportManager = Analytics.Managers.ReportManager.Instance(); this.viewerManager = Analytics.Managers.ViewerManager.Instance(); this._reportViewer = Analytics.Components.ReportViewer.Instance(); } loadView(reportresponse, reportid, viewerid, page, pageSize, containerid, ViewerSettings, callback, reportwidgetdata) { var instance = this; let rv_instance = instance._reportViewer.getReportViewerInstance(containerid); var FromDateColumnName = "", ToDateColumnName = "", ValueColumnName = "", TextColumnName = ""; var calanderViewId = viewerid; var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; instance.viewerManager.getCalendarView(calanderViewId).then(function (response) { var res = response.result; if (instance._reportViewer.CalendarMonth == undefined) { instance._reportViewer.CalendarMonth = months[new Date().getMonth()]; } FromDateColumnName = res.FromDateColumn; ToDateColumnName = res.ToDateColumn; ValueColumnName = res.ValueColumn; TextColumnName = res.TextColumn; var fromDate = ""; var toDate = ""; var cf_fromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate; var cf_toDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate; if (cf_fromDate != null && cf_toDate != null) { fromDate = cf_fromDate.toString(); toDate = cf_toDate.toString(); } else { fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD"); toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD"); } let postdata = { ReportId: reportid, ViewerTypeId: Unibase.Platform.Analytics.Reports.Enums.ViewerType.Calendar, page: page, pageSize: instance._reportViewer.PageSize + 1, CalendarMonth: instance._reportViewer.CalendarMonth, ViewerId: viewerid, InputParameters: rv_instance.inputParameters, IsJson: true, FromDate: fromDate, ToDate: toDate, }; Unibase.Platform.Analytics.Managers.ReportManager.Instance().getReportViewerData(postdata).then(function (calendarresponse) { Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading(); var response = JSON.parse(calendarresponse.result); var data = response.Data; if (data != "") { data = JSON.parse(data); } var cssfiles = ["libs/fullcalendar/fullcalendar.min.css"]; var jsfiles = ["libs/moment/moment.min.js", "libs/fullcalendar/fullcalendar.min.js"]; instance.fileCacheHelper.loadCssFiles(cssfiles, function () { instance.fileCacheHelper.loadJsFiles(jsfiles, function () { var evnts = []; var len = data.length; if (len >= instance._reportViewer.PageSize + 1) { len = data.length - 1; } for (var i = 0; i < len; i++) { if (instance.appInstalledappid == 0) instance.appInstalledappid = data[i]["installedappid"]; let title = ""; if (data[i][TextColumnName] != undefined && data[i][ValueColumnName] != undefined) { title = data[i][TextColumnName].toString() + " " + data[i][ValueColumnName].toString(); } else if (data[i][TextColumnName] != undefined) { title = data[i][TextColumnName].toString(); } else if (data[i][ValueColumnName] != undefined) { title = data[i][ValueColumnName].toString(); } evnts.push({ id: data[i][ValueColumnName], title: title, start: data[i][FromDateColumnName], end: data[i][ToDateColumnName], }); } let elem = ""; elem = $("#Viewer_" + containerid); elem.removeClass("tabulator"); if (instance._reportViewer.CalendarMonthChanged == false) { elem.html(""); elem.fullCalendar('destroy'); $("#Table_View_" + containerid).removeClass("hidden"); const calHeight = instance.setCalendarHeight(containerid); elem.fullCalendar({ themeSystem: 'bootstrap4', header: { left: 'calendarSidebar ,today', center: 'prev,title,next', right: 'month,agendaWeek,listMonth' }, timeZone: 'UTC', droppable: true, editable: true, height: calHeight, eventLimit: true, displayEventTime: false, drop: function () { if ($("#remove_event").is(':checked')) $(this).remove(); }, eventClick: function (calEvent, jsEvent, view) { if (calEvent.id) { Unibase.Platform.Helpers.NavigationHelper.Instance().loadDetail(calEvent.id, instance.appInstalledappid, null, null); } }, windowResize: function (view) { let calHeight = instance.setCalendarHeight(containerid); calHeight -= 40; elem.fullCalendar('option', 'height', calHeight); } }); instance._reportViewer.CalendarMonthChanged = true; $(".fc-prev-button").parent().addClass("row"); $(".fc-prev-button").addClass("mt-1 mr-10"); $(".fc-next-button").addClass("mt-1 ml-10"); $(".fc-header-toolbar").addClass("pa-10"); $(".fc-view-container").addClass("pa-10"); $(".fc-next-button").click(function () { instance._reportViewer.CalendarMonth = $(".fc-prev-button").siblings()[0].innerHTML.substring(0, $(".fc-prev-button").siblings()[0].innerHTML.indexOf(" ")); instance._reportViewer.CalendarMonthChanged = true; if (calmonths.filter(function (o) { return o.title === instance._reportViewer.CalendarMonth; }).length <= 0) { calmonths.push({ title: instance._reportViewer.CalendarMonth }); page = 1; instance.loadView(reportresponse, reportid, calanderViewId, page, 20, containerid, ViewerSettings, null, null); } }); $(".fc-prev-button").click(function () { instance._reportViewer.CalendarMonth = $(".fc-prev-button").siblings()[0].innerHTML.substring(0, $(".fc-prev-button").siblings()[0].innerHTML.indexOf(" ")); instance._reportViewer.CalendarMonthChanged = true; if (calmonths.filter(function (o) { return o.title === instance._reportViewer.CalendarMonth; }).length <= 0) { calmonths.push({ title: instance._reportViewer.CalendarMonth }); page = 1; instance.loadView(reportresponse, reportid, calanderViewId, page, 20, containerid, ViewerSettings, null, null); } }); $("#Calendar_more").click(function () { var currentpage = $(this)[0].className.split(/\s+/)[$(this)[0].className.split(/\s+/).length - 1].match(/\d+/g).map(Number)[0]; $(this).removeClass("lenght_" + currentpage + ""); $(this).addClass("lenght_" + (currentpage + 1) + ""); instance.loadView(reportresponse, reportid, calanderViewId, currentpage, 20, containerid, ViewerSettings, null, null); }); } if (data.length >= instance._reportViewer.PageSize + 1) { $("#Calendar_more").removeClass("hidden"); } else { $("#Calendar_more").addClass("hidden"); } if (page == 1) { } elem.fullCalendar('addEventSource', evnts); }); }); }); }); } setCalendarHeight(containerid) { let calHeight = 0; if ($("#Viewer_" + containerid).length) { calHeight = window.innerHeight - $("#Viewer_" + containerid).offset().top; if ($(`#ViewerFooter_${containerid}`).is(':visible')) { calHeight += $(`#ViewerFooter_${containerid}`).outerHeight(true) - 100; } } return calHeight; } } Viewers.CalendarViewer = CalendarViewer; })(Viewers = Analytics.Viewers || (Analytics.Viewers = {})); })(Analytics = Platform.Analytics || (Platform.Analytics = {})); })(Platform = Unibase.Platform || (Unibase.Platform = {})); })(Unibase || (Unibase = {}));