/*
* Importálva az angol Wikipédiából:
* https://en.wikipedia.orghttps://wikines.com/hu/MediaWiki:Gadget-defaultsummaries.js
*
* Imported as of 09/06/2011 from ]
* Edited version from ]
* Implements default edit summary dropdown boxes
*/
(function () { // Wrap with anonymous function
/**
* @param {string} text
* @returns {OO.ui.MenuOptionWidget}
*/
function getOption(text) {
return new OO.ui.MenuOptionWidget({
data: text,
label: text,
});
}
/**
* @param {string} label
* @param {OO.ui.MenuOptionWidget} options
* @param {jQuery} $summaryBox
* @returns {jQuery}
*/
function getDropdown(label, options, $summaryBox) {
const dropdown = new OO.ui.DropdownWidget({
label: label,
menu: {
items: options
},
$overlay: true,
});
const menu = dropdown.getMenu();
menu.on('select', widget => {
if (widget) {
addSummary($summaryBox, widget.getData());
menu.selectItem();
dropdown.setLabel(label);
}
});
return dropdown.$element;
}
/**
* Add a canned summary text to the edit summary field.
* @param {jQuery} $summaryBox
* @param {string} text
*/
function addSummary($summaryBox, text) {
// Save the original value of the edit summary field
var editsummOriginalSummary = $summaryBox.val();
var newSummary = editsummOriginalSummary;
// Append old edit summary with space, if exists,
// and last character != space
if (newSummary.length !== 0 && newSummary.charAt(newSummary.length - 1) !== " ") {
newSummary += " ";
}
newSummary += text;
$summaryBox.val( newSummary ).trigger( 'change' );
}
/**
* For convenience, get a `<div>` with dropdown boxes with
* some canned edit summaries.
* @param {jQuery} $summaryBox The summary box to add the summaries to
*/
function getSummaryOptions($summaryBox) {
const div = document.createElement('div');
div.id = 'defaultsummaries';
const minorOptions = [
getOption("Törölt kép(ek) linkje ki"),
getOption("Elütések, nyelvtani javítások"),
getOption("Formázás"),
getOption("] vagy teszt szerkesztés ]a"),
getOption("Magyarázat nélküli törlés ]a"),
getOption("Kisebb lektorálás"),
];
const majorOptions = [
getOption("Azonnal törlendő"),
getOption("]"),
];
const namespaceNumber = mw.config.get('wgNamespaceNumber');
if (namespaceNumber === 0) {
majorOptions.push(
getOption("Szócikk bővítése"),
getOption("Forráshivatkozás hozzáadása"),
getOption("Kategória hozzáadása/eltávolítása"),
getOption("Külső hivatkozás hozzáadása/eltávolítása"),
getOption("Belső hivatkozások hozzáadása/eltávolítása"),
getOption("Forrás nélküli tartalom eltávolítása"),
getOption("] eltávolítása"),
getOption("Javítgatások"),
getOption("Nagyobb lektorálás")
);
} else {
majorOptions.push(
getOption("Válasz"),
getOption("Megjegyzés"),
getOption("Javaslat"),
getOption("Kérdés"),
getOption("Megoldva/kész")
);
// vitalapok (szerkesztői kivételével)
if ((namespaceNumber % 2 !== 0) && (namespaceNumber !== 3)) {
majorOptions.push(getOption("] kihelyezése"));
}
}
getDropdown("Gyakori szerkesztési összefoglalók", majorOptions, $summaryBox).appendTo(div);
getDropdown("Gyakori apró szerkesztési összefoglalók", minorOptions, $summaryBox).appendTo(div);
return div;
}
mw.hook('ve.saveDialog.stateChanged').add(() => {
//.ve-init-mw-viewPageTarget-saveDialog-checkboxes
mw.loader.using('oojs-ui-widgets').then(() => {
const $dialogBody = ve.init.target.saveDialog.$body;
if ($dialogBody.find('#defaultsummaries').length === 0) {
const $summaryBox = $dialogBody.find('.ve-ui-mwSaveDialog-summary textarea');
$dialogBody.find('.ve-ui-mwSaveDialog-options').before(getSummaryOptions($summaryBox));
}
});
});
mw.hook('wikipage.editform').add(($editForm) => {
mw.loader.using('oojs-ui-widgets').then(() => {
if ($editForm.find('#defaultsummaries').length === 0) {
const $summaryBox = $editForm.find('#wpSummary');
const div = getSummaryOptions($summaryBox);
div.style.display = 'flex';
div.style.width = '75%';
$editForm.find('.editCheckboxes').before(div);
}
});
});
}()); // End wrap with anonymous function