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.

permissionexportimport.js 6.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. var Unibase;
  2. (function (Unibase) {
  3. let Platform;
  4. (function (Platform) {
  5. let Apps;
  6. (function (Apps) {
  7. let Components;
  8. (function (Components) {
  9. class PermissionExportImport extends Platform.Core.BaseComponent {
  10. constructor() {
  11. super();
  12. this.appmanager = Apps.Managers.AppManager.Instance();
  13. this.navigationhelper = Unibase.Platform.Helpers.NavigationHelper.Instance();
  14. }
  15. cssFiles() {
  16. return [];
  17. }
  18. jsFiles() {
  19. return ['platform/apps/components/appbuilder.js', "platform/forms/components/formviewer/formviewer.js", 'libs/parsley/parsley.min.js', 'platform/core/infos/status.js', '/platform/core/helpers/file/filehelper.js'];
  20. }
  21. html(id, containerid) {
  22. return `<form id="form_PermissionExpImp" data-validate="parsley" data-isdynamic="false">
  23. <div class="b-b bg-white header"><strong>Permissions Export/Import</strong></div>
  24. <div class="simple-scroll-bar scrollable import-export-body">
  25. <div id="div_importmessage" class="clear"></div>
  26. <div class="card">
  27. <div class="card-header">Export</div>
  28. <div class="card-body"><div id="div_Export">
  29. <a href="javascript:;" id="btn_permissionExport" class="btn btn-info text-white">Export</a>
  30. </div></div></div>
  31. <div class="card">
  32. <div class="card-header">Select file to import</div>
  33. <div class="card-body"><div class="" id="div_Import">
  34. <input type="file" id="permissionimport_File" class="bg-light d-none d-sm-block required"></br>
  35. <a href="javascript:;" id="fileUpload" class="btn btn-warning text-white">Upload</a></div>
  36. </div></div>
  37. </div>
  38. <div class="bg-white footer"><button id="btn_PermissionClose" class="btn btn-sm mr-auto btn-close">Close</button></div></form>`;
  39. }
  40. load(id, containerid, callback) {
  41. var instance = this;
  42. $("#btn_PermissionClose").click(function () {
  43. $('#' + containerid).modal('hide');
  44. $('#' + containerid).remove();
  45. });
  46. $('#permissionimport_File').change(function (e) {
  47. Unibase.Platform.Apps.Components.PermissionExportImport.Instance().fileEvent(e);
  48. });
  49. $("#btn_permissionExport").on("click", function () {
  50. PermissionExportImport.Instance().exportapprolesettings();
  51. });
  52. $("#fileUpload").click(function () {
  53. let permissioncontrolid = "form_PermissionExpImp";
  54. let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(permissioncontrolid);
  55. if (result == false) {
  56. MessageHelper.Instance().showError("Plase Select File", "div_importmessage");
  57. return false;
  58. }
  59. else {
  60. PermissionExportImport.Instance().importapprolesettings(containerid);
  61. }
  62. });
  63. }
  64. exportapprolesettings() {
  65. var instance = this;
  66. instance.navigationHelper.showLoading();
  67. instance.appmanager.exportAppRoleSettings().then(function (response) {
  68. var filename = "Permissions.xml";
  69. var xmltext = response.result;
  70. var pom = document.createElement('a');
  71. var bb = new Blob([xmltext], { type: 'text/plain' });
  72. pom.setAttribute('href', window.URL.createObjectURL(bb));
  73. pom.setAttribute('download', filename);
  74. pom.dataset.downloadurl = ['text/plain', pom.download, pom.href].join(':');
  75. pom.draggable = true;
  76. pom.classList.add('dragout');
  77. pom.click();
  78. instance.navigationHelper.hideLoading();
  79. });
  80. }
  81. importapprolesettings(containerid) {
  82. var instance = this;
  83. instance.navigationHelper.showLoading();
  84. var url = _appsettings.server_url() + '/apis/v4/unibase/platform/apps/importapprolesettings/np';
  85. Platform.Helpers.FileHelper.Instance().upload(url, Unibase.Platform.Apps.Components.PermissionExportImport.fileData).then(function (response) {
  86. if (response.status == Unibase.Data.Status.Error) {
  87. instance.navigationHelper.hideLoading();
  88. MessageHelper.Instance().showError(response.message, "div_importmessage");
  89. }
  90. else {
  91. instance.navigationHelper.hideLoading();
  92. MessageHelper.Instance().showSuccess(response.message, "div_importmessage");
  93. $('#' + containerid).modal('hide');
  94. $('#' + containerid).remove();
  95. }
  96. });
  97. }
  98. showImport() {
  99. this.navigationHelper.popup(0, '', Unibase.Platform.Apps.Components.PermissionExportImport.Instance(), null, Platform.Helpers.Size.Large);
  100. }
  101. fileEvent($event) {
  102. const fileSelected = $event.target.files[0];
  103. Unibase.Platform.Apps.Components.PermissionExportImport.fileData = new FormData();
  104. Unibase.Platform.Apps.Components.PermissionExportImport.fileData.append(fileSelected.name, fileSelected);
  105. }
  106. static Instance() {
  107. if (this.instance === undefined) {
  108. this.instance = new PermissionExportImport();
  109. }
  110. return this.instance;
  111. }
  112. }
  113. PermissionExportImport.fileData = new FormData();
  114. PermissionExportImport.childappnames = [];
  115. Components.PermissionExportImport = PermissionExportImport;
  116. })(Components = Apps.Components || (Apps.Components = {}));
  117. })(Apps = Platform.Apps || (Platform.Apps = {}));
  118. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  119. })(Unibase || (Unibase = {}));