213 lines
7.2 KiB
JavaScript
213 lines
7.2 KiB
JavaScript
let path_name = decodeURIComponent(window.location.pathname);
|
|
let project_id = path_name.split('/')[1];
|
|
|
|
//////// pm-bcmf 연결용 테스트 코드 - project_id가 pm-bcmf일 때 project_id는 dsdj2, path_name은 /dsdj2/archive로 변경
|
|
if (project_id == 'pm-bcmf') {
|
|
project_id = 'dsdj2';
|
|
path_name = '/dsdj2/archive';
|
|
}
|
|
|
|
//세종안성(sjas)(gtb.) and 청용천교(cheongyong)(cheongyong.) 연결용 테스트 코드
|
|
if(project_id == '' || project_id == undefined) {
|
|
if(window.location.origin.includes('gtb.')){
|
|
project_id = 'sjas';
|
|
path_name = '/sjas/archive';
|
|
}/* else if(window.location.origin.includes('cheongyong.')){
|
|
project_id = 'cheongyong';
|
|
path_name = '/cheongyong/archive';
|
|
} */
|
|
}
|
|
|
|
export const vars = {
|
|
// 아카이브 라우터 연결을 위한 변수
|
|
path_name: path_name,
|
|
|
|
// 프로젝트 id
|
|
project_id: project_id,
|
|
|
|
// 오브젝트 스토리지 타입 (ONPREMISE / CLOUD)
|
|
storageType: undefined,
|
|
|
|
// 클라우드 타입 (ONPREMISE / CLOUD)
|
|
cloudType: undefined,
|
|
|
|
// 버킷 (프로젝트 id와 동일)
|
|
bucket: project_id,
|
|
|
|
// 현재 로그인 한 유저 정보
|
|
userInfoString: undefined,
|
|
|
|
// 현재 로그인 한 유저의 permission 관리 객체
|
|
permission: undefined,
|
|
|
|
// 현재 로그인 한 유저의 마우스커서 정보를 담는 객체
|
|
cursors: {},
|
|
|
|
// 전체 프로젝트 정보
|
|
allProject: {},
|
|
|
|
// 현재 프로젝트 정보
|
|
project: undefined,
|
|
|
|
// 최상위 폴더 사용 용량 / 남은 용량 / 저장 가능한 최대 용량 (50 GB) -> DB에서 가져오기 / 폴더별 사이즈 (아카이브, 공문, 과업개요, GSIM 모델)
|
|
bucketSize: undefined, remainingSize: undefined, bucketMaxSize: 50*1024*1024*1024, foldersSize: undefined,
|
|
|
|
// 최상위 폴더 아래에 있는 모든 폴더/파일 데이터
|
|
allTreeObject: undefined,
|
|
|
|
// 현재 선택된 폴더 아래에 있는 모든 폴더/파일 데이터
|
|
currentTreeObject: undefined,
|
|
|
|
// 휴지통에 있는 모든 파일 데이터
|
|
recycleBinObject: undefined,
|
|
|
|
// 마지막으로 선택한 header-btn/tree-item/list-item -> 스타일 변경에 사용 - changeListItemStyle(listItem)
|
|
lastHeaderBtn: undefined, lastMainTreeItem: undefined, lastModalTreeItem: undefined, lastListItem: undefined, lastListGroupTarget: undefined,
|
|
// lastMainTreeDepth2Item: undefined, lastModalTreeDepth2Item: undefined,
|
|
// lastMainTreeDepth3Item: undefined, lastModalTreeDepth3Item: undefined,
|
|
|
|
// 마지막으로 우클릭한 타겟 -> 컨텍스트 메뉴에 사용
|
|
lastContextTarget: undefined,
|
|
|
|
// 마지막으로 선택한 header/tree/list item
|
|
lastSelectTarget: undefined,
|
|
|
|
// 드래그가 시작된 list-item
|
|
dragStartListItem: undefined,
|
|
|
|
// 클릭, 더블클릭 구분을 위한 시간
|
|
clickDuration: 500,
|
|
|
|
// 업로드, 다운로드 완료 후 프로그레스 종료 전 완료 후 잠깐 대기하는 시간
|
|
progressDuration: 500,
|
|
|
|
// 현재 변환중인 파일 정보를 저장하는 배열
|
|
convertingDataArr: [],
|
|
|
|
// 현재 요약중인 파일 정보를 저장하는 배열
|
|
summarizeAiDataArr: [],
|
|
|
|
// file area list에서 다중 선택된 item 배열
|
|
multiSelectListItemArr: [],
|
|
|
|
// 휴지통에서 사용할 lastListItem, lastListGroupTarget, lastContextTarget, lastSelectTarget, multiSelectListItemArr
|
|
// 휴지통에서 다중 선택된 item 배열
|
|
lastListItem_bin: undefined,
|
|
lastListGroupTarget_bin: undefined,
|
|
lastContextTarget_bin: undefined,
|
|
lastSelectTarget_bin: undefined,
|
|
multiSelectListItemArr_bin: [],
|
|
|
|
// 로그 데이터 -> 활동 정보 activity-info-item(로그 데이터)에 사용 (활동 정보 아이템 클릭 시 상세 정보 표시에 사용)
|
|
logData: undefined,
|
|
|
|
// 로그 모달창이 열렸는지 안열렸는지 판단하는 변수 -> 최초에만 false이고 한 번이라도 열리면 true로 유지
|
|
isLogModalOpened: false,
|
|
|
|
// 새로 추가되는 로그 아이템을 저장하는 배열
|
|
newLogItemArr: [],
|
|
|
|
// 일반아이템리스트/휴지통아이템리스트 구분에 사용
|
|
listItemWrap: document.querySelector('.archive-main-center .list-container .list-body .list-item-wrap'),
|
|
|
|
// 미리보기 뷰어
|
|
viewer: undefined,
|
|
|
|
// 메모 임시 저장
|
|
tempMemo: [],
|
|
|
|
// 파일 리스트 sort용 현재 컬럼, 현재 정렬순
|
|
curSortCol : 'name',
|
|
curSortOrder : 'asc',
|
|
|
|
// 휴지통 모달창 sort용 현재 컬럼, 현재 정렬순
|
|
curSortCol_bin : 'remove-date',
|
|
curSortOrder_bin : 'desc',
|
|
|
|
// 리스트/그리드 파일 목록에서 파일 선택했을 때 뷰어에 연결중 표시에 사용할 시간
|
|
viewerConnectingTime: 0, viewerConnectingTimeValue: 700,
|
|
|
|
// 트리 영역에서 마지막으로 선택한 폴더 타입
|
|
lastFolderType: undefined,
|
|
|
|
// 컨트롤 박스에서 마지막으로 선택한 파일 영역 모드
|
|
// lastFileAreaMode: undefined,
|
|
lastFileAreaMode: 'list',
|
|
|
|
// 지도 모드 (normal <-> edit)
|
|
mapMode: 'normal',
|
|
|
|
// 배경지도 url (일반, 위성, 하이브리드)
|
|
road: 'https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z}&hl=ko&&apistyle=s.e:l.i|p.v:off',
|
|
satellite: 'https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}&hl=ko&apistyle=s.e:l.i|p.v:off',
|
|
hybrid: 'https://mt1.google.com/vt/lyrs=y&x={x}&y={y}&z={z}&hl=ko&apistyle=s.e:l.i|p.v:off',
|
|
|
|
// 클러스터 거리 (픽셀 기준)
|
|
clusterDistance: 1,
|
|
|
|
// 마지막으로 선택한 클러스터
|
|
lastSelectCluster: undefined,
|
|
|
|
// 모든 오버레이를 표시하는 줌 레벨
|
|
allOverlayVisibleZoom: 19,
|
|
|
|
// 클러스터 레이어, 포인트 레이어
|
|
olClusterLayer: undefined,
|
|
olPointLayer: undefined,
|
|
|
|
listOrder: [],
|
|
|
|
countdownTimer: undefined,
|
|
}
|
|
|
|
// 오픈레이어스 타일 레이어
|
|
vars.baseLayer = new ol.layer.Tile({
|
|
source: new ol.source.XYZ({
|
|
url: vars.road,
|
|
crossOrigin: 'anonymous',
|
|
transition: 0
|
|
})
|
|
});
|
|
|
|
vars.roadLayer = new ol.layer.Tile({
|
|
source: new ol.source.XYZ({
|
|
url: vars.road,
|
|
crossOrigin: 'anonymous',
|
|
transition: 0
|
|
}),
|
|
visible: true
|
|
});
|
|
vars.satelliteLayer = new ol.layer.Tile({
|
|
source: new ol.source.XYZ({
|
|
url: vars.satellite,
|
|
crossOrigin: 'anonymous',
|
|
transition: 0
|
|
}),
|
|
visible: false
|
|
});
|
|
vars.hybridLayer = new ol.layer.Tile({
|
|
source: new ol.source.XYZ({
|
|
url: vars.hybrid,
|
|
crossOrigin: 'anonymous',
|
|
transition: 0
|
|
}),
|
|
visible: false
|
|
});
|
|
|
|
// 구성 popup ver 위한 전역 함수
|
|
// vars.navigateToPath = function(path) {
|
|
// const resourcePath = `/${path}`;
|
|
|
|
// // 헤더 버튼 클릭 (탭 선택)
|
|
// const tabPath = resourcePath.split('/')[1]; // '모델뷰어테스트/모델/3dm' -> '모델뷰어테스트'
|
|
// const headerBtn = document.querySelector(`[data-resource-path="/${tabPath}"]`);
|
|
// if (headerBtn) headerBtn.click();
|
|
|
|
// // 트리 아이템 클릭 (폴더 선택)
|
|
// setTimeout(() => {
|
|
// const treeItem = document.querySelector(`.tree-item-wrap[data-resource-path="${resourcePath}"] .tree-item`);
|
|
// if (treeItem) treeItem.click();
|
|
// }, 500);
|
|
// }
|
|
|
|
window.vars = vars; |