<?php if($is_checkbox) { ?>
<noscript>
<p>자바스크립트를 사용하지 않는 경우<br>별도의 확인 절차 없이 바로 선택삭제 처리하므로 주의하시기 바랍니다.</p>
</noscript>
<?php } ?>
<?php if ($is_checkbox) { ?>
<script>
function all_checked(sw) {
var f = document.fboardlist;
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_wr_id[]")
f.elements[i].checked = sw;
}
}
function fboardlist_submit(f) {
var chk_count = 0;
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_wr_id[]" && f.elements[i].checked)
chk_count++;
}
if (!chk_count) {
alert(document.pressed + "할 게시물을 하나 이상 선택하세요.");
return false;
}
if(document.pressed == "선택복사") {
select_copy("copy");
return;
}
if(document.pressed == "선택이동") {
select_copy("move");
return;
}
if(document.pressed == "선택삭제") {
if (!confirm("선택한 게시물을 정말 삭제하시겠습니까?\n\n한번 삭제한 자료는 복구할 수 없습니다\n\n답변글이 있는 게시글을 선택하신 경우\n답변글도 선택하셔야 게시글이 삭제됩니다."))
return false;
f.removeAttribute("target");
f.action = g5_bbs_url+"/board_list_update.php";
}
return true;
}
// 선택한 게시물 복사 및 이동
function select_copy(sw) {
var f = document.fboardlist;
if (sw == "copy")
str = "복사";
else
str = "이동";
var sub_win = window.open("", "move", "left=50, top=50, width=500, height=550, scrollbars=1");
f.sw.value = sw;
f.target = "move";
f.action = g5_bbs_url+"/move.php";
f.submit();
}
// 게시판 리스트 관리자 옵션
jQuery(function($){
$(".btn_more_opt.is_list_btn").on("click", function(e) {
e.stopPropagation();
$(".more_opt.is_list_btn").toggle();
});
$(document).on("click", function (e) {
if(!$(e.target).closest('.is_list_btn').length) {
$(".more_opt.is_list_btn").hide();
}
});
});
</script>
<?php } ?>
<script>
let page = 1;
let loading = false;
let is_end = false;
let search_timer;
function load_list_ajax(reset = false) {
if(reset) {
page = 1;
is_end = false;
$('#board-list-body').html('');
}
if(loading || is_end) return;
loading = true;
$('#list_loader').show();
let stx_val = $('#live_search').val();
$.ajax({
url: '<?php echo $board_skin_url ?>/ajax.list.php',
type: 'GET',
data: {
bo_table: '<?php echo $bo_table ?>',
page: page,
s_ca2: '<?php echo $s_ca2 ?>',
s_ca3: '<?php echo $s_ca3 ?>',
s_ca4: '<?php echo $s_ca4 ?>',
is_ing: '<?php echo $is_ing ?>',
is_project: '<?php echo $is_project ?>',
is_label: '<?php echo $is_label ?>',
stx: stx_val
},
success: function(data) {
if(data.trim() == '') {
if(page == 1) $('#board-list-body').html('<tr><td colspan="3" class="no-signal">No signals detected.</td></tr>');
is_end = true;
} else {
$('#board-list-body').append(data);
page++;
}
},
error: function() {
loading = false;
$('#list_loader').hide();
},
complete: function() {
loading = false;
$('#list_loader').hide();
}
});
}
$(function() {
const panelStateKey = 'workMemoPanelOpen';
const panelLayoutKey = 'workMemoPanelLayout';
const $spaceWrap = $('#SPACE_WRAP');
const $memoPanel = $('#memo_side_panel');
const $memoToggleBtn = $('#memoPanelToggleBtn');
const $memoCloseBtn = $('#memoPanelCloseBtn');
const $memoCardList = $('#memoCardList');
const $memoLayoutToggle = $('#memoLayoutToggle');
function setMemoPanelState(isOpen) {
if (!$memoPanel.length) return;
$memoPanel.toggleClass('open', isOpen).attr('aria-hidden', isOpen ? 'false' : 'true');
$spaceWrap.toggleClass('memo-open', isOpen);
$memoToggleBtn.toggleClass('active', isOpen);
localStorage.setItem(panelStateKey, isOpen ? '1' : '0');
}
function setMemoLayout(layout) {
if (!$memoCardList.length) return;
const nextLayout = layout === '2' ? '2' : '1';
$memoCardList.removeClass('layout-1 layout-2').addClass('layout-' + nextLayout);
$memoLayoutToggle.toggleClass('is-layout-2', nextLayout === '2').attr('aria-pressed', nextLayout === '2' ? 'true' : 'false');
localStorage.setItem(panelLayoutKey, nextLayout);
updateMemoScrollState();
}
function updateMemoScrollState() {
if (!$memoCardList.length) return;
const hasScroll = $memoCardList[0].scrollHeight > $memoCardList[0].clientHeight + 1;
$memoCardList.toggleClass('has-scroll', hasScroll);
}
if ($memoPanel.length) {
const savedOpen = localStorage.getItem(panelStateKey) === '1';
const savedLayout = localStorage.getItem(panelLayoutKey) || '1';
setMemoPanelState(savedOpen);
setMemoLayout(savedLayout);
$memoToggleBtn.on('click', function() {
setMemoPanelState(!$memoPanel.hasClass('open'));
});
$memoCloseBtn.on('click', function() {
setMemoPanelState(false);
});
$memoLayoutToggle.on('click', function() {
const currentLayout = $memoCardList.hasClass('layout-2') ? '2' : '1';
const nextLayout = currentLayout === '1' ? '2' : '1';
setMemoLayout(nextLayout);
});
setTimeout(updateMemoScrollState, 0);
$(window).on('resize', updateMemoScrollState);
}
load_list_ajax();
$(window).on('scroll', function() {
if ($(window).scrollTop() + $(window).height() > $(document).height() - 250) {
load_list_ajax();
}
});
$('#live_search').on('keyup', function() {
clearTimeout(search_timer);
search_timer = setTimeout(function() {
load_list_ajax(true);
}, 500);
});
$('#SCH').on('click', function(e) {
if(e.target == this) $(this).fadeOut();
});
});
// 프로젝트 섹션 토글 및 상태 저장
function toggleLinks() {
$('#project-section').slideToggle(300, function() {
localStorage.setItem('project_section_open', $(this).is(':visible') ? '1' : '0');
});
}
// 페이지 로드 시 마지막 상태 복원
$(function() {
var saved = localStorage.getItem('project_section_open');
if (saved === '0') {
$('#project-section').hide();
}
});
function bmToggle() {
$('#bm-bar').slideToggle(300, function() {
localStorage.setItem('bm_open', $(this).is(':visible') ? '1' : '0');
});
}
if (localStorage.getItem('bm_open') === '1') {
document.getElementById('bm-bar').style.display = 'block';
}
</script>