다모앙 임시 저장글 목록에 모두 삭제 버튼 추가 (tampermonkey)
알림
|
페이지 정보
작성일
2024.08.23 09:08
본문
tampermonkey 스크립트이므로 해당 확장이 필요합니다.
: https://chromewebstore.google.com/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo
기능 소개:
1. 임시 저장글 목록에 모두 삭제 버튼을 추가합니다. 끝.
소스코드는 댓글에..
댓글 3
/ 1 페이지
커널패닉님의 댓글
글제목 텍스트 필드에 값이 입력되어 있을경우, 예기치 못하게 글을 등록하는 문제가 있어 살짝 수정해 봤습니다.
deleteAllAutosave 함수에 아래 코드를 추가하면 위 문제는 해결될 것 같습니다.
deleteAllAutosave 함수에 아래 코드를 추가하면 위 문제는 해결될 것 같습니다.
const deleteAllAutosave = () => {
const subject_ID = document.getElementById('wr_subject').value; // 글제목 텍스트 필드에 입력된 값 추출
const g5_bbs_url = window.g5_bbs_url || 'https://www.damoang.net/bbs';
const autosaveListUrl = g5_bbs_url + '/ajax.autosavelist.php';
// 글제목에 어떠한 텍스트를 입력했다면...
if(subject_ID) {
if(window.confirm('계속 진행할 경우 현재 편집중인 게시글 "' + subject_ID + '"가 즉시 등록됩니다!\n중단하시겠습니까?')) {
window.location.href = "https://damoang.net"
return false;
}
}
// 임시 저장글 목록을 가져옴
/* 생략 */
LiNE님의 댓글
// @name 다모앙 임시저장글 모두 삭제 버튼 추가
// @namespace http://tampermonkey.net/
// @version 1.0
// @description 임시 저장글 목록에 "모두 삭제" 버튼을 추가합니다.
// @author LiNE
// @match https://damoang.net/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// "임시 저장글 목록" 옆에 "모두 삭제" 버튼 추가
const addDeleteAllButton = () => {
const closeButton = document.querySelector('.btn-close[data-bs-dismiss="offcanvas"]');
if (closeButton && !document.getElementById('deleteAllBtn')) {
const deleteAllBtn = document.createElement('button');
deleteAllBtn.textContent = '모두 삭제';
deleteAllBtn.id = 'deleteAllBtn';
deleteAllBtn.classList.add('btn', 'btn-danger', 'btn-sm', 'nofocus');
deleteAllBtn.style.marginLeft = '10px';
deleteAllBtn.addEventListener('click', deleteAllAutosave);
// "모두 삭제" 버튼을 X 버튼 왼쪽에 삽입
closeButton.parentNode.insertBefore(deleteAllBtn, closeButton);
}
};
// 모든 임시 저장글 삭제 함수
const deleteAllAutosave = () => {
const g5_bbs_url = window.g5_bbs_url || 'https://www.damoang.net/bbs';
const autosaveListUrl = g5_bbs_url + '/ajax.autosavelist.php';
// 임시 저장글 목록을 가져옴
$.get(autosaveListUrl, function(data) {
const items = $(data).find('item');
if (items.length === 0) {
alert('삭제할 임시 저장글이 없습니다.');
return;
}
items.each(function(index) {
const as_id = $(this).find('id').text();
// 각 항목 삭제 요청
$.get(g5_bbs_url + "/ajax.autosavedel.php", {"as_id": as_id}, function(data) {
if (data != -1) {
console.log(`삭제 완료: ${as_id}`);
} else {
alert('임시 저장된글을 삭제하는 중에 오류가 발생하였습니다.');
}
// 마지막 항목 삭제 후 새로고침
if (index === items.length - 1) {
setTimeout(() => {
location.reload();
}, 500);
}
});
});
}, 'xml');
};
// 페이지 로드 후 "모두 삭제" 버튼 추가
const init = () => {
const observer = new MutationObserver(() => {
if (document.querySelector('#autoSaveLabel')) {
addDeleteAllButton();
observer.disconnect();
}
});
observer.observe(document.body, { childList: true, subtree: true });
};
window.addEventListener('load', init);
})();