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.condition.js 19KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. var Unibase;
  2. (function (Unibase) {
  3. let Platform;
  4. (function (Platform) {
  5. let Automation;
  6. (function (Automation) {
  7. let Components;
  8. (function (Components) {
  9. class RuleCondition {
  10. init() {
  11. }
  12. getGlobalCondition() {
  13. let html = `<form id="frmUnibase_Condition" data-validate="parsley" data-isdynamic="false">
  14. <div class="row">
  15. <label class="col-sm-4">Attribute Name</label>
  16. <label class="col-sm-4">Condition</label>
  17. <label class="col-sm-4">Value</label>
  18. </div>
  19. <div class="row">
  20. <div class="col-sm-4 mt-5">
  21. <select id="ddl_PropertyName" class="form-control value-control" data-isdynamic="true">
  22. <option value="">Select</option>
  23. </select>
  24. <input type="hidden" id="hf_PropertyName">
  25. </div>
  26. <div class="col-sm-4 mt-5">
  27. <select id="ddl_Operator" class="form-control value-control" data-isdynamic="true">
  28. <option value="0">Select</option>
  29. <option value="1">Equals</option>
  30. <option value="2">NotEquals</option>
  31. <option value="3">EqualsColumn</option>
  32. <option value="4">NotEqualsColumn</option>
  33. <option value="5">GreaterThan</option>
  34. <option value="6">GreaterThanOrEquals</option>
  35. <option value="7">LessThan</option>
  36. <option value="8">LessThanOrEquals</option>
  37. <option value="9">GreaterThanColumn</option>
  38. <option value="10">GreaterThanOrEqualsColumn</option>
  39. <option value="11">LessThanColumn</option>
  40. <option value="12">LessThanOrEqualsColumn</option>
  41. <option value="13">Empty</option>
  42. <option value="14">NotEmpty</option>
  43. <option value="15">Contains</option>
  44. <option value="16">DoesNotContains</option>
  45. <option value="17">StartsWith</option>
  46. <option value="18">EndsWith</option>
  47. <option value="19">In</option>
  48. <option value="20">NotIn</option>
  49. <option value="21">Between</option>
  50. <option value="22">NotBetween</option>
  51. <option value="23">Date</option>
  52. </select>
  53. <input type="hidden" id="hf_Operator">
  54. </div>
  55. <div class="col-sm-3 mt-5">
  56. <input type="text" id="txt_Value" class="form-control value-control floating-label-control" placeholder="Enter Value"/>
  57. <input type="hidden" id="hf_Value" />
  58. </div>
  59. <div class="col-sm-1 pull-right mt-5">
  60. <span class="pull-right">
  61. <a id="" title="Create" onclick="Unibase.Platform.Automation.Components.RuleCondition.Instance().AddCondition();">
  62. <i class="fa fa-plus"></i>
  63. </a>
  64. </span>
  65. </div>
  66. </div>
  67. <div class="row" id="AddCondition">
  68. </div>
  69. </div>
  70. </form>`;
  71. return html;
  72. }
  73. AddCondition() {
  74. Unibase.Platform.Automation.Components.RuleCondition.flag = 0;
  75. var html = "";
  76. if (!Unibase.Platform.Automation.Components.RuleCondition.count) {
  77. Unibase.Platform.Automation.Components.RuleCondition.len = Unibase.Platform.Automation.Components.RuleCondition.len + 1;
  78. }
  79. else {
  80. Unibase.Platform.Automation.Components.RuleCondition.len = Unibase.Platform.Automation.Components.RuleCondition.count;
  81. }
  82. var attributeId = $('#ddl_PropertyName :selected').val();
  83. var attributeName = $('#ddl_PropertyName :selected').text();
  84. var conditionId = $('#ddl_Operator :selected').val();
  85. var conditionName = $('#ddl_Operator :selected').text();
  86. var value = $("#txt_Value").val();
  87. var RuleConditionId = 0;
  88. html += '<div class="Conditionrow col-sm-12 mt-10" id="row_' + Unibase.Platform.Automation.Components.RuleCondition.len + '">' +
  89. '<label id="PropertyName_' + Unibase.Platform.Automation.Components.RuleCondition.len + '" class="col-sm-4">' + $("#ddl_PropertyName :selected").text() + '</label>' +
  90. '<label id="Operator_' + Unibase.Platform.Automation.Components.RuleCondition.len + '" class="col-sm-4">' + $("#ddl_Operator :selected").text() + '</label>' +
  91. '<label id="OperatorValue_' + Unibase.Platform.Automation.Components.RuleCondition.len + '" class="hidden">' + $("#ddl_Operator :selected").val() + '</label>' +
  92. '<label id="Value_' + Unibase.Platform.Automation.Components.RuleCondition.len + '" class="col-sm-3">' + $("#txt_Value").val() + '</label>' +
  93. '<label id="hf_RuleConditionId_' + Unibase.Platform.Automation.Components.RuleCondition.len + '" class="hidden">' + RuleConditionId + '</label>' +
  94. '<span class="pull-right">' +
  95. '<a id="btnEdit_' + Unibase.Platform.Automation.Components.RuleCondition.len + '" onclick="Unibase.Platform.Automation.Components.RuleCondition.Instance().EditRow(' + Unibase.Platform.Automation.Components.RuleCondition.len + ');">' +
  96. ' <i class="fa fa-pencil mr-5"></i>' +
  97. '</a>' +
  98. '<a id="btn_' + Unibase.Platform.Automation.Components.RuleCondition.len + '" onclick="Unibase.Platform.Automation.Components.RuleCondition.Instance().DeleteRow(' + Unibase.Platform.Automation.Components.RuleCondition.len + ');">' +
  99. ' <i class="fa fa-trash text-danger"></i>' +
  100. '</a>' +
  101. '</span>' +
  102. '<div>';
  103. if ($("#ddl_PropertyName").val() != "0" && $("#ddl_Operator").val() != "0" && $("#txt_Value").val()) {
  104. if (Unibase.Platform.Automation.Components.RuleCondition.len != 1) {
  105. for (var i = 0; i < Unibase.Platform.Automation.Components.RuleCondition.ruleConditionArray.length; i++) {
  106. if ($("#ddl_PropertyName :selected").text() == Unibase.Platform.Automation.Components.RuleCondition.ruleConditionArray[i].AttributeName && $("#ddl_Operator :selected").text() == Unibase.Platform.Automation.Components.RuleCondition.ruleConditionArray[i].ConditionName && $("#txt_Value").val() == Unibase.Platform.Automation.Components.RuleCondition.ruleConditionArray[i].Value) {
  107. Unibase.Platform.Automation.Components.RuleCondition.flag = 1;
  108. Unibase.Platform.Automation.Components.RuleCondition.len = Unibase.Platform.Automation.Components.RuleCondition.len - 1;
  109. MessageHelper.Instance().showError("Already Exists", "Unibase_Rules_ValidationSummary");
  110. return false;
  111. }
  112. }
  113. }
  114. if (Unibase.Platform.Automation.Components.RuleCondition.flag == 0) {
  115. $("#AddCondition").append(html);
  116. Unibase.Platform.Automation.Components.RuleCondition.count = 0;
  117. $("#ddl_PropertyName").val("0");
  118. $("#ddl_Operator").val("0");
  119. $("#txt_Value").val("");
  120. Unibase.Platform.Automation.Components.RuleCondition.flag = 0;
  121. Unibase.Platform.Automation.Components.RuleCondition.ruleConditionArray.push({ AttributeName: attributeName, ConditionName: conditionName, Value: value });
  122. }
  123. }
  124. else {
  125. Unibase.Platform.Automation.Components.RuleCondition.len = Unibase.Platform.Automation.Components.RuleCondition.len - 1;
  126. MessageHelper.Instance().showError("Required fields are not provided", "Unibase_Rules_ValidationSummary");
  127. }
  128. }
  129. EditRow(len) {
  130. $("#ddl_PropertyName").val($("#PropertyName_" + Unibase.Platform.Automation.Components.RuleCondition.len + "").text());
  131. $("#ddl_Operator").val($("#OperatorValue_" + Unibase.Platform.Automation.Components.RuleCondition.len + "").text());
  132. $("#txt_Value").val($("#Value_" + Unibase.Platform.Automation.Components.RuleCondition.len + "").text());
  133. $("#hfActionConditionId").val($("#hf_RuleConditionId_" + Unibase.Platform.Automation.Components.RuleCondition.len + "").text());
  134. $('#row_' + Unibase.Platform.Automation.Components.RuleCondition.len + '').remove();
  135. Unibase.Platform.Automation.Components.RuleCondition.count = Unibase.Platform.Automation.Components.RuleCondition.len;
  136. for (var key in Unibase.Platform.Automation.Components.RuleCondition.ruleConditionArray) {
  137. if ($("#ddl_PropertyName :selected").text() == Unibase.Platform.Automation.Components.RuleCondition.ruleConditionArray[key].AttributeName && $("#ddl_Operator :selected").text() == Unibase.Platform.Automation.Components.RuleCondition.ruleConditionArray[key].ConditionName && $("#txt_Value").val() == Unibase.Platform.Automation.Components.RuleCondition.ruleConditionArray[key].Value) {
  138. Unibase.Platform.Automation.Components.RuleCondition.ruleConditionArray.splice(Number(key), 1);
  139. break;
  140. }
  141. }
  142. }
  143. DeleteRow(len, rule) {
  144. for (var row in Unibase.Platform.Automation.Components.RuleCondition.ruleConditionArray) {
  145. if ($("#PropertyName_" + len).text() == Unibase.Platform.Automation.Components.RuleCondition.ruleConditionArray[row].AttributeName && $("#Operator_" + len).text() == Unibase.Platform.Automation.Components.RuleCondition.ruleConditionArray[row].ConditionName && $("#Value_" + len).text() == Unibase.Platform.Automation.Components.RuleCondition.ruleConditionArray[row].Value) {
  146. Unibase.Platform.Automation.Components.RuleCondition.ruleConditionArray.splice(Number(row), 1);
  147. break;
  148. }
  149. }
  150. $('#row_' + len + '').remove();
  151. }
  152. AddGlobalConditionArray() {
  153. let myarray = [];
  154. $(".Conditionrow").each(function () {
  155. let conditionobj = {};
  156. let id = $(this).find(".EventKeys");
  157. let len = (id.prevObject[0].id).split('_');
  158. len = len[1];
  159. conditionobj.RuleConditionId = Number($(this).find("#hf_RuleConditionId_" + len + "").text());
  160. ;
  161. conditionobj.RuleId = 0;
  162. conditionobj.PropertyName = $(this).find("#PropertyName_" + len + "").text();
  163. conditionobj.OperatorType = $(this).find("#Operator_" + len + "").text();
  164. conditionobj.FromValue = $(this).find("#Value_" + len + "").text();
  165. conditionobj.ToValue = $(this).find("#Value_" + len + "").text();
  166. myarray.push(conditionobj);
  167. });
  168. return myarray;
  169. }
  170. LoadGlobalConditions(ruleid) {
  171. Unibase.Platform.Automation.Components.RuleCondition.ruleConditionArray = [];
  172. Unibase.Platform.Automation.Components.RuleCondition.len = 0;
  173. Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleConditions(ruleid).then(function (response) {
  174. for (var i = 0; i < response.length; i++) {
  175. var html = "";
  176. let operatortype = Unibase.Platform.Automation.Enums.ExpOp[response[i].OperatorId];
  177. Unibase.Platform.Automation.Components.RuleCondition.len = i + 1;
  178. html += '<div class="Conditionrow col-sm-12" id="row_' + Unibase.Platform.Automation.Components.RuleCondition.len + '">' +
  179. '<label id="PropertyName_' + Unibase.Platform.Automation.Components.RuleCondition.len + '" class="col-sm-4">' + response[i].PropertyName + '</label>' +
  180. '<label id="Operator_' + Unibase.Platform.Automation.Components.RuleCondition.len + '" class="col-sm-4">' + operatortype + '</label>' +
  181. '<label id="OperatorValue_' + Unibase.Platform.Automation.Components.RuleCondition.len + '" class="hidden">' + response[i].OperatorId + '</label>' +
  182. '<label id="Value_' + Unibase.Platform.Automation.Components.RuleCondition.len + '" class="col-sm-3">' + response[i].FromValue + '</label>' +
  183. '<label id="hf_RuleConditionId_' + Unibase.Platform.Automation.Components.RuleCondition.len + '" class="hidden">' + response[i].RuleConditionId + '</label>' +
  184. '<span class="pull-right">' +
  185. '<a id="btnEdit_' + Unibase.Platform.Automation.Components.RuleCondition.len + '" onclick="Unibase.Platform.Automation.Components.RuleCondition.Instance().EditRow(' + Unibase.Platform.Automation.Components.RuleCondition.len + ');">' +
  186. ' <i class="fa fa-pencil mr-5"></i>' +
  187. '</a>' +
  188. '<a id="btn_' + Unibase.Platform.Automation.Components.RuleCondition.len + '" onclick="Unibase.Platform.Automation.Components.RuleCondition.Instance().DeleteRow(' + Unibase.Platform.Automation.Components.RuleCondition.len + ',' + response[i].RuleConditionId + ');">' +
  189. ' <i class="fa fa-trash text-danger"></i>' +
  190. '</a>' +
  191. '</span>' +
  192. '<div>';
  193. Unibase.Platform.Automation.Components.RuleCondition.ruleConditionArray.push({ AttributeName: response[i].PropertyName, ConditionName: response[i].Operatortype, Value: response[i].FromValue });
  194. $("#AddCondition").append(html);
  195. Unibase.Platform.Automation.Components.RuleCondition.isCreate = 1;
  196. }
  197. });
  198. }
  199. LoadConditionProperties(ruleproviderid) {
  200. Unibase.Platform.Automation.Managers.RuleManager.Instance().getTokens(ruleproviderid).then(function (response) {
  201. let cmbConditionProperties = document.getElementById('ddl_PropertyName');
  202. $('#ddl_PropertyName').empty();
  203. var defaultOpt1 = document.createElement("option");
  204. defaultOpt1.text = "Select";
  205. defaultOpt1.value = "0";
  206. cmbConditionProperties.appendChild(defaultOpt1);
  207. for (let i = 0; i <= response.length - 1; i++) {
  208. var opt = document.createElement("option");
  209. opt.text = response[i];
  210. opt.value = response[i];
  211. cmbConditionProperties.appendChild(opt);
  212. }
  213. });
  214. }
  215. static Instance() {
  216. if (this.instance === undefined) {
  217. this.instance = new RuleCondition();
  218. }
  219. return this.instance;
  220. }
  221. }
  222. RuleCondition.len = 0;
  223. RuleCondition.flag = 0;
  224. RuleCondition.isCreate = 0;
  225. RuleCondition.ruleConditionArray = [];
  226. Components.RuleCondition = RuleCondition;
  227. })(Components = Automation.Components || (Automation.Components = {}));
  228. })(Automation = Platform.Automation || (Platform.Automation = {}));
  229. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  230. })(Unibase || (Unibase = {}));