Benutzer:Obsidian/common.js
Aus Stupidedia, der sinnfreien Enzyklopädie!
Wichtig: Nach dem Speichern musst Du deinem Browser sagen, dass er die neue Version laden soll: Mozilla/Firefox: Strg-Shift-R, IE: Strg-F5, Safari: Cmd-Shift-R, Konqueror: F5.
document.write( "<script type='text/javascript' src='http://www.stupidedia.org/stupi?title=Benutzer:Martinnitus/common.js/linkchecker.js&action=raw&ctype=text/javascript'></script>" );
/*View-Editor, Extrawurst für Obsi
Autor: [[Benutzer:Martinnitus]]
<nowiki>
*/
var gBearbeitenVersionFuerObsi = {};
gBearbeitenVersionFuerObsi.init = function(){
var reqobj = {};
if( mw.config.get( 'wgPageName' ).match( /.*\.(css|js)$/) !== null || mw.config.get( 'wgNamespaceNumber' ) % 2 !== 0 || !gBearbeitenVersionFuerObsi.usercheck( ['hda','f','sysop'] ) || mw.config.get( 'wgAction' ) !== 'view' || $.inArray( global.protection.edit , mw.config.get( 'wgUserGroups' ) ) === -1 )
return;
var actionlink = $( '<li id="fastaction"><span><a>Schnellaktion</a></span></li>' ).attr( 'title', 'Führt eine Schnellaktion durch.' ).click( gBearbeitenVersionFuerObsi.openwindow );
$( 'body' ).find( 'li#ca-view' ).after( actionlink );
};
gBearbeitenVersionFuerObsi.usercheck = function( usergroups ){
var ret = false;
$.each( usergroups, function( i, group ){
if( $.inArray( group, mw.config.get( 'wgUserGroups' ) ) !== -1 ){
ret = true;
return false;
}
});
return ret;
};
gBearbeitenVersionFuerObsi.closewindow = function(){
$( 'body' ).find( '.faction' ).remove();
};
gBearbeitenVersionFuerObsi.openwindow = function(){
if( $( 'body' ).find( '.faction' ).length ){
gBearbeitenVersionFuerObsi.closewindow();
return;
}
var box = $( '<div class="faction" />' );
box.html( '<div class="faction-header">View-Editor</div><div class="faction-body"><ul></ul></div>' ).appendTo( 'body' );
$.each( gBearbeitenVersionFuerObsi.templates, function( i, temp ){
if(
( !temp.groups || gBearbeitenVersionFuerObsi.usercheck( temp.groups ) ) &&
( ( !temp.ns && $.inArray( mw.config.get( 'wgNamespaceNumber' ), [0,102,104,106] ) !== -1 ) || $.inArray( mw.config.get( 'wgNamespaceNumber' ), temp.ns ) !== -1 || ( temp.ns && !temp.ns.length ) )
){
box.find( '.faction-body ul' ).append( $( '<li />' ).html( $( '<a />' ).html( ( temp.desc ) ? temp.desc : temp.page ).attr({
'title': 'Setzt die ' + temp.page + '-Vorlage',
'onclick': 'gBearbeitenVersionFuerObsi.prepare("' + i + '");'
}) ) );
if( temp.exaction )
$('<a />', {
'html': '(mit Kommentar)',
'title': 'Setzt die ' + temp.page + '-Vorlage mit Kommentar',
'onclick': 'gBearbeitenVersionFuerObsi.prepare("' + i + '",true);',
}).before( ' • ' ).appendTo( '.faction-body ul li:eq(' + ( $( '.faction-body ul li' ).length - 1 ) + ')' );
}
});
box.find( '.faction-header' ).append( $( '<a />' ).html( 'X' ).attr({
'title': 'Schließen',
'style': 'float: right; color: black;'
}).click( gBearbeitenVersionFuerObsi.closewindow ) );
box.draggable( { cancel: '.faction-body' } ).autoCenter().show();
};
gBearbeitenVersionFuerObsi.templates = {
sl: {
desc: 'Schnelllösch-Antrag',
page: 'SL',
text: '{{SL|1=' + mw.config.get( 'wgUserName' ) + '}}',
extext: '{{SL|1=' + mw.config.get( 'wgUserName' ) + '|2=[1]}}',
sum: '[[Vorlage:SL|Schnelllöschantrag gestellt]]',
ns: [],
action: 'ext',
exaction: function( c, tobj ){
$( '.faction .faction-body' ).html(
'In das nachfolgende Textfeld kannst du den Kommentarparameter der ' + tobj.page + '-Vorlage eintippen:\n' +
'<textarea rows="5"></textarea>\n' +
'<input type="button" value="Vorlage setzen" />'
);
$( '.faction .faction-body input[type="button"]' ).click(function(){
var temptext = ( tobj.ext ) ? tobj.extext : tobj.text;
reqobj.prependtext = temptext.replace( /\[1\]/, $( '.faction .faction-body textarea' ).val() ) + '\n';
api.request( reqobj, gBearbeitenVersionFuerObsi.edit );
});
}
},
sld: {
page: 'SL-Direkt',
text: '{{SL-Direkt|1=' + mw.config.get( 'wgUserName' ) + '}}',
extext: '{{SL-Direkt|1=' + mw.config.get( 'wgUserName' ) + '|2=[1]}}',
sum: ['[[Sub:SL-Direkt|SL-Direkt: Sie schreiben, wir vertreiben!]]','[[Sub:SL-Direkt|SL-Direkt: Sie tippen, wir kippen!]]','[[Sub:SL-Direkt|SL-Direkt: Schreibst du noch oder löschen wir schon?]]','[[Sub:SL-Direkt|SL-Direkt: 20 % auf alles, außer Sondermüll.]]','[[Sub:SL-Direkt|SL-Direkt: Wir löschen schneller als die Feuerwehr.]]','[[Sub:SL-Direkt|SL-Direkt is watching you!]]','[[Sub:SL-Direkt|It’s time for some heroes. It’s time for SL-Direkt.]]','[[Sub:SL-Direkt|SL-Direkt hat zugeschlagen!]]'],
ns: [],
action: 'ext',
exaction: function( c, tobj ){
gBearbeitenVersionFuerObsi.templates.sl.exaction( c, tobj );
}
},
bau: {
page: 'Baustelle',
text: '{{Baustelle}}',
extext: '{{Baustelle|1=[1]}}',
sum: ['[[Vorlage:Baustelle|Wir brauchen Bagger, Schaufeln, einen Kran und viel Bier, bitte!]]','[[Vorlage:Baustelle|Wir brauchen Bagger, Schaufeln, Zement, einen Betonmischer und viel Bier!]]'],
action: 'ext',
exaction: function( c, tobj ){
gBearbeitenVersionFuerObsi.templates.sl.exaction( c, tobj );
}
},
il: {
desc: 'Interne Links',
page: 'IL',
text: '{{IL}}',
sum: '[[Vorlage:IL|Die internen Links müssen überprüft werden!]]'
},
kk: {
desc: 'Kategorien',
page: 'KK',
text: '{{KK}}',
sum: '[[Vorlage:KK|Die Kategorien müssen überprüft werden!]]'
},
f: {
desc: 'Formatierung',
page: 'F',
text: '{{F}}',
sum: '[[Vorlage:F|Formatieren, Übersichtlichkeit herstellen!]]'
},
r: {
desc: 'Rechtschreibung',
page: 'R',
text: '{{R}}',
sum: '[[Vorlage:R|Die Sprache dieses Wikis ist Deutsch!]]'
},
pic: {
desc: 'Bilder überprüfen',
page: 'Pic',
text: '{{Pic}}',
sum: '[[Vorlage:Pic|Irgendwas stimmt da mit den Bildern nicht …]]'
},
m: {
desc: 'Mitteilung',
page: 'M',
text: '{{M|1=' + mw.config.get( 'wgUserName' ) + '|2=[1]}}',
sum: '[[Vorlage:M|Mitteilung]]',
ns: [],
action: function( c, tobj ){
gBearbeitenVersionFuerObsi.templates.sl.exaction( c, tobj );
},
interrupt: true
},
stub: {
page: 'Stub',
text: '{{Stub|1={{subst:Datum}}|2=[1]}}',
sum: '[[Vorlage:Stub|Stub!]]',
groups: ['f','sysop'],
action: function( c, tobj ){
gBearbeitenVersionFuerObsi.templates.sl.exaction( c, tobj );
},
interrupt: true
},
v: {
desc: 'Verbesserung',
page: 'V',
text: '{{V\n| IL = [1]\n| KK = [2]\n| R = [3]\n| F = [4]\n| Pic = [5]\n| M = [6]\n| Datum = {{subst:Datum}}\n}}',
sum: '[[Vorlage:V|Verbesserungsprogramm]]',
action: function( c, tobj ){
$( '.faction .faction-body' ).html(
'In die nachfolgenden Textfelder kannst du die Parameter der ' + tobj.page + '-Vorlage eintippen.\n' +
'<table style="width: 100%;"><tr><td>Interne Links:</td><td><input type="text" /></td></tr>\n' +
'<tr><td>Kategorien:</td><td><input type="text" /></td></tr>\n' +
'<tr><td>Rechtschreibung:</td><td><input type="text" /></td></tr>\n' +
'<tr><td>Formatierung:</td><td><input type="text" /></td></tr>\n' +
'<tr><td>Bilder:</td><td><input type="text" /></td></tr>\n' +
'<tr><td>Kommentar:</td><td><input type="text" /></td></tr></table>\n' +
'<input type="button" value="Vorlage setzen" />'
);
$( '.faction .faction-body input[type="button"]' ).click(function(){
reqobj.prependtext = tobj.text.replace( /\[6\]/, $( '.faction .faction-body input:eq(5)' ).val() )
.replace( /\[5\]/, $( '.faction .faction-body input:eq(4)' ).val() )
.replace( /\[4\]/, $( '.faction .faction-body input:eq(3)' ).val() )
.replace( /\[3\]/, $( '.faction .faction-body input:eq(2)' ).val() )
.replace( /\[2\]/, $( '.faction .faction-body input:eq(1)' ).val() )
.replace( /\[1\]/, $( '.faction .faction-body input:eq(0)' ).val() ) + '\n';
api.request( reqobj, gBearbeitenVersionFuerObsi.edit );
});
},
interrupt: true
},
stop: {
page: 'Stop',
text: '{{Stop}}',
sum: '[[Vorlage:Stop|Notbremse!]]',
groups: ['f','sysop'],
action: 'replace'
},
bash: {
page: 'Bashing',
text: '{{Bashing}}',
sum: '[[Vorlage:Bashing|Erzähl mehr von dir!]]',
groups: ['f','sysop'],
action: 'replace'
},
ab: {
page: 'AB',
text: '{{AB}}',
sum: '[[Vorlage:AB|Früher war alles besser …]]',
ns: [6],
action: function( c, tobj ){
reqobj.text = reqobj.prependtext + c.replace( /\{\{([Vv]orlage:)?([Cc]C(-veraltet)?|[Gg]NU([ _]FDL|[ _]GPL)|[Pp]D|[Cc]opyright(\/Erweitert)?|[Aa]LS)[^\}]*\}\}/g , '' );
}
},
lizenz: {
page: 'Lizenz!',
text: '{{Lizenz!}}',
sum: '[[Vorlage:Lizenz!|Lizenzangaben ungenügend!]]',
ns: [6],
action: function( c, tobj ){
gBearbeitenVersionFuerObsi.templates.ab.action( c, tobj );
}
}
};
gBearbeitenVersionFuerObsi.prepare = function( tem, e ){
delete gBearbeitenVersionFuerObsi.templates[ tem ].ext;
var temobj = gBearbeitenVersionFuerObsi.templates[ tem ];
var userbuttons = $.parseJSON( mw.user.options.get( 'userjs-editbuttons' ) ) || {};
if( typeof e === 'boolean' )
temobj.ext = true;
if( userbuttons.buttons )
temobj.sum = ( userbuttons.buttons[ 'template' + temobj.page.replace( /!/g , '' ) ] ) ? userbuttons.buttons[ 'template' + temobj.page.replace( /!/g , '' ) ].summary : temobj.sum;
api.getPageContent( mw.config.get( 'wgPageName' ), gBearbeitenVersionFuerObsi.pagecontent, temobj );
};
gBearbeitenVersionFuerObsi.pagecontent = function( content, temobj ){
reqobj = {
action: 'edit',
nocreate: true,
title: mw.config.get( 'wgPageName' ),
summary: $.isArray( temobj.sum ) ? temobj.sum[ Math.floor( Math.random() * temobj.sum.length ) ] : temobj.sum,
prependtext: temobj.text + '\n',
token: global.editToken
};
if( content.match( new RegExp( '\\{\\{([Vv]orlage:)?' + '[' + temobj.page.charAt(0).toUpperCase() + temobj.page.charAt(0).toLowerCase() + ']' + temobj.page.slice(1) + '[^\\}]*\\}\\}' ) ) !== null ){
alert( 'Die Vorlage ist bereits eingebunden.' );
}else{
switch( temobj.action ){
case undefined:
break;
case 'ext':
if( temobj.ext )
temobj.exaction( content, temobj );
break;
case 'replace':
reqobj.text = reqobj.prependtext.replace( /\n/ , '' );
delete reqobj.prependtext;
break;
default:
temobj.action( content, temobj );
delete reqobj.prependtext;
}
if( !temobj.interrupt && !temobj.ext )
api.request( reqobj, gBearbeitenVersionFuerObsi.edit );
}
};
gBearbeitenVersionFuerObsi.edit = function( data ){
if( data.error ){
alert( 'Fehler. Code: ' + data.error.code + ', Info: ' + data.error.info );
}else if( data.edit.result === 'Failure' ){
alert( 'Unbekannter Fehler.' );
}else{
window.location.href = mw.util.getUrl( mw.config.get( 'wgPageName' ) );
}
};
execute( 'gBearbeitenVersionFuerObsi.init' );