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.sms.js 52KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646
  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 SendSms 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",
  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/floatinglabels/floatinglabel.js",
  36. "apps/communications/managers/sms/smsmanager.js",
  37. "libs/querybuilder/query-builder.min.js",
  38. "libs/querybuilder/query-builder.standalone.min.js",
  39. "libs/querybuilder/query-builder.standalone.js",
  40. "libs/querybuilder/sql-parser.min.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_SendSms" 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_SendSMS">Create Sms</strong>
  54. </div>
  55. <div class="card-body scrollable" style="overflow-y: scroll;">
  56. <div class="bg-white card" id="divSendSms">
  57. <div id="Validate_SmsAction" 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="txtSms_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="SMSDetailsDiv">
  87. <div class="card-header">SMS Details</div>
  88. <div class="card-body">
  89. <div class="row">
  90. <div class="col-sm-6">
  91. <label for="lbl_Template" id="lbl_Template" class="font-bold">Template</label>
  92. <select id="Autocomplete_Template" class="form-control value-control" data-isdynamic="true">
  93. </select>
  94. <input type="hidden" id="hf_Template" />
  95. </div>
  96. </div><br />
  97. <div class="row">
  98. <div id="div_SMSBody" class="TextEditor col-sm-12">
  99. <inpu type="hidden" id="txthdn__SMSBody" class="value-control" value="">
  100. <span class="text-danger" id="spnIsRequired__SMSBody"></span>
  101. <div class="type-control summernote__SMSBody" style="display: block;" id="summernote__SMSBody" data-propdoctypename="SMSBody" data-required="" placeholder="SMS Body" data-placeholder="SMS Body" data-label="SMS Body"></div>
  102. <label for="Validation" id="lblValidation"></label>
  103. </inpu>
  104. </div>
  105. </div>
  106. </div>
  107. </div>
  108. <div class="bg-white card Advanced_optionsdata">
  109. <div class="card-header"><i class="fa fa-angle-down arrowicon mr-1" style="font-size:20px" onclick="Unibase.Platform.Automation.Components.SendSms.Instance().Toggleadvancedoptions()"></i>Advanced Options</div>
  110. <div class="card-body Advanced_options hidden">
  111. <div class="row">
  112. <div class="col-sm-6 floating-label-form-group floating-label-form-group-with-value">
  113. <label class="Message_type">Message Type</label>
  114. <select class="form-control" id="message_result">
  115. <option value="0">Success</option>
  116. <option value="1">Warning</option>
  117. <option value="2">Error</option>
  118. </select>
  119. </div>
  120. <div class="col-sm-6">
  121. <input type="checkbox" class="test_data mt-50" id="chkAutoApprovedSMS" checked>Perform this Action
  122. </div>
  123. </div>
  124. </div>
  125. </div>
  126. <div class="bg-white card hidden" id="DocTypesDiv">
  127. <div class="card-header">DocTypes</div>
  128. <div class="card-body">
  129. <div class="SelectDocType col-sm-12">
  130. <!--For Mapping of datalists-->
  131. </div>
  132. </div>
  133. </div>
  134. <div class="bg-white card" id="ActionConditionsDivdata">
  135. <div class="card-header"><i class="fa fa-angle-down conditionicon mr-1" style="font-size:20px" onclick="Unibase.Platform.Automation.Components.SendSms.Instance().ToggleSendSmsConditions();"></i>Condition Details</div>
  136. <div class="card-body hidden" id="ActionConditionsDiv">
  137. <div class="ActionConditions">
  138. <!--For Action Conditions-->
  139. </div>
  140. </div>
  141. </div>
  142. <div class="bg-white card" id="SelectstagesDiv">
  143. <div class="card-header">Stage Event</div>
  144. <div class="card-body">
  145. <div class="stages_drp row"><div class="col-sm-6"><label class="from_label">From Stage</label><select class="from_stage_sms form-control"></select></div><div class="col-sm-6"><label class="_label">To Stage</label><select class="to_stage_sms form-control"></select></div></div>
  146. </div></div>
  147. <div class="bg-white card" id="SelectRoleDiv">
  148. <div class="card-header">Send To Details</div>
  149. <div class="card-body">
  150. <div class="ContactSelection col-sm-12">
  151. <!--For ContactSelection page-->
  152. </div>
  153. </div>
  154. </div>
  155. <div class="bg-white card" id="external_recipientsdiv">
  156. <div class="card-header">External Recipients</div>
  157. <div class="card-body">
  158. <div class="reportautocomplete">
  159. <div class="row">
  160. <div class="col-sm-6">
  161. <div class="input-group">
  162. <label for="Report" class="font-bold">External Report</label>
  163. <select id="txtAutoComplete_ReportsExternal" class="form-control text-control" style="width:100%;" placeholder="Report" data-placeholder="Report" data-label="" data-istagselect="true"></select>
  164. <input type="hidden" id="hf_Autocomplete_ReportsExternal" class="form-control value-control" data-isdynamic="true" /></div></div></div></div>
  165. <div class="external_reportcolumns mt-4"><div class="row externalreport_row"></div></div></div></div>
  166. <div class="bg-white card col-sm-3 hidden" id="btn_ExternalRecipients">
  167. <button type="button" class="btn btn-primary" onclick="Unibase.Platform.Automation.Components.SendSms.Instance().ToggleExternalRecipients();">External Recipients</button>
  168. </div>
  169. <div class="bg-white card hidden" id="ExternalRecipientsDiv">
  170. <div class="card-header">External Recipients</div>
  171. <div class="card-body">
  172. <div class="ExternalRecipients">
  173. </div>
  174. </div>
  175. </div>
  176. <div class="bg-white card col-sm-3" id="btn_SendFrom">
  177. <button type="button" class="btn btn-primary" onclick="Unibase.Platform.Automation.Components.SendSms.Instance().ToggleSmsSendFrom();">Send From</button>
  178. </div>
  179. <div class="bg-white card hidden" id="SendFromDetailsDiv">
  180. <div class="card-header">Send From Details</div>
  181. <div class="card-body">
  182. <div class="row SendFrom">
  183. <div class="col-sm-6">
  184. <div class="input-group">
  185. <label for="lbl_ProviderName" id="lbl_ProviderName">Provider Name <span class="text-danger" id="span_ProviderName">*</span></label>
  186. <select id="Autocomplete_ProviderName" class="form-control text-control required" style="width:100%;" placeholder="ProviderName" data-placeholder="ProviderName" data-label="" data-istagselect="true"></select>
  187. <input type="hidden" id="hf_ProviderName" class="form-control value-control" data-isdynamic="true" />
  188. </div>
  189. </div>
  190. <div class="col-sm-6">
  191. <div class="input-group">
  192. <label for="lbl_SendSmsFrom" id="lbl_SendFrom">Sender Name<span class="text-danger" id="span_smssendfrom">*</span></label>
  193. <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>
  194. <input type="hidden" id="hf_SenderName" class="form-control value-control" data-isdynamic="true" />
  195. </div>
  196. </div>
  197. </div>
  198. </div>
  199. </div>
  200. </div>
  201. <div class="bg-white card-footer footer" id="CreateSmsFooter">
  202. <a href="javascript:;" id="btnCloseSms" class="btn btn-light btn-sm mr-auto "> Close</a>
  203. <a href="javascript:;" id="btnSaveSms" class="btn btn-primary btn-sm"> Save</a>
  204. </div>
  205. </div>
  206. </form>`;
  207. return html;
  208. }
  209. load(id, containerid, callback) {
  210. return __awaiter(this, void 0, void 0, function* () {
  211. var instance = this;
  212. Unibase.Platform.Automation.Components.SendSms.Instance().ActionId = instance.ActionId;
  213. Unibase.Platform.Automation.Components.SendSms.Instance().RuleActionData = instance.RuleActionData;
  214. Unibase.Platform.Automation.Components.SendSms.Instance().RowIndex = instance.RowIndex;
  215. Unibase.Platform.Automation.Components.SendSms.Instance().AutomationMode = instance.AutomationMode;
  216. Unibase.Platform.Automation.Components.SendSms.Instance().ParentActionId = instance.ParentActionId;
  217. Unibase.Platform.Automation.Components.SendSms.Instance().IsAutomationMode = instance.IsAutomationMode;
  218. yield Unibase.Platform.Automation.Components.NotificationGroup.Instance().LoadNotificationGroups();
  219. Unibase.Platform.Automation.Components.ExternalRecipients.Instance().loadreports();
  220. if (instance.AutomationMode == Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode) {
  221. eval('bizgaze_automation_flow_main.getcontainerid("' + containerid + '")');
  222. }
  223. $("#btnCloseSms").click(function () {
  224. $('#' + containerid).modal('hide');
  225. $('#' + containerid).remove();
  226. if (Unibase.Platform.Automation.Components.SendSms.Instance().AutomationMode == Unibase.Platform.Automation.Enums.AutomationMode.NormalMode) {
  227. if (Unibase.Platform.Automation.Components.SendSms.Instance().AutomationMode) {
  228. if (Unibase.Platform.Automation.Components.SendSms.Instance().IsAutomationMode) {
  229. Unibase.Platform.Automation.Components.Rule.Instance().ChangeAction(instance.RowIndex, id);
  230. }
  231. }
  232. }
  233. else {
  234. eval("bizgaze_automation_flow_main.getpopupclosed()");
  235. }
  236. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  237. });
  238. $('#creategrp_btn').click(function () {
  239. Unibase.Platform.Automation.Components.NotificationGroup.Instance().init(0, null, true);
  240. });
  241. $("#txtAutoComplete_ReportsExternal").change(function () {
  242. var reportid = Number($('#txtAutoComplete_ReportsExternal option:selected').val());
  243. Unibase.Platform.Automation.Components.ExternalRecipients.Instance().loadexternalreportcolumns(reportid);
  244. });
  245. $("#btnSaveSms").click(function () {
  246. let appcontrolid = "frmUnibase_SendSms";
  247. let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(appcontrolid);
  248. if (result == false) {
  249. MessageHelper.Instance().showError("Mandatory fields are missing", "Validate_SmsAction");
  250. return false;
  251. }
  252. else {
  253. Unibase.Platform.Automation.Components.SendSms.Instance().SaveSmsAction(id, containerid);
  254. }
  255. });
  256. if (instance.RuleInstance.IsStageChangeEvent()) {
  257. $('#SelectstagesDiv').removeClass('d-none');
  258. yield Unibase.Platform.Automation.Components.SendSms.Instance().LoadAppStages();
  259. }
  260. else {
  261. $('#SelectstagesDiv').addClass('d-none');
  262. }
  263. var _fileCacheHelper = Platform.Helpers.FileCacheHelper.Instance();
  264. yield _fileCacheHelper.loadJsFileAsync("platform/automation/components/contactselection.js", function () {
  265. jQuery(".ContactSelection").html(Unibase.Platform.Automation.Components.ContactSelection.Instance().init(instance.RuleProviderId));
  266. });
  267. yield _fileCacheHelper.loadJsFileAsync("platform/automation/components/externalrecipients.js", function () {
  268. jQuery(".ExternalRecipients").html(Unibase.Platform.Automation.Components.ExternalRecipients.Instance().init(instance.RuleProviderId));
  269. Unibase.Platform.Automation.Components.ExternalRecipients.Instance().load(instance.RuleProviderId);
  270. });
  271. if (instance.ParentActionId != 0) {
  272. Unibase.Platform.Automation.Components.ContactSelection.Instance().getResultActions(instance.ParentActionId);
  273. yield Unibase.Platform.Automation.Components.SendSms.Instance().GetRuleActionInfo(Number(instance.ParentActionId));
  274. $('#ddl_NotificationGrp').prop("disabled", true);
  275. $('#creategrp_btn').addClass('d-none');
  276. }
  277. if (id != "") {
  278. setTimeout(function () { Unibase.Platform.Automation.Components.SendSms.Instance().EditSmsAction(id); }, 10);
  279. }
  280. if (instance.RuleProviderId != 0) {
  281. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(instance.RuleProviderId, null);
  282. Unibase.Platform.Automation.Managers.RuleManager.Instance().getTokens(instance.RuleProviderId).then(function (response) {
  283. var Data = new Array();
  284. for (let i = 0; i <= response.length - 1; i++) {
  285. var result = response[i];
  286. Data.push(result);
  287. }
  288. Unibase.Platform.Automation.Components.SendSms.Instance().loadSummernote(Data);
  289. });
  290. Unibase.Platform.Automation.Components.SendSms.Instance().loadTemplates(instance.RuleProviderId);
  291. }
  292. var url = _appsettings.server_url() + '/apis/v4/bizgaze/communications/sms/SmsProvidersAutocomplete';
  293. AutoCompleteHelper.getHelper().Create("#Autocomplete_ProviderName", "#hf_ProviderName", url, function (response) {
  294. var data = response;
  295. });
  296. $("#Autocomplete_ProviderName").change(function () {
  297. var url = _appsettings.server_url() + '/apis/v4/bizgaze/communications/sms/SmsSenderAutocomplete/smsproviderid/' + Number($("#Autocomplete_ProviderName option:selected").val());
  298. AutoCompleteHelper.getHelper().Create("#Autocomplete_SenderName", "#hf_SenderName", url, function (response) {
  299. var data = response;
  300. });
  301. });
  302. $("#Autocomplete_Template").change(function () {
  303. let templateid = Number($("#Autocomplete_Template option:selected").val());
  304. Unibase.Platform.Templates.Managers.TemplateManager.Instance().getTemplateText(Number(templateid)).then(function (response) {
  305. if (response.result != null) {
  306. var templatetext = HtmlHelper.getHelper().decode(response.result.TemplateText);
  307. $('.summernote__SMSBody').summernote("code", templatetext);
  308. }
  309. });
  310. });
  311. if (instance.RuleActionData.length == 0 && id == "") {
  312. Unibase.Platform.Automation.Components.SendSms.Instance().getDefaultSmsSender();
  313. }
  314. if (instance.RuleActionData.length != 0) {
  315. Unibase.Platform.Automation.Components.SendSms.Instance().LoadSmsData(instance.RuleActionData);
  316. }
  317. });
  318. }
  319. Toggleadvancedoptions() {
  320. if ($('.arrowicon').hasClass('fa-angle-down')) {
  321. $('.arrowicon').removeClass('fa-angle-down').addClass('fa-angle-up');
  322. }
  323. else {
  324. $('.arrowicon').removeClass('fa-angle-up').addClass('fa-angle-down');
  325. }
  326. $('.Advanced_options').toggleClass("hidden");
  327. }
  328. ToggleSendSmsConditions() {
  329. $('#ActionConditionsDiv').toggleClass("hidden");
  330. if ($('.conditionicon').hasClass('fa-angle-down')) {
  331. $('.conditionicon').removeClass('fa-angle-down').addClass('fa-angle-up');
  332. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(Unibase.Platform.Automation.Components.SendSms.Instance().RuleProviderId, null);
  333. }
  334. else {
  335. $('.conditionicon').removeClass('fa-angle-up').addClass('fa-angle-down');
  336. }
  337. }
  338. LoadAppStages() {
  339. return __awaiter(this, void 0, void 0, function* () {
  340. var html = '';
  341. var fromstage = '<option value="0">Select FromStage</option>';
  342. var tostage = '<option value="0">Select ToStage</option>';
  343. var installeappid = Unibase.Platform.Automation.Components.Rule.Instance().RuleInstalledAppId;
  344. yield Unibase.Platform.Apps.Managers.StageManager.Instance().getStages(installeappid).then(function (response) {
  345. if (response.result != null) {
  346. for (let i = 0; i < response.result.length; i++) {
  347. var data = response.result[i];
  348. html += '<option value=' + data.StageId + '>' + data.StageName + '</option>';
  349. }
  350. }
  351. $('.from_stage_sms').html(fromstage + html);
  352. $('.to_stage_sms').html(tostage + html);
  353. });
  354. });
  355. }
  356. ToggleExternalRecipients() {
  357. $("#ExternalRecipientsDiv").toggle(function () {
  358. $("#btn_ExternalRecipients").addClass("hidden");
  359. $("#ExternalRecipientsDiv").removeClass("hidden");
  360. });
  361. }
  362. ToggleSmsSendFrom() {
  363. $("#SendFromDetailsDiv").toggle(function () {
  364. $("#btn_SendFrom").addClass("hidden");
  365. $("#SendFromDetailsDiv").removeClass("hidden");
  366. });
  367. }
  368. EditSmsAction(id) {
  369. return __awaiter(this, void 0, void 0, function* () {
  370. let actionid = Number(id);
  371. $("#Spn_SendSMS").text("Edit Sms");
  372. yield Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleAction(actionid).then(function (response) {
  373. $("#txtSms_RuleActionName").val(response.RuleActionName);
  374. $('#message_result').val(Number(response.BString5));
  375. $('#ddl_NotificationGrp option[value=' + response.NotificationGroupId + ']').prop('selected', true);
  376. if (response.ResultActionId != null) {
  377. $('#ddl_ResultAction').val(response.ResultActionId);
  378. }
  379. if (!Unibase.Platform.Automation.Components.SendSms.Instance().IsAutomationMode) {
  380. Unibase.Platform.Automation.Components.SendSms.Instance().RuleId = response.RuleId;
  381. Unibase.Platform.Automation.Components.SendSms.Instance().RuleEventId = response.RuleEventId;
  382. Unibase.Platform.Automation.Components.SendSms.Instance().EventGroupId = response.EventGroupId;
  383. Unibase.Platform.Automation.Components.SendSms.Instance().ActionId = response.ActionId;
  384. Unibase.Platform.Automation.Components.SendSms.Instance().ParentActionId = response.ParentActionId;
  385. }
  386. if (response.ExecuteStatusId != Number(Unibase.Platform.Automation.Enums.ExecuteActionStatus.Approved))
  387. $("#chkAutoApprovedSMS").prop("checked", false);
  388. else
  389. $("#chkAutoApprovedSMS").prop("checked", true);
  390. $("#btn_SendFrom").addClass("hidden");
  391. $("#SendFromDetailsDiv").removeClass("hidden");
  392. if (response.FromStage != 0 && response.ToStage != 0) {
  393. $('.from_stage_sms option[value=' + response.FromStage + ' ]').prop('selected', true);
  394. $('to_stage_sms option[value=' + response.ToStage + ']').prop('selected', true);
  395. }
  396. if (response.ExternalReportId != 0) {
  397. $('#txtAutoComplete_ReportsExternal option[value=' + response.ExternalReportId + ']').prop("selected", true);
  398. }
  399. Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckContactColumns(response.Users);
  400. Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckSecondaryContactColumns(response.SecondaryUsers);
  401. Unibase.Platform.Automation.Components.ContactSelection.Instance().BindRecipients(response.RuleActionId);
  402. Unibase.Apps.Communications.Managers.SmsManager.Instance().getSmsSender(Number(response.String3)).then(function (response) {
  403. if (response.status == Unibase.Data.Status.Success) {
  404. var smsprovideroption = new Option(response.result.SmsProviderName, response.result.SmsProviderId.toString(), true);
  405. $("#Autocomplete_ProviderName").append(smsprovideroption);
  406. var url = _appsettings.server_url() + '/apis/v4/bizgaze/communications/sms/SmsSenderAutocomplete/smsproviderid/' + Number($("#Autocomplete_ProviderName option:selected").val());
  407. AutoCompleteHelper.getHelper().Create("#Autocomplete_SenderName", "#hf_SenderName", url, function (res) {
  408. var data = res;
  409. var smssenderoption = new Option(response.result.SmsSenderName, response.result.SmsSenderId.toString(), true);
  410. $("#Autocomplete_SenderName").append(smssenderoption);
  411. });
  412. }
  413. });
  414. let templateid = Number(response.BString1);
  415. Unibase.Platform.Templates.Managers.TemplateManager.Instance().getTemplateText(templateid).then(function (res) {
  416. var smstemplate = new Option(res.result.TemplateName, res.result.TemplateId.toString(), true);
  417. $("#Autocomplete_Template").append(smstemplate);
  418. });
  419. $('.summernote__SMSBody').summernote("code", response.BString2);
  420. if (response.SqlWhere != null && response.SqlWhere != "") {
  421. $('.conditionicon').removeClass('fa-angle-down').addClass('fa-angle-up');
  422. $("#ActionConditionsDiv").removeClass("hidden");
  423. }
  424. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(response.RuleProviderId, response.SqlWhere);
  425. eval('_floatingLabelHelper.init();');
  426. });
  427. });
  428. }
  429. LoadSmsData(Data) {
  430. for (var i = 0; i < Data.length; i++) {
  431. $("#txtSms_RuleActionName").val(Data[i].RuleActionName);
  432. if (!Data[i].AutoApproved)
  433. $("#chkAutoApprovedSMS").prop("checked", false);
  434. else
  435. $("#chkAutoApprovedSMS").prop("checked", true);
  436. Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckContactColumns(Data[i].Users);
  437. Unibase.Platform.Automation.Components.ContactSelection.Instance().CheckSecondaryContactColumns(Data[i].SecondaryUsers);
  438. if (Data[i].SqlWhere != "" && Data[i].SqlWhere != null) {
  439. $(".conditionicon").addClass("fa-angle-up").removeClass('fa-fa-angle-down');
  440. $("#ActionConditionsDiv").removeClass("hidden");
  441. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(Unibase.Platform.Automation.Components.SendSms.Instance().RuleProviderId, Data[i].SqlWhere);
  442. }
  443. Unibase.Apps.Communications.Managers.SmsManager.Instance().getSmsSender(Number(Data[i].String3)).then(function (response) {
  444. if (response.status == Unibase.Data.Status.Success) {
  445. var smsprovideroption = new Option(response.result.SmsProviderName, response.result.SmsProviderId.toString(), true);
  446. $("#Autocomplete_ProviderName").append(smsprovideroption);
  447. var url = _appsettings.server_url() + '/apis/v4/bizgaze/communications/sms/SmsSenderAutocomplete/smsproviderid/' + Number($("#Autocomplete_ProviderName option:selected").val());
  448. AutoCompleteHelper.getHelper().Create("#Autocomplete_SenderName", "#hf_SenderName", url, function (res) {
  449. var data = res;
  450. var smssenderoption = new Option(response.result.SmsSenderName, response.result.SmsSenderId.toString(), true);
  451. $("#Autocomplete_SenderName").append(smssenderoption);
  452. });
  453. }
  454. });
  455. let templateid = Number(Data[i].BString1);
  456. Unibase.Platform.Templates.Managers.TemplateManager.Instance().getTemplateText(templateid).then(function (res) {
  457. var smstemplate = new Option(res.result.TemplateName, res.result.TemplateId.toString(), true);
  458. $("#Autocomplete_Template").append(smstemplate);
  459. });
  460. $('.summernote__SMSBody').summernote("code", Data[i].BString2);
  461. eval('_floatingLabelHelper.init();');
  462. }
  463. }
  464. getDefaultSmsSender() {
  465. Unibase.Apps.Communications.Managers.SmsManager.Instance().getDefaultSmsSender().then(function (response) {
  466. if (response.status == Unibase.Data.Status.Success) {
  467. var smsprovideroption = new Option(response.result.SmsProviderName, response.result.SmsProviderId.toString(), true);
  468. $("#Autocomplete_ProviderName").append(smsprovideroption);
  469. var url = _appsettings.server_url() + '/apis/v4/bizgaze/communications/sms/SmsSenderAutocomplete/smsproviderid/' + Number($("#Autocomplete_ProviderName option:selected").val());
  470. AutoCompleteHelper.getHelper().Create("#Autocomplete_SenderName", "#hf_SenderName", url, function (res) {
  471. var data = res;
  472. var smssenderoption = new Option(response.result.SmsSenderName, response.result.SmsSenderId.toString(), true);
  473. $("#Autocomplete_SenderName").append(smssenderoption);
  474. });
  475. }
  476. });
  477. }
  478. SaveSmsAction(smsid, containerid) {
  479. var instance = this;
  480. let ruleactionid = Number(smsid);
  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. var externalrecipients = Unibase.Platform.Automation.Components.ExternalRecipients.Instance().getexternalrecipients();
  486. let externalroles = Unibase.Platform.Automation.Components.ExternalRecipients.Instance().GetExternalRoles();
  487. let externalusers = Unibase.Platform.Automation.Components.ExternalRecipients.Instance().GetExternalUsers();
  488. var contents = $('.summernote__SMSBody').summernote('code');
  489. var plainText = $("<p>" + contents + "</p>").text();
  490. let model = new Unibase.Platform.Automation.Requests.RuleAction();
  491. model.RuleActionId = ruleactionid;
  492. model.ActionId = Unibase.Platform.Automation.Components.SendSms.Instance().ActionId;
  493. model.RuleId = 0;
  494. model.NotificationGroupId = $('#ddl_NotificationGrp').val() == undefined ? 0 : Number($('#ddl_NotificationGrp').val());
  495. if (model.NotificationGroupId == 0) {
  496. MessageHelper.Instance().showError("Please Select Notification Group", "Validate_SmsAction");
  497. return;
  498. }
  499. if (instance.RuleInstance.IsStageChangeEvent()) {
  500. model.FromStage = $('.from_stage_sms option:selected').val() != "0" ? Number($('.from_stage option:selected').val()) : 0;
  501. model.ToStage = $('.to_stage_sms option:selected').val() != "0" ? Number($('.to_stage option:selected').val()) : 0;
  502. }
  503. model.RuleActionName = $("#txtSms_RuleActionName").val().toString();
  504. model.Users = contactcolumns;
  505. model.String4 = Number($("#Autocomplete_ProviderName option:selected").val());
  506. model.String3 = $("#Autocomplete_SenderName option:selected").val().toString();
  507. model.BString1 = $("#Autocomplete_Template option:selected").val() == undefined || null ? "0" : $("#Autocomplete_Template option:selected").val().toString();
  508. model.BString2 = plainText;
  509. model.BString6 = externalroles;
  510. model.BString7 = externalusers;
  511. model.BString5 = $('#message_result option:selected').val().toString();
  512. model.ExternalReportId = ($("#txtAutoComplete_ReportsExternal option:selected").val() == undefined) ? 0 : Number($("#txtAutoComplete_ReportsExternal option:selected").val());
  513. model.ExternalReportColumnId = Number($("#txtAutoComplete_ReportColumns option:selected").val());
  514. model.ProviderColumnId = Number($("#txtAutoComplete_ProviderColumns option:selected").val());
  515. let query = queryelmnt.queryBuilder('getSQL', false, true);
  516. if (query != null) {
  517. model.SqlWhere = queryelmnt.queryBuilder('getSQL', false, true).sql.replace(/\n/g, " ").replace(/LIKE/g, "ILIKE");
  518. ;
  519. model.SqlWhereJson = JSON.stringify(queryelmnt.queryBuilder('getSQL', false, true));
  520. }
  521. else {
  522. model.SqlWhere = "";
  523. model.SqlWhereJson = "";
  524. }
  525. model.ResultActionId = $("#ddl_ResultAction option:selected").val() == undefined ? 0 : Number($("#ddl_ResultAction option:selected").val());
  526. if (model.ResultActionId != 0) {
  527. model.ResultActionName = $("#ddl_ResultAction option:selected").text();
  528. }
  529. else {
  530. model.ResultActionName = "";
  531. }
  532. model.DelayTime = 0;
  533. model.ParentActionId = Unibase.Platform.Automation.Components.SendSms.Instance().ParentActionId;
  534. model.AutoApproved = $('#chkAutoApprovedSMS').is(':checked');
  535. model.RecipientsData = recipients;
  536. model.SecondaryUsers = secondarycontactcolumns;
  537. model.ExternalRecipients = externalrecipients;
  538. model.RowIndex = Unibase.Platform.Automation.Components.SendSms.Instance().RowIndex;
  539. if (Unibase.Platform.Automation.Components.SendSms.Instance().IsAutomationMode) {
  540. if (Unibase.Platform.Automation.Components.SendSms.Instance().AutomationMode == Unibase.Platform.Automation.Enums.AutomationMode.NormalMode) {
  541. Unibase.Platform.Automation.Components.Rule.Instance().RuleActionsArray(model);
  542. $('#' + containerid).modal('hide');
  543. $('#' + containerid).remove();
  544. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  545. }
  546. else {
  547. model.RuleId = eval("bizgaze_automation_flow_main.getruleid()");
  548. Automation.Managers.RuleManager.Instance().saveRuleAction(model).then(function (response) {
  549. if (response.status == Unibase.Data.Status.Error) {
  550. MessageHelper.Instance().showError(response.message, "Validate_SmsAction");
  551. }
  552. else {
  553. MessageHelper.Instance().showSuccess(response.message, "Validate_SmsAction");
  554. $('#' + containerid).modal('hide');
  555. $('#' + containerid).remove();
  556. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  557. var actionname = response.result.RuleActionName;
  558. eval("bizgaze_automation_flow_main.savesmsblock('" + response.result.RuleActionId + "','" + actionname + "')");
  559. }
  560. });
  561. }
  562. }
  563. else {
  564. model.RuleId = Unibase.Platform.Automation.Components.SendSms.Instance().RuleId;
  565. model.EventGroupId = Unibase.Platform.Automation.Components.SendSms.Instance().EventGroupId;
  566. model.RuleEventId = Unibase.Platform.Automation.Components.SendSms.Instance().RuleEventId;
  567. model.ActionId = Unibase.Platform.Automation.Components.SendSms.Instance().ActionId;
  568. model.ParentActionId = Unibase.Platform.Automation.Components.SendSms.Instance().ParentActionId;
  569. Automation.Managers.RuleManager.Instance().saveRuleAction(model).then(function (response) {
  570. if (response.status == Unibase.Data.Status.Error) {
  571. MessageHelper.Instance().showError(response.message, "Validate_SmsAction");
  572. }
  573. else {
  574. MessageHelper.Instance().showSuccess(response.message, "Validate_SmsAction");
  575. $('#' + containerid).modal('hide');
  576. $('#' + containerid).remove();
  577. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  578. }
  579. });
  580. }
  581. }
  582. GetRuleActionInfo(parentactionid) {
  583. return __awaiter(this, void 0, void 0, function* () {
  584. yield Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleAction(parentactionid).then(function (response) {
  585. if (response != null) {
  586. var html = '<option value=' + response.NotificationGroupId + ' selected>' + response.NotificationGroupName + '</option>';
  587. $('#ddl_NotificationGrp').html('').html(html);
  588. }
  589. });
  590. });
  591. }
  592. loadSummernote(Data) {
  593. $(".summernote__SMSBody").summernote({
  594. height: 100,
  595. minHeight: null,
  596. maxHeight: null,
  597. placeholder: "SMS Body",
  598. disableDragAndDrop: true,
  599. codemirror: {
  600. mode: 'text/html',
  601. lineNumbers: true
  602. },
  603. toolbar: [
  604. ['font', ['bold', 'italic', 'underline']],
  605. ['color', ['color']],
  606. ['view', ['fullscreen', 'codeview', 'help']],
  607. ],
  608. hint: {
  609. match: /\B[@!](\w*)$/,
  610. search: function (keyword, callback) {
  611. callback($.grep(Data, function (i) {
  612. var user = i;
  613. return user.indexOf(keyword) === 0;
  614. }));
  615. },
  616. content: function (i) {
  617. var user = i;
  618. return $('<span>{{' + user + '}}</span>')[0];
  619. }
  620. }
  621. });
  622. }
  623. loadTemplates(ruleproviderid) {
  624. let templatetypeid = Number(Unibase.Platform.Templates.Enums.TemplateType.SMS);
  625. Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleProvider(ruleproviderid).then(function (response) {
  626. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/templates/gettemplatesautocomplatebytemplatetype/installedappid/' + response.InstalledAppId + '/templatetypeid/' + templatetypeid;
  627. AutoCompleteHelper.getHelper().Create("#Autocomplete_Template", "#hf_Template", url, function (response) {
  628. var data = response;
  629. });
  630. });
  631. }
  632. static Instance() {
  633. if (this.instance === undefined) {
  634. this.instance = new SendSms();
  635. }
  636. return this.instance;
  637. }
  638. }
  639. Components.SendSms = SendSms;
  640. })(Components = Automation.Components || (Automation.Components = {}));
  641. })(Automation = Platform.Automation || (Platform.Automation = {}));
  642. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  643. })(Unibase || (Unibase = {}));