123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448 |
- 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());
- });
- };
- var Unibase;
- (function (Unibase) {
- let Platform;
- (function (Platform) {
- let Automation;
- (function (Automation) {
- let Components;
- (function (Components) {
- class ExternalAttachments {
- constructor() {
- this.formPropArray = [];
- this.files_array = [];
- this.documentId = [];
- }
- jsFiles() {
- var jsfiles = ["platform/automation/managers/rulemanager.js",
- "platform/automation/enums/automationmode.js",
- "platform/automation/components/conditions.js",
- "platform/automation/components/contactselection.js",
- "platform/automation/requests/ruleaction.js",
- "platform/automation/requests/rulecondition.js",
- "platform/forms/components/formviewer/formviewer.js",
- "libs/parsley/parsley.min.js",
- "libs/querybuilder/query-builder.min.js",
- "libs/querybuilder/query-builder.standalone.min.js",
- "libs/querybuilder/query-builder.standalone.js",
- "libs/querybuilder/sql-parser.min.js",
- ];
- return jsfiles;
- }
- cssFiles() {
- return [];
- }
- init(formpropertyid, ismultiple, validationdiv) {
- Unibase.Platform.Automation.Components.ExternalAttachments.Instance().getDocumentTypes();
- Unibase.Platform.Automation.Components.ExternalAttachments.Instance().assignValues(formpropertyid, ismultiple, validationdiv);
- return Unibase.Platform.Automation.Components.ExternalAttachments.Instance().html(formpropertyid);
- }
- html(formpropertyid) {
- let html = "";
- html = '<div id="paneldrag" class="col-sm-12 mt-20 drag"><div class="col-sm-12" id="panel"><p>' +
- '<div class="text-center"><i class="fa fa-cloud-download fa-3x" aria-hidden="true"></i></div>' +
- '<div class="text-center" id="drag" style="font-size:medium">Drag and drop files here</div>' +
- '<div class="text-center">Or</div>' +
- '</p></div>' +
- '<div class="row mb-10" id="UploadDiv_' + formpropertyid + '">' +
- '<input type="text" class="hidden" id="hf_file_' + formpropertyid + '" value=""/>' +
- '<div class="upload-btn-wrapper text-center container">' +
- '<input id="file_' + formpropertyid + '" title="" type="file" onclick="this.value=null;" class="hidden d-none fileUpload_ form-control value-control" data-isrequired=" " data-propertyname=" " data-isdefault=" " data-propdoctypename="" data-required="" data-regularexp="" data-validatemsg="" data-formdata="" value="Unibase.Forms.Controls.FileDragNDrop.Instance().fileDragNDropObj(' + formpropertyid + ');"/>' +
- '<input type="button" value="Browse" class="btn btn-primary btn-lg center-block" id="browse_' + formpropertyid + '" />' +
- '</div></div></div>' +
- '<div class="row ml-15 fileuploads_ filename" id="fileuploads_' + formpropertyid + '"><div class="row col-sm-12 ml-10 mt-10 pull-center thumb_doc"><div class="col-sm-12 row pl-0"><div class="input-group">' +
- '<span class="Selectedfile_ text-dark hidden"><h5 class="Selection mb-10 mt-10">Selected Files :</h5> <span class="Selectedfile"></span></span>' +
- '</div></div><div class="row col-sm-12 pl-0 pr-0">' +
- '<ul id="ulselectedfiles_' + formpropertyid + '" class="list-group mb-n mt-n-15 no-border ulselectedfiles col-sm-12 pl-0 pr-0">' +
- '<li class="hidden no-border"></li>' +
- '</ul></div></div></div>';
- return html;
- }
- fileDragNDropObj(formpropertyid) {
- var instance = this;
- var fileArray = [];
- fileArray = instance.files_array[formpropertyid];
- for (var i = 0; i < instance.rmvFiles_array.length; i++) {
- var documentFileId = instance.rmvFiles_array[i].DocumentFileId;
- if (documentFileId != 0) {
- var fileReq = {
- FileId: documentFileId,
- FilePath: instance.rmvFiles_array[i].name,
- };
- fileArray.push(fileReq);
- }
- }
- var fileObj = [...fileArray];
- fileObj.unshift({
- FileId: instance.documentId[formpropertyid],
- });
- return fileObj;
- }
- dragNdrop(formpropertyid) {
- var instance = this;
- $('#paneldrag').on('dragover', function (e) {
- debugger;
- e.preventDefault();
- e.stopPropagation();
- });
- $('#paneldrag').on('dragenter', function (e) {
- e.preventDefault();
- e.stopPropagation();
- });
- $('#paneldrag').on('drop', function (e) {
- if (e.originalEvent.dataTransfer) {
- if (e.originalEvent.dataTransfer.files.length) {
- e.preventDefault();
- e.stopPropagation();
- if (instance.ismultiple == false) {
- instance.SingleUploadFile(e.originalEvent.dataTransfer.files, formpropertyid);
- }
- else if (instance.ismultiple == true) {
- instance.MultipleUploadFile(e.originalEvent.dataTransfer.files, formpropertyid);
- $("#file_" + formpropertyid).attr("multiple", "multiple");
- }
- else {
- instance.SingleUploadFile(e.originalEvent.dataTransfer.files, formpropertyid);
- }
- }
- }
- });
- $("#browse_" + formpropertyid + "").click(function () {
- $("#file_" + formpropertyid).click();
- });
- $("#file_" + formpropertyid + "").change(function () {
- Unibase.Platform.Automation.Components.ExternalAttachments.Instance().UploadFile(formpropertyid);
- });
- window.addEventListener("dragover", function (e) {
- e = e || event;
- e.preventDefault();
- }, false);
- window.addEventListener("drop", function (e) {
- e = e || event;
- e.preventDefault();
- }, false);
- }
- UploadFile(formpropertyid) {
- var instance = this;
- if (instance.ismultiple == false) {
- $('#fileuploads_' + formpropertyid).find('.Selection').text("Selected File :");
- $('#fileuploads_' + formpropertyid).find('.Selection').addClass("text-dark");
- instance.SingleUploadFile(null, formpropertyid);
- }
- else if (instance.ismultiple == true) {
- instance.MultipleUploadFile(null, formpropertyid);
- $("#file_" + formpropertyid).attr("multiple", "multiple");
- }
- else {
- instance.SingleUploadFile(null, formpropertyid);
- $('#fileuploads_' + formpropertyid).find('.Selection').text("Selected File :");
- $('#fileuploads_' + formpropertyid).find('.Selection').addClass("text-dark");
- }
- }
- SingleUploadFile(event, formpropertyid) {
- var instance = this;
- var fileUpload = $("#file_" + formpropertyid).get(0);
- var files = fileUpload.files;
- if (event != null)
- files = event;
- instance.singlefile = "";
- var flag = 0;
- if (files.length > 0) {
- var html = "";
- for (var i = 0; i < files.length; i++) {
- flag = 0;
- if (flag == 0) {
- instance.itemid++;
- var imgShow = '';
- if (!files[i].type.match('image.*')) {
- if (files[i].type.match('pdf.*')) {
- imgShow = 'tenants/default/documenttypes/pdf.png';
- }
- else if (files[i].type.match('wordprocessingml.*') || files[i].type.match('text.*')) {
- imgShow = 'tenants/default/documenttypes/word.png';
- }
- else if (files[i].type.match('spreadsheetml.*')) {
- imgShow = 'tenants/default/documenttypes/excel.png';
- }
- else if (files[i].type.match('excel.*')) {
- imgShow = 'tenants/default/documenttypes/excel.png';
- }
- else
- imgShow = 'tenants/default/documenttypes/unknown.png';
- }
- else {
- var tmppath = URL.createObjectURL(files[i]);
- imgShow = tmppath;
- }
- var filename = encodeURIComponent(files[i].name).replace(/\'/g, "%2E");
- html = '<li class="list-group-item b-a clear pl-0 pr-0" style="border: none !important">' +
- '<span id="fileuploads_' + formpropertyid + '_' + instance.itemid + '" class="block fileuploads_' + instance.itemid + ' filename">' +
- '<span class="pull-left">' +
- '<span class="fa fa-trash-o fa-lg text-danger mr-15" style="cursor:pointer" href="javascript:;" onclick="javascript:Unibase.Platform.Automation.Components.ExternalAttachments.Instance().removeFile(\'' + formpropertyid + '\',' + instance.itemid + ',\'' + filename + '\'' + ',' + 0 + ');" title = "Click to Delete"></span>' +
- '<img style="height:35px;width:35px;vertical-align:middle;" onerror="ReloadImage(event)" alt="" src="' + imgShow + '">' +
- '<span class="ml-20 fileName">' + files[i].name + '</span>' +
- '</span></span></li>';
- instance.singlefile = files[i];
- $('#ulselectedfiles_' + formpropertyid).html(html);
- $('#fileuploads_' + formpropertyid).find('.Selectedfile_').removeClass("hidden");
- var item = { Files: instance.singlefile };
- instance.getBase64(item).then(function (response) {
- var fileInfo = response;
- instance.files_array[formpropertyid] = [];
- instance.files_array[formpropertyid].push(fileInfo);
- $("#hf_file_" + formpropertyid).val("fileexists");
- });
- }
- }
- }
- }
- MultipleUploadFile(event, formpropertyid) {
- var instance = this;
- var errormsg = Unibase.Platform.Automation.Components.ExternalAttachments.Instance().validationdiv;
- var fileUpload = $("#file_" + formpropertyid).get(0);
- var files = fileUpload.files;
- if (event != null)
- files = event;
- var file = "";
- var flag = 0;
- if (files.length > 0) {
- var xyz = "";
- var html = "";
- for (var i = 0; i < files.length; i++) {
- flag = 0;
- $("#ulselectedfiles_" + formpropertyid + " li").each(function (index, element) {
- if (index != 0 && flag == 0) {
- var filesSelected = $(this).find(".fileName").text();
- if (files[i].name == filesSelected) {
- xyz += files[i].name + " ";
- MessageHelper.Instance().showError(xyz + " files already exist", "" + errormsg);
- flag = 1;
- }
- }
- });
- if (flag == 0) {
- instance.itemid++;
- var imgShow = '';
- var filename = files[i].name;
- var fileExt = files[i].name.split(".");
- if (files[i].type.match('image.*')) {
- var tmppath = URL.createObjectURL(files[i]);
- }
- var docData = instance.documenttypes.find(x => x.documenttypename == fileExt[fileExt.length - 1].toLowerCase());
- if (docData != null) {
- if (docData.documentgroup == "Pdf") {
- imgShow = 'tenants/default/documenttypes/pdf.png';
- }
- else if (docData.documentgroup == "Image") {
- imgShow = tmppath;
- }
- else if (docData.documentgroup == "Word") {
- imgShow = 'tenants/default/documenttypes/word.png';
- }
- else if (docData.documentgroup == "Excel") {
- imgShow = 'tenants/default/documenttypes/excel.png';
- }
- else if (docData.documentgroup == "Video") {
- imgShow = 'tenants/default/documenttypes/video.png';
- }
- else if (docData.documentgroup == "Audio") {
- imgShow = 'tenants/default/documenttypes/audio.png';
- }
- }
- else
- imgShow = 'tenants/default/documenttypes/unknown.png';
- filename = encodeURIComponent(filename).replace(/\'/g, "%2E");
- html = '<li class="list-group-item b-a clear pl-0 pr-0" style="border: none !important">' +
- '<span id="fileuploads_' + formpropertyid + '_' + instance.itemid + '" class="block fileuploads_' + instance.itemid + ' filename">' +
- '<span class="pull-left col-sm-12 pl-0 pr-0">' +
- '<span class="fa fa-trash-o fa-lg text-danger mr-15" style="cursor:pointer" ; href="javascript:;" onclick="javascript:Unibase.Platform.Automation.Components.ExternalAttachments.Instance().removeFile(\'' + formpropertyid + '\',' + instance.itemid + ',\'' + filename + '\'' + ',' + 0 + ');" title="Click to Delete"></span>' +
- '<img class="mr-20" style="height:35px;width:35px;vertical-align:middle;" onerror="ReloadImage(event)" alt="" src="' + imgShow + '">' +
- '<span class="fileName">' + files[i].name + '</span>' +
- '</span></span></li>';
- $('#ulselectedfiles_' + formpropertyid).append(html);
- file = files[i];
- $('#fileuploads_' + formpropertyid).find('.Selectedfile_').removeClass("hidden");
- var item = { Files: file };
- instance.getBase64(item).then(function (response) {
- var fileInfo = response;
- instance.files_array[formpropertyid].push(fileInfo);
- $("#hf_file_" + formpropertyid).val("fileexists");
- });
- }
- }
- }
- }
- assignValues(formpropertyid, ismultiple, validationdiv) {
- var instance = this;
- instance.itemid = 0;
- instance.files_array[formpropertyid] = [];
- instance.documentId[formpropertyid] = 0;
- instance.rmvFiles_array = [];
- instance.ismultiple = ismultiple;
- instance.singlefile = "";
- instance.validationdiv = validationdiv;
- }
- 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('.');
- let fileType = ".unknown";
- if (fileInfo.length > 0) {
- fileType = fileInfo[fileInfo.length - 1];
- fileInfo.splice(fileInfo.length - 1, 1);
- fileName = fileInfo.join('.');
- }
- 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: fileName,
- FileType: fileType,
- RefId: refId,
- ByteData: null
- };
- resolve(fileReq);
- };
- reader.onerror = function (e) {
- reject(e);
- };
- });
- });
- }
- removeFile(formpropertyid, itemid, name, DocumentFileId) {
- name = decodeURIComponent(name.replace(/\%2E/g, "'"));
- var instance = this;
- instance.rmvFiles_array.push({ DocumentFileId: DocumentFileId, name: name });
- $("#fileuploads_" + formpropertyid + "_" + itemid).addClass("hidden");
- $("#fileuploads_" + formpropertyid + "_" + itemid).parents('.list-group-item').remove();
- var fileIndex = instance.files_array[formpropertyid].findIndex(x => x.FileName == name);
- instance.files_array[formpropertyid].splice(fileIndex, 1);
- if ($('#ulselectedfiles_' + formpropertyid + ' li').length == 1) {
- $('#fileuploads_' + formpropertyid).find('.Selectedfile_').addClass("hidden");
- }
- }
- getDocumentTypes() {
- Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFileAsync("platform/files/managers/filemanager.js", function () {
- Unibase.Platform.Files.Managers.FileManager.Instance().getDocumentTypes().then(function (response) {
- Unibase.Platform.Automation.Components.ExternalAttachments.Instance().documenttypes = response.result;
- });
- });
- }
- getFiles(formpropertyid) {
- return Unibase.Platform.Automation.Components.ExternalAttachments.Instance().files_array[formpropertyid];
- }
- bindEditFormDetails(formpropertyid, propval) {
- var instance = this;
- propval = propval.replaceAll("\\", "/");
- var documentInfo = "";
- documentInfo = JSON.parse(propval);
- instance.documentId[formpropertyid] = documentInfo.DocumentId;
- instance.bindData(documentInfo, formpropertyid);
- }
- bindData(documentInfo, formpropertyid) {
- var instance = this;
- var filesList = documentInfo;
- for (var i = 0; i < documentInfo.length; i++) {
- var isRequired = $("#file_" + formpropertyid).data("isrequired");
- if (isRequired) {
- $("#file_" + formpropertyid).removeClass("required");
- }
- var documentImage = '';
- var imgSrc = "";
- var DocumentGroup = "";
- if (filesList[i].FileType != "") {
- if (filesList[i].FileType == "png" || filesList[i].FileType == "jpg") {
- DocumentGroup = "Image";
- }
- else if (filesList[i].FileType == "xlsx" || filesList[i].FileType == "csv") {
- DocumentGroup = "Excel";
- }
- else if (filesList[i].FileType == "pdf") {
- DocumentGroup = "Pdf";
- }
- else if (filesList[i].FileType == "docx") {
- DocumentGroup = "Word";
- }
- else if (filesList[i].FileType == "mp4") {
- DocumentGroup = "Video";
- }
- else if (filesList[i].FileType == "mp3") {
- DocumentGroup = "Audio";
- }
- else {
- DocumentGroup = "Unknown";
- }
- }
- if (DocumentGroup != "") {
- if (DocumentGroup == "Unknown")
- documentImage = 'tenants/default/documenttypes/unknown.png';
- else if (DocumentGroup == "Image") {
- var byteCharacters = atob(filesList[i].FileData);
- var byteNumbers = new Array(byteCharacters.length);
- for (var k = 0; k < byteCharacters.length; k++) {
- byteNumbers[k] = byteCharacters.charCodeAt(k);
- }
- var byteArray = new Uint8Array(byteNumbers);
- var fileTemp = new Blob([byteArray], { type: filesList[i].DocumentGroup + '/' + filesList[i].FileType + ';base64' });
- imgSrc = URL.createObjectURL(fileTemp);
- documentImage = imgSrc;
- }
- else if (DocumentGroup == "Excel")
- documentImage = 'tenants/default/documenttypes/excel.png';
- else if (DocumentGroup == "Pdf")
- documentImage = 'tenants/default/documenttypes/pdf.png';
- else if (DocumentGroup == "Word")
- documentImage = 'tenants/default/documenttypes/word.png';
- else if (DocumentGroup == "Video")
- documentImage = 'tenants/default/documenttypes/video.png';
- else if (DocumentGroup == "Audio")
- documentImage = 'tenants/default/documenttypes/audio.png';
- }
- instance.itemid++;
- var docFileName = filesList[i].FileName;
- var name = docFileName;
- var html = '<li class="list-group-item b-a clear pl-0 pr-0" style="border: none !important">' +
- '<span id="fileuploads_' + formpropertyid + '_' + instance.itemid + '" class="block fileuploads_' + instance.itemid + ' filename">' +
- '<span class="pull-left col-sm-12 pl-0 pr-0">' +
- '<span class="fa fa-trash-o fa-lg text-danger mr-15" style="cursor:pointer" ; href="javascript:;" onclick="javascript:Unibase.Platform.Automation.Components.ExternalAttachments.Instance().removeFile(\'' + formpropertyid + '\',' + instance.itemid + ',\'' + name + '\'' + ',' + filesList[i].DocumentFileId + ');" title="Click to Delete"></span>' +
- '<img class="mr-20" style="height:35px;width:35px;vertical-align:middle;" onerror="ReloadImage(event)" alt="" src="' + documentImage + '">' +
- '<span class="fileName">' + docFileName + '</span>' +
- '</span></span></li>';
- $('#ulselectedfiles_' + formpropertyid).append(html);
- $('#fileuploads_' + formpropertyid).find('.Selectedfile_').removeClass("hidden");
- instance.files_array[formpropertyid].push(filesList[i]);
- }
- }
- static Instance() {
- if (this.instance === undefined) {
- this.instance = new ExternalAttachments();
- }
- return this.instance;
- }
- }
- Components.ExternalAttachments = ExternalAttachments;
- })(Components = Automation.Components || (Automation.Components = {}));
- })(Automation = Platform.Automation || (Platform.Automation = {}));
- })(Platform = Unibase.Platform || (Unibase.Platform = {}));
- })(Unibase || (Unibase = {}));
|