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.

executedactions.widget.js 30KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425
  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 Unibase;
  11. (function (Unibase) {
  12. let Platform;
  13. (function (Platform) {
  14. let Automation;
  15. (function (Automation) {
  16. let Components;
  17. (function (Components) {
  18. class ExecutedActions extends Platform.Core.BaseComponent {
  19. constructor() {
  20. super(...arguments);
  21. this.page_index = 0;
  22. this.page_size = 10;
  23. this.count = 0;
  24. }
  25. cssFiles() {
  26. return [];
  27. }
  28. jsFiles() {
  29. return ["platform/automation/managers/rulemanager.js", "platform/automation/requests/executedaction.js", "apps/communications/managers/sms/smsmanager.js", "libs/jquery/pagination/jquery.pagination.js"];
  30. }
  31. html(id, containerid) {
  32. let html = `<form id="frmUnibase_ActionsData" data-validate="parsley" data-isdynamic="false">
  33. <div class="card bg-light">
  34. <div class="b-b bg-white card-header header">
  35. <span class="pull-right">
  36. <a class="btn_actionsdata_close pull-right" href="javascript:;">
  37. <i class="fa fa-close"></i>
  38. </a>
  39. </span>
  40. </div>
  41. <div class="card-body scrollable" style="overflow-y: scroll;">
  42. <div class="row">
  43. <table class="table">
  44. <thead>
  45. <tr id="Reminders_Row" class="bg-primary">
  46. <th>S.No</th>
  47. <th>Recipient</th>
  48. <th>Subject</th>
  49. </tr>
  50. </thead>
  51. <tbody class="ActionsDatalist_body"></tbody>
  52. </table>
  53. </div>
  54. </div>
  55. </div>
  56. </form>`;
  57. return html;
  58. }
  59. load(id, containerid, callback) {
  60. $(".btn_actionsdata_close").click(function () {
  61. $('#' + containerid).modal('hide');
  62. $('#' + containerid).remove();
  63. });
  64. }
  65. LoadFunctions() {
  66. $("#date_FromDate").daterangepicker({
  67. autoUpdateInput: true,
  68. timePicker: false,
  69. timePicker24Hour: false,
  70. locale: {
  71. format: 'DD/MM/YYYY',
  72. },
  73. singleDatePicker: true,
  74. showDropdowns: true,
  75. minYear: 1901,
  76. maxDate: new Date(2050, 11, 31)
  77. });
  78. $("#date_ToDate").daterangepicker({
  79. autoUpdateInput: false,
  80. timePicker: false,
  81. timePicker24Hour: false,
  82. locale: {
  83. format: 'DD/MM/YYYY',
  84. },
  85. singleDatePicker: true,
  86. showDropdowns: true,
  87. minYear: 1901,
  88. maxDate: new Date(2050, 11, 31)
  89. });
  90. $('#date_FromDate').on('apply.daterangepicker', function (ev, picker) {
  91. $('#div_FromDate').addClass('floating-label-form-group-with-value');
  92. });
  93. $('#date_ToDate').on('apply.daterangepicker', function (ev, picker) {
  94. $('#div_ToDate').addClass('floating-label-form-group-with-value');
  95. });
  96. $("#Apply_Conditions").click(function () {
  97. $(".ExecutedActionslist").html("");
  98. let obj = new Unibase.Platform.Automation.Requests.ExecutedAction();
  99. let FromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime($("#date_FromDate").val());
  100. let From_Date = new Date(FromDate);
  101. let ToDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime($("#date_ToDate").val());
  102. let To_Date = new Date(ToDate);
  103. let zeroactions = $('#chkZeroActions').is(':checked');
  104. let ActionName = $("#txtAutoComplete_Actions option:selected").text();
  105. Unibase.Platform.Automation.Components.ExecutedActions.Instance().page_index = 0;
  106. obj.StartDate = From_Date;
  107. obj.EndDate = To_Date;
  108. if (ActionName != "Select") {
  109. obj.ActionTypeName = ActionName;
  110. }
  111. obj.ZeroActions = zeroactions;
  112. Unibase.Platform.Automation.Components.ExecutedActions.Instance().GetExecutedActions(obj);
  113. });
  114. }
  115. init(containerid) {
  116. this.render(containerid).then(function () {
  117. Unibase.Platform.Automation.Components.ExecutedActions.Instance().LoadFunctions();
  118. Unibase.Platform.Automation.Components.ExecutedActions.Instance().loadJsFiles();
  119. });
  120. }
  121. loadJsFiles() {
  122. var jsfiles = Unibase.Platform.Automation.Components.ExecutedActions.Instance().jsFiles();
  123. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(jsfiles, function () {
  124. Unibase.Platform.Automation.Components.ExecutedActions.Instance().LoadActions();
  125. let obj = new Unibase.Platform.Automation.Requests.ExecutedAction();
  126. var date = new Date();
  127. let fromdate = Unibase.Platform.Helpers.DateTimeHelper.Instance().serverDateformat(date);
  128. let todate = Unibase.Platform.Helpers.DateTimeHelper.Instance().serverDateformat(date) + " 23:59";
  129. $("#date_FromDate").val(fromdate);
  130. $("#date_ToDate").val(todate);
  131. let from_date = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime($("#date_FromDate").val());
  132. let to_date = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime($("#date_ToDate").val());
  133. let From_Date = new Date(from_date);
  134. let To_Date = new Date(to_date);
  135. obj.StartDate = From_Date;
  136. obj.EndDate = To_Date;
  137. obj.ActionTypeName = "";
  138. obj.ZeroActions = false;
  139. Unibase.Platform.Automation.Components.ExecutedActions.Instance().GetExecutedActions(obj);
  140. });
  141. }
  142. render(containerid) {
  143. return __awaiter(this, void 0, void 0, function* () {
  144. $("." + containerid).empty();
  145. let html = `<form id="frmUnibase_ExecutedActions" data-validate="parsley" data-isdynamic="false">
  146. <div class="card bg-light">
  147. <div class="b-b bg-white card-header">
  148. <strong class="text-dark title" id="">Executed Actions</strong>
  149. <span class="badge badge-light badge-pill badge-outline span_executedactions_count">0</span>
  150. <span class="pull-right" id="executedactions_angle">
  151. <a class="btn_executedactions_angle" href="javascript:;" onclick="Unibase.Platform.Automation.Components.ExecutedActions.Instance().ToggleExecutedActions()">
  152. <i class="fa fa-angle-down"></i>
  153. <i class="fa fa-angle-up hidden"></i>
  154. </a>
  155. </span>
  156. </div>
  157. <div class="card-body Conditions hidden">
  158. <div class="row">
  159. <div class="col-sm-3">
  160. <div class="floating-label-form-group" id="div_FromDate">
  161. <label for="lbl" id="lbl_FromDate">FromDate</label>
  162. <div class="input-group">
  163. <input type="text" id="date_FromDate" class="form-control type-control datepicker-input hasDatepicker value-control floating-label-control" placeholder="FromDate" data-placeholder="dd/mm/yyyy" data-label="FromDate">
  164. <span class="input-group-addon mt-10"><i class="fa fa-calendar"></i></span>
  165. <input type="hidden" id="hf_FromDate" />
  166. </div>
  167. </div>
  168. </div>
  169. <div class="col-sm-3">
  170. <div class="floating-label-form-group" id="div_ToDate">
  171. <label for="lbl" id="lbl_ToDate">ToDate</label>
  172. <div class="input-group">
  173. <input type="text" id="date_ToDate" class="form-control type-control datepicker-input hasDatepicker value-control floating-label-control" placeholder="ToDate" data-placeholder="dd/mm/yyyy" data-label="ToDate">
  174. <span class="input-group-addon mt-10"><i class="fa fa-calendar"></i></span>
  175. <input type="hidden" id="hf_ToDate" />
  176. </div>
  177. </div>
  178. </div>
  179. <div class="col-sm-2">
  180. <div class="input-group mt-30">
  181. <select id="txtAutoComplete_Actions" class="form-control text-control" style="width:100%;" placeholder="User" data-placeholder="User" data-label="" data-istagselect="true"></select>
  182. <input type="hidden" id="hf_Autocomplete_Actions" class="form-control value-control" data-isdynamic="true" />
  183. </div>
  184. </div>
  185. <div class="col-sm-2">
  186. <div class="custom-control custom-checkbox divEnablePieces checkbox-primary mt-40">
  187. <input type="checkbox" class="custom-control-input" id="chkZeroActions">
  188. <label class="custom-control-label" for="chkZeroActions">Zero Actions</label>&nbsp
  189. </div>
  190. </div>
  191. <div class="col-sm-2">
  192. <button type="button" id="Apply_Conditions" class="btn btn-success mt-30">Apply</button>
  193. </div>
  194. </div>
  195. </div>
  196. <div class="card-body scrollable" style="overflow-y: scroll;">
  197. <div class="row">
  198. <table class="table">
  199. <thead>
  200. <tr class="bg-primary">
  201. <th>Action Name</th>
  202. <th>Action Type</th>
  203. <th>Start Date</th>
  204. <th>End date</th>
  205. <th>Count</th>
  206. </tr>
  207. </thead>
  208. <tbody class="ExecutedActionslist_body"></tbody>
  209. </table>
  210. </div>
  211. </div>
  212. <div class="bg-white card-footer footer" id="ExecutedActionsFooter">
  213. <div class="Div_pagination row col-sm-12 mt-15">
  214. <div class="col-sm-4" id="list_count">
  215. <span id="TotalRecords" class="text-muted">Total : <span id="lblItemTotalRecords" class="lblItemTotalRecords mr-30"></span></span>
  216. </div>
  217. <div class="col-sm-8">
  218. <div id="divpagination" class="pagination custom-pagination pagination-rounded pull-right"></div>
  219. </div>
  220. </div>
  221. </div>
  222. </div>
  223. </form>`;
  224. return yield $("." + containerid).append(html);
  225. });
  226. }
  227. ToggleExecutedActions() {
  228. $("#frmUnibase_ExecutedActions").find(".fa-angle-down").toggleClass("hidden");
  229. $("#frmUnibase_ExecutedActions").find(".fa-angle-up").toggleClass("hidden");
  230. $("#frmUnibase_ExecutedActions").find(".Conditions").toggleClass("hidden");
  231. }
  232. GetExecutedActionsCount() {
  233. Unibase.Platform.Automation.Managers.RuleManager.Instance().ExecutedActions().then(function (response) {
  234. if (response.result.length > 0) {
  235. $(".span_executedactions_count").text(response.result.length);
  236. }
  237. });
  238. }
  239. GetExecutedActions(obj) {
  240. let pageindex = Unibase.Platform.Automation.Components.ExecutedActions.Instance().page_index;
  241. let pagesize = Unibase.Platform.Automation.Components.ExecutedActions.Instance().page_size;
  242. obj.PageIndex = Unibase.Platform.Automation.Components.ExecutedActions.Instance().page_index;
  243. obj.PageRows = Unibase.Platform.Automation.Components.ExecutedActions.Instance().page_size;
  244. var MultiSelectList = pageindex;
  245. if (pageindex < 1) {
  246. MultiSelectList = 0;
  247. }
  248. else {
  249. MultiSelectList = pageindex;
  250. }
  251. Unibase.Platform.Automation.Managers.RuleManager.Instance().ExecutedActionsList(obj).then(function (response) {
  252. if (response.result.length > 0) {
  253. $('.ExecutedActionslist_body').html('<tr class="ExecutedActionslist hidden"></tr>');
  254. var Count = Unibase.Platform.Automation.Components.ExecutedActions.Instance().count;
  255. var html = "";
  256. var ExecutedActionss = response.result;
  257. for (var i = 0; i < ExecutedActionss.length; i++) {
  258. var ExecutedActions = ExecutedActionss[i];
  259. var ExeActionName = ExecutedActions.RuleActionName;
  260. var ActionType = ExecutedActions.ActionName;
  261. var StartDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().FormatDateTimeWithoutSeconds(ExecutedActions.StartDate);
  262. var EndDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().FormatDateTimeWithoutSeconds(ExecutedActions.EndDate);
  263. var actionname = ExecutedActions.ActionName.replace("Send", "");
  264. html = '<tr><td>' + ExeActionName + '</td><td>' + ActionType + '</td><td>' + StartDate + '</td><td>' + EndDate + '</td><td><a href="javascript:;" onclick="Unibase.Platform.Automation.Components.ExecutedActions.Instance().LoadPopoupDetails(\'' + ExecutedActions.ActionName + '\',\'' + ExecutedActions.ExecutedActionId + '\');">' + ExecutedActions.ReminderCount + " " + actionname + 's</a></td></tr>';
  265. $(".ExecutedActionslist:last").before(html);
  266. }
  267. if (ExecutedActionss.length <= 0) {
  268. $(".Div_pagination").hide();
  269. }
  270. else {
  271. $(".Div_pagination").show();
  272. var totalCount = ExecutedActionss[0].TotalRecords;
  273. var startingValue = 0;
  274. var _count = 0;
  275. var t = (Unibase.Platform.Automation.Components.ExecutedActions.Instance().page_index + 1) * 10;
  276. if (totalCount > 0) {
  277. startingValue = 1;
  278. _count = totalCount;
  279. }
  280. if (totalCount > t)
  281. _count = t;
  282. if (Unibase.Platform.Automation.Components.ExecutedActions.Instance().page_index > 0) {
  283. startingValue += t - 10;
  284. }
  285. var result = startingValue + " - " + _count + " of " + totalCount;
  286. $(".Div_pagination").show();
  287. $(".lblItemTotalRecords").text(result);
  288. var pageEle = $(".Div_pagination").find('#divpagination');
  289. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile('libs/jquery/pagination/jquery.pagination.js', function () {
  290. var ele;
  291. ele = $(".Div_pagination").find('#divpagination');
  292. ele.pagination(ExecutedActionss[0].TotalRecords, 10, {
  293. current_page: Unibase.Platform.Automation.Components.ExecutedActions.Instance().page_index,
  294. callback: function (page, component) {
  295. Unibase.Platform.Automation.Components.ExecutedActions.Instance().page_index = page;
  296. Unibase.Platform.Automation.Components.ExecutedActions.Instance().GetExecutedActions(obj);
  297. }
  298. });
  299. });
  300. }
  301. Unibase.Platform.Automation.Components.ExecutedActions.Instance().page_index = 0;
  302. $(".span_executedactions_count").text(ExecutedActionss[0].TotalRecords);
  303. }
  304. else {
  305. $(".ExecutedActionslist_body").html("No Records Found");
  306. $(".span_executedactions_count").text("0");
  307. }
  308. });
  309. }
  310. LoadPopoupDetails(type, id) {
  311. Unibase.Platform.Helpers.NavigationHelper.Instance().popup(id, "", Unibase.Platform.Automation.Components.ExecutedActions.Instance(), null, Platform.Helpers.Size.DockLeft);
  312. if (type == "Send Notification") {
  313. Unibase.Platform.Automation.Components.ExecutedActions.Instance().LoadReminderDetails(id);
  314. }
  315. else if (type == "Send Sms") {
  316. Unibase.Platform.Automation.Components.ExecutedActions.Instance().LoadSMSDetails(id);
  317. }
  318. else if (type == "Send Email") {
  319. Unibase.Platform.Automation.Components.ExecutedActions.Instance().LoadMailDetails(id);
  320. }
  321. else if (type == "Send Task") {
  322. Unibase.Platform.Automation.Components.ExecutedActions.Instance().LoadTaskDetails(id);
  323. }
  324. else {
  325. return false;
  326. }
  327. }
  328. LoadActions() {
  329. Unibase.Platform.Automation.Managers.RuleManager.Instance().getActions().then(function (response) {
  330. let cmbActions = document.getElementById('txtAutoComplete_Actions');
  331. $('#txtAutoComplete_Actions').empty();
  332. var defaultOpt1 = document.createElement("option");
  333. defaultOpt1.text = "Select";
  334. defaultOpt1.value = "";
  335. cmbActions.appendChild(defaultOpt1);
  336. for (let i = 0; i <= response.length - 1; i++) {
  337. var opt = document.createElement("option");
  338. opt.text = response[i].ActionName;
  339. opt.value = response[i].ActionId.toString();
  340. cmbActions.appendChild(opt);
  341. }
  342. });
  343. }
  344. LoadReminderDetails(id) {
  345. Unibase.Platform.Communications.Managers.ReminderManager.Instance().getRemindersWithType(id, false).then(function (response) {
  346. if (response.result.length > 0) {
  347. $('.ActionsDatalist_body').html('<tr class="ActionsDatalist_body hidden"></tr>');
  348. var html = "";
  349. var Reminders = response.result;
  350. for (var i = 0; i < Reminders.length; i++) {
  351. var Reminder = Reminders[i];
  352. var sno = i + 1;
  353. html = '<tr class="Notification-item"><td>' + sno + '</td><td>' + Reminder.ToUserName + '</td><td>' + Reminder.Message + '</td></tr>';
  354. $(".ActionsDatalist_body:last").before(html);
  355. }
  356. }
  357. });
  358. }
  359. LoadSMSDetails(id) {
  360. Unibase.Apps.Communications.Managers.SmsManager.Instance().getSmsByExecutedActionId(id).then(function (response) {
  361. if (response.result.length > 0) {
  362. var thhtml = "<th>Phone Number</th><th>Status</th><th class='hidden'>Delivery Report</th>";
  363. $("#Reminders_Row").append(thhtml);
  364. $('.ActionsDatalist_body').html('<tr class="ActionsDatalist_body hidden"></tr>');
  365. var html = "";
  366. var SmsResponse = response.result;
  367. for (var i = 0; i < SmsResponse.length; i++) {
  368. var Sms = SmsResponse[i];
  369. var sno = i + 1;
  370. html = '<tr class="Sms-item"><td>' + sno + '</td><td>' + Sms.ToUserName + '</td><td>' + Sms.SmsBody + '</td><td>' + Sms.ToPhoneNumber + '</td><td>' + Sms.RecipientStatus + '</td><td class="hidden">' + Sms.DeliveryReport + '</td></tr>';
  371. $(".ActionsDatalist_body:last").before(html);
  372. }
  373. }
  374. });
  375. }
  376. LoadMailDetails(id) {
  377. this.fileCacheHelper.loadJsFile("apps/communications/managers/mails/mailmanager.js", function () {
  378. Unibase.Apps.Communications.Managers.MailManager.Instance().getMailByExecutedActionId(id).then(function (response) {
  379. var html = " ";
  380. html = "<tr><th>S.No.</th><th>Recipient</th><th>Mail Address</th><th>Mail Subject</th></tr>";
  381. $(".Reminders-head").html(html);
  382. $(".Reminders-body").html('<tr class="Notification-item hidden"></tr>');
  383. var record = 0;
  384. for (var i = 0; i < response.result.length; i++) {
  385. var data = response.result[i];
  386. if (data.ToEmailAddress != null && data.ToEmailAddress != "" && data.ToEmailAddress != undefined) {
  387. var toemailaddress = data.ToEmailAddress.split(",");
  388. for (let c = 0; c < toemailaddress.length; c++) {
  389. record = record + 1;
  390. html = '<tr class="Notification-item"><td>' + record + '</td><td>' + toemailaddress[c] + '</td><td class="text-truncate w-200">' + data.MailBody + '</td></tr>';
  391. $(".ActionsDatalist_body:last").append(html);
  392. }
  393. }
  394. }
  395. });
  396. });
  397. }
  398. LoadTaskDetails(id) {
  399. Unibase.Platform.Communications.Managers.ReminderManager.Instance().getRemindersWithType(id, true).then(function (response) {
  400. if (response.result.length > 0) {
  401. $('.ActionsDatalist_body').html('<tr class="ActionsDatalist_body hidden"></tr>');
  402. var html = "";
  403. var Reminders = response.result;
  404. for (var i = 0; i < Reminders.length; i++) {
  405. var Reminder = Reminders[i];
  406. var sno = i + 1;
  407. html = '<tr class="Notification-item"><td>' + sno + '</td><td>' + Reminder.ToUserName + '</td><td>' + Reminder.Message + '</td></tr>';
  408. $(".ActionsDatalist_body:last").before(html);
  409. }
  410. }
  411. });
  412. }
  413. static Instance() {
  414. if (this.instance === undefined) {
  415. this.instance = new ExecutedActions();
  416. }
  417. return this.instance;
  418. }
  419. }
  420. Components.ExecutedActions = ExecutedActions;
  421. })(Components = Automation.Components || (Automation.Components = {}));
  422. })(Automation = Platform.Automation || (Platform.Automation = {}));
  423. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  424. })(Unibase || (Unibase = {}));