Constructor
new OO.ui.mixin.PendingElement([config])abstract
#
PendingElement is a mixin that is used to create elements that notify users that something is
happening and that they should wait before proceeding. The pending state is visually represented
with a pending texture that appears in the head of a pending
process dialog
or in the input field of a
text input widget
.
Currently, Action widgets
, which mix in this class, can also be marked
as pending, but only when used in message dialogs
. The behavior is
not currently supported for action widgets used in process dialogs.
Example
function MessageDialog( config ) {
MessageDialog.super.call( this, config );
}
OO.inheritClass( MessageDialog, OO.ui.MessageDialog );
MessageDialog.static.name = 'myMessageDialog';
MessageDialog.static.actions = [
{ action: 'save', label: 'Done', flags: 'primary' },
{ label: 'Cancel', flags: 'safe' }
];
MessageDialog.prototype.initialize = function () {
MessageDialog.super.prototype.initialize.apply( this, arguments );
this.content = new OO.ui.PanelLayout( { padded: true } );
this.content.$element.append( '<p>Click the \'Done\' action widget to see its pending ' +
'state. Note that action widgets can be marked pending in message dialogs but not ' +
'process dialogs.</p>' );
this.$body.append( this.content.$element );
};
MessageDialog.prototype.getBodyHeight = function () {
return 100;
}
MessageDialog.prototype.getActionProcess = function ( action ) {
if ( action === 'save' ) {
this.getActions().get({actions: 'save'})[0].pushPending();
return new OO.ui.Process()
.next( 1000 )
.next( () => {
this.getActions().get({actions: 'save'})[0].popPending();
} );
}
return MessageDialog.super.prototype.getActionProcess.call( this, action );
};
const windowManager = new OO.ui.WindowManager();
$( document.body ).append( windowManager.$element );
const dialog = new MessageDialog();
windowManager.addWindows( [ dialog ] );
windowManager.openWindow( dialog );
Parameters:
Name | Type | Attributes | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
config |
Object |
optional |
Configuration options Properties:
|
- Source:
PendingElement is a mixin that is used to create elements that notify users that something is happening and that they should wait before proceeding.
Methods
isPending() → {boolean}
#
Check if an element is pending.
- Source:
Returns:
Element is pending
- Type
- boolean
popPending() → {OO.ui.Element}chainable
#
Decrease the pending counter. The pending state will remain active until the counter is zero (i.e., the number of calls to #pushPending and #popPending is the same).
- Source:
Returns:
The element, for chaining
- Type
- OO.ui.Element
pushPending() → {OO.ui.Element}chainable
#
Increase the pending counter. The pending state will remain active until the counter is zero (i.e., the number of calls to #pushPending and #popPending is the same).
- Source:
Returns:
The element, for chaining
- Type
- OO.ui.Element