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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
( function ( mw, $ ) {
'use strict';
/**
* @event postEdit
* @member mw.hook
* @param {Object} [data] Optional data
* @param {string|jQuery|Array} [data.message] Message that listeners
* should use when displaying notifications. String for plain text,
* use array or jQuery object to pass actual nodes.
* @param {string|mw.user} [data.user=mw.user] User that made the edit.
*/
/**
* After the listener for #postEdit removes the notification.
*
* @event postEdit_afterRemoval
* @member mw.hook
*/
var config = mw.config.get( [ 'wgAction', 'wgCookiePrefix', 'wgCurRevisionId' ] ),
// This should match EditPage::POST_EDIT_COOKIE_KEY_PREFIX:
cookieKey = config.wgCookiePrefix + 'PostEditRevision' + config.wgCurRevisionId,
$div, id;
function showConfirmation( data ) {
data = data || {};
if ( data.message === undefined ) {
data.message = $.parseHTML( mw.message( 'postedit-confirmation', data.user || mw.user ).escaped() );
}
$div = $(
'<div class="postedit-container">' +
'<div class="postedit">' +
'<div class="postedit-icon postedit-icon-checkmark postedit-content"></div>' +
'<a href="#" class="postedit-close">×</a>' +
'</div>' +
'</div>'
);
if ( typeof data.message === 'string' ) {
$div.find( '.postedit-content' ).text( data.message );
} else if ( typeof data.message === 'object' ) {
$div.find( '.postedit-content' ).append( data.message );
}
$div
.click( fadeOutConfirmation )
.prependTo( 'body' );
id = setTimeout( fadeOutConfirmation, 3000 );
}
function fadeOutConfirmation() {
clearTimeout( id );
$div.find( '.postedit' ).addClass( 'postedit postedit-faded' );
setTimeout( removeConfirmation, 500 );
return false;
}
function removeConfirmation() {
$div.remove();
mw.hook( 'postEdit.afterRemoval' ).fire();
}
mw.hook( 'postEdit' ).add( showConfirmation );
if ( config.wgAction === 'view' && $.cookie( cookieKey ) === '1' ) {
$.cookie( cookieKey, null, { path: '/' } );
mw.config.set( 'wgPostEdit', true );
mw.hook( 'postEdit' ).fire();
}
} ( mediaWiki, jQuery ) );
|