Built files from Bizgaze WebServer
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

actions.email.js 58KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712
  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 SendEmail 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. this.formpropertyid = "ExternalAttachments";
  26. }
  27. jsFiles() {
  28. var jsfiles = ["platform/automation/managers/rulemanager.js",
  29. "platform/automation/enums/automationmode.js",
  30. "platform/automation/components/conditions.js",
  31. "platform/automation/components/contactselection.js",
  32. "platform/automation/requests/ruleaction.js",
  33. "platform/automation/requests/rulecondition.js",
  34. "platform/forms/components/formviewer/formviewer.js",
  35. "libs/parsley/parsley.min.js",
  36. "libs/querybuilder/query-builder.min.js",
  37. "libs/querybuilder/query-builder.standalone.min.js",
  38. "libs/querybuilder/query-builder.standalone.js",
  39. "libs/querybuilder/sql-parser.min.js",
  40. "apps/communications/managers/mails/mailmanager.js",
  41. "platform/templates/enums/templatetype.js",
  42. "platform/templates/managers/templatemanager.js", "libs/notificationbuilder/notificationbuilder.js", "platform/apps/managers/stagemanager.js", "platform/automation/components/rulebuilder/rulebuilder.rule.js", "platform/automation/components/externalrecipients.js", "platform/automation/components/rulebuilder/notificationgroup.js", "platform/automation/managers/notificationgroupmanager.js"
  43. ];
  44. return jsfiles;
  45. }
  46. cssFiles() {
  47. return [];
  48. }
  49. html(id, containerid) {
  50. let html = `<form id="frmUnibase_SendEmail" data-validate="parsley" data-isdynamic="false">
  51. <div class="card bg-light">
  52. <div class="b-b bg-white card-header header">
  53. <strong class="text-dark title" id="Spn_SendEmail">Create Email</strong>
  54. </div>
  55. <div class="card-body scrollable" style="overflow-y: scroll;">
  56. <div class="bg-white card" id="divSendEmail">
  57. <div id="Validate_EmailAction" class="clear"></div>
  58. <div class="card-body">
  59. <div class="row">
  60. <div class="col-sm-12">
  61. <div class="floating-label-form-group">
  62. <label for="lbl" id="lbl_RuleActionName">Action<span class="text-danger required" id="spnIsRequired_RuleActionName"> *</span></label>
  63. <input type="text" id="txtEmail_RuleActionName" class="form-control value-control required floating-label-control" placeholder="Action *" data-placeholder="Enter Action" data-label="Action *">
  64. <input type="hidden" id="hf_RuleActionName" />
  65. </div>
  66. </div>
  67. </div>
  68. <div class="row">
  69. <div id="div_NotificationGrp" class="floating-label-form-group col-sm-6 floating-label-form-group-with-value">
  70. <label for="lbl_NotificationGrp" id="lbl_NotificationGroup">Notification Group<span class="text-danger"> *</span></label>
  71. <select id="ddl_NotificationGrp" class="form-control"><option value="0">Select Group</option></select>
  72. </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>
  73. <div class="row">
  74. <div class="ResultActions col-sm-6 hidden">
  75. <div id="div_ResultAction" class=" floating-label-form-group floating-label-form-group-with-value">
  76. <label for="lbl" id="lbl_ResultAction">Result Action</label>
  77. <select id="ddl_ResultAction" class="form-control">
  78. <option value="">-- Select --</option>
  79. </select>
  80. <label for="Validation" id="lblValidation_ResultAction"></label><input type="hidden" id="hfFormPropertyId" value="" />
  81. </div>
  82. </div>
  83. </div>
  84. </div>
  85. </div>
  86. <div class="bg-white card" id="EmailDetailsDiv">
  87. <div class="card-header">Mail Details</div>
  88. <div class="card-body">
  89. <div class="row">
  90. <div class="col-sm-6">
  91. <div class="form-group">
  92. <label>Template</label>
  93. <select id="Autocomplete_Template" class="form-control value-control" data-isdynamic="true"></select>
  94. <input type="hidden" id="hf_Template" />
  95. </div>
  96. </div>
  97. </div>
  98. <div class="row">
  99. <div id="div_MailBody" class="TextEditor col-sm-12">
  100. <inpu type="hidden" id="txthdn__MailBody" class="value-control" value="">
  101. <span class="text-danger" id="spnIsRequired__MailBody"></span>
  102. <div class="type-control summernote__MailBody" style="display: block;" id="summernote__MailBody" data-propdoctypename="MailBody" data-required="" placeholder="Mail Body" data-placeholder="Mail Body" data-label="Mail Body"></div>
  103. <label for="Validation" id="lblValidation"></label>
  104. </input>
  105. </div>
  106. </div>
  107. </div>
  108. </div>
  109. <div class="bg-white card" id="AttachmentsDiv">
  110. <div class="card-header">Attachments</div>
  111. <div class="card-body" id="ExternalAttachments">
  112. </div>
  113. </div>
  114. <div class="bg-white card Advanced_optionsdata">
  115. <div class="card-header"><i class="fa fa-angle-down arrowicon mr-1" onclick="Unibase.Platform.Automation.Components.SendEmail.Instance().Toggleadvancedoptions()"></i>Advanced Options</div>
  116. <div class="card-body Advanced_options hidden">
  117. <div class="row">
  118. <div class="col-sm-6 floating-label-form-group floating-label-form-group-with-value">
  119. <label class="Message_type">Message Type</label>
  120. <select class="form-control" id="message_result">
  121. <option value="0">Success</option>
  122. <option value="1">Warning</option>
  123. <option value="2">Error</option>
  124. </select>
  125. </div>
  126. <div class="col-sm-6">
  127. <input type="checkbox" class="test_data mt-50" id="chkAutoApprovedEmail" checked>Perform this Action
  128. </div>
  129. </div>
  130. <div class="row">
  131. <div class="col-sm-6">
  132. <div class="input-group">
  133. <label for="lbl_InternalTemplate" id="lbl_InternalTemplate">Internal Template</label>
  134. <select id="Autocomplete_InternalTemplate" class="form-control text-control" style="width:100%;" placeholder="InternalTemplate" data-placeholder="InternalTemplate" data-label="" data-istagselect="true"></select>
  135. <input type="hidden" id="hf_InternalTemplate" class="form-control value-control" data-isdynamic="true" />
  136. </div>
  137. </div>
  138. <div class="col-sm-6">
  139. <input type="checkbox" class="refattchments mt-50" id="chkIsRefAttachments">IsRefAttachments
  140. </div>
  141. <div class="col-sm-6">
  142. <input type="checkbox" class="isbulk_send mt-50 " id="isbulksend" checked><span class="ml-5">Is Bulk</span>
  143. </div>
  144. </div>
  145. </div>
  146. </div>
  147. <div class="bg-white card hidden" id="DocTypesDiv">
  148. <div class="card-header">DocTypes</div>
  149. <div class="card-body">
  150. <div class="SelectDocType col-sm-12">
  151. <!--For Mapping of datalists-->
  152. </div>
  153. </div>
  154. </div>
  155. <div class="bg-white card" id="ActionConditionsDivdata">
  156. <div class="card-header"><i class="fa fa-angle-down conditionicon mr-1" style="font-size:20px" onclick="Unibase.Platform.Automation.Components.SendEmail.Instance().ToggleSendEmailConditions();"></i>Condition Details</div>
  157. <div class="card-body hidden" id="ActionConditionsDiv">
  158. <div class="ActionConditions">
  159. <!--For Action Conditions-->
  160. </div>
  161. </div>
  162. </div><div class="bg-white card" id="SelectstagesDiv">
  163. <div class="card-header">Stage Event</div>
  164. <div class="card-body">
  165. <div class="stages_drp row"><div class="col-sm-6"><label class="from_label">From Stage</label><select class="from_stage_email form-control"></select></div><div class="col-sm-6"><label class="_label">To Stage</label><select class="to_stage_email form-control"></select></div></div>
  166. </div></div>
  167. <div class="bg-white card" id="SelectRoleDiv">
  168. <div class="card-header">Send To Details</div>
  169. <div class="card-body">
  170. <div class="ContactSelection col-sm-12">
  171. <!--For ContactSelection page-->
  172. </div>
  173. </div>
  174. </div>
  175. <div class="bg-white card" id="external_recipientsdiv">
  176. <div class="card-header">External Recipients</div>
  177. <div class="card-body">
  178. <div class="reportautocomplete">
  179. <div class="row">
  180. <div class="col-sm-6">
  181. <div class="input-group">
  182. <label for="Report" class="font-bold">External Report</label>
  183. <select id="txtAutoComplete_ReportsExternal" class="form-control text-control" style="width:100%;" placeholder="Report" data-placeholder="Report" data-label="" data-istagselect="true"></select>
  184. <input type="hidden" id="hf_Autocomplete_ReportsExternal" class="form-control value-control" data-isdynamic="true" /></div></div></div></div>
  185. <div class="external_reportcolumns mt-4"><div class="row externalreport_row"></div></div></div></div>
  186. <div class="bg-white card col-sm-3 hidden" id="btn_ExternalRecipients">
  187. <button type="button" class="btn btn-primary" onclick="Unibase.Platform.Automation.Components.SendEmail.Instance().ToggleExternalRecipients();">External Recipients</button>
  188. </div>
  189. <div class="bg-white card hidden" id="ExternalRecipientsDiv">
  190. <div class="card-header">External Recipients</div>
  191. <div class="card-body">
  192. <div class="ExternalRecipients">
  193. </div>
  194. </div>
  195. </div><div class="bg-white card hidden" id="external_reportcolumnsdiv">
  196. <div class="card-header">External ReportContacts</div>
  197. <div class="card-body">
  198. </div>
  199. </div>
  200. <div class="bg-white card col-sm-3" id="btn_SendFrom">
  201. <button type="button" class="btn btn-primary" onclick="Unibase.Platform.Automation.Components.SendEmail.Instance().ToggleEmailSendFrom();">Send From</button>
  202. </div>
  203. <div class="bg-white card hidden" id="SendFromDiv">
  204. <div class="card-header">Send From Details</div>
  205. <div class="card-body">
  206. <div class="row SendFrom">
  207. <div class="col-sm-6">
  208. <div class="input-group">
  209. <label for="lbl_MailServer" id="lbl_MailServer">Mail Server<span class="text-danger" id="span_MailServer">*</span></label>
  210. <select id="Autocomplete_MailServer" class="form-control text-control required" style="width:100%;" placeholder="MailServer" data-placeholder="MailServer" data-label="" data-istagselect="true"></select>
  211. <input type="hidden" id="hf_MailServer" class="form-control value-control" data-isdynamic="true" />
  212. </div>
  213. </div>
  214. <div class="col-sm-6">
  215. <div class="input-group">
  216. <label for="lbl_MailAccount" id="lbl_MailAccount">Mail Account<span class="text-danger" id="span_MailAccount">*</span></label>
  217. <select id="Autocomplete_MailAccount" class="form-control text-control required" style="width:100%;" placeholder="MailAccount" data-placeholder="MailAccount" data-label="" data-istagselect="true"></select>
  218. <input type="hidden" id="hf_MailAccount" class="form-control value-control" data-isdynamic="true" />
  219. </div>
  220. </div>
  221. </div>
  222. </div>
  223. </div>
  224. </div>
  225. <div class="bg-white card-footer footer" id="CreateEmailFooter">
  226. <a href="javascript:;" id="btnCloseEmail" class="btn btn-light btn-sm mr-auto "> Close</a>
  227. <a href="javascript:;" id="btnSaveEmail" class="btn btn-primary btn-sm"> Save</a>
  228. </div>
  229. </div>
  230. </form>`;
  231. return html;
  232. }
  233. load(id, containerid, callback) {
  234. return __awaiter(this, void 0, void 0, function* () {
  235. var instance = this;
  236. Unibase.Platform.Automation.Components.SendEmail.Instance().ActionId = instance.ActionId;
  237. Unibase.Platform.Automation.Components.SendEmail.Instance().RuleActionData = instance.RuleActionData;
  238. Unibase.Platform.Automation.Components.SendEmail.Instance().RowIndex = instance.RowIndex;
  239. Unibase.Platform.Automation.Components.SendEmail.Instance().AutomationMode = instance.AutomationMode;
  240. Unibase.Platform.Automation.Components.SendEmail.Instance().ParentActionId = instance.ParentActionId;
  241. Unibase.Platform.Automation.Components.SendEmail.Instance().IsAutomationMode = instance.IsAutomationMode;
  242. yield Unibase.Platform.Automation.Components.NotificationGroup.Instance().LoadNotificationGroups();
  243. Unibase.Platform.Automation.Components.ExternalRecipients.Instance().loadreports();
  244. if (instance.AutomationMode == Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode) {
  245. eval('bizgaze_automation_flow_main.getcontainerid("' + containerid + '")');
  246. }
  247. $("#btnCloseEmail").click(function () {
  248. $('#' + containerid).modal('hide');
  249. $('#' + containerid).remove();
  250. if (Unibase.Platform.Automation.Components.SendEmail.Instance().AutomationMode == Unibase.Platform.Automation.Enums.AutomationMode.NormalMode) {
  251. if (Unibase.Platform.Automation.Components.SendEmail.Instance().AutomationMode) {
  252. if (Unibase.Platform.Automation.Components.SendEmail.Instance().IsAutomationMode) {
  253. Unibase.Platform.Automation.Components.Rule.Instance().ChangeAction(instance.RowIndex, id);
  254. }
  255. }
  256. }
  257. else {
  258. eval("bizgaze_automation_flow_main.getpopupclosed()");
  259. }
  260. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  261. });
  262. $("#txtAutoComplete_ReportsExternal").change(function () {
  263. var reportid = Number($('#txtAutoComplete_ReportsExternal option:selected').val());
  264. Unibase.Platform.Automation.Components.ExternalRecipients.Instance().loadexternalreportcolumns(reportid);
  265. });
  266. $("#btnSaveEmail").click(function () {
  267. let appcontrolid = "frmUnibase_SendEmail";
  268. let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(appcontrolid);
  269. if (result == false) {
  270. MessageHelper.Instance().showError("Mandatory fields are missing", "Validate_EmailAction");
  271. return false;
  272. }
  273. else {
  274. Unibase.Platform.Automation.Components.SendEmail.Instance().SaveEmailAction(id, containerid);
  275. }
  276. });
  277. $('#creategrp_btn').click(function () {
  278. Unibase.Platform.Automation.Components.NotificationGroup.Instance().init(0, null, true);
  279. });
  280. if (instance.RuleInstance.IsStageChangeEvent()) {
  281. $('#SelectstagesDiv').removeClass('d-none');
  282. yield Unibase.Platform.Automation.Components.SendEmail.Instance().LoadAppStages();
  283. }
  284. else {
  285. $('#SelectstagesDiv').addClass('d-none');
  286. }
  287. var url = _appsettings.server_url() + '/apis/v4/bizgaze/communications/mail/mailserverautocomplete';
  288. AutoCompleteHelper.getHelper().Create("#Autocomplete_MailServer", "#hf_MailServer", url, function (response) {
  289. var data = response;
  290. });
  291. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/templates/getprintprovidersautocomplete';
  292. AutoCompleteHelper.getHelper().Create("#Autocomplete_InternalTemplate", "#hf_InternalTemplate", url, function (response) {
  293. var data = response;
  294. });
  295. $("#Autocomplete_Template").change(function () {
  296. let templateid = Number($("#Autocomplete_Template option:selected").val());
  297. Unibase.Platform.Templates.Managers.TemplateManager.Instance().getTemplateText(Number(templateid)).then(function (response) {
  298. if (response.result != null) {
  299. var templatetext = HtmlHelper.getHelper().decode(response.result.TemplateText);
  300. $('.summernote__MailBody').summernote("code", templatetext);
  301. }
  302. });
  303. });
  304. var _fileCacheHelper = Platform.Helpers.FileCacheHelper.Instance();
  305. yield _fileCacheHelper.loadJsFileAsync("platform/automation/components/contactselection.js", function () {
  306. let contactselectionhtml = Unibase.Platform.Automation.Components.ContactSelection.Instance().init(instance.RuleProviderId);
  307. jQuery(".ContactSelection").html(contactselectionhtml);
  308. });
  309. yield _fileCacheHelper.loadJsFileAsync("platform/automation/components/externalrecipients.js", function () {
  310. let externalrecipientshtml = Unibase.Platform.Automation.Components.ExternalRecipients.Instance().init(instance.RuleProviderId);
  311. jQuery(".ExternalRecipients").html(externalrecipientshtml);
  312. Unibase.Platform.Automation.Components.ExternalRecipients.Instance().load(instance.RuleProviderId);
  313. });
  314. yield _fileCacheHelper.loadJsFileAsync("platform/automation/components/actions/externalattachments.js", function () {
  315. let IsMultiple = true;
  316. let ValidationDiv = "Validate_EmailAction";
  317. let externalattchmentshtml = Unibase.Platform.Automation.Components.ExternalAttachments.Instance().init(Unibase.Platform.Automation.Components.SendEmail.Instance().formpropertyid, IsMultiple, ValidationDiv);
  318. jQuery("#ExternalAttachments").html(externalattchmentshtml);
  319. $(".drag").css("border", "3px dashed #cccccc");
  320. Unibase.Platform.Automation.Components.ExternalAttachments.Instance().dragNdrop(Unibase.Platform.Automation.Components.SendEmail.Instance().formpropertyid);
  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 (instance.RuleActionData.length == 0 && id == "") {
  329. Unibase.Platform.Automation.Components.SendEmail.Instance().getDefaultMailServer();
  330. }
  331. if (id != "") {
  332. setTimeout(function () { Unibase.Platform.Automation.Components.SendEmail.Instance().EditEmailAction(id); }, 10);
  333. }
  334. if (instance.RuleProviderId != 0) {
  335. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(instance.RuleProviderId, null);
  336. Unibase.Platform.Automation.Managers.RuleManager.Instance().getTokens(instance.RuleProviderId).then(function (response) {
  337. var Data = new Array();
  338. for (let i = 0; i <= response.length - 1; i++) {
  339. var result = response[i];
  340. Data.push(result);
  341. }
  342. Unibase.Platform.Automation.Components.SendEmail.Instance().loadSummernote(Data);
  343. });
  344. Unibase.Platform.Automation.Components.SendEmail.Instance().loadTemplates(instance.RuleProviderId);
  345. }
  346. if (instance.RuleActionData.length != 0) {
  347. Unibase.Platform.Automation.Components.SendEmail.Instance().LoadEmailData(instance.RuleActionData);
  348. }
  349. });
  350. }
  351. Toggleadvancedoptions() {
  352. if ($('.arrowicon').hasClass('fa-angle-down')) {
  353. $('.arrowicon').removeClass('fa-angle-down').addClass('fa-angle-up');
  354. }
  355. else {
  356. $('.arrowicon').removeClass('fa-angle-up').addClass('fa-angle-down');
  357. }
  358. $('.Advanced_options').toggleClass("hidden");
  359. }
  360. ToggleSendEmailConditions() {
  361. $('#ActionConditionsDiv').toggleClass("hidden");
  362. if ($('.conditionicon').hasClass('fa-angle-down')) {
  363. $('.conditionicon').removeClass('fa-angle-down').addClass('fa-angle-up');
  364. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(Unibase.Platform.Automation.Components.SendEmail.Instance().RuleProviderId, null);
  365. }
  366. else {
  367. $('.conditionicon').removeClass('fa-angle-up').addClass('fa-angle-down');
  368. }
  369. }
  370. ToggleExternalRecipients() {
  371. $("#ExternalRecipientsDiv").toggle(function () {
  372. $("#btn_ExternalRecipients").addClass("hidden");
  373. $("#ExternalRecipientsDiv").removeClass("hidden");
  374. });
  375. }
  376. ToggleEmailSendFrom() {
  377. $("#SendFromDiv").toggle(function () {
  378. $("#btn_SendFrom").addClass("hidden");
  379. $("#SendFromDiv").removeClass("hidden");
  380. });
  381. }
  382. EditEmailAction(id) {
  383. let actionid = Number(id);
  384. $("#Spn_SendEmail").text("Edit Email");
  385. Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleAction(actionid).then(function (response) {
  386. $("#txtEmail_RuleActionName").val(response.RuleActionName);
  387. $('#ddl_NotificationGrp option[value=' + response.NotificationGroupId + ']').prop('selected', true);
  388. if (!Unibase.Platform.Automation.Components.SendEmail.Instance().IsAutomationMode) {
  389. Unibase.Platform.Automation.Components.SendEmail.Instance().RuleId = response.RuleId;
  390. Unibase.Platform.Automation.Components.SendEmail.Instance().RuleEventId = response.RuleEventId;
  391. Unibase.Platform.Automation.Components.SendEmail.Instance().EventGroupId = response.EventGroupId;
  392. Unibase.Platform.Automation.Components.SendEmail.Instance().ActionId = response.ActionId;
  393. Unibase.Platform.Automation.Components.SendEmail.Instance().ParentActionId = response.ParentActionId;
  394. }
  395. if (response.ExecuteStatusId != Number(Unibase.Platform.Automation.Enums.ExecuteActionStatus.Approved))
  396. $("#chkAutoApprovedEmail").prop("checked", false);
  397. else
  398. $("#chkAutoApprovedEmail").prop("checked", true);
  399. if (response.String5 != "true")
  400. $("#chkIsRefAttachments").prop("checked", false);
  401. else
  402. $("#chkIsRefAttachments").prop("checked", true);
  403. Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckContactColumns(response.Users);
  404. Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckSecondaryContactColumns(response.SecondaryUsers);
  405. Unibase.Platform.Automation.Components.ContactSelection.Instance().BindRecipients(response.RuleActionId);
  406. $('#btn_SendFrom').addClass('hidden');
  407. $('#SendFromDiv').removeClass('hidden');
  408. $('.summernote__MailBody').summernote("code", response.BString2);
  409. $('#message_result').val(Number(response.BString5));
  410. if (response.ResultActionId != null) {
  411. $('#ddl_ResultAction').val(response.ResultActionId);
  412. }
  413. if (response.SqlWhere != null && response.SqlWhere != "") {
  414. $('.conditionicon').removeClass('fa-angle-down').addClass('fa-angle-up');
  415. $("#ActionConditionsDiv").removeClass("hidden");
  416. }
  417. if (response.BString3 != "" && response.BString3 != null) {
  418. Unibase.Platform.Automation.Components.ExternalAttachments.Instance().bindEditFormDetails((Unibase.Platform.Automation.Components.SendEmail.Instance().formpropertyid), response.BString3);
  419. }
  420. if (response.String7) {
  421. $('.isbulk_send').prop("checked", true);
  422. }
  423. if (response.FromStage != null && response.ToStage != null) {
  424. $('.from_stage_email option[value=' + response.FromStage + ' ]').prop('selected', true);
  425. $('to_stage_email option[value=' + response.ToStage + ']').prop('selected', true);
  426. }
  427. if (response.ExternalReportId != 0) {
  428. $('#txtAutoComplete_ReportsExternal option[value=' + response.ExternalReportId + ']').prop("selected", true);
  429. }
  430. Unibase.Apps.Communications.Managers.MailManager.Instance().getMailAccount(Number(response.String3)).then(function (mailresponse) {
  431. if (mailresponse.status == Unibase.Data.Status.Success) {
  432. var mailserveroption = new Option(mailresponse.result.ServerName, mailresponse.result.MailServerId.toString(), true);
  433. $("#Autocomplete_MailServer").append(mailserveroption);
  434. var mailaccountoption = new Option(mailresponse.result.UserName, mailresponse.result.MailAccountId.toString(), true);
  435. $("#Autocomplete_MailAccount").append(mailaccountoption);
  436. }
  437. });
  438. let templateid = Number(response.BString1);
  439. Unibase.Platform.Templates.Managers.TemplateManager.Instance().getTemplateText(templateid).then(function (res) {
  440. var mailtemplate = new Option(res.result.TemplateName, res.result.TemplateId.toString(), true);
  441. $("#Autocomplete_Template").append(mailtemplate);
  442. });
  443. if (response.String1 != "" && response.String1 != null) {
  444. let printProviderId = Number(response.String1);
  445. Unibase.Platform.Templates.Managers.TemplateManager.Instance().getPrintProvider(printProviderId).then(function (res) {
  446. var mailtemplate = new Option(res.result.ProviderName, res.result.PrintProviderId.toString(), true);
  447. $("#Autocomplete_InternalTemplate").append(mailtemplate);
  448. });
  449. }
  450. var decodedData = unescape(response.BString2);
  451. var decode = HtmlHelper.getHelper().decode(decodedData);
  452. $('.summernote__MailBody').summernote("code", decode);
  453. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(response.RuleProviderId, response.SqlWhere);
  454. eval('_floatingLabelHelper.init();');
  455. });
  456. }
  457. LoadAppStages() {
  458. return __awaiter(this, void 0, void 0, function* () {
  459. var html = '';
  460. var fromstage = '<option value="0">Select FromStage</option>';
  461. var tostage = '<option value="0">Select ToStage</option>';
  462. var installeappid = Unibase.Platform.Automation.Components.Rule.Instance().RuleInstalledAppId;
  463. yield Unibase.Platform.Apps.Managers.StageManager.Instance().getStages(installeappid).then(function (response) {
  464. if (response.result != null) {
  465. for (let i = 0; i < response.result.length; i++) {
  466. var data = response.result[i];
  467. html += '<option value=' + data.StageId + '>' + data.StageName + '</option>';
  468. }
  469. }
  470. $('.from_stage_email').html(fromstage + html);
  471. $('.to_stage_email').html(tostage + html);
  472. });
  473. });
  474. }
  475. LoadEmailData(Data) {
  476. for (var i = 0; i < Data.length; i++) {
  477. $("#txtEmail_RuleActionName").val(Data[i].RuleActionName);
  478. if (!Data[i].AutoApproved)
  479. $("#chkAutoApprovedEmail").prop("checked", false);
  480. else
  481. $("#chkAutoApprovedEmail").prop("checked", true);
  482. if (Data[i].String5 != "true")
  483. $("#chkIsRefAttachments").prop("checked", false);
  484. else
  485. $("#chkIsRefAttachments").prop("checked", true);
  486. Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckContactColumns(Data[i].Users);
  487. Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckSecondaryContactColumns(Data[i].SecondaryUsers);
  488. if (Data[i].SqlWhere != "" && Data[i].SqlWhere != null) {
  489. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(Unibase.Platform.Automation.Components.SendEmail.Instance().RuleProviderId, Data[i].SqlWhere);
  490. $("#btn_ActionConditions").addClass("hidden");
  491. $('.conditionicon').removeClass('fa-angle-down').addClass('fa-angle-up');
  492. $("#ActionConditionsDiv").removeClass("hidden");
  493. }
  494. if (Data[i].BString3 != "" && Data[i].BString3 != null) {
  495. Unibase.Platform.Automation.Components.ExternalAttachments.Instance().bindEditFormDetails((Unibase.Platform.Automation.Components.SendEmail.Instance().formpropertyid), Data[i].BString3);
  496. }
  497. Unibase.Apps.Communications.Managers.MailManager.Instance().getMailAccount(Number(Data[i].String3)).then(function (mailresponse) {
  498. if (mailresponse.status == Unibase.Data.Status.Success) {
  499. var mailserveroption = new Option(mailresponse.result.ServerName, mailresponse.result.MailServerId.toString(), true);
  500. $("#Autocomplete_MailServer").append(mailserveroption);
  501. var url = _appsettings.server_url() + '/apis/v4/bizgaze/communications/mail/getMailAccountAutocomplete/mailServerId/' + Number($("#Autocomplete_MailServer option:selected").val());
  502. AutoCompleteHelper.getHelper().Create("#Autocomplete_MailAccount", "#hf_MailAccount", url, function (res) {
  503. var data = res;
  504. var mailaccountoption = new Option(mailresponse.result.UserName, mailresponse.result.MailAccountId.toString(), true);
  505. $("#Autocomplete_MailAccount").append(mailaccountoption);
  506. });
  507. }
  508. });
  509. let templateid = Number(Data[i].BString1);
  510. Unibase.Platform.Templates.Managers.TemplateManager.Instance().getTemplateText(templateid).then(function (res) {
  511. var mailtemplate = new Option(res.result.TemplateName, res.result.TemplateId.toString(), true);
  512. $("#Autocomplete_Template").append(mailtemplate);
  513. });
  514. if (Data[i].String1 != "" && Data[i].String1 != null) {
  515. let printProviderId = Number(Data[i].String1);
  516. Unibase.Platform.Templates.Managers.TemplateManager.Instance().getPrintProvider(printProviderId).then(function (res) {
  517. var mailtemplate = new Option(res.result.ProviderName, res.result.PrintProviderId.toString(), true);
  518. $("#Autocomplete_InternalTemplate").append(mailtemplate);
  519. });
  520. }
  521. var decodedData = unescape(Data[i].BString2);
  522. var decode = HtmlHelper.getHelper().decode(decodedData);
  523. $('.summernote__MailBody').summernote("code", decode);
  524. eval('_floatingLabelHelper.init();');
  525. }
  526. }
  527. getDefaultMailServer() {
  528. Unibase.Apps.Communications.Managers.MailManager.Instance().getUserDefaultMailAccount().then(function (response) {
  529. if (response.status == Unibase.Data.Status.Success) {
  530. var mailserveroption = new Option(response.result.ServerName, response.result.MailServerId.toString(), true);
  531. $("#Autocomplete_MailServer").append(mailserveroption);
  532. var mailaccountoption = new Option(response.result.UserName, response.result.MailAccountId.toString(), true);
  533. $("#Autocomplete_MailAccount").append(mailaccountoption);
  534. }
  535. });
  536. }
  537. SaveEmailAction(emailid, containerid) {
  538. var instance = this;
  539. let ruleactionid = Number(emailid);
  540. let queryelmnt = $("#builder");
  541. let recipients = Unibase.Platform.Automation.Components.ContactSelection.Instance().GetRecipients();
  542. let contactcolumns = Unibase.Platform.Automation.Components.ContactSelection.Instance().getContactColumns();
  543. let secondarycontactcolumns = Unibase.Platform.Automation.Components.ContactSelection.Instance().getSecondaryContactColumns();
  544. let externalroles = Unibase.Platform.Automation.Components.ExternalRecipients.Instance().GetExternalRoles();
  545. let externalusers = Unibase.Platform.Automation.Components.ExternalRecipients.Instance().GetExternalUsers();
  546. let model = new Unibase.Platform.Automation.Requests.RuleAction();
  547. let ExternalAttachments = Unibase.Platform.Automation.Components.ExternalAttachments.Instance().getFiles(Unibase.Platform.Automation.Components.SendEmail.Instance().formpropertyid);
  548. var externalrecipients = Unibase.Platform.Automation.Components.ExternalRecipients.Instance().getexternalrecipients();
  549. var template = "";
  550. var code = $(".summernote__MailBody").summernote('code');
  551. template = HtmlHelper.getHelper().encode(code);
  552. template = template.trim();
  553. model.RuleActionId = ruleactionid;
  554. model.ActionId = Unibase.Platform.Automation.Components.SendEmail.Instance().ActionId;
  555. model.RuleId = 0;
  556. model.NotificationGroupId = $('#ddl_NotificationGrp').val() == undefined ? 0 : Number($('#ddl_NotificationGrp').val());
  557. if (model.NotificationGroupId == 0) {
  558. MessageHelper.Instance().showError("Please Select Notification Group", "Validate_EmailAction");
  559. return;
  560. }
  561. if (instance.RuleInstance.IsStageChangeEvent()) {
  562. model.FromStage = $('.from_stage_email option:selected').val() != "0" ? Number($('.from_stage_email option:selected').val()) : 0;
  563. model.ToStage = $('.to_stage_email option:selected').val() != "0" ? Number($('.to_stage_email option:selected').val()) : 0;
  564. }
  565. model.RuleActionName = $("#txtEmail_RuleActionName").val().toString();
  566. model.String1 = $("#Autocomplete_InternalTemplate option:selected").val() == undefined || null ? "" : $("#Autocomplete_InternalTemplate option:selected").val().toString();
  567. model.BString1 = $("#Autocomplete_Template option:selected").val() == undefined || null ? "" : $("#Autocomplete_Template option:selected").val().toString();
  568. model.BString2 = template;
  569. model.BString3 = ExternalAttachments.length > 0 ? JSON.stringify(ExternalAttachments) : "";
  570. model.BString4 = "";
  571. model.BString5 = $('#message_result option:selected').val().toString();
  572. model.BString6 = externalroles;
  573. model.BString7 = externalusers;
  574. model.String3 = $("#Autocomplete_MailAccount option:selected").val() == undefined || null ? "" : $("#Autocomplete_MailAccount option:selected").val().toString();
  575. model.String4 = Number($("#Autocomplete_MailServer option:selected").val());
  576. model.String5 = $('#chkIsRefAttachments').is(':checked').toString();
  577. model.String7 = $('.isbulk_send').is(":checked");
  578. model.ExternalReportId = ($("#txtAutoComplete_ReportsExternal option:selected").val() == undefined) ? 0 : Number($("#txtAutoComplete_ReportsExternal option:selected").val());
  579. model.ExternalReportColumnId = Number($("#txtAutoComplete_ReportColumns option:selected").val());
  580. model.ProviderColumnId = Number($("#txtAutoComplete_ProviderColumns option:selected").val());
  581. model.Users = contactcolumns;
  582. model.SecondaryUsers = secondarycontactcolumns;
  583. let query = queryelmnt.queryBuilder('getSQL', false, true);
  584. if (query != null) {
  585. model.SqlWhere = queryelmnt.queryBuilder('getSQL', false, true).sql.replace(/\n/g, " ").replace(/LIKE/g, "ILIKE");
  586. ;
  587. model.SqlWhereJson = JSON.stringify(queryelmnt.queryBuilder('getSQL', false, true));
  588. }
  589. else {
  590. model.SqlWhere = "";
  591. model.SqlWhereJson = "";
  592. }
  593. model.ResultActionId = $("#ddl_ResultAction option:selected").val() == undefined ? 0 : Number($("#ddl_ResultAction option:selected").val());
  594. if (model.ResultActionId != 0) {
  595. model.ResultActionName = $("#ddl_ResultAction option:selected").text();
  596. }
  597. else {
  598. model.ResultActionName = "";
  599. }
  600. model.DelayTime = 0;
  601. model.ParentActionId = Unibase.Platform.Automation.Components.SendEmail.Instance().ParentActionId;
  602. model.AutoApproved = $('#chkAutoApprovedEmail').is(':checked');
  603. model.RecipientsData = recipients;
  604. model.ExternalRecipients = externalrecipients;
  605. model.RowIndex = Unibase.Platform.Automation.Components.SendEmail.Instance().RowIndex;
  606. if (Unibase.Platform.Automation.Components.SendEmail.Instance().IsAutomationMode) {
  607. if (Unibase.Platform.Automation.Components.SendEmail.Instance().AutomationMode == Unibase.Platform.Automation.Enums.AutomationMode.NormalMode) {
  608. Unibase.Platform.Automation.Components.Rule.Instance().RuleActionsArray(model);
  609. $('#' + containerid).modal('hide');
  610. $('#' + containerid).remove();
  611. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  612. }
  613. else {
  614. model.RuleId = eval("bizgaze_automation_flow_main.getruleid()");
  615. Automation.Managers.RuleManager.Instance().saveRuleAction(model).then(function (response) {
  616. if (response.status == Unibase.Data.Status.Error) {
  617. MessageHelper.Instance().showError(response.message, "Validate_EmailAction");
  618. }
  619. else {
  620. MessageHelper.Instance().showSuccess(response.message, "Validate_EmailAction");
  621. $('#' + containerid).modal('hide');
  622. $('#' + containerid).remove();
  623. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  624. var actionname = response.result.RuleActionName;
  625. eval("bizgaze_automation_flow_main.saveemailblock('" + response.result.RuleActionId + "','" + actionname + "')");
  626. }
  627. });
  628. }
  629. }
  630. else {
  631. model.RuleId = Unibase.Platform.Automation.Components.SendEmail.Instance().RuleId;
  632. model.EventGroupId = Unibase.Platform.Automation.Components.SendEmail.Instance().EventGroupId;
  633. model.RuleEventId = Unibase.Platform.Automation.Components.SendEmail.Instance().RuleEventId;
  634. model.ActionId = Unibase.Platform.Automation.Components.SendEmail.Instance().ActionId;
  635. model.ParentActionId = Unibase.Platform.Automation.Components.SendEmail.Instance().ParentActionId;
  636. Automation.Managers.RuleManager.Instance().saveRuleAction(model).then(function (response) {
  637. if (response.status == Unibase.Data.Status.Error) {
  638. MessageHelper.Instance().showError(response.message, "Validate_EmailAction");
  639. }
  640. else {
  641. MessageHelper.Instance().showSuccess(response.message, "Validate_EmailAction");
  642. $('#' + containerid).modal('hide');
  643. $('#' + containerid).remove();
  644. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  645. }
  646. });
  647. }
  648. }
  649. loadSummernote(Data) {
  650. $(".summernote__MailBody").summernote({
  651. height: 100,
  652. minHeight: null,
  653. maxHeight: null,
  654. placeholder: "Mail Body",
  655. disableDragAndDrop: true,
  656. codemirror: {
  657. mode: 'text/html',
  658. lineNumbers: true
  659. },
  660. toolbar: [
  661. ['font', ['bold', 'italic', 'underline']],
  662. ['color', ['color']],
  663. ['view', ['fullscreen', 'codeview', 'help']],
  664. ],
  665. hint: {
  666. match: /\B[@!](\w*)$/,
  667. search: function (keyword, callback) {
  668. callback($.grep(Data, function (i) {
  669. var user = i;
  670. return user.indexOf(keyword) === 0;
  671. }));
  672. },
  673. content: function (i) {
  674. var user = i;
  675. return $('<span>{{' + user + '}}</span>')[0];
  676. }
  677. }
  678. });
  679. }
  680. loadTemplates(ruleproviderid) {
  681. let templatetypeid = Number(Unibase.Platform.Templates.Enums.TemplateType.Mail);
  682. Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleProvider(ruleproviderid).then(function (response) {
  683. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/templates/gettemplatesautocomplatebytemplatetype/installedappid/' + response.InstalledAppId + '/templatetypeid/' + templatetypeid;
  684. AutoCompleteHelper.getHelper().Create("#Autocomplete_Template", "#hf_Template", url, function (response) {
  685. var data = response;
  686. });
  687. });
  688. }
  689. GetRuleActionInfo(parentactionid) {
  690. return __awaiter(this, void 0, void 0, function* () {
  691. yield Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleAction(parentactionid).then(function (response) {
  692. if (response != null) {
  693. var html = '<option value=' + response.NotificationGroupId + ' selected>' + response.NotificationGroupName + '</option>';
  694. $('#ddl_NotificationGrp').html('').html(html);
  695. }
  696. });
  697. });
  698. }
  699. static Instance() {
  700. if (this.instance === undefined) {
  701. this.instance = new SendEmail();
  702. }
  703. return this.instance;
  704. }
  705. }
  706. Components.SendEmail = SendEmail;
  707. })(Components = Automation.Components || (Automation.Components = {}));
  708. })(Automation = Platform.Automation || (Platform.Automation = {}));
  709. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  710. })(Unibase || (Unibase = {}));