1$(document).ready(function() { 2 // íì ì°½ ì´ë²¤í¸ 3 $('.add-depth').on('click', function (e) { 4 e.preventDefault(); 5 6 const $pop = $(this).closest('.modal').find('.province-pop'); 7 8 const buttonOffset = $(this).offset(); 9 const buttonHeight = $(this).outerHeight(); 10 11 $('.add-depth').not(this).removeClass('on'); 12 $('.province-pop').not($pop).hide(); 13 14 if ($pop.is(':visible')) { 15 $pop.hide(); 16 } else { 17 $pop.show(); 18 var popWidth = $pop.outerWidth(); 19 var leftPosition = buttonOffset.left + 4; 20 21 // íì ì´ íë©´ ì¤ë¥¸ìª½ì ë²ì´ëë ê²½ì° ì¤ë¥¸ìª½ì¼ë¡ ìì¹ ì¡°ì 22 if (leftPosition + popWidth > $(window).width()) { 23 leftPosition = buttonOffset.left - popWidth + 8; 24 } 25 26 $pop.css({ 27 display: 'grid', 28 position: 'absolute', 29 top: buttonOffset.top + buttonHeight + 4, 30 left: leftPosition 31 }).show(); 32 33 $(this).addClass('on'); 34 } 35 }); 36 37 // íë©´ ì¸ë¶ í´ë¦ ì íì ì¨ê¹ ì²ë¦¬ 38 $(document).on('click', function (e) { 39 if (!$(e.target).closest('.province-pop, .add-depth').length) { 40 $('.province-pop').hide(); 41 $('.add-depth').removeClass('on'); 42 } 43 }); 44 45// ì¸ë¡ ì¬ ì í ì´ë²¤í¸ 46const mySlList = document.getElementById('ds-modal').querySelector('.sl-item-wrap'); 47const mySlList2 = document.getElementById('media-modal').querySelector('.sl-item-wrap'); 48/* 49document.querySelector('.meida-list-con').addEventListener('change', function (event) { 50 const checkbox = event.target; 51 52 // ì²´í¬ë°ì¤ê° í´ë¦ë ê²½ì° 53 if (checkbox.type === 'checkbox') { 54 const label = checkbox.nextElementSibling; 55 const labelText = label.querySelector('img').getAttribute('alt'); // ì íë ì¸ë¡ ì¬ ì´ë¦ 56 57 // ì´ë¯¸ ì íë í목ì¸ì§ íì¸ 58 const existingItem = [...mySlList.children].find(item => item.querySelector('.sl-value').textContent === labelText); 59 60 if (checkbox.checked) { 61 if (existingItem) { 62 alert('ì´ë¯¸ ì íë í목ì ëë¤.'); 63 checkbox.checked = false; 64 return; 65 } 66 67 const slItem = document.createElement('button'); 68 slItem.type = 'button'; 69 slItem.className = 'sl-item'; 70 71 const slValue = document.createElement('span'); 72 slValue.className = 'sl-value'; 73 slValue.textContent = labelText || 'ì íë í목'; 74 75 // ì´ë¯¸ì§ ìì ìì´ì½ ì¶ê° 76 const deleteIcon = document.createElement('span'); 77 deleteIcon.className = 'sl-del fn-center'; 78 79 const deleteImg = document.createElement('img'); 80 deleteImg.src = '../resources/img/icon/close.svg'; 81 deleteImg.style.minWidth = '8px'; 82 deleteImg.style.width = '8px'; 83 deleteImg.alt = 'ìì '; // alt ìì± ì¶ê° 84 85 deleteIcon.appendChild(deleteImg); // ì´ë¯¸ì§ê° ìì ìì´ì½ì ê°ì¸ëë¡ 86 87 // ìì ë²í¼ ì´ë²¤í¸ 88 slItem.addEventListener('click', function () { 89 slItem.remove(); 90 checkbox.checked = false; 91 if (mySlList.children.length === 0) { 92 mySlList.parentElement.classList.remove('on'); 93 } 94 }); 95 96 slItem.append(slValue, deleteIcon); 97 mySlList.append(slItem); // .my-sl-listì ì¶ê° 98 99 mySlList.parentElement.classList.add('on'); 100 } else { 101 // ì²´í¬ë°ì¤ê° í´ì ë ê²½ì°, í´ë¹ í목 ìì 102 if (existingItem) { 103 existingItem.remove(); 104 } 105 // .my-sl-listì .sl-itemì´ ìì¼ë©´ 'on' í´ëì¤ ì ê±° 106 if (mySlList.children.length === 0) { 107 mySlList.parentElement.classList.remove('on'); 108 } 109 } 110 } 111}); 112*/ 113document.querySelectorAll('.favorite').forEach((button) => { 114 button.addEventListener('click', function() { 115 const li = this.closest('li'); 116 const imgAlt = li.querySelector('.attr-img')?.getAttribute('alt'); 117 118 const existingItem = [...mySlList2.children].find( 119 (item) => item.querySelector('.sl-value').textContent === imgAlt 120 ); 121 122 // 'on' í´ëì¤ í ê¸ 123 li.classList.toggle('on'); 124 125 // 'on' í´ëì¤ ì ê±° ì, í´ë¹ í목 ìì 126 if (!li.classList.contains('on') && existingItem) { 127 existingItem.remove(); 128 } 129 130 // 'on' í´ëì¤ ì¶ê° ì, ìë¡ì´ í목 ìì± 131 if (li.classList.contains('on')) { 132 const slItem = document.createElement('button'); 133 slItem.type = 'button'; 134 slItem.className = 'sl-item'; 135 136 const slValue = document.createElement('span'); 137 slValue.className = 'sl-value'; 138 slValue.textContent = imgAlt; 139 140 const deleteIcon = document.createElement('span'); 141 deleteIcon.className = 'sl-del fn-center'; 142 143 const deleteImg = document.createElement('img'); 144 deleteImg.src = '/assets_2024/img/icon/close.svg'; 145 deleteImg.style.minWidth = '8px'; 146 deleteImg.style.width = '8px'; 147 deleteImg.alt = 'ìì '; 148 149 // ìì ë²í¼ ì´ë²¤í¸ ì¶ê° 150 deleteIcon.appendChild(deleteImg); 151 slItem.append(slValue, deleteIcon); 152 153 slItem.addEventListener('click', function () { 154 slItem.remove(); 155 li.classList.remove('on'); 156 updateButtonState(); 157 }); 158 159 mySlList2.appendChild(slItem); 160 mySlList2.parentElement.classList.add('on'); 161 } 162 163 // ë²í¼ ìí ì ë°ì´í¸ 164 updateButtonState(); 165 }); 166}); 167 168 169 170 171 172$(document).on('click', '#ig-sd-btn', function(){ 173 $('#ds-modal').addClass('in'); 174 $('body').css('overflow','hidden'); 175 $.fn.fullpage.setAllowScrolling(false); 176 $.fn.fullpage.setKeyboardScrolling(false); 177 }); 178 179$(document).on('click', '.issupop-btn', function(){ 180 $('#issuPop').addClass('in'); 181 $('body').css('overflow','hidden'); 182 $.fn.fullpage.setAllowScrolling(false); 183 $.fn.fullpage.setKeyboardScrolling(false); 184 }); 185 186 187 188 $('.modal .close').on('click',function(){ 189 $(this).closest('.modal').removeClass('in'); 190 $('body').css('overflow','initial'); 191 $.fn.fullpage.setAllowScrolling(true); 192 $.fn.fullpage.setKeyboardScrolling(true); 193 }); 194 195$('.mysetting-btn').on('click',function(){ 196 $('#my-keyword-modal').addClass('in'); 197 $.fn.fullpage.setAllowScrolling(false); 198 $.fn.fullpage.setKeyboardScrolling(false); 199}); 200 201 $('.modal .close2').on('click',function(){ 202 $(this).closest('.modal').removeClass('in'); 203 }); 204 205 206/** 207 ì¸ë¡ ì¬ ì¦ê²¨ì°¾ê¸° - modal show event 208 */ 209$(document).on('click', '.mda-add-btn', function() { 210 const ulList = $('#media-modal ul.meida-list-con'); 211 const preferList = window.localStorage.getItem('preferProviderList'); 212 let preferArr; 213 214 if(preferList) { 215 if(preferList.indexOf(',') > -1) { 216 preferArr = preferList.split(','); 217 } else { 218 preferArr = [preferList]; 219 } 220 } 221 // 기존 ì¦ì°¾ ì´ê¸°í 222 $('#media-modal .reset-btn').click(); 223 //ulList.children('li').removeClass('on'); 224 225 if(preferArr) { 226 $(mySlList2).children().remove(); 227 for(const pref of preferArr) { 228 const li = ulList.find(`li[data-provider-code="${pref}"]`);
229 const imgAlt = li.find('.attr-img').attr('alt'); 230 const slItem = $('<button>').attr('type', 'button').addClass('sl-item'); 231 const slValue = $('<span>').addClass('sl-value').text(imgAlt); 232 const deleteIcon = $('<span>').addClass('sl-del fn-center'); 233 const deleteImg = $('<img>').attr('src', '/assets_2024/img/icon/close.svg').attr('alt', 'ìì ').css({minWidth: '8px', width: '8px'}); 234 235 li.addClass('on'); 236 // ëª¨ë¬ íë¨ ìì ë²í¼ ì¶ê° 237 deleteIcon.append(deleteImg); 238 slItem.append(slValue, deleteIcon); 239 240 slItem.on('click', function () { 241 slItem.remove(); 242 li.removeClass('on'); 243 updateButtonState(); 244 }); 245 246 $(mySlList2).append(slItem); 247 $(mySlList2).parent().addClass('on'); 248 } 249 } 250 updateButtonState(); 251 252 $('#media-modal').addClass('in'); 253 $('#media-modal').modal('show'); 254 $.fn.fullpage.setAllowScrolling(false); 255 $.fn.fullpage.setKeyboardScrolling(false); 256}); 257 258$('.news-item').on('click',function(){ 259 $('.news-item').removeClass('on'); 260 $(this).addClass('on'); 261}); 262 263 264const $tabs = $('.tab-btn'); 265const $horiz = $('.horiz'); 266const $contents = $('.ds-tab-con'); 267 268$tabs.on('click', function (event) { 269 event.preventDefault(); // 기본 ëì ë§ê¸° 270 271 const $tab = $(this); // íì¬ í´ë¦ë í 272 const tabRect = $tab[0].getBoundingClientRect(); // í´ë¦ë íì ìì¹ì í¬ê¸° 273 const parentRect = $tab.parent().parent()[0].getBoundingClientRect(); // ë¶ëª¨ 컨í ì´ë ê¸°ì¤ ìì¹ 274 275 // horiz ì´ë 276 $horiz.css({ 277 width: `${tabRect.width}px`, 278 left: `${tabRect.left - parentRect.left}px`, 279 }); 280 281 // íì¬ íì± í ìí ì ë°ì´í¸ 282 $tabs.parent().removeClass('on'); // 모ë íìì í´ëì¤ ì ê±° 283 $tab.parent().addClass('on'); // íì¬ íì í´ëì¤ ì¶ê° 284 285 const index = $tabs.index($tab); 286 $contents.removeClass('open'); 287 $contents.eq(index).addClass('open'); 288 289}); 290 291 292const $slItemWrap = $('.sl-item-wrap'); 293 294let isMouseDown = false; 295let startX; 296let scrollLeft; 297 298// ë§ì°ì¤ í´ë¦ ì 299$slItemWrap.on('mousedown', function (e) { 300 isMouseDown = true; 301 startX = e.pageX - $slItemWrap.offset().left; 302 scrollLeft = $slItemWrap.scrollLeft(); 303}); 304 305// ë§ì°ì¤ ì´ë ì 306$slItemWrap.on('mousemove', function (e) { 307 if (!isMouseDown) return; 308 e.preventDefault(); 309 const x = e.pageX - $slItemWrap.offset().left; 310 const walk = (x - startX) * 2; // ëëê·¸ ìë ì¡°ì (ì¬ê¸°ìë 2ë°° ìë) 311 $slItemWrap.scrollLeft(scrollLeft - walk); 312}); 313 314// ë§ì°ì¤ ë²í¼ í´ì ì 315$slItemWrap.on('mouseup', function () { 316 isMouseDown = false; 317}); 318 319// í°ì¹ ì´ë²¤í¸ ì²ë¦¬ 320$slItemWrap.on('touchstart', function (e) { 321 isMouseDown = true; 322 startX = e.touches[0].pageX - $slItemWrap.offset().left; 323 scrollLeft = $slItemWrap.scrollLeft(); 324}); 325 326$slItemWrap.on('touchmove', function (e) { 327 if (!isMouseDown) return; 328 e.preventDefault(); 329 const x = e.touches[0].pageX - $slItemWrap.offset().left; 330 const walk = (x - startX) * 2; 331 $slItemWrap.scrollLeft(scrollLeft - walk); 332}); 333 334$slItemWrap.on('touchend', function () { 335 isMouseDown = false; 336}); 337 338 339$('.st3-head .tab-2depth a').click(function(e) { 340 e.preventDefault(); 341 342 $(this).closest('.st3-head').find('.tab-2depth a').removeClass('on'); 343 $(this).addClass('on'); 344}); 345 346 347 348const $se2Tabs = $('.noticetab-btn'); 349const $horizontality = $('.horizontality'); 350const $se2Inner = $('.se2-inner-con'); 351 352$se2Tabs.on('click', function (event) { 353 event.preventDefault(); // 기본 ëì ë§ê¸° 354 355 const $tab = $(this); // íì¬ í´ë¦ë í 356 const tabRect = $tab[0].getBoundingClientRect(); 357 const parentRect = $tab.parent().parent()[0].getBoundingClientRect(); // ë¶ëª¨ 컨í ì´ë ê¸°ì¤ ìì¹ 358 359 $horizontality.css({ 360 width: `${tabRect.width}px`, 361 left: `${tabRect.left - parentRect.left}px`, 362 }); 363 364 // íì¬ íì± í ìí ì ë°ì´í¸ 365 $se2Tabs.removeClass('active'); 366 $tab.addClass('active'); 367 368 const index = $se2Tabs.index($tab); 369 $se2Inner.removeClass('open'); 370 $se2Inner.eq(index).addClass('open'); 371 372}); 373 374 375}); 376 377document.addEventListener('DOMContentLoaded', () => { 378 // í¬ì»¤ì¤ ê°ë¥í div ìì를 ì í 379 document.querySelectorAll('.bk-2depth > div[tabindex="0"]').forEach(div => { 380 div.addEventListener('keydown', event => { 381 if (event.key === 'Enter') { 382 const radioId = div.getAttribute('data-radio');
382 // ì°ê²°ë radioì ID ê°ì ¸ì¤ê¸° 383 const radioInput = document.getElementById(radioId); 384 385 if (radioInput && radioInput.type === 'radio') { 386 radioInput.checked = true; // ë¼ëì¤ ë²í¼ íì±í 387 radioInput.click(); // onclick ì´ë²¤í¸ í¸ë¦¬ê±° 388 } 389 } 390 }); 391 }); 392}); 393 394 395 396 397// ê²ììì ì´ë²¤í¸ë°ì 398document.addEventListener('DOMContentLoaded', () => { 399 const edTextarea = document.querySelector('.editable'); 400 const sendSvg = document.querySelector('.send-btn svg path'); 401 402 if(edTextarea) { 403 edTextarea.addEventListener('focus', () => { 404 // í¬ì»¤ì¤ê° ëìì ë 405 }); 406 407 edTextarea.addEventListener('blur', () => { 408 // í¬ì»¤ì¤ê° í´ì ëìì ë 409 if (edTextarea.value.trim() === '') { 410 } 411 }); 412 413 edTextarea.addEventListener('input', () => { 414 // í ì¤í¸ ì ë ¥ ì 415 if (edTextarea.value.trim() !== '') { 416 sendSvg.style.fill = 'var(--primary)'; 417 418 } else { 419 sendSvg.style.fill = ''; 420 } 421 }); 422 } 423 424}); 425 426// ì±í 5ë² ì´ê³¼ë¬ìë disabled ì²ë¦¬ 427 428document.addEventListener('DOMContentLoaded', function () { 429 const camTextarea = document.getElementById('cam-textarea'); 430 const chatSearch = document.getElementById('chat-search'); 431 const Switch = document.getElementById('switch'); 432 const Button = document.querySelector('.media-sl-btn'); 433 const fileBtn = document.querySelector('.file-add'); 434 let enterCount = 0; 435 436 if(camTextarea) { 437 camTextarea.addEventListener('keydown', function (e) { 438 // Enter í¤ì¸ì§ íì¸ 439 if (e.key === 'Enter') { 440 enterCount++; 441 } 442 443 // Enter í¤ê° 5í를 ì´ê³¼íë©´ í´ëì¤ ì¶ê° 444 if (enterCount > 5) { 445 camTextarea.disabled = true; 446 camTextarea.placeholder = 'ë¡ê·¸ì¸ì íìë©´ ê³ì ì§ë¬¸íì¤ ì ììµëë¤.'; 447 chatSearch.classList.add('disabled'); 448 Switch.checked = false; 449 Button.disabled = true; 450 fileBtn.disabled = true; 451 } 452 }); 453 454 // ì íì ì¼ë¡ Enter íì ì´ê¸°í ê¸°ë¥ 455 camTextarea.addEventListener('input', function () { 456 }); 457 } 458}); 459 460 461$(function() { 462 // ì¸ë¡ ì¬ë³ ì¦ê²¨ì°¾ê¸° - ì´ê¸°í ë²í¼ í´ë¦ ì´ë²¤í¸ 463 $('#media-modal .reset-btn').on('click', function(e) { 464 e.preventDefault(); 465 466 const mySlList2 = $('#media-modal .sl-item-wrap'); 467 468 mySlList2.children().remove(); 469 mySlList2.parent().removeClass('on'); 470 471 $('#media-modal .meida-list-con').children().removeClass('on'); 472 473 // ì íí ì¸ë¡ ì¬ ê°ì ë³ê²½ 474 updateButtonState(); 475 }); 476 477 // ì¸ë¡ ì¬ë³ ì¦ê²¨ì°¾ê¸° - ì¸ë¡ ì¬ ì í ë²í¼ í´ë¦ ì´ë²¤í¸ 478 $('#media-modal .apply-btn').on('click', function(e) { 479 e.preventDefault(); 480 saveUserCustom(); 481 }); 482}); 483 484/** 485 ì¸ë¡ ì¬ ì¦ê²¨ì°¾ê¸° - ì´ê¸°í, ë±ë¡ ë²í¼ ìí ìµì í 486 */ 487function updateButtonState() { 488 // liì 'on' í´ëì¤ê° íëë¼ë ìì¼ë©´ ë²í¼ íì±í, ìì¼ë©´ ë¹íì±í 489 const mySlList2 = document.getElementById('media-modal').querySelector('.sl-item-wrap'); 490 const modalButtons = document.getElementById('media-modal').querySelectorAll('.modal-btn-wrap button'); 491 const hasOnClass = document.getElementById('media-modal').querySelectorAll('li.on').length > 0; 492 493 modalButtons.forEach((button) => { 494 // 'on' í´ëì¤ê° íëë¼ë ìì¼ë©´ ë²í¼ì íì±í (disabled = false) 495 // 'on' í´ëì¤ê° íëë ìì¼ë©´ ë²í¼ì ë¹íì±í (disabled = true) 496 button.disabled = !hasOnClass; 497 }); 498 499 if (mySlList2.querySelectorAll('.sl-item').length === 0) { 500 mySlList2.parentElement.classList.remove('on'); 501 } 502 503 // ì íí ì¸ë¡ ì¬ ê°ì ë³ê²½ 504 document.querySelector('.data-num').innerHTML = mySlList2.querySelectorAll('.sl-item').length; 505} 506 507/** 508 ì¸ë¡ ì¬ ì¦ê²¨ì°¾ê¸° - save event 509 */ 510function saveUserCustom(){ 511 const account = authManager.account; 512 513 if(account != null){ 514 const $loading = $('.mainSection.sec_two .loading2'); 515 const preferLi = $('#media-modal .meida-list-con').find('li.on'); 516 let preferProviderList = []; 517 518 preferLi.each(function() { 519 preferProviderList.push($(this).attr('data-provider-code')); 520 }); 521 522 window.localStorage.setItem("preferProviderList", preferProviderList); 523 524 var param = { 525 userSn: account.userSn.toString(), 526 fastMenu: window.localStorage.getItem("fastMenuCheckedList"), 527 preferProvider: window.localStorage.getItem("preferProviderList") 528 }; 529 530 $.ajax({
531 url: "/api/account/saveUserCustomize.do", 532 type: "POST", 533 contentType: "application/json", 534 data: JSON.stringify(param), 535 dataType: "json", 536 beforeSend: function() { 537 $loading.show(); 538 }, 539 success: function(data) { 540 showPreferNews(); 541 542 $('#media-modal').removeClass('in'); 543 $('#media-modal').modal('hide'); 544 $.fn.fullpage.setAllowScrolling(true); 545 $.fn.fullpage.setKeyboardScrolling(true); 546 547 openAlertPop({ 548 text: 'ì¦ê²¨ì°¾ê¸° ì¸ë¡ ì¬ê° ì¤ì ëììµëë¤.', 549 img: 'success', 550 showButtons: { 551 cancel: false, // ì·¨ì ë²í¼ 552 confirm: true // íì¸ ë²í¼ 553 } 554 }); 555 }, 556 complete: function() { 557 $loading.hide(); 558 }, 559 error: function(xhr, status, error) { 560 console.error(error); 561 } 562 }); 563 }else{ 564 openAlertPop({ 565 text: 'ë¡ê·¸ì¸ í ì¬ì©í´ 주ì¸ì.', 566 img: 'warning', 567 showButtons: { 568 cancel: false, // ì·¨ì ë²í¼ 569 confirm: true // íì¸ ë²í¼ 570 } 571 }); 572 } 573}
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.