Built files from Bizgaze WebServer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

rulebuilder.event.js 44KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599
  1. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  2. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  3. return new (P || (P = Promise))(function (resolve, reject) {
  4. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  5. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  6. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  7. step((generator = generator.apply(thisArg, _arguments || [])).next());
  8. });
  9. };
  10. var Unibase;
  11. (function (Unibase) {
  12. let Platform;
  13. (function (Platform) {
  14. let Automation;
  15. (function (Automation) {
  16. let Components;
  17. (function (Components) {
  18. class RuleEvent extends Platform.Core.BaseComponent {
  19. constructor() {
  20. super(...arguments);
  21. this.RuleProviderId = 0;
  22. }
  23. cssFiles() {
  24. return [];
  25. }
  26. jsFiles() {
  27. var jsfiles = ["platform/automation/managers/rulemanager.js",
  28. "platform/automation/enums/eventtype.js",
  29. "platform/automation/enums/automationmode.js",
  30. "platform/automation/enums/expop.js",
  31. "platform/automation/requests/ruleevent.js",
  32. "platform/automation/requests/rulecondition.js",
  33. "platform/automation/requests/eventgroup.js",
  34. "platform/automation/components/rulebuilder/rulebuilder.condition.js",
  35. "platform/automation/components/rulebuilder/rulebuilder.advrule.js"
  36. ];
  37. return jsfiles;
  38. }
  39. html(id, containerid) {
  40. let html = `<form id="frmUnibase_RuleEvent" data-validate="parsley" data-isdynamic="false">
  41. <div id="Validate_RuleEvent" class="clear"></div>
  42. <div class="card bg-light">
  43. <div class="b-b bg-white card-header header">
  44. <strong class="text-dark title" id="Form_RuleEvent">Create Event</strong>
  45. </div>
  46. <div class="card-body scrollable" style="overflow-y: scroll;">
  47. <div class="bg-white card" id="divRuleEventDetails">
  48. <div class="card-body">
  49. <div class="row">
  50. <div class="col-sm-6">
  51. <div class="custom-control custom-radio">
  52. <input type="radio" id="rdb_Instant" name="SchedulerType" value="1" class="custom-control-input" checked="checked">
  53. <label class="custom-control-label" for="rdb_Instant">Instant</label>
  54. <input type="hidden" id="hfId_Instant" value="">
  55. </div>
  56. </div>
  57. <div class="col-sm-6">
  58. <div class="custom-control custom-radio">
  59. <input type="radio" id="rdb_Scheduled" name="SchedulerType" value="2" class="custom-control-input">
  60. <label class="custom-control-label" for="rdb_Scheduled">Scheduled</label>
  61. <input type="hidden" id="hfId_Scheduled" value="">
  62. </div>
  63. </div>
  64. </div>
  65. <div class="row mt-30" id="EventColumnsdiv">
  66. <div class="col-sm-12" id="ECAutocomplete">
  67. <div id="div_EventColumns" class="floating-label-form-group-with-value floating-validate" style="border-bottom:0;">
  68. <select id="select2_EventColumns" class="select2_EventColumns required value-control form-control text-control" multiple="multiple" style="width:100%;"></select>
  69. <input type="hidden" id="hfSelect2Id_EventColumns" value="" class="form-control text-control" data-isdynamic="true" />
  70. <input type="hidden" id="hfId_EventColumns" value=""><label for="Validation" id="lblValidation_EventColumns"></label>
  71. </div>
  72. </div>
  73. </div>
  74. </div>
  75. </div>
  76. <div class="bg-white card hidden" id="divEventDetails">
  77. <div class="card-header">Event Type Details</div>
  78. <div class="card-body">
  79. <div class="row" id="div_Scheduler">
  80. <div class="col-sm-6">
  81. <div class="floating-label-form-group floating-label-form-group-with-value">
  82. <label for="lblSchedulerType" id="lbl_SchedulerType" class="font-bold">Scheduler Type<span class="text-danger">*</span></label>
  83. <select id="ddl_SchedulerType" class="form-control value-control" data-isdynamic="true" placeholder="Select" data-placeholder="Select" data-label="Select">
  84. <option value="">Select</option>
  85. <option value="2">Daily</option>
  86. <option value="3">FifteenMinute</option>
  87. <option value="4">FiveMinute</option>
  88. <option value="5">FortyFiveMinute</option>
  89. <option value="6">HalfYearly</option>
  90. <option value="7">Monthly</option>
  91. <option value="8">NineHour</option>
  92. <option value="9">OneHour</option>
  93. <option value="10">OneMinute</option>
  94. <option value="11">Quarterly</option>
  95. <option value="12">SixHour</option>
  96. <option value="13">ThirtyMinute</option>
  97. <option value="14">ThreeHour</option>
  98. <option value="15">ThreeMinute</option>
  99. <option value="16">TwelveHour</option>
  100. <option value="17">TwoHour</option>
  101. <option value="18">TwoMinute</option>
  102. <option value="19">Yearly</option>
  103. <option value="20">Week</option>
  104. </select>
  105. <input type="hidden" id="hf_SchedulerType" />
  106. </div>
  107. </div>
  108. <div class="col-sm-6">
  109. <div class="input-group">
  110. <label for="User" class="font-bold">User</label>
  111. <select id="txtAutoComplete_Users" class="form-control text-control" style="width:100%;" placeholder="User" data-placeholder="User" data-label="" data-istagselect="true"></select>
  112. <input type="hidden" id="hf_Autocomplete_Users" class="form-control value-control" data-isdynamic="true" />
  113. </div>
  114. </div>
  115. </div>
  116. <div class="row" id="div_Dates">
  117. <div id="" class="col-sm-6">
  118. <div class="floating-label-form-group" id="div_StartDate">
  119. <label for="lbl" id="lbl_StartDate">Start Date<span class="text-danger" id="spnIsRequired_StartDate"> *</span></label>
  120. <div class="input-group">
  121. <input type="text" id="date_StartDate" class="form-control type-control datepicker-input hasDatepicker value-control floating-label-control" placeholder="Start Date *" data-placeholder="dd/mm/yyyy hh:mm" data-label="Start Date *">
  122. <span class="input-group-addon mt-10"><i class="fa fa-calendar"></i></span>
  123. <input type="hidden" id="hf_StartDate" />
  124. </div>
  125. </div>
  126. </div>
  127. <div id="" class="col-sm-6">
  128. <div class="floating-label-form-group" id="div_EndDate">
  129. <label for="lbl" id="lbl_EndDate">End Date<span class="text-danger" id="spnIsRequired_EndDate"> *</span></label>
  130. <div class="input-group">
  131. <input type="text" id="date_EndDate" class="form-control type-control datepicker-input hasDatepicker value-control floating-label-control" placeholder="End Date *" data-placeholder="dd/mm/yyyy hh:mm" data-label="End Date *">
  132. <span class="input-group-addon mt-10"><i class="fa fa-calendar"></i></span>
  133. <input type="hidden" id="hf_EndDate" />
  134. </div>
  135. </div>
  136. </div>
  137. </div>
  138. </div>
  139. </div>
  140. <div class="bg-white card" id="btn_Conditions">
  141. <button type="button" class="btn btn-primary" onclick="Unibase.Platform.Automation.Components.RuleEvent.Instance().ToggleRuleEventConditions();">Conditions</button>
  142. </div>
  143. <div class="bg-white card hidden" id="ConditionDetailsDiv">
  144. <div class="card-header">Global Condition Details</div>
  145. <div class="card-body">
  146. <div class="ConditionDetails">
  147. </div>
  148. </div>
  149. </div>
  150. </div>
  151. <div class="bg-white card-footer footer" id="CreateEventFooter">
  152. <a href="javascript:;" id="btnCloseEvent" class="btn btn-light btn-sm mr-auto "> Close</a>
  153. <a href="javascript:;" id="btnSaveEvent" class="btn btn-primary btn-sm"> Save</a>
  154. </div>
  155. </div>
  156. </form>`;
  157. return html;
  158. }
  159. load(id, containerid, callback) {
  160. var instance = this;
  161. let ruleid = eval("bizgaze_automation_flow_main.getruleid()");
  162. Unibase.Platform.Automation.Components.RuleEvent.Instance().RuleProviderId = this.RuleProviderId;
  163. $("#btnCloseEvent").click(function () {
  164. $('#' + containerid).modal('hide');
  165. $('#' + containerid).remove();
  166. Unibase.Platform.Automation.Components.RuleEvent.EventColumnData = [];
  167. eval("bizgaze_automation_flow_main.getpopupclosed()");
  168. });
  169. $("#btnSaveEvent").click(function () {
  170. let appcontrolid = "frmUnibase_RuleEvent";
  171. let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(appcontrolid);
  172. if (result == false) {
  173. MessageHelper.Instance().showError("Mandatory fields are missing", "Validate_RuleEvent");
  174. return false;
  175. }
  176. else {
  177. let ruleinfo = Number(eval("bizgaze_automation_flow_main.getruleid()"));
  178. if (ruleinfo == 0) {
  179. Unibase.Platform.Automation.Components.AdvRule.Instance().SaveRule(id, containerid);
  180. }
  181. else {
  182. RuleEvent.Instance().SaveRuleEvent(id, containerid);
  183. }
  184. }
  185. });
  186. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/followers/reports_followersauto';
  187. AutoCompleteHelper.getHelper().Create("#txtAutoComplete_Users", "#hf_Autocomplete_Users", url, function (response) {
  188. var data = response;
  189. });
  190. let rpid = Unibase.Platform.Automation.Components.RuleEvent.Instance().RuleProviderId;
  191. if (rpid != 0) {
  192. Unibase.Platform.Automation.Components.RuleEvent.Instance().loadEventColomns(rpid).then(function () {
  193. if (id != "") {
  194. Unibase.Platform.Automation.Components.RuleEvent.Instance().EditEvent(id);
  195. }
  196. });
  197. Unibase.Platform.Automation.Components.RuleEvent.Instance().loadQueryBuilder(rpid, null);
  198. }
  199. if (ruleid != 0) {
  200. Unibase.Platform.Automation.Managers.RuleManager.Instance().getRule(ruleid).then(function (response) {
  201. Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray = response;
  202. if (Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleTypeId == Number(Unibase.Platform.Automation.Enums.RuleType.Event)) {
  203. Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleType = Unibase.Platform.Automation.Enums.RuleType.Event;
  204. }
  205. else {
  206. Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleType = Unibase.Platform.Automation.Enums.RuleType.Scheduler;
  207. }
  208. });
  209. }
  210. $("#rdb_Instant").click(function () {
  211. $("#divEventDetails").addClass("hidden");
  212. $("#ddl_SchedulerType").removeClass("required");
  213. $("#date_StartDate").removeClass("required");
  214. $("#date_EndDate").removeClass("required");
  215. $("#select2_EventColumns").addClass("required");
  216. $("#EventColumnsdiv").removeClass("hidden");
  217. });
  218. $("#rdb_Scheduled").change(function () {
  219. $("#divEventDetails").removeClass("hidden");
  220. $("#ddl_SchedulerType").addClass("required");
  221. $("#date_StartDate").addClass("required");
  222. $("#date_EndDate").addClass("required");
  223. $("#EventColumnsdiv").addClass("hidden");
  224. $("#select2_EventColumns").removeClass("required");
  225. $("#ddl_SchedulerType").val('');
  226. $("#date_StartDate").val("");
  227. $("#date_EndDate").val("");
  228. });
  229. $("#date_StartDate").daterangepicker({
  230. autoUpdateInput: false,
  231. timePicker: true,
  232. timePicker24Hour: true,
  233. locale: {
  234. format: 'DD/MM/YYYY HH:mm',
  235. },
  236. singleDatePicker: true,
  237. showDropdowns: true,
  238. minYear: 1901,
  239. maxDate: new Date(2050, 11, 31)
  240. });
  241. $("#date_EndDate").daterangepicker({
  242. autoUpdateInput: false,
  243. timePicker: true,
  244. timePicker24Hour: true,
  245. locale: {
  246. format: 'DD/MM/YYYY HH:mm',
  247. },
  248. singleDatePicker: true,
  249. showDropdowns: true,
  250. minYear: 1901,
  251. maxDate: new Date(2050, 11, 31)
  252. });
  253. $('#date_StartDate').on('apply.daterangepicker', function (ev, picker) {
  254. $('#div_StartDate').addClass('floating-label-form-group-with-value');
  255. });
  256. $('#date_EndDate').on('apply.daterangepicker', function (ev, picker) {
  257. $('#div_EndDate').addClass('floating-label-form-group-with-value');
  258. });
  259. }
  260. ToggleRuleEventConditions() {
  261. $("#ConditionDetailsDiv").toggle(function () {
  262. $("#btn_Conditions").addClass("hidden");
  263. $("#ConditionDetailsDiv").removeClass("hidden");
  264. });
  265. }
  266. loadEventColomns(ruleproviderid) {
  267. return __awaiter(this, void 0, void 0, function* () {
  268. return yield Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleProvider(ruleproviderid).then(function (response) {
  269. Unibase.Platform.Automation.Components.RuleEvent.EventColumnData.push({ id: response.DoctypeName + " Created", text: response.DoctypeName + " Created" });
  270. Unibase.Platform.Automation.Components.RuleEvent.EventColumnData.push({ id: response.DoctypeName + " Deleted", text: response.DoctypeName + " Deleted" });
  271. Unibase.Platform.DataSources.Managers.DocTypeManager.Instance().getDocProperties(response.DoctypeId).then(function (response) {
  272. let result = response.result;
  273. for (let i = 0; i < result.length; i++) {
  274. var EventColumn = result[i];
  275. Unibase.Platform.Automation.Components.RuleEvent.EventColumnData.push({ id: result[i].PropColumnName + " Changed", text: result[i].PropColumnName + " Changed" });
  276. }
  277. return $("#select2_EventColumns").select2({
  278. placeholder: 'Select',
  279. data: Unibase.Platform.Automation.Components.RuleEvent.EventColumnData,
  280. });
  281. });
  282. });
  283. });
  284. }
  285. GetEventColumns() {
  286. let eventcolumnscount = new Array();
  287. eventcolumnscount = $("#select2_EventColumns").val();
  288. var eventcolumn = "";
  289. for (var i = 0; i < eventcolumnscount.length; i++) {
  290. eventcolumn += eventcolumnscount[i] + ",";
  291. }
  292. return eventcolumn.slice(0, -1);
  293. }
  294. EditEvent(id) {
  295. $("#Form_RuleEvent").text("Edit Event");
  296. let ruleid = eval("bizgaze_automation_flow_main.getruleid()");
  297. let response;
  298. Unibase.Platform.Automation.Managers.RuleManager.Instance().getRule(ruleid).then(function (res) {
  299. response = res;
  300. if (id != ruleid) {
  301. Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleEventsByEventGroupId(id).then(function (response) {
  302. let EventColArr = [];
  303. let RuleId = 0;
  304. for (var i = 0; i <= response.length - 1; i++) {
  305. RuleId = response[i].RuleId;
  306. let eventname = response[i].EventName;
  307. if (response[i].EventColumnName != null && response[i].EventColumnName != "") {
  308. eventname = eventname.split("_")[2];
  309. EventColArr.push("" + eventname + " Changed");
  310. }
  311. else {
  312. let eventtype = eventname.split("_")[2];
  313. if (eventtype.toLowerCase() == "created") {
  314. eventname = eventname.split("_created")[0];
  315. EventColArr.push("" + eventname + " Created");
  316. }
  317. else {
  318. eventname = eventname.split("_deleted")[0];
  319. EventColArr.push("" + eventname + " Deleted");
  320. }
  321. }
  322. }
  323. $("#select2_EventColumns").val(EventColArr).trigger('change');
  324. $("input[type=radio]").attr('disabled', 1);
  325. });
  326. }
  327. else {
  328. $("#rdb_Scheduled").attr('checked', 1);
  329. $("#hf_SchedulerType").val(response.SchedulerId);
  330. $("#divEventDetails").removeClass("hidden");
  331. $("#EventColumnsdiv").addClass("hidden");
  332. $("#select2_EventColumns").removeClass("required");
  333. $("#date_StartDate").val(Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateTimeWithoutSeconds(response.StartDate));
  334. $("#date_EndDate").val(Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateTimeWithoutSeconds(response.EndDate));
  335. $("#ddl_SchedulerType").val($("#hf_SchedulerType").val());
  336. $("input[type=radio]").attr('disabled', 1);
  337. var useroption = new Option(response.UserName, response.IdentityUserId.toString(), true, true);
  338. $("#txtAutoComplete_Users").append(useroption);
  339. }
  340. if (response.SqlWhere != null && response.SqlWhere != "") {
  341. Unibase.Platform.Automation.Components.RuleEvent.Instance().loadQueryBuilder(response.RuleProviderId, response.SqlWhere);
  342. $("#btn_Conditions").addClass("hidden");
  343. $("#ConditionDetailsDiv").removeClass("hidden");
  344. }
  345. $("#div_StartDate").addClass('floating-label-form-group-with-value');
  346. $("#div_EndDate").addClass('floating-label-form-group-with-value');
  347. eval('_floatingLabelHelper.init();');
  348. });
  349. }
  350. RuleEventArray() {
  351. let eventarray = [];
  352. let eventcolumns = Unibase.Platform.Automation.Components.RuleEvent.Instance().GetEventColumns().split(",");
  353. for (var i = 0; i < eventcolumns.length; i++) {
  354. let eventobj = {};
  355. let eventtype;
  356. let etype = eventcolumns[i].split(" ")[1];
  357. let eventcolumn = "";
  358. if (etype == "Created") {
  359. eventtype = Unibase.Platform.Automation.Enums.EventType.Created;
  360. }
  361. else if (etype == "Deleted") {
  362. eventtype = Unibase.Platform.Automation.Enums.EventType.Deleted;
  363. }
  364. else if (eventcolumns[i].toLowerCase() == "stageid changed") {
  365. eventtype = Unibase.Platform.Automation.Enums.EventType.StageEvent;
  366. eventcolumn = eventcolumns[i].split(" ")[0];
  367. }
  368. else {
  369. eventtype = Unibase.Platform.Automation.Enums.EventType.Updated;
  370. eventcolumn = eventcolumns[i].split(" ")[0];
  371. }
  372. eventobj.RuleEventId = 0;
  373. eventobj.EventColumnName = eventcolumn;
  374. eventobj.EventType = eventtype;
  375. eventobj.RuleId = eval("bizgaze_automation_flow_main.getruleid()");
  376. eventarray.push(eventobj);
  377. }
  378. return eventarray;
  379. }
  380. Ruledata() {
  381. return __awaiter(this, void 0, void 0, function* () {
  382. let ruleid = eval("bizgaze_automation_flow_main.getruleid()");
  383. if (ruleid != 0) {
  384. yield Unibase.Platform.Automation.Managers.RuleManager.Instance().getRule(ruleid).then(function (response) {
  385. Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray = response;
  386. if (Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleTypeId == Number(Unibase.Platform.Automation.Enums.RuleType.Event)) {
  387. Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleType = Unibase.Platform.Automation.Enums.RuleType.Event;
  388. }
  389. else {
  390. Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleType = Unibase.Platform.Automation.Enums.RuleType.Scheduler;
  391. }
  392. });
  393. }
  394. });
  395. }
  396. SaveRuleEvent(id, containerid) {
  397. return __awaiter(this, void 0, void 0, function* () {
  398. var eventcolumns = '';
  399. let EventGroupId = Number(id);
  400. let ruledata = [];
  401. let ruleeventdata = [];
  402. yield Unibase.Platform.Automation.Components.RuleEvent.Instance().Ruledata();
  403. let SchedulerTypeId = Number($('input[name=SchedulerType]:checked').val());
  404. if (SchedulerTypeId == 2) {
  405. let rulearr = Unibase.Platform.Automation.Components.RuleEvent.Instance().GetSRuleData();
  406. for (let i = 0; i < rulearr.length; i++) {
  407. ruledata.push({
  408. RuleId: rulearr[i].RuleId,
  409. RuleProviderId: rulearr[i].RuleProviderId,
  410. DocTypeId: rulearr[i].DocTypeId,
  411. RuleName: rulearr[i].RuleName,
  412. SchedulerId: rulearr[i].SchedulerId,
  413. RuleType: rulearr[i].RuleType,
  414. Notes: rulearr[i].Notes,
  415. RuleFlow: rulearr[i].RuleFlow,
  416. StartDate: rulearr[i].StartDate,
  417. EndDate: rulearr[i].EndDate,
  418. RuleConditionData: rulearr[i].RuleConditionData,
  419. EventGroupData: rulearr[i].EventGroupData,
  420. AutomationModeId: rulearr[i].AutomationModeId,
  421. SqlWhere: rulearr[i].SqlWhere,
  422. SqlWhereJson: rulearr[i].SqlWhereJson,
  423. IdentityUserId: rulearr[i].IdentityUserId,
  424. });
  425. }
  426. }
  427. else {
  428. let ruleeventarray = Unibase.Platform.Automation.Components.RuleEvent.Instance().RuleEventArray();
  429. for (let i = 0; i < ruleeventarray.length; i++) {
  430. ruleeventdata.push({
  431. RuleEventId: ruleeventarray[i].RuleEventId,
  432. RuleId: ruleeventarray[i].RuleId,
  433. EventId: ruleeventarray[i].EventId,
  434. EventColumnName: ruleeventarray[i].EventColumnName,
  435. EventType: ruleeventarray[i].EventType,
  436. RuleType: ruleeventarray[i].RuleType
  437. });
  438. if (ruleeventarray[i].EventColumnName != "") {
  439. eventcolumns += ruleeventarray[i].EventColumnName + " Changed ,";
  440. }
  441. }
  442. let rulearr = Unibase.Platform.Automation.Components.RuleEvent.Instance().GetRuleData();
  443. for (let i = 0; i < rulearr.length; i++) {
  444. ruledata.push({
  445. RuleId: rulearr[i].RuleId,
  446. RuleProviderId: rulearr[i].RuleProviderId,
  447. DocTypeId: rulearr[i].DocTypeId,
  448. RuleName: rulearr[i].RuleName,
  449. SchedulerId: rulearr[i].SchedulerId,
  450. RuleType: rulearr[i].RuleType,
  451. Notes: rulearr[i].Notes,
  452. RuleFlow: rulearr[i].RuleFlow,
  453. StartDate: rulearr[i].StartDate,
  454. EndDate: rulearr[i].EndDate,
  455. RuleConditionData: rulearr[i].RuleConditionData,
  456. EventGroupData: rulearr[i].EventGroupData,
  457. AutomationModeId: rulearr[i].AutomationModeId,
  458. SqlWhere: rulearr[i].SqlWhere,
  459. SqlWhereJson: rulearr[i].SqlWhereJson,
  460. IdentityUserId: rulearr[i].IdentityUserId,
  461. });
  462. }
  463. }
  464. let model = new Unibase.Platform.Automation.Requests.EventGroup();
  465. model.EventGroupId = EventGroupId;
  466. model.RuleId = eval("bizgaze_automation_flow_main.getruleid()");
  467. model.RuleEventData = ruleeventdata;
  468. if ($("#ddl_SchedulerType").val() != 0) {
  469. model.RuleType = Unibase.Platform.Automation.Enums.RuleType.Scheduler;
  470. }
  471. else {
  472. model.RuleType = Unibase.Platform.Automation.Enums.RuleType.Event;
  473. }
  474. model.RuleData = ruledata;
  475. yield Automation.Managers.RuleManager.Instance().saveAdvRuleEvent(model).then(function (response) {
  476. if (response.status == Unibase.Data.Status.Error) {
  477. MessageHelper.Instance().showError(response.message, "Validate_Rule");
  478. }
  479. else {
  480. if (response.result.EventGroupId != 0) {
  481. MessageHelper.Instance().showSuccess(response.message, "Validate_Rule");
  482. eval("bizgaze_automation_flow_main.saveeventblock('" + response.result.EventGroupId + "','Event Configured')");
  483. }
  484. else {
  485. MessageHelper.Instance().showSuccess(response.message, "Validate_Rule");
  486. eval("bizgaze_automation_flow_main.saveeventblock('" + response.result.RuleId + "','Event Configured')");
  487. }
  488. let queryelmnt = $("#builder");
  489. queryelmnt.queryBuilder('destroy');
  490. $("#QueryBuilder").remove();
  491. $('#' + containerid).modal('hide');
  492. $('#' + containerid).remove();
  493. Unibase.Platform.Automation.Components.RuleEvent.EventColumnData = [];
  494. eval("bizgaze_automation_flow_main.saveeventname('" + eventcolumns + "')");
  495. }
  496. });
  497. });
  498. }
  499. GetSRuleData() {
  500. let rulearray = [];
  501. let queryelmnt = $("#builder");
  502. let ruleobj = {};
  503. ruleobj.RuleId = Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleId;
  504. ruleobj.RuleProviderId = Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleProviderId;
  505. ruleobj.DocTypeId = Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.DocTypeId;
  506. ruleobj.RuleName = Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleName;
  507. ruleobj.SchedulerId = Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.SchedulerId;
  508. ruleobj.RuleType = Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleType;
  509. ruleobj.Notes = Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.Notes;
  510. ruleobj.RuleFlow = Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleFlow;
  511. ruleobj.AutomationModeId = Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.AutomationModeId;
  512. if ($("#ddl_SchedulerType").val() != 0) {
  513. ruleobj.SchedulerId = Number($("#ddl_SchedulerType").val());
  514. ruleobj.RuleType = Unibase.Platform.Automation.Enums.RuleType.Scheduler;
  515. }
  516. else {
  517. ruleobj.SchedulerId = 1;
  518. ruleobj.RuleType = Unibase.Platform.Automation.Enums.RuleType.Event;
  519. }
  520. let StartDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime($("#date_StartDate").val());
  521. ruleobj.StartDate = new Date(StartDate);
  522. let EndDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime($("#date_EndDate").val());
  523. ruleobj.EndDate = new Date(EndDate);
  524. ruleobj.IdentityUserId = $("#txtAutoComplete_Users option:selected").val() == null || "" ? 0 : Number($("#txtAutoComplete_Users option:selected").val());
  525. let query = queryelmnt.queryBuilder('getSQL', false, true);
  526. if (query != null) {
  527. ruleobj.SqlWhere = queryelmnt.queryBuilder('getSQL', false, true).sql.replace(/\n/g, " ").replace(/LIKE/g, "ILIKE");
  528. ruleobj.SqlWhereJson = JSON.stringify(queryelmnt.queryBuilder('getSQL', false, true));
  529. }
  530. else {
  531. ruleobj.SqlWhere = '';
  532. ruleobj.SqlWhereJson = '';
  533. }
  534. rulearray.push(ruleobj);
  535. return rulearray;
  536. }
  537. GetRuleData() {
  538. let rulearray = [];
  539. let queryelmnt = $("#builder");
  540. let ruleobj = {};
  541. ruleobj.RuleId = Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleId;
  542. ruleobj.RuleProviderId = Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleProviderId;
  543. ruleobj.DocTypeId = Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.DocTypeId;
  544. ruleobj.RuleName = Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleName;
  545. ruleobj.AutomationModeId = Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.AutomationModeId;
  546. ruleobj.SchedulerId = 1;
  547. ruleobj.RuleType = Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleType;
  548. ruleobj.Notes = Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.Notes;
  549. ruleobj.RuleFlow = Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleFlow;
  550. ruleobj.StartDate = Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.StartDate;
  551. ruleobj.EndDate = Unibase.Platform.Automation.Components.RuleEvent.RuleDataArray.EndDate;
  552. let query = queryelmnt.queryBuilder('getSQL', false, true);
  553. if (query != null) {
  554. ruleobj.SqlWhere = queryelmnt.queryBuilder('getSQL', false, true).sql.replace(/\n/g, " ").replace(/LIKE/g, "ILIKE");
  555. ruleobj.SqlWhereJson = JSON.stringify(queryelmnt.queryBuilder('getSQL', false, true));
  556. }
  557. else {
  558. ruleobj.SqlWhere = '';
  559. ruleobj.SqlWhereJson = '';
  560. }
  561. rulearray.push(ruleobj);
  562. return rulearray;
  563. }
  564. loadQueryBuilder(ruleproviderid, querystring) {
  565. return __awaiter(this, void 0, void 0, function* () {
  566. return yield Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleProvider(ruleproviderid).then(function (response) {
  567. let ruleconditionhtml = Unibase.Platform.DataSources.Components.QueryBuilder.Instance().html(null, null);
  568. jQuery(".ConditionDetails").html(ruleconditionhtml);
  569. var qinstance = Unibase.Platform.DataSources.Components.QueryBuilder.Instance();
  570. qinstance.QueryBuilder_Columns = [];
  571. qinstance.QueryBuilder_Filters = [];
  572. qinstance.queryBuilderString = "";
  573. if (response.ReportId != 0) {
  574. qinstance.ReportId = response.ReportId;
  575. qinstance.loadQueryBuilderDiv(querystring);
  576. }
  577. else {
  578. qinstance.DoctypeId = response.DoctypeId;
  579. qinstance.loadQueryBuilderDivByDoctypeId(querystring);
  580. }
  581. $("#QueryBuilder").removeClass("hidden");
  582. });
  583. });
  584. }
  585. static Instance() {
  586. if (this.instance === undefined) {
  587. this.instance = new RuleEvent();
  588. }
  589. return this.instance;
  590. }
  591. }
  592. RuleEvent.EventColumnData = [];
  593. RuleEvent.RuleDataArray = [];
  594. Components.RuleEvent = RuleEvent;
  595. })(Components = Automation.Components || (Automation.Components = {}));
  596. })(Automation = Platform.Automation || (Platform.Automation = {}));
  597. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  598. })(Unibase || (Unibase = {}));