Streamline code dealing with (undeployed) extends attribute

No need to create an expensive model here when all we need is a
single attribute.

Note this code is still behind a feature flag and not running
anywhere, except on the beta cluster.

Bug: T247922
Change-Id: Iea48837213b72a8d0f4b3cc9d9688d9a08315509
This commit is contained in:
thiemowmde 2024-05-02 17:09:16 +02:00
parent 891a757336
commit a531d4d82d

View file

@ -93,9 +93,7 @@ ve.ui.MWReferenceContextItem.prototype.getReuseWarning = function () {
* @return {jQuery|null}
*/
ve.ui.MWReferenceContextItem.prototype.getExtendsWarning = function () {
const refModel = ve.dm.MWReferenceModel.static.newFromReferenceNode( this.model );
if ( refModel.extendsRef ) {
if ( this.model.getAttribute( 'extendsRef' ) ) {
return $( '<div>' )
.addClass( 've-ui-mwReferenceContextItem-muted' )
.text( mw.msg( 'cite-ve-dialog-reference-editing-extends' ) );
@ -133,12 +131,12 @@ ve.ui.MWReferenceContextItem.prototype.getDescription = function () {
* @return {string|null}
*/
ve.ui.MWReferenceContextItem.prototype.getParentRef = function () {
const refModel = ve.dm.MWReferenceModel.static.newFromReferenceNode( this.model );
if ( !refModel.extendsRef ) {
const extendsRef = this.model.getAttribute( 'extendsRef' );
if ( !extendsRef ) {
return null;
}
const list = this.getFragment().getDocument().getInternalList();
const index = list.keys.indexOf( 'literal/' + refModel.extendsRef );
const index = list.keys.indexOf( 'literal/' + extendsRef );
return list.getItemNode( index ).element.attributes.originalHtml;
};