123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307 |
- var Unibase;
- (function (Unibase) {
- let Platform;
- (function (Platform) {
- let Apps;
- (function (Apps) {
- let Components;
- (function (Components) {
- class Import extends Platform.Core.BaseComponent {
- constructor() {
- super();
- this.appmanager = Apps.Managers.AppManager.Instance();
- this.navigationhelper = Unibase.Platform.Helpers.NavigationHelper.Instance();
- }
- cssFiles() {
- return [];
- }
- jsFiles() {
- return ['platform/apps/components/appbuilder.js', 'platform/apps/components/import.js', "platform/forms/components/formviewer/formviewer.js", 'libs/parsley/parsley.min.js', 'platform/core/infos/status.js', '/platform/core/helpers/file/filehelper.js', 'platform/permission/managers/permissionmanager.js'];
- }
- html(id, containerid) {
- var instance = this;
- var data;
- if (this.DuplicateHtml == true) {
- var installedappid = Unibase.Themes.Providers.DetailHelper.recordId;
- instance.appmanager.getChilds(installedappid).then(function (response) {
- data = response.result;
- }).then(function () {
- if (data.length > 0) {
- var html1 = "";
- $(".div_childbody").empty();
- for (let i = 0; i < data.length; i++) {
- html1 += '<div class="row div_childs"><div class="col-sm-4" style="margin-top:50px"><strong><span class="sp_appname" data-text=' + data[i].InstalledAppId + '>' + data[i].AppTitle + '</span></strong></div><div class="col-sm-6"> <div class="floating-label-form-group"> <label for= "txt_childapp" class= "font-bold"> App Title <span class="text-danger">*</span> </label > <input type="text" id = "txt_Childapp" class="form-control floating-label-control required childapp" data - isdynamic="false" placeholder = "App Title *" data - placeholder="Enter App Title" data-label="App Title *" autocomplete = "off"/></div></div></div>';
- }
- $(".div_childapp").removeClass('hidden');
- $(".child_card").removeClass('hidden');
- $(".div_childbody").append(html1);
- }
- });
- var html = `<form id="frmUnibase_DuplicateApp" data-validate="parsley" data-isdynamic="false"><div id="div_duplicatemessage" class="clear"></div><div class="card bg-light"><div class="b-b bg-white card-header header"><strong class="text-dark title" id="lbl_title">Duplicate App</strong> </div>
- <div class="card-body scrollable" id = "divCreateApp"> <div class="bg-white card"> <div id="unibase_ValidationSummary" class="clear"> </div><div class="card-body"><div class="row"> <div class="col-sm-6"> <div class="floating-label-form-group"> <label for= "txt_FriendlyName" class= "font-bold"> App Title <span class="text-danger"> * </span></label> <input type="text" id = "txt_Name" class="form-control floating-label-control required" data - isdynamic="false" placeholder = "App Title *" data - placeholder="Enter App Title" data - label="App Title *" autocomplete = "off"/> </div></div>
- <div class="col-sm-6"> <div class="floating-label-form-group div_IconGroupName" id = "div_IconMargin"> <label for= "txt_IconName" class= "font-bold"> Icon Name <span class="text-danger"> * </span></label > <input type="text" id = "txt_Icon" class="form-control floating-label-control tokenable" data - isdynamic="false" placeholder = "Icon Name *" data - placeholder="Enter Icon Name" data - label="Icon Name *" autocomplete = "off"> <input type='hidden' id = 'txtfafaIcon'/> <div class='div_GroupIcon'></div></div> </div></div><div class='col-sm-12 hidden div_Icons' id = 'icons'>
- <div id='appicons' class='panel panel-default'><ul class='list-group no-radius m-b-none list-group-item no-border icon-list'> </ul></div></div> </div></div><div class="b-b bg-white div_childapp hidden card-header header"><strong class="text-dark title">Child Apps</strong> </div> <div class="bg-white card child_card hidden"><div class="card-body div_childbody"></div></div> </div><div class="bg-white card-footer footer" id = "CreateAppFooter"> <button id="btn_CloseDuplicateApp" class="btn btn-secondary btn-sm mr-auto"> Close </button><button id="btn_SaveDuplicateApp" class="btn btn-primary btn-sm pull-right">Save</button></div></div></form>`;
- return html;
- }
- else if (this.PermissionsExportImportHtml == true) {
- return `<div class="b-b bg-white header"> <strong>Export/Import Permissions</strong></div><div class="simple-scroll-bar scrollable"> <div id="div_permissionsimportmessage" class="clear"></div><form id="form_AllAppsPermissionsExportImport" data-validate="parsley" data-isdynamic="false"> <div class="card"> <div class="card-header">For All Apps</div><div class="card-body"> <ul class="d-flex justify-content-between w-100"> <li class=" w-45"> <div class="card-header">Import</div><div class="card-body"> <div class="" id="div_AllPermissionsImport"> Select file to import </br> </br> <input type="file" id="import_AllAppsPermissionFile" class="bg-light required"> <br/> <br/> <a href="javascript:;" id="allAppsPermission_fileUpload" class="btn btn-warning text-white">Upload</a> </div></div></li><li class="w-45 h-130p"> <div class="card-header"> Export</div><div class="card-body"> <a href="javascript:;" onclick="Unibase.Platform.Apps.Components.Import.Instance().exportAppPermissions();" class="btn btn-info text-white">Export</a> </div></li></ul> </div></div></form> <form id="form_SingleAppPermissionsImport" data-validate="parsley" data-isdynamic="false"> <div class="card"> <div class="card-header"> For Individual App</div><div class="card-body"> <ul class="d-flex flex-column w-100"> <li class="card w-50"> <div class="card-header">Import</div><div class="card-body"> <div class="" id="div_IndividualAppPermissionsImport">Select File to import <br/></br> <input type="file" id="import_SingleAppPermissionFile" class="bg-light required"> <br/> <br/> <a href="javascript:;" id="singleAppPermission_fileUpload" class="btn btn-warning text-white">Upload</a> </div></div></li></ul> </div></div></form></div><div class="bg-white footer"> <button id="btn_CloseImport" class="btn btn-sm mr-auto btn-close">Close</button></div>`;
- }
- else {
- return `<form id="form_Import" data-validate="parsley" data-isdynamic="false"><div class="b-b bg-white header"><strong>Import App</strong></div><div class="simple-scroll-bar scrollable"><div id="div_importmessage" class="clear"></div><div class="card" id="importexportsection"><div class="card-header">Select file to import</div><div class="card-body"><div id="div_Import"><input type="file" id="import_File" class="bg-light required"><br><br><input type="radio" id="apps" class="app_store_import_apps" onclick="Unibase.Platform.Apps.Components.Import.Instance().ImportType(1)" name="app_store_import_radio_btn" value="apps"><label for="apps">Apps</label><br><input type="radio" id="widget" class="app_store_import_widget" onclick="Unibase.Platform.Apps.Components.Import.Instance().ImportType(2)" name="app_store_import_radio_btn" value="Widget"><label for="widget">Widget</label><br><br><a href="javascript:;" id="fileUpload" class="btn btn-warning text-white">Upload</a></div></div></div></div><div class="bg-white footer"><button id="btn_CloseImport" class="btn btn-sm mr-auto btn-close">Close</button></div></form>`;
- }
- }
- load(id, containerid, callback) {
- var instance = this;
- $("#btn_CloseImport,#btn_CloseDuplicateApp").click(function () {
- $('#' + containerid).modal('hide');
- $('#' + containerid).remove();
- });
- $("#btn_Import").click(function () {
- $("#importexportsection").removeClass("hidden");
- $("#div_Import").removeClass("hidden");
- });
- $('#import_File').change(function (e) {
- Unibase.Platform.Apps.Components.Import.Instance().fileEvent(e);
- });
- $('#import_AllAppsPermissionFile').change(function (e) {
- Unibase.Platform.Apps.Components.Import.Instance().allAppsPermissionFileEvent(e);
- });
- $('#import_SingleAppPermissionFile').change(function (e) {
- Unibase.Platform.Apps.Components.Import.Instance().singleAppPermissionFileEvent(e);
- });
- $("#btn_SaveDuplicateApp").on("click", function () {
- let controlid = "frmUnibase_DuplicateApp";
- let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(controlid);
- if (result == false) {
- MessageHelper.Instance().showError("Mandatory Fields are missing", "div_duplicatemessage");
- return false;
- }
- Import.Instance().SaveDuplicateApp(containerid);
- });
- $("#txt_Icon").focus(function () {
- $(".div_Icons").fadeIn();
- $("#icons").toggleClass("hidden");
- $(".div_Icons").removeClass('hidden');
- });
- $("#txt_Icon").focusout(function () {
- $(".div_Icons").fadeOut();
- });
- Unibase.Platform.Apps.Components.AppBuilder.Instance().loadIcons();
- $("#fileUpload").click(function () {
- let appcontrolid = "form_Import";
- let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(appcontrolid);
- if (result == false) {
- MessageHelper.Instance().showError("Please Select File", "div_importmessage");
- return false;
- }
- else {
- setTimeout(function () {
- if (Unibase.Platform.Apps.Components.Import.Instance().importType == "apps") {
- Import.Instance().importApp(containerid);
- }
- else if (Unibase.Platform.Apps.Components.Import.Instance().importType == "widget") {
- instance.fileCacheHelper.loadJsFile("platform/widgets/components/widget.js", function () {
- Unibase.Platform.Widgets.Components.Widget.Instance().importWidget(containerid, Unibase.Platform.Apps.Components.Import.fileData);
- });
- }
- else {
- MessageHelper.Instance().showError("Please Select Import Type", "div_importmessage");
- Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading();
- }
- }, 1000);
- Unibase.Platform.Helpers.NavigationHelper.Instance().showLoading();
- }
- });
- $("#allAppsPermission_fileUpload").click(function () {
- let appcontrolid = "form_AllAppsPermissionsExportImport";
- let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(appcontrolid);
- if (result == false) {
- MessageHelper.Instance().showError("Please Select File", "div_permissionsimportmessage");
- return false;
- }
- else {
- setTimeout(function () {
- Import.Instance().importAppPermissions(containerid);
- }, 1000);
- Unibase.Platform.Helpers.NavigationHelper.Instance().showLoading();
- }
- });
- $("#singleAppPermission_fileUpload").click(function () {
- let appcontrolid = "form_SingleAppPermissionsImport";
- let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(appcontrolid);
- if (result == false) {
- MessageHelper.Instance().showError("Please Select File", "div_permissionsimportmessage");
- return false;
- }
- else {
- setTimeout(function () {
- Import.Instance().importAppPermissions(containerid);
- }, 1000);
- Unibase.Platform.Helpers.NavigationHelper.Instance().showLoading();
- }
- });
- }
- ImportType(importType) {
- if (importType == 1) {
- this.importType = "apps";
- }
- else if (importType == 2) {
- this.importType = "widget";
- }
- }
- importApp(containerid) {
- var instance = this;
- var url = _appsettings.server_url() + '/apis/v4/unibase/platform/apps/importapp/np';
- Platform.Helpers.FileHelper.Instance().upload(url, Unibase.Platform.Apps.Components.Import.fileData).then(function (response) {
- if (response.status == Unibase.Data.Status.Error) {
- MessageHelper.Instance().showError(response.message, "div_importmessage");
- }
- else {
- MessageHelper.Instance().showSuccess(response.message, "div_importmessage");
- $('#' + containerid).modal('hide');
- $('#' + containerid).remove();
- }
- Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading();
- });
- }
- showImport(isduplicate) {
- var obj = new Unibase.Platform.Apps.Components.Import;
- obj.DuplicateHtml = isduplicate;
- this.navigationHelper.popup(0, '', obj, null, Platform.Helpers.Size.Large);
- }
- permissionsExportImport(ispermissionhtml) {
- var obj = new Unibase.Platform.Apps.Components.Import;
- obj.PermissionsExportImportHtml = ispermissionhtml;
- this.navigationHelper.popup(0, '', obj, null, Platform.Helpers.Size.Large);
- }
- fileEvent($event) {
- const fileSelected = $event.target.files[0];
- Unibase.Platform.Apps.Components.Import.fileData = new FormData();
- Unibase.Platform.Apps.Components.Import.fileData.append(fileSelected.name, fileSelected);
- }
- singleAppPermissionFileEvent($event) {
- const fileSelected = $event.target.files[0];
- Unibase.Platform.Apps.Components.Import.permissionfileData = new FormData();
- Unibase.Platform.Apps.Components.Import.permissionfileData.append(fileSelected.name, fileSelected);
- }
- allAppsPermissionFileEvent($event) {
- const fileSelected = $event.target.files[0];
- Unibase.Platform.Apps.Components.Import.permissionfileData = new FormData();
- Unibase.Platform.Apps.Components.Import.permissionfileData.append(fileSelected.name, fileSelected);
- }
- exportAppRoleSettings() {
- var instance = this;
- instance.navigationHelper.showLoading();
- instance.appmanager.exportAppRoleSettings().then(function (response) {
- if (response.status == Unibase.Data.Status.Error) {
- instance.navigationHelper.hideLoading();
- MessageHelper.Instance().showError(response.message, "div_permissionsimportmessage");
- return false;
- }
- var filename = "Permissions.xml";
- var xmltext = response.result;
- var pom = document.createElement('a');
- var bb = new Blob([xmltext], { type: 'text/plain' });
- pom.setAttribute('href', window.URL.createObjectURL(bb));
- pom.setAttribute('download', filename);
- pom.dataset.downloadurl = ['text/plain', pom.download, pom.href].join(':');
- pom.draggable = true;
- pom.classList.add('dragout');
- pom.click();
- instance.navigationHelper.hideLoading();
- });
- }
- importAppRoleSettings(containerid) {
- var instance = this;
- var url = _appsettings.server_url() + '/apis/v4/unibase/platform/apps/importapprolesettings/np';
- Platform.Helpers.FileHelper.Instance().upload(url, Unibase.Platform.Apps.Components.Import.permissionfileData).then(function (response) {
- if (response.status == Unibase.Data.Status.Error) {
- MessageHelper.Instance().showError(response.result, "div_permissionsimportmessage");
- }
- else {
- MessageHelper.Instance().showSuccess(response.result, "div_permissionsimportmessage");
- $('#' + containerid).modal('hide');
- $('#' + containerid).remove();
- }
- Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading();
- });
- }
- SaveDuplicateApp(containerid) {
- var instance = this;
- var recordid = Unibase.Themes.Providers.DetailHelper.recordId;
- $(".div_childs").each(function () {
- var oldappname = $(this).find(".sp_appname").text();
- var newappname = $(this).find("#txt_Childapp").val();
- Import.childappnames.push({ oldapptitle: oldappname, newapptitle: newappname });
- });
- let postdata = {
- InstalledAppId: recordid,
- AppTitle: $("#txt_Name").val(),
- IconName: $("#txtfafaIcon").val(),
- ChildApps: Import.childappnames
- };
- instance.navigationHelper.showLoading();
- instance.appmanager.duplicateApp(postdata).then(function (response) {
- if (response.status == Unibase.Data.Status.Error) {
- MessageHelper.Instance().showError(response.message, "div_duplicatemessage");
- }
- else {
- MessageHelper.Instance().showSuccess(response.message, "div_duplicatemessage");
- $('#' + containerid).modal('hide');
- $('#' + containerid).remove();
- }
- instance.navigationHelper.hideLoading();
- });
- }
- exportAppPermissions() {
- var instance = this;
- instance.navigationHelper.showLoading();
- instance.appmanager.exportAppPermissions(0).then(function (response) {
- if (response.status == Unibase.Data.Status.Error) {
- instance.navigationHelper.hideLoading();
- MessageHelper.Instance().showError(response.message, "div_permissionsimportmessage");
- return false;
- }
- var filename = "AllAppPermissions.xml";
- var xmltext = response.result;
- var pom = document.createElement('a');
- var bb = new Blob([xmltext], { type: 'text/plain' });
- pom.setAttribute('href', window.URL.createObjectURL(bb));
- pom.setAttribute('download', filename);
- pom.dataset.downloadurl = ['text/plain', pom.download, pom.href].join(':');
- pom.draggable = true;
- pom.classList.add('dragout');
- pom.click();
- instance.navigationHelper.hideLoading();
- });
- }
- importAppPermissions(containerid) {
- var instance = this;
- var url = _appsettings.server_url() + '/apis/v4/unibase/platform/apps/importapppermissions/np';
- Platform.Helpers.FileHelper.Instance().upload(url, Unibase.Platform.Apps.Components.Import.permissionfileData).then(function (response) {
- if (response.status == Unibase.Data.Status.Error) {
- MessageHelper.Instance().showError(response.message, "div_permissionsimportmessage");
- }
- else {
- MessageHelper.Instance().showSuccess(response.result, "div_permissionsimportmessage");
- $('#' + containerid).modal('hide');
- $('#' + containerid).remove();
- }
- Unibase.Platform.Helpers.NavigationHelper.Instance().hideLoading();
- });
- }
- static Instance() {
- if (this.instance === undefined) {
- this.instance = new Import();
- }
- return this.instance;
- }
- }
- Import.fileData = new FormData();
- Import.permissionfileData = new FormData();
- Import.childappnames = [];
- Components.Import = Import;
- })(Components = Apps.Components || (Apps.Components = {}));
- })(Apps = Platform.Apps || (Platform.Apps = {}));
- })(Platform = Unibase.Platform || (Unibase.Platform = {}));
- })(Unibase || (Unibase = {}));
|