Built files from Bizgaze WebServer
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

integrationdataapilog.js 45KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559
  1. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  2. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  3. return new (P || (P = Promise))(function (resolve, reject) {
  4. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  5. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  6. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  7. step((generator = generator.apply(thisArg, _arguments || [])).next());
  8. });
  9. };
  10. var serviceIntegratorIds = 0;
  11. var Unibase;
  12. (function (Unibase) {
  13. let Platform;
  14. (function (Platform) {
  15. let Integrations;
  16. (function (Integrations) {
  17. let Components;
  18. (function (Components) {
  19. class IntegrationDataApiLog extends Platform.Core.BaseComponent {
  20. constructor() {
  21. super();
  22. this.pageIndex = 0;
  23. }
  24. jsFiles() {
  25. return ["platform/integrations/managers/integrationmanager.js", "platform/dataapis/managers/dataapimanager.js", "libs/jquery/pagination/jquery.pagination.js"];
  26. }
  27. cssFiles() {
  28. return [];
  29. }
  30. html(id, containerid) {
  31. return '<div id="Unibase_dataapilogs" class="bg-white" default="" data-validate="parsley" data-isdynamic="false"><div class="px-20 pt-3 w-100 d-flex align-items-center justify-content-between"><span class="font-18 font-weight-600">API Log</span></div><div class="b-b bg-white header log-Header modal-header align-items-end"><div class="b-b bg-white d-flex flex-column" id="div_Listsearch"><label class="font-weight-500">Service Integrator</label><select type="text" id="txtServiceIntegrator" class="form-control floating-label-control w-250p" placeholder="Integrator *" data-placeholder="Enter Service Integrator"></select></div><div id="log_item" class="flex-column row"><label class="font-weight-500">Status</label><div class=""><select id="txtAutocomplete_log" placeholder="Select" class="form-control pl-0" data-placeholder="Select" data-label="Log"><option class="primary-account font-10" value="1">All</option><option class="secondary-account font-10" value="0">Success</option><option class="secondary-account font-10" value="2">Failed</option></select><input type="hidden" value="0" id="hfAutocomplete_log"></div></div><div class="b-b bg-white d-flex flex-column" id="div_RemoteSearch"><label class="font-weight-500">RefId & Column</label><input type="text" value="" data-isdynamic="false" class="form-control w-160p pl-0" style="box-shadow: none;" placeholder="Search RemoteId" data-placeholder="Search Remote PkId" data-label="Search" id="txtSearchPkId"></div><div class="b-b bg-white d-flex flex-column" id="div_Errorsearch"><label class="font-weight-500">ErrorMessage</label><input type="text" value="" data-isdynamic="false" class="form-control pl-0" placeholder="Search ErrorMessage" data-placeholder="Error Message" data-label="Search" id="txtSearchMessage" style="box-shadow: none;"></div><div><a href="javascript:void(0);" class="no-caret dropdown-toggle" id="integrationDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <span class="nav-icon-wrap" data-tooltip="true" title="FromDate to ToDate "><i class="las la-calendar font-25"></i></span> </a> <div class="dropdown-menu" aria-labelledby="integrationDropdown"> <div class="d-flex flex-column pb-2" id="div_fromDate" data-dateinitialized="false"><label class="font-weight-400">From Date</label> <div class="align-items-center d-flex"><input type="date" id="txt_fromDate" min="1980-01-01" class="form-control floating-label-control datepicker-input pl-0 w-150p" style="box-shadow: none;" data-date-format="dd/MM/yyyy" data-isdynamic="false" placeholder="From Date *" data-placeholder="dd/mm/yyyy" data-label="From Date"> <div id="clr_fdate"><i class="fa fa-close"></i></div></div><input type="hidden" id="hf_fromDate"> </div><div class="d-flex flex-column" id="div_toDate"><label class="font-weight-400">To Date</label> <div class="floating-label-from-group align-items-center d-flex"><input type="date" id="txt_toDate" class="form-control floating-label-control datepicker-input pl-0 w-150p" data-date-format="dd/MM/yyyy" style="box-shadow: none;" data-isdynamic="false" placeholder="To Date *" data-placeholder="dd/mm/yyyy" data-label="To Date"> <div id="clr_tdate"><i class="fa fa-close"></i></div></div><input type="hidden" id="hf_toDate"> </div></div></div><a href="javascript:;" id="btnApply" class="btn btn-primary btn-sm">Apply</a><a href="javascript:;" class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p dataapilog-refresh-btn mr-20" id="dataapilogRefreshBtn_" data-tooltip="true" title="Refresh All"><span class="btn-icon-wrap"><i class="fa fa-refresh"></i></span></a></div>' +
  32. `<div class="simple-scroll-bar scrollable sync-log-body px-20 py-2" ><div id="Unibase_ValidationSummary" class="clear" > </div>
  33. <div class="templateviewer-tableview">
  34. <div class="row px-0 mx-0 row card-header Templateheader biz-list-header biz-transparent-text-color no-background list-border-color">
  35. <div class="row mx-0 px-0" style="width:98%">
  36. <div class="col-1 pl-0">Log Time</div>
  37. <div class="col-2 px-0">Ref Id</div>
  38. <div class="col-3 pr-0">Status<span class="mx-1">-</span>Message</div>
  39. <div class="col-6 pr-0 d-flex"><div class="w-30 pr-0">Api Log Name</div>
  40. <div class="w-25">Ref Column</div>
  41. <div class="w-45 d-flex px-0"><span class="w-35 text-center text-truncate" data-tooltip="true" title="PayLoad">PayLoad</span><span class="w-30 text-center text-truncate" data-tooltip="true" title="Result">Result</span><span class="w-20 text-center text-truncate" data-tooltip="true" title="Info">Info</span><span class="w-15 text-center text-truncate" data-tooltip="true" title="Refresh"></span></div>
  42. </div></div>
  43. <div class="px-0" style="width:2%"></div>
  44. </div>
  45. </div>
  46. <div>
  47. <ul class="divlog list-group font-14 mb-10 templateviewer-body"></ul>
  48. <span id="totalcount" class="">Total Count : <a href="javascript:; "id="getcount"></a></span></div>
  49. <div id = "ItemsListPagination" class="pagination custom-pagination pagination-rounded pull-right">
  50. </div>
  51. </div>
  52. <div id="div_LogFooter" class="bg-white footer h-50p">
  53. </div>
  54. </div>`;
  55. }
  56. init(containerid) {
  57. this.clickEvntInit(0, containerid);
  58. }
  59. clickEvntInit(serviceIntegratorId, containerid) {
  60. return __awaiter(this, void 0, void 0, function* () {
  61. let instance = this;
  62. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(['platform/dataapis/managers/dataapimanager.js'], function () {
  63. if (containerid == undefined) {
  64. Unibase.Platform.Integrations.Components.IntegrationDataApiLog.serviceIntegratorId = serviceIntegratorId;
  65. this.navigationHelper.popup(0, '', Unibase.Platform.Integrations.Components.IntegrationDataApiLog.Instance(), null, Unibase.Platform.Helpers.Size.ExtraLarge);
  66. Unibase.Platform.Integrations.Components.IntegrationDataApiLog.Instance().loadApiLog(serviceIntegratorId);
  67. serviceIntegratorIds = serviceIntegratorId;
  68. }
  69. else {
  70. Unibase.Platform.Integrations.Components.IntegrationDataApiLog.serviceIntegratorId = serviceIntegratorId;
  71. instance.navigationHelper.loadSection(0, containerid, Unibase.Platform.Integrations.Components.IntegrationDataApiLog.Instance(), null, Unibase.Platform.Integrations.Components.IntegrationDataApiLog.Instance().closeBtn);
  72. Unibase.Platform.Integrations.Components.IntegrationDataApiLog.Instance().loadApiLog(serviceIntegratorId);
  73. serviceIntegratorIds = serviceIntegratorId;
  74. }
  75. });
  76. });
  77. }
  78. closeBtn() {
  79. $('[data-btn_close="integrations"]').parent().addClass('invisible');
  80. }
  81. load(id, containerid, callback) {
  82. $('input[data-datepicker="integration"]').daterangepicker({
  83. opens: 'left'
  84. }, function (start, end, label) {
  85. console.log("A new date selection was made: " + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD'));
  86. });
  87. var url = _appsettings.server_url() + '/apis/v4/unibase/integrations/integrator/servicintegratorautocomplete/integratorid/0';
  88. AutoCompleteHelper.getHelper().Create("#txtServiceIntegrator", "#hf_Autocomplete_Services", url, function (response) {
  89. var data = response;
  90. });
  91. $('.dataapilog-refresh-btn').on('click', function () {
  92. bootbox.confirm({
  93. message: "Do you want refresh all API request",
  94. closeButton: false,
  95. buttons: {
  96. confirm: {
  97. label: 'Yes',
  98. className: 'btn-success'
  99. },
  100. cancel: {
  101. label: 'No',
  102. className: 'btn-danger'
  103. }
  104. },
  105. callback: function (result) {
  106. if (result) {
  107. Unibase.Platform.Integrations.Components.IntegrationDataApiLog.Instance().RefreshdataApiLogs();
  108. }
  109. else {
  110. }
  111. }
  112. });
  113. });
  114. $("#btnApply").click(function () {
  115. var ids = $("#txtServiceIntegrator option:selected").val();
  116. Unibase.Platform.Integrations.Components.IntegrationDataApiLog.Instance().loadApiLog(ids);
  117. });
  118. $("#clr_fdate").click(function () {
  119. $("#txt_fromDate").val("");
  120. });
  121. $("#clr_tdate").click(function () {
  122. $("#txt_toDate").val("");
  123. });
  124. var timer;
  125. $("#txtSearchItem").on('keyup', () => {
  126. var delay = 1000;
  127. window.clearTimeout(timer);
  128. timer = window.setTimeout(() => {
  129. var searchtext = $("#txtSearchItem").val();
  130. if (searchtext != "") {
  131. var ids = serviceIntegratorIds;
  132. Unibase.Platform.Integrations.Components.IntegrationDataApiLog.Instance().loadApiLog(ids);
  133. }
  134. else {
  135. var ids = serviceIntegratorIds;
  136. Unibase.Platform.Integrations.Components.IntegrationDataApiLog.Instance().loadApiLog(ids);
  137. }
  138. }, delay);
  139. });
  140. $("#txtSearchMessage, #txtSearchPkId").on('keyup', () => {
  141. var delay = 1000;
  142. window.clearTimeout(timer);
  143. timer = window.setTimeout(() => {
  144. var searchtextmessage = $("#txtSearchMessage").val();
  145. if (searchtextmessage != "") {
  146. var ids = serviceIntegratorIds;
  147. Unibase.Platform.Integrations.Components.IntegrationDataApiLog.Instance().loadApiLog(ids);
  148. }
  149. else {
  150. var ids = serviceIntegratorIds;
  151. Unibase.Platform.Integrations.Components.IntegrationDataApiLog.Instance().loadApiLog(ids);
  152. }
  153. }, delay);
  154. });
  155. }
  156. loadForm(FormId, Pk_Value, AppConfigurationId, Callback, ElementId) {
  157. }
  158. loadPagination(totalRecords, serviceIntegratorId) {
  159. var instance = this;
  160. let elem = $('#ItemsListPagination');
  161. elem.pagination(totalRecords, 20, {
  162. items_per_page: 20,
  163. callback: function (page, component) {
  164. instance.pageIndex = page;
  165. instance.loadApiLog(serviceIntegratorId);
  166. }, current_page: instance.pageIndex
  167. });
  168. }
  169. RefreshdataApiLogs() {
  170. let datetimeIns = Unibase.Platform.Helpers.DateTimeHelper.Instance();
  171. var instance = this;
  172. var serviceIntegratorId = $('#txtServiceIntegrator option:selected').val();
  173. if (serviceIntegratorId == undefined)
  174. serviceIntegratorId = 0;
  175. var postData = {
  176. RemoteId: $("#txtSearchPkId").val(),
  177. RefId: serviceIntegratorId,
  178. Page: 0,
  179. Rows: 0,
  180. FromDate: $("#txt_fromDate").val(),
  181. ToDate: $("#txt_toDate").val(),
  182. StatusCode: $("#txtAutocomplete_log").val(),
  183. ErrorMessage: $("#txtSearchMessage").val(),
  184. };
  185. if (($("#txt_fromDate").val() == "" && $("#txt_toDate").val() != "" && $("#txt_toDate").val() != undefined)) {
  186. MessageHelper.Instance().showError("Please select FromDate", "Unibase_ValidationSummary");
  187. }
  188. else if ($("#txt_fromDate").val() != "" && $("#txt_fromDate").val() != undefined && $("#txt_toDate").val() == "") {
  189. MessageHelper.Instance().showError("Please select ToDate", "Unibase_ValidationSummary");
  190. }
  191. else if (($("#txt_fromDate").val() > $("#txt_toDate").val())) {
  192. MessageHelper.Instance().showError("ToDate is lessthan FromDate", "Unibase_ValidationSummary");
  193. }
  194. else {
  195. Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().executefailedapisbyfilter(postData).then(function (response) {
  196. return __awaiter(this, void 0, void 0, function* () {
  197. if (response.status == 2) {
  198. yield bootbox.confirm({
  199. message: response.message,
  200. closeButton: false,
  201. buttons: {
  202. confirm: {
  203. label: 'Close',
  204. className: 'btn-success'
  205. },
  206. cancel: {
  207. label: 'Cancel',
  208. className: 'btn-danger'
  209. }
  210. },
  211. callback: function (result) {
  212. }
  213. });
  214. yield $('.bootbox-cancel').remove();
  215. }
  216. else {
  217. MessageHelper.Instance().showSuccess(response.message, '');
  218. }
  219. });
  220. });
  221. }
  222. }
  223. loadApiLog(serviceIntegratorId) {
  224. let datetimeIns = Unibase.Platform.Helpers.DateTimeHelper.Instance();
  225. var instance = this;
  226. serviceIntegratorId = $('#txtServiceIntegrator option:selected').val();
  227. if (serviceIntegratorId == undefined)
  228. serviceIntegratorId = 0;
  229. var postData = {
  230. RemoteId: $("#txtSearchPkId").val(),
  231. RefId: serviceIntegratorId,
  232. Page: instance.pageIndex,
  233. Rows: 20,
  234. FromDate: $("#txt_fromDate").val(),
  235. ToDate: $("#txt_toDate").val(),
  236. StatusCode: $("#txtAutocomplete_log").val(),
  237. ErrorMessage: $("#txtSearchMessage").val(),
  238. };
  239. if (($("#txt_fromDate").val() == "" && $("#txt_toDate").val() != "" && $("#txt_toDate").val() != undefined)) {
  240. MessageHelper.Instance().showError("Please select FromDate", "Unibase_ValidationSummary");
  241. }
  242. else if ($("#txt_fromDate").val() != "" && $("#txt_fromDate").val() != undefined && $("#txt_toDate").val() == "") {
  243. MessageHelper.Instance().showError("Please select ToDate", "Unibase_ValidationSummary");
  244. }
  245. else if (($("#txt_fromDate").val() > $("#txt_toDate").val())) {
  246. MessageHelper.Instance().showError("ToDate is lessthan FromDate", "Unibase_ValidationSummary");
  247. }
  248. else {
  249. $(".divlog").html(Unibase.Themes.Compact.Components.Nav_Template.Instance().skelTonHorizontal());
  250. Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().getDataApiLogfilter(postData).then(function (response) {
  251. var data = JSON.parse(response.result);
  252. response.result = JSON.parse(response.result);
  253. if (response.result.length == 0) {
  254. $(".divlog").hide();
  255. $("#totalcount").hide();
  256. }
  257. else {
  258. $(".divlog").show();
  259. $("#totalcount").show();
  260. var html = "";
  261. for (var i = 0; i < response.result.length; i++) {
  262. var data = response.result[i], txtColor = "";
  263. var date = Unibase.Platform.Helpers.DateTimeHelper.Instance().FormatDateTime(data.lastupdateddate);
  264. if (data.Status == "Success") {
  265. txtColor = 'text-success';
  266. }
  267. else {
  268. txtColor = 'text-danger';
  269. }
  270. let apiName = [], _apiName;
  271. apiName = data.ApiName.split('_');
  272. _apiName = apiName.slice(1, apiName.length).join("_");
  273. html += '<li class="list-group-item px-3 data-list-item biz-transparent-text-color no-background list-border-color apilog-item group-item_' + data.DataApiLogId + '">' +
  274. '<div class="row">' +
  275. '<div class="row px-0 mx-0" style="width:98%">' +
  276. '<div class="col-1 pl-0">' + date + '</div>' +
  277. '<div class="col-2 px-0 word-break-biz">' + data.RemotePkId + '</div>' +
  278. '<div class="col-3 pr-0 word-break-biz"><span><span class="' + txtColor + '">' + data.Status + '</span><span class="mx-1">-</span>';
  279. let responseMessage;
  280. if (data.ResponseObject != null && data.ResponseObject != undefined && data.ResponseObject != '') {
  281. try {
  282. if (JSON.parse(data.ResponseObject).Message != null && JSON.parse(data.ResponseObject).Message != undefined && JSON.parse(data.ResponseObject).Message != '') {
  283. responseMessage = JSON.parse(data.ResponseObject).Message;
  284. }
  285. else {
  286. responseMessage = data.ExceptionMessage;
  287. }
  288. }
  289. catch (e) {
  290. responseMessage = data.ResponseObject;
  291. }
  292. }
  293. else {
  294. responseMessage = data.ExceptionMessage;
  295. }
  296. html += '<span>' + responseMessage + '</span></span></div>' +
  297. '<div class="col-6 pr-0 d-flex"><div class="w-30 pr-2 word-break-biz">' + _apiName + '</div>';
  298. html += `<div class="w-25 word-break-biz">${data.RefColumnValue1}</div><div class="w-45 px-0 d-flex"><div class="w-35 text-center" data-copydata="true" title='${data.RequestObject}' data-urlcoppy="fiedata" data-copy="true"><span class="d-none" data-url='true'>${data.RequestObject}</span><span><i class="las la-copy"></i></span></div>
  299. <div class="w-30 text-center" data-copy="true" title='${data.ResponseObject}' data-responsecopy="response"><span class="d-none" data-url='true'>${data.ResponseObject}</span><span><i class="las la-copy"></i></span></div>
  300. <div class="w-20 text-center">
  301. <a href="javascript:;" onclick="Unibase.Platform.Integrations.Components.IntegrationDataApiLog.Instance().infoPopupBind('${data.DataApiLogId}');"><span class="glyphicon glyphicon-info-sign text-info font-20"></span>
  302. </a></div>
  303. <div class="w-15 text-right px-0">`;
  304. if (data.Status == "Success") {
  305. }
  306. else {
  307. html += '<i class="fa fa-refresh mr-10" onclick="javascript:Unibase.Platform.Integrations.Components.IntegrationDataApiLog.Instance().RefreshdataApiLog(\'' + data.DataApiLogId + '\');"></i>';
  308. }
  309. html += '</div></div></div>' +
  310. '</div>' +
  311. '<div class="justify-content-end d-flex" style="width:2%">' +
  312. '<a href="#sync-' + data.DataApiLogId + '" data-parent="divTasks" data-toggle="collapse" class="accordion-toggle collapsed" onclick="javascript:Unibase.Platform.Integrations.Components.IntegrationDataApiLog.Instance().loadApiLogItem(\'' + data.DataApiLogId + '\');"> ' +
  313. '<i class="indicator fa fa-chevron-right"></i>' +
  314. '</a>' +
  315. '</div>' +
  316. '</div>' +
  317. '<div class="panel-collapse collapse" id="sync-' + data.DataApiLogId + '" style="height: 0px;">' +
  318. '<ul id="sync-list_' + data.DataApiLogId + '" class="list-group no-radius m-b-none list-group-lg no-border m-t sync-list">' +
  319. '</ul>' +
  320. '</div>' +
  321. '</li>';
  322. }
  323. }
  324. if (response.totalRecords > 20) {
  325. $("#ItemsListPagination").removeClass("hidden");
  326. instance.loadPagination(response.totalRecords, serviceIntegratorId);
  327. }
  328. else {
  329. $("#ItemsListPagination").addClass("hidden");
  330. }
  331. $('#getcount').text(response.totalRecords);
  332. $("#lblintegratelogRecords").text(response.result.length);
  333. $(".divlog").html(html);
  334. $('[data-urlcoppy="fiedata"]').on('click', function () {
  335. let element = $(this);
  336. let url = $(this).find('[data-url="true"]').text();
  337. eval(`navigator.clipboard.writeText(url);
  338. $('[data-copy="true"]').removeClass('text-danger')
  339. element.addClass('text-danger')
  340. `);
  341. });
  342. $('[data-responsecopy="response"]').on('click', function () {
  343. let element = $(this);
  344. let url = $(this).find('[data-url="true"]').text();
  345. eval(`navigator.clipboard.writeText(url);
  346. $('[data-copy="true"]').removeClass('text-danger')
  347. element.addClass('text-danger')
  348. `);
  349. });
  350. });
  351. }
  352. }
  353. infoPopupBind(dataApiLogId) {
  354. Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().getapilogitembydataapilogid(dataApiLogId).then(function (response) {
  355. let html = `<div id="infoPopUp" class="modal fade" role="dialog">
  356. <div class="modal-dialog modal-lg text-dark">
  357. <!-- Modal content-->
  358. <div class="modal-content">
  359. <div class="modal-header p-3">
  360. <span class="modal-title font-18 font-weight-600">API Log Items <span class="ml-2 rounded-circle badge badge-primary" data-count="true"></span></span>
  361. <button type="button" class="close" data-dismiss="modal" data-btn_close="infoPopUp">&times;</button>
  362. </div>
  363. <div clas="modal-header">
  364. <ul class="d-flex justify-content-between px-3 py-2 border-right-0 border-top-0 border-left-0 border">
  365. <li class="d-flex flex-column w-20">
  366. <span class="font-16 font-weight-500 py-1">Created Date</span>
  367. </li>
  368. <li class="d-flex flex-column w-50 text-left px-3">
  369. <span class="font-16 font-weight-500 py-1">Status<span class="mx-1">-</span><span>Messsage</span></span>
  370. </li>
  371. <li class="d-flex flex-column w-15 pr-3">
  372. <span class="font-16 font-weight-500 py-1 text-center" >PayLoad</span>
  373. </li>
  374. <li class="d-flex flex-column w-15">
  375. <span class="font-16 font-weight-500 py-1 text-center" >Result</span>
  376. </li>
  377. </ul>
  378. </div>
  379. <div class="modal-body py-2 px-0 h-350p simple-scroll-bar scrollable" data-simplebar>`;
  380. for (var i = 0; i < response.result.length; i++) {
  381. let data = response.result[i];
  382. var date = Unibase.Platform.Helpers.DateTimeHelper.Instance().FormatDateTime(data.createddate);
  383. debugger;
  384. html += `<ul class="d-flex justify-content-between py-2 px-3 border-right-0 border-top-0 border-left-0 border">
  385. <li class="d-flex flex-column w-20 word-break-biz">
  386. <span class="font-14 font-weight-400 py-1">${date}</span>
  387. </li>
  388. <li class="d-flex flex-column w-50 text-left px-3 word-break-biz">
  389. <span class="font-14 font-weight-400 py-1">${data.Status}<span class="px-1">-</span><span>`;
  390. let message;
  391. if (data.ResponseObject != null && data.ResponseObject != undefined && data.ResponseObject != '') {
  392. if (JSON.parse(data.ResponseObject).Message != undefined && JSON.parse(data.ResponseObject).Message != '' && JSON.parse(data.ResponseObject).Message != null) {
  393. message = JSON.parse(data.ResponseObject).Message;
  394. }
  395. else {
  396. message = data.ExceptionMessage;
  397. }
  398. }
  399. else {
  400. message = data.ExceptionMessage;
  401. }
  402. html += `${message}</span></span >
  403. </li>
  404. <li class="d-flex flex-column w-15 pr-3 word-break-biz">
  405. <span class="font-14 font-weight-400 py-1 text-center" title='${data.RequestObject}' data-copy="true" data-copy2Objt="rquest2objt"><span class="d-none" data-rquest2objt="true">${data.RequestObject}</span><span><i class="las la-copy"></i></span></span>
  406. </li>
  407. <li class="d-flex flex-column w-15">
  408. <span class="font-14 font-weight-400 py-1 text-center" title='${data.ResponseObject}' data-copy="true" data-copy2Objt="response2objt"><span class="d-none" data-response2objt="true">${data.ResponseObject}</span><span><i class="las la-copy"></i></span></span>
  409. </li>
  410. </ul>`;
  411. }
  412. html += `</div>
  413. </div>
  414. </div>
  415. </div>`;
  416. $('body').append(html);
  417. $('[data-count="true"]').text(response.result.length);
  418. $('[data-btn_close="infoPopUp"]').on('click', function () {
  419. $('#infoPopUp').remove();
  420. $('.modal-backdrop.fade.show').not('.unibase_modal_backdrop').remove();
  421. });
  422. $('#infoPopUp').modal('show');
  423. $('[data-copy2Objt="response2objt"]').on('click', function () {
  424. let element = $(this);
  425. let obj = $(this).find('[data-response2objt="true"]').text();
  426. eval(`navigator.clipboard.writeText(obj);
  427. $('[data-copy="true"]').removeClass('text-danger')
  428. element.addClass('text-danger')
  429. `);
  430. });
  431. $('[data-copy2Objt="rquest2objt"]').on('click', function () {
  432. let element = $(this);
  433. let obj = $(this).find('[data-rquest2objt="true"]').text();
  434. eval(`navigator.clipboard.writeText(obj);
  435. $('[data-copy="true"]').removeClass('text-danger')
  436. element.addClass('text-danger')
  437. `);
  438. });
  439. });
  440. }
  441. RefreshdataApiLog(dataApiLogId) {
  442. var ids = $("#txtServiceIntegrator option:selected").val();
  443. bootbox.confirm({
  444. message: "Do you want to reresh API request?",
  445. closeButton: false,
  446. buttons: {
  447. confirm: {
  448. label: 'Yes',
  449. className: 'btn-success'
  450. },
  451. cancel: {
  452. label: 'No',
  453. className: 'btn-danger'
  454. }
  455. },
  456. callback: function (result) {
  457. if (result) {
  458. $(".divlog").html(Unibase.Themes.Compact.Components.Nav_Template.Instance().skelTonHorizontal());
  459. Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().executeFailedApiLog(dataApiLogId).then(function (response) {
  460. return __awaiter(this, void 0, void 0, function* () {
  461. if (response.status == 2) {
  462. yield Unibase.Platform.Integrations.Components.IntegrationDataApiLog.Instance().loadApiLog(ids);
  463. MessageHelper.Instance().showError(response.message, "Unibase_ValidationSummary");
  464. }
  465. else {
  466. yield Unibase.Platform.Integrations.Components.IntegrationDataApiLog.Instance().loadApiLog(ids);
  467. MessageHelper.Instance().showSuccess(response.message, '');
  468. }
  469. });
  470. });
  471. }
  472. }
  473. });
  474. }
  475. loadApiLogItem(apiLogItemId) {
  476. let instance = this;
  477. Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().getdataApiLog(apiLogItemId).then(function (response) {
  478. var date = Unibase.Platform.Helpers.DateTimeHelper.Instance().FormatDateTime(response.result.createddate);
  479. var innerhtml = '<li class="list-group-item bg-white apilog-item_' + response.result.DataApiLogId + ' ">' +
  480. '<div class="row"><strong class="col-sm-2">Api Name</strong><span style="word-wrap: break-word;" class="col-sm-10">' + response.result.ApiName + '</span></div>' +
  481. '<div class="row" style="overflow-wrap: break-word;"><strong class="col-sm-2">Request Url</strong><span style="word-wrap: break-word;" class="col-sm-10">' + response.result.RequestUrl + '</span></div>' +
  482. '<div class="text-black row" style="overflow-wrap: break-word;"><strong class="col-sm-2">Status</strong><span class="col-sm-10">' + response.result.Status + '</span></div>' +
  483. '<div class="row" style="overflow-wrap: break-word;"><strong class="col-sm-2">Message</strong><span style="word-wrap: break-word;" class="col-sm-10">';
  484. response.result.ExceptionMessage + '</span></div>' +
  485. '<div class="row" style="overflow-wrap: break-word;"><strong class="col-sm-2">Created Date</strong><span class="col-sm-10">' + date + '</span></div>' +
  486. '<div class="row" style="overflow-wrap: break-word;"><strong class="col-sm-2">Inner Exception</strong><span style="word-wrap: break-word;" class="col-sm-10">' + response.result.InnerException + '</span></div>' +
  487. '<div class="row" style="overflow-wrap: break-word;"><strong class="col-sm-2">Stack Trace</strong><span style="word-wrap: break-word;" class="col-sm-10 d-flex flex-column"><span data-integrations="4lines">' + response.result.StackTrace + '</span>';
  488. if (response.result.StackTrace != null && response.result.StackTrace != '' && response.result.StackTrace != undefined) {
  489. innerhtml += `<span class="font-14 font-weight-400 py-1" data-copy="true" data-copy2stacktrace="stacktrace"><span class="d-none" data-copy2stacktrace="true">${response.result.StackTrace}</span><span title='${response.result.StackTrace}'><i class="las la-copy"></i></span></span>`;
  490. }
  491. if (response.result.Headers != null && response.result.Headers != '' && response.result.Headers != undefined) {
  492. innerhtml += '</span></div > ' +
  493. '<div class="row" style="overflow-wrap: break-word;"><strong class="col-sm-2">Request Header</strong><span style="word-wrap: break-word;" class="col-sm-10"><span data-integrations="4lines">' + response.result.Headers + '</span>';
  494. if (response.result.Headers != null && response.result.Headers != '' && response.result.Headers != undefined) {
  495. innerhtml += `<span class="font-14 font-weight-400 py-1" data-copy="true" data-copy2dropdownheader="dropdownheader"><span class="d-none" data-copy2dropdownheader="true">${response.result.Headers}</span><span title='${response.result.Headers}'><i class="las la-copy"></i></span></span>`;
  496. }
  497. }
  498. innerhtml += '</span></div>' +
  499. '<div class="row" style="overflow-wrap: break-word;"><strong class="col-sm-2">Request Type</strong><span class="col-sm-10">' + response.result.RequestType + '</span></div>' +
  500. '<div class="row" style="overflow-wrap: break-word;"><strong class="col-sm-2">Response Object</strong><span style="word-wrap: break-word;" class="col-sm-10"><span data-integrations="4lines">' + response.result.ResponseObject + '</span>';
  501. if (response.result.ResponseObject != null && response.result.ResponseObject != '' && response.result.ResponseObject != undefined) {
  502. innerhtml += `<span class="font-14 font-weight-400 py-1" data-copy="true" data-copy2dropdownRes="dropdownres"><span class="d-none" data-copy2dropdownres="true">${response.result.ResponseObject}</span><span title='${response.result.ResponseObject}'><i class="las la-copy"></i></span></span>`;
  503. }
  504. innerhtml += '</span></div > ' +
  505. '<div class="row" style="overflow-wrap: break-word;"><strong class="col-sm-2">Request Object</strong><span style="word-wrap: break-word;" class="col-sm-10"><span data-integrations="4lines">' + response.result.RequestObject + '</span>';
  506. if (response.result.RequestObject != null && response.result.RequestObject != '' && response.result.RequestObject != undefined) {
  507. innerhtml += `<span class="font-14 font-weight-400 py-1" data-copy="true" data-copy2dropdownReq="dropdownreq"><span class="d-none" data-copy2dropdownreq="true">${response.result.RequestObject}</span><span title='${response.result.RequestObject}'><i class="las la-copy"></i></span></span>`;
  508. }
  509. innerhtml += '</span ></div > ' +
  510. '</li>';
  511. $("#sync-list_" + apiLogItemId).html(innerhtml);
  512. let copy = ['stacktrace', 'dropdownheader', 'dropdownres', 'dropdownreq'];
  513. copy.forEach(function (element, index) {
  514. instance.copyFuntionaLity(element);
  515. });
  516. });
  517. }
  518. copyFuntionaLity(attr1) {
  519. $(`[data-copy2${attr1}="${attr1}"]`).on('click', function () {
  520. let element = $(this);
  521. let obj = $(this).find(`[data-copy2${attr1}="true"]`).text();
  522. eval(`navigator.clipboard.writeText(obj);
  523. $('[data-copy="true"]').removeClass('text-danger')
  524. element.addClass('text-danger')
  525. `);
  526. });
  527. }
  528. refreshFailedApiLog(dataApiLogId) {
  529. Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().executeFailedApiLog(dataApiLogId).then(function (response) {
  530. if (response.status == 0) {
  531. MessageHelper.Instance().showSuccess(response.message, "");
  532. }
  533. else {
  534. MessageHelper.Instance().showSuccess(response.message, "");
  535. }
  536. });
  537. }
  538. refreshFailedApiQueue(apiQueueId) {
  539. Unibase.Platform.DataApis.Manangers.DataApiManager.Instance().executeFailedApiQueue(apiQueueId).then(function (response) {
  540. if (response.status == 0) {
  541. MessageHelper.Instance().showSuccess(response.message, "");
  542. }
  543. else {
  544. MessageHelper.Instance().showSuccess(response.message, "");
  545. }
  546. });
  547. }
  548. static Instance() {
  549. return new IntegrationDataApiLog();
  550. }
  551. }
  552. IntegrationDataApiLog.serviceIntegratorId = 0;
  553. Components.IntegrationDataApiLog = IntegrationDataApiLog;
  554. })(Components = Integrations.Components || (Integrations.Components = {}));
  555. })(Integrations = Platform.Integrations || (Platform.Integrations = {}));
  556. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  557. })(Unibase || (Unibase = {}));