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.

actions.executequery.js 32KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444
  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 ExecuteQuery extends Platform.Core.BaseComponent {
  19. constructor() {
  20. super(...arguments);
  21. this.RowIndex = 0;
  22. this.RuleProviderId = 0;
  23. this.AutomationMode = 0;
  24. }
  25. jsFiles() {
  26. var jsfiles = ["platform/automation/managers/rulemanager.js",
  27. "platform/automation/enums/automationmode.js",
  28. "platform/automation/components/conditions.js",
  29. "platform/automation/components/contactselection.js",
  30. "platform/automation/requests/ruleaction.js",
  31. "platform/automation/requests/rulecondition.js",
  32. "platform/forms/components/formviewer/formviewer.js",
  33. "libs/parsley/parsley.min.js",
  34. "libs/querybuilder/query-builder.min.js",
  35. "libs/querybuilder/query-builder.standalone.min.js",
  36. "libs/querybuilder/query-builder.standalone.js",
  37. "libs/querybuilder/sql-parser.min.js", "libs/notificationbuilder/notificationbuilder.js", "platform/automation/components/rulebuilder/notificationgroup.js", "platform/automation/managers/notificationgroupmanager.js"
  38. ];
  39. return jsfiles;
  40. }
  41. cssFiles() {
  42. return [];
  43. }
  44. html(id, containerid) {
  45. let html = `<form id="frmUnibase_ExecuteQuery" data-validate="parsley" data-isdynamic="false">
  46. <div class="card bg-light">
  47. <div class="b-b bg-white card-header header">
  48. <strong class="text-dark title" id="Spn_ExecuteQuery">Create Execute Query</strong>
  49. </div>
  50. <div class="card-body scrollable" style="overflow-y: scroll;">
  51. <div class="bg-white card" id="divExecuteQuery">
  52. <div id="Validate_ExecuteQueryAction" class="clear"></div>
  53. <div class="card-body">
  54. <div class="row">
  55. <div class="col-sm-12">
  56. <div class="floating-label-form-group">
  57. <label for="lbl" id="lbl_RuleActionName">Action<span class="text-danger required" id="spnIsRequired_RuleActionName"> *</span></label>
  58. <input type="text" id="txtExecuteQuery_RuleActionName" class="form-control value-control required floating-label-control" placeholder="Action *" data-placeholder="Enter Action" data-label="Action *">
  59. <input type="hidden" id="hf_RuleActionName" />
  60. </div>
  61. </div>
  62. </div>
  63. <div class="row">
  64. <div class="col-sm-6">
  65. <div id="div_QueryType" class=" floating-label-form-group floating-label-form-group-with-value">
  66. <label for="lbl" id="lbl_QueryType">Query Type</label>
  67. <select id="ddl_QueryType" class="form-control">
  68. <option value="1">Query</option>
  69. <option value="2">Procedure</option>
  70. </select>
  71. <label for="Validation" id="lblValidation_QueryType"></label><input type="hidden" id="hfFormPropertyId" value="0" />
  72. </div>
  73. </div>
  74. <div class="col-sm-6">
  75. <div class="custom-control custom-checkbox checkbox-primary mt-40">
  76. <input type="checkbox" class="custom-control-input" id="chkIsAsync">
  77. <label class="custom-control-label" for="chkIsAsync">IsAsync</label>&nbsp
  78. </div>
  79. </div>
  80. </div>
  81. <div class="row">
  82. <div id="div_Query" class="TextEditor col-sm-12">
  83. <inpu type="hidden" id="txthdn__Query" class="value-control" value="">
  84. <span class="text-danger" id="spnIsRequired__Query"></span>
  85. <div class="type-control summernote__Query" style="display: block;" id="summernote__Query" data-propdoctypename="Query" data-required="" placeholder="Query" data-placeholder="Query" data-label="Query"></div>
  86. <label for="Validation" id="lblValidation"></label>
  87. </inpu>
  88. </div>
  89. </div>
  90. <div class="row">
  91. <div id="div_NotificationGrp" class="floating-label-form-group col-sm-6 floating-label-form-group-with-value">
  92. <label for="lbl_NotificationGrp" id="lbl_NotificationGroup">Notification Group<span class="text-danger"> *</span></label>
  93. <select id="ddl_NotificationGrp" class="form-control"><option value="0">Select Group</option></select>
  94. </div><div class="col-sm-6 createbtn_grp"><button class="badge badge-primary mt-30 ml-15" id="creategrp_btn">Create Group</button></div></div>
  95. <div class="row">
  96. <div class="ResultActions col-sm-6 hidden">
  97. <div id="div_ResultAction" class=" floating-label-form-group floating-label-form-group-with-value">
  98. <label for="lbl" id="lbl_ResultAction">Result Action</label>
  99. <select id="ddl_ResultAction" class="form-control">
  100. <option value="0">Select</option>
  101. </select>
  102. <label for="Validation" id="lblValidation_ResultAction"></label><input type="hidden" id="hfFormPropertyId" value="0" />
  103. </div>
  104. </div>
  105. <!---- <div class="col-sm-6">
  106. <div class="custom-control custom-checkbox divEnablePieces checkbox-primary mt-25">
  107. <input type="checkbox" class="custom-control-input" id="chkAutoApprovedExecuteQuery" checked>
  108. <label class="custom-control-label" for="chkAutoApprovedExecuteQuery">Perform this Action</label>&nbsp
  109. </div>
  110. </div>---->
  111. </div>
  112. </div>
  113. </div>
  114. <div class="bg-white card Advanced_optionsdata">
  115. <div class="card-header"><i class="fa fa-angle-down arrowicon mr-1" onclick="Unibase.Platform.Automation.Components.ExecuteQuery.Instance().Toggleadvancedoptions()"></i>Advanced Options</div>
  116. <div class="card-body Advanced_options hidden">
  117. <div class="row">
  118. <div class="col-sm-6 floating-label-form-group floating-label-form-group-with-value">
  119. <label class="Message_type">Message Type</label>
  120. <select class="form-control" id="message_result">
  121. <option value="0">Success</option>
  122. <option value="1">Warning</option>
  123. <option value="2">Error</option>
  124. </select>
  125. </div>
  126. <div class="col-sm-6">
  127. <input type="checkbox" class="test_data mt-50" id="chkAutoApprovedExecuteQuery" checked>Perform this Action
  128. <!---<label class="check_action">Perform this Action</label>---->
  129. </div>
  130. </div>
  131. </div>
  132. </div>
  133. <div class="bg-white card" id="ActionConditionsDivdata">
  134. <div class="card-header"><i class="fa fa-angle-down conditionicon mr-1" style="font-size:20px" onclick="Unibase.Platform.Automation.Components.ExecuteQuery.Instance().ToggleExecuteQueryConditions();"></i>Condition Details</div>
  135. <div class="card-body hidden" id="ActionConditionsDiv">
  136. <div class="ActionConditions">
  137. <!--For Action Conditions-->
  138. </div>
  139. </div>
  140. </div>
  141. </div>
  142. <div class="bg-white card-footer footer" id="CreateExecuteQueryFooter">
  143. <a href="javascript:;" id="btnCloseExecuteQuery" class="btn btn-light btn-sm mr-auto "> Close</a>
  144. <a href="javascript:;" id="btnSaveExecuteQuery" class="btn btn-primary btn-sm"> Save</a>
  145. </div>
  146. </div>
  147. </form>`;
  148. return html;
  149. }
  150. load(id, containerid, callback) {
  151. return __awaiter(this, void 0, void 0, function* () {
  152. var instance = this;
  153. Unibase.Platform.Automation.Components.ExecuteQuery.Instance().ActionId = instance.ActionId;
  154. Unibase.Platform.Automation.Components.ExecuteQuery.Instance().RuleActionData = instance.RuleActionData;
  155. Unibase.Platform.Automation.Components.ExecuteQuery.Instance().RowIndex = instance.RowIndex;
  156. Unibase.Platform.Automation.Components.ExecuteQuery.Instance().AutomationMode = instance.AutomationMode;
  157. Unibase.Platform.Automation.Components.ExecuteQuery.Instance().RuleProviderId = instance.RuleProviderId;
  158. Unibase.Platform.Automation.Components.ExecuteQuery.Instance().ParentActionId = instance.ParentActionId;
  159. Unibase.Platform.Automation.Components.ExecuteQuery.Instance().IsAutomationMode = instance.IsAutomationMode;
  160. yield Unibase.Platform.Automation.Components.NotificationGroup.Instance().LoadNotificationGroups();
  161. if (instance.AutomationMode == Unibase.Platform.Automation.Enums.AutomationMode.AdvancedMode) {
  162. eval('bizgaze_automation_flow_main.getcontainerid("' + containerid + '")');
  163. }
  164. $("#btnCloseExecuteQuery").click(function () {
  165. $('#' + containerid).modal('hide');
  166. $('#' + containerid).remove();
  167. if (Unibase.Platform.Automation.Components.ExecuteQuery.Instance().AutomationMode == Unibase.Platform.Automation.Enums.AutomationMode.NormalMode) {
  168. if (Unibase.Platform.Automation.Components.ExecuteQuery.Instance().AutomationMode) {
  169. if (Unibase.Platform.Automation.Components.ExecuteQuery.Instance().IsAutomationMode) {
  170. Unibase.Platform.Automation.Components.Rule.Instance().ChangeAction(instance.RowIndex, id);
  171. }
  172. }
  173. }
  174. else {
  175. eval("bizgaze_automation_flow_main.getpopupclosed()");
  176. }
  177. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  178. });
  179. $("#btnSaveExecuteQuery").click(function () {
  180. let appcontrolid = "frmUnibase_ExecuteQuery";
  181. let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(appcontrolid);
  182. if (result == false) {
  183. MessageHelper.Instance().showError("Mandatory fields are missing", "Validate_ExecuteQueryAction");
  184. return false;
  185. }
  186. else {
  187. Unibase.Platform.Automation.Components.ExecuteQuery.Instance().SaveExecuteQuery(id, containerid);
  188. }
  189. });
  190. $("#ddl_QueryType").val(1);
  191. if (instance.ParentActionId != 0) {
  192. Unibase.Platform.Automation.Components.ContactSelection.Instance().getResultActions(instance.ParentActionId);
  193. yield Unibase.Platform.Automation.Components.ExecuteQuery.Instance().GetRuleActionInfo(Number(instance.ParentActionId));
  194. $('#ddl_NotificationGrp').prop("disabled", true);
  195. $('#creategrp_btn').addClass('d-none');
  196. }
  197. $('#creategrp_btn').click(function () {
  198. Unibase.Platform.Automation.Components.NotificationGroup.Instance().init(0, null, true);
  199. });
  200. if (id != "") {
  201. setTimeout(function () { Unibase.Platform.Automation.Components.ExecuteQuery.Instance().EditExecuteQuery(id); }, 10);
  202. }
  203. let rpid = instance.RuleProviderId;
  204. if (rpid != 0) {
  205. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(rpid, null);
  206. Unibase.Platform.Automation.Managers.RuleManager.Instance().getTokens(instance.RuleProviderId).then(function (response) {
  207. var Data = new Array();
  208. for (let i = 0; i <= response.length - 1; i++) {
  209. var result = response[i];
  210. Data.push(result);
  211. }
  212. Unibase.Platform.Automation.Components.ExecuteQuery.Instance().loadSummernote(Data);
  213. });
  214. }
  215. if (instance.RuleActionData.length != 0) {
  216. Unibase.Platform.Automation.Components.ExecuteQuery.Instance().LoadExecuteQueryData(instance.RuleActionData);
  217. }
  218. });
  219. }
  220. GetRuleActionInfo(parentactionid) {
  221. return __awaiter(this, void 0, void 0, function* () {
  222. yield Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleAction(parentactionid).then(function (response) {
  223. if (response != null) {
  224. var html = '<option value=' + response.NotificationGroupId + ' selected>' + response.NotificationGroupName + '</option>';
  225. $('#ddl_NotificationGrp').html('').html(html);
  226. }
  227. });
  228. });
  229. }
  230. ToggleExecuteQueryConditions() {
  231. $('#ActionConditionsDiv').toggleClass("hidden");
  232. if ($('.conditionicon').hasClass('fa-angle-down')) {
  233. $('.conditionicon').removeClass('fa-angle-down').addClass('fa-angle-up');
  234. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(Unibase.Platform.Automation.Components.ExecuteQuery.Instance().RuleProviderId, null);
  235. }
  236. else {
  237. $('.conditionicon').removeClass('fa-angle-up').addClass('fa-angle-down');
  238. }
  239. }
  240. Toggleadvancedoptions() {
  241. if ($('.arrowicon').hasClass('fa-angle-down')) {
  242. $('.arrowicon').removeClass('fa-angle-down').addClass('fa-angle-up');
  243. }
  244. else {
  245. $('.arrowicon').removeClass('fa-angle-up').addClass('fa-angle-down');
  246. }
  247. $('.Advanced_options').toggleClass("hidden");
  248. }
  249. EditExecuteQuery(id) {
  250. let actionid = Number(id);
  251. $("#Spn_ExecuteQuery").text("Edit Execute Query");
  252. Unibase.Platform.Automation.Managers.RuleManager.Instance().getRuleAction(actionid).then(function (response) {
  253. $("#txtExecuteQuery_RuleActionName").val(response.RuleActionName);
  254. $('#ddl_NotificationGrp option[value=' + response.NotificationGroupId + ']').prop('selected', true);
  255. if (!Unibase.Platform.Automation.Components.ExecuteQuery.Instance().IsAutomationMode) {
  256. Unibase.Platform.Automation.Components.ExecuteQuery.Instance().RuleId = response.RuleId;
  257. Unibase.Platform.Automation.Components.ExecuteQuery.Instance().RuleEventId = response.RuleEventId;
  258. Unibase.Platform.Automation.Components.ExecuteQuery.Instance().EventGroupId = response.EventGroupId;
  259. Unibase.Platform.Automation.Components.ExecuteQuery.Instance().ActionId = response.ActionId;
  260. Unibase.Platform.Automation.Components.ExecuteQuery.Instance().ParentActionId = response.ParentActionId;
  261. }
  262. $("#ddl_QueryType").val(response.String4);
  263. $("#ddl_QueryType").attr("disabled", "disabled");
  264. $('#message_result').val(Number(response.BString5));
  265. if (response.ResultActionId != null) {
  266. $('#ddl_ResultAction').val(response.ResultActionId);
  267. }
  268. if (response.ExecuteStatusId != Number(Unibase.Platform.Automation.Enums.ExecuteActionStatus.Approved))
  269. $("#chkAutoApprovedExecuteQuery").prop("checked", false);
  270. else
  271. $("#chkAutoApprovedExecuteQuery").prop("checked", true);
  272. if (response.BString2 == "1") {
  273. $("#chkIsAsync").prop("checked", true);
  274. }
  275. else {
  276. $("#chkIsAsync").prop("checked", false);
  277. }
  278. $('.summernote__Query').summernote("code", response.BString1);
  279. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(response.RuleProviderId, response.SqlWhere);
  280. $("#btn_ActionConditions").addClass("hidden");
  281. if (response.SqlWhere != null && response.SqlWhere != "") {
  282. $('.conditionicon').removeClass('fa-angle-down').addClass('fa-angle-up');
  283. $("#ActionConditionsDiv").removeClass("hidden");
  284. }
  285. eval('_floatingLabelHelper.init();');
  286. });
  287. }
  288. LoadExecuteQueryData(Data) {
  289. for (var i = 0; i < Data.length; i++) {
  290. $("#txtExecuteQuery_RuleActionName").val(Data[i].RuleActionName);
  291. $("#txtExecuteQuery_ApiParameter").val(Data[i].BString1);
  292. if (!Data[i].AutoApproved)
  293. $("#chkAutoApprovedExecuteQuery").prop("checked", false);
  294. else
  295. $("#chkAutoApprovedExecuteQuery").prop("checked", true);
  296. if (Data[i].BString2 == "1") {
  297. $("#chkIsAsync").prop("checked", true);
  298. }
  299. else {
  300. $("#chkIsAsync").prop("checked", false);
  301. }
  302. $('.summernote__Query').summernote("code", Data[i].BString1);
  303. if (Data[i].SqlWhere != "" && Data[i].SqlWhere != null) {
  304. Unibase.Platform.Automation.Components.ContactSelection.Instance().loadQueryBuilder(Unibase.Platform.Automation.Components.ExecuteQuery.Instance().RuleProviderId, Data[i].SqlWhere);
  305. $("#btn_ActionConditions").addClass("hidden");
  306. $('.conditionicon').removeClass('fa-angle-down').addClass('fa-angle-up');
  307. $("#ActionConditionsDiv").removeClass("hidden");
  308. }
  309. eval('_floatingLabelHelper.init();');
  310. }
  311. }
  312. SaveExecuteQuery(ExecuteQueryid, containerid) {
  313. let ruleactionid = Number(ExecuteQueryid);
  314. var contents = $('.summernote__Query').summernote('code');
  315. var plainText = $("<p>" + contents + "</p>").text();
  316. let queryelmnt = $("#builder");
  317. let model = new Unibase.Platform.Automation.Requests.RuleAction();
  318. model.RuleActionId = ruleactionid;
  319. model.RuleActionName = $("#txtExecuteQuery_RuleActionName").val().toString();
  320. model.BString1 = plainText;
  321. model.String4 = Number($("#ddl_QueryType option:selected").val());
  322. model.BString5 = $('#message_result option:selected').val().toString();
  323. model.ActionId = Unibase.Platform.Automation.Components.ExecuteQuery.Instance().ActionId;
  324. model.RuleId = 0;
  325. model.Users = "";
  326. model.NotificationGroupId = $('#ddl_NotificationGrp').val() == undefined ? 0 : Number($('#ddl_NotificationGrp').val());
  327. if (model.NotificationGroupId == 0) {
  328. MessageHelper.Instance().showError("Please Select Notification Group", "Validate_ExecuteQueryAction");
  329. return;
  330. }
  331. let query = queryelmnt.queryBuilder('getSQL', false, true);
  332. if (query != null) {
  333. model.SqlWhere = queryelmnt.queryBuilder('getSQL', false, true).sql.replace(/\n/g, " ").replace(/LIKE/g, "ILIKE");
  334. ;
  335. model.SqlWhereJson = JSON.stringify(queryelmnt.queryBuilder('getSQL', false, true));
  336. }
  337. else {
  338. model.SqlWhere = "";
  339. model.SqlWhereJson = "";
  340. }
  341. model.ResultActionId = Number($("#ddl_ResultAction option:selected").val());
  342. if (model.ResultActionId != 0) {
  343. model.ResultActionName = $("#ddl_ResultAction option:selected").text();
  344. }
  345. else {
  346. model.ResultActionName = "";
  347. }
  348. if ($('#chkIsAsync').is(':checked')) {
  349. model.BString2 = "1";
  350. }
  351. else {
  352. model.BString2 = "0";
  353. }
  354. model.DelayTime = 0;
  355. model.ParentActionId = Unibase.Platform.Automation.Components.ExecuteQuery.Instance().ParentActionId;
  356. model.AutoApproved = $('#chkAutoApprovedExecuteQuery').is(':checked');
  357. model.RowIndex = Unibase.Platform.Automation.Components.ExecuteQuery.Instance().RowIndex;
  358. if (Unibase.Platform.Automation.Components.ExecuteQuery.Instance().IsAutomationMode) {
  359. if (Unibase.Platform.Automation.Components.ExecuteQuery.Instance().AutomationMode == Unibase.Platform.Automation.Enums.AutomationMode.NormalMode) {
  360. Unibase.Platform.Automation.Components.Rule.Instance().RuleActionsArray(model);
  361. $('#' + containerid).modal('hide');
  362. $('#' + containerid).remove();
  363. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  364. }
  365. else {
  366. model.RuleId = eval("bizgaze_automation_flow_main.getruleid()");
  367. Automation.Managers.RuleManager.Instance().saveRuleAction(model).then(function (response) {
  368. if (response.status == Unibase.Data.Status.Error) {
  369. MessageHelper.Instance().showError(response.message, "Validate_ExecuteQueryAction");
  370. }
  371. else {
  372. MessageHelper.Instance().showSuccess(response.message, "Validate_ExecuteQueryAction");
  373. $('#' + containerid).modal('hide');
  374. $('#' + containerid).remove();
  375. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  376. var actionname = response.result.RuleActionName;
  377. eval("bizgaze_automation_flow_main.saveExecuteQueryblock('" + response.result.RuleActionId + "','" + actionname + "')");
  378. }
  379. });
  380. }
  381. }
  382. else {
  383. model.RuleId = Unibase.Platform.Automation.Components.ExecuteQuery.Instance().RuleId;
  384. model.EventGroupId = Unibase.Platform.Automation.Components.ExecuteQuery.Instance().EventGroupId;
  385. model.RuleEventId = Unibase.Platform.Automation.Components.ExecuteQuery.Instance().RuleEventId;
  386. model.ActionId = Unibase.Platform.Automation.Components.ExecuteQuery.Instance().ActionId;
  387. model.ParentActionId = Unibase.Platform.Automation.Components.ExecuteQuery.Instance().ParentActionId;
  388. Automation.Managers.RuleManager.Instance().saveRuleAction(model).then(function (response) {
  389. if (response.status == Unibase.Data.Status.Error) {
  390. MessageHelper.Instance().showError(response.message, "Validate_ExecuteQueryAction");
  391. }
  392. else {
  393. MessageHelper.Instance().showSuccess(response.message, "Validate_ExecuteQueryAction");
  394. $('#' + containerid).modal('hide');
  395. $('#' + containerid).remove();
  396. Unibase.Platform.Automation.Components.Conditions.conditionArray = [];
  397. }
  398. });
  399. }
  400. }
  401. loadSummernote(Data) {
  402. $(".summernote__Query").summernote({
  403. height: 100,
  404. minHeight: null,
  405. maxHeight: null,
  406. placeholder: "Query",
  407. disableDragAndDrop: true,
  408. codemirror: {
  409. mode: 'text/html',
  410. lineNumbers: true
  411. },
  412. toolbar: [
  413. ['font', ['bold', 'italic', 'underline']],
  414. ['color', ['color']],
  415. ['view', ['fullscreen', 'codeview', 'help']],
  416. ],
  417. hint: {
  418. match: /\B[@!](\w*)$/,
  419. search: function (keyword, callback) {
  420. callback($.grep(Data, function (i) {
  421. var user = i;
  422. return user.indexOf(keyword) === 0;
  423. }));
  424. },
  425. content: function (i) {
  426. var user = i;
  427. return $('<span>@' + user + '</span>')[0];
  428. }
  429. }
  430. });
  431. }
  432. static Instance() {
  433. if (this.instance === undefined) {
  434. this.instance = new ExecuteQuery();
  435. }
  436. return this.instance;
  437. }
  438. }
  439. Components.ExecuteQuery = ExecuteQuery;
  440. })(Components = Automation.Components || (Automation.Components = {}));
  441. })(Automation = Platform.Automation || (Platform.Automation = {}));
  442. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  443. })(Unibase || (Unibase = {}));