/// /// /// const Automation_Elements = { SMS: { typeid: 1, svgicon: "libs/flowy/assets/sms.svg", title: "SMS", description: "SMS" }, Mail: { typeid: 2, svgicon: "libs/flowy/assets/email.svg", title: "Mail", description: "Mail" }, Notification: { typeid: 3, svgicon: "libs/flowy/assets/bell.svg", title: "Notification", description: "Notification" }, Task: { typeid: 4, svgicon: "libs/flowy/assets/task.svg", title: "Task", description: "Task" }, Event: { typeid: 5, svgicon: "libs/flowy/assets/action.svg", title: "Event", description: "Event" }, Scheduler: { typeid: 6, svgicon: "libs/flowy/assets/time.svg", title: "Scheduler", description: "Scheduler" }, StageChange: { typeid: 7, svgicon: "libs/flowy/assets/stage.svg", title: "StageChange", description: "StageChange" }, Rule: { typeid: 8, svgicon: "libs/flowy/assets/eye.svg", title: "Rule", description: "Rule" }, ApiIntegrator: { typeid: 9, svgicon: "libs/flowy/assets/database.svg", title: "ApiIntegrator", description: "ApiIntegrator" }, ExecuteQuery: { typeid: 10, svgicon: "libs/flowy/assets/database.svg", title: "ExecuteQuery", description: "ExecuteQuery" } }; var rightcard = false; var tempblock; var tempblock2; var ruleblock; var smsblock; var emailblock; var notificationblock; var taskblock; var stagechangeblock; var etemplateblock; var eventblock; var apiblock; var disabledClick; var removefunction; var execuetqueryblock; var RuleId = 0; var RuleProviderId = 0; var actionsarray = []; var bizgaze_automation_flow_main = { load: function () { bizgaze_automation_flow_main.getactions(); bizgaze_automation_flow_main.refreshblocks(); $("#close").click(bizgaze_automation_flow_main.closerightcard); $("#removeblock").click(flowy.deleteBlocks); bizgaze_automation_flow_main.registercanvasevents(); $('.side').click(function () { if ($(this).attr("id") == "triggers") { if ($('#triggers').hasClass("navdisabled") == true) { $('#actions').removeClass("navactive").addClass("navdisabled"); $('#triggers').removeClass("navdisabled").addClass("navactive"); document.getElementById("blocklist").innerHTML = bizgaze_automation_flow_main.geteventblocks(); } } else if ($(this).attr("id") == "actions") { if ($('#actions').hasClass("navdisabled") == true) { $('#triggers').removeClass("navactive").addClass("navdisabled"); $('#actions').removeClass("navdisabled").addClass("navactive"); document.getElementById("blocklist").innerHTML = bizgaze_automation_flow_main.getactionblocks(); } } }); }, getactions: function () { Unibase.Platform.Automation.Managers.RuleManager.Instance().getActions().then(function (response) { for (var i = 0; i <= response.length - 1; i++) { actionsarray.push(response[i]); } }); }, bindelement: function (type) { let typename = Automation_Elements[type]["title"]; let typeid = Automation_Elements[type]["typeid"]; let svgpath = Automation_Elements[type]["svgicon"]; let description = Automation_Elements[type]["description"]; return '

' + typename + '

' + description + '

'; }, getdragelement: function (type) { let typename = Automation_Elements[type]["title"]; let svgpath = Automation_Elements[type]["svgicon"]; let description = Automation_Elements[type]["description"]; return "

" + typename + "

" + description + "
"; }, getactionblocks: function () { let eventhtml = ""; let events = ["SMS", "Mail", "Notification", "Task", "StageChange", "ApiIntegrator", "ExecuteQuery"]; for (let i = 0; i < events.length; i++) { eventhtml += bizgaze_automation_flow_main.bindelement(events[i]); } return eventhtml; }, geteventblocks: function () { let actionhtml = ""; let actions = ["Rule","Event", "Scheduler"]; for (let i = 0; i < actions.length; i++) { actionhtml += bizgaze_automation_flow_main.bindelement(actions[i]); } return actionhtml; }, addEventListenerMulti: function (type, listener, capture, selector) { var nodes = document.querySelectorAll(selector); for (var i = 0; i < nodes.length; i++) { nodes[i].addEventListener(type, listener, capture); } }, removeEventListenerMulti: function (type, listener, capture, selector) { var nodes = document.querySelectorAll(selector); for (var i = 0; i < nodes.length; i++) { nodes[i].addEventListener(type, listener, capture); } }, closerightcard: function () { if (rightcard) { rightcard = false; document.getElementById("properties").classList.remove("expanded"); setTimeout(function () { document.getElementById("propwrap").classList.remove("itson"); }, 300); tempblock.classList.remove("selectedblock"); } }, refreshblocks: function () { $("#blocklist").html(bizgaze_automation_flow_main.geteventblocks()); }, registercanvasevents: function () { function drag(block) { block.classList.add("blockdisabled"); tempblock2 = block; } function release(event) { if (tempblock2) { tempblock2.classList.remove("blockdisabled"); } } function onRearrange(block, parent) { // When a block is rearranged return true; } function snapping(drag, first) { var grab = drag.querySelector(".grabme"); grab.parentNode.removeChild(grab); var blockin = drag.querySelector(".blockin"); blockin.parentNode.removeChild(blockin); drag.innerHTML += bizgaze_automation_flow_main.getdragelement(drag.querySelector(".blockelemtypename").value); return true; } flowy(document.getElementById("canvas"), drag, release, snapping, onRearrange); }, output: function () { return flowy.output(); }, saveruleblock: function (id, name,ruleproviderid) { ruleblock.id = id; ruleblock.innerHTML = name; RuleId = Number(id); RuleProviderId = ruleproviderid; }, saveeventblock: function (id, name) { eventblock.id = id; eventblock.innerHTML = name; }, savesmsblock: function (id, name) { smsblock.id = id; smsblock.innerHTML = name; }, savenotificationblock: function (id, name) { notificationblock.id = id; notificationblock.innerHTML = name; }, savetaskblock: function (id, name) { taskblock.id = id; taskblock.innerHTML = name; }, saveemailblock: function (id, name) { emailblock.id = id; emailblock.innerHTML = name; }, savestagechangeblock: function (id, name) { stagechangeblock.id = id; stagechangeblock.innerHTML = name; }, saveApiIntegratorblock: function (id, name) { apiblock.id = id; apiblock.innerHTML = name; }, saveExecuteQueryblock: function (id, name) { execuetqueryblock.id = id; execuetqueryblock.innerHTML = name; }, getruleid: function () { return RuleId; }, appendruleid: function (ruleid) { RuleId = Number(ruleid); }, appendruleproviderid: function (ruleproviderid) { RuleProviderId = Number(ruleproviderid); }, getruleproviderid: function () { return RuleProviderId; }, Deleteblock: function () { var canvas = bizgaze_automation_flow_main.output(); if (canvas != null && canvas != undefined) { var len = canvas.blocks.length - 1; if (canvas.blocks[len].data[0].value == "Rule") { if (canvas.blocks.length > 1) { for (var i = 0; i < canvas.blocks.length - 1; i++) { if (canvas.blocks[i].data[0].value == "Rule") { let rblockid = canvas.blocks[len].id; flowy.deleteBlock(rblockid, true); break; } } } } else if (canvas.blocks[len].data[0].value == "Event") { let parentblockid = canvas.blocks[len].parent; if (parentblockid == -1) { flowy.deleteBlock(canvas.blocks[len].id, true); } else { for (var j = 0; j < canvas.blocks.length - 1; j++) { if (canvas.blocks[j].id == parentblockid) { if (canvas.blocks[j].data[0].value == "Rule") { continue; } else { let eblockid = canvas.blocks[len].id; flowy.deleteBlock(eblockid, true); break; } } } } } else { if (canvas.blocks.length > 2) { let parentblockid = canvas.blocks[len].parent; for (var k = 0; k < canvas.blocks.length - 1; k++) { if (canvas.blocks[k].id == parentblockid) { if (canvas.blocks[k].data[0].value == "Event" || canvas.blocks[k].data[0].value == "Notification" || canvas.blocks[k].data[0].value == "SMS" || canvas.blocks[k].data[0].value == "Task" || canvas.blocks[k].data[0].value == "Mail" || canvas.blocks[k].data[0].value == "StageChange" || canvas.blocks[k].data[0].value == "ApiIntegrator" || canvas.blocks[k].data[0].value == "Scheduler") { continue; } else { let ablockid = canvas.blocks[len].id; flowy.deleteBlock(ablockid, true); break; } } } } else { let ablockid = canvas.blocks[len].id; flowy.deleteBlock(ablockid, true); } } } }, import: function (output) { var flow = Unibase.Platform.Automation.Components.RuleBuilder.Instance().RuleFlow; flowy.import(JSON.parse(flow)); }, doneTouch: function (name) { var actionname = $('#' + name.id).find('.blockelemtypename').val(); let blockid = $('#' + name.id).closest(".blockelem").find("#blocktypeid").val(); let pblockid = $(name).children('.blockid').val(); var divid = moment.unix(); var pkid = 0; var ParentActionId = 0; var output = bizgaze_automation_flow_main.output(); if (output.blocks.length > 3 && actionname != "Rule" && actionname!= "Event") { if (output.blocks[output.blocks.length - 2].data[0].value != "Rule" && output.blocks[output.blocks.length - 2].data[0].value != "Event") { var parentblkid = output.blocks.filter(a => a.id == Number(pblockid))[0].parent; var parentblockname = output.blocks.filter(a => a.id == Number(parentblkid))[0].data[0].value; if (parentblockname != "Rule" && parentblockname != "Event") { var parentblockid = output.blocks[output.blocks.length - 1].parent; for (var i = 0; i < output.blocks.length; i++) { if (output.blocks[i].id == parentblockid) { ParentActionId = Number(output.blocks[i].data[3].value); } } } } } var _fileCacheHelper = Unibase.Platform.Helpers.FileCacheHelper.Instance(); _fileCacheHelper.loadJsFile("libs/moment/moment.min.js", function () { _fileCacheHelper.loadJsFile("libs/bootstrap/js/bootstrap.min.js", function () { if (blockid == "1") { _fileCacheHelper.loadJsFile("platform/automation/components/actions/actions.sms.js", function () { let smsid = $(name).children('.blockyinfo_' + actionname + '').find('.blockyinfo').attr('id'); if (smsid == undefined) { smsid = 0; } else { smsid = Number(smsid); } smsblock = $(name).children('.blockyinfo_' + actionname+'').find('.blockyinfo').get(0) var sms = new Unibase.Platform.Automation.Components.SendSms(); sms.RuleProviderId = eval("bizgaze_automation_flow_main.getruleproviderid()"); sms.ActionId = actionsarray.filter(X => X.ActionName == "Send Sms")[0].ActionId; sms.ParentActionId = ParentActionId; sms.RuleActionData = []; sms.AutomationMode = Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode; sms.IsAutomationMode = true; Unibase.Platform.Helpers.NavigationHelper.Instance().popup(smsid, '', sms, function () { }, Unibase.Platform.Helpers.Size.Auto); }); } else if (blockid == "2") { _fileCacheHelper.loadJsFile("platform/automation/components/actions/actions.email.js", function () { let emailid = $(name).children('.blockyinfo_' + actionname + '').find('.blockyinfo').attr('id'); if (emailid == undefined) { emailid = 0; } else { emailid = Number(emailid); } emailblock = $(name).children('.blockyinfo_' + actionname + '').find('.blockyinfo').get(0); var email = new Unibase.Platform.Automation.Components.SendEmail(); email.RuleProviderId = eval("bizgaze_automation_flow_main.getruleproviderid()"); email.ActionId = actionsarray.filter(X => X.ActionName == "Send Email")[0].ActionId; email.ParentActionId = ParentActionId; email.RuleActionData = []; email.AutomationMode = Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode; email.IsAutomationMode = true; Unibase.Platform.Helpers.NavigationHelper.Instance().popup(emailid, '', email, function () { }, Unibase.Platform.Helpers.Size.Auto); }); } else if (blockid == "3") { _fileCacheHelper.loadJsFile("platform/automation/components/actions/actions.notification.js", function () { let notificationid = $(name).children('.blockyinfo_' + actionname + '').find('.blockyinfo').attr('id'); if (notificationid == undefined) { notificationid = 0; } else { notificationid = Number(notificationid); } notificationblock = $(name).children('.blockyinfo_' + actionname + '').find('.blockyinfo').get(0); var notification = new Unibase.Platform.Automation.Components.SendNotification(); notification.RuleProviderId = eval("bizgaze_automation_flow_main.getruleproviderid()"); notification.ParentActionId = ParentActionId; notification.ActionId = actionsarray.filter(X => X.ActionName == "Send Notification")[0].ActionId; notification.RuleActionData = []; notification.AutomationMode = Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode; notification.IsAutomationMode = true; Unibase.Platform.Helpers.NavigationHelper.Instance().popup(notificationid, '', notification, function () { }, Unibase.Platform.Helpers.Size.Auto); }); } else if (blockid == "4") { _fileCacheHelper.loadJsFile("platform/automation/components/actions/actions.task.js", function () { let taskid = $(name).children('.blockyinfo_' + actionname + '').find('.blockyinfo').attr('id'); if (taskid == undefined) { taskid = 0; } else { taskid = Number(taskid); } taskblock = $(name).children('.blockyinfo_' + actionname + '').find('.blockyinfo').get(0); var task = new Unibase.Platform.Automation.Components.SendTask(); task.RuleProviderId = eval("bizgaze_automation_flow_main.getruleproviderid()"); task.ActionId = actionsarray.filter(X => X.ActionName == "Send Task")[0].ActionId; task.ParentActionId = ParentActionId; task.RuleActionData = []; task.AutomationMode = Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode; task.IsAutomationMode = true; Unibase.Platform.Helpers.NavigationHelper.Instance().popup(taskid, '', task, function () { }, Unibase.Platform.Helpers.Size.Auto); }); } else if (blockid == "5") { _fileCacheHelper.loadJsFile("platform/automation/components/rulebuilder/rulebuilder.event.js", function () { let eventid = $(name).children('.blockyinfo_' + actionname + '').find('.blockyinfo').attr('id'); if (eventid == undefined) { eventid = 0; } else { eventid = Number(eventid); } eventblock = $(name).children('.blockyinfo_' + actionname + '').find('.blockyinfo').get(0); var ruleevent = new Unibase.Platform.Automation.Components.RuleEvent(); ruleevent.RuleProviderId = eval("bizgaze_automation_flow_main.getruleproviderid()"); Unibase.Platform.Helpers.NavigationHelper.Instance().popup(eventid, '', ruleevent, function () { }, Unibase.Platform.Helpers.Size.Auto); }); } else if (blockid == "6") { _fileCacheHelper.loadJsFile("platform/automation/components/templatenotes.js", function () { let etemplateid = $(name).children('.blockyinfo_' + actionname + '').find('.blockyinfo').attr('id'); if (etemplateid == undefined) { etemplateid = 0; } else { etemplateid = Number(etemplateid); } etemplateblock = $(name).children('.blockyinfo_' + actionname + '').find('.blockyinfo').get(0); var eventtemplate = new Unibase.Platform.Automation.Components.EventTemplate(); Unibase.Platform.Helpers.NavigationHelper.Instance().popup(etemplateid, '', eventtemplate, function () { }, Unibase.Platform.Helpers.Size.Auto); }); } else if (blockid == "7") { _fileCacheHelper.loadJsFile("platform/automation/components/actions/actions.stagechange.js", function () { let stagechangeid = $(name).children('.blockyinfo_' + actionname + '').find('.blockyinfo').attr('id'); if (stagechangeid == undefined) { stagechangeid = 0; } else { stagechangeid = Number(stagechangeid); } stagechangeblock = $(name).children('.blockyinfo_' + actionname + '').find('.blockyinfo').get(0); var stagechange = new Unibase.Platform.Automation.Components.StageChange(); stagechange.RuleProviderId = eval("bizgaze_automation_flow_main.getruleproviderid()"); stagechange.ActionId = actionsarray.filter(X => X.ActionName == "Stage Change")[0].ActionId; stagechange.ParentActionId = ParentActionId; stagechange.RuleActionData = []; stagechange.AutomationMode = Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode; stagechange.IsAutomationMode = true; Unibase.Platform.Helpers.NavigationHelper.Instance().popup(stagechangeid, '', stagechange, function () { }, Unibase.Platform.Helpers.Size.Auto); }); } else if (blockid == "8") { _fileCacheHelper.loadJsFile("platform/automation/components/rulebuilder/rulebuilder.advrule.js", function () { let ruleid = $(name).children('.blockyinfo_' + actionname + '').find('.blockyinfo').attr('id'); if (ruleid == undefined) { ruleid = 0; } else { ruleid = Number(ruleid); } ruleblock = $(name).children('.blockyinfo_' + actionname + '').find('.blockyinfo').get(0); var advrule = new Unibase.Platform.Automation.Components.AdvRule(); Unibase.Platform.Helpers.NavigationHelper.Instance().popup(ruleid, '', advrule, function () { }, Unibase.Platform.Helpers.Size.Auto); }); } else if (blockid == "9") { _fileCacheHelper.loadJsFile("platform/automation/components/actions/actions.apiintegrator.js", function () { let apiintegratorid; apiintegratorid = $(name).children('.blockyinfo_' + actionname + '').find('.blockyinfo').attr('id'); if (apiintegratorid == undefined) { apiintegratorid = 0; } else { apiintegratorid = Number(apiintegratorid); } apiblock = $(name).children('.blockyinfo_' + actionname + '').find('.blockyinfo').get(0); var ApiIntegrator = new Unibase.Platform.Automation.Components.ApiIntegrator(); ApiIntegrator.RuleProviderId = eval("bizgaze_automation_flow_main.getruleproviderid()"); ApiIntegrator.ActionId = actionsarray.filter(X => X.ActionName == "Api Integration")[0].ActionId; ApiIntegrator.ParentActionId = ParentActionId; ApiIntegrator.RuleActionData = []; ApiIntegrator.AutomationMode = Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode; ApiIntegrator.IsAutomationMode = true; Unibase.Platform.Helpers.NavigationHelper.Instance().popup(apiintegratorid, '', ApiIntegrator, function () { }, Unibase.Platform.Helpers.Size.Auto); }); } else if (blockid == "10") { _fileCacheHelper.loadJsFile("platform/automation/components/actions/actions.executequery.js", function () { let executequeryid; executequeryid = $(name).children('.blockyinfo_' + actionname + '').find('.blockyinfo').attr('id'); if (executequeryid == undefined) { executequeryid = 0; } else { executequeryid = Number(executequeryid); } execuetqueryblock = $(name).children('.blockyinfo_' + actionname + '').find('.blockyinfo').get(0); var ExecuteQuery = new Unibase.Platform.Automation.Components.ExecuteQuery(); ExecuteQuery.RuleProviderId = eval("bizgaze_automation_flow_main.getruleproviderid()"); ExecuteQuery.ActionId = actionsarray.filter(X => X.ActionName == "Execute Query")[0].ActionId; ExecuteQuery.ParentActionId = ParentActionId; ExecuteQuery.RuleActionData = []; ExecuteQuery.AutomationMode = Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode; ExecuteQuery.IsAutomationMode = true; Unibase.Platform.Helpers.NavigationHelper.Instance().popup(executequeryid, '', ExecuteQuery, function () { }, Unibase.Platform.Helpers.Size.Auto); }); } }); }); } }