LivePreview: Wrap content preview with mw-content-*
authorFomafix <fomafix@googlemail.com>
Sat, 21 Feb 2015 15:08:16 +0000 (15:08 +0000)
committer[[mw:User:Fomafix]] <gerritpatchuploader@gmail.com>
Sat, 21 Feb 2015 15:08:16 +0000 (15:08 +0000)
The content container is needed for CSS selectors based on the direction
of the page content language.

Bug: T85531
Change-Id: I78f6b82972621da8dddc24f0d6d6b2293f7d8876

includes/EditPage.php
resources/src/mediawiki.action/mediawiki.action.edit.preview.js

index f5d98a7..0d5e63c 100644 (file)
@@ -2992,6 +2992,12 @@ HTML
 
                if ( $this->formtype == 'preview' ) {
                        $this->showPreview( $previewOutput );
+               } else {
+                       // Empty content container for LivePreview
+                       $pageViewLang = $this->mTitle->getPageViewLanguage();
+                       $attribs = array( 'lang' => $pageViewLang->getHtmlCode(), 'dir' => $pageViewLang->getDir(),
+                               'class' => 'mw-content-' . $pageViewLang->getDir() );
+                       $wgOut->addHTML( Html::rawElement( 'div', $attribs ) );
                }
 
                $wgOut->addHTML( '</div>' );
index e4ccf2b..7e7fe91 100644 (file)
                        }
                        request = api.post( postData );
                        request.done( function ( response ) {
-                               var li, newList, $next, $parent, $list;
+                               var li, newList, $content, $parent, $list;
                                if ( response.parse.modules ) {
                                        mw.loader.load( response.parse.modules.concat(
                                                response.parse.modulescripts,
                                }
 
                                if ( response.parse.text['*'] ) {
-                                       $next = $wikiPreview.next();
-                                       // If there is no next node, use parent instead.
-                                       // Only query parent if needed, false otherwise.
-                                       $parent = !$next.length && $wikiPreview.parent();
-
-                                       $wikiPreview
+                                       $content = $wikiPreview.children( '.mw-content-ltr,.mw-content-rtl' );
+                                       $content
                                                .detach()
                                                .html( response.parse.text['*'] );
 
-                                       mw.hook( 'wikipage.content' ).fire( $wikiPreview );
+                                       mw.hook( 'wikipage.content' ).fire( $content );
 
                                        // Reattach
-                                       if ( $parent ) {
-                                               $parent.append( $wikiPreview );
-                                       } else {
-                                               $next.before( $wikiPreview );
-                                       }
+                                       $wikiPreview.append( $content );
+
                                        $wikiPreview.show();
 
                                }