Use showReference function rather than deprecated ReferenceDrawer
Bug: T217295 Depends-On: I2ef762dbc1458411dd8ed746b7e829a2924740e3 Change-Id: Ia90ba47f152315fd39da368edac986b55f8bd5a0
This commit is contained in:
parent
bfdfc1165c
commit
59fe37cde1
|
@ -1,37 +1,19 @@
|
||||||
module.exports = function () {
|
module.exports = function () {
|
||||||
var drawer,
|
var M = mw.mobileFrontend,
|
||||||
M = mw.mobileFrontend,
|
|
||||||
router = require( 'mediawiki.router' ),
|
|
||||||
mobile = M.require( 'mobile.startup' ),
|
mobile = M.require( 'mobile.startup' ),
|
||||||
|
references = mobile.references,
|
||||||
currentPage = mobile.currentPage(),
|
currentPage = mobile.currentPage(),
|
||||||
currentPageHTMLParser = mobile.currentPageHTMLParser(),
|
currentPageHTMLParser = mobile.currentPageHTMLParser(),
|
||||||
ReferencesGateway = mobile.ReferencesGateway,
|
|
||||||
ReferencesHtmlScraperGateway = mobile.ReferencesHtmlScraperGateway,
|
ReferencesHtmlScraperGateway = mobile.ReferencesHtmlScraperGateway,
|
||||||
ReferencesDrawer = mobile.ReferencesDrawer;
|
gateway = new ReferencesHtmlScraperGateway( new mw.Api() );
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a ReferenceDrawer based on the currently available
|
|
||||||
* ReferenceGateway
|
|
||||||
*
|
|
||||||
* @ignore
|
|
||||||
* @return {ReferencesDrawer}
|
|
||||||
*/
|
|
||||||
function referenceDrawerFactory() {
|
|
||||||
var gateway = new ReferencesHtmlScraperGateway( new mw.Api() );
|
|
||||||
|
|
||||||
return new ReferencesDrawer( {
|
|
||||||
gateway: gateway
|
|
||||||
} );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Event handler to show reference when a reference link is clicked
|
* Event handler to show reference when a reference link is clicked
|
||||||
* @ignore
|
* @ignore
|
||||||
* @param {JQuery.Event} ev Click event of the reference element
|
* @param {JQuery.Event} ev Click event of the reference element
|
||||||
* @param {ReferencesDrawer} drawer to show the reference in
|
|
||||||
*/
|
*/
|
||||||
function showReference( ev, drawer ) {
|
function showReference( ev ) {
|
||||||
var urlComponents, result,
|
var urlComponents,
|
||||||
$dest = $( ev.currentTarget ),
|
$dest = $( ev.currentTarget ),
|
||||||
href = $dest.attr( 'href' );
|
href = $dest.attr( 'href' );
|
||||||
|
|
||||||
|
@ -43,27 +25,8 @@ module.exports = function () {
|
||||||
if ( urlComponents.length > 1 ) {
|
if ( urlComponents.length > 1 ) {
|
||||||
href = '#' + urlComponents[ 1 ];
|
href = '#' + urlComponents[ 1 ];
|
||||||
}
|
}
|
||||||
result = drawer.showReference( href, currentPage, $dest.text(), currentPageHTMLParser );
|
references.showReference( href, currentPage, $dest.text(),
|
||||||
// Previously showReference method returns nothing so we check its truthy
|
currentPageHTMLParser, gateway );
|
||||||
// Can be removed when I5a7b23f60722eb5017a85c68f38844dd460f8b63 is merged.
|
|
||||||
if ( result ) {
|
|
||||||
result.then( function () {}, function ( err ) {
|
|
||||||
if ( err === ReferencesGateway.ERROR_NOT_EXIST ) {
|
|
||||||
router.navigate( href );
|
|
||||||
}
|
|
||||||
} );
|
|
||||||
}
|
|
||||||
|
|
||||||
// don't hide drawer (stop propagation of click) if it is already shown
|
|
||||||
// (e.g. click another reference)
|
|
||||||
if ( drawer.isVisible() ) {
|
|
||||||
ev.stopPropagation();
|
|
||||||
} else {
|
|
||||||
// flush any existing reference information
|
|
||||||
drawer.render( {
|
|
||||||
text: undefined
|
|
||||||
} );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -74,10 +37,7 @@ module.exports = function () {
|
||||||
* @param {JQuery.Event} ev Click event of the reference element
|
* @param {JQuery.Event} ev Click event of the reference element
|
||||||
*/
|
*/
|
||||||
function onClickReference( ev ) {
|
function onClickReference( ev ) {
|
||||||
if ( !drawer ) {
|
showReference( ev );
|
||||||
drawer = referenceDrawerFactory();
|
|
||||||
}
|
|
||||||
showReference( ev, drawer );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
|
|
Loading…
Reference in New Issue