/** * 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); }); });