다모앙
다모앙 임시 저장글 목록에 모두 삭제 버튼 추가 (tampermonkey)
LiNE

Lv.1 LiNE (210.♡.102.188)

2024년 8월 23일 AM 09:08 · 수정됨(10. 24. 23:57)

조회 657 공감 0

tampermonkey 스크립트이므로 해당 확장이 필요합니다.

 : https://chromewebstore.google.com/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo


기능 소개:

1. 임시 저장글 목록에 모두 삭제 버튼을 추가합니다. 끝.



소스코드는 댓글에..


댓글 (3)

  • LiNE

    LiNE Lv.1 작성자

    24.08.23 · 210.♡.102.188

    // ==UserScript==
    // @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);
    })();
  • 컨텍스트 Lv.1

    24.08.24 · 125.♡.41.31

    깃허브 코드스니펫으로 남기시는 것도~
  • 커널패닉

    커널패닉 Lv.1

    24.10.24 · 119.♡.59.225

    글제목 텍스트 필드에 값이 입력되어 있을경우, 예기치 못하게 글을 등록하는 문제가 있어 살짝 수정해 봤습니다.
    deleteAllAutosave 함수에 아래 코드를 추가하면 위 문제는 해결될 것 같습니다.

    [code=javascript]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;
    }
    }

    // 임시 저장글 목록을 가져옴
    /* 생략 */[/code]

댓글을 작성하려면 이 필요합니다.