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.

actions.notification.js 54KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694
  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 SendNotification extends Platform.Core.BaseComponent {
  19. constructor() {
  20. super(...arguments);
  21. this.RowIndex = 0;
  22. this.RuleProviderId = 0;
  23. this.AutomationMode = 0;
  24. this.RuleInstance = Unibase.Platform.Automation.Components.Rule.Instance();
  25. }
  26. jsFiles() {
  27. var jsfiles = ["platform/automation/managers/rulemanager.js",
  28. "platform/automation/enums/automationmode.js",
  29. "platform/automation/components/conditions.js",
  30. "platform/automation/components/contactselection.js",
  31. "platform/automation/requests/ruleaction.js",
  32. "platform/automation/requests/rulecondition.js",
  33. "platform/forms/components/formviewer/formviewer.js",
  34. "libs/parsley/parsley.min.js",
  35. "libs/querybuilder/query-builder.min.js",
  36. "libs/querybuilder/query-builder.standalone.min.js",
  37. "libs/querybuilder/query-builder.standalone.js",
  38. "libs/querybuilder/sql-parser.min.js", "libs/notificationbuilder/notificationbuilder.js", "platform/apps/managers/stagemanager.js", "platform/automation/components/rulebuilder/rulebuilder.rule.js", "platform/automation/components/rulebuilder/notificationgroup.js", "platform/automation/managers/notificationgroupmanager.js"
  39. ];
  40. return jsfiles;
  41. }
  42. cssFiles() {
  43. return [];
  44. }
  45. html(id, containerid) {
  46. let html = `<form id="frmUnibase_SendNotification" data-validate="parsley" data-isdynamic="false">
  47. <div class="card bg-light">
  48. <div class="b-b bg-white card-header header">
  49. <strong class="text-dark title" id="Spn_SendNotification">Create Notification</strong>
  50. </div>
  51. <div class="card-body scrollable" style="overflow-y: scroll;">
  52. <div class="bg-white card" id="divSendNotification">
  53. <div id="Validate_NotificationAction" class="clear"></div>
  54. <div class="card-body">
  55. <div class="row">
  56. <div class="col-sm-12">
  57. <div class="floating-label-form-group">
  58. <label for="lbl_RuleActionName" id="lbl_RuleActionName">Action<span class="text-danger">*</span></label>
  59. <input type="text" id="txtNotifications_RuleActionName" class="form-control required value-control floating-label-control" data-isdynamic="false" placeholder="Action *" data-placeholder="Enter Action" data-label="Action *" />
  60. <input type="hidden" id="hf_RuleActionName" />
  61. <label for="Validation" id="lblValidation_RuleActionName"></label>
  62. </div>
  63. </div>
  64. </div>
  65. <div class="row">
  66. <div class="col-sm-12">
  67. <div id="div_Subject" class="floating-label-form-group">
  68. <label for="lbl_MessageSubject" id="lbl_MessageSubject">Subject<span class="text-danger"> *</span></label>
  69. <div class="input-group">
  70. <input type="text" id="txtNotifications_MessageSubject" class="col-sm-9 form-control value-control required floating-label-control" data-placeholder="Enter Subject" placeholder="Subject *" data-label="Subject *">
  71. <select id="ddl_SubjectTokens" class="col-sm-3 form-control value-control">
  72. <option value="0">Select Token</option>
  73. </select>
  74. </div>
  75. </div>
  76. </div>
  77. </div>
  78. <div class="row mt-3">
  79. <div class="col-sm-12">
  80. <div id="div_Body" class="floating-label-form-group">
  81. <label for="lbl_MessageBody" id="lbl_MessageBody">Body<span class="text-danger"> *</span></label>
  82. <div class="input-group">
  83. <!--- <input type="text" id="txtNotifications_MessageBody" class="col-sm-9 form-control value-control required floating-label-control" data-placeholder="Enter Body" placeholder="Body *" data-label="Body *">--->
  84. <textarea id="txtNotifications_MessageBody" class="form-control value-control required floating-label-control" style="width:50%;" placeholder="Body" data-placeholder="Notification Body" data-label="Body*"></textarea>
  85. <select id="ddl_BodyTokens" class="col-sm-3 form-control value-control">
  86. <option value="0">Select Token</option>
  87. </select>
  88. </div>
  89. </div>
  90. </div>
  91. </div>
  92. <div class="row">
  93. <div id="div_NotificationGrp" class="floating-label-form-group col-sm-6 floating-label-form-group-with-value">
  94. <label for="lbl_NotificationGrp" id="lbl_NotificationGroup">Notification Group<span class="text-danger"> *</span></label>
  95. <select id="ddl_NotificationGrp" class="form-control"><option value="0">Select Group</option></select>
  96. </div><div class="col-sm-6 createbtn_grp"><button class="badge badge-primary mt-30 ml-15" id="creategrp_btn">Create Group</button></div></div>
  97. <div class="row">
  98. <div class="ResultActions col-sm-6 hidden">
  99. <div id="div_ResultAction" class=" floating-label-form-group floating-label-form-group-with-value">
  100. <label for="lbl" id="lbl_ResultAction">Result Action</label>
  101. <select id="ddl_ResultAction" class="form-control">
  102. <option value="0">Select</option>
  103. </select>
  104. <label for="Validation" id="lblValidation_ResultAction"></label><input type="hidden" id="hfFormPropertyId" value="0" />
  105. </div>
  106. </div>
  107. </div>
  108. </div>
  109. </div>
  110. <div class="bg-white card Advanced_optionsdata">
  111. <div class="card-header"><i class="fa fa-angle-down arrowicon mr-1" onclick="Unibase.Platform.Automation.Components.SendNotification.Instance().Toggleadvancedoptions()"></i>Advanced Options</div>
  112. <div class="card-body Advanced_options hidden">
  113. <div class="row">
  114. <div class="col-sm-6">
  115. <div id="div_NotificationType" class=" floating-label-form-group floating-label-form-group-with-value">
  116. <label for="lbl" id="lbl_NotificationType">Notification Type</label>
  117. <select id="ddl_NotificationType" class="form-control">
  118. <option value="0">Select</option>
  119. <option value="1">List</option>
  120. <option value="2">Details</option>
  121. <option value="3">FileDownload</option>
  122. <option value="4">FilePreview</option>
  123. <option value="5">FolderPreview</option>
  124. <option value="6">Create</option>
  125. </select>
  126. <input type="hidden" id="hf_NotificationType" value="2" />
  127. </div>
  128. </div>
  129. <div class="col-sm-6">
  130. <div id="div_RefColumn" class=" floating-label-form-group floating-label-form-group-with-value">
  131. <label for="lbl" id="lbl_RefColumn">Ref Column</label>
  132. <select id="ddl_RefColumn" class="form-control"> </select>
  133. <input type="hidden" id="hf_RefColumn" value="" />
  134. </div>
  135. </div>
  136. </div>
  137. <div class="row hidden mt-2" id="createform_row">
  138. <div class="col-sm-6">
  139. <div id="div_createinstalledid" class=" floating-label-form-group floating-label-form-group-with-value">
  140. <label for="lbl">Installed App</label>
  141. <select id="ddl_createinstalledid" class="form-control text-control" style="width:100%;">
  142. </select>
  143. </div>
  144. </div>
  145. <div class="col-sm-6">
  146. <div id="div_Form" class=" floating-label-form-group floating-label-form-group-with-value">
  147. <label for="lbl" id="lbl_RefColumn">Create Form</label>
  148. <select id="ddl_Form" class="form-control"></select>
  149. <input type="hidden" id="hf_createForm" value=""/>
  150. </div>
  151. </div>
  152. </div>
  153. <div class="row">
  154. <div class="col-sm-6 floating-label-form-group floating-label-form-group-with-value">
  155. <label class="Message_type">Message Type</label>
  156. <select class="form-control" id="message_result">
  157. <option value="0">Success</option>
  158. <option value="1">Warning</option>
  159. <option value="2">Error</option>
  160. </select>
  161. </div>
  162. <div class="col-sm-6">
  163. <input type="checkbox" class="test_data mt-50" id="chkAutoApprovedNotification"checked>Perform this Action
  164. </div>
  165. </div>
  166. <!---parent options---->
  167. <div class="row">
  168. <div class="col-sm-6 mt-50">
  169. <input type="checkbox" class="isparent"><span class="ml-2">IsParent</span>
  170. </div>
  171. <div class="col-sm-6 floating-label-form-group-with-value Parentcolumns_info d-none">
  172. <label class="Parent_pkid ml-2 mt-2">Parent Pkid</label>
  173. <select class="form-control" id="parent_pkid">
  174. </select>
  175. </div>
  176. </div>
  177. <!---end---->
  178. </div>
  179. </div>
  180. <div class="bg-white card hidden" id="DocTypesDiv">
  181. <div class="card-header">DocTypes</div>
  182. <div class="card-body">
  183. <div class="SelectDocType col-sm-12">
  184. <!--For Mapping of datalists-->
  185. </div>
  186. </div>
  187. </div>
  188. <div class="bg-white card" id="ActionConditionsDivdata">
  189. <div class="card-header"><i class="fa fa-angle-down conditionicon mr-1" style="font-size:20px" onclick="Unibase.Platform.Automation.Components.SendNotification.Instance().ToggleNotificationConditions();"></i>Condition Details</div>
  190. <div class="card-body hidden" id="ActionConditionsDiv">
  191. <div class="ActionConditions">
  192. <!--For Action Conditions-->
  193. </div>
  194. </div>
  195. </div><div class="bg-white card" id="SelectstagesDiv">
  196. <div class="card-header">Stage Event</div>
  197. <div class="card-body">
  198. <div class="stages_drp row"><div class="col-sm-6"><label class="from_label">From Stage</label><select class="from_stage_notification form-control"></select></div><div class="col-sm-6"><label class="_label">To Stage</label><select class="to_stage_notification form-control"></select></div></div>
  199. </div></div>
  200. <div class="bg-white card" id="SelectRoleDiv">
  201. <div class="card-header">Send To Details</div>
  202. <div class="card-body">
  203. <div class="ContactSelection col-sm-12">
  204. <!--For ContactSelection page-->
  205. </div>
  206. </div>
  207. </div>
  208. <div class="bg-white card col-sm-3 hidden" id="btn_ExternalRecipients">
  209. <button type="button" class="btn btn-primary" onclick="Unibase.Platform.Automation.Components.SendNotification.Instance().ToggleExternalRecipients();">External Recipients</button>
  210. </div>
  211. <div class="bg-white card hidden" id="ExternalRecipientsDiv">
  212. <div class="card-header">External Recipients</div>
  213. <div class="card-body">
  214. <div class="ExternalRecipients">
  215. </div>
  216. </div>
  217. </div>
  218. </div>
  219. <div class="bg-white card-footer footer" id="CreateNotificationFooter">
  220. <a href="javascript:;" id="btnCloseNotification" class="btn btn-light btn-sm mr-auto "> Close</a>
  221. <a href="javascript:;" id="btnSaveNotification" class="btn btn-primary btn-sm"> Save</a>
  222. </div>
  223. </div>
  224. </form>`;
  225. return html;
  226. }
  227. load(id, containerid, callback) {
  228. return __awaiter(this, void 0, void 0, function* () {
  229. var instance = this;
  230. Unibase.Platform.Automation.Components.SendNotification.Instance().ActionId = instance.ActionId;
  231. Unibase.Platform.Automation.Components.SendNotification.Instance().RuleActionData = instance.RuleActionData;
  232. Unibase.Platform.Automation.Components.SendNotification.Instance().RowIndex = instance.RowIndex;
  233. Unibase.Platform.Automation.Components.SendNotification.Instance().AutomationMode = instance.AutomationMode;
  234. Unibase.Platform.Automation.Components.SendNotification.Instance().RuleProviderId = instance.RuleProviderId;
  235. Unibase.Platform.Automation.Components.SendNotification.Instance().ParentActionId = instance.ParentActionId;
  236. Unibase.Platform.Automation.Components.SendNotification.Instance().IsAutomationMode = instance.IsAutomationMode;
  237. yield Unibase.Platform.Automation.Components.NotificationGroup.Instance().LoadNotificationGroups();
  238. if (instance.AutomationMode == Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode) {
  239. eval('bizgaze_automation_flow_main.getcontainerid("' + containerid + '")');
  240. }
  241. if (instance.ParentActionId != 0) {
  242. yield Unibase.Platform.Automation.Components.ContactSelection.Instance().getResultActions(instance.ParentActionId);
  243. yield Unibase.Platform.Automation.Components.SendNotification.Instance().GetRuleActionInfo(Number(instance.ParentActionId));
  244. $('#ddl_NotificationGrp').prop("disabled", true);
  245. $('#creategrp_btn').addClass('d-none');
  246. }
  247. var _fileCacheHelper = Platform.Helpers.FileCacheHelper.Instance();
  248. yield _fileCacheHelper.loadJsFileAsync("platform/automation/components/contactselection.js", function () {
  249. jQuery(".ContactSelection").html(Unibase.Platform.Automation.Components.ContactSelection.Instance().init(instance.RuleProviderId));
  250. if (instance.RuleActionData.length != 0) {
  251. Unibase.Platform.Automation.Components.SendNotification.Instance().LoadNotificationData(instance.RuleActionData);
  252. }
  253. });
  254. yield _fileCacheHelper.loadJsFileAsync("platform/automation/components/externalrecipients.js", function () {
  255. jQuery(".ExternalRecipients").html(Unibase.Platform.Automation.Components.ExternalRecipients.Instance().init(instance.RuleProviderId));
  256. Unibase.Platform.Automation.Components.ExternalRecipients.Instance().load(instance.RuleProviderId);
  257. });
  258. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/apps/installedappautocomplete';
  259. AutoCompleteHelper.getHelper().Create("#ddl_createinstalledid", "#hf_Autocomplete_InstalledApp", url, function (response) {
  260. var data = response;
  261. });
  262. $('#creategrp_btn').click(function () {
  263. Unibase.Platform.Automation.Components.NotificationGroup.Instance().init(0, null, true);
  264. });
  265. $("#btnCloseNotification").click(function () {
  266. $('#' + containerid).modal('hide');
  267. $('#' + containerid).remove();
  268. if (Unibase.Platform.Automation.Components.SendNotification.Instance().AutomationMode == Unibase.Platform.Automation.Enums.AutomationMode.NormalMode) {
  269. if (Unibase.Platform.Automation.Components.SendNotification.Instance().AutomationMode) {
  270. if (Unibase.Platform.Automation.Components.SendNotification.Instance().IsAutomationMode) {
  271. Unibase.Platform.Automation.Components.Rule.Instance().ChangeAction(instance.RowIndex, id);
  272. }
  273. }
  274. }
  275. else {
  276. eval("bizgaze_automation_flow_main.getpopupclosed()");
  277. }
  278. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  279. });
  280. $('.isparent').change(function () {
  281. if ($('.isparent').is(':checked')) {
  282. $('.Parentcolumns_info').removeClass('d-none');
  283. }
  284. else {
  285. $('.Parentcolumns_info').addClass('d-none');
  286. }
  287. });
  288. if (instance.RuleInstance.IsStageChangeEvent()) {
  289. $('#SelectstagesDiv').removeClass('d-none');
  290. yield Unibase.Platform.Automation.Components.SendNotification.Instance().LoadAppStages();
  291. }
  292. else {
  293. $('#SelectstagesDiv').addClass('d-none');
  294. }
  295. $("#btnSaveNotification").click(function () {
  296. let appcontrolid = "frmUnibase_SendNotification";
  297. let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(appcontrolid);
  298. if (result == false) {
  299. MessageHelper.Instance().showError("Mandatory fields are missing", "Validate_NotificationAction");
  300. return false;
  301. }
  302. else {
  303. Unibase.Platform.Automation.Components.SendNotification.Instance().SaveNotificationAction(id, containerid);
  304. }
  305. });
  306. $("#ddl_SubjectTokens").change(function () {
  307. var textAreaTxt = $("#txtNotifications_MessageSubject").val().toString();
  308. var txtToAdd = '{{' + $("#ddl_SubjectTokens option:selected").text() + '}}';
  309. var firsttext = textAreaTxt.slice(0, SendNotification.Instance().tokenposition);
  310. var lasttext = textAreaTxt.slice(SendNotification.Instance().tokenposition, textAreaTxt.length);
  311. $("#txtNotifications_MessageSubject").val(firsttext + txtToAdd + lasttext);
  312. $("#ddl_SubjectTokens").val(0);
  313. });
  314. $("#ddl_BodyTokens").change(function (event) {
  315. var textAreaTxt = $("#txtNotifications_MessageBody").val().toString();
  316. var txtToAdd = '{{' + $("#ddl_BodyTokens option:selected").text() + '}}';
  317. var firsttext = textAreaTxt.slice(0, SendNotification.Instance().tokenposition);
  318. var lasttext = textAreaTxt.slice(SendNotification.Instance().tokenposition, textAreaTxt.length);
  319. $("#txtNotifications_MessageBody").val(firsttext + txtToAdd + lasttext);
  320. $("#ddl_BodyTokens").val(0);
  321. });
  322. $("#txtNotifications_MessageBody").focusout(function (event) {
  323. SendNotification.Instance().tokenposition = event["target"]["selectionStart"];
  324. });
  325. $("#txtNotifications_MessageSubject").focusout(function (event) {
  326. SendNotification.Instance().tokenposition = event["target"]["selectionStart"];
  327. });
  328. $("#ddl_NotificationType").val($("#hf_NotificationType").val());
  329. let rpid = instance.RuleProviderId;
  330. if (rpid != 0) {
  331. Unibase.Platform.Automation.Components.SendNotification.Instance().LoadMsgSubjectTokens(rpid);
  332. Unibase.Platform.Automation.Components.SendNotification.Instance().LoadMsgBodyTokens(rpid);
  333. yield Unibase.Platform.Automation.Components.SendNotification.Instance().LoadParentTokens(rpid);
  334. Unibase.Platform.Automation.Components.SendNotification.Instance().LoadRefColumns(rpid);
  335. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(rpid, null);
  336. }
  337. if (id != "") {
  338. Unibase.Platform.Automation.Components.SendNotification.Instance().EditNotificationAction(id, containerid);
  339. }
  340. $("#ddl_createinstalledid").change(function () {
  341. $('#ddl_Form').html('');
  342. var installedid = Number($("#ddl_createinstalledid option:selected").val());
  343. if (installedid != 0) {
  344. Unibase.Platform.Automation.Managers.RuleManager.Instance().getCreateFormsByInstalledAppId(installedid).then(function (response) {
  345. if (response.result != null) {
  346. var html = '';
  347. for (let i = 0; i < response.result.length; i++) {
  348. html += '<option value=' + response.result[i].Appconfigid + '>' + response.result[i].FormName + '</option>';
  349. }
  350. $('#ddl_Form').append(html);
  351. }
  352. });
  353. }
  354. });
  355. $('#ddl_NotificationType').change(function () {
  356. if ($("#ddl_NotificationType").val() == "6") {
  357. $('#createform_row').removeClass('hidden');
  358. }
  359. else {
  360. $('#createform_row').addClass('hidden');
  361. }
  362. });
  363. });
  364. }
  365. ToggleNotificationConditions() {
  366. $('#ActionConditionsDiv').toggleClass("hidden");
  367. if ($('.conditionicon').hasClass('fa-angle-down')) {
  368. $('.conditionicon').removeClass('fa-angle-down').addClass('fa-angle-up');
  369. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(Unibase.Platform.Automation.Components.SendNotification.Instance().RuleProviderId, null);
  370. }
  371. else {
  372. $('.conditionicon').removeClass('fa-angle-up').addClass('fa-angle-down');
  373. }
  374. }
  375. ToggleExternalRecipients() {
  376. $("#ExternalRecipientsDiv").toggle(function () {
  377. $("#btn_ExternalRecipients").addClass("hidden");
  378. $("#ExternalRecipientsDiv").removeClass("hidden");
  379. });
  380. }
  381. LoadAppStages() {
  382. return __awaiter(this, void 0, void 0, function* () {
  383. var html = '';
  384. var fromstage = '<option value="0">Select FromStage</option>';
  385. var tostage = '<option value="0">Select ToStage</option>';
  386. var installeappid = Unibase.Platform.Automation.Components.Rule.Instance().RuleInstalledAppId;
  387. yield Unibase.Platform.Apps.Managers.StageManager.Instance().getStages(installeappid).then(function (response) {
  388. if (response.result != null) {
  389. for (let i = 0; i < response.result.length; i++) {
  390. var data = response.result[i];
  391. html += '<option value=' + data.StageId + '>' + data.StageName + '</option>';
  392. }
  393. }
  394. $('.from_stage_notification').html(fromstage + html);
  395. $('.to_stage_notification').html(tostage + html);
  396. });
  397. });
  398. }
  399. Toggleadvancedoptions() {
  400. if ($('.arrowicon').hasClass('fa-angle-down')) {
  401. $('.arrowicon').removeClass('fa-angle-down').addClass('fa-angle-up');
  402. }
  403. else {
  404. $('.arrowicon').removeClass('fa-angle-up').addClass('fa-angle-down');
  405. }
  406. $('.Advanced_options').toggleClass("hidden");
  407. }
  408. GetRuleActionInfo(parentactionid) {
  409. return __awaiter(this, void 0, void 0, function* () {
  410. yield Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleAction(parentactionid).then(function (response) {
  411. if (response != null) {
  412. var html = '<option value=' + response.NotificationGroupId + ' selected>' + response.NotificationGroupName + '</option>';
  413. $('#ddl_NotificationGrp').html('').html(html);
  414. }
  415. });
  416. });
  417. }
  418. EditNotificationAction(id, containerid) {
  419. let actionid = Number(id);
  420. $("#Spn_SendNotification").text("Edit Notification");
  421. Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleAction(actionid).then(function (response) {
  422. $("#txtNotifications_RuleActionName").val(response.RuleActionName);
  423. $("#txtNotifications_MessageSubject").val(response.BString1);
  424. $("#txtNotifications_MessageBody").val(response.BString2);
  425. $("#ddl_NotificationType").val(response.String4);
  426. $("#hf_RefColumn").val(response.BString3);
  427. $('#message_result').val(Number(response.BString5));
  428. $('#ddl_NotificationGrp option[value=' + response.NotificationGroupId + ']').prop('selected', true);
  429. if (response.ResultActionId != null && response.ResultActionId != "") {
  430. $('#ddl_ResultAction').val(response.ResultActionId);
  431. }
  432. if (!Unibase.Platform.Automation.Components.SendNotification.Instance().IsAutomationMode) {
  433. Unibase.Platform.Automation.Components.SendNotification.Instance().RuleId = response.RuleId;
  434. Unibase.Platform.Automation.Components.SendNotification.Instance().RuleEventId = response.RuleEventId;
  435. Unibase.Platform.Automation.Components.SendNotification.Instance().EventGroupId = response.EventGroupId;
  436. Unibase.Platform.Automation.Components.SendNotification.Instance().ActionId = response.ActionId;
  437. Unibase.Platform.Automation.Components.SendNotification.Instance().ParentActionId = response.ParentActionId;
  438. }
  439. if (response.ExecuteStatusId != Number(Unibase.Platform.Automation.Enums.ExecuteActionStatus.Approved))
  440. $("#chkAutoApprovedNotification").prop("checked", false);
  441. else
  442. $("#chkAutoApprovedNotification").prop("checked", true);
  443. $("#div_Subject").addClass('floating-label-form-group-with-value');
  444. $("#div_Body").addClass('floating-label-form-group-with-value');
  445. Unibase.Platform.Automation.Components.ContactSelection.Instance().BindRecipients(response.RuleActionId);
  446. Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckContactColumns(response.Users);
  447. Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckSecondaryContactColumns(response.SecondaryUsers);
  448. $("#btn_ActionConditions").addClass("hidden");
  449. if (response.SqlWhere != null && response.SqlWhere != "") {
  450. $("#ActionConditionsDiv").removeClass("hidden");
  451. $('.conditionicon').removeClass('fa-angle-down').addClass('fa-angle-up');
  452. }
  453. if (response.FromStage != 0 && response.ToStage != 0) {
  454. $('.from_stage_notification option[value=' + response.FromStage + ' ]').prop('selected', true);
  455. $('to_stage_notification option[value=' + response.ToStage + ']').prop('selected', true);
  456. }
  457. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(response.RuleProviderId, response.SqlWhere);
  458. $("#btn_ActionConditions").addClass("hidden");
  459. if (response.String6 != null && response.String6 != "") {
  460. $('#createform_row').removeClass('hidden');
  461. Unibase.Platform.Forms.Managers.FormManager.Instance().getFormByAppConfiguration(Number(response.String6)).then(function (responsedata) {
  462. if (responsedata.result != null) {
  463. $('#ddl_Form').append('<option value=' + response.String6 + ' option:selected>' + responsedata.result.FormName + '</option>');
  464. Unibase.Platform.Apps.Managers.AppManager.Instance().getInstallApp(Number(responsedata.result.InstalledAppId)).then(function (resultinfo) {
  465. if (resultinfo.result != null) {
  466. $('#ddl_createinstalledid').append('<option value="' + resultinfo.result.InstalledAppId + '" option:selected>' + resultinfo.result.AppTitle + '</option>');
  467. }
  468. });
  469. }
  470. });
  471. }
  472. if (response.IsParent) {
  473. $('.isparent').prop("checked", true);
  474. $('.Parentcolumns_info').removeClass('d-none');
  475. if (response.String2 != null)
  476. $('#parent_pkid').find("#" + response.String2 + "").attr("selected", "true");
  477. }
  478. eval('_floatingLabelHelper.init();');
  479. });
  480. }
  481. LoadNotificationData(Data) {
  482. for (var i = 0; i < Data.length; i++) {
  483. $("#txtNotifications_RuleActionName").val(Data[i].RuleActionName);
  484. $("#txtNotifications_MessageSubject").val(Data[i].BString1);
  485. $("#txtNotifications_MessageBody").val(Data[i].BString2);
  486. $("#ddl_NotificationType").val(Data[i].String4);
  487. $("#hf_RefColumn").val(Data[i].BString3);
  488. if (!Data[i].AutoApproved)
  489. $("#chkAutoApprovedNotification").prop("checked", false);
  490. else
  491. $("#chkAutoApprovedNotification").prop("checked", true);
  492. Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckContactColumns(Data[i].Users);
  493. Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckSecondaryContactColumns(Data[i].SecondaryUsers);
  494. $("#div_Subject").addClass('floating-label-form-group-with-value');
  495. $("#div_Body").addClass('floating-label-form-group-with-value');
  496. if (Data[i].RecipientsData != null) {
  497. $("#select2_Roles").val(Data[i].RecipientsData.RoleRecipients).trigger('change');
  498. $("#select2_Users").val(Data[i].RecipientsData.UserRecipients).trigger('change');
  499. }
  500. if (Data[i].SqlWhere != "" && Data[i].SqlWhere != null) {
  501. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(Unibase.Platform.Automation.Components.SendNotification.Instance().RuleProviderId, Data[i].SqlWhere);
  502. $("#btn_ActionConditions").addClass("hidden");
  503. $("#ActionConditionsDiv").removeClass("hidden");
  504. }
  505. eval('_floatingLabelHelper.init();');
  506. }
  507. }
  508. SaveNotificationAction(notificationid, containerid) {
  509. var instance = this;
  510. let ruleactionid = Number(notificationid);
  511. let queryelmnt = $("#builder");
  512. let recipients = Unibase.Platform.Automation.Components.ContactSelection.Instance().GetRecipients();
  513. let contactcolumns = Unibase.Platform.Automation.Components.ContactSelection.Instance().getContactColumns();
  514. let secondarycontactcolumns = Unibase.Platform.Automation.Components.ContactSelection.Instance().getSecondaryContactColumns();
  515. let externalroles = Unibase.Platform.Automation.Components.ExternalRecipients.Instance().GetExternalRoles();
  516. let externalusers = Unibase.Platform.Automation.Components.ExternalRecipients.Instance().GetExternalUsers();
  517. let model = new Unibase.Platform.Automation.Requests.RuleAction();
  518. model.RuleActionId = ruleactionid;
  519. model.RuleActionName = $("#txtNotifications_RuleActionName").val().toString();
  520. model.String4 = Number($("#ddl_NotificationType option:selected").val());
  521. model.BString1 = $("#txtNotifications_MessageSubject").val().toString();
  522. model.BString2 = $("#txtNotifications_MessageBody").val().toString();
  523. model.BString3 = $('#ddl_RefColumn option:selected').val() == undefined ? null : $('#ddl_RefColumn option:selected').val().toString();
  524. model.NotificationGroupId = $('#ddl_NotificationGrp').val() == undefined ? 0 : Number($('#ddl_NotificationGrp').val());
  525. if (model.NotificationGroupId == 0) {
  526. MessageHelper.Instance().showError("Please Select Notification Group", "Validate_NotificationAction");
  527. return;
  528. }
  529. if (instance.RuleInstance.IsStageChangeEvent()) {
  530. model.FromStage = $('.from_stage_notificaction option:selected').val() != "0" ? Number($('.from_stage_notification option:selected').val()) : 0;
  531. model.ToStage = $('.to_stage_notification option:selected').val() != "0" ? Number($('.to_stage_notification option:selected').val()) : 0;
  532. }
  533. model.BString6 = externalroles;
  534. model.BString7 = externalusers;
  535. model.BString5 = $('#message_result option:selected').val().toString();
  536. model.ExternalReportId = ($("#txtAutoComplete_Reports option:selected").val() == undefined) ? 0 : Number($("#txtAutoComplete_Reports option:selected").val());
  537. model.ExternalReportColumnId = Number($("#txtAutoComplete_ReportColumns option:selected").val());
  538. model.ProviderColumnId = Number($("#txtAutoComplete_ProviderColumns option:selected").val());
  539. model.ActionId = Unibase.Platform.Automation.Components.SendNotification.Instance().ActionId;
  540. model.RuleId = 0;
  541. model.Users = contactcolumns;
  542. model.SecondaryUsers = secondarycontactcolumns;
  543. model.String2 = $('#parent_pkid option:selected').text() == "Select Token" ? null : $('#parent_pkid option:selected').text();
  544. let query = queryelmnt.queryBuilder('getSQL', false, true);
  545. if (query != null) {
  546. model.SqlWhere = queryelmnt.queryBuilder('getSQL', false, true).sql.replace(/\n/g, " ").replace(/LIKE/g, "ILIKE");
  547. ;
  548. model.SqlWhereJson = JSON.stringify(queryelmnt.queryBuilder('getSQL', false, true));
  549. }
  550. else {
  551. model.SqlWhere = "";
  552. model.SqlWhereJson = "";
  553. }
  554. if ($("#ddl_NotificationType").val() == "6") {
  555. model.String6 = $('#ddl_Form option:selected').val() == undefined || $('#ddl_Form option:selected').val() == null ? "" : $('#ddl_Form option:selected').val().toString();
  556. }
  557. else {
  558. model.String6 = "";
  559. }
  560. model.String7 = true;
  561. model.IsParent = $('.isparent').is(":checked");
  562. model.ResultActionId = Number($("#ddl_ResultAction option:selected").val());
  563. if (model.ResultActionId != 0) {
  564. model.ResultActionName = $("#ddl_ResultAction option:selected").text();
  565. }
  566. else {
  567. model.ResultActionName = "";
  568. }
  569. model.DelayTime = 0;
  570. model.ParentActionId = Unibase.Platform.Automation.Components.SendNotification.Instance().ParentActionId;
  571. model.AutoApproved = $('#chkAutoApprovedNotification').is(':checked');
  572. model.RecipientsData = recipients;
  573. model.RowIndex = Unibase.Platform.Automation.Components.SendNotification.Instance().RowIndex;
  574. if (Unibase.Platform.Automation.Components.SendNotification.Instance().IsAutomationMode) {
  575. if (Unibase.Platform.Automation.Components.SendNotification.Instance().AutomationMode == Unibase.Platform.Automation.Enums.AutomationMode.NormalMode) {
  576. Unibase.Platform.Automation.Components.Rule.Instance().RuleActionsArray(model);
  577. $('#' + containerid).modal('hide');
  578. $('#' + containerid).remove();
  579. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  580. }
  581. else {
  582. model.RuleId = eval("bizgaze_automation_flow_main.getruleid()");
  583. Automation.Managers.RuleManager.Instance().saveRuleAction(model).then(function (response) {
  584. if (response.status == Unibase.Data.Status.Error) {
  585. MessageHelper.Instance().showError(response.message, "Validate_NotificationAction");
  586. }
  587. else {
  588. MessageHelper.Instance().showSuccess(response.message, "Validate_NotificationAction");
  589. $('#' + containerid).modal('hide');
  590. $('#' + containerid).remove();
  591. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  592. var actionname = response.result.RuleActionName;
  593. eval("bizgaze_automation_flow_main.savenotificationblock('" + response.result.RuleActionId + "','" + actionname + "')");
  594. }
  595. });
  596. }
  597. }
  598. else {
  599. model.RuleId = Unibase.Platform.Automation.Components.SendNotification.Instance().RuleId;
  600. model.EventGroupId = Unibase.Platform.Automation.Components.SendNotification.Instance().EventGroupId;
  601. model.RuleEventId = Unibase.Platform.Automation.Components.SendNotification.Instance().RuleEventId;
  602. model.ActionId = Unibase.Platform.Automation.Components.SendNotification.Instance().ActionId;
  603. model.ParentActionId = Unibase.Platform.Automation.Components.SendNotification.Instance().ParentActionId;
  604. Automation.Managers.RuleManager.Instance().saveRuleAction(model).then(function (response) {
  605. if (response.status == Unibase.Data.Status.Error) {
  606. MessageHelper.Instance().showError(response.message, "Validate_NotificationAction");
  607. }
  608. else {
  609. MessageHelper.Instance().showSuccess(response.message, "Validate_NotificationAction");
  610. $('#' + containerid).modal('hide');
  611. $('#' + containerid).remove();
  612. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  613. }
  614. });
  615. }
  616. }
  617. LoadMsgSubjectTokens(ruleproviderid) {
  618. Unibase.Platform.Automation.Managers.RuleManager.Instance().getTokens(ruleproviderid).then(function (response) {
  619. let cmbConditionProperties = document.getElementById('ddl_SubjectTokens');
  620. $('#ddl_SubjectTokens').empty();
  621. var defaultOpt1 = document.createElement("option");
  622. defaultOpt1.text = "Select Token";
  623. defaultOpt1.value = "0";
  624. cmbConditionProperties.appendChild(defaultOpt1);
  625. for (let i = 0; i <= response.length - 1; i++) {
  626. var opt = document.createElement("option");
  627. opt.text = response[i];
  628. opt.value = (i + 1).toString();
  629. cmbConditionProperties.appendChild(opt);
  630. }
  631. });
  632. }
  633. LoadMsgBodyTokens(ruleproviderid) {
  634. Unibase.Platform.Automation.Managers.RuleManager.Instance().getTokens(ruleproviderid).then(function (response) {
  635. let cmbConditionProperties = document.getElementById('ddl_BodyTokens');
  636. $('#ddl_BodyTokens').empty();
  637. var defaultOpt1 = document.createElement("option");
  638. defaultOpt1.text = "Select Token";
  639. defaultOpt1.value = "0";
  640. cmbConditionProperties.appendChild(defaultOpt1);
  641. for (let i = 0; i <= response.length - 1; i++) {
  642. var opt = document.createElement("option");
  643. opt.text = response[i];
  644. opt.value = (i + 1).toString();
  645. cmbConditionProperties.appendChild(opt);
  646. }
  647. });
  648. }
  649. LoadParentTokens(ruleproviderid) {
  650. return __awaiter(this, void 0, void 0, function* () {
  651. yield Unibase.Platform.Automation.Managers.RuleManager.Instance().getTokens(ruleproviderid).then(function (response) {
  652. $('#parent_pkid').html('');
  653. var html = "<option value='0'>Select Token</option>";
  654. for (let i = 0; i <= response.length - 1; i++) {
  655. html += '<option id=' + response[i] + ' value=' + response[i] + '>' + response[i] + '</option>';
  656. }
  657. $('#parent_pkid').append(html);
  658. });
  659. });
  660. }
  661. LoadRefColumns(ruleproviderid) {
  662. Unibase.Platform.Automation.Managers.RuleManager.Instance().getTokens(ruleproviderid).then(function (response) {
  663. let cmbConditionProperties = document.getElementById('ddl_RefColumn');
  664. $('#ddl_RefColumn').empty();
  665. var defaultOpt1 = document.createElement("option");
  666. defaultOpt1.text = "Select";
  667. defaultOpt1.value = "";
  668. cmbConditionProperties.appendChild(defaultOpt1);
  669. for (let i = 0; i <= response.length - 1; i++) {
  670. var opt = document.createElement("option");
  671. opt.text = response[i];
  672. opt.value = response[i];
  673. cmbConditionProperties.appendChild(opt);
  674. }
  675. if ($("#hf_RefColumn").val() == "") {
  676. $("#ddl_RefColumn").val(null);
  677. }
  678. else {
  679. $("#ddl_RefColumn").val($("#hf_RefColumn").val());
  680. }
  681. });
  682. }
  683. static Instance() {
  684. if (this.instance === undefined) {
  685. this.instance = new SendNotification();
  686. }
  687. return this.instance;
  688. }
  689. }
  690. Components.SendNotification = SendNotification;
  691. })(Components = Automation.Components || (Automation.Components = {}));
  692. })(Automation = Platform.Automation || (Platform.Automation = {}));
  693. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  694. })(Unibase || (Unibase = {}));