var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; let Folderdata; var Unibase; (function (Unibase) { let Forms; (function (Forms) { let Controls; (function (Controls) { class FolderUpload extends Unibase.Platform.Core.BaseComponent { constructor() { super(...arguments); this.formPropArray = []; this.isMultipleArray = []; this.files_array = []; this.documentId = []; } init(formpropertyid, prop, callback) { var container = "control-container-" + prop.UniqueId; var instance = this; if (instance.formPropArray.length == 0 || $("#folder_" + prop.UniqueId).val() == "") { instance.itemid = 0; instance.doc_array = []; instance.files_array[formpropertyid] = []; instance.documentId[formpropertyid] = 0; instance.Singledoc_array = []; instance.rmvFiles_array = []; instance.ismultiple = "false"; instance.local_container = container; instance.singlefile = ""; instance.formPropArray = []; var newValues = instance.formPropArray.find(x => x.formpropertyid = formpropertyid); } else { var newValues = instance.formPropArray.find(x => x.formpropertyid = prop.UniqueId); instance.assignValues(newValues); } instance.loadPropertySettings(prop.PropertySettings, prop.UniqueId); $('#browse_' + prop.UniqueId).click(function () { $("#folder_" + prop.UniqueId).click(); }); $("#folder_" + prop.UniqueId).change(function () { instance.DirectoryUpload(prop.UniqueId); }); Unibase.Platform.Files.Managers.FileManager.Instance().getDocumentTypes().then(function (response) { instance.documenttypes = JSON.parse(response.result); }).then(function () { if (callback != null) { callback(); } }); } loadControl(container, prop) { var instance = this; var required = prop.IsRequired != true ? '' : 'required'; var html = '

' + '

' + '
Drag and drop folder here
' + '
Or
' + '

' + '
' + '' + '' + '
' + '
' + '' + '
' + '
    ' + '' + '
'; $("#" + container).html(html); $(".drag").css("border", "3px dashed #cccccc"); } loadControlSettings(controlsettingjson, formpropertyid) { return __awaiter(this, void 0, void 0, function* () { }); } loadPropertySettings(propertysettings, formpropertyid) { } bindEditFormDetails(formpropertyid, propval, DocPropertyName) { var instance = this; propval = propval.replaceAll("\\", "/"); var documentInfo = JSON.parse(propval); var containerid = "control-container-" + formpropertyid; instance.documentId[formpropertyid] = documentInfo.DocumentId; if (!isNaN(Number(propval))) { Unibase.Platform.Files.Managers.FileManager.Instance().getDocumentByRefId(Number(propval), formpropertyid).then(function (response) { documentInfo = response.result; }).then(function () { if (documentInfo !== "") { instance.bindData(documentInfo, formpropertyid); } }); } else { documentInfo = JSON.parse(propval); instance.bindData(documentInfo, formpropertyid); } } bindData(documentInfo, formpropertyid) { } folderUploadObj(formpropertyid) { var instance = this; return instance.files_array[formpropertyid]; } emptydoc_array(container) { } DirectoryUpload(formpropertyid) { var instance = this; var folder = []; var fileUpload = $("#folder_" + formpropertyid).get(0); var files = fileUpload.files; var foldername = files[0].webkitRelativePath.split("/")[0]; var imgShow = ""; imgShow = 'tenants/default/documenttypes/folder.png'; var html = '
  • ' + '' + '' + '' + '' + '' + foldername + '' + '
  • '; $('#ulselectedfiles_' + formpropertyid).html(html); $('#fileuploads_' + formpropertyid).find('.Selectedfile_').removeClass("hidden"); instance.files_array[formpropertyid] = []; for (var i = 0; i < files.length; i++) { var curFile = files[i]; var item = { Files: curFile }; instance.getBase64(item).then(function (response) { var fileInfo = response; instance.files_array[formpropertyid].push(fileInfo); }); } } assignValues(newValues) { } getBase64(item) { return __awaiter(this, void 0, void 0, function* () { var filename = ""; filename = item.Files.DocumentFileName; if (filename == undefined) filename = item.Files.name; var refId = 0; if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length > 0) { var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; refId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_recordid").Value); } let file = item.Files; let fileInfo = item.Files.name.split('.'); return new Promise((resolve, reject) => { let content = ''; const reader = new FileReader(); reader.readAsDataURL(item.Files); reader.onloadend = function () { var base64String = reader.result.toString().replace(/^data:.+;base64,/, ''); var fileReq = { FileData: base64String, FileName: fileInfo[0], FileType: fileInfo[1], ByteData: null, FolderPath: file.webkitRelativePath, FolderName: file.webkitRelativePath.split("/")[0], RefId: refId }; resolve(fileReq); }; reader.onerror = function (e) { reject(e); }; }); }); } removeFolder(formpropertyid, itemid, foldername, DocumentFileId) { $("#folder_" + formpropertyid).val(""); foldername = decodeURIComponent(foldername.replace(/\%2E/g, "'")); var instance = this; var isRequired = $("#file_" + formpropertyid).data("isrequired"); if (isRequired) { var fileArray = instance.files_array[formpropertyid]; if (fileArray.length == 0) { $("#file_" + formpropertyid).addClass("required"); } } if (instance.formPropArray.length > 0) { var index = instance.formPropArray.findIndex((obj => obj.key == formpropertyid)); if (index >= 0) { var newValues = instance.formPropArray[index].value; instance.assignValues(newValues); } } instance.rmvFiles_array.push({ DocumentFileId: DocumentFileId, name: foldername }); $("#fileuploads_" + formpropertyid + "_" + itemid).addClass("hidden"); $("#fileuploads_" + formpropertyid + "_" + itemid).parents('.list-group-item').remove(); for (var i = 0; i < instance.doc_array.length; i++) { var filename = ""; filename = instance.doc_array[i].Files.DocumentFileName; if (filename == undefined) filename = instance.doc_array[i].Files.name; if (filename == foldername) { var fileNameWithoutExt = foldername; var fileIndex = instance.files_array[formpropertyid].findIndex(x => x.FileName == fileNameWithoutExt); instance.files_array[formpropertyid].splice(fileIndex, 1); if (instance.files_array[formpropertyid].length == 0) { $("#file_" + formpropertyid).val(null); } instance.doc_array = $.grep(instance.doc_array, function (value) { return value != instance.doc_array[i]; }); } } } static Instance() { if (this._instance === undefined) this._instance = new FolderUpload(); return this._instance; } } Controls.FolderUpload = FolderUpload; })(Controls = Forms.Controls || (Forms.Controls = {})); })(Forms = Unibase.Forms || (Unibase.Forms = {})); })(Unibase || (Unibase = {}));