Built files from Bizgaze WebServer
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

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 = {}));