var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var Unibase; (function (Unibase) { let Platform; (function (Platform) { let Automation; (function (Automation) { let Components; (function (Components) { class Rule extends Platform.Core.BaseComponent { constructor() { super(...arguments); this.RuleInstalledAppId = 0; this.CurrentEventIndex = 0; } jsFiles() { var jsfiles = ["platform/automation/managers/rulemanager.js", "platform/datasources/managers/doctypemanager.js", "platform/analytics/managers/reportmanager.js", "platform/forms/managers/formmanager.js", "platform/automation/enums/eventtype.js", "platform/automation/enums/ruletype.js", "platform/automation/enums/expop.js", "platform/automation/enums/automationmode.js", "platform/automation/enums/executeactionstatus.js", "platform/automation/components/conditions.js", "platform/automation/requests/rule.js", "platform/automation/requests/ruleevent.js", "platform/automation/requests/ruleaction.js", "platform/automation/requests/rulecondition.js", "platform/automation/components/rulebuilder/rulebuilder.condition.js", "libs/querybuilder/query-builder.min.js", "libs/querybuilder/query-builder.standalone.min.js", "libs/querybuilder/query-builder.standalone.js", "libs/querybuilder/sql-parser.min.js", "platform/datasources/components/datalistbuilder/querybuilder.js", "platform/forms/components/formviewer/formviewer.js", "libs/parsley/parsley.min.js", "platform/automation/components/rulebuilder/rulebuilder.js" ]; return jsfiles; } cssFiles() { var cssfiles = ["libs/querybuilder/query-builder.default.css"]; return cssfiles; } html(id, containerid) { let html = `
`; return html; } load(id, containerid, callback) { Unibase.Platform.Automation.Components.Rule.AutomationMode = Unibase.Platform.Automation.Enums.AutomationMode.NormalMode; Unibase.Platform.Automation.Components.Rule.Instance().GetActions(); Unibase.Platform.Automation.Components.Rule.RuleId = id; Unibase.Platform.Automation.Components.Rule.Instance().default_event(); $("#btnCloseRule").click(function () { $('#' + containerid).modal('hide'); $('#' + containerid).remove(); Unibase.Platform.Automation.Components.Rule.keysindex = 0; Unibase.Platform.Automation.Components.Rule.keyscount = 0; Unibase.Platform.Automation.Components.Rule.keysflag = 0; Unibase.Platform.Automation.Components.Rule.RuleId = 0; Unibase.Platform.Automation.Components.Rule.ActionsArray = []; Unibase.Platform.Automation.Components.Rule.EventColumnData = []; Unibase.Platform.Automation.Components.Rule.RuleActionsData = []; Unibase.Platform.Automation.Components.RuleCondition.ruleConditionArray = []; }); $("#btnSaveRule").click(function () { let appcontrolid = "frmUnibase_Rule"; let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(appcontrolid); if (result == false) { MessageHelper.Instance().showError("Mandatory fields are missing", "Validate_Rule"); $(".eventrow").each(function () { let id = $(this).find(".eventrow"); let index = (id.prevObject[0].id).split('_'); index = index[1]; let eventcolumns = $("#select2_EventColumns_" + index + "").val(); if (eventcolumns.length == 0) { $("#EventColumnLable_" + index + "").addClass('form-group-required'); } }); return false; } else { Unibase.Platform.Automation.Components.Rule.Instance().SaveRule(id, containerid); } }); $("#link_AdvancedMode").click(function () { $("#link_NormalMode").removeClass("hidden"); $("#link_AdvancedMode").addClass("hidden"); $('#' + containerid).modal('hide'); $('#' + containerid).remove(); Unibase.Platform.Automation.Components.Rule.Instance().AdvancedMode(id, containerid); }); $("#link_NormalMode").click(function () { $("#link_NormalMode").addClass("hidden"); $("#link_AdvancedMode").removeClass("hidden"); }); $("#InstalledAppsList").height($(window).outerHeight() - 90).css("overflow", "hidden auto"); $("#Action_Autocomplete").change(function () { $("#ALable").removeClass('hidden'); $("#AAutocomplete").addClass('hidden'); $("#ActionLable").text($('#Action_Autocomplete option:selected').text()); }); let rule = Unibase.Platform.Automation.Components.Rule.Instance(); $("#ddl_RuleProvider").change(function () { $("#NormalModeEvent").removeClass("hidden"); $('#AddNewEvents').html(''); Unibase.Platform.Automation.Components.Rule.EventColumnData = []; Unibase.Platform.Automation.Components.Rule.Instance().default_event(); rule.loadEventColomns(); rule.loadActions(0); rule.loadQueryBuilder(Number($("#ddl_RuleProvider option:selected").val()), null); }); rule.LoadInstalledApps(); rule.loadActions(0); if (id != "") { Unibase.Platform.Automation.Components.Rule.Instance().EditRule(id, containerid); } } loadForm(FormId, Pk_Value, AppConfigurationId, Callback, ElementId) { Rule.Instance().init(Pk_Value, null); Unibase.Platform.Apps.Managers.AppManager.Instance().getAppConfiguration(AppConfigurationId).then(function (response) { Unibase.Platform.Automation.Components.Rule.installedappid = response.result.InstalledAppId; }); } loadNotificationRule(iscreate) { var Pk_Value = 0; if (!iscreate) { Pk_Value = Unibase.Themes.Providers.DetailHelper.recordId; } this.navigationHelper.popup(Pk_Value, '', Unibase.Platform.Automation.Components.Rule.Instance(), null, Platform.Helpers.Size.DockLeft); } init(id, callback) { this.render(id, callback); } render(id, callback) { this.navigationHelper.popup(id, '', Unibase.Platform.Automation.Components.Rule.Instance(), null, Platform.Helpers.Size.DockLeft); } GetActions() { Unibase.Platform.Automation.Managers.RuleManager.Instance().getActions().then(function (response) { for (var i = 0; i <= response.length - 1; i++) { Unibase.Platform.Automation.Components.Rule.ActionsArray.push(response[i]); } }); } OnChangeEventColumn(index) { let eventcolumnscount = new Array(); eventcolumnscount = $("#select2_EventColumns_" + index + "").val(); if (eventcolumnscount.length > 0) { $("#ELable_" + index + "").removeClass('hidden'); $("#EAutocomplete_" + index + "").addClass('hidden'); $("#EventColumnLable_" + index + "").text(Unibase.Platform.Automation.Components.Rule.Instance().GetEventColumns(index)); $('.event_name_' + index + '').val('').val(Unibase.Platform.Automation.Components.Rule.Instance().GetEventColumns(index)); } } OnChangeActions(index) { $("#ALable_" + index + "").removeClass('hidden'); $("#AAutocomplete_" + index + "").addClass('hidden'); $("#ActionLable_" + index + "").text($('#Action_Autocomplete_' + index + ' option:selected').text()); $("#ActionLable_" + index + "").removeClass('form-group-required'); var _fileCacheHelper = Platform.Helpers.FileCacheHelper.Instance(); let id = Number($("#RuleActionId_" + index + "").text()); let actionid = Number($('#Action_Autocomplete_' + index + ' option:selected').val()); let ruleproviderid = Number($("#ddl_RuleProvider option:selected").val()); var instance = this; if (!$("#ConditionDetailsDiv").hasClass("hidden")) { Unibase.Platform.Automation.Components.Rule.Instance().SaveQueryString(); } else { let queryelmnt = $("#builder"); queryelmnt.queryBuilder('destroy'); $("#QueryBuilder").remove(); } Unibase.Platform.Automation.Managers.RuleManager.Instance().getAction(actionid).then(function (response) { if (response != null) { _fileCacheHelper.loadJsFile(response.JsUrl, function () { var namespace = eval(response.JsVariableName); var action = new namespace(); action.RuleProviderId = ruleproviderid; action.RowIndex = index; action.ActionId = response.ActionId; action.RuleActionData = Unibase.Platform.Automation.Components.Rule.RuleActionsData.filter(X => X.RowIndex == index); action.AutomationMode = Unibase.Platform.Automation.Components.Rule.AutomationMode; action.IsAutomationMode = true; action.ParentActionId = 0; instance.navigationHelper.popup(id, '', action, function () { }, Platform.Helpers.Size.Auto); }); } }); } default_event() { var html = `
`; $('#AddNewEvents').append(html); } ToggleEventNames() { if ($("#btn_EventNames").text() == "Show More") { $("[id='EventCard']").show(); $("#btn_EventNames").text("Show Less"); } else { $("[id='EventCard']").hide(); $("#btn_EventNames").text("Show More"); } } ToggleGlobalConditions() { $("#ConditionDetailsDiv").toggle(function () { $("#btn_Conditions").addClass("hidden"); $("#ConditionDetailsDiv").removeClass("hidden"); Unibase.Platform.Automation.Components.Rule.Instance().loadQueryBuilder(Number($("#ddl_RuleProvider option:selected").val()), null); }); } loadEventColomns() { return __awaiter(this, void 0, void 0, function* () { var instance = this; let ruleproviderid = Number($("#ddl_RuleProvider option:selected").val()); if (ruleproviderid != 0) { return yield Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleProvider(ruleproviderid).then(function (response) { Unibase.Platform.Automation.Components.Rule.EventColumnData.push({ id: response.DoctypeName + " Created", text: response.DoctypeName + " Created" }); Unibase.Platform.Automation.Components.Rule.EventColumnData.push({ id: response.DoctypeName + " Deleted", text: response.DoctypeName + " Deleted" }); return Unibase.Platform.DataSources.Managers.DocTypeManager.Instance().getDocProperties(response.DoctypeId).then(function (response) { let result = response.result; for (let i = 0; i < result.length; i++) { var EventColumn = result[i]; Unibase.Platform.Automation.Components.Rule.EventColumnData.push({ id: result[i].PropColumnName + " Changed", text: result[i].PropColumnName + " Changed" }); } Unibase.Platform.Automation.Components.Rule.Instance().BindEventColumns(0); }); }); } }); } BindEventColumns(index) { return __awaiter(this, void 0, void 0, function* () { $("#EventColumnLable_" + index + "").text(Unibase.Platform.Automation.Components.Rule.EventColumnData[0].id); $('.event_name_' + index + '').val('').val(Unibase.Platform.Automation.Components.Rule.EventColumnData[0].id); $("#select2_EventColumns_" + index + "").select2({ placeholder: 'Select', data: Unibase.Platform.Automation.Components.Rule.EventColumnData, }); }); } loadActions(index) { return __awaiter(this, void 0, void 0, function* () { return yield Unibase.Platform.Automation.Managers.RuleManager.Instance().getActions().then(function (response) { let cmbActions = document.getElementById('Action_Autocomplete_' + index + ''); $('#Action_Autocomplete_' + index + '').empty(); var defaultOpt1 = document.createElement("option"); defaultOpt1.text = "Select"; defaultOpt1.value = "0"; cmbActions.appendChild(defaultOpt1); for (let i = 0; i <= response.length - 1; i++) { var opt = document.createElement("option"); opt.text = response[i].ActionName; opt.value = response[i].ActionId.toString(); cmbActions.appendChild(opt); } $("#Action_Autocomplete_" + index + "").val(Number($("#hf_Action_" + index + "").val())); $("#ActionLable_" + index + "").text($("#Action_Autocomplete_" + index + " option:selected").text()); }); }); } ToggleEventColumnLable(index) { $("#ELable_" + index + "").addClass('hidden'); $("#EAutocomplete_" + index + "").removeClass('hidden'); $("#EventColumnLable_" + index + "").removeClass('form-group-required'); } ToggleActions(index) { var instance = this; instance.CurrentEventIndex = index; $("#ALable_" + index + "").addClass('hidden'); $("#AAutocomplete_" + index + "").removeClass('hidden'); if ($("#ActionLable_" + index + "").text() != "Select" && $("#ActionLable_" + index + "").text() != "") { Unibase.Platform.Automation.Components.Rule.Instance().OnChangeActions(index); } } SaveRule(id, containerid) { let ruleid = Number(id); let eventgroupdata = []; if (!$("#ConditionDetailsDiv").hasClass("hidden")) { Unibase.Platform.Automation.Components.Rule.Instance().SaveQueryString(); } let eventsarr = Rule.Instance().EventArray(); for (let i = 0; i < eventsarr.length; i++) { eventgroupdata.push({ EventGroupId: eventsarr[i].EventGroupId, RuleId: eventsarr[i].RuleId, RuleEventData: eventsarr[i].RuleEventData, RuleActionData: eventsarr[i].RuleActionData, RuleConditionData: eventsarr[i].RuleConditionData, RuleData: eventsarr[i].RuleData, RuleType: eventsarr[i].RuleType }); } let model = new Unibase.Platform.Automation.Requests.Rule(); model.RuleId = ruleid; model.RuleName = $("#txt_Rule").val().toString(); model.RuleProviderId = Number($("#ddl_RuleProvider option:selected").val()); if (Unibase.Platform.Automation.Components.Rule.QueryString != null) { model.SqlWhere = Unibase.Platform.Automation.Components.Rule.QueryString; model.SqlWhereJson = JSON.stringify(Unibase.Platform.Automation.Components.Rule.QueryString); } else { model.SqlWhere = ''; model.SqlWhereJson = ''; } model.EventGroupData = eventgroupdata; model.RuleType = Unibase.Platform.Automation.Enums.RuleType.Event; model.AutomationModeId = Number(Unibase.Platform.Automation.Components.Rule.AutomationMode); Automation.Managers.RuleManager.Instance().saveRule(model).then(function (response) { if (response.status == Unibase.Data.Status.Error) { MessageHelper.Instance().showError(response.message, "Validate_Rule"); } else { MessageHelper.Instance().showSuccess(response.message, "Validate_Rule"); Unibase.Platform.Automation.Components.Rule.ActionsArray = []; Unibase.Platform.Automation.Components.Rule.keysindex = 0; Unibase.Platform.Automation.Components.Rule.keyscount = 0; Unibase.Platform.Automation.Components.Rule.RuleId = 0; Unibase.Platform.Automation.Components.Rule.keysflag = 0; Unibase.Platform.Automation.Components.Rule.EventColumnData = []; Unibase.Platform.Automation.Components.Rule.RuleActionsData = []; Unibase.Platform.Automation.Components.RuleCondition.ruleConditionArray = []; $('#' + containerid).modal('hide'); $('#' + containerid).remove(); Unibase.Platform.Helpers.NavigationHelper.Instance().loadDetail(response.result.RuleId, Unibase.Platform.Automation.Components.Rule.installedappid, null); } }); } EditRule(id, containerid) { $('#txt_search').attr("disabled", "true"); $('#ddl_RuleProvider').attr("disabled", "true"); $('#txt_Rule').attr("disabled", "true"); let ruleid = Number(id); $("#Form_Rule").text("Edit Rule"); Unibase.Platform.Automation.Managers.RuleManager.Instance().getRule(ruleid).then(function (response) { if (response.AutomationModeId == Number(Unibase.Platform.Automation.Enums.AutomationMode.NormalMode)) { let ruleid = response.RuleId; $("#hf_RuleProvider").val(response.RuleProviderId); $("#txt_Rule").val(response.RuleName); Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleProvider(response.RuleProviderId).then(function (response) { Unibase.Platform.Automation.Components.Rule.Instance().SelectedApp(response.InstalledAppId).then(function () { Unibase.Platform.Automation.Components.Rule.Instance().LoadEvents(ruleid); Unibase.Platform.Automation.Components.Rule.Instance().RuleInstalledAppId = Number(response.InstalledAppId); }); }); if (response.SqlWhere != "" && response.SqlWhere != null) { $("#btn_Conditions").addClass("hidden"); $("#ConditionDetailsDiv").removeClass("hidden"); } Unibase.Platform.Automation.Components.Rule.Instance().loadQueryBuilder(response.RuleProviderId, response.SqlWhere); } else { Unibase.Platform.Automation.Components.Rule.Instance().AdvancedMode(response.RuleId, containerid); } eval('_floatingLabelHelper.init();'); }); } LoadInstalledApps() { Unibase.Platform.Automation.Managers.RuleManager.Instance().getInstalledApps().then(function (response) { for (let i = 0; i <= response.length - 1; i++) { let html = '
' + '
' + '
' + '
' + '' + response[i].AppTitle + '' + '
'; $("#InstalledAppsList").append(html); html = ""; } }); } LoadAppStages() { return __awaiter(this, void 0, void 0, function* () { var html = ''; var installeappid = Unibase.Platform.Automation.Components.Rule.Instance().RuleInstalledAppId; yield Unibase.Platform.Apps.Managers.StageManager.Instance().getStages(installeappid).then(function (response) { if (response.result != null) { for (let i = 0; i < response.result.length; i++) { var data = response.result[i]; html += '