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.

notifications.js 30KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  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 Notifications extends Platform.Core.BaseComponent {
  19. constructor() {
  20. super(...arguments);
  21. this.InstalledAppId = 0;
  22. this.RuleId = 0;
  23. this.RuleActions = [];
  24. }
  25. cssFiles() {
  26. return [
  27. "libs/jquery-ui-slider-pips/jquery-ui-slider-pips.css",
  28. "libs/jquery-ui-slider-pips/Custom-slider-ui-pips.css",
  29. ];
  30. }
  31. jsFiles() {
  32. return [
  33. "libs/jquery-ui-slider-pips/jquery-ui-slider-pips.js",
  34. "/platform/automation/managers/rulemanager.js", "/platform/automation/enums/executeactionstatus.js", "/platform/automation/components/actions/actions.notification.js", "/platform/automation/components/notifications.contactselection.js", "/platform/automation/components/externalrecipients.js", "/platform/automation/requests/ruleaction.js", "/platform/automation/components/conditions.js", "platform/automation/managers/notificationgroupmanager.js"
  35. ];
  36. }
  37. html(id, containerid) {
  38. var instance = this;
  39. instance.InstalledAppId = instance.appSettings.InstalledAppId;
  40. let html = `<header class="bg-white shadow-bottom modal-header px-2" id="notificationRuleHeader">
  41. <div class="text-dark text-left py-2 font-weight-600"><span class="portletName font-16">Notifications</span>
  42. </div>
  43. </header>
  44. <section data-simplebar class="simple-scroll-bar scrollable">
  45. <div class="clear" id="message">
  46. </div>
  47. <div class="tab-content row mt-n mt-0" id="tabs">
  48. <div class="tab-pane w-100 active" id="rules">
  49. <div id="div_rules" class="card">
  50. <input type="hidden" id="hf_NotificationGroupId" value="" />
  51. <div class="card-body py-1 px-4">
  52. <div class="ruleslist-div text-body">
  53. </div>
  54. </div>
  55. </div>
  56. </div>
  57. </div>
  58. </div>
  59. </section>
  60. <footer class="bg-white footer ft_notifications">
  61. <a href="javascript:;" id="btn_notificationsClose_` + containerid +
  62. `" class="btn btn-light btn-sm mr-auto btn-close">Close</a>
  63. </footer>`;
  64. return html;
  65. }
  66. load(id, containerid, callback) {
  67. var instance = this;
  68. instance.loadNotificationRules();
  69. }
  70. init() {
  71. var instance = this;
  72. this.navigationHelper.popup(0, "", instance, null, Platform.Helpers.Size.Large);
  73. }
  74. loadNotificationRules() {
  75. var instance = this;
  76. Unibase.Platform.Automation.Managers.NotificationGroupManager.Instance().GetNotificationGroups().then(function (response) {
  77. var data = response;
  78. var html = "<center class='mt-3 ml-5 mb-3' style='font-size:20px'>No Data</center>";
  79. var data = response;
  80. if (data.length > 0) {
  81. Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleActionsByInstalledApp(instance.InstalledAppId).then(function (responsedata) {
  82. Unibase.Platform.Automation.Components.Notifications.Instance().RuleActions = responsedata;
  83. });
  84. html = "";
  85. data = data.sort((a, b) => a.Index - b.Index);
  86. for (var i = 0; i < data.length; i++) {
  87. var NotificationGroupId = data[i].NotificationGroupId;
  88. var NotificationGroupName = data[i].NotificationGroupName;
  89. html += "<section class='no-border Role-panel clearfix notificationgroupid-" + NotificationGroupId + "' >" +
  90. "<header class='panel-heading border-dark ruleHeader'>" +
  91. "<div class='d-flex align-items-center w-100 border-bottom'><a class='list-group w-100' href='javascript:;' onclick='Unibase.Platform.Automation.Components.Notifications.Instance().loadRuleActions(" + NotificationGroupId + ")' class='panel-toggle text-muted sliderdiv2'><div class='d-flex align-items-center justify-content-between my-10 biz-highlight-bg-color'><span class='list-item-main-title'>" + NotificationGroupName + "</span>" + "<span><i class='fa fa-chevron-up d-none pull-right biz-highlight-bg-color' id='up_notificationgroupid_" + NotificationGroupId + "'></i><i class='fa fa-chevron-down pull-right' id='down_notificationgroupid_" + NotificationGroupId + "'></i></span></div></a></div></header>" + "<div id='panelId-" + NotificationGroupId + "' class='bg-white collapse'></div>" + "<div class='sliderdiv mr-10'>" + "</div>" + "</section>";
  92. }
  93. }
  94. $(".ruleslist-div").append(html);
  95. });
  96. }
  97. loadRuleActions(NotificationGroupId) {
  98. var collapsed = $("#panelId-" + NotificationGroupId).hasClass("collapse");
  99. if (!collapsed) {
  100. $("#panelId-" + NotificationGroupId).addClass("collapse");
  101. $(".notificationgroupid-" + NotificationGroupId).find("#down_notificationgroupid_" + NotificationGroupId).removeClass("d-none");
  102. $(".notificationgroupid-" + NotificationGroupId).find("#up_notificationgroupid_" + NotificationGroupId).addClass("d-none");
  103. }
  104. else {
  105. $(".notificationgroupid-" + NotificationGroupId).find("#up_notificationgroupid_" + NotificationGroupId).removeClass("d-none");
  106. $(".notificationgroupid-" + NotificationGroupId).find("#down_notificationgroupid_" + NotificationGroupId).addClass("d-none");
  107. $("#panelId-" + NotificationGroupId).removeClass("collapse");
  108. $(".notificationgroupid-" + NotificationGroupId).find(".sliderDetails").remove();
  109. }
  110. var html = "<center class='mt-3 ml-5 mb-3' style='font-size:15px'>No Data</center>";
  111. var data = Unibase.Platform.Automation.Components.Notifications.Instance().RuleActions.filter(x => x.NotificationGroupId == NotificationGroupId);
  112. if (data.length > 0) {
  113. html = "";
  114. for (var i = 0; i < data.length; i++) {
  115. var ruleName = data[i].RuleActionName;
  116. var actionType = data[i].ActionName;
  117. var ruleactionid = data[i].RuleActionId;
  118. var executestatus = data[i].ExecuteStatusId;
  119. var Bodyonclick = "onclick='Unibase.Platform.Automation.Components.Notifications.Instance().editMessageBody(" + ruleactionid + ")'";
  120. var Recipientonclick = "onclick='Unibase.Platform.Automation.Components.Notifications.Instance().EditRuleActions(" + ruleactionid + ")'";
  121. var styleclass = "";
  122. var isChecked;
  123. if (executestatus == 2) {
  124. isChecked = "checked";
  125. }
  126. else {
  127. isChecked = "";
  128. }
  129. if (actionType == "Stage Change" || actionType == "Api Integrator" || actionType == "Execute Query") {
  130. Bodyonclick = "", Recipientonclick = "";
  131. styleclass = "text-light";
  132. }
  133. html += "<div class='d-flex align-items-center text-dark mt-2 font-14 ruleaction-Row border-bottom' id='ruleaction_" + ruleactionid + "'><div class=' d-flex flex-row align-items-center " + ruleactionid + " w-60 w-sm-80 p-0'><span class='ruleactionid -" + ruleactionid + " font-24 mx-2' data-actionType='" + actionType + "' data-tooltip='true' title='" + actionType + "'>";
  134. if (actionType.toLowerCase().includes('email')) {
  135. html += '<i class="la la-envelope"></i>';
  136. }
  137. else if (actionType.toLowerCase().includes('task')) {
  138. html += '<i class="la la-tasks"></i>';
  139. }
  140. else if (actionType.toLowerCase().includes('change')) {
  141. html += '<i class="la la-sync"></i>';
  142. }
  143. else if (actionType.toLowerCase().includes('send')) {
  144. html += '<i class="la la-share"></i>';
  145. }
  146. html += "</span><span>" + ruleName + "</span></div><div class='w-40 w-sm-20 d-flex justify-content-between'><div class='" + ruleactionid + " '><a class='nav-link no-caret btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p reportview-remove-none ml-1' " + Bodyonclick + " href='javascript:;' role='button' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false' data-tooltip='true' title='Edit Message'><span class='btn-icon-wrap'><i class='la la-pencil font-20 ellipsis-hover-1 " + styleclass + "'></i></span></a></div><div class='" + ruleactionid + "'><a class='nav-link no-caret btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover w-30p h-30p reportview-remove-none ml-1' " + Recipientonclick + " href='javascript:;' role='button' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false' data-tooltip='true' title='Edit Rule Action'><span class='btn-icon-wrap'><i class='la la-user font-20 ellipsis-hover-1 " + styleclass + "'></i></span></a></div><div class='" + ruleactionid + "' > <label class='switch mb-0' > <input id='chk_" + ruleactionid + "' type = 'checkbox' " + isChecked + " onChange = 'Unibase.Platform.Automation.Components.Notifications.Instance().ChangeRuleActionStatus(" + ruleactionid + ")' / > <span class='slider round' > </span></label > </div></div > </div><div class='edit_ruleactions' id='edit_ruleactions_" + ruleactionid + "'></div > ";
  147. }
  148. }
  149. $("#panelId-" + NotificationGroupId).html(html);
  150. }
  151. closeRuleActions(ruleactionid, response, Textdiv) {
  152. if (!Textdiv) {
  153. $("#SelectRoleDiv_" + ruleactionid).remove();
  154. }
  155. else {
  156. $("#MessageDiv_" + ruleactionid).remove();
  157. }
  158. let index = Unibase.Platform.Automation.Components.Notifications.Instance().RuleActions.findIndex(x => x.RuleActionId == ruleactionid);
  159. Unibase.Platform.Automation.Components.Notifications.Instance().RuleActions[index] = response;
  160. }
  161. closeActions(RuleActionId, textdiv) {
  162. $('#ruleaction_' + RuleActionId).addClass('border-bottom');
  163. ;
  164. if (textdiv) {
  165. $("#MessageDiv_" + RuleActionId).addClass('d-none');
  166. }
  167. else {
  168. $("#SelectRoleDiv_" + RuleActionId).addClass('d-none');
  169. }
  170. }
  171. editMessageBody(RuleActionId) {
  172. var data = Unibase.Platform.Automation.Components.Notifications.Instance().RuleActions.find(x => x.RuleActionId == RuleActionId);
  173. $("#ruleaction_" + RuleActionId).removeClass("border-bottom");
  174. var html = "<div class='bg-white border shadow card mt-2 text-dark w-100' id='MessageDiv_" + RuleActionId + "'><div class='card-body border-bottom p-2'><div class='MessageSelection_" + RuleActionId + " w-100'></div><div class='card-body border-0 p-0'><div class=''><div class=''><div id='div_Subject' class='floating-label-form-group'><span for='lbl_MessageSubject' id ='lbl_MessageSubject' class='ml-1'> Subject <span class='text-danger'> * </span></span><div class='input-group'><input type='text' id='txtNotifications_MessageSubject_" + RuleActionId + "' class='col-sm-9 form-control value-control required floating-label-control mr-20' data-placeholder='Enter Subject' placeholder='Subject *' data-label='Subject *' ><select id='ddl_SubjectTokens_" + RuleActionId + "' class='col-sm-3 form-control value-control'><option value='0'> Select Token </option></select></div></div></div></div><div class='mt-3 mb-2'><div class='w-100'><div id='div_Body' class='floating-label-form-group'><label for= 'lbl_MessageBody' id='lbl_MessageBody' class='ml-1'> Body <span class='text-danger'> * </span></label><div class='textarea input-group align-items-end'><textarea id='txtNotifications_MessageBody_" + RuleActionId + "' class='form-control value-control required floating-label-control w-50 notifi-autoSize h-100p mr-20' placeholder='Body * ' data-placeholder='Notification Body' data-label='Body *'></textarea><select id='ddl_BodyTokens_" + RuleActionId + "' class='col-sm-3 form-control value-control'><option value='0'> Select Token </option></select></div></div></div></div></div></div><div class='bg-white card-footer px-2 border-0 footer' id='CreateNotificationFooter'><a href = 'javascript:;' id='btnCloseNotification' class='btn btn-light btn-sm mr-auto' onclick='Unibase.Platform.Automation.Components.Notifications.Instance().closeActions(" + RuleActionId + ",true)'>Close</a> <a href = 'javascript:;' id='btnSaveNotification' class='btn btn-primary btn-sm' onclick = 'Unibase.Platform.Automation.Components.Notifications.Instance().SaveNotificationAction(" + RuleActionId + ",true)'> Save </a></div></div>";
  175. $("#edit_ruleactions_" + RuleActionId).html(html);
  176. var RuleProviderId = data.RuleProviderId;
  177. $('#txtNotifications_MessageSubject_' + RuleActionId).val(data.BString1);
  178. $("#txtNotifications_MessageBody_" + RuleActionId).val(data.BString2);
  179. $("#ddl_SubjectTokens_" + RuleActionId).change(function () {
  180. var textAreaTxt = $("#txtNotifications_MessageSubject_" + RuleActionId).val().toString();
  181. var txtToAdd = '{{' + $("#ddl_SubjectTokens_" + RuleActionId + " option:selected").text() + '}}';
  182. var firsttext = textAreaTxt.slice(0, Notifications.Instance().tokenposition);
  183. var lasttext = textAreaTxt.slice(Notifications.Instance().tokenposition, textAreaTxt.length);
  184. $("#txtNotifications_MessageSubject_" + RuleActionId).val(firsttext + txtToAdd + lasttext);
  185. $("#ddl_SubjectTokens_" + RuleActionId).val(0);
  186. });
  187. $("#ddl_BodyTokens_" + RuleActionId).change(function (event) {
  188. var textAreaTxt = $("#txtNotifications_MessageBody_" + RuleActionId).val().toString();
  189. var txtToAdd = '{{' + $("#ddl_BodyTokens_" + RuleActionId + " option:selected").text() + '}}';
  190. var firsttext = textAreaTxt.slice(0, Notifications.Instance().tokenposition);
  191. var lasttext = textAreaTxt.slice(Notifications.Instance().tokenposition, textAreaTxt.length);
  192. $("#txtNotifications_MessageBody_" + RuleActionId).val(firsttext + txtToAdd + lasttext);
  193. $("#ddl_BodyTokens_" + RuleActionId).val(0);
  194. });
  195. $("#txtNotifications_MessageBody_" + RuleActionId).focusout(function (event) {
  196. Notifications.Instance().tokenposition = event["target"]["selectionStart"];
  197. });
  198. $("#txtNotifications_MessageSubject_" + RuleActionId).focusout(function (event) {
  199. Notifications.Instance().tokenposition = event["target"]["selectionStart"];
  200. });
  201. if (RuleActionId != 0 && RuleProviderId != 0) {
  202. Unibase.Platform.Automation.Components.Notifications.Instance().LoadMsgSubjectTokens(RuleProviderId, RuleActionId);
  203. Unibase.Platform.Automation.Components.Notifications.Instance().LoadMsgBodyTokens(RuleProviderId, RuleActionId);
  204. }
  205. }
  206. LoadMsgSubjectTokens(ruleproviderid, ruleactionid) {
  207. Unibase.Platform.Automation.Managers.RuleManager.Instance().getTokens(ruleproviderid).then(function (response) {
  208. let cmbConditionProperties = document.getElementById('ddl_SubjectTokens_' + ruleactionid);
  209. $('#ddl_SubjectTokens_' + ruleactionid).empty();
  210. var defaultOpt1 = document.createElement("option");
  211. defaultOpt1.text = "Select Token";
  212. defaultOpt1.value = "0";
  213. cmbConditionProperties.appendChild(defaultOpt1);
  214. for (let i = 0; i <= response.length - 1; i++) {
  215. var opt = document.createElement("option");
  216. opt.text = response[i];
  217. opt.value = (i + 1).toString();
  218. cmbConditionProperties.appendChild(opt);
  219. }
  220. });
  221. }
  222. LoadExternalreports(ruleactionid) {
  223. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/analytics/reports';
  224. AutoCompleteHelper.getHelper().Create("#txtAutoComplete_ReportsExternal_" + ruleactionid, "#hf_Autocomplete_ReportsExternal", url, function (response) {
  225. var data = response;
  226. });
  227. }
  228. LoadMsgBodyTokens(ruleproviderid, ruleactionid) {
  229. Unibase.Platform.Automation.Managers.RuleManager.Instance().getTokens(ruleproviderid).then(function (response) {
  230. let cmbConditionProperties = document.getElementById('ddl_BodyTokens_' + ruleactionid);
  231. $('#ddl_BodyTokens_' + ruleactionid).empty();
  232. var defaultOpt1 = document.createElement("option");
  233. defaultOpt1.text = "Select Token";
  234. defaultOpt1.value = "0";
  235. cmbConditionProperties.appendChild(defaultOpt1);
  236. for (let i = 0; i <= response.length - 1; i++) {
  237. var opt = document.createElement("option");
  238. opt.text = response[i];
  239. opt.value = (i + 1).toString();
  240. cmbConditionProperties.appendChild(opt);
  241. }
  242. });
  243. }
  244. EditRuleActions(RuleActionId) {
  245. return __awaiter(this, void 0, void 0, function* () {
  246. var data = Unibase.Platform.Automation.Components.Notifications.Instance().RuleActions.find(x => x.RuleActionId == RuleActionId);
  247. var additionalhtml = '';
  248. if (data.actiontype == "Send Sms" || data.actiontype == "Send Email") {
  249. additionalhtml = Unibase.Platform.Automation.Components.Notifications.Instance().AdditionalHtml(RuleActionId);
  250. }
  251. $('#ruleaction_' + RuleActionId).removeClass('border-bottom');
  252. var html = "<div class='bg-white border shadow card mt-2 p-2 text-dark w-100' id='SelectRoleDiv_" + RuleActionId + "'><div class='card-header border-bottom py-2 px-0 mb-1'> Send To Contacts</div> <div class='card-body border-bottom p-0'><div class='ContactSelection_" + RuleActionId + " w-100 px-0'></div>" + additionalhtml + "</div><div class='bg-white border-0 card-footer footer px-0 pb-1' id='CreateNotificationFooter'><a href = 'javascript:;' id = 'btnCloseNotification' class='btn btn-light btn-sm mr-auto' onclick='Unibase.Platform.Automation.Components.Notifications.Instance().closeActions(" + RuleActionId + ",false)'>Close</a><a href = 'javascript:;' id = 'btnSaveNotification' class='btn btn-primary btn-sm' onclick='Unibase.Platform.Automation.Components.Notifications.Instance().SaveNotificationAction(" + RuleActionId + ",false)'> Save </a></div></div>";
  253. $("#edit_ruleactions_" + RuleActionId).html(html);
  254. var RuleProviderId = data.RuleProviderId;
  255. Unibase.Platform.Automation.Components.Notifications.Instance().BindData(RuleActionId).then(function () {
  256. Unibase.Platform.Automation.Components.NotificationsContactSelection.Instance().loadRecipients(RuleActionId).then(function () {
  257. Unibase.Platform.Automation.Components.NotificationsContactSelection.Instance().LoadContactColumns(RuleProviderId, RuleActionId).then(function () {
  258. Unibase.Platform.Automation.Components.NotificationsContactSelection.Instance().BindRecipients(RuleActionId);
  259. Unibase.Platform.Automation.Components.NotificationsContactSelection.Instance().CheckContactColumns(data.Users, RuleActionId);
  260. Unibase.Platform.Automation.Components.NotificationsContactSelection.Instance().CheckSecondaryContactColumns(data.SecondaryUsers, RuleActionId);
  261. });
  262. Unibase.Platform.Automation.Components.Notifications.Instance().LoadExternalreports(RuleActionId);
  263. });
  264. });
  265. });
  266. }
  267. AdditionalHtml(ruleactionid) {
  268. var html = "";
  269. return html;
  270. }
  271. BindData(ruleactionid) {
  272. return __awaiter(this, void 0, void 0, function* () {
  273. return $(".ContactSelection_" + ruleactionid).html(yield Unibase.Platform.Automation.Components.NotificationsContactSelection.Instance().html(ruleactionid));
  274. });
  275. }
  276. SaveNotificationAction(RuleActionId, istext) {
  277. var data = Unibase.Platform.Automation.Components.Notifications.Instance().RuleActions.find(x => x.RuleActionId == RuleActionId);
  278. let model = new Unibase.Platform.Automation.Requests.RuleAction();
  279. model.RuleActionId = data.RuleActionId;
  280. model.RuleActionName = data.RuleActionName;
  281. model.BString4 = data.BString4;
  282. model.BString1 = data.BString1;
  283. model.BString2 = data.BString2;
  284. model.BString3 = data.BString3;
  285. model.BString6 = data.BString6;
  286. model.BString7 = data.BString7;
  287. model.BString5 = data.BString5;
  288. model.ExternalReportId = data.ExternalReportId;
  289. model.ExternalReportColumnId = data.ExternalReportColumnId;
  290. model.ProviderColumnId = data.ProviderColumnId;
  291. model.ActionId = data.ActionId;
  292. model.RuleId = data.RuleId;
  293. model.Users = data.Users;
  294. model.SecondaryUsers = data.SecondaryUsers;
  295. model.String2 = data.String2;
  296. model.String6 = data.String6;
  297. model.String7 = data.String7;
  298. model.IsParent = data.IsParent;
  299. model.ResultActionId = data.ResultActionId;
  300. model.DelayTime = data.DelayTime;
  301. model.ParentActionId = data.ParentActionId;
  302. model.AutoApproved = $('#chk_' + RuleActionId).is(':checked');
  303. model.RecipientsData = data.RecipientsData;
  304. model.RowIndex = data.RowIndex;
  305. model.EventGroupId = data.EventGroupId;
  306. model.RuleEventId = data.RuleEventId;
  307. model.NotificationGroupId = data.NotificationGroupId;
  308. model.ExternalReportId = data.ExternalReportId;
  309. model.ExternalRecipients = data.ExternalRecipients;
  310. if (istext) {
  311. model.BString1 = $('#txtNotifications_MessageSubject_' + RuleActionId).val().toString();
  312. model.BString2 = $('#txtNotifications_MessageBody_' + RuleActionId).val().toString();
  313. data.BString1 = $('#txtNotifications_MessageSubject_' + RuleActionId).val().toString();
  314. data.BString2 = $('#txtNotifications_MessageBody_' + RuleActionId).val().toString();
  315. }
  316. else {
  317. let recipients = Unibase.Platform.Automation.Components.NotificationsContactSelection.Instance().GetRecipients(RuleActionId);
  318. let contactcolumns = Unibase.Platform.Automation.Components.NotificationsContactSelection.Instance().getContactColumns(RuleActionId);
  319. let secondarycontactcolumns = Unibase.Platform.Automation.Components.NotificationsContactSelection.Instance().getSecondaryContactColumns(RuleActionId);
  320. model.RecipientsData = recipients;
  321. model.Users = contactcolumns;
  322. model.SecondaryUsers = secondarycontactcolumns;
  323. data.RecipientsData = recipients;
  324. data.Users = contactcolumns;
  325. data.SecondaryUsers = secondarycontactcolumns;
  326. }
  327. Automation.Managers.RuleManager.Instance().saveRuleAction(model).then(function (response) {
  328. if (response.status == Unibase.Data.Status.Error) {
  329. MessageHelper.Instance().showError(response.message, "Validate_NotificationAction");
  330. }
  331. else {
  332. MessageHelper.Instance().showSuccess(response.message, "Validate_NotificationAction");
  333. Unibase.Platform.Automation.Components.Notifications.Instance().closeRuleActions(model.RuleActionId, data, istext);
  334. }
  335. });
  336. }
  337. ChangeRuleActionStatus(RuleActionId) {
  338. var status = Unibase.Platform.Automation.Enums.ExecuteActionStatus.Draft;
  339. if ($('#chk_' + RuleActionId).is(":checked")) {
  340. status = Unibase.Platform.Automation.Enums.ExecuteActionStatus.Approved;
  341. }
  342. Unibase.Platform.Automation.Managers.RuleManager.Instance().UpdateRuleActionStatus(RuleActionId, status).then(function (response) {
  343. if (response.status == Unibase.Data.Status.Success) {
  344. MessageHelper.Instance().showSuccess(response.message, " ");
  345. }
  346. });
  347. }
  348. static Instance() {
  349. if (this.instance == undefined) {
  350. this.instance = new Notifications();
  351. }
  352. return this.instance;
  353. }
  354. }
  355. Components.Notifications = Notifications;
  356. })(Components = Automation.Components || (Automation.Components = {}));
  357. })(Automation = Platform.Automation || (Platform.Automation = {}));
  358. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  359. })(Unibase || (Unibase = {}));