mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-11-24 06:24:08 +00:00
Merge "De-duplicate replacePageContent methods between desktop and mobile"
This commit is contained in:
commit
77565dabf3
|
@ -577,7 +577,6 @@ ve.init.mw.ArticleTarget.prototype.loadFail = function () {
|
||||||
* Replace the page content with new HTML.
|
* Replace the page content with new HTML.
|
||||||
*
|
*
|
||||||
* @method
|
* @method
|
||||||
* @abstract
|
|
||||||
* @param {string} html Rendered HTML from server
|
* @param {string} html Rendered HTML from server
|
||||||
* @param {string} categoriesHtml Rendered categories HTML from server
|
* @param {string} categoriesHtml Rendered categories HTML from server
|
||||||
* @param {string} displayTitle HTML to show as the page title
|
* @param {string} displayTitle HTML to show as the page title
|
||||||
|
@ -586,7 +585,32 @@ ve.init.mw.ArticleTarget.prototype.loadFail = function () {
|
||||||
* @param {string} contentSub HTML to show as the content subtitle
|
* @param {string} contentSub HTML to show as the content subtitle
|
||||||
* @param {Array} sections Section data to display in the TOC
|
* @param {Array} sections Section data to display in the TOC
|
||||||
*/
|
*/
|
||||||
ve.init.mw.ArticleTarget.prototype.replacePageContent = null;
|
ve.init.mw.ArticleTarget.prototype.replacePageContent = function (
|
||||||
|
html, categoriesHtml, displayTitle, lastModified, contentSub, sections
|
||||||
|
) {
|
||||||
|
// eslint-disable-next-line no-jquery/no-append-html
|
||||||
|
this.$editableContent.find( '.mw-parser-output' ).first().replaceWith( html );
|
||||||
|
mw.hook( 'wikipage.content' ).fire( this.$editableContent );
|
||||||
|
|
||||||
|
if ( displayTitle ) {
|
||||||
|
// eslint-disable-next-line no-jquery/no-html
|
||||||
|
$( '#firstHeading' ).html( displayTitle );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Categories are only shown in AMC on mobile
|
||||||
|
if ( $( '#catlinks' ).length ) {
|
||||||
|
var $categories = $( $.parseHTML( categoriesHtml ) );
|
||||||
|
mw.hook( 'wikipage.categories' ).fire( $categories );
|
||||||
|
$( '#catlinks' ).replaceWith( $categories );
|
||||||
|
}
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-jquery/no-html
|
||||||
|
$( '#contentSub, .minerva__subtitle' ).html( contentSub );
|
||||||
|
|
||||||
|
this.setRealRedirectInterface();
|
||||||
|
|
||||||
|
mw.hook( 'wikipage.tableOfContents' ).fire( sections );
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle successful DOM save event.
|
* Handle successful DOM save event.
|
||||||
|
|
|
@ -1231,8 +1231,11 @@ ve.init.mw.DesktopArticleTarget.prototype.onWindowPopState = function ( e ) {
|
||||||
* @inheritdoc
|
* @inheritdoc
|
||||||
*/
|
*/
|
||||||
ve.init.mw.DesktopArticleTarget.prototype.replacePageContent = function (
|
ve.init.mw.DesktopArticleTarget.prototype.replacePageContent = function (
|
||||||
html, categoriesHtml, displayTitle, lastModified, contentSub, sections
|
html, categoriesHtml, displayTitle, lastModified /* , contentSub, sections */
|
||||||
) {
|
) {
|
||||||
|
// Parent method
|
||||||
|
ve.init.mw.DesktopArticleTarget.super.prototype.replacePageContent.apply( this, arguments );
|
||||||
|
|
||||||
if ( lastModified ) {
|
if ( lastModified ) {
|
||||||
// If we were not viewing the most recent revision before (a requirement
|
// If we were not viewing the most recent revision before (a requirement
|
||||||
// for lastmod to have been added by MediaWiki), we will be now.
|
// for lastmod to have been added by MediaWiki), we will be now.
|
||||||
|
@ -1251,25 +1254,8 @@ ve.init.mw.DesktopArticleTarget.prototype.replacePageContent = function (
|
||||||
) );
|
) );
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line no-jquery/no-append-html
|
|
||||||
this.$editableContent.find( '.mw-parser-output' ).first().replaceWith( html );
|
|
||||||
mw.hook( 'wikipage.content' ).fire( this.$editableContent );
|
|
||||||
if ( displayTitle ) {
|
|
||||||
// eslint-disable-next-line no-jquery/no-html
|
|
||||||
$( '#firstHeading' ).html( displayTitle );
|
|
||||||
}
|
|
||||||
|
|
||||||
var $categories = $( $.parseHTML( categoriesHtml ) );
|
|
||||||
mw.hook( 'wikipage.categories' ).fire( $categories );
|
|
||||||
$( '#catlinks' ).replaceWith( $categories );
|
|
||||||
this.$originalCategories = null;
|
this.$originalCategories = null;
|
||||||
|
|
||||||
// eslint-disable-next-line no-jquery/no-html
|
|
||||||
$( '#contentSub' ).html( contentSub );
|
|
||||||
this.setRealRedirectInterface();
|
|
||||||
|
|
||||||
mw.hook( 'wikipage.tableOfContents' ).fire( sections );
|
|
||||||
|
|
||||||
// Re-set any edit section handlers now that the page content has been replaced
|
// Re-set any edit section handlers now that the page content has been replaced
|
||||||
mw.libs.ve.setupEditLinks();
|
mw.libs.ve.setupEditLinks();
|
||||||
};
|
};
|
||||||
|
|
|
@ -35,6 +35,9 @@ ve.init.mw.MobileArticleTarget = function VeInitMwMobileArticleTarget( overlay,
|
||||||
// Parent constructor
|
// Parent constructor
|
||||||
ve.init.mw.MobileArticleTarget.super.call( this, config );
|
ve.init.mw.MobileArticleTarget.super.call( this, config );
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-jquery/no-global-selector
|
||||||
|
this.$editableContent = $( '#mw-content-text' );
|
||||||
|
|
||||||
if ( config.section !== undefined ) {
|
if ( config.section !== undefined ) {
|
||||||
this.section = config.section;
|
this.section = config.section;
|
||||||
}
|
}
|
||||||
|
@ -402,40 +405,16 @@ ve.init.mw.MobileArticleTarget.prototype.showSaveDialog = function () {
|
||||||
* @inheritdoc
|
* @inheritdoc
|
||||||
*/
|
*/
|
||||||
ve.init.mw.MobileArticleTarget.prototype.replacePageContent = function (
|
ve.init.mw.MobileArticleTarget.prototype.replacePageContent = function (
|
||||||
html, categoriesHtml, displayTitle, lastModified, contentSub, sections
|
html, categoriesHtml, displayTitle, lastModified /* , contentSub, sections */
|
||||||
) {
|
) {
|
||||||
var $content = $( $.parseHTML( html ) );
|
// Parent method
|
||||||
|
ve.init.mw.MobileArticleTarget.super.prototype.replacePageContent.apply( this, arguments );
|
||||||
|
|
||||||
if ( lastModified ) {
|
if ( lastModified ) {
|
||||||
// TODO: Update the last-modified-bar with the correct info
|
// TODO: Update the last-modified-bar with the correct info
|
||||||
// eslint-disable-next-line no-jquery/no-global-selector
|
// eslint-disable-next-line no-jquery/no-global-selector
|
||||||
$( '.last-modified-bar' ).remove();
|
$( '.last-modified-bar' ).remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line no-jquery/no-global-selector
|
|
||||||
var $editableContent = $( '#mw-content-text' );
|
|
||||||
$editableContent.find( '.mw-parser-output' ).replaceWith( $content );
|
|
||||||
mw.hook( 'wikipage.content' ).fire( $editableContent );
|
|
||||||
if ( displayTitle ) {
|
|
||||||
// eslint-disable-next-line no-jquery/no-html, no-jquery/no-global-selector
|
|
||||||
$( '#firstHeading' ).html( displayTitle );
|
|
||||||
}
|
|
||||||
|
|
||||||
// Categories are only shown in AMC
|
|
||||||
// eslint-disable-next-line no-jquery/no-global-selector
|
|
||||||
if ( $( '#catlinks' ).length ) {
|
|
||||||
var $categories = $( $.parseHTML( categoriesHtml ) );
|
|
||||||
mw.hook( 'wikipage.categories' ).fire( $categories );
|
|
||||||
// eslint-disable-next-line no-jquery/no-global-selector
|
|
||||||
$( '#catlinks' ).replaceWith( $categories );
|
|
||||||
}
|
|
||||||
|
|
||||||
// eslint-disable-next-line no-jquery/no-global-selector, no-jquery/no-html
|
|
||||||
$( '.minerva__subtitle' ).html( contentSub );
|
|
||||||
|
|
||||||
mw.hook( 'wikipage.tableOfContents' ).fire( sections );
|
|
||||||
|
|
||||||
this.setRealRedirectInterface();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue