109 lines
3.4 KiB
JavaScript
109 lines
3.4 KiB
JavaScript
/**
|
|
* IntakchlChallengeSettings.js
|
|
*
|
|
* 섭취 챌린지 설정 화면을 관리하는 모듈
|
|
* 사용자가 섭취 제품 관리와 알림 설정 페이지로 이동할 수 있는 기능 제공
|
|
*
|
|
* 주요 기능:
|
|
* 1. 섭취 제품 관리 페이지 이동 처리
|
|
* 2. 알림 설정 페이지 이동 처리
|
|
* 3. 이벤트 리스너 등록 및 관리
|
|
*
|
|
* 연관 파일:
|
|
* - IntakchlAlarmSettings.js: 알림 설정 관련 기능
|
|
* - IntakchlProductDetail.js: 제품 상세 관련 기능
|
|
*/
|
|
|
|
$(function() {
|
|
/**
|
|
* 문서 로딩 완료 후 초기화 함수
|
|
* 각 버튼에 이벤트 리스너 등록
|
|
*/
|
|
function init() {
|
|
// 이벤트 리스너 등록
|
|
registerEventListeners();
|
|
}
|
|
|
|
/**
|
|
* URL에서 특정 파라미터 값을 추출하는 함수
|
|
* @param {string} paramName - 추출할 파라미터명
|
|
* @return {string|null} 파라미터 값 또는 null
|
|
*/
|
|
function getUrlParameter(paramName) {
|
|
const urlParams = new URLSearchParams(window.location.search);
|
|
return urlParams.get(paramName);
|
|
}
|
|
|
|
/**
|
|
* 각 버튼 및 요소에 이벤트 리스너 등록
|
|
*/
|
|
function registerEventListeners() {
|
|
// 섭취제품 관리 버튼 클릭 이벤트
|
|
$("#manageProducts").on("click", function(e) {
|
|
e.preventDefault(); // 기본 이벤트 방지
|
|
navigateToProductManagement();
|
|
});
|
|
|
|
// 알림설정 버튼 클릭 이벤트
|
|
$("#setAlarms").on("click", function(e) {
|
|
e.preventDefault(); // 기본 이벤트 방지
|
|
navigateToAlarmSettings();
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 섭취제품 관리 페이지로 이동
|
|
* 해당 컨트롤러의 intakchlChallengeProductManagement 메소드 호출
|
|
*/
|
|
function navigateToProductManagement() {
|
|
const bnfInnb = getUrlParameter('bnfInnb');
|
|
const source = getUrlParameter('source'); // source 파라미터도 추출
|
|
let url = '/sopmal/bnft/intakchlChallengeProductManagement';
|
|
|
|
const params = [];
|
|
|
|
// bnfInnb 파라미터가 있는 경우 추가
|
|
if (bnfInnb) {
|
|
params.push('bnfInnb=' + encodeURIComponent(bnfInnb));
|
|
}
|
|
|
|
// source 파라미터가 있는 경우 추가
|
|
if (source) {
|
|
params.push('source=' + encodeURIComponent(source));
|
|
}
|
|
|
|
// 파라미터가 있으면 URL에 추가
|
|
if (params.length > 0) {
|
|
url += '?' + params.join('&');
|
|
}
|
|
|
|
// 페이지 이동 전 로딩 표시 등 추가 필요시 여기에 작성
|
|
window.location.href = url;
|
|
}
|
|
|
|
/**
|
|
* 알림설정 페이지로 이동
|
|
* 해당 컨트롤러의 intakchllAlarmSettings 메소드 호출
|
|
*/
|
|
function navigateToAlarmSettings() {
|
|
const bnfInnb = getUrlParameter('bnfInnb');
|
|
let url = '/sopmal/bnft/intakchllAlarmSettings';
|
|
|
|
// bnfInnb 파라미터가 있는 경우 URL에 추가
|
|
if (bnfInnb) {
|
|
url += '?bnfInnb=' + encodeURIComponent(bnfInnb);
|
|
}
|
|
|
|
// 페이지 이동 전 로딩 표시 등 추가 필요시 여기에 작성
|
|
window.location.href = url;
|
|
}
|
|
|
|
// 문서 로딩 완료 시 초기화 함수 호출
|
|
init();
|
|
|
|
// 에러 처리를 위한 전역 에러 핸들러 추가
|
|
$(window).on("error", function(e) {
|
|
console.error("JavaScript 오류 발생:", e.originalEvent.message);
|
|
});
|
|
});
|