mirror of
https://git.hmsn.ink/kospo/helptalk/api.git
synced 2026-03-20 00:42:25 +09:00
154 lines
4.6 KiB
JavaScript
154 lines
4.6 KiB
JavaScript
// 전역 변수
|
|
|
|
import {talkEvent} from "./talkEvent.js";
|
|
|
|
const global = {
|
|
/*스톰프*/
|
|
stomp: null,
|
|
/*사용자 정보 */
|
|
user: null,
|
|
/*현페이지 업무정보*/
|
|
work: null,
|
|
/*api url정의*/
|
|
apiUrl: '',
|
|
/*헬프톡 생성 옵션*/
|
|
option: {},
|
|
/*헬프톡 content 루트 */
|
|
shadowRoot: null,
|
|
/*헬프톨 주요 엘리먼트 */
|
|
element: {},
|
|
/*채팅 날짜 정의*/
|
|
currDay: '',
|
|
/*채팅 상태글 이전 날짜*/
|
|
yourOldDate: '',
|
|
/*채팅 본인글 이전 날짜*/
|
|
mineOldDate: '',
|
|
/*톡방 메시지 스크롤 위치*/
|
|
oldScrollPosition: 0,
|
|
/*스크롤 top < 300 페이징 데이터 호출 여부*/
|
|
scrollMoreFlag: true,
|
|
/*채팅방 엘리먼트 변화 감지 하여 자동 스크롤 사용여부*/
|
|
scrollObserveFlag:true,
|
|
/* 불필요 변수 */
|
|
allVNode: [],
|
|
/* 채팅방 데이터 */
|
|
talkData: [],
|
|
/* 소켓 커넥션 및 브로드 캐스드 관리*/
|
|
channel: null,
|
|
/* 현재 접속 서버 */
|
|
currentServer: '',
|
|
/*시스템 강제 종료 여부*/
|
|
forceKill: false,
|
|
/* 채팅글 호출 파라미터 */
|
|
messageParams: {
|
|
'talkId': '',
|
|
'week': 1,
|
|
'row': 50,
|
|
'start': 0,
|
|
},
|
|
/* 현재 접속 url 파리미터 정보 */
|
|
requestParams: {},
|
|
/* 구독 목록 */
|
|
subscribeList : {},
|
|
// 파일 구독 목록
|
|
fileSubscribeList: {},
|
|
/* 현재 사이트 URL*/
|
|
currentUrl: '',
|
|
/* 에러 메시지 함수 */
|
|
notifier: null,
|
|
/* 브라우저 탭 아이디 */
|
|
tabId: '',
|
|
/* 방 생성자 */
|
|
chatCreator: null,
|
|
hub: null,
|
|
/*클립보드 정보*/
|
|
clipboardData: null,
|
|
clipboardObjectUrl: null,
|
|
// 서비스워커 연결 여부
|
|
serviceWorkerConnect: false,
|
|
// 소켓연결 제어
|
|
reConnect: false,
|
|
/* 로딩 여부 (새로고침시 reconnect 방지용)*/
|
|
init: false,
|
|
checker : {flag: false, inDate: ''},
|
|
talkParams : (obj) => {
|
|
return {
|
|
type: obj.type,
|
|
insSabun: global.user.sabun,
|
|
insName : global.user.name,
|
|
insDate : obj.insDate || '',
|
|
message: obj.message || '',
|
|
talkId: obj.talkId,
|
|
workId: obj.workId,
|
|
workNm: obj.workNm || '',
|
|
introOwner: obj.introOwner || '',
|
|
talkAttachDtos: obj.talkAttachDtos === undefined ? [] : obj.talkAttachDtos,
|
|
talkMessages: obj.talkMessages,
|
|
attach: obj.attach,
|
|
tabId: global.tabId
|
|
}
|
|
},
|
|
/*특정 파라미터 초기화(채팅방 나가기시)*/
|
|
reset: () => {
|
|
// 인포 메시지 삭제
|
|
const systemMessages = global.shadowRoot.querySelectorAll('.system-message');
|
|
Array.from(systemMessages).forEach((sm) => sm.remove());
|
|
// 사이드바 원위치
|
|
global.element.chatSidebar.style.left = 0;
|
|
// // 채팅 내용 호출 파라미터 초기화
|
|
global.currDay = ''
|
|
global.yourOldDate = '';
|
|
global.mineOldDate = '';
|
|
// global.messageParams.talkId = '';
|
|
// global.messageParams.week = 1;
|
|
global.scrollMoreFlag = true;
|
|
global.scrollObserveFlag = true;
|
|
// 검색 비활성화
|
|
global.searchClose();
|
|
|
|
/*작성된 메시지 제거*/
|
|
const msg = global.element.chatEditor.innerText.trim();
|
|
if(msg !== '') {
|
|
const talkId = localStorage.getItem(global.tabId)
|
|
const _this = global.shadowRoot.querySelector(`div[data-talk-id="${talkId}"]`)
|
|
const workId = _this.dataset.workId;
|
|
const workNm = _this.dataset.workNm;
|
|
talkEvent.send(global.talkParams({
|
|
type: "UNTYPED",
|
|
talkId: talkId,
|
|
workId: workId,
|
|
workNm: workNm
|
|
}))
|
|
|
|
global.element.chatEditor.innerHTML = '';
|
|
}
|
|
|
|
talkEvent.messageClean();
|
|
// localstorage 정보 제거
|
|
localStorage.removeItem(global.tabId)
|
|
localStorage.removeItem('workId')
|
|
localStorage.removeItem('workNm')
|
|
|
|
},
|
|
talkClean: () => {
|
|
//
|
|
console.log('clean')
|
|
global.currDay = ''
|
|
global.yourOldDate = '';
|
|
global.mineOldDate = '';
|
|
global.messageParams.talkId = '';
|
|
global.messageParams.week = 1;
|
|
global.scrollMoreFlag = true;
|
|
global.scrollObserveFlag = true;
|
|
},
|
|
searchClose: () => {
|
|
const searchCloseBtn = global.shadowRoot.querySelector('#chat-option.bi-x-lg');
|
|
if(searchCloseBtn) {
|
|
searchCloseBtn.click()
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
export {global} |