Built files from Bizgaze WebServer
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

w_address.js 24KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. var Bizgaze;
  2. (function (Bizgaze) {
  3. let Apps;
  4. (function (Apps) {
  5. let Crm;
  6. (function (Crm) {
  7. let Components;
  8. (function (Components) {
  9. class Address extends Unibase.Platform.Core.BaseComponent {
  10. constructor() {
  11. super(...arguments);
  12. this.oldcontactaddressid = 0;
  13. this.contactaddressid = 0;
  14. this.latd = 0;
  15. this.lngd = 0;
  16. this.isEmployeeDashboardRoute = false;
  17. }
  18. cssFiles() {
  19. return [];
  20. }
  21. jsFiles() {
  22. return ['apps/crm/contacts/managers/contactmanager.js', 'tenants/themes/compact/components/details/details.js'];
  23. }
  24. html(id, containerid) {
  25. return "";
  26. }
  27. init(containerid) {
  28. var instance = this;
  29. }
  30. load(id, containerid, callback) {
  31. var instance = this;
  32. }
  33. changeDefaultAddress(addressid) {
  34. var instance = this;
  35. var _recordId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_recordid").Value);
  36. var postdata = {
  37. ContactAddressId: addressid,
  38. ContactId: _recordId
  39. };
  40. instance.fileCacheHelper.loadJsFile('apps/crm/contacts/managers/contactmanager.js', function () {
  41. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().ChangeDefaultAddress(postdata).then(function (response) {
  42. var detail_instance = Unibase.Themes.Compact.Components.Details.Instance();
  43. var containerid = Unibase.Platform.Helpers.NavigationHelper.Instance().getLastContainerId();
  44. var _installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  45. var portletid = detail_instance.unibase_core_activeportletid;
  46. detail_instance.loadWidgets(_installedAppId, portletid, "#" + containerid + "");
  47. MessageHelper.Instance().showSuccess(response.message, '');
  48. });
  49. });
  50. }
  51. changeDefaultAddress_phonebook(addressid) {
  52. var instance = this;
  53. var _recordId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_organizationid").Value);
  54. var postdata = {
  55. ContactAddressId: addressid,
  56. ContactId: _recordId
  57. };
  58. instance.fileCacheHelper.loadJsFile('apps/crm/contacts/managers/contactmanager.js', function () {
  59. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().ChangeDefaultAddress(postdata).then(function (response) {
  60. var detail_instance = Unibase.Themes.Compact.Components.Details.Instance();
  61. var containerid = Unibase.Platform.Helpers.NavigationHelper.Instance().getLastContainerId();
  62. var _installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  63. var portletid = detail_instance.unibase_core_activeportletid;
  64. detail_instance.loadWidgets(_installedAppId, portletid, "#" + containerid + "");
  65. MessageHelper.Instance().showSuccess(response.message, '');
  66. });
  67. });
  68. }
  69. changeAddressStatus(addressid, status) {
  70. var instance = this;
  71. if (status == 2)
  72. var msg = "Are you sure you want to De-Activate ?";
  73. else
  74. var msg = "Are you sure you want to Activate ?";
  75. bootbox.confirm({
  76. message: msg,
  77. closeButton: false,
  78. buttons: {
  79. confirm: {
  80. label: 'Yes',
  81. className: 'btn-success'
  82. },
  83. cancel: {
  84. label: 'No',
  85. className: 'btn-danger'
  86. }
  87. },
  88. callback: function (result) {
  89. if (result) {
  90. var Status = "";
  91. var Statusid;
  92. if (status == 2) {
  93. Status = "Activate";
  94. Statusid = 2;
  95. $("#Id_" + addressid + "").removeClass('text-danger');
  96. $("#Id_" + addressid + "").addClass('text-success');
  97. }
  98. else {
  99. Status = "activate";
  100. Statusid = 1;
  101. $("#Id_" + addressid + "").removeClass('text-success');
  102. $("#Id_" + addressid + "").addClass('text-danger');
  103. }
  104. var _recordId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_recordid").Value);
  105. var postdata = {
  106. ContactAddressId: addressid,
  107. Status: Statusid,
  108. ContactId: _recordId
  109. };
  110. instance.fileCacheHelper.loadJsFile('apps/crm/contacts/managers/contactmanager.js', function () {
  111. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().ChangeAddressStatus(postdata).then(function (response) {
  112. if (response.errors == null) {
  113. var detail_instance = Unibase.Themes.Compact.Components.Details.Instance();
  114. var containerid = Unibase.Platform.Helpers.NavigationHelper.Instance().getLastContainerId();
  115. var _installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  116. var portletid = detail_instance.unibase_core_activeportletid;
  117. detail_instance.loadWidgets(_installedAppId, portletid, "#" + containerid + "");
  118. MessageHelper.Instance().showSuccess(response.message, '');
  119. }
  120. else {
  121. alert("You Can't De-Active Default Address");
  122. }
  123. });
  124. });
  125. if (status == "De-activate") { }
  126. }
  127. else { }
  128. }
  129. });
  130. }
  131. editmap_1(contactAddressId) {
  132. let instance = this;
  133. Bizgaze.Apps.Crm.Components.Address.Instance().contactaddressid = contactAddressId;
  134. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/crm/address/components/w_address.js", function () {
  135. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("platform/core/helpers/mobile/interfaces/imobilehelper.js", function () {
  136. if (isMobileApp()) {
  137. Unibase.Platform.Helpers.MobileHelper.Instance().grantPermission(Unibase.Platform.Helpers.Enums.MobilePermissionType.Location, Bizgaze.Apps.Crm.Components.Address.Instance().edidmap_mobile);
  138. }
  139. else {
  140. Bizgaze.Apps.Crm.Components.Address.Instance().navigationHelper.popup(0, "", Bizgaze.Apps.Crm.Components.Address.Instance(), function () {
  141. Bizgaze.Apps.Crm.Components.Address.Instance().editmap(contactAddressId);
  142. }, Unibase.Platform.Helpers.Size.Auto);
  143. }
  144. });
  145. });
  146. }
  147. edidmap_mobile() {
  148. Bizgaze.Apps.Crm.Components.Address.Instance().navigationHelper.popup(0, "", Bizgaze.Apps.Crm.Components.Address.Instance(), function () {
  149. Bizgaze.Apps.Crm.Components.Address.Instance().editmap(Bizgaze.Apps.Crm.Components.Address.Instance().contactaddressid);
  150. }, Unibase.Platform.Helpers.Size.Auto);
  151. }
  152. editmap(contactAddressId) {
  153. var instance = this;
  154. instance.fileCacheHelper.loadJsFile('apps/crm/contacts/managers/contactmanager.js', function () {
  155. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getAddressById(contactAddressId).then(function (response) {
  156. let now = new Date();
  157. if ((response.result.AddrLatd != null) && (response.result.AddrLgtd != null) && (response.result.AddrLatd != "0") && (response.result.AddrLgtd != "0")) {
  158. instance.latd = response.result.AddrLatd;
  159. instance.lngd = response.result.AddrLgtd;
  160. instance.geotaggeddate = response.result.GeoTaggeddate;
  161. instance.editmap1(contactAddressId);
  162. }
  163. else {
  164. navigator.geolocation.getCurrentPosition(function (position) {
  165. instance.latd = position.coords.latitude;
  166. instance.lngd = position.coords.longitude;
  167. instance.editmap1(contactAddressId);
  168. });
  169. }
  170. });
  171. });
  172. }
  173. currentCoordinates() {
  174. navigator.geolocation.getCurrentPosition(function (position) {
  175. $(".txt_addrlatd").val(position.coords.latitude);
  176. $(".txt_addrlgtd").val(position.coords.longitude);
  177. });
  178. }
  179. editmap1(contactAddressId) {
  180. var instance = this;
  181. const containerId = this.navigationHelper.getLastContainerId();
  182. if ($('#meetingAddressMap-' + contactAddressId).length > 0) {
  183. if ($('#meetingAddressMap-' + contactAddressId).is(':hidden') != true) {
  184. return false;
  185. }
  186. }
  187. ;
  188. $(`#${containerId}`).append("<form id='FormIds'><style type='text/css'>.pac-container{z-index:9999 !important;}</style><div id='mapaddress" + contactAddressId + "' class='floating-label-form-group pl-0 bg-white d-flex align-items-center justify-content-between ' style='border-top:1px solid #ccc;border-right: 1px solid #ccc;'><div class='input-group'><input type='hidden' data-geo='lat1 value='' id='latitude' name='latitude'><input type='hidden' data-geo='lng' value='' id='longitude' name='setting_longitude'><input type='text' id='mapaddress-" + contactAddressId + "' class='form-control value-control floating-label-control px-2' data-isdefault='true' data-placeholder='Select Address' data-label='Address'><input type='hidden' id='myfieldname' value=" + contactAddressId + " /></div><div class=''><button class='btn btn-outline-primary btn-xs d-sm-none capture-btn'><span class='fa-solid fa-location-dot'></span><span>Current Location</span></button></div></div><div id='meetingAddressMap-" + contactAddressId + "' class='text-center modal-body pa-0' style='height:100%;'></div></div></form>");
  189. $(`#${containerId}`).find('#FormIds').after(`<div class="bg-white modal-footer find-match-footer pa-10"><a class="btn btn-light btn-sm btn-center mr-auto" href="javascript:;" id="btnClose">Close</a><a href="javascript:;" id='btn_map' class='btn btn-primary btn-sm' onclick='Bizgaze.Apps.Crm.Components.Address.Instance().getMobileLocation(${contactAddressId})'>Save</a></div>`);
  190. $(`#${containerId}`).find(".capture-btn").click(function () {
  191. instance.navigationHelper.showLoading();
  192. if (isMobileApp()) {
  193. Unibase.Platform.Helpers.MobileHelper.Instance().getCurrentLocation(contactAddressId, 2);
  194. }
  195. else {
  196. navigator.geolocation.getCurrentPosition(function (position) {
  197. instance.latd = position.coords.latitude;
  198. instance.lngd = position.coords.longitude;
  199. instance.getselectedcity(contactAddressId);
  200. });
  201. }
  202. });
  203. $(`#${containerId}`).find("#btnClose").click(function () {
  204. instance.navigationHelper.closePopUp();
  205. });
  206. var id = $(`#${containerId}`).find("#mapaddress-" + contactAddressId);
  207. id.geocomplete({ details: "form#FormIds" }).bind("geocode:result", function (event, result) {
  208. $(`#${containerId}`).find($("#latitude").val(result.geometry.location.lat()));
  209. $(`#${containerId}`).find($("#longitude").val(result.geometry.location.lng()));
  210. instance.latd = result.geometry.location.lat();
  211. instance.lngd = result.geometry.location.lng();
  212. instance.getselectedcity(contactAddressId);
  213. });
  214. if (contactAddressId != instance.oldcontactaddressid) {
  215. $(`#${containerId}`).find("#meetingAddressMap-" + instance.oldcontactaddressid).addClass('hidden');
  216. $(`#${containerId}`).find("#mapaddress" + instance.oldcontactaddressid).addClass('hidden');
  217. $(`#${containerId}`).find("#mapaddress-" + instance.oldcontactaddressid).addClass('hidden');
  218. }
  219. $(`#${containerId}`).find("#meetingAddressMap-" + contactAddressId).html('');
  220. $(`#${containerId}`).find("#mapaddress-" + contactAddressId).html('');
  221. instance.getselectedcity(contactAddressId);
  222. instance.oldcontactaddressid = contactAddressId;
  223. let deductHeight = 0;
  224. deductHeight += $(`#${containerId}`).find(`#mapaddress${contactAddressId}`).outerHeight(true);
  225. deductHeight += $(`#${containerId}`).find('.find-match-footer').outerHeight(true);
  226. $(`#${containerId}`).find('#meetingAddressMap-' + contactAddressId).css("height", `${$(window).innerHeight() - deductHeight}px`).attr('data-deductheight', deductHeight);
  227. }
  228. getselectedcity(contactAddressId) {
  229. let instance = this;
  230. const containerId = this.navigationHelper.getLastContainerId();
  231. $(`#${containerId}`).find($("#meetingAddressMap").html(''));
  232. $(`#${containerId}`).find($("#mapaddress-").html(''));
  233. var myLatlng = new google.maps.LatLng(instance.latd, instance.lngd);
  234. var mapOptions = {
  235. zoom: 8,
  236. center: myLatlng,
  237. };
  238. var map = new google.maps.Map($(`#${containerId}`).find("#meetingAddressMap-" + contactAddressId)[0], mapOptions);
  239. var marker = new google.maps.Marker({
  240. position: myLatlng,
  241. title: "Hello World!",
  242. draggable: true
  243. });
  244. google.maps.event.addListener(marker, 'dragend', function () {
  245. instance.latd = marker.getPosition().lat();
  246. instance.lngd = marker.getPosition().lng();
  247. instance.getselectedcity(contactAddressId);
  248. });
  249. marker.setMap(map);
  250. var url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=" + instance.latd + "," + instance.lngd + "&key=" + _mapsettings.key() + "&sensor=false";
  251. var xhr = instance.createCORSRequest1('Get', url);
  252. if (!xhr) {
  253. bootbox.alert('CORS not supported');
  254. return;
  255. }
  256. xhr.onload = function () {
  257. var text = xhr.responseText;
  258. var json = JSON.parse(text);
  259. $(`#${containerId}`).find("#mapaddress-" + contactAddressId).val(json.results[0].formatted_address);
  260. instance.navigationHelper.hideLoading();
  261. };
  262. xhr.onerror = function () {
  263. bootbox.alert('Woops, there was an error making the request.');
  264. instance.navigationHelper.hideLoading();
  265. };
  266. xhr.send();
  267. }
  268. createCORSRequest1(method, url) {
  269. var xhr = new XMLHttpRequest();
  270. if ("withCredentials" in xhr) {
  271. xhr.open(method, url, true);
  272. }
  273. else {
  274. xhr = null;
  275. }
  276. return xhr;
  277. }
  278. getMobileLocation(contactAddressId) {
  279. var instance = this;
  280. const containerId = this.navigationHelper.getLastContainerId();
  281. var geocoder = new google.maps.Geocoder();
  282. setTimeout(function () {
  283. var address = $(`#${containerId}`).find('#mapaddress-' + contactAddressId);
  284. geocoder.geocode({ 'address': address.val() }, function (results, status) {
  285. if (status == google.maps.GeocoderStatus.OK) {
  286. var latitude = results[0].geometry.location.lat();
  287. var longitude = results[0].geometry.location.lng();
  288. var postdata = {
  289. ContactAddressId: contactAddressId,
  290. Latd: parseFloat(instance.latd),
  291. Lgtd: parseFloat(instance.lngd),
  292. GeoTaggedDate: instance.geotaggeddate
  293. };
  294. instance.fileCacheHelper.loadJsFile('apps/crm/contacts/managers/contactmanager.js', function () {
  295. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().saveAddressCoordinates(postdata).then(function (response) {
  296. instance.navigationHelper.closePopUp();
  297. MessageHelper.Instance().showSuccess(response.message, 'div_ValidationSummary');
  298. var detailobj = Unibase.Themes.Compact.Components.Details.Instance();
  299. if (instance.isEmployeeDashboardRoute) {
  300. const portletid = +$("#hf_DashboardPortletId").val();
  301. Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(portletid, '');
  302. instance.isEmployeeDashboardRoute = false;
  303. }
  304. else {
  305. detailobj._recordId = Unibase.Themes.Providers.DetailHelper.recordId;
  306. detailobj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  307. detailobj._containerId = instance.navigationHelper.getLastContainerId();
  308. var idetailObj = detailobj;
  309. detailobj.loadPortlets(idetailObj);
  310. if ($('#hf_tripgroupid').length) {
  311. Unibase.Platform.Helpers.NavigationHelper.IsListRefresh = true;
  312. }
  313. }
  314. }, null);
  315. });
  316. }
  317. else {
  318. instance.fileCacheHelper.loadJsFile('apps/crm/contacts/managers/contactmanager.js', function () {
  319. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getLatLongByAddress(address).then(function (response) {
  320. if (response.result != "") {
  321. var lat = JSON.parse(response.result).results[0].geometry.location.lat;
  322. $('#hfLattitude').val(lat);
  323. alert(lat);
  324. var lng = JSON.parse(response.result).results[0].geometry.location.lng;
  325. $('#hfLongitude').val(lng);
  326. }
  327. });
  328. });
  329. alert('Please Select Address');
  330. }
  331. });
  332. });
  333. }
  334. LoadMapInMobile(contactAddressId, latid, lngid) {
  335. var instance = this;
  336. instance.latd = latid;
  337. instance.lngd = lngid;
  338. instance.getselectedcity(contactAddressId);
  339. }
  340. static Instance() {
  341. if (this._instance === undefined)
  342. this._instance = new Address();
  343. return this._instance;
  344. }
  345. }
  346. Components.Address = Address;
  347. })(Components = Crm.Components || (Crm.Components = {}));
  348. })(Crm = Apps.Crm || (Apps.Crm = {}));
  349. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  350. })(Bizgaze || (Bizgaze = {}));