Benutzer:Schnark-Bot/Infobox Krankenhaus
Zur Navigation springen
Zur Suche springen
Umstellung von {{Infobox Krankenhaus}}
Code
[Bearbeiten | Quelltext bearbeiten](new JSBot('Vorlage:Infobox Krankenhaus')).embeddedin().not(new JSBot('Vorlage:Infobox Krankenhaus'))
.edit(function (t, p) {
var text = p.text,
infobox = mw.libs.Template('Infobox Krankenhaus', text);
if (infobox === null) {
return {reason: mw.libs.templateGetLastError()};
}
//Staat + Bundesland/Kanton -> Region-ISO
var iso_alt = (infobox.getVal('Region-ISO') || '').replace(/<!--.*?-->/g, '').replace(/^\s+|\s+$/g, ''),
iso_neu = getISO(
(infobox.getVal('Staat') || '') + (infobox.getVal('Land') || ''),
(infobox.getVal('Bundesland') || '') + (infobox.getVal('Kanton') || '') + (infobox.getVal('Bundeslang') || '')
);
if (iso_alt === iso_neu) {
p.isook = '';
} else {
if (iso_alt.indexOf('-') === -1 && iso_neu !== '') { //neue ist besser als alte
infobox.change('Region-ISO', iso_neu) || infobox.insert('Region-ISO', iso_neu, 'Staat');
}
}
infobox.remove('Staat');
infobox.remove('Land');
infobox.remove('Bundesland');
infobox.remove('Kanton');
infobox.remove('Bundeslang');
//Leitung + Leitungstitel -> Kaufmännische_Leitung + Kaufmännischer_Leitungstitel & Medizinische_Leitung + Medizinischer_Leitungstitel
var leiter = infobox.getVal('Leitung') || '',
titel = infobox.getVal('Leitungstitel') || '',
k_leiter = '', k_titel = '',
m_leiter = '', m_titel = '';
if (titel.indexOf('Ärztliche') > -1 || titel.indexOf('Medizinische') > -1) {
m_leiter = leiter;
m_titel = titel;
} else {
k_leiter = leiter;
k_titel = titel;
}
infobox.insert('Kaufmännische_Leitung', k_leiter, 'Leitung');
infobox.insert('Kaufmännischer_Leitungstitel', k_titel, 'Kaufmännische_Leitung');
infobox.insert('Medizinische_Leitung', m_leiter, 'Kaufmännischer_Leitungstitel');
infobox.insert('Medizinischer_Leitungstitel', m_titel, 'Medizinische_Leitung');
infobox.remove('Leitung');
infobox.remove('Leitungstitel');
infobox.remove('Geschäftsführer');
//Nebenbox entfernen, falls ohne Wert
if ((infobox.getVal('Nebenbox') || '').replace(/<!--.*?-->/g, '').replace(/\s/g, '') === '') {
infobox.remove('Nebenbox');
} else {
infobox.change('Nebenbox', 'x');
}
//davon Ärzte -> Ärzte, Zugehörigkeit -> Versorgungsgebiet
infobox.rename('davon Ärzte', 'Ärzte');
infobox.rename('Zugehörigkeit', 'Versorgungsgebiet');
//+ Ambulant, Stationär
infobox.insert('Ambulant', '');
infobox.insert('Stationär', '');
//Website formatieren
var website = infobox.getVal('Website') || '[';
if (website.indexOf('[') === -1) {
if (website.indexOf('www.') === 0) {
website = 'http://' + website;
}
website = '[' + website + ' ' + website.replace(/^https?:(www\.)?/, '').replace(/\/.*$/, '') + ']';
infobox.change('Website', website);
}
//Falschschreibungen
infobox.rename('Jahresbilanz', 'Jahresetat');
infobox.rename('Mitarbeiter', 'Mitarbeiterzahl');
infobox.rename('[[Versorgungsstufe]]', 'Versorgungsstufe');
infobox.rename('Träger', 'Trägerschaft');
infobox.rename('Stadt', 'Ort');
//unbekannte Parameter
infobox.remove('Studenten');
infobox.remove('Institutskennzeichen');
infobox.remove('Anzahl Kliniken');
infobox.remove('Anzahl Kompetenzzentren');
infobox.remove('davon Pfleger');
infobox.remove('davon Professoren');
infobox.remove('Studentenzahl');
infobox.remove('Fachabteilungen');
//sortieren
infobox.sort([
'Name',
'Logo',
'Logogrösse',
'Trägerschaft',
'Ort',
'Versorgungsgebiet',
'Breitengrad',
'Längengrad',
'Region-ISO',
'Nebenbox',
'Medizinische_Leitung',
'Medizinischer_Leitungstitel',
'Versorgungsstufe',
'Ärzte',
'Fachgebiete',
'Stationär',
'Ambulant',
'Kaufmännische_Leitung',
'Kaufmännischer_Leitungstitel',
'Bettenzahl',
'Mitarbeiterzahl',
'Jahresetat',
'Gründungsdatum',
'Website'
]);
//einrücken
infobox.setIndention(undefined, undefined, undefined, -31);
infobox.normalize();
if (infobox.validate({
'Name': {optional: true},
'Logo': {optional: true},
'Logogrösse': {optional: true, re: /^(?:|<!--.*-->|\d+px)\s*$/},
'Trägerschaft': {},
'Ort': {},
'Versorgungsgebiet': {},
'Breitengrad': {re: /^(?:\d\d?\/\d\d?\/\d\d?(?:\.\d+)?\/[NS]|-?\d+(?:\.\d+)?)\s*$/},
'Längengrad': {re: /^(?:\d\d?\/\d\d?\/\d\d?(?:\.\d+)?\/[WEO]|-?\d+(?:\.\d+)?)\s*$/},
'Region-ISO': {re: /^[A-Z]+(?:-[A-Z0-9]+)?$/},
'Nebenbox': {optional: true, re: /^x$/},
'Medizinische_Leitung': {},
'Medizinischer_Leitungstitel': {},
'Versorgungsstufe': {},
'Ärzte': {},
'Fachgebiete': {},
'Stationär': {},
'Ambulant': {},
'Kaufmännische_Leitung': {},
'Kaufmännischer_Leitungstitel': {},
'Bettenzahl': {},
'Mitarbeiterzahl': {},
'Jahresetat': {},
'Gründungsdatum': {},
'Website': {re: /http/}
})) {
p.valid = '';
} else {
p.valid = mw.libs.templateGetLastError();
}
return {text: infobox.toString(), summary: 'Bot: Stelle [[Vorlage:Infobox Krankenhaus]] um'};
}/*, 'simulate'*/)
.alert(['#', 'title', 'editOK', 'editStatus', 'isook', 'valid'], botlog);