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 [[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;
}
}
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.