jenkins-bot has submitted this change and it was merged.
Change subject: build: Enable jscs rule 'requireVarDeclFirst' and make pass
......................................................................
build: Enable jscs rule 'requireVarDeclFirst' and make pass
Change-Id: Ia2f765d12bde001c329c2ff4c080a36b71de9803
---
M .jscsrc
M build/tasks/jsduckcatconfig.js
M modules/ve-mw/dm/annotations/ve.dm.MWInternalLinkAnnotation.js
M modules/ve-mw/dm/models/ve.dm.MWTemplateModel.js
M modules/ve-mw/dm/models/ve.dm.MWTransclusionModel.js
M modules/ve-mw/dm/nodes/ve.dm.MWBlockImageNode.js
M modules/ve-mw/dm/nodes/ve.dm.MWReferenceNode.js
M modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js
M modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
M modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.js
M modules/ve-mw/init/targets/ve.init.mw.MobileArticleTarget.js
M modules/ve-mw/init/ve.init.mw.Platform.js
M modules/ve-mw/init/ve.init.mw.Target.js
M modules/ve-mw/init/ve.init.mw.trackSubscriber.js
M modules/ve-mw/tests/ui/actions/ve.ui.MWLinkAction.test.js
M modules/ve-mw/tests/ve.test.utils.js
M modules/ve-mw/ui/commands/ve.ui.MWUseExistingReferenceCommand.js
M modules/ve-mw/ui/commands/ve.ui.MWWikitextWarningCommand.js
M modules/ve-mw/ui/inspectors/ve.ui.MWAlienExtensionInspector.js
M modules/ve-mw/ui/pages/ve.ui.MWAdvancedSettingsPage.js
M modules/ve-mw/ui/pages/ve.ui.MWSettingsPage.js
M modules/ve-mw/ui/widgets/ve.ui.MWCategoryPopupWidget.js
M modules/ve-mw/ui/widgets/ve.ui.MWReferenceGroupInputWidget.js
M modules/ve-mw/ui/widgets/ve.ui.MWReferenceSearchWidget.js
M modules/ve-mw/ui/widgets/ve.ui.MWReferenceSourceSelectWidget.js
25 files changed, 210 insertions(+), 164 deletions(-)
Approvals:
Cscott: Looks good to me, approved
jenkins-bot: Verified
diff --git a/.jscsrc b/.jscsrc
index 9c685d3..deae449 100644
--- a/.jscsrc
+++ b/.jscsrc
@@ -1,6 +1,5 @@
{
"preset": "wikimedia",
- "requireVarDeclFirst": null,
"jsDoc": null
}
diff --git a/build/tasks/jsduckcatconfig.js b/build/tasks/jsduckcatconfig.js
index afc1ca0..92075fc 100644
--- a/build/tasks/jsduckcatconfig.js
+++ b/build/tasks/jsduckcatconfig.js
@@ -35,8 +35,9 @@
targetCat.forEach( function (
targetGroupName ) {
// ... find the category in the
aggregate source
srcCategories.forEach( function
( aggrCat ) {
+ var targetGroup;
if ( aggrCat.name ===
targetGroupName ) {
- var targetGroup
= {
+ targetGroup = {
name:
targetGroupName,
classes: []
};
diff --git a/modules/ve-mw/dm/annotations/ve.dm.MWInternalLinkAnnotation.js
b/modules/ve-mw/dm/annotations/ve.dm.MWInternalLinkAnnotation.js
index 68553af..aa83ca4 100644
--- a/modules/ve-mw/dm/annotations/ve.dm.MWInternalLinkAnnotation.js
+++ b/modules/ve-mw/dm/annotations/ve.dm.MWInternalLinkAnnotation.js
@@ -57,17 +57,19 @@
* @returns {Object} Plain object with 'title' and 'hrefPrefix' keys.
*/
ve.dm.MWInternalLinkAnnotation.static.getTargetDataFromHref = function ( href,
doc ) {
+ var relativeBase, relativeBaseRegex, relativeHref, matches;
+
function regexEscape( str ) {
return str.replace( /([.?*+^$[\]\\(){}|-])/g, '\\$1' );
}
- var // Protocol relative base
- relativeBase = ve.resolveUrl( mw.config.get( 'wgArticlePath' ),
doc ).replace( /^https?:/, '' ),
- relativeBaseRegex = new RegExp( regexEscape( relativeBase
).replace( regexEscape( '$1' ), '(.*)' ) ),
- // Protocol relative href
- relativeHref = href.replace( /^https?:/, '' ),
- // Check if this matches the server's article path
- matches = relativeHref.match( relativeBaseRegex );
+ // Protocol relative base
+ relativeBase = ve.resolveUrl( mw.config.get( 'wgArticlePath' ), doc
).replace( /^https?:/, '' );
+ relativeBaseRegex = new RegExp( regexEscape( relativeBase ).replace(
regexEscape( '$1' ), '(.*)' ) );
+ // Protocol relative href
+ relativeHref = href.replace( /^https?:/, '' );
+ // Check if this matches the server's article path
+ matches = relativeHref.match( relativeBaseRegex );
if ( matches ) {
// Take the relative path
diff --git a/modules/ve-mw/dm/models/ve.dm.MWTemplateModel.js
b/modules/ve-mw/dm/models/ve.dm.MWTemplateModel.js
index 950b62d..2ca256d 100644
--- a/modules/ve-mw/dm/models/ve.dm.MWTemplateModel.js
+++ b/modules/ve-mw/dm/models/ve.dm.MWTemplateModel.js
@@ -208,14 +208,15 @@
}
// Unknown parameters in alpha-numeric order second, empty
string at the very end
paramNames.sort( function ( a, b ) {
+ var aIsNaN = isNaN( a ),
+ bIsNaN = isNaN( b );
+
if ( a === '' ) {
return 1;
}
if ( b === '' ) {
return -1;
}
- var aIsNaN = isNaN( a ),
- bIsNaN = isNaN( b );
if ( aIsNaN && bIsNaN ) {
// Two strings
return a < b ? -1 : a === b ? 0 : 1;
diff --git a/modules/ve-mw/dm/models/ve.dm.MWTransclusionModel.js
b/modules/ve-mw/dm/models/ve.dm.MWTransclusionModel.js
index 316aa2c..b1238e6 100644
--- a/modules/ve-mw/dm/models/ve.dm.MWTransclusionModel.js
+++ b/modules/ve-mw/dm/models/ve.dm.MWTransclusionModel.js
@@ -194,14 +194,15 @@
/** */
ve.dm.MWTransclusionModel.prototype.fetch = function () {
+ var i, len, item, title, queue,
+ titles = [],
+ specs = {};
+
if ( !this.queue.length ) {
return;
}
- var i, len, item, title,
- titles = [],
- specs = {},
- queue = this.queue.slice();
+ queue = this.queue.slice();
// Clear shared queue for future calls
this.queue.length = 0;
diff --git a/modules/ve-mw/dm/nodes/ve.dm.MWBlockImageNode.js
b/modules/ve-mw/dm/nodes/ve.dm.MWBlockImageNode.js
index 1a833d9..2b7cde3 100644
--- a/modules/ve-mw/dm/nodes/ve.dm.MWBlockImageNode.js
+++ b/modules/ve-mw/dm/nodes/ve.dm.MWBlockImageNode.js
@@ -79,6 +79,10 @@
};
ve.dm.MWBlockImageNode.static.toDataElement = function ( domElements,
converter ) {
+ var dataElement, newDimensions, attributes,
+ figure, imgWrapper, img, caption,
+ classAttr, typeofAttrs, errorIndex, width, height, altText;
+
// Workaround for jQuery's .children() being expensive due to
// https://github.com/jquery/sizzle/issues/311
function findChildren( parent, nodeNames ) {
@@ -87,17 +91,16 @@
} );
}
- var dataElement, newDimensions, attributes,
- figure = domElements[ 0 ],
- imgWrapper = findChildren( figure, [ 'a', 'span' ] )[ 0 ] ||
null,
- img = imgWrapper && findChildren( imgWrapper, [ 'img' ] )[ 0 ]
|| null,
- caption = findChildren( figure, [ 'figcaption' ] )[ 0 ] || null,
- classAttr = figure.getAttribute( 'class' ),
- typeofAttrs = figure.getAttribute( 'typeof' ).split( ' ' ),
- errorIndex = typeofAttrs.indexOf( 'mw:Error' ),
- width = img && img.getAttribute( 'width' ),
- height = img && img.getAttribute( 'height' ),
- altText = img && img.getAttribute( 'alt' );
+ figure = domElements[ 0 ];
+ imgWrapper = findChildren( figure, [ 'a', 'span' ] )[ 0 ] || null;
+ img = imgWrapper && findChildren( imgWrapper, [ 'img' ] )[ 0 ] || null;
+ caption = findChildren( figure, [ 'figcaption' ] )[ 0 ] || null;
+ classAttr = figure.getAttribute( 'class' );
+ typeofAttrs = figure.getAttribute( 'typeof' ).split( ' ' );
+ errorIndex = typeofAttrs.indexOf( 'mw:Error' );
+ width = img && img.getAttribute( 'width' );
+ height = img && img.getAttribute( 'height' );
+ altText = img && img.getAttribute( 'alt' );
if ( errorIndex !== -1 ) {
typeofAttrs.splice( errorIndex, 1 );
diff --git a/modules/ve-mw/dm/nodes/ve.dm.MWReferenceNode.js
b/modules/ve-mw/dm/nodes/ve.dm.MWReferenceNode.js
index 373a437..422f120 100644
--- a/modules/ve-mw/dm/nodes/ve.dm.MWReferenceNode.js
+++ b/modules/ve-mw/dm/nodes/ve.dm.MWReferenceNode.js
@@ -59,27 +59,28 @@
ve.dm.MWReferenceNode.static.listKeyRegex = /^(auto|literal)\/(.*)$/;
ve.dm.MWReferenceNode.static.toDataElement = function ( domElements, converter
) {
+ var dataElement, mwDataJSON, mwData, reflistItemId, body, refGroup,
listGroup, autoKeyed, listKey, queueResult, listIndex, contentsUsed;
+
function getReflistItemHtml( id ) {
var elem = converter.getHtmlDocument().getElementById( id );
return elem && elem.innerHTML || '';
}
- var dataElement,
- mwDataJSON = domElements[ 0 ].getAttribute( 'data-mw' ),
- mwData = mwDataJSON ? JSON.parse( mwDataJSON ) : {},
- reflistItemId = mwData.body && mwData.body.id,
- body = ( mwData.body && mwData.body.html ) ||
- ( reflistItemId && getReflistItemHtml( reflistItemId )
) ||
- '',
- refGroup = mwData.attrs && mwData.attrs.group || '',
- listGroup = this.name + '/' + refGroup,
- autoKeyed = !mwData.attrs || mwData.attrs.name === undefined,
- listKey = autoKeyed ?
- 'auto/' + converter.internalList.getNextUniqueNumber() :
- 'literal/' + mwData.attrs.name,
- queueResult = converter.internalList.queueItemHtml( listGroup,
listKey, body ),
- listIndex = queueResult.index,
- contentsUsed = ( body !== '' && queueResult.isNew );
+ mwDataJSON = domElements[ 0 ].getAttribute( 'data-mw' );
+ mwData = mwDataJSON ? JSON.parse( mwDataJSON ) : {};
+ reflistItemId = mwData.body && mwData.body.id;
+ body = ( mwData.body && mwData.body.html ) ||
+ ( reflistItemId && getReflistItemHtml( reflistItemId ) ) ||
+ '';
+ refGroup = mwData.attrs && mwData.attrs.group || '';
+ listGroup = this.name + '/' + refGroup;
+ autoKeyed = !mwData.attrs || mwData.attrs.name === undefined;
+ listKey = autoKeyed ?
+ 'auto/' + converter.internalList.getNextUniqueNumber() :
+ 'literal/' + mwData.attrs.name;
+ queueResult = converter.internalList.queueItemHtml( listGroup, listKey,
body );
+ listIndex = queueResult.index;
+ contentsUsed = ( body !== '' && queueResult.isNew );
dataElement = {
type: this.name,
diff --git a/modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js
b/modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js
index 1cbc0f0..306fc26 100644
--- a/modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js
+++ b/modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js
@@ -123,8 +123,9 @@
originalMw = dataElement.attributes.originalMw;
function wrapTextNode( node ) {
+ var wrapper;
if ( node.nodeType === Node.TEXT_NODE ) {
- var wrapper = doc.createElement( 'span' );
+ wrapper = doc.createElement( 'span' );
wrapper.appendChild( node );
return wrapper;
}
@@ -285,12 +286,13 @@
* @return {boolean} Transclusion only contains a single template, which is
one of the ones in templates
*/
ve.dm.MWTransclusionNode.prototype.isSingleTemplate = function ( templates ) {
+ var i, len, partsList = this.getPartsList();
+
function normalizeTitle( name ) {
var title = mw.Title.newFromText( name );
return title ? title.getPrefixedText() : name;
}
- var i, len, partsList = this.getPartsList();
if ( partsList.length !== 1 ) {
return false;
}
diff --git a/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
b/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
index f7e03a3..40e6ab3 100644
--- a/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
+++ b/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
@@ -30,6 +30,8 @@
plugins = [];
function showLoading() {
+ var $content, contentRect, offsetTop, windowHeight, top,
bottom, middle;
+
if ( !init.$loading ) {
init.$loading = $(
'<div
class="ve-init-mw-desktopArticleTarget-loading-overlay">' +
@@ -40,13 +42,14 @@
'</div>'
);
}
- var $content = $( '#content' ),
- contentRect = $content[ 0 ].getBoundingClientRect(),
- offsetTop = $content.offset().top,
- windowHeight = $( window ).height(),
- top = Math.max( contentRect.top, 0 ),
- bottom = Math.min( contentRect.bottom, windowHeight ),
- middle = ( top + bottom ) / 2;
+
+ $content = $( '#content' );
+ contentRect = $content[ 0 ].getBoundingClientRect();
+ offsetTop = $content.offset().top;
+ windowHeight = $( window ).height();
+ top = Math.max( contentRect.top, 0 );
+ bottom = Math.min( contentRect.bottom, windowHeight );
+ middle = ( top + bottom ) / 2;
init.$loading.css( 'top', middle - offsetTop );
@@ -116,10 +119,12 @@
return
mw.libs.ve.targetLoader.loadModules();
} )
.then( function () {
+ var target;
+
// Transfer methods
ve.init.mw.DesktopArticleTarget.prototype.setupSectionEditLinks =
init.setupSectionLinks;
- var target = new
ve.init.mw.DesktopArticleTarget();
+ target = new
ve.init.mw.DesktopArticleTarget();
$( '#content' ).append( target.$element
);
return target;
}, function ( e ) {
@@ -278,14 +283,6 @@
},
setupTabs: function () {
- // HACK: Remove this when the Education Program offers
a proper way to detect and disable.
- if (
- // HACK: Work around
jscs.requireCamelCaseOrUpperCaseIdentifiers
- mw.config.get( 'wgNamespaceIds' )[ true &&
'education_program' ] === mw.config.get( 'wgNamespaceNumber' )
- ) {
- return;
- }
-
var caVeEdit,
action = pageExists ? 'edit' : 'create',
pTabsId = $( '#p-views' ).length ? 'p-views' :
'p-cactions',
@@ -296,7 +293,19 @@
$caVeEditLink = $caVeEdit.find( 'a' ),
reverseTabOrder = $( 'body' ).hasClass( 'rtl' )
&& pTabsId === 'p-views',
/*jshint bitwise:false */
- caVeEditNextnode = ( reverseTabOrder ^
conf.tabPosition === 'before' ) ? $caEdit.get( 0 ) : $caEdit.next().get( 0 );
+ caVeEditNextnode =
+ ( reverseTabOrder ^ conf.tabPosition
=== 'before' ) ?
+ /*jshint bitwise:true */
+ $caEdit.get( 0 ) :
+ $caEdit.next().get( 0 );
+
+ // HACK: Remove this when the Education Program offers
a proper way to detect and disable.
+ if (
+ // HACK: Work around
jscs.requireCamelCaseOrUpperCaseIdentifiers
+ mw.config.get( 'wgNamespaceIds' )[ true &&
'education_program' ] === mw.config.get( 'wgNamespaceNumber' )
+ ) {
+ return;
+ }
if ( !$caVeEdit.length ) {
// The below duplicates the functionality of
VisualEditorHooks::onSkinTemplateNavigation()
diff --git a/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.js
b/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.js
index a26f3c1..19a623f 100644
--- a/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.js
+++ b/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.js
@@ -230,12 +230,13 @@
* @inheritdoc
*/
ve.init.mw.DesktopArticleTarget.prototype.loadSuccess = function ( response ) {
+ var $checkboxes, defaults, data,
+ target = this;
+
// Parent method
ve.init.mw.DesktopArticleTarget.super.prototype.loadSuccess.apply(
this, arguments );
- var $checkboxes, defaults,
- target = this,
- data = response ? response.visualeditor : {};
+ data = response ? response.visualeditor : {};
this.checkboxFields = [];
this.checkboxesByName = {};
@@ -603,10 +604,10 @@
* @param {jQuery.Event} e Keydown event
*/
ve.init.mw.DesktopArticleTarget.prototype.onDocumentKeyDown = function ( e ) {
+ var target = this;
+
// Parent method
ve.init.mw.DesktopArticleTarget.super.prototype.onDocumentKeyDown.apply( this,
arguments );
-
- var target = this;
if ( e.which === OO.ui.Keys.ESCAPE ) {
setTimeout( function () {
@@ -641,10 +642,11 @@
ve.init.mw.DesktopArticleTarget.prototype.saveComplete = function (
html, categoriesHtml, newid, isRedirect, displayTitle, lastModified,
contentSub, modules, jsconfigvars
) {
+ var newUrlParams, watchChecked;
+
// Parent method
ve.init.mw.DesktopArticleTarget.super.prototype.saveComplete.apply(
this, arguments );
- var newUrlParams, watchChecked;
if ( !this.pageExists || this.restoring ) {
// This is a page creation or restoration, refresh the page
this.teardownUnloadHandlers();
diff --git a/modules/ve-mw/init/targets/ve.init.mw.MobileArticleTarget.js
b/modules/ve-mw/init/targets/ve.init.mw.MobileArticleTarget.js
index 1fd7ad3..0675fb7 100644
--- a/modules/ve-mw/init/targets/ve.init.mw.MobileArticleTarget.js
+++ b/modules/ve-mw/init/targets/ve.init.mw.MobileArticleTarget.js
@@ -78,10 +78,12 @@
* @inheritdoc
*/
ve.init.mw.MobileArticleTarget.prototype.onSurfaceReady = function () {
+ var surfaceModel;
+
// Parent method
ve.init.mw.MobileArticleTarget.super.prototype.onSurfaceReady.apply(
this, arguments );
- var surfaceModel = this.getSurface().getModel();
+ surfaceModel = this.getSurface().getModel();
surfaceModel.connect( this, {
blur: 'onSurfaceBlur',
focus: 'onSurfaceFocus'
diff --git a/modules/ve-mw/init/ve.init.mw.Platform.js
b/modules/ve-mw/init/ve.init.mw.Platform.js
index 2e246d9..237801f 100644
--- a/modules/ve-mw/init/ve.init.mw.Platform.js
+++ b/modules/ve-mw/init/ve.init.mw.Platform.js
@@ -60,7 +60,8 @@
/** @inheritdoc */
ve.init.mw.Platform.prototype.addParsedMessages = function ( messages ) {
- for ( var key in messages ) {
+ var key;
+ for ( key in messages ) {
this.parsedMessages[ key ] = messages[ key ];
}
};
diff --git a/modules/ve-mw/init/ve.init.mw.Target.js
b/modules/ve-mw/init/ve.init.mw.Target.js
index 7c001aa..93b11a5 100644
--- a/modules/ve-mw/init/ve.init.mw.Target.js
+++ b/modules/ve-mw/init/ve.init.mw.Target.js
@@ -427,8 +427,8 @@
* @param {string} status Text status message
*/
ve.init.mw.Target.prototype.saveSuccess = function ( doc, saveData, response )
{
- this.saving = false;
var data = response.visualeditoredit;
+ this.saving = false;
if ( !data ) {
this.saveFail( doc, saveData, null, 'Invalid response from
server', response );
} else if ( data.result !== 'success' ) {
@@ -885,8 +885,8 @@
* @fires serializeComplete
*/
ve.init.mw.Target.prototype.serializeSuccess = function ( response ) {
- this.serializing = false;
var data = response.visualeditor;
+ this.serializing = false;
if ( !data && !response.error ) {
this.serializeFail( null, 'Invalid response from server', null
);
} else if ( response.error ) {
@@ -1409,11 +1409,13 @@
* @fires saveInitiated
*/
ve.init.mw.Target.prototype.startSave = function ( saveDeferred ) {
+ var saveOptions;
+
if ( this.deactivating ) {
return false;
}
- var saveOptions = this.getSaveOptions();
+ saveOptions = this.getSaveOptions();
// Reset any old captcha data
if ( this.captcha ) {
@@ -1572,23 +1574,24 @@
* @returns {boolean} Submitting has been started
*/
ve.init.mw.Target.prototype.submit = function ( wikitext, fields ) {
+ var key, $form, params;
+
// Prevent duplicate requests
if ( this.submitting ) {
return false;
}
// Save DOM
this.submitting = true;
- var key,
- $form = $( '<form method="post" enctype="multipart/form-data"
style="display: none;"></form>' ),
- params = ve.extendObject( {
- format: 'text/x-wiki',
- model: 'wikitext',
- oldid: this.requestedRevId,
- wpStarttime: this.startTimeStamp,
- wpEdittime: this.baseTimeStamp,
- wpTextbox1: wikitext,
- wpEditToken: this.editToken
- }, fields );
+ $form = $( '<form method="post" enctype="multipart/form-data"
style="display: none;"></form>' );
+ params = ve.extendObject( {
+ format: 'text/x-wiki',
+ model: 'wikitext',
+ oldid: this.requestedRevId,
+ wpStarttime: this.startTimeStamp,
+ wpEdittime: this.baseTimeStamp,
+ wpTextbox1: wikitext,
+ wpEditToken: this.editToken
+ }, fields );
// Add params as hidden fields
for ( key in params ) {
$form.append( $( '<input>' ).attr( { type: 'hidden', name: key,
value: params[ key ] } ) );
@@ -1655,8 +1658,9 @@
var target = this;
setTimeout( function () {
// Build model
+ var dmDoc;
ve.track( 'trace.convertModelFromDom.enter' );
- var dmDoc = ve.dm.converter.getModelFromDom( doc, {
+ dmDoc = ve.dm.converter.getModelFromDom( doc, {
lang: mw.config.get( 'wgVisualEditor'
).pageLanguageCode,
dir: mw.config.get( 'wgVisualEditor' ).pageLanguageDir
} );
@@ -1666,14 +1670,15 @@
dmDoc.buildNodeTree();
ve.track( 'trace.buildModelTree.exit' );
setTimeout( function () {
+ var surface, surfaceView, $documentNode;
// Clear dummy surfaces
target.clearSurfaces();
// Create ui.Surface (also creates ce.Surface and
dm.Surface and builds CE tree)
ve.track( 'trace.createSurface.enter' );
- var surface = target.addSurface( dmDoc ),
- surfaceView = surface.getView(),
- $documentNode =
surfaceView.getDocument().getDocumentNode().$element;
+ surface = target.addSurface( dmDoc );
+ surfaceView = surface.getView();
+ $documentNode =
surfaceView.getDocument().getDocumentNode().$element;
ve.track( 'trace.createSurface.exit' );
surface.$element
@@ -1772,6 +1777,7 @@
* @fires saveWorkflowBegin
*/
ve.init.mw.Target.prototype.showSaveDialog = function () {
+ var target = this;
this.emit( 'saveWorkflowBegin' );
// Preload the serialization
@@ -1779,8 +1785,6 @@
this.docToSave = this.getSurface().getDom();
}
this.prepareCacheKey( this.docToSave );
-
- var target = this;
// Connect events to save dialog
this.getSurface().getDialogs().getWindow( 'mwSave' ).done( function (
win ) {
@@ -1818,11 +1822,13 @@
* @method
*/
ve.init.mw.Target.prototype.restoreEditSection = function () {
+ var surfaceView, $documentNode, $section, headingNode;
+
if ( this.section !== undefined && this.section > 0 ) {
- var surfaceView = this.getSurface().getView(),
- $documentNode =
surfaceView.getDocument().getDocumentNode().$element,
- $section = $documentNode.find( 'h1, h2, h3, h4, h5, h6'
).eq( this.section - 1 ),
- headingNode = $section.data( 'view' );
+ surfaceView = this.getSurface().getView();
+ $documentNode =
surfaceView.getDocument().getDocumentNode().$element;
+ $section = $documentNode.find( 'h1, h2, h3, h4, h5, h6' ).eq(
this.section - 1 );
+ headingNode = $section.data( 'view' );
if ( $section.length && new mw.Uri().query.summary ===
undefined ) {
this.initialEditSummary = '/* ' +
diff --git a/modules/ve-mw/init/ve.init.mw.trackSubscriber.js
b/modules/ve-mw/init/ve.init.mw.trackSubscriber.js
index 2812846..f4870e2 100644
--- a/modules/ve-mw/init/ve.init.mw.trackSubscriber.js
+++ b/modules/ve-mw/init/ve.init.mw.trackSubscriber.js
@@ -8,14 +8,16 @@
*/
( function () {
+ var timing, editingSessionId;
+
if ( mw.loader.getState( 'schema.Edit' ) === null ) {
// Only route any events into the Edit schema if the module is
actually available.
// It won't be if EventLogging is installed but WikimediaEvents
is not.
return;
}
- var timing = {},
- editingSessionId = mw.user.generateRandomSessionId();
+ timing = {};
+ editingSessionId = mw.user.generateRandomSessionId();
function computeDuration( action, event, timeStamp ) {
if ( event.timing !== undefined ) {
diff --git a/modules/ve-mw/tests/ui/actions/ve.ui.MWLinkAction.test.js
b/modules/ve-mw/tests/ui/actions/ve.ui.MWLinkAction.test.js
index 9b3be9f..eea42bd 100644
--- a/modules/ve-mw/tests/ui/actions/ve.ui.MWLinkAction.test.js
+++ b/modules/ve-mw/tests/ui/actions/ve.ui.MWLinkAction.test.js
@@ -45,7 +45,8 @@
method: 'autolinkUrl',
expectedRange: new ve.Range( 52, 52 ),
expectedData: function ( data ) {
- for ( var i = 1; i < 51; i++ ) {
+ var i;
+ for ( i = 1; i < 51; i++ ) {
data[ i ] = [ data[ i ], [ 0 ]
];
}
},
diff --git a/modules/ve-mw/tests/ve.test.utils.js
b/modules/ve-mw/tests/ve.test.utils.js
index b77a6e3..21dfdef 100644
--- a/modules/ve-mw/tests/ve.test.utils.js
+++ b/modules/ve-mw/tests/ve.test.utils.js
@@ -6,12 +6,15 @@
*/
ve.test.utils.createSurfaceFromDocument = function ( doc ) {
+ var target, mwTarget;
+
// Prevent the target from setting up the surface immediately
ve.init.platform.initialized = $.Deferred();
+
// HACK: MW targets are async and heavy, use an SA target but
// override the global registration
- var target = new ve.init.sa.Target(),
- mwTarget = new ve.init.mw.Target();
+ target = new ve.init.sa.Target();
+ mwTarget = new ve.init.mw.Target();
$( '#qunit-fixture' ).append( target.$element );
target.addSurface( doc );
diff --git a/modules/ve-mw/ui/commands/ve.ui.MWUseExistingReferenceCommand.js
b/modules/ve-mw/ui/commands/ve.ui.MWUseExistingReferenceCommand.js
index dbea21c..b2984d2 100644
--- a/modules/ve-mw/ui/commands/ve.ui.MWUseExistingReferenceCommand.js
+++ b/modules/ve-mw/ui/commands/ve.ui.MWUseExistingReferenceCommand.js
@@ -30,13 +30,14 @@
* @inheritdoc
*/
ve.ui.MWUseExistingReferenceCommand.prototype.isExecutable = function (
fragment ) {
+ var groupName, groups;
+
// Parent method
if (
!ve.ui.MWUseExistingReferenceCommand.super.prototype.isExecutable.apply( this,
arguments ) ) {
return false;
}
- var groupName,
- groups =
fragment.getDocument().getInternalList().getNodeGroups();
+ groups = fragment.getDocument().getInternalList().getNodeGroups();
for ( groupName in groups ) {
if ( groupName.lastIndexOf( 'mwReference/' ) === 0 && groups[
groupName ].indexOrder.length ) {
diff --git a/modules/ve-mw/ui/commands/ve.ui.MWWikitextWarningCommand.js
b/modules/ve-mw/ui/commands/ve.ui.MWWikitextWarningCommand.js
index 094389b..208716e 100644
--- a/modules/ve-mw/ui/commands/ve.ui.MWWikitextWarningCommand.js
+++ b/modules/ve-mw/ui/commands/ve.ui.MWWikitextWarningCommand.js
@@ -30,10 +30,10 @@
* @inheritdoc
*/
ve.ui.MWWikitextWarningCommand.prototype.execute = function () {
+ var command = this;
if ( this.warning && this.warning.isOpen ) {
return false;
}
- var command = this;
mw.notify(
$( $.parseHTML( ve.init.platform.getParsedMessage(
'visualeditor-wikitext-warning' ) ) )
.filter( 'a' ).attr( 'target', '_blank' ).end(),
diff --git a/modules/ve-mw/ui/inspectors/ve.ui.MWAlienExtensionInspector.js
b/modules/ve-mw/ui/inspectors/ve.ui.MWAlienExtensionInspector.js
index e5a5182..1f505a4 100644
--- a/modules/ve-mw/ui/inspectors/ve.ui.MWAlienExtensionInspector.js
+++ b/modules/ve-mw/ui/inspectors/ve.ui.MWAlienExtensionInspector.js
@@ -94,10 +94,10 @@
/** */
ve.ui.MWAlienExtensionInspector.prototype.updateMwData = function ( mwData ) {
+ var key;
+
// Parent method
ve.ui.MWAlienExtensionInspector.super.prototype.updateMwData.call(
this, mwData );
-
- var key;
if ( !ve.isEmptyObject( this.attributeInputs ) ) {
// Make sure we have an attrs object to populate
diff --git a/modules/ve-mw/ui/pages/ve.ui.MWAdvancedSettingsPage.js
b/modules/ve-mw/ui/pages/ve.ui.MWAdvancedSettingsPage.js
index 3f34de4..87ea21d 100644
--- a/modules/ve-mw/ui/pages/ve.ui.MWAdvancedSettingsPage.js
+++ b/modules/ve-mw/ui/pages/ve.ui.MWAdvancedSettingsPage.js
@@ -213,31 +213,30 @@
* @param {Object} [data] Dialog setup data
*/
ve.ui.MWAdvancedSettingsPage.prototype.setup = function ( metaList ) {
- this.metaList = metaList;
-
- var // Indexing items
- indexingField = this.indexing.getField(),
- indexingOption = this.getMetaItem( 'mwIndex' ),
- indexingType = indexingOption && indexingOption.element.type ||
'default',
-
- // New section edit link items
- newSectionEditField = this.newEditSectionLink.getField(),
- newSectionEditLinkOption = this.getMetaItem( 'mwNewSectionEdit'
),
- newSectionEditLinkType = newSectionEditLinkOption &&
newSectionEditLinkOption.element.type || 'default',
-
- displayTitleItem = this.getMetaItem( 'mwDisplayTitle' ),
- displayTitle = displayTitleItem &&
displayTitleItem.getAttribute( 'content' ) || '',
-
+ var indexingField, indexingOption, indexingType,
+ newSectionEditField, newSectionEditLinkOption,
newSectionEditLinkType,
+ displayTitleItem, displayTitle,
advancedSettingsPage = this;
+ this.metaList = metaList;
+
// Indexing items
+ indexingField = this.indexing.getField();
+ indexingOption = this.getMetaItem( 'mwIndex' );
+ indexingType = indexingOption && indexingOption.element.type ||
'default';
indexingField.selectItemByData( indexingType );
this.indexingOptionTouched = false;
// New section edit link items
+ newSectionEditField = this.newEditSectionLink.getField();
+ newSectionEditLinkOption = this.getMetaItem( 'mwNewSectionEdit' );
+ newSectionEditLinkType = newSectionEditLinkOption &&
newSectionEditLinkOption.element.type || 'default';
newSectionEditField.selectItemByData( newSectionEditLinkType );
this.newSectionEditLinkOptionTouched = false;
+ // Display title items
+ displayTitleItem = this.getMetaItem( 'mwDisplayTitle' );
+ displayTitle = displayTitleItem && displayTitleItem.getAttribute(
'content' ) || '';
this.enableDisplayTitleCheckbox.setSelected( !!displayTitleItem );
this.displayTitleInput.setValue( displayTitle );
this.displayTitleInput.setDisabled( !displayTitle );
@@ -256,25 +255,20 @@
* @param {Object} [data] Dialog tear down data
*/
ve.ui.MWAdvancedSettingsPage.prototype.teardown = function ( data ) {
+ var currentIndexingItem, newIndexingData,
+ currentNewSectionEditLinkItem, newNewSectionEditLinkOptionData,
+ currentDisplayTitleItem, newDisplayTitle,
newDisplayTitleItemData,
+ advancedSettingsPage = this;
+
// Data initialization
data = data || {};
if ( data.action !== 'apply' ) {
return;
}
- var // Indexing items
- currentIndexingItem = this.getMetaItem( 'mwIndex' ),
- newIndexingData = this.indexing.getField().getSelectedItem(),
-
- // New section edit link items
- currentNewSectionEditLinkItem = this.getMetaItem(
'mwNewSectionEdit' ),
- newNewSectionEditLinkOptionData =
this.newEditSectionLink.getField().getSelectedItem(),
-
- currentDisplayTitleItem = this.getMetaItem( 'mwDisplayTitle' ),
- newDisplayTitle = this.displayTitleInput.getValue(),
- newDisplayTitleItemData = { type: 'mwDisplayTitle', attributes:
{ content: newDisplayTitle } },
-
- advancedSettingsPage = this;
+ // Indexing items
+ currentIndexingItem = this.getMetaItem( 'mwIndex' );
+ newIndexingData = this.indexing.getField().getSelectedItem();
// Alter the indexing option flag iff it's been touched & is actually
different
if ( this.indexingOptionTouched ) {
@@ -296,6 +290,10 @@
}
}
+ // New section edit link items
+ currentNewSectionEditLinkItem = this.getMetaItem( 'mwNewSectionEdit' );
+ newNewSectionEditLinkOptionData =
this.newEditSectionLink.getField().getSelectedItem();
+
// Alter the new section edit option flag iff it's been touched & is
actually different
if ( this.newSectionEditLinkOptionTouched ) {
if ( newNewSectionEditLinkOptionData.data === 'default' ) {
@@ -316,6 +314,12 @@
}
}
+ // Display title items
+ currentDisplayTitleItem = this.getMetaItem( 'mwDisplayTitle' );
+ newDisplayTitle = this.displayTitleInput.getValue();
+ newDisplayTitleItemData = { type: 'mwDisplayTitle', attributes: {
content: newDisplayTitle } };
+
+ // Alter the display title flag iff it's been touched & is actually
different
if ( this.displayTitleTouched ) {
if ( currentDisplayTitleItem ) {
if ( newDisplayTitle ) {
diff --git a/modules/ve-mw/ui/pages/ve.ui.MWSettingsPage.js
b/modules/ve-mw/ui/pages/ve.ui.MWSettingsPage.js
index 98d0ada..adeafc1 100644
--- a/modules/ve-mw/ui/pages/ve.ui.MWSettingsPage.js
+++ b/modules/ve-mw/ui/pages/ve.ui.MWSettingsPage.js
@@ -236,26 +236,24 @@
* @param {Object} [data] Dialog setup data
*/
ve.ui.MWSettingsPage.prototype.setup = function ( metaList ) {
- this.metaList = metaList;
-
- var // Table of Contents items
- tableOfContentsMetaItem = this.getMetaItem( 'mwTOC' ),
- tableOfContentsField = this.tableOfContents.getField(),
- tableOfContentsMode = tableOfContentsMetaItem &&
- tableOfContentsMetaItem.getType() || 'default',
-
- // Redirect items
- redirectTargetItem = this.getMetaItem( 'mwRedirect' ),
- redirectTarget = redirectTargetItem &&
redirectTargetItem.getAttribute( 'title' ) || '',
- redirectStatic = this.getMetaItem( 'mwStaticRedirect' ),
-
+ var tableOfContentsMetaItem, tableOfContentsField, tableOfContentsMode,
+ redirectTargetItem, redirectTarget, redirectStatic,
settingsPage = this;
+ this.metaList = metaList;
+
// Table of Contents items
+ tableOfContentsMetaItem = this.getMetaItem( 'mwTOC' );
+ tableOfContentsField = this.tableOfContents.getField();
+ tableOfContentsMode = tableOfContentsMetaItem &&
+ tableOfContentsMetaItem.getType() || 'default';
tableOfContentsField.selectItemByData( tableOfContentsMode );
this.tableOfContentsTouched = false;
// Redirect items (disabled states set by change event)
+ redirectTargetItem = this.getMetaItem( 'mwRedirect' );
+ redirectTarget = redirectTargetItem && redirectTargetItem.getAttribute(
'title' ) || '';
+ redirectStatic = this.getMetaItem( 'mwStaticRedirect' );
this.enableRedirectInput.setSelected( !!redirectTargetItem );
this.redirectTargetInput.setValue( redirectTarget );
this.redirectTargetInput.setDisabled( !redirectTargetItem );
@@ -276,26 +274,29 @@
* @param {Object} [data] Dialog tear down data
*/
ve.ui.MWSettingsPage.prototype.teardown = function ( data ) {
+ var tableOfContentsMetaItem, tableOfContentsSelectedItem,
tableOfContentsValue,
+ currentRedirectTargetItem, newRedirectData, newRedirectItemData,
+ currentStaticRedirectItem, newStaticRedirectState,
+ settingsPage = this;
+
// Data initialisation
data = data || {};
if ( data.action !== 'apply' ) {
return;
}
- var // Table of Contents items
- tableOfContentsMetaItem = this.getMetaItem( 'mwTOC' ),
- tableOfContentsSelectedItem =
this.tableOfContents.getField().getSelectedItem(),
- tableOfContentsValue = tableOfContentsSelectedItem &&
tableOfContentsSelectedItem.getData(),
+ // Table of Contents items
+ tableOfContentsMetaItem = this.getMetaItem( 'mwTOC' );
+ tableOfContentsSelectedItem =
this.tableOfContents.getField().getSelectedItem();
+ tableOfContentsValue = tableOfContentsSelectedItem &&
tableOfContentsSelectedItem.getData();
- // Redirect items
- currentRedirectTargetItem = this.getMetaItem( 'mwRedirect' ),
- newRedirectData = this.redirectTargetInput.getValue(),
- newRedirectItemData = { type: 'mwRedirect', attributes: {
title: newRedirectData } },
+ // Redirect items
+ currentRedirectTargetItem = this.getMetaItem( 'mwRedirect' );
+ newRedirectData = this.redirectTargetInput.getValue();
+ newRedirectItemData = { type: 'mwRedirect', attributes: { title:
newRedirectData } };
- currentStaticRedirectItem = this.getMetaItem(
'mwStaticRedirect' ),
- newStaticRedirectState =
this.enableStaticRedirectInput.isSelected(),
-
- settingsPage = this;
+ currentStaticRedirectItem = this.getMetaItem( 'mwStaticRedirect' );
+ newStaticRedirectState = this.enableStaticRedirectInput.isSelected();
// Alter the TOC option flag iff it's been touched & is actually
different
if ( this.tableOfContentsTouched ) {
diff --git a/modules/ve-mw/ui/widgets/ve.ui.MWCategoryPopupWidget.js
b/modules/ve-mw/ui/widgets/ve.ui.MWCategoryPopupWidget.js
index c615138..e70d8e0 100644
--- a/modules/ve-mw/ui/widgets/ve.ui.MWCategoryPopupWidget.js
+++ b/modules/ve-mw/ui/widgets/ve.ui.MWCategoryPopupWidget.js
@@ -128,10 +128,11 @@
* @method
*/
ve.ui.MWCategoryPopupWidget.prototype.onToggle = function ( show ) {
+ var newSortkey;
if ( show ) {
return;
}
- var newSortkey = this.sortKeyInput.$input.val();
+ newSortkey = this.sortKeyInput.$input.val();
if ( !this.removed && newSortkey !== ( this.origSortkey || '' ) ) {
this.emit( 'updateSortkey', this.category,
this.sortKeyInput.$input.val() );
}
diff --git a/modules/ve-mw/ui/widgets/ve.ui.MWReferenceGroupInputWidget.js
b/modules/ve-mw/ui/widgets/ve.ui.MWReferenceGroupInputWidget.js
index d14f360..9162ec5 100644
--- a/modules/ve-mw/ui/widgets/ve.ui.MWReferenceGroupInputWidget.js
+++ b/modules/ve-mw/ui/widgets/ve.ui.MWReferenceGroupInputWidget.js
@@ -47,8 +47,9 @@
this.menu.addItems( [ placeholderGroupItem ].concat( $.map(
Object.keys( internalList.getNodeGroups() ),
function ( groupInternalName ) {
+ var groupName;
if ( groupInternalName.indexOf( 'mwReference/' ) === 0
) {
- var groupName = groupInternalName.slice(
'mwReference/'.length );
+ groupName = groupInternalName.slice(
'mwReference/'.length );
if ( groupName ) {
return new OO.ui.MenuOptionWidget( {
data: groupName, label: groupName } );
}
diff --git a/modules/ve-mw/ui/widgets/ve.ui.MWReferenceSearchWidget.js
b/modules/ve-mw/ui/widgets/ve.ui.MWReferenceSearchWidget.js
index e8df837..09b441e 100644
--- a/modules/ve-mw/ui/widgets/ve.ui.MWReferenceSearchWidget.js
+++ b/modules/ve-mw/ui/widgets/ve.ui.MWReferenceSearchWidget.js
@@ -116,14 +116,14 @@
* @method
*/
ve.ui.MWReferenceSearchWidget.prototype.buildIndex = function () {
- if ( this.built ) {
- return;
- }
-
var n, i, iLen, j, jLen, refModel, group, groupName, groupNames, view,
text, firstNodes, indexOrder,
refGroup, refNode, matches, name, citation,
groups = this.internalList.getNodeGroups();
+ if ( this.built ) {
+ return;
+ }
+
function extractAttrs() {
text += ' ' + this.getAttribute( 'href' );
}
diff --git a/modules/ve-mw/ui/widgets/ve.ui.MWReferenceSourceSelectWidget.js
b/modules/ve-mw/ui/widgets/ve.ui.MWReferenceSourceSelectWidget.js
index 56043e0..fdf9bf6 100644
--- a/modules/ve-mw/ui/widgets/ve.ui.MWReferenceSourceSelectWidget.js
+++ b/modules/ve-mw/ui/widgets/ve.ui.MWReferenceSourceSelectWidget.js
@@ -16,13 +16,15 @@
* @cfg {boolean} [showExisting] Show 're-use existing reference' as an option
*/
ve.ui.MWReferenceSourceSelectWidget = function
VeUiMWReferenceSourceSelectWidget( config ) {
+ var i, len, tools, item, limit,
+ items = [];
+
config = config || {};
// Parent constructor
ve.ui.MWReferenceSourceSelectWidget.super.call( this, config );
- var i, len, tools, item, items = [],
- limit = ve.init.target.constructor.static.citationToolsLimit;
+ limit = ve.init.target.constructor.static.citationToolsLimit;
try {
// Must use mw.message to avoid JSON being parsed as Wikitext
--
To view, visit https://gerrit.wikimedia.org/r/232549
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ia2f765d12bde001c329c2ff4c080a36b71de9803
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Jforrester <[email protected]>
Gerrit-Reviewer: Cscott <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits