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.

conditions.js 21KB

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