User:CWii/JB2script.js
Appearance
Code that you insert on this page could contain malicious content capable of compromising your account. If you import a script from another page with "importScript", "mw.loader.load", "iusc", or "lusc", take note that this causes you to dynamically load a remote script, which could be changed by others. Editors are responsible for all edits and actions they perform, including by scripts. User scripts are not centrally supported and may malfunction or become inoperable due to software changes. A guide to help you find broken scripts is available. If you are unsure whether code you are adding to this page is safe, you can ask at the appropriate village pump. This code will be executed when previewing this page. |
This user script seems to have a documentation page at User:CWii/JB2script. |
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 [[User:John Bot II|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 [[User:John Bot II|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 [[User:John Bot II|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;
}
}