Files
PM_test/views/main/jsm/archive/variable.js
2026-06-12 17:14:03 +09:00

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;