mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-12-13 06:49:42 +00:00
58e82f36aa
This would cause an error if the continue action was chosen before selecting an item in the list. Change-Id: Ic1eb66caff112c09bb60b31a7221c48e2962b3d8
158 lines
4.2 KiB
JavaScript
158 lines
4.2 KiB
JavaScript
/*!
|
|
* VisualEditor UserInterface EditCheckInspector class.
|
|
*
|
|
* @copyright See AUTHORS.txt
|
|
*/
|
|
|
|
/**
|
|
* Edit check inspector
|
|
*
|
|
* @class
|
|
* @extends ve.ui.FragmentInspector
|
|
*
|
|
* @constructor
|
|
* @param {Object} [config] Configuration options
|
|
*/
|
|
ve.ui.EditCheckInspector = function VeUiEditCheckInspector( config ) {
|
|
// Parent constructor
|
|
ve.ui.EditCheckInspector.super.call( this, config );
|
|
|
|
// Pre-initialization
|
|
this.$element.addClass( 've-ui-editCheckInspector' );
|
|
};
|
|
|
|
/* Inheritance */
|
|
|
|
OO.inheritClass( ve.ui.EditCheckInspector, ve.ui.FragmentInspector );
|
|
|
|
ve.ui.EditCheckInspector.static.name = 'editCheckReferencesInspector';
|
|
|
|
// ve.ui.EditCheckInspector.static.title = OO.ui.deferMsg( 'editcheck-dialog-title' );
|
|
ve.ui.EditCheckInspector.static.title = OO.ui.deferMsg( 'editcheck-dialog-addref-title' );
|
|
|
|
// ve.ui.EditCheckInspector.static.size = 'context';
|
|
|
|
ve.ui.EditCheckInspector.static.actions = [
|
|
{
|
|
label: OO.ui.deferMsg( 'visualeditor-dialog-action-cancel' ),
|
|
flags: [ 'safe', 'back' ],
|
|
modes: [ 'mobile', 'desktop' ]
|
|
},
|
|
{
|
|
action: 'continue',
|
|
icon: 'next',
|
|
flags: [ 'primary', 'progressive' ],
|
|
modes: [ 'mobile' ]
|
|
}
|
|
];
|
|
|
|
/* Methods */
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
ve.ui.EditCheckInspector.prototype.initialize = function () {
|
|
// Parent method
|
|
ve.ui.EditCheckInspector.super.prototype.initialize.call( this );
|
|
|
|
// Survey panel
|
|
this.answerRadioSelect = new OO.ui.RadioSelectWidget( {
|
|
items: [
|
|
new OO.ui.RadioOptionWidget( {
|
|
data: 'uncertain',
|
|
label: ve.msg( 'editcheck-dialog-addref-reject-uncertain' )
|
|
} ),
|
|
new OO.ui.RadioOptionWidget( {
|
|
data: 'common-knowledge',
|
|
label: ve.msg( 'editcheck-dialog-addref-reject-common-knowledge' )
|
|
} ),
|
|
new OO.ui.RadioOptionWidget( {
|
|
data: 'irrelevant',
|
|
label: ve.msg( 'editcheck-dialog-addref-reject-irrelevant' )
|
|
} ),
|
|
new OO.ui.RadioOptionWidget( {
|
|
data: 'other',
|
|
label: ve.msg( 'editcheck-dialog-addref-reject-other' )
|
|
} )
|
|
]
|
|
} );
|
|
this.answerRadioSelect.connect( this, { select: 'updateActions' } );
|
|
|
|
this.answerConfirm = new OO.ui.ButtonWidget( {
|
|
flags: [ 'progressive' ],
|
|
framed: false,
|
|
label: ve.msg( 'ooui-dialog-process-continue' ),
|
|
disabled: true
|
|
} );
|
|
this.answerConfirm.toggle( !OO.ui.isMobile() );
|
|
this.answerConfirm.connect( this, { click: [ 'executeAction', 'continue' ] } );
|
|
|
|
this.form.addItems(
|
|
new OO.ui.FieldsetLayout( {
|
|
label: ve.msg( 'editcheck-dialog-addref-reject-question' ),
|
|
items: [
|
|
new OO.ui.FieldLayout( this.answerRadioSelect, {
|
|
label: ve.msg( 'editcheck-dialog-addref-reject-description' ),
|
|
align: 'top'
|
|
} ),
|
|
new OO.ui.FieldLayout( this.answerConfirm, {
|
|
align: 'left'
|
|
} )
|
|
]
|
|
} )
|
|
);
|
|
};
|
|
|
|
ve.ui.EditCheckInspector.prototype.updateActions = function () {
|
|
const isSelected = !!this.answerRadioSelect.findSelectedItem();
|
|
// desktop
|
|
this.answerConfirm.setDisabled( !isSelected );
|
|
// mobile
|
|
this.actions.setAbilities( { continue: isSelected } );
|
|
};
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
ve.ui.EditCheckInspector.prototype.getSetupProcess = function ( data ) {
|
|
data = data || {};
|
|
return ve.ui.EditCheckInspector.super.prototype.getSetupProcess.call( this, data )
|
|
.first( function () {
|
|
this.surface = data.surface;
|
|
this.saveProcessDeferred = data.saveProcessDeferred;
|
|
this.answerRadioSelect.selectItem( null );
|
|
}, this );
|
|
};
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
ve.ui.EditCheckInspector.prototype.getReadyProcess = function ( data ) {
|
|
return ve.ui.EditCheckInspector.super.prototype.getReadyProcess.call( this, data )
|
|
.first( function () {
|
|
this.actions.setMode( OO.ui.isMobile() ? 'mobile' : 'desktop' );
|
|
this.updateActions();
|
|
}, this );
|
|
};
|
|
|
|
ve.ui.EditCheckInspector.prototype.getActionProcess = function ( action ) {
|
|
if ( action === '' ) {
|
|
return new OO.ui.Process( function () {
|
|
this.close();
|
|
}, this );
|
|
}
|
|
|
|
if ( action === 'continue' ) {
|
|
return new OO.ui.Process( function () {
|
|
this.close( { action: 'reject', reason: this.answerRadioSelect.findSelectedItem().getData() } );
|
|
ve.track( 'activity.editCheckReferences', { action: 'dialog-choose-' + this.answerRadioSelect.findSelectedItem().getData() } );
|
|
}, this );
|
|
}
|
|
|
|
return ve.ui.EditCheckInspector.super.prototype.getActionProcess.call( this, action );
|
|
};
|
|
|
|
/* Registration */
|
|
|
|
ve.ui.windowFactory.register( ve.ui.EditCheckInspector );
|