%PDF- %PDF-
| Direktori : /www/varak.net/wiki.varak.net/vendor/oojs/oojs-ui/demos/ |
| Current File : /www/varak.net/wiki.varak.net/vendor/oojs/oojs-ui/demos/infusion.js |
// Demonstrate JavaScript 'infusion' of PHP-generated widgets.
// Used by widgets.php.
var infuseButton, $demoMenu;
// Helper function to get high resolution profiling data, where available.
function now() {
return ( window.performance && performance.now ) ? performance.now() :
Date.now ? Date.now() : new Date().getTime();
}
// Add a button to infuse everything!
// (You wouldn't typically do this: you'd only infuse those objects which you needed to attach
// client-side behaviors to, or where the JS implementation provides additional features over PHP,
// like DropdownInputWidget. We do it here because it's a good overall test.)
function infuseAll() {
var start, end;
start = now();
$( '*[data-ooui]' ).map( function ( _, e ) {
return OO.ui.infuse( e.id );
} );
end = now();
window.console.log( 'Took ' + ( end - start ) + ' ms to infuse demo page.' );
infuseButton.setDisabled( true );
}
$demoMenu = $( '.demo-menu' );
OO.ui.getViewportSpacing = function () {
return {
top: $demoMenu.outerHeight(),
right: 0,
bottom: 0,
left: 0
};
};
// More typical usage: we take the existing server-side
// button group and do things to it, here adding a new button.
infuseButton = new OO.ui.ButtonWidget( { label: 'Infuse' } )
.on( 'click', infuseAll );
OO.ui.ButtonGroupWidget.static.infuse( 'demo-menu-infuse' )
.addItems( [ infuseButton ] );