mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-12-01 17:36:35 +00:00
78a52f1f80
* Add ve.init.mw.LinkCache to track page existence and transparently query it * Populate it with initial data from the parser cache if available, obtained in the VE API module * Use linkCache data in link annotation rendering This doesn't yet integrate the LinkCache with other components like the link inspector. That should be done so we can deduplicate the existence checks. Additionally, we should generalize LinkCache and use it for the category existence/status checks as well. Bug: 37901 Change-Id: I9fd43e8c3864dd375cf6dadfdeedd05e4fe9cf3b
47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
/*!
|
|
* VisualEditor ContentEditable MWInternalLinkAnnotation class.
|
|
*
|
|
* @copyright 2011-2014 VisualEditor Team and others; see AUTHORS.txt
|
|
* @license The MIT License (MIT); see LICENSE.txt
|
|
*/
|
|
|
|
/**
|
|
* ContentEditable MediaWiki internal link annotation.
|
|
*
|
|
* @class
|
|
* @extends ve.ce.LinkAnnotation
|
|
* @constructor
|
|
* @param {ve.dm.MWInternalLinkAnnotation} model Model to observe
|
|
* @param {ve.ce.ContentBranchNode} [parentNode] Node rendering this annotation
|
|
* @param {Object} [config] Configuration options
|
|
*/
|
|
ve.ce.MWInternalLinkAnnotation = function VeCeMWInternalLinkAnnotation( model, parentNode, config ) {
|
|
var annotation = this;
|
|
// Parent constructor
|
|
ve.ce.LinkAnnotation.call( this, model, parentNode, config );
|
|
|
|
// DOM changes
|
|
this.$element.addClass( 've-ce-mwInternalLinkAnnotation' );
|
|
this.$element.attr( 'title', model.getAttribute( 'title' ) );
|
|
|
|
// Style based on link cache information
|
|
ve.init.platform.linkCache.get( model.getAttribute( 'lookupTitle' ) )
|
|
.done( function ( data ) {
|
|
if ( data.missing ) {
|
|
annotation.$element.addClass( 'new' );
|
|
}
|
|
} );
|
|
};
|
|
|
|
/* Inheritance */
|
|
|
|
OO.inheritClass( ve.ce.MWInternalLinkAnnotation, ve.ce.LinkAnnotation );
|
|
|
|
/* Static Properties */
|
|
|
|
ve.ce.MWInternalLinkAnnotation.static.name = 'link/mwInternal';
|
|
|
|
/* Registration */
|
|
|
|
ve.ce.annotationFactory.register( ve.ce.MWInternalLinkAnnotation );
|