From: joinsang Date: Thu, 21 Feb 2019 13:58:27 +0000 (+0900) Subject: partial_zip.js 주석내용 추가 X-Git-Url: https://git.insang.kr/gitweb/?a=commitdiff_plain;h=8126814bb4f4bed568533dae11a6e029cca24f34;p=ZipProject.git partial_zip.js 주석내용 추가 영어로쓰기 너무 힘들다.. 한글주석 추가 --- diff --git a/ZipProject/Views/WebZip/partial_zip.cshtml b/ZipProject/Views/WebZip/partial_zip.cshtml index 6c27142..b4ee228 100644 --- a/ZipProject/Views/WebZip/partial_zip.cshtml +++ b/ZipProject/Views/WebZip/partial_zip.cshtml @@ -18,11 +18,11 @@ } .webzip-explore-placeholder { - border: 0.5px solid red; + border: 1px solid red; } .webzip-explore-liEmpty { - margin-top: -20px; + margin-top: -22px; line-height: 1.8; } diff --git a/ZipProject/wwwroot/js/Zip/partial_zip.js b/ZipProject/wwwroot/js/Zip/partial_zip.js index abfc2f3..b91114d 100644 --- a/ZipProject/wwwroot/js/Zip/partial_zip.js +++ b/ZipProject/wwwroot/js/Zip/partial_zip.js @@ -1,15 +1,14 @@ -var selected = $("#zipExplore directory:first ul:first"); -var selected_nameChange; -var bullet_directory = ''; -var bullet_directory_open = ''; -var bullet_file = ''; -var bullet_zip = ''; -var notFileName = ["\\", "/", ":", "*", "?", '"', "<", ">", "|"]; -var aCountFile = 0; -var obj_files = new Map(); -var directories = new Map(); -var files = new Map(); +var selected = $("#zipExplore directory:first ul:first"); //기본변수 +var selected_nameChange; //폴더명 바꿀때 반응하는 라벨객체 선택변수 +var bullet_directory = ''; //폰트어썸 +var bullet_directory_open = ''; //폰트어썸 +var bullet_file = ''; //폰트어썸 +var bullet_zip = ''; //폰트어썸 +var notFileName = ["\\", "/", ":", "*", "?", '"', "<", ">", "|"]; //파일명에 들어갈 수 없는것 +var directories = new Map(); //디렉토리 오브젝트 +var files = new Map(); //파일업로드 파일객체 +//폴더명은 비어있을 수 없습니다 알림창 function NotEmpty($elem) { if ($elem.val() == "") { alert(_Language["emptyDirectory"]); @@ -18,6 +17,7 @@ function NotEmpty($elem) { } } +//폴더 추가 function AddFolder() { var num = $("directory").length; var directory = @@ -31,32 +31,41 @@ function AddFolder() { \ \ '; + //앞서 선택한 선택자에 폴더 라벨 추가 selected.append(directory); - + //directories 객체에 폴더 오브젝트 추가 directories.put(directories.keys().length + "", "new"); - + + //bullet 리셋, sort리셋 SetBulletIcon(); SetSortable(); } +//폴더 순서 바뀌었을때 사용 (현재 사용할일 없지만 혹시 나중에 참고하게될것같아 냅둠) function ResetDirectoryKeys($elem, dirNum) { $elem.attr("key", dirNum); } -function ResetFileKeys($elem, dirNum, fileNum) {} - +//파일 추가 function AddFile($elem) { + //업로드된 파일객체 가져오기 var frontfiles = $elem.get(0).files; + //업로드된 파일갯수 사이즈 (다중업로드일때) var size = $elem.get(0).files.length; + //전역변수 files에 새로 업로드한 파일과 같은파일이 있는지 확인한 후 있을경우 이미있는파일이라며 팅굼 if (isDuplicateFile(frontfiles)) { alert(_Language["duplicateName"] + DuplicateFileName(frontfiles)); return false; } + //업로드된 파일 수 만큼 루프 for (var i = 0; i < size; i++) { + //해시맵 var hash = new Map(); + //대응되는 디렉토리 hash.put("directory", "0"); + //파일객체 hash.put("file", frontfiles[i]); var name = frontfiles[i].name; var lab = @@ -69,26 +78,25 @@ function AddFile($elem) { \ "; selected.children("li:first").after(lab); + //앞서 생성한 파일객체를 전역변수 files에 추가 files.put(files.keys() == "" ? "0" : files.keys().length + "", hash); } + //bullet 리셋 sort 리셋 SetBulletIcon(); SetSortable(); } +//jquery ui sort 세팅 function SetSortable() { $("#zipExplore ul") .sortable({ connectWith: "ul", placeholder: "webzip-explore-placeholder", - items: "li:not(.sort-disabled)", + items: "li:not(.sort-disabled,.webzip-explore-liEmpty)", update: function(event, ui) { var directory_key = $(this) .prev() .attr("key"); - var directory_name = $(this) - .prev() - .text() - .trim(); var directory_infiles = new Array(); $(this) .children(".sort-file") @@ -102,19 +110,14 @@ function SetSortable() { }); console.log(directory_key+","+directory_infiles); - // if (true) { - // console.log( - // "directory: " + directory_name + ", file name: " + directory_infiles + ", key: " + directory_key - // ); - // } - - // MoveFile(directory_key, directory_name, directory_infiles); + MoveFile(directory_key, directory_infiles); } }) .disableSelection(); } -function MoveFile(dir_key, dir_name, file_name) { +//sort로 인한 파일이동시 +function MoveFile(dir_key, file_name) { for (var i = 0; i < file_name.length; i++) { for (var o = 0; o < files.keys().length; o++) { if (file_name[i] == files.get(o).get("file").name) { @@ -123,12 +126,12 @@ function MoveFile(dir_key, dir_name, file_name) { file.put("directory", dir_key); files.put(o, file); - console.log(files); } } } } +//파일 또는 폴더의 객체를 클릭했을때 css 적용과 전역변수 selected_nameChange에 객체정보 저장 function Clicked($elem) { folder_bg_white(); $elem.css("background-color", "lightgray"); @@ -144,12 +147,14 @@ function Clicked($elem) { SetFileDirectoryName($elem); } +//폴더 혹은 파일 백그라운드 색 변경 function folder_bg_white() { $("#zipExplore") .find("label") .css("background-color", "white"); } +//왜만들었지? 안씀 function GetParentTag(elem) { return elem .parent() @@ -157,7 +162,7 @@ function GetParentTag(elem) { .toLowerCase(); } -// set bullet icon +// set bullet icon (파일 또는 폴더의 아이콘) fontawesome function SetBulletIcon() { $("#zipExplore") .find("bullet") @@ -186,6 +191,7 @@ function SetBulletIcon() { }); } +//업로드시 파일 중복 검사 function isDuplicateFile(frontfiles) { for (var i = 0; i < frontfiles.length; i++) { for (var o = 0; o < files.keys().length; o++) { @@ -197,6 +203,7 @@ function isDuplicateFile(frontfiles) { return false; } +//업로드시 중복된 파일의 이름값 리턴 function DuplicateFileName(frontfiles) { for (var i = 0; i < frontfiles.length; i++) { for (var o = 0; o < files.keys().length; o++) { @@ -207,6 +214,7 @@ function DuplicateFileName(frontfiles) { } } +//폴더 열고 접기 function AddDbclickEvent($elem) { if ( $elem @@ -225,16 +233,13 @@ function AddDbclickEvent($elem) { SetBulletIcon(); } -//$("#zipExplore ul").each(function(){ -// $(this).on("sortupdate", function(event, ui){ -// console.log($(this).sortable('toArray').toString()); -// }); -//}); - +//폴더명 변경시 대응하여 오른쪽 폴더라벨명도 변경 function SetFileDirectoryName($elem) { $("#fileName").val($elem.text().trim()); } +//파일명 변경시 대응하여 오른쪽 폴더라벨명도 변경 +//19.02.21 - 사용안하지만 참조되는곳이 있어 지우지않음 function ChangeFileName($elem) { if (isErrFileName($elem.val())) { alert(_Language["err_violationFileName"]); @@ -248,6 +253,7 @@ function ChangeFileName($elem) { } } +//파일명에 허용되지 않는 특수문자 들어가는지 확인 function isErrFileName(val) { for (var i = 0; i < notFileName.length; i++) { if (val.indexOf(notFileName[i]) != -1) { @@ -257,6 +263,7 @@ function isErrFileName(val) { return false; } +//파일명이 너무 길단다 function isTooLongFileName(val) { if (val.length > 30) { return true; @@ -264,8 +271,8 @@ function isTooLongFileName(val) { return false; } +//초기세팅(bullet, sort, 기본 zip label 세팅) SetBulletIcon(); SetSortable(); - directories.put(0, "example"); $("#zip_default").trigger("click");