Built files from Bizgaze WebServer
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

folderupload.component.js 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  2. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  3. return new (P || (P = Promise))(function (resolve, reject) {
  4. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  5. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  6. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  7. step((generator = generator.apply(thisArg, _arguments || [])).next());
  8. });
  9. };
  10. let Folderdata;
  11. var Unibase;
  12. (function (Unibase) {
  13. let Forms;
  14. (function (Forms) {
  15. let Controls;
  16. (function (Controls) {
  17. class FolderUpload extends Unibase.Platform.Core.BaseComponent {
  18. constructor() {
  19. super(...arguments);
  20. this.formPropArray = [];
  21. this.isMultipleArray = [];
  22. this.files_array = [];
  23. this.documentId = [];
  24. }
  25. init(formpropertyid, prop, callback) {
  26. var container = "control-container-" + prop.UniqueId;
  27. var instance = this;
  28. if (instance.formPropArray.length == 0 || $("#folder_" + prop.UniqueId).val() == "") {
  29. instance.itemid = 0;
  30. instance.doc_array = [];
  31. instance.files_array[formpropertyid] = [];
  32. instance.documentId[formpropertyid] = 0;
  33. instance.Singledoc_array = [];
  34. instance.rmvFiles_array = [];
  35. instance.ismultiple = "false";
  36. instance.local_container = container;
  37. instance.singlefile = "";
  38. instance.formPropArray = [];
  39. var newValues = instance.formPropArray.find(x => x.formpropertyid = formpropertyid);
  40. }
  41. else {
  42. var newValues = instance.formPropArray.find(x => x.formpropertyid = prop.UniqueId);
  43. instance.assignValues(newValues);
  44. }
  45. instance.loadPropertySettings(prop.PropertySettings, prop.UniqueId);
  46. $('#browse_' + prop.UniqueId).click(function () {
  47. $("#folder_" + prop.UniqueId).click();
  48. });
  49. $("#folder_" + prop.UniqueId).change(function () {
  50. instance.DirectoryUpload(prop.UniqueId);
  51. });
  52. Unibase.Platform.Files.Managers.FileManager.Instance().getDocumentTypes().then(function (response) {
  53. instance.documenttypes = JSON.parse(response.result);
  54. }).then(function () {
  55. if (callback != null) {
  56. callback();
  57. }
  58. });
  59. }
  60. loadControl(container, prop) {
  61. var instance = this;
  62. var required = prop.IsRequired != true ? '' : 'required';
  63. var html = '<div id="paneldrag" class="col-sm-12 mt-20 drag"><div class="col-sm-12" id="panel"><p>' +
  64. '<div class="text-center"><i class="fa fa-cloud-download fa-3x" aria-hidden="true"></i></div>' +
  65. '<div class="text-center" id="drag" style="font-size:medium">Drag and drop folder here</div>' +
  66. '<div class="text-center">Or</div>' +
  67. '</p></div>' +
  68. '<div class="row mb-10" id="UploadDiv_' + prop.DocPropertyName + '"><div class="upload-btn-wrapper text-center container">' +
  69. '<input id="folder_' + prop.UniqueId + '" title="" webkitdirectory mozdirectory name=file type="file" class="hidden fileUpload_ form-control value-control ' + required + '" data-isrequired="' + prop.IsRequired + '" data-propertyname="' + prop.DocPropertyName + '" data-isdefault="' + prop.IsDefault + '" data-propdoctypename="' + prop.DocTypeName + '" data-required="' + prop.IsRequired + '" data-formdata="" value="Unibase.Forms.Controls.FolderUpload.Instance().folderUploadObj(' + prop.UniqueId + ');"/>' +
  70. '<input type="button" value="Browse" class="btn btn-primary btn-lg center-block" id="browse_' + prop.UniqueId + '" />' +
  71. '</div></div></div>' +
  72. '<div class="row ml-15 fileuploads_ filename" id="fileuploads_' + prop.UniqueId + '"><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">' +
  73. '<span class="Selectedfile_ text-dark hidden"><h5 class="Selection mb-10 mt-10">Selected Files :</h5> <span class="Selectedfile"></span></span>' +
  74. '</div></div><div class="row col-sm-12 pl-0 pr-0">' +
  75. '<ul id="ulselectedfiles_' + prop.UniqueId + '" class="list-group mb-n mt-n-15 no-border ulselectedfiles col-sm-12 pl-0 pr-0">' +
  76. '<li class="hidden no-border"></li>' +
  77. '</ul></div></div></div>';
  78. $("#" + container).html(html);
  79. $(".drag").css("border", "3px dashed #cccccc");
  80. }
  81. loadControlSettings(controlsettingjson, formpropertyid) {
  82. return __awaiter(this, void 0, void 0, function* () {
  83. });
  84. }
  85. loadPropertySettings(propertysettings, formpropertyid) {
  86. }
  87. bindEditFormDetails(formpropertyid, propval, DocPropertyName) {
  88. var instance = this;
  89. propval = propval.replaceAll("\\", "/");
  90. var documentInfo = JSON.parse(propval);
  91. var containerid = "control-container-" + formpropertyid;
  92. instance.documentId[formpropertyid] = documentInfo.DocumentId;
  93. if (!isNaN(Number(propval))) {
  94. Unibase.Platform.Files.Managers.FileManager.Instance().getDocumentByRefId(Number(propval), formpropertyid).then(function (response) {
  95. documentInfo = response.result;
  96. }).then(function () {
  97. if (documentInfo !== "") {
  98. instance.bindData(documentInfo, formpropertyid);
  99. }
  100. });
  101. }
  102. else {
  103. documentInfo = JSON.parse(propval);
  104. instance.bindData(documentInfo, formpropertyid);
  105. }
  106. }
  107. bindData(documentInfo, formpropertyid) {
  108. }
  109. folderUploadObj(formpropertyid) {
  110. var instance = this;
  111. return instance.files_array[formpropertyid];
  112. }
  113. emptydoc_array(container) {
  114. }
  115. DirectoryUpload(formpropertyid) {
  116. var instance = this;
  117. var folder = [];
  118. var fileUpload = $("#folder_" + formpropertyid).get(0);
  119. var files = fileUpload.files;
  120. var foldername = files[0].webkitRelativePath.split("/")[0];
  121. var imgShow = "";
  122. imgShow = 'tenants/default/documenttypes/folder.png';
  123. var html = '<li class="hidden no-border"><li class="list-group-item_' + formpropertyid + ' b-a clear pl-0 pr-0" style="border: none">' +
  124. '<span id="fileuploads_' + formpropertyid + '_' + instance.itemid + '" class="block fileuploads_' + instance.itemid + ' foldername">' +
  125. '<span class="pull-left col-sm-12 pl-0 pr-0">' +
  126. '<span class="fa fa-trash-o fa-lg text-danger mr-15" style="cursor:pointer" ; href="javascript:;" onclick="javascript:Unibase.Forms.Controls.FolderUpload.Instance().removeFolder(' + formpropertyid + ',' + instance.itemid + ',\'' + foldername + '\'' + ',' + 0 + ');" title="Click to Delete"></span>' +
  127. '<img class="mr-20" style="height:35px;width:35px;vertical-align:middle; onerror="ReloadImage(event)" alt="" alt="" src="' + imgShow + '">' +
  128. '<span class="fileName">' + foldername + '</span>' +
  129. '</span></span></li></li>';
  130. $('#ulselectedfiles_' + formpropertyid).html(html);
  131. $('#fileuploads_' + formpropertyid).find('.Selectedfile_').removeClass("hidden");
  132. instance.files_array[formpropertyid] = [];
  133. for (var i = 0; i < files.length; i++) {
  134. var curFile = files[i];
  135. var item = { Files: curFile };
  136. instance.getBase64(item).then(function (response) {
  137. var fileInfo = response;
  138. instance.files_array[formpropertyid].push(fileInfo);
  139. });
  140. }
  141. }
  142. assignValues(newValues) {
  143. }
  144. getBase64(item) {
  145. return __awaiter(this, void 0, void 0, function* () {
  146. var filename = "";
  147. filename = item.Files.DocumentFileName;
  148. if (filename == undefined)
  149. filename = item.Files.name;
  150. var refId = 0;
  151. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length > 0) {
  152. var installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  153. refId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + installedAppId + "_recordid").Value);
  154. }
  155. let file = item.Files;
  156. let fileInfo = item.Files.name.split('.');
  157. return new Promise((resolve, reject) => {
  158. let content = '';
  159. const reader = new FileReader();
  160. reader.readAsDataURL(item.Files);
  161. reader.onloadend = function () {
  162. var base64String = reader.result.toString().replace(/^data:.+;base64,/, '');
  163. var fileReq = {
  164. FileData: base64String,
  165. FileName: fileInfo[0],
  166. FileType: fileInfo[1],
  167. ByteData: null,
  168. FolderPath: file.webkitRelativePath,
  169. FolderName: file.webkitRelativePath.split("/")[0],
  170. RefId: refId
  171. };
  172. resolve(fileReq);
  173. };
  174. reader.onerror = function (e) {
  175. reject(e);
  176. };
  177. });
  178. });
  179. }
  180. removeFolder(formpropertyid, itemid, foldername, DocumentFileId) {
  181. $("#folder_" + formpropertyid).val("");
  182. foldername = decodeURIComponent(foldername.replace(/\%2E/g, "'"));
  183. var instance = this;
  184. var isRequired = $("#file_" + formpropertyid).data("isrequired");
  185. if (isRequired) {
  186. var fileArray = instance.files_array[formpropertyid];
  187. if (fileArray.length == 0) {
  188. $("#file_" + formpropertyid).addClass("required");
  189. }
  190. }
  191. if (instance.formPropArray.length > 0) {
  192. var index = instance.formPropArray.findIndex((obj => obj.key == formpropertyid));
  193. if (index >= 0) {
  194. var newValues = instance.formPropArray[index].value;
  195. instance.assignValues(newValues);
  196. }
  197. }
  198. instance.rmvFiles_array.push({ DocumentFileId: DocumentFileId, name: foldername });
  199. $("#fileuploads_" + formpropertyid + "_" + itemid).addClass("hidden");
  200. $("#fileuploads_" + formpropertyid + "_" + itemid).parents('.list-group-item').remove();
  201. for (var i = 0; i < instance.doc_array.length; i++) {
  202. var filename = "";
  203. filename = instance.doc_array[i].Files.DocumentFileName;
  204. if (filename == undefined)
  205. filename = instance.doc_array[i].Files.name;
  206. if (filename == foldername) {
  207. var fileNameWithoutExt = foldername;
  208. var fileIndex = instance.files_array[formpropertyid].findIndex(x => x.FileName == fileNameWithoutExt);
  209. instance.files_array[formpropertyid].splice(fileIndex, 1);
  210. if (instance.files_array[formpropertyid].length == 0) {
  211. $("#file_" + formpropertyid).val(null);
  212. }
  213. instance.doc_array = $.grep(instance.doc_array, function (value) {
  214. return value != instance.doc_array[i];
  215. });
  216. }
  217. }
  218. }
  219. static Instance() {
  220. if (this._instance === undefined)
  221. this._instance = new FolderUpload();
  222. return this._instance;
  223. }
  224. }
  225. Controls.FolderUpload = FolderUpload;
  226. })(Controls = Forms.Controls || (Forms.Controls = {}));
  227. })(Forms = Unibase.Forms || (Unibase.Forms = {}));
  228. })(Unibase || (Unibase = {}));