123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550 |
- /// <reference path="../../../libs/flowy/flowy.min.js" />
- /// <reference path="../../../libs/flowy/flowy.js" />
- /// <reference path="../../core/helpers/filecache/filecachehelper.ts" />
- 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 '<div class="blockelem create-flowy noselect" id="block_' + typename +'" onclick="bizgaze_automation_flow_main.doneTouch(this)"><input type="hidden" name="blockelemtypename" class="blockelemtypename" value="' + typename + '"><input type="hidden" name="blockelemtypename" id="blocktypeid" class="blockelemttypeid" value="' + typeid + '"><div class="grabme"><img src="libs/flowy/assets/grabme.svg"></div><div class="blockin"><div class="blockico"><span></span><img src="' + svgpath + '"></div><div class="blocktext"><p class="blocktitle">' + typename + '</p><p class="blockdesc">' + description + '</p></div></div></div>';
- },
- getdragelement: function (type) {
- let typename = Automation_Elements[type]["title"];
- let svgpath = Automation_Elements[type]["svgicon"];
- let description = Automation_Elements[type]["description"];
- return "<div class='blockyleft'><img src='" + svgpath + "'><p class='blockyname'>" + typename + "</p></div><div class='blockyright'><img src='libs/flowy/assets/more.svg'></div><div class='blockydiv'></div><div class='blockyinfo_"+typename+"'><div class='blockyinfo' >" + description + "</div></div>";
- },
- 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);
- });
- }
- });
- });
- }
- }
|