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.

mapviewer.settings.js 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. var Unibase;
  2. (function (Unibase) {
  3. let Platform;
  4. (function (Platform) {
  5. let Analytics;
  6. (function (Analytics) {
  7. let Components;
  8. (function (Components) {
  9. class MapViewerSettings extends Platform.Core.BaseComponent {
  10. constructor() {
  11. super();
  12. this.reportManager = Analytics.Managers.ReportManager.Instance();
  13. this.viewerManager = Analytics.Managers.ViewerManager.Instance();
  14. this.ReportId = 0;
  15. }
  16. jsFiles() {
  17. return ["platform/analytics/components/mapviewer/mapviewer.settings.js"];
  18. }
  19. cssFiles() {
  20. return [];
  21. }
  22. html(id, containerid) {
  23. var html = `<div class="b-b bg-white modal-header">
  24. <strong class="text-dark">Map</strong>
  25. </div>
  26. <div class="modal-body" id="MapViewer_modal">
  27. <div id = "divMap_ErrorMessage"></div>
  28. <div class="card"> <div class="card-body"><div class="row"><div class="col-sm-6">
  29. <div id="div_MapName" class="floating-label-form-group">
  30. <label for="mapname" id="lbl_MapName">Map Name</label>
  31. <input type="text" class="form-control value-control floating-label-control" placeholder="Map Name" data-placeholder="Map Name" data-label="Map Name" id="txt_MapName">
  32. </div></div>
  33. <div class="col-sm-4">
  34. <div id="div_DisplayName" class="floating-label-form-group floating-label-form-group-with-value">
  35. <label for="displayname" id="lbl_DisplayName">Display Name</label>
  36. <input type="text" id="Txt_Display_Name" class="form-control value-control floating-label-control" placeholder="Display Name" data-placeholder="Display Name" data-label="Display Name">
  37. </div>
  38. </div>
  39. <div class="col-sm-6">
  40. <div id="div_Latitude" class="">
  41. <label for="latitude">Latitude</label>
  42. <select type="text" class="form-control value-control floating-label-control" placeholder="Latitude" data-placeholder="Latitude" data-label="Latitude" id="txt_Latitude"><option value="0" selected="">Select Latitude Column</option></select>
  43. </div>
  44. </div>
  45. <div class="col-sm-6">
  46. <div id="div_Longitude" class="">
  47. <label for="longitude" id="lbl_Longitude">Longitude</label>
  48. <select type="text" class="form-control value-control floating-label-control" placeholder="Longitude" data-placeholder="Longitude" data-label="Longitude" id="txt_Longitude"> <option value="0" selected="">Select Longitude Column</option></select>
  49. </div></div>
  50. </div></div></div>
  51. <div class="TemplateText_Section card">
  52. <div class="card-header"> Template Text </div>
  53. <div class="card-body">
  54. <div id="div_TemplateText" class="">
  55. <textarea class="" id="input_TemplateText" placeholder="Template Text" rows="3" cols="112"></textarea>
  56. </div>
  57. </div>
  58. </div>
  59. <div class="HeaderTemplateText_Section card">
  60. <div class="card-header">Header Template Text </div>
  61. <div class="card-body">
  62. <div id="div_HeaderTemplateText" class="">
  63. <textarea class="" id="input_HeaderTemplateText" placeholder="Header Template Text" rows="3" cols="112"></textarea>
  64. </div>
  65. </div>
  66. </div>
  67. <div class="DetailTemplateText_Section card">
  68. <div class="card-header">Detail Template Text </div>
  69. <div class="card-body">
  70. <div id="div_DetailTemplateText" class="">
  71. <textarea class="" id="input_DetailTemplateText" placeholder="Detail Template Text" rows="3" cols="112"></textarea>
  72. </div>
  73. </div>
  74. </div>
  75. <div class="FooterTemplateText_Section card">
  76. <div class="card-header">Footer Template Text </div>
  77. <div class="card-body">
  78. <div id="div_FooterTemplateText" class="">
  79. <textarea class="" id="input_FooterTemplateText" placeholder="Footer Template Text" rows="3" cols="112"></textarea>
  80. </div>
  81. </div>
  82. </div>
  83. </div>
  84. </div>
  85. <div class="bg-white modal-footer">
  86. <a class="btn btn-light btn-sm btn-center mr-auto" id="btnClose">Close</a>
  87. <a class="btn btn-primary btn-center btn-sm text-white" id="btnSave">Save</a>
  88. </div>`;
  89. return html;
  90. }
  91. load(id, containerid, callback) {
  92. var instance = this;
  93. var reportid = Number(instance.ReportId);
  94. $("#MapViewer_modal").css("height", $(window).outerHeight() - (Number($(".modal-header").outerHeight()) + Number($(".modal-footer").outerHeight())) + 'px');
  95. var data = [];
  96. instance.reportManager.getColumns(reportid).then(function (response) {
  97. var res = response.result;
  98. for (let i = 0; i < res.length; i++) {
  99. data.push({ id: res[i].ReportColumnName, text: res[i].ReportColumnName });
  100. }
  101. $("#txt_Latitude").select2({
  102. placeholder: 'Select Latitude Column',
  103. data: data,
  104. });
  105. $("#txt_Longitude").select2({
  106. placeholder: 'Select Longitude Column',
  107. data: data,
  108. });
  109. if (id != 0) {
  110. instance.getMapById(id);
  111. }
  112. });
  113. $("#btnClose").click(function () {
  114. $('#' + containerid).modal('hide');
  115. $('#' + containerid).remove();
  116. });
  117. jQuery("#btnSave").click(function () {
  118. instance.saveMap(id, reportid, containerid, null);
  119. });
  120. }
  121. getMapById(id) {
  122. var instance = this;
  123. instance.viewerManager.getMapView(id).then(function (response) {
  124. instance.response = response.result;
  125. $("#Txt_Display_Name").val(instance.response.DisplayName ? instance.response.DisplayName.trim() : instance.response.MapName.trim());
  126. $("#txt_MapName").val(instance.response.MapName.trim()).attr("readonly", 'true').css("cursor", "not-allowed");
  127. $("#txt_Latitude").val(instance.response.LatColumn).trigger("change");
  128. $("#txt_Longitude").val(instance.response.LngColumn).trigger("change");
  129. $("#input_TemplateText").val(instance.response.TemplateText);
  130. $("#input_HeaderTemplateText").val(instance.response.HeaderTemplateText);
  131. $("#input_DetailTemplateText").val(instance.response.DetailTemplateText);
  132. $("#input_FooterTemplateText").val(instance.response.FooterTemplateText);
  133. });
  134. }
  135. saveMap(id, reportid, containerid, obj) {
  136. var instance = this;
  137. var PostData = obj;
  138. if (obj == null) {
  139. PostData = {
  140. LatColumn: $("#txt_Latitude option:selected").text(),
  141. LngColumn: $("#txt_Longitude option:selected").text(),
  142. MapName: $("#txt_MapName").val(),
  143. ValueColumn: $("#txt_ColumnName").val(),
  144. ReportId: Number(reportid),
  145. MapViewId: Number(id),
  146. TemplateText: $("#input_TemplateText").val(),
  147. HeaderTemplateText: $("#input_HeaderTemplateText").val(),
  148. DetailTemplateText: $("#input_DetailTemplateText").val(),
  149. FooterTemplateText: $("#input_FooterTemplateText").val(),
  150. DisplayModeTypeId: 1,
  151. ViewAll: instance.response && instance.response.ViewAll || true,
  152. DisplayName: $("#Txt_Display_Name").val().toString().trim(),
  153. IsFromUI: Number(id) == 0 ? true : false,
  154. };
  155. }
  156. instance.fileCacheHelper.loadJsFile("platform/analytics/managers/reportmanager.js", function () {
  157. instance.viewerManager.saveMapView(PostData).then(function (response) {
  158. if (response.status == Unibase.Data.Status.Error) {
  159. MessageHelper.Instance().showError(response.message, 'divMap_ErrorMessage');
  160. }
  161. else {
  162. MessageHelper.Instance().showSuccess(response.message, '');
  163. $('#' + containerid).modal('hide');
  164. $('#' + containerid).remove();
  165. }
  166. });
  167. });
  168. }
  169. static Instance() {
  170. if (this._instance === undefined)
  171. this._instance = new Unibase.Platform.Analytics.Components.MapViewerSettings();
  172. return this._instance;
  173. }
  174. }
  175. Components.MapViewerSettings = MapViewerSettings;
  176. })(Components = Analytics.Components || (Analytics.Components = {}));
  177. })(Analytics = Platform.Analytics || (Platform.Analytics = {}));
  178. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  179. })(Unibase || (Unibase = {}));