सदस्य:DreamRimmer/BlankUPage.js

मुक्त ज्ञानकोश विकिपीडिया से

सूचना: यह पृष्ठ सुरक्षित करने बाद, परिवर्तनों को देखने लिए ब्राउज़र का कैश ख़ाली करने की आवश्यकता हो सकती है।

  • मोज़िला / फ़ायरफ़ॉक्स / सफ़ारी: shift hold करें जब आप reload क्लिक करते है, या Ctrl-Shift-R (अपल मैक में Cmd-Shift-R) दबाएँ;
  • गूगल क्रोम: Ctrl-shift-R (मैक में Cmd-Shift-R) दबाएँ
  • इंटरनेट एक्सप्लोरर: Ctrl hold करें जब आप refresh क्लिक करते हैं, या Ctrl-F5 क्लिक करते हैं;
  • कॉङ्करर: सिर्फ़ Reload बटन पर क्लिक करें, या F5 क्लिक करें;
  • ऑपरा सदस्य को Tools→Preferences में सम्पूर्ण कैश ख़ाली करने की ज़रूरत हो सकती है।
// <nowiki>

var config = {};

$.when(
    mw.loader.using(['mediawiki.util', 'mediawiki.api']),
    $.ready
).then(function() {

    config.mw = mw.config.get([
        "wgPageName",
        "wgNamespaceNumber",
    ]);

    var API = new mw.Api({
        ajax: {
            headers: {
                "Api-User-Agent": "userPageBlanking"
            }
        }
    });

    var isUserPage = config.mw.wgNamespaceNumber === 2 || config.mw.wgNamespaceNumber === 3;
    if (isUserPage) {
        mw.util.addPortletLink('p-cactions', "#", 'पृष्ठ खाली', 'ca-blankUPage', "खाली करें", null, "#ca-move");
        $('#ca-blankUPage').on('click', function() {
            showBlankOptionsModal();
        });
        return;
    }

    function showBlankOptionsModal() {
        if ($('#blankOptionsModal').length > 0) {
            return;
        }

        var modalContent = `
            <div id="blankOptionsModal" class="modal" style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 600px; max-height: 80%; overflow-y: auto; border: 2px solid #ccc; border-radius: 10px; background-color: #eafafa;">
                <div class="modal-header" style="border-bottom: 1px solid #ccc; padding: 10px;">
                    <span class="close" style="float: right; cursor: pointer;">&times;</span>
                    <h2 style="margin: 0; display: inline;">पृष्ठ खाली</h2><span style="font-size: 0.9em; margin-left: 6px;">v2.0</span>
                </div>
                <div class="modal-body" style="border-bottom: 1px solid #ccc; padding: 10px;">
                    <label for="blankReasonInput" style="margin-bottom: 15px;">पृष्ठ खाली करने का कारण:</label>
                    <br>
                    <input type="text" id="blankReasonInput" style="width: 99%; height: 50px; margin-bottom: 10px;" value="खाली किया गया, कृपया [[वि:सपृ]] देखे">
                </div>
                <div class="modal-footer" style="padding: 10px; text-align: right;">
                    <button id="blankButton" style="background-color: #007bff; color: #fff; border: none; padding: 10px 15px; border-radius: 5px; cursor: pointer;">खाली करें</button>
                </div>
            </div>
        `;

        $('body').append(modalContent);

        var modal = document.getElementById("blankOptionsModal");
        var btn = document.getElementById("ca-blankUPage");
        var span = document.getElementsByClassName("close")[0];

        btn.onclick = function() {
            modal.style.display = "block";
        }

        span.onclick = function() {
            modal.style.display = "none";
        }

        window.onclick = function(event) {
            if (event.target == modal) {
                modal.style.display = "none";
            }
        }

        $('#blankButton').on('click', function() {
            console.log("Blank button clicked"); // Debugging line
            var blankReason = $('#blankReasonInput').val();
            console.log("Blanking reason:", blankReason); // Debugging line
            blankUserPageWithoutReplacement(config.mw.wgPageName, blankReason);
            modal.style.display = "none";
        });
    }

    function blankUserPageWithoutReplacement(userPage, reason) {
        console.log("Blanking user page:", userPage); // Debugging line
        var queryParams = {
            action: "edit",
            text: "",
            summary: "[[सदस्य:DreamRimmer/BlankUPage.js|BlankUPage 2.0]] की सहायता से " + reason,
            nocreate: true,
            title: userPage
        };

        API.postWithToken("csrf", queryParams).then(function() {
            location.reload(); 
        });
    }
});


// </nowiki>