| 
					
				 | 
			
			
				@@ -35,9 +35,23 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     <div class="sub-menu"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         <img src="/static/images/menu-icon.png" width="30" height="30" alt="메뉴 아이콘"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <div>새로만들기</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <div>업로드</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <div>새로고침</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <div onclick="menuOpen(event, 'mk-items')"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <div>새로만들기</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <div class="mk-items click-menu"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <div onclick="mkdir()"><img src="/static/images/folder.png" width="20" height="20" alt="문서 이미지"> 폴더</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <div><img src="/static/images/docx.svg" width="20" height="20" alt="문서 이미지"> Word 문서</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <div><img src="/static/images/xlsx.svg" width="20" height="20" alt="문서 이미지"> Excel 통합 문서</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <div><img src="/static/images/pptx.svg" width="20" height="20" alt="문서 이미지"> PowerPoint 프레젠테이션</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      </div>  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <div onclick="menuOpen(event, 'upload-items')"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <div>업로드</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <div class="upload-items click-menu"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <div style="width: 160px;">폴더</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <div style="width: 160px;">파일</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      </div>  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <div onclick="refreshDrive()">새로고침</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     <div class="one-drive-button">OneDrive에서 열기</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <div class="panel"></div> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -53,22 +67,13 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </section> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    <div class="modal"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        <div class="modal-content"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class="title">이름 바꾸기</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <input type="text" name="file_name" id="" value="">.pdf 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div class="name-btn">이름 바꾸기</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <div class="name-btn">취소</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   </body> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </html> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const groupId = '3df73dac-a8bc-4dd0-9159-fdb2c696c067'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const groupMap = new Map(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   let _selectedData = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  let _listData = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   $(()=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     microsoftTeams.appInitialization.notifySuccess(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     getGroupList(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -76,9 +81,18 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     window.oncontextmenu = function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    window.addEventListener('click', function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $('.click-menu').css('display', 'none'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  function menuOpen(event, className) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    event.preventDefault(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    event.stopPropagation(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $('.click-menu:not(.'+className+')').css('display', 'none'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $('.' + className).toggle(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   function drawDriveFiles(jsonData, parentData, name) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       _selectedData = []; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -96,7 +110,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (jsonData && jsonData.value && jsonData.value.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (jsonData.value[0].webUrl) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           $oneDriveBtn.on('click', ()=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            window.open(obj.webUrl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            window.open(jsonData.value[0].webUrl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         _selectedData = jsonData; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -124,6 +138,9 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               if (obj.file.mimeType && obj.file.mimeType.includes('image')){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ext = 'photo'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              else if (['txt'].includes(ext)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ext = 'txt'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               else if (['pptx', 'ppt', 'pptm'].includes(ext)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ext = 'pptx'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -169,7 +186,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // let method = `findOneDriveChildrenItems('${obj.id}')`;(siteId, path, name, value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let method = `siteDriveChildrenItems('${obj.parentReference.siteId}','${obj.parentReference.path + '/' + obj.name}','${name}')`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let method = `siteDriveChildrenItems('${obj.parentReference.siteId}','${obj.parentReference.path + '/' + obj.name}','${name}', null, event)`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (obj.file) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               method = `downloadItems('${obj['@microsoft.graph.downloadUrl']}', '${obj.name}', event)`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -215,12 +232,13 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               if ($('.toggle-box')[0]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $('.toggle-box').remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               const {clientX, clientY} = e; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const toggleBox = $(`<div class="toggle-box" style="position:absolute; top:${clientY}; left: ${clientX}"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     <div>편집</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     <div>탭으로 설정</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     <div>다운로드</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    <div>삭제</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <div onclick="deleteItem()">삭제</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     <div>이동</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     <div>복사</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     <div onclick="nameChange()">이름 바꾸기</div> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -232,7 +250,11 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (parentData && parentData.folder && parentData.folder.childCount === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const refData = parentData.parentReference; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                panelStr = drawPath(refData.path +'/' + parentData.name, refData.siteId ,name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let path = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (refData.path) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  path = refData.path +'/' + parentData.name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                panelStr = drawPath(path, refData.siteId, name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $oneDriveBtn.off('click'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (parentData.webUrl){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -251,51 +273,85 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         panel.html(panelStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // callApi('get','/deviceManagement', (jsonData)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    //     console.log(jsonData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    function drawDrivePath(path, name, siteId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (path) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let formatPath = path.substring(path.lastIndexOf('root:') + 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (formatPath) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          formatPath = formatPath.substring(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          formatPath = formatPath.split('/'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          panelStr = `<span class="panel-item" onclick="siteDriveChildrenItems('${siteId}', '/drive/root', '${name}', '${siteId}')">${name}</span>`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          let itemPath = "/drive/root:"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          if (Array.isArray(formatPath)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for(let ii = 0; ii < formatPath.length; ii++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              let pathName = formatPath[ii]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              let className = 'panel-item'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              itemPath += "/" + pathName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              let method = `drawDriveFiles('${itemPath}', event)`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              if (formatPath.length - 1 === ii) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                className += ' on'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                method = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-               
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              panelStr += `<span> > </span><span class="${className}" onclick="${method}">${pathName}</span>`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //새로고침 이벤트 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    function refreshDrive() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const selectedDrive = $('.panel-item.on'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (selectedDrive[0]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          selectedDrive.removeClass('on'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          selectedDrive.click(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //삭제 이벤트 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    function deleteItem() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const checkArr = $('.file-content input[type="checkbox"]'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const checkedArr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let siteId = getSitesId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (!siteId) return alert('그룹 정보를 확인 할 수 없습니다.'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (checkArr.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (let ii = 0; ii < checkArr.length; ii++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (checkArr.eq(ii).is(':checked')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const title = checkArr.eq(ii).parent().next().text(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const team = _listData.joinedTeams; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const idx = team.teams.findIndex(obj => obj.sharePoint.siteId === siteId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (idx >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              const sameIndex = team.items[team.teams[idx].id].findIndex(obj => obj.id === checkArr.eq(ii).val()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              if (sameIndex >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return alert('채널 정보는 삭제하실수 없습니다.'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            checkedArr.push(checkArr.eq(ii).val()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          return panelStr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (checkedArr.length === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          alert('선택된 정보가 없습니다. 삭제하실 파일을 먼저 선택해주세요.'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (confirm('선택된 파일을 삭제하시겠습니까?')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              $.ajax({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                method:'post', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                url : "/deleteItems", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                data: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  siteId: siteId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  itemIds : JSON.stringify(checkedArr), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                success: (res)=> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  if (res.success === 'S') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      const selectedDrive = $('.panel-item.on'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      selectedDrive.removeClass('on'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      selectedDrive.click(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  alert(res.message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                error: (error)=> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  console.log(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              alert('선택된 그룹 정보가 없습니다. 선택 그룹을 확인해 주세요.'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      return `<span class="panel-item on">${name}</span>`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     function drawPath(path, siteId, name) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       let imgSrc = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       let panelStr = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if ($('#'+siteId).next().find('img')[0]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        imgSrc = $('#'+siteId).next().find('img').attr('src'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if ($('#'+siteId + '_li').find('img')[0]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        imgSrc = $('#'+siteId + '_li').find('img').attr('src'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (path) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let formatPath = path.substring(path.lastIndexOf('root:') + 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (formatPath) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           formatPath = formatPath.substring(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           formatPath = formatPath.split('/'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          panelStr = `<span class="panel-item" onclick="siteDriveChildrenItems('${siteId}', '/drive/root', '${name}', '${siteId}')">`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          panelStr = `<span class="panel-item" id="${siteId}" onclick="siteDriveChildrenItems('${siteId}', '/drive/root', '${name}', '${siteId}', event)">`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (imgSrc) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             panelStr += `<img style="margin-right:5px;" width="24" height="24" src="${imgSrc}" alt="이미지">` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -306,10 +362,10 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               let pathName = formatPath[ii]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               let className = 'panel-item'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               itemPath += "/" + pathName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              let method = `siteDriveChildrenItems('${siteId}','${itemPath}', '${name}')`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              let method = `siteDriveChildrenItems('${siteId}','${itemPath}', '${name}', null, event)`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               if (formatPath.length - 1 === ii) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 className += ' on'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                method = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // method = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               panelStr += `<span> > </span><span class="${className}" onclick="${method}">${pathName}</span>`; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -319,7 +375,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      panelStr = `<span class="panel-item on">`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      panelStr = `<span class="panel-item on" id="${siteId}" onclick="siteDriveChildrenItems('${siteId}', '/drive/root', '${name}', '${siteId}', event)">`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (imgSrc) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         panelStr += `<img style="margin-right:5px;" width="24" height="24" src="${imgSrc}" alt="이미지">` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -328,6 +384,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       return panelStr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     function nameChange() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if ($('.file-content > .on .file_name')[0]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -352,14 +409,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             e.preventDefault(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $(this).css('background-color', '#f5f5f5'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const transfer = e.originalEvent.dataTransfer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            console.log(e.dataTransfer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            console.log(transfer.items); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (transfer.items.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              for (let ii=0; ii < transfer.items.length; ii++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                entries[0] = e.dataTransfer.items[ii].webkitGetAsEntry(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                console.log(entries[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (transfer && transfer.files && transfer.files.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (let ii = 0; ii < transfer.files.length; ii++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   console.log(transfer.files[ii]); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -426,36 +475,45 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    function makeFolder(type, uri, scopes, callBackMethod, args, params) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $.ajax({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            method: 'post', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            url : "/api-"+type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            data: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              api_uri: uri, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              scopes : scopes, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              param : params, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            success: (res)=> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              callBackMethod(res, args); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            error: (error)=> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              console.log(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    function siteDriveChildrenItems(siteId, path, name, value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    function siteDriveChildrenItems(siteId, path, name, value, event) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      event.preventDefault(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      event.stopPropagation(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if ($(event.target).hasClass('on')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $('.tree.group input').prop('checked', true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // $('.tree.group input').prop('checked', true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $('input[value="'+value+'"]').prop('checked', false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if ($('.panel').children().text() === name) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      callApi('get', '/sites/' +siteId +'/'+ path, (jsonData)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log('/sites/' +siteId + path); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      callApi('get', '/sites/' +siteId + path, (jsonData)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (jsonData && jsonData.id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (jsonData.folder && jsonData.folder.childCount === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              if (path.indexOf('root:') < 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                path = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              const panelStr = drawPath(path, siteId, name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              const $oneDriveBtn = $('.one-drive-button'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              const $fileContent = $('.file-content'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              const $panel = $('.panel'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              $oneDriveBtn.off('click'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              if (jsonData.webUrl){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $oneDriveBtn.on('click', ()=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  window.open(jsonData.webUrl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              $fileContent.html(`<div class="empty-box"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                  <img src="/static/images/empty_folder_v2.svg" alt="이미지"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                  <div>이 폴더는 비어 있습니다.</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                </div>`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              $panel.html(panelStr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           callApi('get', '/sites/' +siteId +'/drive/items/'+jsonData.id+'/children', (childrenData)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // drawOneDrive(childrenData, jsonData, name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             drawDriveFiles(childrenData, jsonData, name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           },null);  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -520,93 +578,87 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//sites/2ec19976-da37-4d7e-993a-fe82cf97a586/drive/items/01ILDTREXEZN5EXKD5YJHLNYXU6HTAX5VS/children 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//oneDrive => /me/drive/items/${item.id}/children 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     function drawList(jsonData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const group = $('.group'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       group.empty(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (jsonData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          _listData = jsonData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const groupImageUrl = '/_api/siteiconmanager/getsitelogo?type=1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           const {oneDrive, joinedTeams, sites} = jsonData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           let parentId = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           let siteId = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          if (oneDrive && oneDrive.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (oneDrive[0].parentReference) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              siteId = oneDrive[0].parentReference.siteId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          let str = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (joinedTeams && joinedTeams.teams.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            str += `<li> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <input id="my-team" type="checkbox"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <label for="my-team">내 Teams 그룹</label> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <ul class="group-section"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            joinedTeams.teams.forEach((team)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              const items = joinedTeams.items[team.id]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              let siteId = team.sharePoint.siteId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              // onclick="siteDriveChildrenItems('${siteId}', '/drive/root', '${team.displayName}', '${siteId}', event)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              str += `<li id="${siteId}_li"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <input type="checkbox" checked="false" id="${siteId}_check" value="${siteId}"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <label for="${siteId}_check"><img width="24" height="24" src="${team.sharePoint.siteUrl}${groupImageUrl}" alt="이미지"> ${team.displayName}</label> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <ul>`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (items && items.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          items.forEach((item)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            str +=`<li id="${item.id}" onclick="siteDriveChildrenItems('${siteId}', '/drive/root:/${item.name}', '${team.displayName}', null, event)">${item.name}</li>` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              str +=`</ul></li>`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            str += '</ul></li>'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // <input type="checkbox" checked="false" id="my-one-drive" value="${parentId}" onclick="showOneDrive(event)"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          //siteDriveChildrenItems(siteId, path, name)  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          let str = `<li> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      <input type="checkbox" checked="false" id="${siteId}" value="${siteId}" onclick="siteDriveChildrenItems('${siteId}', '/drive/root', 'One Drive', '${siteId}')"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      <label for="${siteId}">One Drive</label> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      <ul>`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      if (oneDrive && oneDrive.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        oneDrive.forEach((drive)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          str +=`<li id="${drive.id}" onclick="siteDriveChildrenItems('${siteId}', '/drive/root:/${drive.name}', 'One Drive')">${drive.name}</li>` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              str += `</ul> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    </li>`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              if (joinedTeams && joinedTeams.teams.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                joinedTeams.teams.forEach((team)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  const items = joinedTeams.items[team.id]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  let siteId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  let path; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  if (items[0]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    let joinedRef = items[0].parentReference; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    siteId = joinedRef.siteId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    path = joinedRef.path; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  str += `<li> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            <input type="checkbox" checked="false" id="${siteId}" value="${siteId}" onclick="siteDriveChildrenItems('${siteId}', '/drive/root', '${team.displayName}', '${siteId}')"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            <label for="${siteId}"><img width="24" height="24" src="data:image/jpeg;base64, ${team.image}" alt="이미지"> ${team.displayName}</label> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            <ul>`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                             
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if (items && items.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                              items.forEach((item)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                str +=`<li id="${item.id}" onclick="siteDriveChildrenItems('${siteId}', '/drive/root:/${item.name}', '${team.displayName}')">${item.name}</li>` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                              }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  str +=`</ul></li>`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (oneDrive) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const {teams, items} = oneDrive; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const sharePoint = teams.sharePoint; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            siteId = sharePoint.siteId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              // str += `<div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              //           <input type="checkbox" checked="false" id="${siteId}" value="${siteId}" onclick="siteDriveChildrenItems('${siteId}', '/drive/root', 'One Drive', '${siteId}', event)"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              //           <label for="${siteId}"><img width="24" height="24" src="${sharePoint.siteUrl}${groupImageUrl}" alt="그룹 이미지"> One Drive</label> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              //         </div>`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              str += `<div id="${siteId}_li" onclick="siteDriveChildrenItems('${siteId}', '/drive/root', 'One Drive', '${siteId}', event)"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <img width="24" height="24" src="${sharePoint.siteUrl}${groupImageUrl}" alt="그룹 이미지"> One Drive 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      </div>`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (sites) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              let {teams, items} = sites; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              if (!Array.isArray(teams)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                teams = [teams]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              for (let team of teams) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // const items = sites.items[team.id]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let siteId = team.sharePoint.siteId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let path; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let imageUrl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  // str += `<li> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  //         <input type="checkbox" checked="false" id="${siteId}" value="${siteId}" onclick="siteDriveChildrenItems('${siteId}', '/drive/root', '${team.displayName}', '${siteId}', event)"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  //         <label for="${siteId}"><img width="24" height="24" src="${team.sharePoint.siteUrl}${groupImageUrl}" alt="이미지"> ${team.displayName}</label> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  //         <ul>`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  //         if (items && items.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  //           items.forEach((item)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  //             str +=`<li id="${item.id}" onclick="siteDriveChildrenItems('${siteId}', '/drive/root:/${item.name}', '${team.displayName}', null, event)">${item.name}</li>` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  //           }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  //         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  // str +=`</ul></li>`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  str += ` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <div id="${siteId}_li" onclick="siteDriveChildrenItems('${siteId}', '/drive/root', '${team.displayName}', '${siteId}', event)"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          <img width="24" height="24" src="${team.sharePoint.siteUrl}${groupImageUrl}" alt="그룹 이미지"> ${team.displayName} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        </div>`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              group.append($(str)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    function showOneDrive(event) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $('.tree.group input[type="checkbox"]').prop('checked', true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      event.target.checked = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if ($(event.target).next().text() === $('.panel').children().first().text()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          group.append($(str)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      callApi('get', '/me/drive/root/children', (jsonData)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        drawOneDrive(jsonData, '', $(event.target).next().text()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    function DrawOneDriveFile(id, name) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      callApi('get', '/me/drive/items/' + id + '/children', (jsonData)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        drawOneDrive(jsonData, name, id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    function showJoinedTeam(id, name, event) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // const $target = $(event.target); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // const isChecked = $target.is(':checked'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // if (isChecked) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   $target.prop('checked', 'checked'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      //   return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $('.tree.group input[type="checkbox"]').prop('checked', true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      event.target.checked = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if ($(event.target).next().text() === $('.panel').children().first().text()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      callApi('get', '/groups/'+id+'/drive/items/root/children', (jsonData)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        drawFileList(jsonData, name, id, $(event.target)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     function sorting(type) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const $sortingColumn = $('.head-'+type); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -655,4 +707,124 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     window.URL.revokeObjectURL(downloadUrl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  function makeFolder() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const $folderName = $('#folder_name'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const name = $folderName.val(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (!name || !name.trim()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $folderName.focus(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return alert("폴더명을 입력해주세요."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let siteId = getSitesId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (siteId === null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return alert('선택된 그룹 정보를 찾을 수 없습니다. 생성할 그룹을 선택해주세요.'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const groupIndex = _listData.joinedTeams.teams.findIndex(obj => obj.sharePoint.siteId === siteId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const pathArr = $('.panel').children(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (groupIndex >= 0 && $('.panel').children().length === 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return alert('채널 리스트를 먼저 선택해 주세요.'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let sitePath = '/drive/root' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (pathArr.length > 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      sitePath += ':'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      for (let ii = 0; ii < pathArr.length; ii++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const path = pathArr.eq(ii).text(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (ii !== 0 && path !== " > ") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          sitePath += "/" + path;  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $.ajax({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      method: 'post', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      data : { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        siteId : siteId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        path : sitePath, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        param : JSON.stringify({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          name: name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          folder: { }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          '@microsoft.graph.conflictBehavior': 'rename' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      url : '/makeFolder', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      success: (res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        alert('폴더가 생성되었습니다.\n폴더명 : '+ res.name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $('.modal').remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const selectDrive = $('.panel-item.on'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        selectDrive.removeClass('on'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        selectDrive.click(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      error: (error) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log('==============error=============\n'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  function mkdir() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const modalContainer = $( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      `<div class="modal" style="display: flex;"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="modal-box"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <div class="header"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div class="title">폴더 생성</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div class="x-button"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <span><img src="/static/images/x-button.png" width="15" height="15" alt="닫기 버튼" onclick="modalClose()"></span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <div class="modal-content"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div>폴더명</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <input type="text" name="file_name" id="folder_name" value=""> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <div class="button-box"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <div class="name-btn" onclick="makeFolder()">만들기</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <div class="name-btn" onclick="modalClose()">취소</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </div>`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $('body').append(modalContainer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // callApi('post', '/sites/' +siteId +'/drive/items/'++'/children', (jsonData)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //   console.log(jsonData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //   callApi('post', '') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  function modalClose(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $('.modal').remove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  function getSitesId() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let siteId = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if ($('.panel').children().first()[0]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        siteId = $('.panel').children().first().attr('id'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return siteId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  function changeNames() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const modalContainer = $( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      `<div class="modal" style="display: flex;"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="modal-box"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <div class="header"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div class="title">이름 바꾸기</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div class="x-button"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <span><img src="/static/images/x-button.png" width="15" height="15" alt="닫기 버튼"></span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <div class="modal-content"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div>이름</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <input type="text" name="file_name" id="" value=""> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <div class="button-box"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <div class="name-btn">이름 바꾸기</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <div class="name-btn">취소</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </div>`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </script> 
			 |