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

actions.whatsapp.js 40KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549
  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 SendWhatsApp 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", "platform/templates/managers/templatemanager.js",
  32. "platform/automation/requests/rulecondition.js",
  33. "platform/forms/components/formviewer/formviewer.js",
  34. "libs/parsley/parsley.min.js", "platform/templates/enums/templatetype.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", "apps/communications/managers/whatsapp/whatsappmanager.js"
  39. ];
  40. return jsfiles;
  41. }
  42. cssFiles() {
  43. return [];
  44. }
  45. html(id, containerid) {
  46. let html = `<form id="frmUnibase_SendWhatsApp" data-validate="parsley" data-isdynamic="false" name="frmUnibase_SendWhatsApp">
  47. <div class="card bg-light">
  48. <div class="b-b bg-white card-header header">
  49. <strong class="text-dark title" id="Spn_SendWhatsApp">Create WhatsAppReminder</strong>
  50. </div>
  51. <div class="card-body scrollable" style="overflow-y:scroll">
  52. <div class="bg-white card" id="divSendWhatsApp">
  53. <div id="Validate_WhatsAppAction" 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><input type="text" id="txtWhatsApp_RuleActionName" class="form-control required value-control floating-label-control" data-isdynamic="false" placeholder="Action *" data-placeholder="Enter Action" data-label="Action *"> <input type="hidden" id="hf_RuleActionName"><label for="Validation" id="lblValidation_RuleActionName"></label>
  59. </div>
  60. </div>
  61. </div>
  62. <div class="row mt-3">
  63. <div id="div_Template" class="col-sm-4 floating-label-form-group">
  64. <label>Template Name<span class="text-danger">*</span></label><select id="Autocomplete_Template" class="form-control value-control" data-isdynamic="true"></select><input type="hidden" id="hf_Template"/></div>
  65. <div class="col-sm-4">
  66. <div id="div_TemplateType" class="floating-label-form-group floating-label-form-group-with-value">
  67. <label for="lbl_TemplateType" id="lbl_TemplateType">Template Type<span class="text-danger">*</span></label><select id="ddl_TemplateType" class="form-control value-control ml-0 mr-0">
  68. <option value="0">
  69. Select Type
  70. </option>
  71. <option value="Template">
  72. Template
  73. </option>
  74. </select>
  75. </div>
  76. </div>
  77. <div class="col-sm-4">
  78. <div id="div_LanguageCode">
  79. <label for="lbl_LanguageCode" id="lbl_LanguageCode">Language<span class="text-danger">*</span></label><select id="ddl_LanguageCode" class="form-control value-control">
  80. <option value="0">
  81. Select Language
  82. </option>
  83. <option value="en">
  84. English
  85. </option>
  86. </select>
  87. </div>
  88. </div>
  89. </div>
  90. <div class="row mt-3">
  91. <div class="col-sm-10">
  92. <label>Template Body</label><textArea class="col-sm-12 textArea_WhatsappBody" style="height:250px"></textArea></div>
  93. <div class="col-sm-2 mt-3"><select id="ddl_bodyTokens" class="form-control value-control">
  94. <option value="0">
  95. Select Token
  96. </option>
  97. </select></div>
  98. </div>
  99. <div class="row mt-3">
  100. <div id="div_NotificationGrp" class="floating-label-form-group col-sm-6 floating-label-form-group-with-value">
  101. <label for="lbl_NotificationGrp" id="lbl_NotificationGroup">Notification Group<span class="text-danger">*</span></label><select id="ddl_NotificationGrp" class="form-control">
  102. <option value="0">
  103. Select Group
  104. </option>
  105. </select>
  106. </div>
  107. <div class="col-sm-6 createbtn_grp">
  108. <button class="badge badge-primary mt-30 ml-15" id="creategrp_btn">Create Group</button>
  109. </div>
  110. <div class="ResultActions col-sm-6 hidden"><div id="div_ResultAction" class=" floating-label-form-group floating-label-form-group-with-value">
  111. <label for="lbl" id="lbl_ResultAction">Result Action</label>
  112. <select id="ddl_ResultAction" class="form-control">
  113. <option value="0">Select</option></select><label for="Validation" id="lblValidation_ResultAction"></label><input type="hidden" id="hfFormPropertyId" value="0" />
  114. </div></div>
  115. </div>
  116. </div>
  117. </div>
  118. <div class="bg-white card Advanced_optionsdata">
  119. <div class="card-header">
  120. <i class="fa fa-angle-down mr-1" style="font-size:20px" onclick="Unibase.Platform.Automation.Components.SendWhatsApp.Instance().Toggleadvancedoptions();"></i>
  121. Advanced Options
  122. </div>
  123. <div class="card-body Advanced_options hidden">
  124. <div class="row">
  125. <div class="col-sm-6 floating-label-form-group floating-label-form-group-with-value">
  126. <label class="Message_type">Message Type</label><select class="form-control" id="message_result">
  127. <option value="0">
  128. Success
  129. </option>
  130. <option value="1">
  131. Warning
  132. </option>
  133. <option value="2">
  134. Error
  135. </option>
  136. </select>
  137. </div>
  138. <div class="col-sm-6">
  139. <input type="checkbox" class="test_data mt-50" id="chkAutoApprovedWhatsapp" checked="checked">Perform this Action
  140. </div>
  141. </div>
  142. </div>
  143. </div>
  144. <div class="bg-white card" id="ActionConditionsDivdata">
  145. <div class="card-header">
  146. <i class="fa fa-angle-down conditionicon mr-1" style="font-size:20px" onclick="Unibase.Platform.Automation.Components.SendWhatsApp.Instance().ToggleWhatsAppConditions();"></i>
  147. Condition Details
  148. </div>
  149. <div class="card-body hidden" id="ActionConditionsDiv">
  150. <div class="ActionConditions"></div>
  151. </div>
  152. </div>
  153. <div class="bg-white card" id="SelectRoleDiv">
  154. <div class="card-header">
  155. Send To Details
  156. </div>
  157. <div class="card-body">
  158. <div class="ContactSelection col-sm-12"></div>
  159. </div>
  160. </div>
  161. <div class="bg-white card " id="SendFromDetailsDiv">
  162. <div class="card-header">Send From Details</div>
  163. <div class="card-body">
  164. <div class="row SendFrom">
  165. <div class="col-sm-6">
  166. <div class="input-group">
  167. <label for="lbl_ProviderName" id="lbl_ProviderName">Provider Name <span class="text-danger" id="span_ProviderName">*</span></label>
  168. <select id="Autocomplete_ProviderName" class="form-control text-control required" style="width:100%;" placeholder="ProviderName" data-placeholder="ProviderName" data-label="" data-istagselect="true"></select>
  169. <input type="hidden" id="hf_ProviderName" class="form-control value-control" data-isdynamic="true" />
  170. </div>
  171. </div>
  172. <div class="col-sm-6">
  173. <div class="input-group">
  174. <label for="lbl_SendSmsFrom" id="lbl_SendFrom">Sender Name<span class="text-danger" id="span_smssendfrom">*</span></label>
  175. <select id="Autocomplete_SenderName" class="form-control text-control required" style="width:100%;" placeholder="Sender Name" data-placeholder="Sender Name" data-label="" data-istagselect="true"></select>
  176. <input type="hidden" id="hf_SenderName" class="form-control value-control" data-isdynamic="true" />
  177. </div>
  178. </div>
  179. </div>
  180. </div>
  181. </div>
  182. </div>
  183. </div>
  184. </div>
  185. <div class="bg-white card-footer modal-footer pa-10" id="CreateWhatsappFooter">
  186. <a href="javascript:;" id="btnCloseWhatsAppReminder" class="btn btn-light btn-sm mr-auto">Close</a><a href="javascript:;" id="btnSaveWhatsAppReminder" class="btn btn-primary btn-sm">Save</a>
  187. </div>
  188. </form>`;
  189. return html;
  190. }
  191. load(id, containerid, callback) {
  192. return __awaiter(this, void 0, void 0, function* () {
  193. var instance = this;
  194. Unibase.Platform.Automation.Components.SendWhatsApp.Instance().ActionId = instance.ActionId;
  195. Unibase.Platform.Automation.Components.SendWhatsApp.Instance().RuleActionData = instance.RuleActionData;
  196. Unibase.Platform.Automation.Components.SendWhatsApp.Instance().RowIndex = instance.RowIndex;
  197. Unibase.Platform.Automation.Components.SendWhatsApp.Instance().AutomationMode = instance.AutomationMode;
  198. Unibase.Platform.Automation.Components.SendWhatsApp.Instance().RuleProviderId = instance.RuleProviderId;
  199. Unibase.Platform.Automation.Components.SendWhatsApp.Instance().ParentActionId = instance.ParentActionId;
  200. Unibase.Platform.Automation.Components.SendWhatsApp.Instance().IsAutomationMode = instance.IsAutomationMode;
  201. yield Unibase.Platform.Automation.Components.NotificationGroup.Instance().LoadNotificationGroups();
  202. if (instance.AutomationMode == Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode) {
  203. eval('bizgaze_automation_flow_main.getcontainerid("' + containerid + '")');
  204. }
  205. if (instance.ParentActionId != 0) {
  206. yield Unibase.Platform.Automation.Components.ContactSelection.Instance().getResultActions(instance.ParentActionId);
  207. yield Unibase.Platform.Automation.Components.SendWhatsApp.Instance().GetRuleActionInfo(Number(instance.ParentActionId));
  208. $('#ddl_NotificationGrp').prop("disabled", true);
  209. $('#creategrp_btn').addClass('d-none');
  210. }
  211. yield Unibase.Platform.Automation.Components.SendWhatsApp.Instance().loadproviders();
  212. var _fileCacheHelper = Platform.Helpers.FileCacheHelper.Instance();
  213. yield _fileCacheHelper.loadJsFileAsync("platform/automation/components/contactselection.js", function () {
  214. jQuery(".ContactSelection").html(Unibase.Platform.Automation.Components.ContactSelection.Instance().init(instance.RuleProviderId));
  215. if (instance.RuleActionData.length != 0) {
  216. Unibase.Platform.Automation.Components.SendWhatsApp.Instance().LoadWhatsAppData(instance.RuleActionData);
  217. }
  218. });
  219. yield _fileCacheHelper.loadJsFileAsync("platform/automation/components/externalrecipients.js", function () {
  220. jQuery(".ExternalRecipients").html(Unibase.Platform.Automation.Components.ExternalRecipients.Instance().init(instance.RuleProviderId));
  221. Unibase.Platform.Automation.Components.ExternalRecipients.Instance().load(instance.RuleProviderId);
  222. });
  223. $('#creategrp_btn').click(function () {
  224. Unibase.Platform.Automation.Components.NotificationGroup.Instance().init(0, null, true);
  225. });
  226. $("#btnCloseWhatsAppReminder").click(function () {
  227. $('#' + containerid).modal('hide');
  228. $('#' + containerid).remove();
  229. if (Unibase.Platform.Automation.Components.SendWhatsApp.Instance().AutomationMode == Unibase.Platform.Automation.Enums.AutomationMode.NormalMode) {
  230. if (Unibase.Platform.Automation.Components.SendWhatsApp.Instance().AutomationMode) {
  231. if (Unibase.Platform.Automation.Components.SendWhatsApp.Instance().IsAutomationMode) {
  232. Unibase.Platform.Automation.Components.Rule.Instance().ChangeAction(instance.RowIndex, id);
  233. }
  234. }
  235. }
  236. else {
  237. eval("bizgaze_automation_flow_main.getpopupclosed()");
  238. }
  239. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  240. });
  241. $("#btnSaveWhatsAppReminder").click(function () {
  242. let appcontrolid = "frmUnibase_SendWhatsApp";
  243. let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(appcontrolid);
  244. if (result == false) {
  245. MessageHelper.Instance().showError("Mandatory fields are missing", "Validate_WhatsAppAction");
  246. return false;
  247. }
  248. else {
  249. Unibase.Platform.Automation.Components.SendWhatsApp.Instance().SaveWhatsAppReminder(id, containerid);
  250. }
  251. });
  252. $("#ddl_bodyTokens").change(function () {
  253. var textAreaTxt = $(".textArea_WhatsappBody").val() == undefined ? "" : $(".textArea_WhatsappBody").val().toString();
  254. SendWhatsApp.Instance().Parameters = $("#ddl_bodyTokens option:selected").text() + "|";
  255. var txtToAdd = '{{' + $("#ddl_bodyTokens option:selected").text() + '}}';
  256. var firsttext = textAreaTxt.slice(0, SendWhatsApp.Instance().tokenposition);
  257. var lasttext = textAreaTxt.slice(SendWhatsApp.Instance().tokenposition, textAreaTxt.length);
  258. $(".textArea_WhatsappBody").val(firsttext + txtToAdd + lasttext);
  259. $("#ddl_bodyTokens").val(0);
  260. });
  261. $(".textArea_WhatsappBody").focusout(function (event) {
  262. SendWhatsApp.Instance().tokenposition = event["target"]["selectionStart"];
  263. });
  264. $("#Autocomplete_Template").change(function () {
  265. let templateid = Number($("#Autocomplete_Template option:selected").val());
  266. Unibase.Platform.Templates.Managers.TemplateManager.Instance().getTemplateText(Number(templateid)).then(function (response) {
  267. if (response.result != null) {
  268. var templatetext = HtmlHelper.getHelper().decode(response.result.TemplateText);
  269. $('.textArea_WhatsappBody').text(templatetext);
  270. }
  271. });
  272. });
  273. let rpid = instance.RuleProviderId;
  274. if (rpid != 0) {
  275. Unibase.Platform.Automation.Components.SendWhatsApp.Instance().LoadBodyTokens(rpid);
  276. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(rpid, null);
  277. Unibase.Platform.Automation.Components.SendWhatsApp.Instance().loadTemplates(instance.RuleProviderId);
  278. }
  279. if (id != "") {
  280. Unibase.Platform.Automation.Components.SendWhatsApp.Instance().EditWhatsAppReminder(id, containerid);
  281. }
  282. $('#Autocomplete_ProviderName').change(function () {
  283. if (SendWhatsApp.whatsappsenders.length > 0) {
  284. var providerid = Number($('#Autocomplete_ProviderName option:selected').val());
  285. var data = SendWhatsApp.whatsappsenders.filter(x => x.ProviderId = providerid);
  286. var html = '';
  287. for (let i = 0; i < data.length; i++) {
  288. html += '<option value=' + data[i].SenderId + '>' + data[i].SenderName + '</option>';
  289. }
  290. $('#Autocomplete_SenderName').html(html);
  291. }
  292. });
  293. });
  294. }
  295. Toggleadvancedoptions() {
  296. if ($('.arrowicon').hasClass('fa-angle-down')) {
  297. $('.arrowicon').removeClass('fa-angle-down').addClass('fa-angle-up');
  298. }
  299. else {
  300. $('.arrowicon').removeClass('fa-angle-up').addClass('fa-angle-down');
  301. }
  302. $('.Advanced_options').toggleClass("hidden");
  303. }
  304. loadproviders() {
  305. return __awaiter(this, void 0, void 0, function* () {
  306. yield Unibase.Apps.Communications.Managers.WhatsAppManager.Instance().GetWhatAppSenders().then(function (response) {
  307. if (response.result != null) {
  308. SendWhatsApp.whatsappsenders = response.result;
  309. var htmlProvider = '<option value="0">Select Provider</option>';
  310. for (let i = 0; i < response.result.length; i++) {
  311. var data = response.result[i];
  312. htmlProvider += '<option value=' + data.ProviderId + '>' + data.ProviderName + '</option>';
  313. }
  314. $('#Autocomplete_ProviderName').html(htmlProvider);
  315. }
  316. });
  317. });
  318. }
  319. GetRuleActionInfo(parentactionid) {
  320. return __awaiter(this, void 0, void 0, function* () {
  321. yield Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleAction(parentactionid).then(function (response) {
  322. if (response != null) {
  323. var html = '<option value=' + response.NotificationGroupId + ' selected>' + response.NotificationGroupName + '</option>';
  324. $('#ddl_NotificationGrp').html('').html(html);
  325. }
  326. });
  327. });
  328. }
  329. SaveWhatsAppReminder(id, containerid) {
  330. var instance = this;
  331. let ruleactionid = Number(id);
  332. let queryelmnt = $("#builder");
  333. let recipients = Unibase.Platform.Automation.Components.ContactSelection.Instance().GetRecipients();
  334. let contactcolumns = Unibase.Platform.Automation.Components.ContactSelection.Instance().getContactColumns();
  335. let secondarycontactcolumns = Unibase.Platform.Automation.Components.ContactSelection.Instance().getSecondaryContactColumns();
  336. let externalroles = Unibase.Platform.Automation.Components.ExternalRecipients.Instance().GetExternalRoles();
  337. let externalusers = Unibase.Platform.Automation.Components.ExternalRecipients.Instance().GetExternalUsers();
  338. let model = new Unibase.Platform.Automation.Requests.RuleAction();
  339. model.RuleActionId = ruleactionid;
  340. model.RuleActionName = $("#txtWhatsApp_RuleActionName").val().toString();
  341. model.NotificationGroupId = $('#ddl_NotificationGrp').val() == undefined ? 0 : Number($('#ddl_NotificationGrp').val());
  342. if (model.NotificationGroupId == 0) {
  343. MessageHelper.Instance().showError("Please Select Notification Group", "Validate_NotificationAction");
  344. return;
  345. }
  346. model.ResultActionId = Number($("#ddl_ResultAction option:selected").val());
  347. if (model.ResultActionId != 0) {
  348. model.ResultActionName = $("#ddl_ResultAction option:selected").text();
  349. }
  350. else {
  351. model.ResultActionName = "";
  352. }
  353. model.BString6 = externalroles;
  354. model.BString7 = externalusers;
  355. model.String1 = $("#Autocomplete_Template option:selected").val() == undefined ? "0" : $("#Autocomplete_Template option:selected").val().toString();
  356. model.String2 = $('#ddl_TemplateType option:selected').val().toString();
  357. model.String3 = $('#ddl_LanguageCode option:selected').val().toString();
  358. if (model.String1 == "0" || model.String2 == "0" || model.String3 == "0") {
  359. MessageHelper.Instance().showError("Please Select Mandatory Fields", "Validate_WhatsAppAction");
  360. return;
  361. }
  362. model.BString10 = $('#Autocomplete_ProviderName option:selected').val() == undefined ? "0" : $('#Autocomplete_ProviderName option:selected').val().toString();
  363. model.BString11 = $('#Autocomplete_SenderName option:selected').val() == undefined ? "0" : $('#Autocomplete_SenderName option:selected').val().toString();
  364. if (model.BString10 == "0" || model.BString11 == "0") {
  365. MessageHelper.Instance().showError("Please Select manag=datory Fields", "Validate_WhatsAppAction");
  366. }
  367. model.String5 = $(".textArea_WhatsappBody").val().toString();
  368. model.String6 = SendWhatsApp.Instance().Parameters;
  369. SendWhatsApp.Instance().Parameters = "";
  370. model.ActionId = Unibase.Platform.Automation.Components.SendWhatsApp.Instance().ActionId;
  371. model.RuleId = 0;
  372. model.Users = contactcolumns;
  373. model.SecondaryUsers = secondarycontactcolumns;
  374. let query = queryelmnt.queryBuilder('getSQL', false, true);
  375. if (query != null) {
  376. model.SqlWhere = queryelmnt.queryBuilder('getSQL', false, true).sql.replace(/\n/g, " ").replace(/LIKE/g, "ILIKE");
  377. ;
  378. model.SqlWhereJson = JSON.stringify(queryelmnt.queryBuilder('getSQL', false, true));
  379. }
  380. else {
  381. model.SqlWhere = "";
  382. model.SqlWhereJson = "";
  383. }
  384. model.String7 = true;
  385. model.DelayTime = 0;
  386. model.ParentActionId = Unibase.Platform.Automation.Components.SendWhatsApp.Instance().ParentActionId;
  387. model.AutoApproved = $('#chkAutoApprovedWhatsapp').is(':checked');
  388. model.RecipientsData = recipients;
  389. model.RowIndex = Unibase.Platform.Automation.Components.SendWhatsApp.Instance().RowIndex;
  390. if (Unibase.Platform.Automation.Components.SendWhatsApp.Instance().IsAutomationMode) {
  391. if (Unibase.Platform.Automation.Components.SendWhatsApp.Instance().AutomationMode == Unibase.Platform.Automation.Enums.AutomationMode.NormalMode) {
  392. Unibase.Platform.Automation.Components.Rule.Instance().RuleActionsArray(model);
  393. $('#' + containerid).modal('hide');
  394. $('#' + containerid).remove();
  395. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  396. }
  397. else {
  398. model.RuleId = eval("bizgaze_automation_flow_main.getruleid()");
  399. Automation.Managers.RuleManager.Instance().saveRuleAction(model).then(function (response) {
  400. if (response.status == Unibase.Data.Status.Error) {
  401. MessageHelper.Instance().showError(response.message, "Validate_WhatsAppAction");
  402. }
  403. else {
  404. MessageHelper.Instance().showSuccess(response.message, "Validate_WhatsAppAction");
  405. $('#' + containerid).modal('hide');
  406. $('#' + containerid).remove();
  407. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  408. var actionname = response.result.RuleActionName;
  409. eval("bizgaze_automation_flow_main.savewhatsappblock('" + response.result.RuleActionId + "','" + actionname + "')");
  410. }
  411. });
  412. }
  413. }
  414. else {
  415. model.RuleId = Unibase.Platform.Automation.Components.SendWhatsApp.Instance().RuleId;
  416. model.EventGroupId = Unibase.Platform.Automation.Components.SendWhatsApp.Instance().EventGroupId;
  417. model.RuleEventId = Unibase.Platform.Automation.Components.SendWhatsApp.Instance().RuleEventId;
  418. model.ActionId = Unibase.Platform.Automation.Components.SendWhatsApp.Instance().ActionId;
  419. model.ParentActionId = Unibase.Platform.Automation.Components.SendWhatsApp.Instance().ParentActionId;
  420. Automation.Managers.RuleManager.Instance().saveRuleAction(model).then(function (response) {
  421. if (response.status == Unibase.Data.Status.Error) {
  422. MessageHelper.Instance().showError(response.message, "Validate_WhatsAppAction");
  423. }
  424. else {
  425. MessageHelper.Instance().showSuccess(response.message, "Validate_WhatsAppAction");
  426. $('#' + containerid).modal('hide');
  427. $('#' + containerid).remove();
  428. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  429. }
  430. });
  431. }
  432. }
  433. ToggleWhatsAppConditions() {
  434. $('#ActionConditionsDiv').toggleClass("hidden");
  435. if ($('.conditionicon').hasClass('fa-angle-down')) {
  436. $('.conditionicon').removeClass('fa-angle-down').addClass('fa-angle-up');
  437. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(Unibase.Platform.Automation.Components.SendNotification.Instance().RuleProviderId, null);
  438. }
  439. else {
  440. $('.conditionicon').removeClass('fa-angle-up').addClass('fa-angle-down');
  441. }
  442. }
  443. loadTemplates(ruleproviderid) {
  444. let templatetypeid = Number(Unibase.Platform.Templates.Enums.TemplateType.Mail);
  445. Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleProvider(ruleproviderid).then(function (response) {
  446. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/templates/gettemplatesautocomplatebytemplatetype/installedappid/' + response.InstalledAppId + '/templatetypeid/' + templatetypeid;
  447. AutoCompleteHelper.getHelper().Create("#Autocomplete_Template", "#hf_Template", url, function (response) {
  448. var data = response;
  449. });
  450. });
  451. }
  452. EditWhatsAppReminder(id, containerid) {
  453. let actionid = Number(id);
  454. $("#Spn_SendWhatsApp").text("Edit WhatsAppReminder");
  455. Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleAction(actionid).then(function (response) {
  456. $("#txtWhatsApp_RuleActionName").val(response.RuleActionName);
  457. $('#ddl_NotificationGrp option[value=' + response.NotificationGroupId + ']').prop('selected', true);
  458. if (!Unibase.Platform.Automation.Components.SendWhatsApp.Instance().IsAutomationMode) {
  459. Unibase.Platform.Automation.Components.SendWhatsApp.Instance().RuleId = response.RuleId;
  460. Unibase.Platform.Automation.Components.SendWhatsApp.Instance().RuleEventId = response.RuleEventId;
  461. Unibase.Platform.Automation.Components.SendWhatsApp.Instance().EventGroupId = response.EventGroupId;
  462. Unibase.Platform.Automation.Components.SendWhatsApp.Instance().ActionId = response.ActionId;
  463. Unibase.Platform.Automation.Components.SendWhatsApp.Instance().ParentActionId = response.ParentActionId;
  464. }
  465. if (response.ExecuteStatusId != Number(Unibase.Platform.Automation.Enums.ExecuteActionStatus.Approved))
  466. $("#chkAutoApprovedWhatsapp").prop("checked", false);
  467. else
  468. $("#chkAutoApprovedWhatsapp").prop("checked", true);
  469. $('.textArea_WhatsappBody').val(response.String5);
  470. $('#ddl_TemplateType').val(response.String2);
  471. $('#ddl_LanguageCode').val(response.String3);
  472. $('#Autocomplete_ProviderName').val(response.BString10);
  473. var datainfo = SendWhatsApp.whatsappsenders.find(x => x.SenderId == Number(response.BString11));
  474. $('#Autocomplete_SenderName').html('<option value=' + datainfo.SenderId + ' selected>' + datainfo.SenderName + '</option>');
  475. Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckContactColumns(response.Users);
  476. Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckSecondaryContactColumns(response.SecondaryUsers);
  477. Unibase.Platform.Automation.Components.ContactSelection.Instance().BindRecipients(response.RuleActionId);
  478. if (response.ResultActionId != null) {
  479. $('#ddl_ResultAction').val(response.ResultActionId);
  480. }
  481. if (response.SqlWhere != null && response.SqlWhere != "") {
  482. $('.conditionicon').removeClass('fa-angle-down').addClass('fa-angle-up');
  483. $("#ActionConditionsDiv").removeClass("hidden");
  484. }
  485. let templateid = Number(response.String1);
  486. Unibase.Platform.Templates.Managers.TemplateManager.Instance().getTemplateText(templateid).then(function (res) {
  487. var whatsapptemplate = new Option(res.result.TemplateName, res.result.TemplateId.toString(), true);
  488. $("#Autocomplete_Template").append(whatsapptemplate);
  489. });
  490. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(response.RuleProviderId, response.SqlWhere);
  491. eval('_floatingLabelHelper.init();');
  492. });
  493. }
  494. LoadBodyTokens(ruleproviderid) {
  495. Unibase.Platform.Automation.Managers.RuleManager.Instance().getTokens(ruleproviderid).then(function (response) {
  496. let cmbConditionProperties = document.getElementById('ddl_bodyTokens');
  497. $('#ddl_bodyTokens').empty();
  498. var defaultOpt1 = document.createElement("option");
  499. defaultOpt1.text = "Select Token";
  500. defaultOpt1.value = "0";
  501. cmbConditionProperties.appendChild(defaultOpt1);
  502. for (let i = 0; i <= response.length - 1; i++) {
  503. var opt = document.createElement("option");
  504. opt.text = response[i];
  505. opt.value = (i + 1).toString();
  506. cmbConditionProperties.appendChild(opt);
  507. }
  508. });
  509. }
  510. LoadWhatsAppData(Data) {
  511. for (var i = 0; i < Data.length; i++) {
  512. $("#txtWhatsApp_RuleActionName").val(Data[i].RuleActionName);
  513. $("#txtWhatsApp_MessageSubject").val(Data[i].BString1);
  514. $("#txtWhatsApp_MessageBody").val(Data[i].BString2);
  515. if (!Data[i].AutoApproved)
  516. $("#chkAutoApprovedWhatsapp").prop("checked", false);
  517. else
  518. $("#chkAutoApprovedWhatsapp").prop("checked", true);
  519. Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckContactColumns(Data[i].Users);
  520. Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckSecondaryContactColumns(Data[i].SecondaryUsers);
  521. $("#div_Subject").addClass('floating-label-form-group-with-value');
  522. $("#div_Body").addClass('floating-label-form-group-with-value');
  523. if (Data[i].RecipientsData != null) {
  524. $("#select2_Roles").val(Data[i].RecipientsData.RoleRecipients).trigger('change');
  525. $("#select2_Users").val(Data[i].RecipientsData.UserRecipients).trigger('change');
  526. }
  527. if (Data[i].SqlWhere != "" && Data[i].SqlWhere != null) {
  528. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(Unibase.Platform.Automation.Components.SendNotification.Instance().RuleProviderId, Data[i].SqlWhere);
  529. $("#btn_ActionConditions").addClass("hidden");
  530. $("#ActionConditionsDiv").removeClass("hidden");
  531. }
  532. eval('_floatingLabelHelper.init();');
  533. }
  534. }
  535. static Instance() {
  536. if (this.instance === undefined) {
  537. this.instance = new SendWhatsApp();
  538. }
  539. return this.instance;
  540. }
  541. }
  542. SendWhatsApp.whatsappsenders = [];
  543. Components.SendWhatsApp = SendWhatsApp;
  544. })(Components = Automation.Components || (Automation.Components = {}));
  545. })(Automation = Platform.Automation || (Platform.Automation = {}));
  546. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  547. })(Unibase || (Unibase = {}));