///
///
///
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);
});
}
});
});
}
}