بەکارھێنەر:Épine/communicator.js

لە ئینسایکڵۆپیدیای ئازادی ویکیپیدیاوە
تێبینی: دوای پاشەکەوتکردن، پێویستە کاشی وێبگەڕەکەت پاک بکەیتەوە تا گۆڕانکارییەکان ببینیت. بۆ گووگڵ کڕۆم، فایەرفۆکس، مایکرۆسۆفت ئێج و سافاری: پەنجە لەسەر دوگمەی ⇧ Shift ڕاگرە و کرتە لەسەر Reload بکە. بۆ وردەکاری و ڕێنمایییەکان لەسەر وێبگەڕەکانی تر، بڕوانە ئێرە.
//stolen from user:FR30799386 on the en wiki
//this script breaks the refToolbar.js tool
// ئەم دەقە ئامرازی ژێدەردان دەشکێنێت
//<nowiki>
$.when(mw.loader.using(['mediawiki.util']), $.ready).then(function() {
    if (mw.config.get('wgNamespaceNumber') < 0) //don't load when on special pages
    {
        return;
    }
    var music = function(clickEvent) {
        if (clickEvent) {
            clickEvent.preventDefault();
        }
        if (window.Morebits === null) {
            importScript('MediaWiki:Gadget-morebits.js');
        }
        var page = new Morebits.wiki.page(mw.config.get('wgPageName'));
        var check = page.lookupCreator(function(page) {
            var guy = page.getCreator();
            var preload;
            if (mw.storage.get('postCreator') !== null) {
                preload = mw.storage.get('postCreator');
            } else {
                preload = '==[[' + mw.config.get('wgPageName') + ']]==\nسڵاو، من ' + mw.config.get('wgUserName') + 'م.هەستم کرد کە پەڕەی [[' + mw.config.get('wgPageName') + ']] ڕەنگە پێویستی بە چاکسازی بێت لەبەر ئەوەی ...~~~~';
            }
            $('#firstHeading').next().before('<div class="comment-ui" style="padding: 1em; background:#f2f2f2;' +
                'max-width: 1200px; width: 100%; margin-top: 0.5em; font-size:100%;"><label for="comment-main-dialog-label">لێدوان: </label>' + '<textarea id="comment-dialog-field" class="mw-ui-input" style="font-family:sans-serif;" rows="5">' + preload + '</textarea>' +
                '<br/><label for="comment-dailog-summary-label" style="padding-top:1em;">کورتەی دەستکاری: </label>' +
                '<input id="comment-dialog-summary" class="mw-ui-input" style="width:100%; max-width:1200px;"' +
                'value="پێشنیارکردنی چاکسازی بۆ ' + guy + '"/>&nbsp;' +
                '<table style="border-collapse:collapse"><tr><td id="comment-link-buttons" style="width: 255;px">' +
                '<button id="comment-dialog-button" class="mw-ui-button mw-ui-progressive">لێدوان</button>&nbsp;&nbsp;' +
                '<button id="comment-link-preview-button" class="mw-ui-button">پێشبینین</button>&nbsp;&nbsp;<button id="comment-link-cancel-button" class="mw-ui-button mw-ui-quiet mw-ui-destructive">هەڵوەشاندنەوە</button></td>' +
                '</tr></table><div id="comment-dailog-status" style="padding:0.5em"></div>' +
                '<div id="comment-link-options" class="I-empty" style="margin-top: 0.5em"></div>' +
                '<div id="comment-link-preview" class="I-empty" style="border: thin dashed gray; padding: 0.5em; margin-top: 0.5em; background:white;"></div></div>');
            mw.util.addCSS(".I-empty:empty { display: none; }");
            // Event listener for the text area
            document.getElementById("comment-dialog-field")
                .addEventListener("input", function() {

                    // If the user has started a comment, ask for a
                    // confirmation before closing
                    if (this.value && !window.onbeforeunload) {
                        window.onbeforeunload = function(e) {
                            var txt = "لێدوانەکەت دەستپێ کردووە بەڵام نەت ناردووە";
                            e.returnValue = txt;
                            return txt;
                        };
                    } else if (!this.value && window.onbeforeunload) {
                        window.onbeforeunload = null;
                    }
                }); // End event listener for the text area

            // Event listener for the "comment" button
            document.getElementById("comment-dialog-button")
                .addEventListener("click", function() {
                    var sanitizedCode = document.getElementById("comment-dialog-field").value
                        .replace(/&/g, "%26");
                     document.getElementById("comment-dialog-button").disabled = true;
                    document.getElementById('comment-dialog-summary').disabled = true;
                    document.getElementById('comment-dialog-field').disabled = true;
                    var text = sanitizedCode;
                    mw.storage.set('postCreator', text);
                    var guyedit = new Morebits.wiki.page(('User talk:' + guy));
                    guyedit.setEditSummary(document.getElementById("comment-dialog-summary").value
                        .replace(/&/g, "%26") + ' ([[بەکارهێنەر:Épine/communicator|پەیوەندیبەست]])');
                    guyedit.setAppendText('\n' + text);
                    guyedit.append(function() {
                        $('#comment-dailog-status').html('کرا... پەڕەکە خاوێن دەکرێتەوە...');
                        window.onbeforeunload = null;
                        document.location.reload();
                    }, function() {
                        $('#comment-dialog-status').html('کێشەیەک لە پاشەکەوتکردنی دەستکارییەکەت هاتە پێش</a>. تکایە دووبارە هەوڵ بدەرەوە');
                        document.getElementById("comment-dialog-button").disabled = false;
                    });
                }); // End event listener for the "comment" button

            // Event listener for the "Preview" button
            document.getElementById("comment-link-preview-button")
                .addEventListener("click", function() {
                    var sanitizedCode = document.getElementById("comment-dialog-field").value
                        .replace(/&/g, "%26");
                         mw.storage.set('postCreator', sanitizedCode);
                    $.post("https://en.wikipedia.org/api/rest_v1/transform/wikitext/to/html",
                        "wikitext=" + sanitizedCode + "&body_only=true",
                        function(html) {
                            document.getElementById("comment-link-preview").innerHTML = html;
                        });
                });
            document.getElementById("comment-link-cancel-button")
                .addEventListener("click", function() {
                    $('.comment-ui').remove();
                    window.onbeforeunload = null;
                });
        });
    };
    mw.util.addPortletLink('p-cactions', '#', 'پەیوەندی لەگەڵ دروستکەر', 'ca-communicate', 'پەیوەندی لەگەڵ دروستکەری وتارەکە ببەستە', '6');
    $('#ca-communicate').click(music);
});
//</nowiki>