Move the '@' prefix into the PingNode, rather than plain text

Depends-On: I49733aa6aa2c1e61a88e7c88e84f1f4338acfac1
Change-Id: I9586d07ded0e41afdcfbd6e46364bb1f837cf1c0
This commit is contained in:
Bartosz Dziewoński 2020-06-29 15:57:07 +02:00 committed by Esanders
parent f4106e8dc7
commit bca14cbe03
3 changed files with 17 additions and 8 deletions

View file

@ -38,7 +38,9 @@ OO.mixinClass( CeMWPingNode, ve.ce.FocusableNode );
CeMWPingNode.static.name = 'mwPing';
CeMWPingNode.static.tagName = 'a';
CeMWPingNode.static.tagName = 'span';
CeMWPingNode.static.deleteCommandName = 'insertAndOpenMWUsernameCompletions';
CeMWPingNode.static.getDescription = function ( model ) {
return model.getAttribute( 'user' );
@ -51,14 +53,16 @@ CeMWPingNode.static.getDescription = function ( model ) {
*/
CeMWPingNode.prototype.initialize = function () {
var model = this.getModel(),
prefix = mw.msg( 'discussiontools-replywidget-mention-prefix' ),
user = model.getAttribute( 'user' ),
title = mw.Title.makeTitle( mw.config.get( 'wgNamespaceIds' ).user, user );
title = mw.Title.makeTitle( mw.config.get( 'wgNamespaceIds' ).user, user ),
$link;
// Parent method
CeMWPingNode.super.prototype.initialize.call( this );
// DOM changes
this.$element
$link = $( '<a>' )
.addClass( 'dt-ce-mwPingNode' )
.attr( {
href: title.getUrl(),
@ -68,9 +72,13 @@ CeMWPingNode.prototype.initialize = function () {
ve.init.platform.linkCache.styleElement(
title.getPrefixedText(),
this.$element
$link
);
this.$element.append(
prefix,
$link
);
};
/* Registration */

View file

@ -48,6 +48,7 @@ DmMWPingNode.static.disallowedAnnotationTypes = [ 'link' ];
DmMWPingNode.static.toDomElements = function ( dataElement, doc, converter ) {
var domElements,
prefix = mw.msg( 'discussiontools-replywidget-mention-prefix' ),
title = mw.Title.makeTitle( mw.config.get( 'wgNamespaceIds' ).user, dataElement.attributes.user );
dataElement = ve.dm.MWInternalLinkAnnotation.static.dataElementFromTitle( title );
@ -56,7 +57,7 @@ DmMWPingNode.static.toDomElements = function ( dataElement, doc, converter ) {
doc.createTextNode( title.getMainText() )
);
return domElements;
return [ document.createTextNode( prefix ) ].concat( domElements );
};
// toDataElement should never be called for this node

View file

@ -137,7 +137,7 @@ MWUsernameCompletionAction.prototype.insertCompletion = function ( word, range )
{ type: '/mwPing' }
] );
fragment.collapseToStart().insertContent( prefix );
fragment.collapseToEnd();
return fragment;
};
@ -164,10 +164,10 @@ ve.ui.commandRegistry.register(
)
);
ve.ui.sequenceRegistry.register(
new ve.ui.Sequence( 'autocompleteMWUsernames', 'openMWUsernameCompletions', '@', 0, false, false, true, true )
new ve.ui.Sequence( 'autocompleteMWUsernames', 'openMWUsernameCompletions', '@', 0 )
);
ve.ui.wikitextSequenceRegistry.register(
new ve.ui.Sequence( 'autocompleteMWUsernamesWikitext', 'openMWUsernameCompletions', '@', 0, false, false, true, true )
new ve.ui.Sequence( 'autocompleteMWUsernamesWikitext', 'openMWUsernameCompletions', '@', 0 )
);
module.exports = MWUsernameCompletionAction;