User:CWii/JB2script.js

function jb2script { if( mw.config.get('wgNamespaceNumber') == 6 ) { mw.util.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 mover tool" ); var form = new QuickForm( jb2script.callback.evaluate ); var categories = form.append( {           type: 'select',            name: 'movable',            label: 'Is the image movable? ',            tooltip: 'Please chose the correct option.',            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: "It was already moved",            selected: false,            value: 'moved'        } ); 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: 'input',            name: 'comCat1',            label: 'Commons Cat #1: '        } ); work_area.append( {           type: 'input',            name: 'comCat2',            label: 'Commons Cat #2: '        } ); work_area.append( {           type: 'input',            name: 'comCat3',            label: 'Commons Cat #3: '        } ); work_area.append( {           type: 'input',            name: 'comCat4',            label: 'Commons Cat #4: '        } ); work_area.append( {           type: 'input',            name: 'comCat5',            label: 'Commons Cat #5: '        } ); work_area.append( {           type: 'input',            name: 'comCat6',            label: 'Commons Cat #6: '        } ); work_area.append( {           type: 'checkbox',            name: 'keeplocal',            list: [                { label: 'Keep local', value: 'keeplocal' }            ]

} );       work_area.append( { type:'submit' } );        work_area = work_area.render;        old_area.parentNode.replaceChild( work_area, old_area );        break;    case 'no':        work_area = new QuickForm.element( { type: 'field', label: 'Cannot be moved', name: 'work_area' } );       work_area.append( { type: 'textarea', name: 'reason', label: 'Reason:' } );       work_area.append( { type:'submit' } );        work_area = work_area.render;        old_area.parentNode.replaceChild( work_area, old_area );        break;    case 'moved':        work_area = new QuickForm.element( { type: 'field', label: 'Already Moved', 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: function ( self ) {        newname = self.params.newname;        cc1 = self.params.cc1;        cc2 = self.params.cc2;        cc3 = self.params.cc3;        cc4 = self.params.cc4;        cc5 = self.params.cc5;        cc6 = self.params.cc6;        keeplocal = self.params.keeplocal;        template = '\{\{jb2move|canMove=yes'        template += '|user=' + mw.config.get('wgUserName');        if ( cc1 !=  ) {            template += '|comCat1=' + cc1;        }        if ( cc2 !=  ) {            template += '|comCat2=' + cc2;        }        if ( cc3 !=  ) {            template += '|comCat3=' + cc3;        }        if ( cc4 !=  ) {            template += '|comCat4=' + cc4;        }        if ( cc5 != '' ) {            template += '|comCat5=' + cc5; }       if ( cc6 != '' ) { template += '|comCat6=' + cc6; }       if( newname != '' ) { template += '|newName=' + newname; }       /*var form = e.target; var checked = form.getChecked( 'keeplocal' ); if( checked.length == 0 ) { template += '|keepLocal=yes'; }*/		if( keeplocal ) { template += '|keepLocal=yes'; }       template += '\}\}\n'; var form = self.responseXML.getElementById('editform'); if( !form ) { self.statelem.error( 'Failed to get edit Form' ); }       var text = form.wpTextbox1.value; var postData = { 'wpMinoredit': true, 'wpWatchthis': false, 'wpStarttime': form.wpStarttime.value, 'wpEdittime': form.wpEdittime.value, 'wpAutoSummary': form.wpAutoSummary.value, 'wpEditToken': form.wpEditToken.value, 'wpSummary': 'Reviewing image for JB-II (Image OK)', 'wpTextbox1': template + text };       self.post( postData ); },   no: function ( self ) { var reason = self.params.reason; template = '\{\{jb2move|canMove=no' template += '|user=' + mw.config.get('wgUserName'); template += '|reason=' + reason; template += '\}\}\n' var form = self.responseXML.getElementById('editform'); if( !form ) { self.statelem.error( 'Failed to get edit Form' ); }       var text = form.wpTextbox1.value; var postData = { 'wpMinoredit': true, 'wpWatchthis': false, 'wpStarttime': form.wpStarttime.value, 'wpEdittime': form.wpEdittime.value, 'wpAutoSummary': form.wpAutoSummary.value, 'wpEditToken': form.wpEditToken.value, 'wpSummary': 'Reviewing image for JB-II (Image NOT OK)', 'wpTextbox1': template + text };       self.post( postData ); },   moved: function ( self ) { var newname = self.params.newname; var form = self.responseXML.getElementById('editform'); if( !form ) { self.statelem.error( 'Failed to get edit Form' ); }       var text = form.wpTextbox1.value; var fText; var re = new RegExp( "\\{\\{jb2move" ); var myArr; if( (myArr = re.exec( text ) ) ) { self.statelem.error( 'Sorry, you gotta do this one manaul.' ); return; } else { fText = '\{\{jb2move'; fText += '|user=' + mw.config.get('wgUserName'); fText += '|canMove=moved' if( newname != '' ) { fText += '|newName=' + newname; }           fText += '\}\}'; }       var text = form.wpTextbox1.value; var postData = { 'wpMinoredit': true, 'wpWatchthis': false, 'wpStarttime': form.wpStarttime.value, 'wpEdittime': form.wpEdittime.value, 'wpAutoSummary': form.wpAutoSummary.value, 'wpEditToken': form.wpEditToken.value, 'wpSummary': 'Reviewing image for JB-II (Image MOVED)', 'wpTextbox1': fText };       self.post( postData ); } } jb2script.callback.evaluate = function(e) { var form = e.target; var reason = ""; switch( form.movable.value ) { default: case 'yes': var query = { 'title': mw.config.get('wgPageName'), 'action': 'submit', };       var newname = form.newname.value; var cc1 = form.comCat1.value; var cc2 = form.comCat2.value; var cc3 = form.comCat3.value; var cc4 = form.comCat4.value; var cc5 = form.comCat5.value; var cc6 = form.comCat6.value; var keeplocal = form.keeplocal.checked; Status.init( form ); wikipedia_wiki = new Wikipedia.wiki( 'Tagging Image', query, jb2script.callbacks.yes ); wikipedia_wiki.params = { newname:newname, cc1:cc1, cc2:cc2, cc3:cc3, cc4:cc4, cc5:cc5, cc6:cc6, keeplocal:keeplocal } wikipedia_wiki.get; break; case 'no': var query = { 'title': mw.config.get('wgPageName'), 'action': 'submit', 'unwatch': 'true', };       var reason = form.reason.value; Status.init( form ); wikipedia_wiki = new Wikipedia.wiki( 'Tagging Image', query, jb2script.callbacks.no ); wikipedia_wiki.params = { reason:reason } wikipedia_wiki.get; break; case 'moved': var query = { 'title': mw.config.get('wgPageName'), 'action': 'submit', 'unwatch': 'true', };       var newname = form.newname.value; Status.init( form ); wikipedia_wiki = new Wikipedia.wiki( 'Tagging Image', query, jb2script.callbacks.moved ); wikipedia_wiki.params = { newname:newname } wikipedia_wiki.get; break; } }