User:CWii/JB2script.js

This is an old revision of this page, as edited by CWii (talk | contribs) at 18:12, 5 June 2008 (update). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
function jb2script () {
    if( wgNamespaceNumber == 6 ) {
        addPortletLink( 'p-cactions', "javascript:jb2script.callback()", "JB2", "jb2script", "Tag for moval by John Bot II", "");
    }
}
addOnloadHook(jb2script);
 
jb2script.callback = function jb2scriptCallback() {
    var Window = new SimpleWindow( 600, 300 );
    Window.setTitle( "John Bot II image moval b" );
    var form = new QuickForm( jb2script.callback.evaluate );
    var categories = form.append( {
            type: 'select',
            name: 'movable',
            label: 'Is the image movable? ',
            tooltip: 'meh',
            event: jb2script.callback.change_category
        } );
    categories.append( {
            type: 'option',
            label: 'Yes - It can be moved by John Bot II',
            selected: true,
            value: 'yes'
        } );
    categories.append( {
            type: 'option',
            label: "No - It can't be moved by John Bot II",
            selected: false,
            value: 'no'
        } );
    categories.append( {
            type: 'option',
            label: "Not by a bot - It can't be moved by a robot",
            selected: false,
            value: 'notBot'
        } );
    form.append( {
            type: 'field',
            label:'Work area',
            name: 'work_area'
        } );
    var result = form.render();
    Window.setContent( result );
    Window.display();
 
    // We must init the
    var evt = document.createEvent( "Event" );
    evt.initEvent( 'change', true, true );
    result.movable.dispatchEvent( evt );
}
 
jb2script.callback.change_category = function jb2scriptCallbackChangeCategory(e) {
    var value = e.target.value;
    var root = e.target.form;
    var old_area;
    var childNodes = root.childNodes;
    for( var i = 0; i < childNodes.length; ++i ) {
        var node = childNodes[i];
        if( 
            node instanceof Element &&
            node.getAttribute( 'name' ) == 'work_area' 
        ) {
            old_area = node;
            break;
        }
    }
    var work_area = null;
 
    switch( value ) {
        case 'yes':
            work_area = new QuickForm.element( { 
                type: 'field',
                label: 'Movable',
                name: 'work_area'
            } );
            work_area.append( {
                type: 'input',
                name: 'newname',
                label: 'New name: '
            } );
            work_area.append( { type:'submit' } );
            work_area = work_area.render();
            old_area.parentNode.replaceChild( work_area, old_area );
            break;
        default:
            work_area = new QuickForm.element( { 
                    type: 'field',
                    label: 'Nothing for anything',
                    name: 'work_area'
                } );
            work_area = work_area.render();
            old_area.parentNode.replaceChild( work_area, old_area );
            break;
 
    }
}
 
jb2script.callbacks = {
    yes: {
        main: function ( self ) {
            Status.info( 'Tagging image","[[' + wgPageName + ']]' );
            
            // Tagging article
            var query = {
                'title': wgPageName,
                'action': 'submit'
            };
            var wikipedia_wiki = new Wikipedia.wiki( 'Tagging image with tag', query, jb2script.callbacks.yes.image );
            wikipedia_wiki.params = self.params;
            wikipedia_wiki.get();
        },
        image: function( self ) {
            var form = self.responseXML.getElementById('editform');
            var postData = {
                'wpMinoredit': undefined, // Per memo
                'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
                'wpStarttime': form.wpStarttime.value,
                'wpEdittime': form.wpEdittime.value,
                'wpAutoSummary': form.wpAutoSummary.value,
                'wpEditToken': form.wpEditToken.value,
                'wpSummary': "Tagging for moval by [[User:John Bot II]]",
                'wpTextbox1': "\{\{Jb2move}}\n" + form.wpTextbox1.value
            };
            self.post( postData );
        }
    }
}