-
Notifications
You must be signed in to change notification settings - Fork 3
/
EasySummary.js
43 lines (36 loc) · 1.41 KB
/
EasySummary.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/*** Easy Summary ***/
// Easily use the last summary you used or load and save a summary
// Documentation at [[en:w:User:BrandonXLF/EasySummary]]
// By [[en:w:User:BrandonXLF]]
$(function() {
function addLinks(label, field) {
function updateField(storage) {
return function() {
var summary = $.trim(field.val()) || '';
field.val((summary && summary + ' ' || '') + mw.storage.get(storage));
};
}
function saveField(storage) {
return function() {
mw.storage.set(storage, field.val());
};
}
function makeLink(object, title, onClick) {
return $('<a>').text(object).attr('title', title).on('click', function(e) {
e.preventDefault();
onClick();
});
}
if (! $('#easySummary-container')[0]) {
var $last = makeLink('Last', 'Use the last typed edit summary', updateField('easySummary-last')),
$load = makeLink('Load', 'Load the saved edit summary', updateField('easySummary-saved')),
$save = makeLink('Save', 'Save an edit summary for later', saveField('easySummary-saved'));
label.append($('<span>').attr('id', 'easySummary-container').append(' ( ', $last, ' | ', $load, ' | ', $save, ' )'));
field.on('change', saveField('easySummary-last'));
}
}
addLinks($('[for=\'wpSummary\']'), $('#wpSummary'));
mw.hook('ve.saveDialog.stateChanged').add(function() {
addLinks(ve.init.target.saveDialog.$editSummaryLabel, ve.init.target.saveDialog.editSummaryInput.$input);
});
});