%PDF- %PDF-
| Direktori : /www/varak.net/wiki.varak.net/vendor/oojs/oojs-ui/demos/classes/ |
| Current File : /www/varak.net/wiki.varak.net/vendor/oojs/oojs-ui/demos/classes/PopupButtonWidgetTest.js |
Demo.PopupButtonWidgetTest = function DemoPopupButtonWidgetTest( config ) {
Demo.PopupButtonWidgetTest.parent.call( this, config );
};
OO.inheritClass( Demo.PopupButtonWidgetTest, OO.ui.ProcessDialog );
Demo.PopupButtonWidgetTest.static.title = 'PopupButtonWidget test';
Demo.PopupButtonWidgetTest.static.actions = [
{ action: 'save', label: 'Done', flags: [ 'primary', 'progressive' ] },
{ action: 'cancel', label: 'Cancel', flags: [ 'safe', 'back' ] }
];
Demo.PopupButtonWidgetTest.prototype.initialize = function () {
Demo.PopupButtonWidgetTest.parent.prototype.initialize.apply( this, arguments );
this.panel = new OO.ui.PanelLayout( {
expanded: false,
padded: true
} );
this.$center = $( '<td>' ).attr( { colspan: 3, rowspan: 3 } );
this.toggleOverlayWidget = new OO.ui.ToggleSwitchWidget( { value: true } );
this.toggleAnchorWidget = new OO.ui.ToggleSwitchWidget( { value: true } );
this.showAllWidget = new OO.ui.ButtonWidget( { label: 'Toggle all' } );
this.toggleOverlayWidget.connect( this, { change: 'makeTable' } );
this.toggleAnchorWidget.connect( this, { change: 'makeTable' } );
this.showAllWidget.connect( this, { click: 'toggleAll' } );
this.fieldset = new OO.ui.FieldsetLayout( {
items: [
new OO.ui.FieldLayout( this.toggleAnchorWidget, {
align: 'inline',
label: 'Enable anchors'
} ),
new OO.ui.FieldLayout( this.toggleOverlayWidget, {
align: 'inline',
label: 'Use overlay'
} ),
new OO.ui.FieldLayout( this.showAllWidget, {
align: 'top'
} )
]
} );
this.$center.append( this.fieldset.$element );
this.makeTable();
this.$body.append( this.panel.$element );
};
Demo.PopupButtonWidgetTest.prototype.makeContents = function () {
var loremIpsum = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, ' +
'sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\u200E';
return $( [] )
.add( $( '<p>' ).text( loremIpsum ) )
.add( $( '<p>' ).text( loremIpsum ) )
.add( $( '<p>' ).text( loremIpsum ) );
};
Demo.PopupButtonWidgetTest.prototype.makeTable = function () {
this.buttons = [];
if ( this.$table ) {
this.$table.detach();
}
this.$table = $( '<table>' ).append(
$( '<tr>' ).append(
$( '<td>' ),
$( '<td>' ).append( this.getButton( 'above', 'backwards' ).$element ),
$( '<td>' ).append( this.getButton( 'above', 'center' ).$element ),
$( '<td>' ).append( this.getButton( 'above', 'forwards' ).$element ),
$( '<td>' )
),
$( '<tr>' ).append(
$( '<td>' ).append( this.getButton( 'before', 'backwards' ).$element ),
this.$center,
$( '<td>' ).append( this.getButton( 'after', 'backwards' ).$element ).css( 'text-align', this.getDir() === 'rtl' ? 'left' : 'right' )
),
$( '<tr>' ).append(
$( '<td>' ).append( this.getButton( 'before', 'center' ).$element ),
$( '<td>' ).append( this.getButton( 'after', 'center' ).$element ).css( 'text-align', this.getDir() === 'rtl' ? 'left' : 'right' )
),
$( '<tr>' ).append(
$( '<td>' ).append( this.getButton( 'before', 'forwards' ).$element ),
$( '<td>' ).append( this.getButton( 'after', 'forwards' ).$element ).css( 'text-align', this.getDir() === 'rtl' ? 'left' : 'right' )
),
$( '<tr>' ).append(
$( '<td>' ),
$( '<td>' ).append( this.getButton( 'below', 'backwards' ).$element ),
$( '<td>' ).append( this.getButton( 'below', 'center' ).$element ),
$( '<td>' ).append( this.getButton( 'below', 'forwards' ).$element ),
$( '<td>' )
)
);
this.panel.$element.append( this.$table );
};
Demo.PopupButtonWidgetTest.prototype.getButton = function ( position, align ) {
var button = new OO.ui.PopupButtonWidget( {
$overlay: ( this.toggleOverlayWidget.getValue() ? this.$overlay : null ),
label: $( '<span>' ).append( position + '<br>' + align ),
popup: {
position: position,
align: align,
anchor: this.toggleAnchorWidget.getValue(),
padded: true,
$content: this.makeContents()
}
} );
this.buttons.push( button );
return button;
};
Demo.PopupButtonWidgetTest.prototype.toggleAll = function () {
this.buttons.forEach( function ( button ) {
button.getPopup().toggle();
} );
};
Demo.PopupButtonWidgetTest.prototype.getActionProcess = function ( action ) {
if ( action ) {
return new OO.ui.Process( function () {
this.close( { action: action } );
}, this );
}
return Demo.PopupButtonWidgetTest.parent.prototype.getActionProcess.call( this, action );
};