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.

importrule.js 8.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  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 ImportRule extends Platform.Core.BaseComponent {
  10. constructor() {
  11. super();
  12. this.navigationhelper = Unibase.Platform.Helpers.NavigationHelper.Instance();
  13. }
  14. cssFiles() {
  15. var cssfiles = ["libs/nestable/JqueryminMenu.css"];
  16. return cssfiles;
  17. }
  18. jsFiles() {
  19. return ['platform/automation/managers/rulemanager.js',
  20. 'platform/automation/components/rulebuilder/importrule.js',
  21. "platform/forms/components/formviewer/formviewer.js",
  22. 'libs/parsley/parsley.min.js',
  23. 'platform/core/infos/status.js', '/platform/core/helpers/file/filehelper.js'];
  24. }
  25. html(id, containerid) {
  26. var instance = this;
  27. let html = '<form id="form_ImportRule" data-validate="parsley" data-isdynamic="false"><div id="div_importmessage" class="clear"></div><div class="b-b bg-white header dataApiHeader"><strong>Import Rule</strong></div><div data-simplebar class="simple-scroll-bar scrollable import-export-body"><div class="card" id="importexportsection"><div class="card-header">Select file to import</div><div class="card-body"><div class="" id="div_Import"><input type="file" id="import_File" class="bg-light d-none d-sm-block required"><hr /><a href="javascript:;" id="fileUpload" class="btn btn-warning text-white" onclick=" Unibase.Platform.Automation.Components.ImportRule.Instance().FileUpload(\'' + containerid + '\');">Upload</a></div></div></div><div class="hidden" id="div_Export"><span id="sp_formName"></span><a href="javascript:;" id="fileExport" class="btn btn-primary text-white">Download</a></div></div><div class="bg-white footer"><button id="btn_CloseImport" class="btn btn-sm mr-auto btn-close">Close</button></div></form>';
  28. return html;
  29. }
  30. showImport() {
  31. this.navigationHelper.popup(0, '', Unibase.Platform.Automation.Components.ImportRule.Instance(), null, Platform.Helpers.Size.Large);
  32. }
  33. FileUpload(containerid) {
  34. var instance = this;
  35. instance.navigationHelper.showLoading();
  36. var url = _appsettings.server_url() + '/apis/v4/unibase/notificationrule/platform/importrules/np';
  37. Platform.Helpers.FileHelper.Instance().upload(url, Unibase.Platform.Automation.Components.ImportRule.fileData).then(function (response) {
  38. if (response.status == Unibase.Data.Status.Error) {
  39. instance.navigationHelper.hideLoading();
  40. MessageHelper.Instance().showError(response.message, "div_importmessage");
  41. }
  42. else {
  43. instance.navigationHelper.hideLoading();
  44. MessageHelper.Instance().showSuccess("SuccessFully Imported", "div_importmessage");
  45. $('#' + containerid).modal('hide');
  46. $('#' + containerid).remove();
  47. }
  48. });
  49. }
  50. load(id, containerid, callback) {
  51. var instance = this;
  52. $("#btn_CloseImport").click(function () {
  53. $('#' + containerid).modal('hide');
  54. $('#' + containerid).remove();
  55. });
  56. $("#btn_Import").click(function () {
  57. $("#importexportsection").removeClass("hidden");
  58. $("#div_Import").removeClass("hidden");
  59. });
  60. $('#import_File').change(function (e) {
  61. Unibase.Platform.Automation.Components.ImportRule.Instance().fileEvent(e);
  62. });
  63. $("#txt_Icon").focus(function () {
  64. $(".div_Icons").fadeIn();
  65. $("#icons").toggleClass("hidden");
  66. $(".div_Icons").removeClass('hidden');
  67. });
  68. $("#txt_Icon").focusout(function () {
  69. $(".div_Icons").fadeOut();
  70. });
  71. }
  72. fileEvent($event) {
  73. const fileSelected = $event.target.files[0];
  74. Unibase.Platform.Automation.Components.ImportRule.fileData = new FormData();
  75. Unibase.Platform.Automation.Components.ImportRule.fileData.append(fileSelected.name, fileSelected);
  76. }
  77. exportSingleRule() {
  78. var _fileCacheHelper = this.fileCacheHelper;
  79. var ruleid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_recordid").Value);
  80. var rulename = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_rulename").Value;
  81. if (rulename == undefined || rulename == null) {
  82. rulename = "Rules.xml";
  83. }
  84. _fileCacheHelper.loadJsFileAsync('platform/automation/managers/rulemanager.js', function () {
  85. Automation.Managers.RuleManager.Instance().exportSingleRule(ruleid).then(function (response) {
  86. var filename = rulename + ".xml";
  87. var xmltext = response.result;
  88. var pom = document.createElement('a');
  89. var bb = new Blob([xmltext], { type: 'text/plain' });
  90. pom.setAttribute('href', window.URL.createObjectURL(bb));
  91. pom.setAttribute('download', filename);
  92. pom.dataset.downloadurl = ['text/plain', pom.download, pom.href].join(':');
  93. pom.draggable = true;
  94. pom.classList.add('dragout');
  95. pom.click();
  96. });
  97. });
  98. }
  99. exportsRules() {
  100. var _fileCacheHelper = this.fileCacheHelper;
  101. var instance = this;
  102. _fileCacheHelper.loadJsFileAsync('platform/automation/managers/rulemanager.js', function () {
  103. Automation.Managers.RuleManager.Instance().exportRules().then(function (response) {
  104. var filename = "Rules.xml";
  105. var xmltext = response.result;
  106. var pom = document.createElement('a');
  107. var bb = new Blob([xmltext], { type: 'text/plain' });
  108. pom.setAttribute('href', window.URL.createObjectURL(bb));
  109. pom.setAttribute('download', filename);
  110. pom.dataset.downloadurl = ['text/plain', pom.download, pom.href].join(':');
  111. pom.draggable = true;
  112. pom.classList.add('dragout');
  113. pom.click();
  114. });
  115. });
  116. }
  117. static Instance() {
  118. if (this.instance === undefined) {
  119. this.instance = new ImportRule();
  120. }
  121. return this.instance;
  122. }
  123. }
  124. ImportRule.fileData = new FormData();
  125. Components.ImportRule = ImportRule;
  126. })(Components = Automation.Components || (Automation.Components = {}));
  127. })(Automation = Platform.Automation || (Platform.Automation = {}));
  128. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  129. })(Unibase || (Unibase = {}));