Built files from Bizgaze WebServer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

calendarviewer.js 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. let calmonths = [];
  2. var Unibase;
  3. (function (Unibase) {
  4. let Platform;
  5. (function (Platform) {
  6. let Analytics;
  7. (function (Analytics) {
  8. let Viewers;
  9. (function (Viewers) {
  10. class CalendarViewer extends Platform.Core.BaseComponent {
  11. constructor() {
  12. super();
  13. this.appInstalledappid = 0;
  14. this.reportManager = Analytics.Managers.ReportManager.Instance();
  15. this.viewerManager = Analytics.Managers.ViewerManager.Instance();
  16. this._reportViewer = Analytics.Components.ReportViewer.Instance();
  17. }
  18. loadView(reportresponse, reportid, viewerid, page, pageSize, containerid, ViewerSettings, callback, reportwidgetdata) {
  19. var instance = this;
  20. let rv_instance = instance._reportViewer.getReportViewerInstance(containerid);
  21. var FromDateColumnName = "", ToDateColumnName = "", ValueColumnName = "", TextColumnName = "";
  22. var calanderViewId = viewerid;
  23. var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
  24. instance.viewerManager.getCalendarView(calanderViewId).then(function (response) {
  25. var res = response.result;
  26. if (instance._reportViewer.CalendarMonth == undefined) {
  27. instance._reportViewer.CalendarMonth = months[new Date().getMonth()];
  28. }
  29. FromDateColumnName = res.FromDateColumn;
  30. ToDateColumnName = res.ToDateColumn;
  31. ValueColumnName = res.ValueColumn;
  32. TextColumnName = res.TextColumn;
  33. var fromDate = "";
  34. var toDate = "";
  35. var cf_fromDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_FromDate;
  36. var cf_toDate = Unibase.Platform.Helpers.NavigationHelper.commonFilter_ToDate;
  37. if (cf_fromDate != null && cf_toDate != null) {
  38. fromDate = cf_fromDate.toString();
  39. toDate = cf_toDate.toString();
  40. }
  41. else {
  42. fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  43. toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  44. }
  45. let postdata = {
  46. ReportId: reportid,
  47. ViewerTypeId: Unibase.Platform.Analytics.Reports.Enums.ViewerType.Calendar,
  48. page: page,
  49. pageSize: instance._reportViewer.PageSize + 1,
  50. CalendarMonth: instance._reportViewer.CalendarMonth,
  51. ViewerId: viewerid,
  52. InputParameters: rv_instance.inputParameters,
  53. IsJson: true,
  54. FromDate: fromDate,
  55. ToDate: toDate,
  56. };
  57. Unibase.Platform.Analytics.Managers.ReportManager.Instance().getReportViewerData(postdata).then(function (calendarresponse) {
  58. Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading();
  59. var response = JSON.parse(calendarresponse.result);
  60. var data = response.Data;
  61. if (data != "") {
  62. data = JSON.parse(data);
  63. }
  64. var cssfiles = ["libs/fullcalendar/fullcalendar.min.css"];
  65. var jsfiles = ["libs/moment/moment.min.js",
  66. "libs/fullcalendar/fullcalendar.min.js"];
  67. instance.fileCacheHelper.loadCssFiles(cssfiles, function () {
  68. instance.fileCacheHelper.loadJsFiles(jsfiles, function () {
  69. var evnts = [];
  70. var len = data.length;
  71. if (len >= instance._reportViewer.PageSize + 1) {
  72. len = data.length - 1;
  73. }
  74. for (var i = 0; i < len; i++) {
  75. if (instance.appInstalledappid == 0)
  76. instance.appInstalledappid = data[i]["installedappid"];
  77. let title = "";
  78. if (data[i][TextColumnName] != undefined && data[i][ValueColumnName] != undefined) {
  79. title = data[i][TextColumnName].toString() + " " + data[i][ValueColumnName].toString();
  80. }
  81. else if (data[i][TextColumnName] != undefined) {
  82. title = data[i][TextColumnName].toString();
  83. }
  84. else if (data[i][ValueColumnName] != undefined) {
  85. title = data[i][ValueColumnName].toString();
  86. }
  87. evnts.push({
  88. id: data[i][ValueColumnName],
  89. title: title,
  90. start: data[i][FromDateColumnName],
  91. end: data[i][ToDateColumnName],
  92. });
  93. }
  94. let elem = "";
  95. elem = $("#Viewer_" + containerid);
  96. elem.removeClass("tabulator");
  97. if (instance._reportViewer.CalendarMonthChanged == false) {
  98. elem.html("");
  99. elem.fullCalendar('destroy');
  100. $("#Table_View_" + containerid).removeClass("hidden");
  101. const calHeight = instance.setCalendarHeight(containerid);
  102. elem.fullCalendar({
  103. themeSystem: 'bootstrap4',
  104. header: {
  105. left: 'calendarSidebar ,today',
  106. center: 'prev,title,next',
  107. right: 'month,agendaWeek,listMonth'
  108. },
  109. timeZone: 'UTC',
  110. droppable: true,
  111. editable: true,
  112. height: calHeight,
  113. eventLimit: true,
  114. displayEventTime: false,
  115. drop: function () {
  116. if ($("#remove_event").is(':checked'))
  117. $(this).remove();
  118. },
  119. eventClick: function (calEvent, jsEvent, view) {
  120. if (calEvent.id) {
  121. Unibase.Platform.Helpers.NavigationHelper.Instance().loadDetail(calEvent.id, instance.appInstalledappid, null, null);
  122. }
  123. },
  124. windowResize: function (view) {
  125. let calHeight = instance.setCalendarHeight(containerid);
  126. calHeight -= 40;
  127. elem.fullCalendar('option', 'height', calHeight);
  128. }
  129. });
  130. instance._reportViewer.CalendarMonthChanged = true;
  131. $(".fc-prev-button").parent().addClass("row");
  132. $(".fc-prev-button").addClass("mt-1 mr-10");
  133. $(".fc-next-button").addClass("mt-1 ml-10");
  134. $(".fc-header-toolbar").addClass("pa-10");
  135. $(".fc-view-container").addClass("pa-10");
  136. $(".fc-next-button").click(function () {
  137. instance._reportViewer.CalendarMonth = $(".fc-prev-button").siblings()[0].innerHTML.substring(0, $(".fc-prev-button").siblings()[0].innerHTML.indexOf(" "));
  138. instance._reportViewer.CalendarMonthChanged = true;
  139. if (calmonths.filter(function (o) { return o.title === instance._reportViewer.CalendarMonth; }).length <= 0) {
  140. calmonths.push({ title: instance._reportViewer.CalendarMonth });
  141. page = 1;
  142. instance.loadView(reportresponse, reportid, calanderViewId, page, 20, containerid, ViewerSettings, null, null);
  143. }
  144. });
  145. $(".fc-prev-button").click(function () {
  146. instance._reportViewer.CalendarMonth = $(".fc-prev-button").siblings()[0].innerHTML.substring(0, $(".fc-prev-button").siblings()[0].innerHTML.indexOf(" "));
  147. instance._reportViewer.CalendarMonthChanged = true;
  148. if (calmonths.filter(function (o) { return o.title === instance._reportViewer.CalendarMonth; }).length <= 0) {
  149. calmonths.push({ title: instance._reportViewer.CalendarMonth });
  150. page = 1;
  151. instance.loadView(reportresponse, reportid, calanderViewId, page, 20, containerid, ViewerSettings, null, null);
  152. }
  153. });
  154. $("#Calendar_more").click(function () {
  155. var currentpage = $(this)[0].className.split(/\s+/)[$(this)[0].className.split(/\s+/).length - 1].match(/\d+/g).map(Number)[0];
  156. $(this).removeClass("lenght_" + currentpage + "");
  157. $(this).addClass("lenght_" + (currentpage + 1) + "");
  158. instance.loadView(reportresponse, reportid, calanderViewId, currentpage, 20, containerid, ViewerSettings, null, null);
  159. });
  160. }
  161. if (data.length >= instance._reportViewer.PageSize + 1) {
  162. $("#Calendar_more").removeClass("hidden");
  163. }
  164. else {
  165. $("#Calendar_more").addClass("hidden");
  166. }
  167. if (page == 1) {
  168. }
  169. elem.fullCalendar('addEventSource', evnts);
  170. });
  171. });
  172. });
  173. });
  174. }
  175. setCalendarHeight(containerid) {
  176. let calHeight = 0;
  177. if ($("#Viewer_" + containerid).length) {
  178. calHeight = window.innerHeight - $("#Viewer_" + containerid).offset().top;
  179. if ($(`#ViewerFooter_${containerid}`).is(':visible')) {
  180. calHeight += $(`#ViewerFooter_${containerid}`).outerHeight(true) - 100;
  181. }
  182. }
  183. return calHeight;
  184. }
  185. }
  186. Viewers.CalendarViewer = CalendarViewer;
  187. })(Viewers = Analytics.Viewers || (Analytics.Viewers = {}));
  188. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  189. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  190. })(Unibase || (Unibase = {}));