From ca32f08966f1b51fcb19460f0996bb0c4048e6fe Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Sat, 3 Dec 2011 13:29:22 +0100 Subject: Update to MediaWiki 1.18.0 * also update ArchLinux skin to chagnes in MonoBook * Use only css to hide our menu bar when printing --- .../modules/jquery.wikiEditor.previewDialog.js | 131 +++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 extensions/WikiEditor/modules/jquery.wikiEditor.previewDialog.js (limited to 'extensions/WikiEditor/modules/jquery.wikiEditor.previewDialog.js') diff --git a/extensions/WikiEditor/modules/jquery.wikiEditor.previewDialog.js b/extensions/WikiEditor/modules/jquery.wikiEditor.previewDialog.js new file mode 100644 index 00000000..72003055 --- /dev/null +++ b/extensions/WikiEditor/modules/jquery.wikiEditor.previewDialog.js @@ -0,0 +1,131 @@ +/* Publish module for wikiEditor */ +( function( $ ) { $.wikiEditor.modules.previewDialog = { + +/** + * Compatability map + */ +'browsers': { + // Left-to-right languages + 'ltr': { + 'msie': [['>=', 7]], + 'firefox': [['>=', 3]], + 'opera': [['>=', 9.6]], + 'safari': [['>=', 4]] + }, + // Right-to-left languages + 'rtl': { + 'msie': [['>=', 8]], + 'firefox': [['>=', 3]], + 'opera': [['>=', 9.6]], + 'safari': [['>=', 4]] + } +}, +/** + * Internally used functions + */ +fn: { + /** + * Creates a publish module within a wikiEditor + * @param context Context object of editor to create module in + * @param config Configuration object to create module from + */ + create: function( context, config ) { + // Build the dialog behind the Publish button + var dialogID = 'wikiEditor-' + context.instance + '-preview-dialog'; + $.wikiEditor.modules.dialogs.fn.create( + context, + { + preview: { + id: dialogID, + titleMsg: 'wikieditor-preview-tab', + html: '\ +
\ +
\ + ', + init: function() { + }, + dialog: { + buttons: { + 'wikieditor-publish-dialog-publish': function() { + var minorChecked = $( '#wikiEditor-' + context.instance + + '-dialog-minor' ).is( ':checked' ) ? + 'checked' : ''; + var watchChecked = $( '#wikiEditor-' + context.instance + + '-dialog-watch' ).is( ':checked' ) ? + 'checked' : ''; + $( '#wpMinoredit' ).attr( 'checked', minorChecked ); + $( '#wpWatchthis' ).attr( 'checked', watchChecked ); + $( '#wpSummary' ).val( $( '#wikiEditor-' + context.instance + + '-dialog-summary' ).val() ); + $( '#editform' ).submit(); + }, + 'wikieditor-publish-dialog-goback': function() { + $(this).dialog( 'close' ); + } + }, + resizable: false, + height: $( 'body' ).height() - 100, + width: $( 'body' ).width() - 300, + position: ['center', 'top'], + open: function() { + // Gets the latest copy of the wikitext + var wikitext = context.fn.getContents(); + var $dialog = $( '#' + dialogID ); + $dialog + .css( 'position', 'relative' ) + .css( 'height', $( 'body' ).height() - 200 ) + .parent() + .css( 'top', '25px' ); + // $dialog.dialog( 'option', 'width', $( 'body' ).width() - 300 ); + // Aborts when nothing has changed since the last preview + if ( context.modules.preview.previewText == wikitext ) { + return; + } + + $dialog.find( '.wikiEditor-preview-dialog-contents' ).empty(); + $dialog.find( '.wikiEditor-ui-loading' ).show(); + $.post( + mw.util.wikiScript( 'api' ), + { + 'action': 'parse', + 'title': mw.config.get( 'wgPageName' ), + 'text': wikitext, + 'prop': 'text', + 'pst': '', + 'format': 'json' + }, + function( data ) { + if ( + typeof data.parse == 'undefined' || + typeof data.parse.text == 'undefined' || + typeof data.parse.text['*'] == 'undefined' + ) { + return; + } + context.modules.preview.previewText = wikitext; + $dialog.find( '.wikiEditor-ui-loading' ).hide(); + $dialog.find( '.wikiEditor-preview-dialog-contents' ) + .html( '

' + + mw.config.get( 'wgTitle' ) + '

' + + data.parse.text['*'] ) + .find( 'a:not([href^=#])' ).click( function() { return false; } ); + }, + 'json' + ); + } + }, + resizeme: false + } + } + ); + context.fn.addButton( { + 'captionMsg': 'wikieditor-preview-tab', + 'action': function() { + context.$textarea.wikiEditor( 'openDialog', 'preview'); + return false; + } + } ); + } +} + +}; } )( jQuery ); -- cgit v1.2.3-54-g00ecf