משתמש:מערכת/יצירת דפים מרובים.js

מתוך אוצר הספרים היהודי השיתופי
קפיצה לניווט קפיצה לחיפוש

הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload), או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh), או ללחוץ על צירוף המקשים Ctrl-F5.
  • אופרה: ללחוץ על Ctrl-F5.
//סקריפט יצירת דפים מרובים - כל הזכויות שמורות ליוצר - נוצר על ידי davidnead
$(mw.util.addPortletLink('p-navigation', '#', 'יצירת דפים מרובים')).click(function(){

    var dialog = $("<div>").dialog({modal: true, resizable: true,  title: "ערכים לייבוא", position: "top", minWidth: 550});
    var T = '<p dir="right">תקציר עריכה (ריק כברירת מחדל):</p><textarea id="textareasummary" style="min-width:520px; height:20px;">' +  '</textarea>';
    T=T+'<p dir="right">רשימת הערכים:</p><textarea id="textarea" style="min-width:520px; height:200px;">' +  '</textarea>';
    T = T + '<p dir="left">  <button id="btnLinks" style="vertical-align:top;">צור ערכים </button></p>' + '<p dir="right">דו"ח תוצאות:</p><textarea id="textarea1" style="min-width:520px; height:200px;">' +  '</textarea>';

    dialogHtml = T
    dialog.append( dialogHtml);

    $("#btnLinks").click(function(){
        var textareaContent = $("#textarea").val ()
        var pages=textareaContent.split ("*****שם דף*****") //מערך עם כל הערכים
        
        //לולאה - עבור כל אחד מהערכים פצל:
        for (var num in pages){
            var thisPage = pages[num].split ("*****תחילת דף*****")
            var pageName = thisPage[0]
            var pageContent = thisPage[1]
            if(pageName){pageName=pageName.trim()}
            if (pageContent){pageContent=pageContent.replace("\n", "")}
            createPage(pageName, pageContent, $("#textareasummary").val())
        }
    })
    
                    
    function createPage (pageName, pageContent, summary){
        var apiUrl = "https://wiki.jewishbooks.org.il/mediawiki/wiki/api.php";
                
        function continueWithToken ( token ) {
            var fd = new FormData();
            var xhr = new XMLHttpRequest();
            // First argument is an array!
            var bXml = new Blob( [$( 'textarea' ).val()], {
                        type: 'text/xml'
                } );
            fd.append( 'format', 'json' );
            fd.append( 'action', 'edit' );
            // Third parameter is not required but
            // You're likely on the safe side using it
            fd.append( 'title', pageName );
            fd.append( 'text', pageContent );
            fd.append( 'token', token );
            fd.append( 'summary', summary );
            fd.append( 'createonly', "true" );
            
            fd.append( 'token', token );
        
            xhr.onreadystatechange = function() {
            if ( 4 !== this.readyState ) return;
            if ( 200 === this.status ) {
                var R = JSON.parse (this.response)
                if (R.edit){
                    var A=$('#textarea1').val()
                    $('#textarea1').val(A + "\n" + pageName + " - נוצר בהצלחה")
                } else if (R.error){
                    var A=$('#textarea1').val()
                    $('#textarea1').val(A + "\n" + pageName + " - יצירת הדף נכשלה. מהסיבה: " + JSON.parse (this.response).error.info)                   
                }                   
            }
        };

            xhr.open( 'POST', apiUrl );
            xhr.send( fd );
        }
        
        $.get( apiUrl, {
            "action": "query",
            "format": "json",
            "meta": "tokens"
        } ).done( function(r) {
            var token = r.query.tokens.csrftoken;
            continueWithToken( token );
        } );
    }
    
})