| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 | 
							- $(function () {
 
-     'use strict';
 
-     function resetUploadedFileInfo(fileInfo) {
 
-         fileInfo.SiteId = undefined;
 
-         fileInfo.FileId = undefined;
 
-     }
 
-     window.BWA.DropZone = {
 
-         create: function (options) {
 
-             var id = options.id,
 
-                 categoryId = options.categoryId,
 
-                 handleSuccess = options.handleSuccess,
 
-                 handleRemovedFile = options.handleRemovedFile,
 
-                 handleRemoveBeforePromise = options.handleRemoveBeforePromise,
 
-                 uploadedFileInfo = options.uploadedFileInfo; // {},
 
-             //MaxFileCountCheck = options.MaxFileCountCheck
 
-             var url = [
 
-                 BWA.api.url,
 
-                 '/Upload?SiteId={0}&FileCategoryId={1}'.formati(BWA.UserInfo.SiteId(), categoryId)
 
-             ].join('');
 
-             var isTempFile = false;
 
-             var dropzone = new Dropzone(id, {
 
-                 //hcLee 2016 03 24
 
-                 MaxFileCountCheck: function () {
 
-                     utils.toast.show('업로드 파일을 추가 할 수 없습니다. 기존파일을 삭제하고 시도해 주세요.');
 
-                 },
 
-                 startLoadFileCount: 0,
 
-                 //hcLee 2016 03 24
 
-                 url: url,
 
-                 maxFilesize: 10, //초기 1000, 08.12: 10MB
 
-                 maxFiles: (_.isUndefined(options.maxFiles) === false) ? options.maxFiles : 1,
 
-                 uploadMultiple: false,
 
-                 autoProcessQueue: false,//2019-10-14 변경
 
-                 addRemoveLinks: true,
 
-                 thumbnail: function () {
 
-                 },
 
-                 clickable: id,
 
-                 dictRemoveFile: '파일 삭제',
 
-                 dictFileTooBig: '파일이 너무 큽니다(최대 10MB).',
 
-                 dictResponseError: '{{statusCode}} 코드를 서버에서 응답했습니다.',
 
-                 dictCancelUpload: '업로드 취소',
 
-                 dictCancelUploadConfirmation: '정말로 업로드를 취소하시겠습니까?',
 
-                 dictMaxFilesExceeded: '업로드 파일을 추가 할 수 없습니다. 기존파일을 삭제하고 시도해 주세요.',
 
-                 dictDefaultMessage: '파일 끌어다 놓기 혹은 클릭',
 
-                 dictFallbackMessage: '브라우저에서 "파일 끌어다 놓기 기능"을 지원하지 않습니다.',
 
-             });
 
-             dropzone.on('success', function (file, resFileInfo, formData) {
 
-                 uploadedFileInfo.SiteId = resFileInfo.SiteId;
 
-                 uploadedFileInfo.FileId = resFileInfo.FileId;
 
-                 options.startLoadFileCount = 1;
 
-                 isTempFile = true;
 
-                 if (_.isUndefined(handleSuccess) === false) {
 
-                     handleSuccess(uploadedFileInfo);
 
-                 }
 
-             });
 
-             dropzone.on('error', function (file, errorMessage, xhr) {
 
-                 isTempFile = false;
 
-                 resetUploadedFileInfo(uploadedFileInfo);
 
-                 if (_.isUndefined(handleRemovedFile) === false) {
 
-                     handleRemovedFile();
 
-                 }
 
-                 utils.toast.show('업로드 작업이 실패하였습니다: ' + errorMessage, 'error');
 
-             });
 
-             dropzone.on('removedfile', function (file) { ////2019-10-14 변경
 
-                 if (_.isUndefined(file.FileId)) return;//uploadedFileInfo
 
-                 var promise;
 
-                 if (_.isUndefined(handleRemoveBeforePromise)) {
 
-                     promise = BWA.db.CmFile.remove(file);//uploadedFileInfo
 
-                 }
 
-                 else {
 
-                     promise = handleRemoveBeforePromise().then(function () {
 
-                         return BWA.db.CmFile.remove(file);//uploadedFileInfo
 
-                     });
 
-                 }
 
-                 promise.done(function () {
 
-                     //options.startLoadFileCount = 0;
 
-                     resetUploadedFileInfo(file);//uploadedFileInfo
 
-                     if (_.isUndefined(handleRemovedFile) === false) {
 
-                         handleRemovedFile();
 
-                     }
 
-                     //utils.toast.show('파일을 삭제하였습니다.');
 
-                 });
 
-                 //resetUploadedFileInfo(uploadedFileInfo);
 
-                 //if (_.isUndefined(handleRemovedFile) === false) {
 
-                 //    handleRemovedFile();
 
-                 //}
 
-             })
 
-             dropzone.resetUploadedFileInfo = function () {
 
-                 resetUploadedFileInfo(uploadedFileInfo);
 
-                 isTempFile = false;
 
-                 // hcLee 2016 03 24
 
-                 //                options.startLoadFileCount = 0;
 
-                 //removeAllFiles();
 
-             };
 
-             dropzone.dispose = function () {
 
-                 if (_.isUndefined(uploadedFileInfo.FileId) === false && isTempFile) {
 
-                     BWA.db.CmFile.remove(uploadedFileInfo).done(function () {
 
-                         resetUploadedFileInfo(uploadedFileInfo);
 
-                         isTempFile = false;
 
-                     });
 
-                 }
 
-             };
 
-             dropzone.setTempFileFlag = function (value) {
 
-                 isTempFile = value;
 
-             };
 
-             dropzone.isTempFile = function () {
 
-                 return isTempFile;
 
-             };
 
-             return dropzone;
 
-         },
 
-         setupDropZoneEditModeSubscribeInPopupFunc: function (options) {
 
-             var dropZoneSelector = options.dropZoneSelector,
 
-                 dataViewModel = options.dataViewModel,
 
-                 categoryId = options.categoryId,
 
-                 tableName = options.tableName,
 
-                 fileIdFieldName = options.fileIdFieldName,
 
-                 handleAllocateDropZone = options.handleAllocateDropZone,
 
-                 handleReleaseDropZone = options.handleReleaseDropZone;
 
-             var timer = null;
 
-             var dropZone = null;
 
-             var uploadedFileInfo = {};
 
-             return function (value) {
 
-                 if (value) {
 
-                     if (timer) {
 
-                         clearInterval(timer);
 
-                     }
 
-                     timer = setInterval(function () {
 
-                         if ($(dropZoneSelector).length) {
 
-                             if (_.isNull(dropZone)) {
 
-                                 dropZone = BWA.DropZone.create({
 
-                                     id: dropZoneSelector,
 
-                                     categoryId: categoryId,
 
-                                     uploadedFileInfo: uploadedFileInfo,
 
-                                     handleRemoveBeforePromise: function () {
 
-                                         var keys = BWA.db.extractKeysObject(tableName, dataViewModel);
 
-                                         var valueObject = {};
 
-                                         valueObject[fileIdFieldName] = null;
 
-                                         var promise = BWA.db[tableName].update(keys, valueObject);
 
-                                         promise.then(function () {
 
-                                             dataViewModel[fileIdFieldName](null);
 
-                                         });
 
-                                         return promise;
 
-                                     },
 
-                                     handleSuccess: function (fileInfo) {
 
-                                         dataViewModel[fileIdFieldName](fileInfo.FileId);
 
-                                     },
 
-                                     handleRemovedFile: function () {
 
-                                         dropZone.resetUploadedFileInfo();
 
-                                         dataViewModel[fileIdFieldName](null);
 
-                                     },
 
-                                 });
 
-                                 handleAllocateDropZone(dropZone);
 
-                                 uploadedFileInfo.SiteId = dataViewModel.SiteId();
 
-                                 uploadedFileInfo.FileId = dataViewModel[fileIdFieldName]();
 
-                                 if (uploadedFileInfo.FileId) {
 
-                                     BWA.db.CmFile.byKey(uploadedFileInfo).done(function (data) {
 
-                                         //dropZone.removeAllFiles();
 
-                                         dropZone.emit('addedfile', {
 
-                                             name: data.Name,
 
-                                             size: data.FileSize
 
-                                         });
 
-                                         dropZone.setTempFileFlag(false);
 
-                                         //dropZone.options.maxFiles = 0; // 이게 있으면 삭제후 다시 업로드가 안 된다.
 
-                                         options.startLoadFileCount = 1;
 
-                                     });
 
-                                 }
 
-                             }
 
-                         }
 
-                     }, 100);
 
-                 }
 
-                 else {
 
-                     if (timer) {
 
-                         clearInterval(timer);
 
-                         timer = null;
 
-                     }
 
-                     if (dropZone) {
 
-                         dropZone.dispose();
 
-                     }
 
-                     dropZone = null;
 
-                     handleReleaseDropZone();
 
-                 }
 
-             };
 
-         }
 
-         // uploadedFileInfo에 FileId가 남아있다는 의미는 업로드는 성공했으나, 사용되지 않음을 의미한다.
 
-         // 그러므로 업로드 성공후 CmFacility나 FmsDrawingHistory 등에 연결했으면 uploadedFileInfo를 reset 해야 한다.
 
-         // 사용하지 않는다?
 
-         //dispose: function(uploadedFileInfo, dropzone) {
 
-         //    if (_.isUndefined(uploadedFileInfo.FileId) === false) {
 
-         //        BWA.db.CmFile.remove(uploadedFileInfo).done(function() {
 
-         //            resetUploadedFileInfo(uploadedFileInfo);
 
-         //        });
 
-         //    }
 
-         //}
 
-     };
 
- });
 
 
  |