Suradnica:MayaSimFan/friendlytag.js
Napomena: Nakon objave možda ćete trebati očistiti međuspremnik svog preglednika kako biste vidjeli promjene.
- Firefox / Safari: držite Shift i pritisnite Reload, ili pritisnite bilo Ctrl-F5 ili Ctrl-R (⌘-R na Macu)
- Google Chrome: pritisnite Ctrl-Shift-R (⌘-Shift-R na Macu)
- Internet Explorer / Edge: držite Ctrl i kliknite Refresh, ili pritisnite Ctrl-F5
- Opera: pritisnite Ctrl-F5.
// <nowiki>
// If FriendlyConfig aint exist.
if( typeof( FriendlyConfig ) == 'undefined' ) {
FriendlyConfig = {};
}
/**
FriendlyConfig.summaryAd ( string )
If ad should be added or not to summary, default [[WP:FRIENDLY|Friendly]]
*/
if( typeof( FriendlyConfig.summaryAd ) == 'undefined' ) {
FriendlyConfig.summaryAd = " pomoću [[WP:FRIENDLY|Friendly]]ja";
}
/**
FriendlyConfig.groupByDefault ( boolean )
*/
if( typeof( FriendlyConfig.groupByDefault ) == 'undefined' ) {
FriendlyConfig.groupByDefault = true;
}
/**
FriendlyConfig.watchTaggedPages ( boolean )
*/
if( typeof( FriendlyConfig.watchTaggedPages ) == 'undefined' ) {
FriendlyConfig.watchTaggedPages = true;
}
/**
FriendlyConfig.markTaggedPagesAsMinor ( boolean )
*/
if( typeof( FriendlyConfig.markTaggedPagesAsMinor ) == 'undefined' ) {
FriendlyConfig.markTaggedPagesAsMinor = true;
}
/**
FriendlyConfig.markTaggedPagesAsPatrolled ( boolean )
*/
if( typeof( FriendlyConfig.markTaggedPagesAsPatrolled ) == 'undefined' ) {
FriendlyConfig.markTaggedPagesAsPatrolled = true;
}
function friendlytag() {
if( QueryString.exists( 'redirect' ) && QueryString.get( 'redirect' ) == 'no' && !QueryString.exists( 'rcid' ) ) {
isRedirect = true;
mw.util.addPortletLink( 'p-cactions', "javascript:friendlytag.callback()", "označi", "friendly-tag", "Označi preusmjeravanje", "");
} else if( wgNamespaceNumber != 0 || wgCurRevisionId == false ) {
return;
} else {
mw.util.addPortletLink( 'p-cactions', "javascript:friendlytag.callback()", "označi", "friendly-tag", "Označi članak", "");
}
}
$(friendlytag);
friendlytag.callback = function friendlytagCallback( uid ) {
var Window = new SimpleWindow( 600, 400 );
if( !isRedirect ) {
Window.setTitle( "Označavanje - održavanje članka" );
} else {
Window.setTitle( "Označavanje - preusmjeravanje" );
}
var form = new QuickForm( friendlytag.callback.evaluate );
if( !isRedirect ) {
form.append( { type:'submit' } );
form.append( { type:'header', label:'Predlošci za održavanje' } );
form.append( { type:'checkbox', name: 'maintenance', list: friendlytag.maintenanceList } );
form.append( { type:'header', label:'Predlošci za probleme' } );
form.append( { type:'checkbox', name: 'problem', list: friendlytag.problemList } );
form.append( { type:'header', label:'Predlošci za obavijesti' } );
form.append( { type:'checkbox', name: 'notice', list: friendlytag.noticeList } );
if( typeof( FriendlyConfig.customTagList ) == 'object' ) {
form.append( { type:'header', label:'Custom templates' } );
form.append( { type: 'checkbox', name: 'custom', list: FriendlyConfig.customTagList } );
}
} else {
form.append( { type:'submit' } );
form.append( { type:'header', label:'Spelling, misspelling, tense and capitalization templates' } );
form.append( { type:'checkbox', name: 'spelling', list: friendlytag.spellingList } );
form.append( { type:'header', label:'Alternative name templates' } );
form.append( { type:'checkbox', name: 'alternative', list: friendlytag.alternativeList } );
form.append( { type:'header', label:'Miscellaneous and administrative redirect templates' } );
form.append( { type:'checkbox', name: 'administrative', list: friendlytag.administrativeList } );
}
form.append( { type:'submit' } );
var result = form.render();
Window.setContent( result );
Window.display();
}
isRedirect = false;
friendlytag.maintenanceList = [
{
label: '\{\{bolji naslov\}\}: članak treba preimenovati (objasniti na stranici za razgovor)',
value: 'bolji naslov'
},
{
label: '\{\{esej\}\}: članak ili dio članka izgleda kao esej',
value: 'esej'
},
{
label: '\{\{reklama\}\}: članak ili dio članka izgleda kao reklama',
value: 'reklama'
},
{
label: '\{\{rad obožavatelja\}\}: članak ili dio članka izgleda kao rad obožavatelja',
value: 'rad obožavatelja'
},
{
label: '\{\{priča\}\}: članak izgleda kao osobno mišljenje ili priča',
value: 'priča'
},
{
label: '\{\{u wikicitat\}\}: članak ili dio članka treba premjestiti u Wikicitat',
value: 'u wikicitat'
},
{
label: '\{\{u wikiknjige\}\}: članak ili dio članka treba premjestiti u Wikiknjige',
value: 'u wikiknjige'
},
{
label: '\{\{u wikizvor\}\}: članak ili dio članka treba premjestiti u Wikizvor',
value: 'u wikizvor'
},
{
label: '\{\{u wječnik\}\}: članak ili dio članka treba premjestiti u Wječnik',
value: 'u wječnik'
},
{
label: '\{\{pravopis\}\}: članak ili dio članka zahtijeva jezičnu i pravopisnu doradu',
value: 'pravopis'
},
{
label: '\{\{dijakritički znakovi\}\}: članku ili dijelu članka nedostaju hrvatski dijakritički znakovi',
value: 'dijakritički znakovi'
},
{
label: '\{\{velika slova\}\}: članak s pretjeranom količinom verzala (velikih slova)',
value: 'velika slova'
},
{
label: '\{\{stilska dorada\}\}: članak ili dio članka zahtijeva stilsku doradu',
value: 'stilska dorada'
},
{
label: '\{\{wikipedizirati\}\}: članak ili dio članka nije wikipediziran',
value: 'wikipedizirati'
},
{
label: '\{\{wp+\}\}: članak nema wikipoveznica ili ih ima premalo',
value: 'wp+'
},
{
label: '\{\{wp-\}\}: članak ima previše wikipoveznica ili su neodgovarajuće',
value: 'wp-'
},
{
label: '\{\{krive wikipoveznice\}\}: članak sadrži pogrešno napisane wikipoveznice',
value: 'krive wikipoveznice'
},
{
label: '\{\{wp na hr!\}\}: članak sadrži wikipoveznice prema drugim wikipedijama ili vanjske poveznice na mjestima gdje to nije potrebno',
value: 'wp na hr!'
},
{
label: '\{\{prijevod\}\}: članak nije preveden djelomično ili uopće',
value: 'prijevod',
subgroup: {
name: 'prijevod',
type: 'select',
list: [
{
label: "\{\{prijevod\}\}: članak nije preveden djelomično ili uopće",
value: "prijevod"
},
{
label: "Predlošci \{\{prijevod\}\} za pojedine jezike",
list: [
{
label: "\{\{prijevod|alb\}\}: članak nije preveden s albanskog jezika",
value: "prijevod-alb"
},
{
label: "\{\{prijevod|boš\}\}: članak nije preveden s bošnjačkog jezika",
value: "prijevod-boš"
},
{
label: "\{\{prijevod|eng\}\}: članak nije preveden s engleskog jezika",
value: "prijevod-eng"
},
{
label: "\{\{prijevod|fra\}\}: članak nije preveden s francuskog jezika",
value: "prijevod-fra"
},
{
label: "\{\{prijevod|ita\}\}: članak nije preveden s talijanskog jezika",
value: "prijevod-ita"
},
{
label: "\{\{prijevod|mađ\}\}: članak nije preveden s mađarskog jezika",
value: "prijevod-mađ"
},
{
label: "\{\{prijevod|nje\}\}: članak nije preveden s njemačkog jezika",
value: "prijevod-nje"
},
{
label: "\{\{prijevod|por\}\}: članak nije preveden s portugalskog jezika",
value: "prijevod-por"
},
{
label: "\{\{prijevod|rus\}\}: članak nije preveden s ruskog jezika",
value: "prijevod-rus"
},
{
label: "\{\{prijevod|slo\}\}: članak nije preveden sa slovenskog jezika",
value: "prijevod-slo"
},
{
label: "\{\{prijevod|srp\}\}: članak nije preveden sa srpskog jezika",
value: "prijevod-srp"
},
{
label: "\{\{prijevod|špa\}\}: članak nije preveden sa španjolskog jezika",
value: "prijevod-špa"
},
{
label: "\{\{prijevod|šve\}\}: članak nije preveden sa švedskog jezika",
value: "prijevod-šve"
}
]
}
]
}
},
{
label: '\{\{prekratko\}\}: članak je prekratak, čak i za mrvu',
value: 'prekratko'
},
{
label: '\{\{provjeriti vanjske poveznice\}\}: članak zahtjeva provjeru i čišćenje vanjskih poveznica',
value: 'provjeriti vanjske poveznice'
}
];
friendlytag.problemList = [
{
label: '\{\{bris\}\}: članak je potrebno obrisati',
value: 'bris',
subgroup: {
name: 'bris',
type: 'select',
list: [
{
label: "\{\{bris\}\}: članak je potrebno obrisati",
value: "bris"
},
{
label: "\{\{bris|kratko\}\}: članak je prekratak",
value: "kratko"
},
{
label: "\{\{bris|nespada\}\}: članak ne spada u Wikipediju",
value: "nespada"
},
{
label: "\{\{bris|grafit\}\}: grafit",
value: "grafit"
},
{
label: "\{\{bris|test\}\}: testiranje",
value: "test"
},
{
label: "\{\{bris|napadi\}\}: napadi",
value: "napadi"
}
]
}
},
{
label: '\{\{subst:CBris\}\}: članak je možda prepisan s web stranice (navesti url)',
value: 'CBris'
},
{
label: '\{\{subst:CBBris\}\}: članak je možda prepisan iz knjige (navesti knjigu)',
value: 'CBBris'
},
{
label: '\{\{subst:KBris\}\}: članak možda ne udovoljava Wikipedijinim kriterijima',
value: 'KBris'
},
{
label: '\{\{subst:NSBris\}\}: članak možda ne udovoljava Wikipedijinim standardima',
value: 'NSBris'
},
{
label: '\{\{originalne ideje\}\}: članak možda sadržavata originalne ideje ili plodove originalnog istraživačkog rada',
value: 'originalne ideje'
},
{
label: '\{\{neutralnost\}\}: članak nije pisan s nepristrane točke gledišta',
value: 'neutralnost'
},
{
label: '\{\{jednostrano\}\}: članak možda jednostrano prikazuje temu',
value: 'jednostrano'
},
{
label: '\{\{neprovjereno\}\}: članak ili dio članka sadrži neprovjerene i možda nepouzdane podatke',
value: 'neprovjereno'
},
{
label: '\{\{točnost\}\}: točnost podataka u članku je osporena',
value: 'točnost'
},
{
label: '\{\{izvor\}\}: članak ili dio članka nije pokriven izvorima',
value: 'izvor'
},
{
label: '\{\{zastario\}\}: članak ili dio članka sadrži zastarjele podatke',
value: 'zastario'
}
];
friendlytag.noticeList = [
{
label: '\{\{aktualno\}\}: članak o događaju u tijeku ili djelu u stvaranju',
value: 'current',
subgroup: {
name: 'aktualno',
type: 'select',
list: [
{
label: "\{\{aktualno\}\}: članak o događaju u tijeku ili djelu u stvaranju",
value: "aktualno"
},
{
label: "\{\{aktualno-izbori\}\}: članak o političkim izborima u tijeku",
value: "aktualno-izbori"
},
{
label: "\{\{aktualno-sport\}\}: članak o sportskom događaju u tijeku",
value: "aktualno-sport"
},
]
}
},
{
label: '\{\{budući događaj\}\}: članak o zakazanom ili očekivanom budućem događaju',
value: 'future',
subgroup: {
name: 'budući događaj',
type: 'select',
list: [
{
label: "\{\{budući događaj\}\}: članak o zakazanom ili očekivanom budućem događaju",
value: "budući događaj"
},
{
label: "Tehnologija",
list: [
{
label: "\{\{budući zrakoplov\}\}: članak o planiranom zrakoplovu ili zrakoplovu u izgradnji",
value: "budući zrakoplov"
}
]
},
{
label: "Zabava",
list: [
{
label: "\{\{nadolazeći film\}\}: članak o očekivanom filmu ili filmu u pripremi",
value: "nadolazeći film"
},
{
label: "\{\{nadolazeća video igra\}\}: članak o očekivanoj video igri",
value: "nadolazeća video igra"
},
{
label: "\{\{nadolazeća Wii video igra\}\}: članak o očekivanoj video igri za Wii",
value: "nadolazeća video igra Wii"
}
]
},
{
label: "Sport",
list: [
{
label: "\{\{budući sportski događaj\}\}: članak o planiranom sportskom događaju",
value: "budući sportski događaj"
}
]
},
{
label: "Ostalo",
list: [
{
label: "\{\{budući izbori\}\}: članak o budućim političkim izborima",
value: "budući izbori"
}
]
}
]
}
},
{
label: '\{\{radovi\}\}: članak se upravo proširuje - rok 3 sata',
value: 'radovi'
},
{
label: '\{\{radovi24\}\}: članak se upravo proširuje - rok 24 sata',
value: 'radovi24'
}
];
friendlytag.spellingList = [
{
label: '\{\{R from abbreviation\}\}: redirect from a title with an abbreviation',
value: 'R from abbreviation'
},
{
label: '\{\{R to list entry\}\}: redirect to a \"list of minor entities\"-type article which is a collection of brief descriptions for subjects not notable enough to have separate articles',
value: 'R to list entry'
},
{
label: '\{\{R to section\}\}: sames as \{\{R to list entry\}\}, but when list is more sectionlike in organization, such as list of fictional characters in a fictional universe.',
value: 'R to section'
},
{
label: '\{\{R from misspelling\}\}: redirect from a misspelling or typographical error',
value: 'R from misspelling'
},
{
label: '\{\{R from alternative spelling\}\}: redirect from a title with a different spelling',
value: 'R from alternative spelling'
},
{
label: '\{\{R from plural\}\}: redirect from a plural word to the singular equivalent',
value: 'R from plural'
},
{
label: '\{\{R from related word\}\}: redirect from a related word',
value: 'R from related word'
},
{
label: '\{\{R with possibilities\}\}: redirect from a title for a topic more detailed than what is currently provided on the target page, or section of that page, hence something which can and should be expanded',
value: 'R with possibilities'
},
{
label: '\{\{R from member\}\}: redirect from a person who is a member of a group to more general related topics, such as the group, organization, ensemble or team that he or she belongs to',
value: 'R from member'
},
{
label: '\{\{R from other capitalisation\}\}: redirect from a title with another method of capitalisation',
value: 'R from other capitalisation'
}
];
friendlytag.alternativeList = [
{
label: '\{\{R from alternative name\}\}: redirect from a title that is another name, a pseudonym, a nickname, or a synonym',
value: 'R from alternative name'
},
{
label: '\{\{R from full name\}\}: redirect from a title that is a complete or more complete name',
value: 'R from full name'
},
{
label: '\{\{R from surname\}\}: redirect from a title that is a surname',
value: 'R from surname'
},
{
label: '\{\{R from historic name\}\}: redirect from a title that is another name, a pseudonym, a nickname, or a synonym that has a significant historic past as a region, state, principate\'s holding, city, city-state or such, but which region has been subsumed into a modern era municipality, district or state, or otherwise suffered from a name change over time',
value: 'R from historic name'
},
{
label: '\{\{R from scientific name\}\}: redirect from the scientific name to the common name',
value: 'R from scientific name'
},
{
label: '\{\{R to scientific name\}\}: redirect from the common name to the scientific name',
value: 'R to scientific name'
},
{
label: '\{\{R from name and country\}\}: redirect from the specific name to the briefer name',
value: 'R from name and country'
},
{
label: '\{\{R from alternative language\}\}: redirect from an English name to a name in another language, or vice-versa',
value: 'R from alternative language'
},
{
label: '\{\{R from ASCII\}\}: redirect from a title in basic ASCII to the formal article title, with differences that are not diacritical marks (accents, umlauts, etc.)',
value: 'R from ASCII'
},
{
label: '\{\{R from title without diacritics\}\}: redirect to the article title with diacritical marks (accents, umlauts, etc.)',
value: 'R from title without diacritics'
}
];
friendlytag.administrativeList = [
{
label: '\{\{R from merge\}\}: redirect from a merged page in order to preserve its edit history',
value: 'R from merge'
},
{
label: '\{\{R to disambiguation page\}\}: redirect to a disambiguation page',
value: 'R to disambiguation page'
},
{
label: '\{\{R from duplicated article\}\}: redirect to a similar article in order to preserve its edit history',
value: 'R from duplicated article'
},
{
label: '\{\{R for as of\}\}: redirect page affects an \"as of ...\" link',
value: 'R for as of'
},
{
label: '\{\{R to decade\}\}: redirect from a year to the decade article',
value: 'R to decade'
},
{
label: '\{\{R from shortcut\}\}: redirect from a Wikipedia shortcut',
value: 'R from shortcut'
},
{
label: '\{\{R from CamelCase\}\}: redirect from a CamelCase title',
value: 'R from CamelCase'
},
{
label: '\{\{R from EXIF\}\}: redirect of a wikilink created from JPEG EXIF information (i.e. the \"metadata\" section on some image description pages)',
value: 'R from EXIF'
},
{
label: '\{\{R from school\}\}: redirect from a school article that had very little information',
value: 'R from school'
}
];
friendlytag.callbacks = {
main: function( self ) {
var form = self.responseXML.getElementById( 'editform' );
var tagRe, text = '', summaryText = '( tags.length > 1 ? 'Predlošci' : 'Predložak' )';
var tags = new Array(), groupableTags = new Array();
if( !isRedirect ) {
// Check for preexisting tags and separate tags into groupable and non-groupable arrays
Status.info( 'Info', 'Provjeravam već postojeće oznake na članku' );
for( var i = 0; i < self.params.tags.length; i++ ) {
tagRe = new RegExp( '(\\{\\{' + self.params.tags[i] + '(\\||\\}\\}))', 'im' );
if( !tagRe.exec( form.wpTextbox1.value ) ) {
if( friendlytag.groupHash[ self.params.tags[i] ] ) {
groupableTags = groupableTags.concat( self.params.tags[i] );
} else {
tags = tags.concat( self.params.tags[i] );
}
} else {
Status.info( 'Info', 'Predložak \{\{' + self.params.tags[i]
+ '\}\} već postoji u članku...izbacujem' );
}
}
} else {
// Check for preexisting tags
Status.info( 'Info', 'Provjeravam već postojeće oznake na preusmjeravanju' );
for( var i = 0; i < self.params.tags.length; i++ ) {
tagRe = new RegExp( '(\\{\\{' + self.params.tags[i] + '(\\||\\}\\}))', 'im' );
if( !tagRe.exec( form.wpTextbox1.value ) ) {
tags = tags.concat( self.params.tags[i] );
} else {
Status.info( 'Info', 'Predložak \{\{' + self.params.tags[i]
+ '\}\} već postoji na preusmjeravanju...izbacujem' );
}
}
}
if( !isRedirect ) {
text += form.wpTextbox1.value;
} else {
text = form.wpTextbox1.value + text;
}
summaryText += ' ' + ( tags.length > 1 ? 'dodani' : 'dodan' )
+ ' na ' + ( isRedirect ? 'preusmjeravanje.' : 'članak.' ) + FriendlyConfig.summaryAd;
var postData = {
'wpMinoredit': FriendlyConfig.markTaggedPagesAsMinor ? 1 : undefined,
'wpWatchthis': form.wpWatchthis.checked ? 1 : (FriendlyConfig.watchTaggedPages ? 1 : undefined),
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSummary': summaryText,
'wpTextbox1': text
};
self.post( postData );
if( FriendlyConfig.markTaggedPagesAsPatrolled && self.params.rcid != '' ) {
var query = {
'title': wgPageName,
'action': 'markpatrolled',
'rcid': self.params.rcid
};
var wikipedia_wiki = new Wikipedia.wiki( 'Označavam stranicu pregledanom', query );
wikipedia_wiki.post();
}
}
}
friendlytag.callback.evaluate = function friendlytagCallbackEvaluate(e) {
var form = e.target;
if( isRedirect ) {
var tags = form.getChecked( 'administrative' ).concat( form.getChecked( 'alternative' ) ).concat( form.getChecked( 'spelling' ) );
} else {
if( typeof( FriendlyConfig.customTagList ) == 'object' ) {
var tags = form.getChecked( 'notice' ).concat( form.getChecked( 'problem' ) ).concat( form.getChecked( 'maintenance' ) ).concat( form.getChecked( 'custom' ) );
} else {
var tags = form.getChecked( 'notice' ).concat( form.getChecked( 'problem' ) ).concat( form.getChecked( 'maintenance' ) );
}
}
var params;
if( tags.length == 0 ) {
alert( 'Morate odabrati barem jednu oznaku!' );
return;
}
if( !isRedirect ) {
params = {
tags: tags,
group: form.group.checked,
rcid: QueryString.exists( 'rcid' ) ? QueryString.get( 'rcid' ) : ''
}
} else {
params = {
tags: tags,
rcid: QueryString.exists( 'rcid' ) ? QueryString.get( 'rcid' ) : ''
}
}
Status.init( form );
var query = {
'title': wgPageName,
'action': 'submit'
};
Wikipedia.actionCompleted.redirect = wgPageName;
Wikipedia.actionCompleted.notice = "Označavanje završeno, ponovno učitavam članak za nekoliko sekundi";
var wikipedia_wiki = new Wikipedia.wiki( 'Article modification', query, friendlytag.callbacks.main );
wikipedia_wiki.params = params;
wikipedia_wiki.get();
}
// </nowiki>