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.task.js 53KB

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