Built files from Bizgaze WebServer
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

notificationbuilder.js 29KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634
  1. /// <reference path="../../platform/automation/managers/rulemanager.ts" />
  2. /// <reference path="../../platform/automation/enums/automationmode.ts" />
  3. /// <reference path="../../platform/core/helpers/messages/messagehelper.ts" />
  4. var elements =
  5. {
  6. SMS:
  7. {
  8. icon: "libs/flowy/assets/sms.svg",
  9. name: "SMS",
  10. color: "#eaeced",
  11. iconcolor: "#66636a"
  12. },
  13. TASK:
  14. {
  15. icon: "libs/flowy/assets/task.svg",
  16. name: "TASK",
  17. color: "#eaeced",
  18. iconcolor: "#e7d93d"
  19. },
  20. NOTIFICATION:
  21. {
  22. icon: "libs/flowy/assets/bell.svg",
  23. name: "NOTIFICATION",
  24. color: "#eaeced",
  25. iconcolor: "#f38d08"
  26. },
  27. EXECUTEQUERY:
  28. {
  29. icon: "libs/flowy/assets/database.svg",
  30. name: "EXECUTEQUERY",
  31. color: "#eaeced",
  32. iconcolor: "#4da782"
  33. },
  34. MAIL:
  35. {
  36. icon: "libs/flowy/assets/email.svg",
  37. name: "MAIL",
  38. color: "#eaeced",
  39. iconcolor: "#ff35a2"
  40. },
  41. APIINTEGRATOR:
  42. {
  43. icon: "libs/flowy/assets/database.svg",
  44. name: "APIINTEGRATOR",
  45. color: "#eaeced",
  46. iconcolor: "#c96e3f"
  47. },
  48. STAGECHANGE:
  49. {
  50. icon: "libs/flowy/assets/stage.svg",
  51. name: "STAGECHANGE",
  52. color: "#eaeced",
  53. iconcolor: "#60afb7"
  54. },
  55. SCHEDULAR:
  56. {
  57. icon: "libs/flowy/assets/time.svg",
  58. name: "SCHEDULAR",
  59. color: "#eaeced",
  60. iconcolor: "#9a6aab"
  61. },
  62. EVENT:
  63. {
  64. icon: "libs/flowy/assets/icon.png",
  65. name: "EVENT",
  66. color: "#959595",
  67. iconcolor: ""
  68. },
  69. WHATSAPP:
  70. {
  71. icon: "libs/flowy/assets/whatsapp.svg",
  72. name: "WHATSAPP",
  73. color: "#eaeced",
  74. iconcolor: "#1fa581"
  75. },
  76. }
  77. var containerid;
  78. var actions = [];
  79. var Ruleproviderid = 0;
  80. var smsblock;
  81. var emailblock;
  82. var notificationblock;
  83. var taskblock;
  84. var stagechangeblock;
  85. var etemplateblock;
  86. var whatsappblock;
  87. var eventblock;
  88. var apiblock;
  89. var disabledClick;
  90. var removefunction;
  91. var execuetqueryblock;
  92. var RuleId = 0;
  93. var importdata = '';
  94. var ispopupopened = false;
  95. var datainfo = [];
  96. var isdelete = false;
  97. var isplusbtn = false;
  98. var installedappid = 0;
  99. var rpid = 0;
  100. var rulename = "";
  101. var containerid;
  102. var _IsChildAction = false;
  103. var bizgaze_automation_flow_main = {
  104. //group id
  105. saveruleblock: function (id, name, ruleproviderid) {
  106. RuleId = Number(id);
  107. $('.rule_dataul').attr("id", RuleId).attr("alt", name);
  108. ispopupopened = false;
  109. //after saving disable all input fields
  110. $('#installedapp_dropdown').attr("disabled", "true");
  111. $('#ddl_RuleProvider').attr("disabled", "true");
  112. $("#txt_Rule").attr("disabled", "true");
  113. },
  114. saveeventblock: function (id, name) {
  115. if (Number(eventblock.id) == 0) {
  116. eventblock.id = id;
  117. $(eventblock).children().children().children('.action_data').append('<center>' + name + '</center>');
  118. $(eventblock).parent().closest('.box').parent().children('.parent-list').attr("id", id).attr("alt", name)
  119. }
  120. if (!$(eventblock).children().children().children('.event_name').hasClass('event_name'))
  121. {
  122. $(eventblock).children().children('.card_menu_wrapper').append('<input type="hidden" class="event_name">')
  123. }
  124. ispopupopened = false;
  125. },
  126. saveeventname(eventname) {
  127. $('.event_name').val(eventname)
  128. },
  129. savesmsblock: function (id, name) {
  130. smsblock.id = id;
  131. $(smsblock).children().children().children().children('.action_data').append(name);
  132. $(smsblock).children().children('.deleteicon').children('.deleteblock').addClass('d-none');
  133. $(smsblock).parent().closest('.box').parent().children('.parent-list').attr("id", id).attr("alt", name);
  134. ispopupopened = false;
  135. },
  136. savenotificationblock: function (id, name) {
  137. notificationblock.id = id;
  138. $(notificationblock).children().children().children().children('.action_data').append(name);
  139. $(notificationblock).children().children('.deleteicon').children('.deleteblock').addClass('d-none');
  140. ispopupopened = false;
  141. $(notificationblock).parent().closest('.box').parent().children('.parent-list').attr("id", id).attr("alt", name);
  142. },
  143. savewhatsappblock: function (id, name) {
  144. whatsappblock.id = id;
  145. $(whatsappblock).children().children().children().children('.action_data').append(name);
  146. $(whatsappblock).children().children('.deleteicon').children('.deleteblock').addClass('d-none');
  147. ispopupopened = false;
  148. $(whatsappblock).parent().closest('.box').parent().children('.parent-list').attr("id", id).attr("alt", name);
  149. },
  150. savetaskblock: function (id, name) {
  151. taskblock.id = id;
  152. ispopupopened = false;
  153. $(taskblock).children().children().children().children('.action_data').append(name);
  154. $(taskblock).children().children('.deleteicon').children('.deleteblock').addClass('d-none');
  155. $(taskblock).parent().closest('.box').parent().children('.parent-list').attr("id", id).attr("alt", name);
  156. },
  157. saveemailblock: function (id, name) {
  158. emailblock.id = id;
  159. ispopupopened = false;
  160. $(emailblock).children().children().children().children('.action_data').append(name);
  161. $(emailblock).children().children('.deleteicon').children('.deleteblock').addClass('d-none');
  162. $(emailblock).parent().closest('.box').parent().children('.parent-list').attr("id", id).attr("alt", name);
  163. },
  164. savestagechangeblock: function (id, name) {
  165. stagechangeblock.id = id;
  166. ispopupopened = false;
  167. $(stagechangeblock).children().children().children().children('.action_data').append(name);
  168. $(stagechangeblock).children().children('.deleteicon').children('.deleteblock').addClass('d-none');
  169. $(stagechangeblock).parent().closest('.box').parent().children('.parent-list').attr("id", id).attr("alt", name);
  170. },
  171. saveApiIntegratorblock: function (id, name) {
  172. apiblock.id = id;
  173. ispopupopened = false;
  174. $(apiblock).children().children().children().children('.action_data').append(name);
  175. $(apiblock).children().children('.deleteicon').children('.deleteblock').addClass('d-none');
  176. $(apiblock).parent().closest('.box').parent().children('.parent-list').attr("id", id).attr("alt", name);
  177. },
  178. saveExecuteQueryblock: function (id, name) {
  179. execuetqueryblock.id = id;
  180. ispopupopened = false;
  181. $(execuetqueryblock).children().children().children().children('.action_data').append(name);
  182. $(execuetqueryblock).children().children('.deleteicon').children('.deleteblock').addClass('d-none');
  183. $(execuetqueryblock).parent().closest('.box').parent().children('.parent-list').attr("id", id).attr("alt", name);
  184. },
  185. getruleid: function () {
  186. return RuleId;
  187. },
  188. import: function (data) {
  189. importdata = data.html;
  190. datainfo = data.data;
  191. },
  192. output: function () {
  193. eval("closemenu()");
  194. var datainfo = [];
  195. $('.parent-list').each(function () {
  196. if (Number($(this).attr("id")) != 0) {
  197. var info = {
  198. Name: $(this).attr("alt"),
  199. Id: Number($(this).attr("id")),
  200. Action: $(this).attr("data-name")
  201. }
  202. datainfo.push(info);
  203. }
  204. });
  205. var output = {
  206. data: datainfo, html: $('.treebody').html()
  207. }
  208. return output;
  209. },
  210. getruleid: function () {
  211. return RuleId;
  212. },
  213. getruleproviderid: function () {
  214. return Ruleproviderid;
  215. },
  216. getpopupclosed: function () {
  217. ispopupopened = false;
  218. },
  219. appendruleid: function (id) {
  220. RuleId = Number(id);
  221. },
  222. getcloseadvmode: function () {
  223. importdata = '';
  224. datainfo = [];
  225. RuleId = 0;
  226. },
  227. appendruleproviderid: function (id) {
  228. Ruleproviderid = Number(id);
  229. },
  230. getcontainerid: function (containerdata) {
  231. containerid = containerdata;
  232. },
  233. IsChildAction() {
  234. return _IsChildAction;
  235. }
  236. }
  237. // actions
  238. function load() {
  239. Unibase.Platform.Automation.Managers.RuleManager.Instance().getActions().then(function (response) {
  240. for (var i = 0; i <= response.length - 1; i++) {
  241. actions.push(response[i]);
  242. }
  243. });
  244. //previous data
  245. if (datainfo.length > 0) {
  246. //rule
  247. var info = datainfo.find(x => x.Action == "RULE");
  248. $("#txt_Rule").val(info.Name);
  249. //rule provider
  250. Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleProvider(Ruleproviderid).then(function (response) {
  251. if (response != null) {
  252. $('#installedapp_dropdown').html('');
  253. $('#installedapp_dropdown').html('<option value=' + response.InstalledAppId + ' selected>' + response.AppTitle + '</option>');
  254. $('#ddl_RuleProvider').html('');
  255. $('#ddl_RuleProvider').html('<option value=' + response.RuleProviderId + ' selected>' + response.RuleProviderName + '</option>');
  256. Unibase.Platform.Automation.Components.Rule.Instance().RuleInstalledAppId = Number(response.InstalledAppId);
  257. }
  258. });
  259. //disable all input fields
  260. $('#installedapp_dropdown').attr("disabled", "true");
  261. $('#ddl_RuleProvider').attr("disabled", "true");
  262. $("#txt_Rule").attr("disabled", "true");
  263. }
  264. //import data
  265. var html = importdata;
  266. if (html == '') {
  267. html = `<ul class="active d-flex" id="firstblock">
  268. <li class="element" style="z-index:0">
  269. <div class="box rootbox d-flex justify-content-center align-items-end" id="rootbox">
  270. <div class="boxcontent">
  271. <button class="btnStart">Start</button>
  272. </div>
  273. <div class="firstplus" id="startplusbtn" onclick="openmenu(this)">&#43;</div>
  274. <div class="boxlinedown"></div>
  275. <div class="sideline startSlideLine d-none"></div>
  276. <div class="sidemenu startmenuClass d-none" id="startmenu"></div></div>
  277. <ul data-name="RULE" class="active startedTree d-flex parent-list rule_dataul" id="0"></ul>
  278. </li>
  279. </ul>`;
  280. }
  281. $('.treebody').append(html);
  282. }
  283. function deleteblock(type) {
  284. isdelete = true;
  285. $(type).parent().closest('.box').parent().remove();
  286. if (ispopupopened) {
  287. ispopupopened = false;
  288. $('#' + containerid).modal('hide');
  289. $('#' + containerid).remove();
  290. }
  291. }
  292. function parentid(type) {
  293. var parentname = $(type).parent().closest('.box').parent().children('.parent-list').parent().parent().attr('data-name');
  294. var parentid = 0;
  295. if (parentname != "EVENT") {
  296. parentid = Number($(type).parent().closest('.box').parent().children('.parent-list').parent().parent().attr("id"));
  297. }
  298. return parentid;
  299. }
  300. //side menu
  301. function openmenu(e) {
  302. $('input[name="startbtnmenu"]').prop("checked", false);
  303. rpid = Number($('#ddl_RuleProvider option:selected').val());
  304. rulename = $('#txt_Rule').val();
  305. var parentname = $(e).parent().closest('.box').parent().children('.parent-list').attr('data-name');
  306. var data = [];
  307. isplusbtn = true;
  308. if ($(e).parent().find('.sideline').hasClass('d-none') && $(e).parent().find('.sidemenu').hasClass('d-none')) {
  309. $('.sidemenu').each(function () {
  310. if (!$(this).hasClass('d-none')) {
  311. $(this).addClass('d-none');
  312. }
  313. });
  314. $('.sideline').each(function () {
  315. if (!$(this).hasClass('d-none')) {
  316. $(this).addClass('d-none');
  317. }
  318. });
  319. $(e).parent().find('.sideline').removeClass('d-none');
  320. $(e).parent().find('.sidemenu').removeClass('d-none');
  321. }
  322. else {
  323. $(e).parent().find('.sideline').addClass('d-none');
  324. $(e).parent().find('.sidemenu').addClass('d-none');
  325. }
  326. if (rulename == "" || rpid == 0) {
  327. $(e).parent().find('.sidemenu').html(Errorhtml("Rule Fields Are Missing"));
  328. }
  329. else if (Number($(e).parent().parent().children('.parent-list').attr("id")) == 0 && parentname != "RULE") {
  330. $(e).parent().find('.sidemenu').html(Errorhtml("Please Save Parent"));
  331. }
  332. else if ($(e).parent().find('.sidemenu').hasClass('dataadded') != true) {
  333. $(e).parent().find('.sidemenu').addClass('dataadded');
  334. if (parentname != "RULE") {
  335. data = ["SMS", "NOTIFICATION", "MAIL", "EXECUTEQUERY", "STAGECHANGE", "APIINTEGRATOR", "TASK","WHATSAPP"];
  336. }
  337. else {
  338. data = ["EVENT"];
  339. }
  340. $(e).parent().find('.sidemenu').html(menubarfunction(data));
  341. }
  342. }
  343. function closemenu() {
  344. if (!isplusbtn) {
  345. $('.sidemenu').each(function () {
  346. if (!$(this).hasClass('d-none')) {
  347. $(this).addClass('d-none');
  348. }
  349. });
  350. $('.sideline').each(function () {
  351. if (!$(this).hasClass('d-none')) {
  352. $(this).addClass('d-none');
  353. }
  354. });
  355. }
  356. else {
  357. isplusbtn = false;
  358. }
  359. }
  360. function Errorhtml(message) {
  361. var html =
  362. `<div class="d-flex flex-column error_menu" style="gap:0.3rem"><div class="option_Error w-100 px-2 d-flex justify-content-start align-items-center">
  363. <i class="fa fa-exclamation-circle" style="color:red;font-size:12px"></i>
  364. <label class="ml-1 mt-1 error_message" for="event_startbtnmenu">${message}</label>
  365. </div></div>`;
  366. return html;
  367. }
  368. function ruleproviders() {
  369. var installedappid = Number($('#installedapp_dropdown option:selected').val());
  370. Unibase.Platform.Automation.Components.Rule.Instance().RuleInstalledAppId = installedappid;
  371. Unibase.Platform.Automation.Managers.RuleManager.Instance().loadRuleProviders(installedappid).then(function (response) {
  372. var html = "";
  373. if (response.length > 0) {
  374. for (let i = 0; i < response.length; i++) {
  375. html += '<option value=' + response[i].RuleProviderId + '>' + response[i].RuleProviderName + '</option>';
  376. }
  377. $('#ddl_RuleProvider').append(html);
  378. }
  379. });
  380. }
  381. function ruleprovideridinfo() {
  382. Ruleproviderid = Number($('#ddl_RuleProvider option:selected').val());
  383. }
  384. //card design
  385. function getcarddesign(event) {
  386. var html = "";
  387. if (event.name != "EVENT") {
  388. return `<div class="boxcontent parnet">
  389. <div class="cardTree diffcard" id="0" onclick="popup(this)">
  390. <input type="hidden" class="action_name" value="${event.name}">
  391. <div class="d-flex flex-column justify-content-between h-100" style="background-color:${elements[event.name].color}">
  392. <div class="align-items-center card_menu_wrapper d-flex justify-content-center justify-content-end p-3" style="background-color:${elements[event.name].iconcolor}" >
  393. <img src="${elements[event.name].icon}" style="color:white;font-size:20px;height:20px;width:20px;margin-top:2px"></i>
  394. </div>
  395. <div class="d-flex justify-content-center flex-column w-60">
  396. <center><div style="color:${elements[event.name].iconcolor}"><center><b class="mr-10">${event.name}</b></center></div></center>
  397. <center><div class="action_data text-truncate w-50 mr-10"></div></center>
  398. </div>
  399. <div class="deleteicon p-2" data-delete="${event.name}">
  400. <i class="fa fa-trash deleteblock" onclick="deleteblock(this)"></i>
  401. </div>
  402. </div>
  403. <div class="sideline d-none"></div>
  404. <div class="sidemenu d-none"></div>
  405. </div>
  406. </div>`;
  407. }
  408. else {
  409. return `<div class="boxcontent eventbox">
  410. <div class="cardTree" id="0" onclick="popup(this)">
  411. <input type="hidden" class="action_name" value="${event.name}">
  412. <div class="d-flex flex-column py-4 px-3 h-100 justify-content-between ">
  413. <div class=" d-flex justify-content-end card_menu_wrapper px-2 align-items-end">
  414. <img src="${elements[event.name].icon}" alt="${event.name}">
  415. <input type="hidden" class="event_name">
  416. </div>
  417. <div class="d-flex justify-content-center flex-column">
  418. <div><center><b>EVENT</b></center></div>
  419. <div class="action_data"></div>
  420. </div>
  421. <div class="deleteicon">
  422. <i class="fa fa-trash deleteblock_event d-none pull-right" onclick="deleteblock(this)" style="position:relative;top:-25px;left:15px;font-size:12px"></i>
  423. </div>
  424. </div>
  425. <div class="sideline d-none"></div>
  426. <div class="sidemenu d-none"></div></div></div>`;
  427. }
  428. }
  429. //popup image
  430. function popup(type) {
  431. var name = $(type).children('.action_name').val();
  432. if (!ispopupopened && !isdelete) {
  433. ispopupopened = true;
  434. if ($(type).parent().closest('.box').parent().hasClass('firstelement')) {
  435. $(type).parent().closest('.box').parent().removeClass('firstelement');
  436. }
  437. var _fileCacheHelper = Unibase.Platform.Helpers.FileCacheHelper.Instance();
  438. var id = 0;
  439. switch (name) {
  440. case "SMS":
  441. _fileCacheHelper.loadJsFile("platform/automation/components/actions/actions.sms.js", function () {
  442. let smsid = Number($(type).attr("id"));
  443. smsblock = $(type).get(0)
  444. var sms = new Unibase.Platform.Automation.Components.SendSms();
  445. sms.RuleProviderId = Ruleproviderid
  446. sms.ActionId = actions.filter(X => X.ActionName == "Send Sms")[0].ActionId;
  447. sms.ParentActionId = parentid(type);
  448. _IsChildAction = sms.ParentActionId == 0 ? false : true;
  449. sms.RuleActionData = [];
  450. sms.AutomationMode = Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode;
  451. sms.IsAutomationMode = true;
  452. Unibase.Platform.Helpers.NavigationHelper.Instance().popup(smsid, '', sms, function () {
  453. }, Unibase.Platform.Helpers.Size.Auto);
  454. });
  455. break;
  456. case "NOTIFICATION":
  457. _fileCacheHelper.loadJsFile("platform/automation/components/actions/actions.notification.js", function () {
  458. let notificationid = Number($(type).attr("id"));
  459. notificationblock = $(type).get(0);
  460. var notification = new Unibase.Platform.Automation.Components.SendNotification();
  461. notification.RuleProviderId = Ruleproviderid
  462. notification.ParentActionId = parentid(type);
  463. _IsChildAction = notification.ParentActionId == 0 ? false : true;
  464. notification.ActionId = actions.filter(X => X.ActionName == "Send Notification")[0].ActionId;
  465. notification.RuleActionData = [];
  466. notification.AutomationMode = Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode;
  467. notification.IsAutomationMode = true;
  468. Unibase.Platform.Helpers.NavigationHelper.Instance().popup(notificationid, '', notification, function () {
  469. }, Unibase.Platform.Helpers.Size.Auto);
  470. });
  471. break;
  472. case "EXECUTEQUERY":
  473. _fileCacheHelper.loadJsFile("platform/automation/components/actions/actions.executequery.js", function () {
  474. let executequeryid = Number($(type).attr("id"));
  475. execuetqueryblock = $(type).get(0);
  476. var ExecuteQuery = new Unibase.Platform.Automation.Components.ExecuteQuery();
  477. ExecuteQuery.RuleProviderId = Ruleproviderid
  478. ExecuteQuery.ActionId = actions.filter(X => X.ActionName == "Execute Query")[0].ActionId;
  479. ExecuteQuery.ParentActionId = parentid(type);;
  480. _IsChildAction = ExecuteQuery.ParentActionId == 0 ? false : true;
  481. ExecuteQuery.RuleActionData = [];
  482. ExecuteQuery.AutomationMode = Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode;
  483. ExecuteQuery.IsAutomationMode = true;
  484. Unibase.Platform.Helpers.NavigationHelper.Instance().popup(executequeryid, '', ExecuteQuery, function () {
  485. }, Unibase.Platform.Helpers.Size.Auto);
  486. });
  487. break;
  488. case "MAIL":
  489. _fileCacheHelper.loadJsFile("platform/automation/components/actions/actions.email.js", function () {
  490. let emailid = Number($(type).attr("id"));
  491. emailblock = $(type).get(0);
  492. var email = new Unibase.Platform.Automation.Components.SendEmail();
  493. email.RuleProviderId = Ruleproviderid
  494. email.ActionId = actions.filter(X => X.ActionName == "Send Email")[0].ActionId;
  495. email.ParentActionId = parentid(type);;
  496. _IsChildAction = email.ParentActionId == 0 ? false : true;
  497. email.RuleActionData = [];
  498. email.AutomationMode = Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode;
  499. email.IsAutomationMode = true;
  500. Unibase.Platform.Helpers.NavigationHelper.Instance().popup(emailid, '', email, function () {
  501. }, Unibase.Platform.Helpers.Size.Auto);
  502. });
  503. break;
  504. case "TASK":
  505. _fileCacheHelper.loadJsFile("platform/automation/components/actions/actions.task.js", function () {
  506. let taskid = Number($(type).attr("id"));
  507. taskblock = $(type).get(0);
  508. var task = new Unibase.Platform.Automation.Components.SendTask();
  509. task.RuleProviderId = Ruleproviderid
  510. task.ActionId = actions.filter(X => X.ActionName == "Send Task")[0].ActionId;
  511. task.ParentActionId = parentid(type);;
  512. _IsChildAction = task.ParentActionId == 0 ? false : true;
  513. task.RuleActionData = [];
  514. task.AutomationMode = Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode;
  515. task.IsAutomationMode = true;
  516. Unibase.Platform.Helpers.NavigationHelper.Instance().popup(taskid, '', task, function () {
  517. }, Unibase.Platform.Helpers.Size.Auto);
  518. });
  519. break;
  520. case "WHATSAPP":
  521. _fileCacheHelper.loadJsFile("platform/automation/components/actions/actions.whatsapp.js", function () {
  522. let whatsappid = Number($(type).attr("id"));
  523. whatsappblock = $(type).get(0);
  524. var whatsapp = new Unibase.Platform.Automation.Components.SendWhatsApp();
  525. whatsapp.RuleProviderId = Ruleproviderid
  526. whatsapp.ActionId = actions.filter(X => X.ActionName == "Send WhatsApp")[0].ActionId;
  527. whatsapp.ParentActionId = parentid(type);;
  528. _IsChildAction = whatsapp.ParentActionId == 0 ? false : true;
  529. whatsapp.RuleActionData = [];
  530. whatsapp.AutomationMode = Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode;
  531. whatsapp.IsAutomationMode = true;
  532. Unibase.Platform.Helpers.NavigationHelper.Instance().popup(whatsappid, '', whatsapp, function () {
  533. }, Unibase.Platform.Helpers.Size.Auto);
  534. });
  535. break;
  536. case "APIINTEGRATOR":
  537. _fileCacheHelper.loadJsFile("platform/automation/components/actions/actions.apiintegrator.js", function () {
  538. let apiintegratorid = Number($(type).attr("id"));
  539. apiblock = $(type).get(0);
  540. var ApiIntegrator = new Unibase.Platform.Automation.Components.ApiIntegrator();
  541. ApiIntegrator.RuleProviderId = Ruleproviderid
  542. ApiIntegrator.ActionId = actions.filter(X => X.ActionName == "Api Integration")[0].ActionId;
  543. ApiIntegrator.ParentActionId = parentid(type);;
  544. _IsChildAction = ApiIntegrator.ParentActionId == 0 ? false : true;
  545. ApiIntegrator.RuleActionData = [];
  546. ApiIntegrator.AutomationMode = Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode;
  547. ApiIntegrator.IsAutomationMode = true;
  548. Unibase.Platform.Helpers.NavigationHelper.Instance().popup(apiintegratorid, '', ApiIntegrator, function () {
  549. }, Unibase.Platform.Helpers.Size.Auto);
  550. });
  551. break;
  552. case "STAGECHANGE":
  553. _fileCacheHelper.loadJsFile("platform/automation/components/actions/actions.stagechange.js", function () {
  554. let stagechangeid = Number($(type).attr("id"));
  555. stagechangeblock = $(type).get(0);
  556. var stagechange = new Unibase.Platform.Automation.Components.StageChange();
  557. stagechange.RuleProviderId = Ruleproviderid
  558. stagechange.ActionId = actions.filter(X => X.ActionName == "Stage Change")[0].ActionId;
  559. stagechange.ParentActionId = parentid(type);;
  560. stagechange.RuleActionData = [];
  561. stagechange.AutomationMode = Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode;
  562. stagechange.IsAutomationMode = true;
  563. Unibase.Platform.Helpers.NavigationHelper.Instance().popup(stagechangeid, '', stagechange, function () {
  564. }, Unibase.Platform.Helpers.Size.Auto);
  565. });
  566. break;
  567. case "SCHEDULAR":
  568. //not assigning id after saving
  569. _fileCacheHelper.loadJsFile("platform/automation/components/templatenotes.js", function () {
  570. let etemplateid = Number($(type).attr("id"));
  571. etemplateblock = $(type).get(0);
  572. var eventtemplate = new Unibase.Platform.Automation.Components.EventTemplate();
  573. Unibase.Platform.Helpers.NavigationHelper.Instance().popup(etemplateid, '', eventtemplate, function () {
  574. }, Unibase.Platform.Helpers.Size.Auto);
  575. });
  576. break;
  577. case "EVENT":
  578. _fileCacheHelper.loadJsFile("platform/automation/components/rulebuilder/rulebuilder.event.js", function () {
  579. let eventid = Number($(type).attr("id"));
  580. eventblock = $(type).get(0);
  581. var ruleevent = new Unibase.Platform.Automation.Components.RuleEvent();
  582. ruleevent.RuleProviderId = Ruleproviderid;
  583. Unibase.Platform.Helpers.NavigationHelper.Instance().popup(eventid, '', ruleevent, function () {
  584. }, Unibase.Platform.Helpers.Size.Auto);
  585. });
  586. break;
  587. }
  588. }
  589. else {
  590. isdelete = false;
  591. }
  592. }
  593. //line design
  594. function getlinedesign(data) {
  595. isdelete = false;
  596. $(data).parent().parent().parent().find('.sideline').addClass('d-none');
  597. $(data).parent().parent().parent().find('.sidemenu').addClass('d-none');
  598. var elementdata = elements[$(data).children('.block_action').val()];
  599. var carddesign = getcarddesign(elementdata);
  600. var html = `<li class="element firstelement">
  601. <div class="box d-flex justify-content-center align-items-end">
  602. ${carddesign}
  603. <div class="plusbtn" onclick="openmenu(this)">+</div>
  604. <div class="boxlinedown"></div>
  605. </div>
  606. <ul class="d-flex ${elementdata.name} parent-list justify-content-center align-content-center" id="0" data-name="${elementdata.name}">
  607. </ul>
  608. </li>`;
  609. $(data).parent().closest('.box').parent().children('.parent-list').append(html);
  610. var type = $(data).parent().closest('.box').parent().children('.parent-list').children('.firstelement').children('.box').children('.boxcontent').children('.cardTree').get(0);
  611. popup(type);
  612. }
  613. //hidden menu
  614. function menubarfunction(data) {
  615. var innerhtml = '';
  616. for (let i = 0; i < data.length; i++) {
  617. innerhtml += `
  618. <div class="option_${data[i]} w-100 px-2 d-flex justify-content-start align-items-center" onclick="getlinedesign(this)">
  619. <input class="mr-1 block_action" type ="radio" name="startbtnmenu" value=${data[i]}>
  620. <label class="m-0" for="event_startbtnmenu">${data[i]}</label>
  621. </div>`;
  622. }
  623. var html = '<div class="d-flex flex-column menu" style="gap:0.3rem">' + innerhtml + '</div>';
  624. return html;
  625. }