1 Demo.BookletDialog = function DemoBookletDialog( config ) {
2 Demo.BookletDialog.parent.call( this, config );
4 OO.inheritClass( Demo.BookletDialog, OO.ui.ProcessDialog );
5 Demo.BookletDialog.static.title = 'Booklet dialog';
6 Demo.BookletDialog.static.actions = [
7 { action: 'save', label: 'Done', flags: [ 'primary', 'progressive' ] },
8 { action: 'cancel', label: 'Cancel', flags: [ 'safe', 'back' ] }
10 Demo.BookletDialog.prototype.getBodyHeight = function () {
13 Demo.BookletDialog.prototype.initialize = function () {
15 Demo.BookletDialog.parent.prototype.initialize.apply( this, arguments );
19 function changePage( direction ) {
20 var pageIndex = dialog.pages.indexOf( dialog.bookletLayout.getCurrentPage() );
21 pageIndex = ( dialog.pages.length + pageIndex + direction ) % dialog.pages.length;
22 dialog.bookletLayout.setPage( dialog.pages[ pageIndex ].getName() );
25 this.navigationField = new OO.ui.FieldLayout(
26 new OO.ui.ButtonGroupWidget( {
28 new OO.ui.ButtonWidget( {
31 } ).on( 'click', function () {
34 new OO.ui.ButtonWidget( {
37 } ).on( 'click', function () {
48 this.bookletLayout = new OO.ui.BookletLayout();
50 new Demo.SamplePage( 'page-1', { label: 'Page 1', icon: 'window' } ),
51 new Demo.SamplePage( 'page-2', { label: 'Page 2', icon: 'window' } ),
52 new Demo.SamplePage( 'page-3', { label: 'Page 3', icon: 'window' } )
54 this.bookletLayout.addPages( this.pages );
55 this.bookletLayout.connect( this, { set: 'onBookletLayoutSet' } );
56 this.bookletLayout.setPage( 'page-1' );
58 this.$body.append( this.bookletLayout.$element );
60 Demo.BookletDialog.prototype.getActionProcess = function ( action ) {
62 return new OO.ui.Process( function () {
63 this.close( { action: action } );
66 return Demo.BookletDialog.parent.prototype.getActionProcess.call( this, action );
68 Demo.BookletDialog.prototype.onBookletLayoutSet = function ( page ) {
69 page.$element.append( this.navigationField.$element );