2018-12-12 18:37:19 +00:00
|
|
|
/**
|
|
|
|
* @module gateway/reference
|
|
|
|
*/
|
|
|
|
|
2019-01-24 15:33:29 +00:00
|
|
|
import { previewTypes } from '../preview/model';
|
|
|
|
|
2019-01-24 18:24:36 +00:00
|
|
|
const $ = jQuery;
|
2018-12-12 18:37:19 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @return {Gateway}
|
|
|
|
*/
|
|
|
|
export default function createReferenceGateway() {
|
|
|
|
/**
|
|
|
|
* @param {mw.Title} title
|
|
|
|
* @returns {AbortPromise<PreviewModel>}
|
|
|
|
*/
|
2019-01-23 16:50:19 +00:00
|
|
|
function fetchPreviewForTitle( title ) {
|
2019-01-24 10:37:30 +00:00
|
|
|
// Need to encode the fragment again as mw.Title returns it as decoded text
|
|
|
|
const id = title.getFragment().replace( / /g, '_' );
|
2018-12-12 18:37:19 +00:00
|
|
|
|
|
|
|
return $.Deferred().resolve( {
|
2019-01-24 18:24:36 +00:00
|
|
|
// TODO: Provide different titles depending on the type of reference (e.g. "Book")
|
|
|
|
// title: '',
|
2019-01-28 12:22:31 +00:00
|
|
|
url: `#${ id }`,
|
2018-12-12 18:37:19 +00:00
|
|
|
// TODO: Can probably be removed
|
|
|
|
// languageCode: 'en',
|
|
|
|
// languageDirection: 'ltr',
|
2019-01-28 12:22:31 +00:00
|
|
|
extract: $( `#${ $.escapeSelector( id ) } .reference-text` ).html(),
|
2018-12-12 18:37:19 +00:00
|
|
|
type: previewTypes.TYPE_REFERENCE
|
|
|
|
// TODO: Can probably be removed
|
|
|
|
// thumbnail: '',
|
|
|
|
// pageId: '0'
|
|
|
|
} ).promise( { abort() {} } );
|
|
|
|
}
|
|
|
|
|
|
|
|
return {
|
2019-01-23 16:50:19 +00:00
|
|
|
fetchPreviewForTitle
|
2018-12-12 18:37:19 +00:00
|
|
|
};
|
|
|
|
}
|