PageSourceSearch

https://sjfmc.or.kr/js/main-schedule.js

js sjfmc.or.kr collected 2026-10-05 03:21:11 UTC 4,554 bytes, 139 lines download raw bytes

1renderCalendarList();
2
3function renderCalendarList(sel_date){
4	$.ajax({
5	    url: "/schedule/ajaxCalendarList.do", 
6	    data: {
7	    	sel_date : sel_date
8	    },
9	    async: false,
10	    type: "GET", 
11	    success: function(result) { 
12	    	let info = JSON.parse(result);
13	    	/* 연도, 월, 이전/다음달 세팅 */
14	    	$('.month').text(info.calendar.now_year+". "+info.calendar.now_mon);
15	    	$('.calendar-schedule caption').text(info.calendar.now_year+". "+info.calendar.now_mon+" 서비스 캘린더 - 일, 월, 화, 수, 목, 금, 토");
16	    	
17	    	function scheduleFunction() {
18	    		
19	    		const $calendar = $('.fne__calendar-table-body');
20	    		const $calendarItem = $calendar.find('>div');
21	    		const $mobile = $('.fne__calendar-table-mobile');
22	    		const $mobileItem = $mobile.find('>div');
23	    		
24	    		const isNotSchedule = () => {
25	    		
26	    			$mobileItem.each(function(){
27	    				const $this = $(this);
28	    				const schedule = $this.find('.schedule-item');
29	    				
30	    				if(schedule.length > 0 === false) {
31	    					$this.remove();
32	    				}
33	    			})
34	    		}
35	    		
36	    		isNotSchedule();
37	    		
38	    		const scheduleCountConnection = () => {
39	    			let number;
40	    			
41	    			$mobileItem.each(function(){
42	    				const $this = $(this);
43	    				number = $this.find('.day').text();
44	    				
45	    				$this.attr('data-id',number)
46	    			})
47	    			
48	    			$calendarItem.each(function(){
49	    				const $this = $(this);
50	    				const schedule = $this.find('.schedule-wrapper');
51						number = $this.find('.day').text();
52						
53						$this.attr('data-target', number);
54						
55	    				if(schedule.length > 0) {
56	    					const total = schedule.length;
57	    					
58	    					$this.append(`<a href="#" class="schedule-count">${total}</a>`)
59	    				}
60	    				
61	    				const count = $this.find('.schedule-count');
62	    				
63    					count.on('click', function(e){
64    						e.preventDefault();
65    						
66    						const $that = $(this);
67    						const connected = $calendarItem.find('.day');
68    						const target = $that.parent().data('target');
69
70    						const connectResult = $mobileItem.filter(`[data-id="${target}"]`);
71
72    						$('.schedule-count').not($that).removeClass('active');
73    						$mobileItem.css({'display' : 'none'})
74    						$mobileItem.not(connectResult).removeClass('active')
75    						$that.toggleClass('active')
76    						connectResult.css({ 'display' : 'flex'}).siblings().css({'display':'none'})
77    						connectResult.toggleClass('active')
78    						
79    						if ($mobileItem.is('.active') === false) {
80    							$mobileItem.css('display', '')
81    						}
82    					})
83	    				
84	    			})
85	    		}
86
87	    		scheduleCountConnection();
88	    	}
89	    	/* 연도 및 월 세팅 */
90	    	
91	    	let cntDay = 1;
92	    	let cntDay2 = 1;
93	    	let endDay = info.calendar.end_day;
94	    	let calRow = Math.floor((info.calendar.last_mon + info.calendar.end_day - 1) / 7 + 1);  //6월 30일 표시안되서 -2를 -1로 수정
95	    	let lastDay = info.calendar.last_mon + 1; 
96	    	let listArea = document.getElementById("calendarBody");
97	    	listArea.innerHTML = ''; 
98	    	/* calendar 생성 */
99	    	for(let i = 0; i < calRow; i++){
100	    		let row = document.createElement('tr'); // 새로운 행(tr) 요소 생성
101	    	    listArea.appendChild(row); // 행을 listArea에 추가
102	    	    
103	    		for(let j = 0; j < 7; j++){
104	    			let cssSun = "";
105	    			let cssSat = "";
106	    			let cssToday = "";
107	    			let strDay = info.calendar.now_year +''+ info.calendar.now_mon +''+ numFormat(cntDay2);
108	    			let listDiv = document.createElement('td'); 
109	    			if(endDay < 1){
110	    				if(info.calendar.last_mon >= cntDay){
111	    					if(parseInt(info.calendar.now_day) == cntDay){
112	    						listDiv.insertAdjacentHTML("beforeend",`<span class='today' title='오늘'>${cntDay}</span>`);
113    						}else{
114    							listDiv.insertAdjacentHTML("beforeend",`<span>${cntDay}</span>`);
115    						}
116	    					listArea.appendChild(listDiv);
117	    				}else{
118	    					listDiv.classList.add('by-week');
119	    				}
120	    				cntDay = cntDay + 1;
121	    				cntDay2 = cntDay2 + 1;
122	    			}
123	    	        row.appendChild(listDiv); // 셀을 현재 행에 추가
124	    			//listArea.appendChild(listDiv);
125	    			endDay = endDay - 1; 
126	    		}
127	    	}
128	    	scheduleFunction();
129	    }, fail: function(result) {}
130	});
131}
132
133
134function numFormat(variable){
135	variable = Number(variable).toString();
136	if(Number(variable) < 10 && variable.length == 1)
137		variable = "0" + variable;
138	return variable;
139}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.