Built files from Bizgaze WebServer
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

activerules.widget.js 24KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  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 ActiveRules extends Platform.Core.BaseComponent {
  19. cssFiles() {
  20. return [];
  21. }
  22. jsFiles() {
  23. return ["platform/automation/managers/rulemanager.js", "platform/core/enums/rowstatus.js", "platform/automation/enums/schedulertype.js", "platform/automation/enums/ruletype.js"];
  24. }
  25. html(id, containerid) {
  26. let html = `<form id="frmUnibase_RuleScheduler" data-validate="parsley" data-isdynamic="false">
  27. <div id="Validate_RuleScheduler" class="clear"></div>
  28. <div class="card bg-light m-0">
  29. <div class="b-b bg-white card-header header">
  30. <strong class="text-dark title" id="Form_RuleScheduler">Schedule Rule</strong>
  31. </div>
  32. <div class="card-body scrollable" style="height:100%;overflow-y:hidden scroll;">
  33. <div class="bg-white card" id="divEventDetails">
  34. <div class="card-body">
  35. <div class="row" id="div_Scheduler">
  36. <div class="col-sm-6">
  37. <div class="floating-label-form-group floating-label-form-group-with-value">
  38. <label for="lblSchedulerType" id="lbl_SchedulerType" class="font-bold">Scheduler Type<span class="text-danger">*</span></label>
  39. <select id="ddl_SchedulerType" class="form-control value-control" data-isdynamic="true" placeholder="Select" data-placeholder="Select" data-label="Select">
  40. <option value="">Select</option>
  41. <option value="2">Daily</option>
  42. <option value="3">FifteenMinute</option>
  43. <option value="4">FiveMinute</option>
  44. <option value="5">FortyFiveMinute</option>
  45. <option value="6">HalfYearly</option>
  46. <option value="7">Monthly</option>
  47. <option value="8">NineHour</option>
  48. <option value="9">OneHour</option>
  49. <option value="10">OneMinute</option>
  50. <option value="11">Quarterly</option>
  51. <option value="12">SixHour</option>
  52. <option value="13">ThirtyMinute</option>
  53. <option value="14">ThreeHour</option>
  54. <option value="15">ThreeMinute</option>
  55. <option value="16">TwelveHour</option>
  56. <option value="17">TwoHour</option>
  57. <option value="18">TwoMinute</option>
  58. <option value="19">Yearly</option>
  59. </select>
  60. <input type="hidden" id="hf_SchedulerType" />
  61. </div>
  62. </div>
  63. <div class="col-sm-6">
  64. <div class="input-group">
  65. <label for="User" class="font-bold">User</label>
  66. <select id="txtAutoComplete_Users" class="form-control text-control" style="width:100%;" placeholder="User" data-placeholder="User" data-label="" data-istagselect="true"></select>
  67. <input type="hidden" id="hf_Autocomplete_Users" class="form-control value-control" data-isdynamic="true" />
  68. </div>
  69. </div>
  70. </div>
  71. <div class="row" id="div_Dates">
  72. <div id="" class="col-sm-6">
  73. <div class="floating-label-form-group" id="div_StartDate">
  74. <label for="lbl" id="lbl_StartDate">Start Date<span class="text-danger" id="spnIsRequired_StartDate"> *</span></label>
  75. <div class="input-group">
  76. <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 *">
  77. <span class="input-group-addon mt-10"><i class="fa fa-calendar"></i></span>
  78. <input type="hidden" id="hf_StartDate" />
  79. </div>
  80. </div>
  81. </div>
  82. <div id="" class="col-sm-6">
  83. <div class="floating-label-form-group" id="div_EndDate">
  84. <label for="lbl" id="lbl_EndDate">End Date<span class="text-danger" id="spnIsRequired_EndDate"> *</span></label>
  85. <div class="input-group">
  86. <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 *">
  87. <span class="input-group-addon mt-10"><i class="fa fa-calendar"></i></span>
  88. <input type="hidden" id="hf_EndDate" />
  89. </div>
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. </div>
  95. </div>
  96. <div class="bg-white card-footer footer" id="FooterRuleScheduler">
  97. <a href="javascript:;" id="btnCloseRuleScheduler" class="btn btn-light btn-sm mr-auto "> Close</a>
  98. <a href="javascript:;" id="btnSaveRuleScheduler" class="btn btn-primary btn-sm"> Save</a>
  99. </div>
  100. </div>
  101. </form>`;
  102. return html;
  103. }
  104. load(id, containerid, callback) {
  105. var instance = this;
  106. $("#btnCloseRuleScheduler").click(function () {
  107. $('#' + containerid).modal('hide');
  108. $('#' + containerid).remove();
  109. });
  110. $("#btnSaveRuleScheduler").click(function () {
  111. let appcontrolid = "frmUnibase_RuleScheduler";
  112. let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(appcontrolid);
  113. if (result == false) {
  114. MessageHelper.Instance().showError("Mandatory fields are missing", "Validate_RuleScheduler");
  115. return false;
  116. }
  117. else {
  118. ActiveRules.Instance().SaveRuleScheduler(id, containerid);
  119. }
  120. });
  121. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/followers/reports_followersauto';
  122. AutoCompleteHelper.getHelper().Create("#txtAutoComplete_Users", "#hf_Autocomplete_Users", url, function (response) {
  123. var data = response;
  124. });
  125. $("#date_StartDate").daterangepicker({
  126. autoUpdateInput: false,
  127. timePicker: true,
  128. timePicker24Hour: true,
  129. locale: {
  130. format: 'DD/MM/YYYY HH:mm',
  131. },
  132. singleDatePicker: true,
  133. showDropdowns: true,
  134. minYear: 1901,
  135. maxDate: new Date(2050, 11, 31)
  136. });
  137. $("#date_EndDate").daterangepicker({
  138. autoUpdateInput: false,
  139. timePicker: true,
  140. timePicker24Hour: true,
  141. locale: {
  142. format: 'DD/MM/YYYY HH:mm',
  143. },
  144. singleDatePicker: true,
  145. showDropdowns: true,
  146. minYear: 1901,
  147. maxDate: new Date(2050, 11, 31)
  148. });
  149. $('#date_StartDate').on('apply.daterangepicker', function (ev, picker) {
  150. $('#div_StartDate').addClass('floating-label-form-group-with-value');
  151. });
  152. $('#date_EndDate').on('apply.daterangepicker', function (ev, picker) {
  153. $('#div_EndDate').addClass('floating-label-form-group-with-value');
  154. });
  155. if (id != "") {
  156. Unibase.Platform.Automation.Components.ActiveRules.Instance().EditRuleScheduler(id);
  157. }
  158. }
  159. init(containerid) {
  160. this.render(containerid);
  161. this.loadJsFiles();
  162. }
  163. render(containerid) {
  164. return __awaiter(this, void 0, void 0, function* () {
  165. $("." + containerid).empty();
  166. let html = `<form id="frmUnibase_ActiveRules" data-validate="parsley" data-isdynamic="false">
  167. <div class="card bg-light m-0">
  168. <div class="b-b bg-white card-header">
  169. <strong class="biz-highlight-bg-color title" id="">Active Rules</strong>
  170. <span class="badge badge-light badge-pill badge-outline span_activerules_count">0</span>
  171. </div>
  172. <div class="card-body scrollable p-0" style="overflow-y: scroll;">
  173. <table class="table m-0">
  174. <thead style="background: #EAECEE !important;">
  175. <tr >
  176. <th class="biz-list-header">Rule Name</th>
  177. <th class="biz-list-header">Sceduler Type</th>
  178. <th class="biz-list-header">From Date</th>
  179. <th class="biz-list-header">To Date</th>
  180. <th class="biz-list-header">NextSceduled Date</th>
  181. <th></th>
  182. </tr>
  183. </thead>
  184. <tbody class="ActiveRuleslist_body bg-white text-dark font-14"></tbody>
  185. </table>
  186. </div>
  187. <div class="bg-white card-footer footer" id="ActiveRulesFooter">
  188. </div>
  189. </div>
  190. </form>`;
  191. return yield $("." + containerid).append(html);
  192. });
  193. }
  194. loadJsFiles() {
  195. var jsfiles = Unibase.Platform.Automation.Components.ActiveRules.Instance().jsFiles();
  196. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(jsfiles, function () {
  197. let RuleId = "";
  198. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length > 0) {
  199. for (let obj of Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters) {
  200. if (obj.Key === "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_ruleid") {
  201. RuleId = obj.Value.toString();
  202. }
  203. }
  204. }
  205. if (Number(RuleId) != 0) {
  206. Unibase.Platform.Automation.Components.ActiveRules.Instance().GetActiveRules(Number(RuleId));
  207. }
  208. });
  209. }
  210. GetActiveRules(RuleId) {
  211. Unibase.Platform.Automation.Managers.RuleManager.Instance().getActiveRules(RuleId).then(function (response) {
  212. if (response.length > 0) {
  213. $('.ActiveRuleslist_body').html('<tr class="ActiveRuleslist hidden"></tr>');
  214. var html = "";
  215. let ActiveRules = response;
  216. let Status = ActiveRules[0].StatusId;
  217. let StatusName = "";
  218. let ChangeStatusName = "";
  219. let statusbadge = "";
  220. let SchedulerType = Unibase.Platform.Automation.Enums.SchedulerType[ActiveRules[0].SchedulerId];
  221. let NewStatus;
  222. if (Status == Number(Unibase.Platform.Core.Enums.RowStatus.Active)) {
  223. StatusName = "Active";
  224. ChangeStatusName = "DeActivate";
  225. NewStatus = Unibase.Platform.Core.Enums.RowStatus.InActive;
  226. statusbadge = "#fff";
  227. }
  228. else {
  229. StatusName = "InActive";
  230. ChangeStatusName = "Activate";
  231. NewStatus = Unibase.Platform.Core.Enums.RowStatus.Active;
  232. statusbadge = "#FFF1F1";
  233. }
  234. html = '<tr style="background:' + statusbadge + '"><td class="widget-list-item-main-title">' + ActiveRules[0].RuleName + '</td><td>' + SchedulerType + '</td><td>' + Unibase.Platform.Helpers.DateTimeHelper.Instance().FormatDateTimeWithoutSeconds(ActiveRules[0].StartDate) + '</td><td>' + Unibase.Platform.Helpers.DateTimeHelper.Instance().FormatDateTimeWithoutSeconds(ActiveRules[0].EndDate) + '</td><td>' + Unibase.Platform.Helpers.DateTimeHelper.Instance().FormatDateTimeWithoutSeconds(ActiveRules[0].NextScheduleDate) + '</td><td><div><a href="javascript:;" data-toggle="dropdown" class="no-caret dropdown-toggle pull-right biz-transparent-text-color" id="" aria-expanded="false"><i class="fa fa-ellipsis-h mr-20"></i></a><ul class="dropdown-menu pull-right clearfix"><li class="dropdown-menu-item hidden"></li><li id=""><a class="dropdown-item biz-transparent-text-color" href="javascript:;" id="" onclick="Unibase.Platform.Automation.Components.ActiveRules.Instance().ChangeActiveRuleStatus(' + ActiveRules[0].ActiveRuleId + ',' + ActiveRules[0].RuleId + ',' + NewStatus + ');">' + ChangeStatusName + '</a></li></ul></div></td></tr>';
  235. $(".ActiveRuleslist:last").before(html);
  236. $(".span_activerules_count").text(1);
  237. }
  238. else {
  239. $(".ActiveRuleslist_body").html('<div class="alert alert-primary text-center mb-0 border-0 rounded-0 w-100 ">No Records Found</div>');
  240. $(".span_activerules_count").text(0);
  241. }
  242. });
  243. }
  244. ChangeActiveRuleStatus(ActiveRuleId, RuleId, Status) {
  245. if (Status == Unibase.Platform.Core.Enums.RowStatus.Active) {
  246. Unibase.Platform.Helpers.NavigationHelper.Instance().popup(RuleId, "", Unibase.Platform.Automation.Components.ActiveRules.Instance(), null, Platform.Helpers.Size.DockLeft);
  247. }
  248. else {
  249. Unibase.Platform.Automation.Managers.RuleManager.Instance().UpdateActiveRuleStatus(ActiveRuleId, Status).then(function (response) {
  250. if (response.status == Unibase.Data.Status.Success) {
  251. MessageHelper.Instance().showSuccess(response.message, " ");
  252. Unibase.Platform.Automation.Components.ActiveRules.Instance().GetActiveRules(response.result.RuleId);
  253. }
  254. });
  255. }
  256. }
  257. EditRuleScheduler(id) {
  258. let response;
  259. Unibase.Platform.Automation.Managers.RuleManager.Instance().getRule(id).then(function (res) {
  260. response = res;
  261. $("#hf_SchedulerType").val(response.SchedulerId);
  262. $("#divEventDetails").removeClass("hidden");
  263. $("#EventColumnsdiv").addClass("hidden");
  264. $("#select2_EventColumns").removeClass("required");
  265. $("#date_StartDate").val(Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateTimeWithoutSeconds(response.StartDate));
  266. $("#date_EndDate").val(Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateTimeWithoutSeconds(response.EndDate));
  267. $("#ddl_SchedulerType").val($("#hf_SchedulerType").val());
  268. $("input[type=radio]").attr('disabled', 1);
  269. var useroption = new Option(response.UserName, response.IdentityUserId.toString(), true, true);
  270. $("#txtAutoComplete_Users").append(useroption);
  271. $("#div_StartDate").addClass('floating-label-form-group-with-value');
  272. $("#div_EndDate").addClass('floating-label-form-group-with-value');
  273. eval('_floatingLabelHelper.init();');
  274. });
  275. }
  276. SaveRuleScheduler(id, containerid) {
  277. let ruleobj = {};
  278. ruleobj.RuleId = id;
  279. ruleobj.SchedulerId = Number($("#ddl_SchedulerType").val());
  280. ruleobj.RuleType = Unibase.Platform.Automation.Enums.RuleType.Scheduler;
  281. let StartDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime($("#date_StartDate").val());
  282. ruleobj.StartDate = new Date(StartDate);
  283. let EndDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime($("#date_EndDate").val());
  284. ruleobj.EndDate = new Date(EndDate);
  285. ruleobj.IdentityUserId = Number($("#txtAutoComplete_Users option:selected").val());
  286. Unibase.Platform.Automation.Managers.RuleManager.Instance().UpdateRuleScheduler(ruleobj).then(function (response) {
  287. if (response.status == Unibase.Data.Status.Error) {
  288. MessageHelper.Instance().showError(response.message, "Validate_RuleScheduler");
  289. }
  290. else {
  291. $('#' + containerid).modal('hide');
  292. $('#' + containerid).remove();
  293. Unibase.Platform.Automation.Components.ActiveRules.Instance().GetActiveRules(response.result.RuleId);
  294. }
  295. });
  296. }
  297. static Instance() {
  298. if (this.instance === undefined) {
  299. this.instance = new ActiveRules();
  300. }
  301. return this.instance;
  302. }
  303. }
  304. Components.ActiveRules = ActiveRules;
  305. })(Components = Automation.Components || (Automation.Components = {}));
  306. })(Automation = Platform.Automation || (Platform.Automation = {}));
  307. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  308. })(Unibase || (Unibase = {}));