Built files from Bizgaze WebServer
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

ivr.js 57KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731
  1. var Bizgaze;
  2. (function (Bizgaze) {
  3. let Apps;
  4. (function (Apps) {
  5. let Communications;
  6. (function (Communications) {
  7. let Ivr;
  8. (function (Ivr_1) {
  9. let Components;
  10. (function (Components) {
  11. class Ivr extends Unibase.Platform.Core.BaseComponent {
  12. constructor() {
  13. super();
  14. this.pageIndex = 0;
  15. }
  16. loadForm(FormId, Pk_Value, AppConfigurationId, Callback, PortletWidgetId) {
  17. throw new Error("Method not implemented.");
  18. }
  19. jsFiles() {
  20. return ["apps/communications/ivr/managers/ivrmanager.js", "platform/dataapis/managers/dataapimanager.js", "libs/jquery/pagination/jquery.pagination.js", "/DataTables/datatables.js"];
  21. }
  22. cssFiles() {
  23. let css = `.pagination li:hover{
  24. cursor: pointer;
  25. }`;
  26. return [css];
  27. }
  28. html() {
  29. var html = '';
  30. return html;
  31. }
  32. loadhtml(Containerid) {
  33. var html = `<div></div><div style="background-color:#FFFFFF;"><br>&nbsp&nbsp<label for="fromDate"><b>FromDate</b></label> <input type="datetime-local" id="fromDate" name="fromDate">&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp <label for="toDate"><b>ToDate</b></label> <input type="datetime-local" id="toDate" name="toDate">&nbsp&nbsp&nbsp&nbsp<input type="text" id="txtsearchnumber" placeholder="search" data-type="number"/>&nbsp&nbsp&nbsp<button class="btn btn-sm btn-datesearch" id="search" ><b>Apply</b></button><br></div><div><table id="logData" class="table table-bordered"><thead style="background-color:#FFFFFF;"><tr><th><b>Date</b></th><th><b>Caller</b></th><th><b>Click To Call</b></th><th><b>SR number</b></th><th><b>Action</b></th><th><b>Duration</b><br></th><th><b>Recordings</b></th><th><b>Credits</b></th></tr></thead><tbody style="background-color:#FFFFFF;"> </tbody></table></div><div><label>Total Count:</label><span id="spancount"></span><div class="pull-right"><button class="btn btn-sm btn-prevbutton" id="prevbutton" >Previous</button>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<button class="btn btn-sm btn-nxtbutton" id="nxtbutton">Next</button></div></div>`;
  34. $("." + Containerid).html(html);
  35. }
  36. init(Containerid) {
  37. let recordingurl;
  38. let url = [];
  39. let responseuuidobj;
  40. let callernumber;
  41. let responseobjectarr = [];
  42. let uuidarr = [];
  43. let index = 1;
  44. let refindex = 0;
  45. let fromsearch = 0;
  46. var prevstatus = false;
  47. var nxtstatus = false;
  48. let count = 0;
  49. let arrfromsearch = [];
  50. let arrfromsearchlength = 0;
  51. let arrtosearch = [];
  52. let noofrows = 8;
  53. var jsfiles = ["apps/communications/ivr/managers/ivrmanager.js", "platform/dataapis/managers/dataapimanager.js", "libs/jquery/pagination/jquery.pagination.js"];
  54. Ivr.Instance().fileCacheHelper.loadJsFiles(jsfiles, function () {
  55. Ivr.Instance().loadhtml(Containerid);
  56. Ivr.Instance().cssFiles();
  57. loadinandout();
  58. Bizgaze.Apps.Communications.Ivr.Managers.IvrManager.Instance().getcalllogs().then(function (response) {
  59. $("#logData tbody").append('');
  60. if (response != null) {
  61. var responseobj = response.objects;
  62. for (var i = 0; i < responseobj.length; i++) {
  63. responseobjectarr.push(responseobj[i]);
  64. loaduuid(responseobj[i].uuid);
  65. }
  66. }
  67. });
  68. function loaduuid(uuid) {
  69. Bizgaze.Apps.Communications.Ivr.Managers.IvrManager.Instance().getdetailedcalllogs(uuid).then(function (responseuuid) {
  70. responseuuidobj = responseuuid.message;
  71. callernumber = JSON.parse(responseuuidobj).caller;
  72. uuidarr.push(callernumber);
  73. if (responseobjectarr.length == uuidarr.length) {
  74. $("#prevbutton").prop('disabled', true);
  75. loadinandout();
  76. }
  77. });
  78. }
  79. function loadinandout() {
  80. url = [];
  81. $("#logData tbody").html(' ');
  82. index = 1;
  83. count = 0;
  84. if (nxtstatus == true) {
  85. arrtosearch.push(fromsearch);
  86. }
  87. for (var i = fromsearch; i < responseobjectarr.length; i++) {
  88. if (count == 0 && prevstatus == false && nxtstatus == false) {
  89. arrfromsearch.push(fromsearch);
  90. }
  91. let dynamicTR = "<tr>";
  92. dynamicTR = dynamicTR + "<td>" + "incoming " + "<br>" + responseobjectarr[i].start_time + "</td>";
  93. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].customer_number + "</td>";
  94. dynamicTR = dynamicTR + "<td>" + "<a><button class='btn btn-sm btn-call'> Click To Call </button></a>" + "</td>";
  95. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].destination + "</td>";
  96. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].business_call_type + "</td>";
  97. recordingurl = responseobjectarr[i].call_recording;
  98. if (recordingurl == "") {
  99. dynamicTR = dynamicTR + "<td>" + "Missed Call" + "</td>";
  100. }
  101. else {
  102. if (responseobjectarr[i].call_duration < 60) {
  103. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].call_duration + " seconds" + "</td>";
  104. }
  105. else {
  106. var rem = responseobjectarr[i].call_duration % 60;
  107. var quo = responseobjectarr[i].call_duration / 60;
  108. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].call_duration + quo + " minutes" + rem + " seconds" + "</td>";
  109. }
  110. }
  111. dynamicTR = dynamicTR + "<td>";
  112. recordingurl = responseobjectarr[i].call_recording;
  113. if (recordingurl == "") {
  114. dynamicTR = dynamicTR + '<i class="fa fa - download" aria-hidden="true">';
  115. }
  116. else {
  117. dynamicTR = dynamicTR + '<a href="' + recordingurl + '"><button class= "btn"><i class="fa fa-download" aria-hidden="true"></i></button >';
  118. }
  119. dynamicTR = dynamicTR + "</td>";
  120. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].credits_deducted + "</td>";
  121. dynamicTR = dynamicTR + "</tr>";
  122. $("#logData tbody").append(dynamicTR);
  123. index++;
  124. count++;
  125. if (fromsearch == 0) {
  126. $("#prevbutton").prop('disabled', true);
  127. }
  128. if (count == noofrows) {
  129. if (nxtstatus == false) {
  130. arrfromsearch.push(fromsearch);
  131. }
  132. break;
  133. }
  134. dynamicTR = "<tr>";
  135. dynamicTR = dynamicTR + "<td>" + "outgoing " + "<br>" + responseobjectarr[i].start_time + "</td>";
  136. dynamicTR = dynamicTR + "<td>" + uuidarr[i] + "</td>";
  137. dynamicTR = dynamicTR + "<td>" + "<a><button class='btn btn-sm btn-call'> Click To Call</button></a>" + "</td>";
  138. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].destination + "</td>";
  139. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].business_call_type + "</td>";
  140. recordingurl = responseobjectarr[i].call_recording;
  141. if (recordingurl == "") {
  142. dynamicTR = dynamicTR + "<td>" + "Missed Call" + "</td>";
  143. }
  144. else {
  145. if (responseobjectarr[i].call_duration < 60) {
  146. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].call_duration + " seconds" + "</td>";
  147. }
  148. else {
  149. var rem = responseobjectarr[i].call_duration % 60;
  150. var quo = responseobjectarr[i].call_duration / 60;
  151. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].call_duration + quo + " minutes" + rem + " seconds" + "</td>";
  152. }
  153. }
  154. dynamicTR = dynamicTR + "<td>";
  155. if (recordingurl == "") {
  156. dynamicTR = dynamicTR + '<i class="fa fa - download" aria-hidden="true">';
  157. }
  158. else {
  159. dynamicTR = dynamicTR + '<a href="' + recordingurl + '"><button class= "btn"><i class="fa fa-download" aria-hidden="true"></i></button >';
  160. }
  161. dynamicTR = dynamicTR + "</td>";
  162. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].credits_deducted + "</td>";
  163. dynamicTR = dynamicTR + "</tr>";
  164. $("#logData tbody").append(dynamicTR);
  165. index++;
  166. count++;
  167. if (fromsearch == 0) {
  168. $("#prevbutton").prop('disabled', true);
  169. }
  170. if (i + 1 == responseobjectarr.length) {
  171. $("#nxtbutton").prop('disabled', true);
  172. }
  173. if (prevstatus == true) {
  174. fromsearch--;
  175. }
  176. else if (nxtstatus == true) {
  177. fromsearch++;
  178. }
  179. else {
  180. fromsearch++;
  181. }
  182. if (i == responseobjectarr.length - 1) {
  183. arrfromsearch.push(fromsearch);
  184. }
  185. else if (count == noofrows) {
  186. if (prevstatus == false) {
  187. arrfromsearch.push(fromsearch);
  188. }
  189. break;
  190. }
  191. }
  192. $('#logData').on('click', '.btn-call', function () {
  193. var currentRow = $(this).closest("tr");
  194. var currentphoneno = currentRow.find("td:eq(1)").html();
  195. var knowlarityno = currentRow.find("td:eq(3)").html();
  196. var callerid = "+91xxxxxxxxxx";
  197. Bizgaze.Apps.Communications.Ivr.Managers.IvrManager.Instance().Makeacall(knowlarityno, knowlarityno, currentphoneno, callerid).then(function (makecall) {
  198. alert(makecall);
  199. });
  200. });
  201. $('#spancount').text(2 * responseobjectarr.length);
  202. }
  203. function search() {
  204. $('#spancount').text("");
  205. url = [];
  206. $("#logData tbody").html(' ');
  207. index = 1;
  208. var fromdate;
  209. var fromtime;
  210. var todate;
  211. var totime;
  212. var tempfromdate = $('#fromDate').val();
  213. var temptodate = $('#toDate').val();
  214. var searchnumber = $('#txtsearchnumber').val();
  215. let count = 0;
  216. fromdate = tempfromdate.toString().split('T')[0];
  217. fromtime = tempfromdate.toString().split('T')[1];
  218. var fromdatetime = new Date(fromdate + " " + fromtime);
  219. todate = temptodate.toString().split('T')[0];
  220. totime = temptodate.toString().split('T')[1];
  221. var todatetime = new Date(todate + " " + totime);
  222. if (new Date(fromdatetime).getTime() > new Date(todatetime).getTime()) {
  223. bootbox.alert("From Date Must be less Than To Date");
  224. }
  225. else {
  226. if (nxtstatus == true) {
  227. arrtosearch.push(fromsearch);
  228. }
  229. for (var i = fromsearch; i < responseobjectarr.length; i++) {
  230. if (fromsearch == 0) {
  231. $("#prevbutton").prop('disabled', true);
  232. }
  233. if (i + 1 == responseobjectarr.length) {
  234. $("#nxtbutton").prop('disabled', true);
  235. }
  236. if (tempfromdate == "" && temptodate == "" && searchnumber == "") {
  237. loadinandout();
  238. break;
  239. }
  240. else if (tempfromdate == "" || temptodate == "") {
  241. if (searchnumber == "") {
  242. loadinandout();
  243. break;
  244. }
  245. else {
  246. if (count == 0 && prevstatus == false && nxtstatus == false) {
  247. arrfromsearch.push(fromsearch);
  248. }
  249. if (searchnumber == responseobjectarr[i].customer_number || responseobjectarr[i].customer_number.includes(searchnumber) || searchnumber == responseobjectarr[i].destination || responseobjectarr[i].destination.includes(searchnumber)) {
  250. let dynamicTR = "<tr>";
  251. dynamicTR = dynamicTR + "<td>" + "incoming " + "<br>" + responseobjectarr[i].start_time + "</td>";
  252. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].customer_number + "</td>";
  253. dynamicTR = dynamicTR + "<td>" + "<a><button class='btn btn-sm btn-call'> Click To Call </button></a>" + "</td>";
  254. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].destination + "</td>";
  255. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].business_call_type + "</td>";
  256. recordingurl = responseobjectarr[i].call_recording;
  257. if (recordingurl == "") {
  258. dynamicTR = dynamicTR + "<td>" + "Missed Call" + "</td>";
  259. }
  260. else {
  261. if (responseobjectarr[i].call_duration < 60) {
  262. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].call_duration + " seconds" + "</td>";
  263. }
  264. else {
  265. var rem = responseobjectarr[i].call_duration % 60;
  266. var quo = responseobjectarr[i].call_duration / 60;
  267. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].call_duration + quo + " minutes" + rem + " seconds" + "</td>";
  268. }
  269. }
  270. dynamicTR = dynamicTR + "<td>";
  271. recordingurl = responseobjectarr[i].call_recording;
  272. if (recordingurl == "") {
  273. dynamicTR = dynamicTR + '<i class="fa fa - download" aria-hidden="true">';
  274. }
  275. else {
  276. dynamicTR = dynamicTR + '<a href="' + recordingurl + '"><button class= "btn"><i class="fa fa-download" aria-hidden="true"></i></button >';
  277. }
  278. dynamicTR = dynamicTR + "</td>";
  279. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].credits_deducted + "</td>";
  280. dynamicTR = dynamicTR + "</tr>";
  281. $("#logData tbody").append(dynamicTR);
  282. index++;
  283. count++;
  284. }
  285. if (count == noofrows) {
  286. if (prevstatus == false) {
  287. arrfromsearch.push(fromsearch);
  288. }
  289. break;
  290. }
  291. if (searchnumber == uuidarr[i] || uuidarr[i].includes(searchnumber) || searchnumber == responseobjectarr[i].destination || responseobjectarr[i].destination.includes(searchnumber)) {
  292. let dynamicTR = "<tr>";
  293. dynamicTR = dynamicTR + "<td>" + "outgoing " + "<br>" + responseobjectarr[i].start_time + "</td>";
  294. dynamicTR = dynamicTR + "<td>" + uuidarr[i] + "</td>";
  295. dynamicTR = dynamicTR + "<td>" + "<a><button class='btn btn-sm btn-call'> Click To Call</button></a>" + "</td>";
  296. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].destination + "</td>";
  297. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].business_call_type + "</td>";
  298. recordingurl = responseobjectarr[i].call_recording;
  299. if (recordingurl == "") {
  300. dynamicTR = dynamicTR + "<td>" + "Missed Call" + "</td>";
  301. }
  302. else {
  303. if (responseobjectarr[i].call_duration < 60) {
  304. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].call_duration + " seconds" + "</td>";
  305. }
  306. else {
  307. var rem = responseobjectarr[i].call_duration % 60;
  308. var quo = responseobjectarr[i].call_duration / 60;
  309. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].call_duration + quo + " minutes" + rem + " seconds" + "</td>";
  310. }
  311. }
  312. dynamicTR = dynamicTR + "<td>";
  313. if (recordingurl == "") {
  314. dynamicTR = dynamicTR + '<i class="fa fa - download" aria-hidden="true">';
  315. }
  316. else {
  317. dynamicTR = dynamicTR + '<a href="' + recordingurl + '"><button class= "btn"><i class="fa fa-download" aria-hidden="true"></i></button >';
  318. }
  319. dynamicTR = dynamicTR + "</td>";
  320. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].credits_deducted + "</td>";
  321. dynamicTR = dynamicTR + "</tr>";
  322. $("#logData tbody").append(dynamicTR);
  323. index++;
  324. count++;
  325. }
  326. }
  327. if (prevstatus == true) {
  328. fromsearch--;
  329. }
  330. else if (nxtstatus == true) {
  331. fromsearch++;
  332. }
  333. else {
  334. fromsearch++;
  335. }
  336. if (i == responseobjectarr.length - 1) {
  337. arrfromsearch.push(fromsearch);
  338. }
  339. else if (count == noofrows) {
  340. if (prevstatus == false) {
  341. arrfromsearch.push(fromsearch);
  342. }
  343. break;
  344. }
  345. }
  346. else if (tempfromdate != "" || temptodate != "") {
  347. if (count == 0 && prevstatus == false && nxtstatus == false) {
  348. arrfromsearch.push(fromsearch);
  349. }
  350. if (searchnumber == "") {
  351. if (new Date(responseobjectarr[i].start_time).getTime() >= new Date(fromdatetime).getTime() && new Date(responseobjectarr[i].start_time).getTime() <= new Date(todatetime).getTime()) {
  352. let dynamicTR = "<tr>";
  353. dynamicTR = dynamicTR + "<td>" + "incoming " + "<br>" + responseobjectarr[i].start_time + "</td>";
  354. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].customer_number + "</td>";
  355. dynamicTR = dynamicTR + "<td>" + "<a><button class='btn btn-sm btn-call'> Click To Call </button></a>" + "</td>";
  356. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].destination + "</td>";
  357. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].business_call_type + "</td>";
  358. recordingurl = responseobjectarr[i].call_recording;
  359. if (recordingurl == "") {
  360. dynamicTR = dynamicTR + "<td>" + "Missed Call" + "</td>";
  361. }
  362. else {
  363. if (responseobjectarr[i].call_duration < 60) {
  364. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].call_duration + " seconds" + "</td>";
  365. }
  366. else {
  367. var rem = responseobjectarr[i].call_duration % 60;
  368. var quo = responseobjectarr[i].call_duration / 60;
  369. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].call_duration + quo + " minutes" + rem + " seconds" + "</td>";
  370. }
  371. }
  372. dynamicTR = dynamicTR + "<td>";
  373. recordingurl = responseobjectarr[i].call_recording;
  374. if (recordingurl == "") {
  375. dynamicTR = dynamicTR + '<i class="fa fa - download" aria-hidden="true">';
  376. }
  377. else {
  378. dynamicTR = dynamicTR + '<a href="' + recordingurl + '"><button class= "btn"><i class="fa fa-download" aria-hidden="true"></i></button >';
  379. }
  380. dynamicTR = dynamicTR + "</td>";
  381. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].credits_deducted + "</td>";
  382. dynamicTR = dynamicTR + "</tr>";
  383. $("#logData tbody").append(dynamicTR);
  384. index++;
  385. count++;
  386. }
  387. if (count == noofrows) {
  388. if (prevstatus == true) {
  389. arrfromsearch.pop();
  390. }
  391. else if (prevstatus == false) {
  392. arrfromsearch.push(fromsearch);
  393. }
  394. break;
  395. }
  396. if (new Date(responseobjectarr[i].start_time).getTime() >= new Date(fromdatetime).getTime() && new Date(responseobjectarr[i].start_time).getTime() <= new Date(todatetime).getTime()) {
  397. let dynamicTR = "<tr>";
  398. dynamicTR = dynamicTR + "<td>" + "outgoing " + "<br>" + responseobjectarr[i].start_time + "</td>";
  399. dynamicTR = dynamicTR + "<td>" + uuidarr[i] + "</td>";
  400. dynamicTR = dynamicTR + "<td>" + "<a ><button class='btn btn-sm btn-call'> Click To Call</button></a>" + "</td>";
  401. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].destination + "</td>";
  402. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].business_call_type + "</td>";
  403. recordingurl = responseobjectarr[i].call_recording;
  404. if (recordingurl == "") {
  405. dynamicTR = dynamicTR + "<td>" + "Missed Call" + "</td>";
  406. }
  407. else {
  408. if (responseobjectarr[i].call_duration < 60) {
  409. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].call_duration + " seconds" + "</td>";
  410. }
  411. else {
  412. var rem = responseobjectarr[i].call_duration % 60;
  413. var quo = responseobjectarr[i].call_duration / 60;
  414. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].call_duration + quo + " minutes" + rem + " seconds" + "</td>";
  415. }
  416. }
  417. dynamicTR = dynamicTR + "<td>";
  418. recordingurl = responseobjectarr[i].call_recording;
  419. if (recordingurl == "") {
  420. dynamicTR = dynamicTR + '<i class="fa fa - download" aria-hidden="true">';
  421. }
  422. else {
  423. dynamicTR = dynamicTR + '<a href="' + recordingurl + '"><button class= "btn"><i class="fa fa-download" aria-hidden="true"></i></button >';
  424. }
  425. dynamicTR = dynamicTR + "</td>";
  426. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].credits_deducted + "</td>";
  427. dynamicTR = dynamicTR + "</tr>";
  428. $("#logData tbody").append(dynamicTR);
  429. index++;
  430. count++;
  431. }
  432. if (prevstatus == true) {
  433. fromsearch--;
  434. }
  435. else if (nxtstatus == true) {
  436. fromsearch++;
  437. }
  438. else {
  439. fromsearch++;
  440. }
  441. if (i == responseobjectarr.length - 1) {
  442. arrfromsearch.push(fromsearch);
  443. }
  444. else if (count == noofrows) {
  445. if (prevstatus == false) {
  446. arrfromsearch.push(fromsearch);
  447. }
  448. break;
  449. }
  450. }
  451. else {
  452. if (new Date(responseobjectarr[i].start_time).getTime() >= new Date(fromdatetime).getTime() && new Date(responseobjectarr[i].start_time).getTime() <= new Date(todatetime).getTime()) {
  453. if (searchnumber == responseobjectarr[i].customer_number || responseobjectarr[i].customer_number.includes(searchnumber) || searchnumber == responseobjectarr[i].destination || responseobjectarr[i].destination.includes(searchnumber)) {
  454. let dynamicTR = "<tr>";
  455. dynamicTR = dynamicTR + "<td>" + "incoming " + "<br>" + responseobjectarr[i].start_time + "</td>";
  456. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].customer_number + "</td>";
  457. dynamicTR = dynamicTR + "<td>" + "<a><button class='btn btn-sm btn-call'> Click To Call </button></a>" + "</td>";
  458. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].destination + "</td>";
  459. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].business_call_type + "</td>";
  460. recordingurl = responseobjectarr[i].call_recording;
  461. if (recordingurl == "") {
  462. dynamicTR = dynamicTR + "<td>" + "Missed Call" + "</td>";
  463. }
  464. else {
  465. if (responseobjectarr[i].call_duration < 60) {
  466. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].call_duration + " seconds" + "</td>";
  467. }
  468. else {
  469. var rem = responseobjectarr[i].call_duration % 60;
  470. var quo = responseobjectarr[i].call_duration / 60;
  471. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].call_duration + quo + " minutes" + rem + " seconds" + "</td>";
  472. }
  473. }
  474. dynamicTR = dynamicTR + "<td>";
  475. recordingurl = responseobjectarr[i].call_recording;
  476. if (recordingurl == "") {
  477. dynamicTR = dynamicTR + '<i class="fa fa - download" aria-hidden="true">';
  478. }
  479. else {
  480. dynamicTR = dynamicTR + '<a href="' + recordingurl + '"><button class= "btn"><i class="fa fa-download" aria-hidden="true"></i></button >';
  481. }
  482. dynamicTR = dynamicTR + "</td>";
  483. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].credits_deducted + "</td>";
  484. dynamicTR = dynamicTR + "</tr>";
  485. $("#logData tbody").append(dynamicTR);
  486. index++;
  487. count++;
  488. }
  489. if (i == responseobjectarr.length - 1) {
  490. arrfromsearch.push(fromsearch);
  491. }
  492. else if (count == noofrows) {
  493. if (prevstatus == false) {
  494. arrfromsearch.push(fromsearch);
  495. }
  496. break;
  497. }
  498. if (searchnumber == uuidarr[i] || uuidarr[i].includes(searchnumber) || searchnumber == responseobjectarr[i].destination || responseobjectarr[i].destination.includes(searchnumber)) {
  499. let dynamicTR = "<tr>";
  500. dynamicTR = dynamicTR + "<td>" + "outgoing " + "<br>" + responseobjectarr[i].start_time + "</td>";
  501. dynamicTR = dynamicTR + "<td>" + uuidarr[i] + "</td>";
  502. dynamicTR = dynamicTR + "<td>" + "<a href='" + recordingurl + "'><button class='btn btn-sm btn-call'> Click To Call</button></a>" + "</td>";
  503. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].destination + "</td>";
  504. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].business_call_type + "</td>";
  505. recordingurl = responseobjectarr[i].call_recording;
  506. if (recordingurl == "") {
  507. dynamicTR = dynamicTR + "<td>" + "Missed Call" + "</td>";
  508. }
  509. else {
  510. if (responseobjectarr[i].call_duration < 60) {
  511. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].call_duration + " seconds" + "</td>";
  512. }
  513. else {
  514. var rem = responseobjectarr[i].call_duration % 60;
  515. var quo = responseobjectarr[i].call_duration / 60;
  516. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].call_duration + quo + " minutes" + rem + " seconds" + "</td>";
  517. }
  518. }
  519. dynamicTR = dynamicTR + "<td>";
  520. recordingurl = responseobjectarr[i].call_recording;
  521. if (recordingurl == "") {
  522. dynamicTR = dynamicTR + '<i class="fa fa - download" aria-hidden="true">';
  523. }
  524. else {
  525. dynamicTR = dynamicTR + '<a href="' + recordingurl + '"><button class= "btn"><i class="fa fa-download" aria-hidden="true"></i></button >';
  526. }
  527. dynamicTR = dynamicTR + "</td>";
  528. dynamicTR = dynamicTR + "<td>" + responseobjectarr[i].credits_deducted + "</td>";
  529. dynamicTR = dynamicTR + "</tr>";
  530. $("#logData tbody").append(dynamicTR);
  531. index++;
  532. count++;
  533. }
  534. if (prevstatus == true) {
  535. fromsearch--;
  536. }
  537. else if (nxtstatus == true) {
  538. fromsearch++;
  539. }
  540. else {
  541. fromsearch++;
  542. }
  543. if (i == responseobjectarr.length - 1) {
  544. arrfromsearch.push(fromsearch);
  545. }
  546. else if (count == noofrows) {
  547. if (prevstatus == false) {
  548. arrfromsearch.push(fromsearch);
  549. }
  550. break;
  551. }
  552. }
  553. }
  554. }
  555. $('#getcount').text(index - 1);
  556. }
  557. $('#logData').on('click', '.btn-call', function () {
  558. var currentRow = $(this).closest("tr");
  559. var currentphoneno = currentRow.find("td:eq(1)").html();
  560. var knowlarityno = currentRow.find("td:eq(3)").html();
  561. var callerid = "+91xxxxxxxxxx";
  562. Bizgaze.Apps.Communications.Ivr.Managers.IvrManager.Instance().Makeacall(knowlarityno, knowlarityno, currentphoneno, callerid).then(function (makecall) {
  563. alert(makecall);
  564. });
  565. });
  566. }
  567. }
  568. $('#search').click(function () {
  569. $("#nxtbutton").prop('disabled', false);
  570. $("#prevbutton").prop('disabled', false);
  571. arrfromsearchlength = 0;
  572. fromsearch = 0;
  573. refindex = 0;
  574. prevstatus = false;
  575. nxtstatus = false;
  576. arrfromsearch = [];
  577. arrtosearch = [];
  578. count = 0;
  579. search();
  580. });
  581. $("#txtsearchnumber").keydown(function () {
  582. $("#nxtbutton").prop('disabled', false);
  583. $("#prevbutton").prop('disabled', false);
  584. arrfromsearchlength = 0;
  585. fromsearch = 0;
  586. refindex = 0;
  587. prevstatus = false;
  588. nxtstatus = false;
  589. arrfromsearch = [];
  590. arrtosearch = [];
  591. search();
  592. });
  593. $("#txtsearchnumber").keyup(function () {
  594. $("#nxtbutton").prop('disabled', false);
  595. $("#prevbutton").prop('disabled', false);
  596. arrfromsearchlength = 0;
  597. fromsearch = 0;
  598. refindex = 0;
  599. prevstatus = false;
  600. nxtstatus = false;
  601. arrfromsearch = [];
  602. arrtosearch = [];
  603. search();
  604. });
  605. $('#prevbutton').click(function () {
  606. $("#nxtbutton").prop('disabled', false);
  607. if (refindex != 0) {
  608. arrfromsearchlength--;
  609. }
  610. nxtstatus = false;
  611. prevstatus = true;
  612. var tempfromdate = $('#fromDate').val();
  613. var temptodate = $('#toDate').val();
  614. var searchnumber = $('#txtsearchnumber').val();
  615. if (tempfromdate == "" && temptodate == "" && searchnumber == "") {
  616. if (refindex == 0) {
  617. $("#prevbutton").prop('disabled', true);
  618. }
  619. else if (refindex != 0) {
  620. refindex = refindex - 1;
  621. arrfromsearch.pop();
  622. fromsearch = arrfromsearch[arrfromsearch.length - 2];
  623. loadinandout();
  624. }
  625. }
  626. else if (tempfromdate == "" || temptodate == "") {
  627. if (searchnumber == "") {
  628. if (refindex == 0) {
  629. $("#prevbutton").prop('disabled', true);
  630. fromsearch = 0;
  631. loadinandout();
  632. }
  633. else if (refindex != 0) {
  634. refindex = refindex - 1;
  635. arrfromsearch.pop();
  636. fromsearch = arrfromsearch[arrfromsearch.length - 2];
  637. loadinandout();
  638. }
  639. }
  640. else {
  641. if (refindex != 0) {
  642. refindex = refindex - 1;
  643. arrfromsearch.pop();
  644. fromsearch = arrfromsearch[arrfromsearch.length - 2];
  645. search();
  646. }
  647. }
  648. }
  649. else {
  650. if (refindex != 0) {
  651. refindex = refindex - 1;
  652. arrfromsearch.pop();
  653. fromsearch = arrfromsearch[arrfromsearch.length - 2];
  654. search();
  655. }
  656. }
  657. });
  658. $('#nxtbutton').click(function () {
  659. $("#prevbutton").prop('disabled', false);
  660. count = 0;
  661. if (fromsearch < responseobjectarr.length) {
  662. $("#nxtbutton").prop('disabled', false);
  663. arrfromsearchlength++;
  664. prevstatus = false;
  665. nxtstatus = true;
  666. var tempfromdate = $('#fromDate').val();
  667. var temptodate = $('#toDate').val();
  668. var searchnumber = $('#txtsearchnumber').val();
  669. if (tempfromdate == "" && temptodate == "" && searchnumber == "") {
  670. refindex += 1;
  671. if (arrtosearch.length == 0) {
  672. fromsearch = fromsearch;
  673. }
  674. else {
  675. fromsearch = arrfromsearch[arrfromsearch.length - 1];
  676. }
  677. loadinandout();
  678. }
  679. else if (tempfromdate == "" || temptodate == "") {
  680. if (searchnumber == "") {
  681. if (arrtosearch.length == 0) {
  682. fromsearch = fromsearch;
  683. }
  684. else {
  685. fromsearch = arrfromsearch[arrfromsearch.length - 1];
  686. }
  687. }
  688. else {
  689. refindex += 1;
  690. if (arrtosearch.length == 0) {
  691. fromsearch = fromsearch;
  692. }
  693. else {
  694. fromsearch = arrfromsearch[arrfromsearch.length - 1];
  695. }
  696. search();
  697. }
  698. }
  699. else {
  700. refindex += 1;
  701. if (arrtosearch.length == 0) {
  702. fromsearch = fromsearch;
  703. search();
  704. }
  705. else {
  706. fromsearch = arrfromsearch[arrfromsearch.length - 1];
  707. search();
  708. }
  709. }
  710. }
  711. else {
  712. $("#nxtbutton").prop('disabled', true);
  713. }
  714. });
  715. });
  716. }
  717. load(id, containerid, callback) {
  718. }
  719. static Instance() {
  720. if (this.instance === undefined) {
  721. this.instance = new Ivr();
  722. }
  723. return this.instance;
  724. }
  725. }
  726. Components.Ivr = Ivr;
  727. })(Components = Ivr_1.Components || (Ivr_1.Components = {}));
  728. })(Ivr = Communications.Ivr || (Communications.Ivr = {}));
  729. })(Communications = Apps.Communications || (Apps.Communications = {}));
  730. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  731. })(Bizgaze || (Bizgaze = {}));