MediaWiki:Gadget-ProgressDialog.js
Questa pagina definisce alcuni parametri di aspetto e comportamento generale di tutte le pagine. Per personalizzarli vedi Aiuto:Stile utente.
Nota: dopo aver salvato è necessario pulire la cache del proprio browser per vedere i cambiamenti (per le pagine globali è comunque necessario attendere qualche minuto). Per Mozilla / Firefox / Safari: fare clic su Ricarica tenendo premuto il tasto delle maiuscole, oppure premere Ctrl-F5 o Ctrl-R (Command-R su Mac); per Chrome: premere Ctrl-Shift-R (Command-Shift-R su un Mac); per Konqueror: premere il pulsante Ricarica o il tasto F5; per Opera può essere necessario svuotare completamente la cache dal menù Strumenti → Preferenze; per Internet Explorer: mantenere premuto il tasto Ctrl mentre si preme il pulsante Aggiorna o premere Ctrl-F5.
/**
* Classe ProgressDialog
*
* Consente di creare una finestra di dialogo dove mostrare gli aggiornamenti
* di diverse operazioni in corso.
*
* @author https://it.wikipedia.org/wiki/Utente:Sakretsu
*/
/**
* Costruttore della classe ProgressDialog
*
* @param {object|null} [config] Opzioni di configurazione
* @param {string|null} [config.closeButtonLabel] Etichetta del pulsante di chiusura
* @param {string|null} [config.dialogTitle] Titolo della finestra
*/
function ProgressDialog( config ) {
config = config || {};
ProgressDialog.super.call( this, { size: 'large' } );
this.dialogTitle = config.dialogTitle || 'Operazioni in corso...';
this.closeButtonLabel = config.closeButtonLabel || 'Chiudi';
}
OO.inheritClass( ProgressDialog, OO.ui.Dialog );
ProgressDialog.static.name = 'progressDialog';
ProgressDialog.prototype.getSetupProcess = function ( data ) {
data = data || {};
data.title = this.dialogTitle;
return ProgressDialog.super.prototype.getSetupProcess.call( this, data );
};
ProgressDialog.prototype.initialize = function () {
ProgressDialog.super.prototype.initialize.call( this );
this.content = new OO.ui.PanelLayout( {
padded: true,
expanded: false
} );
this.message = new OO.ui.LabelWidget();
this.$progressList = $( '<ul>' );
this.closeButton = new OO.ui.ButtonWidget( {
label: this.closeButtonLabel
} );
this.content.$element.css( {
'min-height': '240px'
} );
this.title.$element.css( {
'display': 'block',
'font-size': '1.5em',
'padding-bottom': '.25em',
'text-align': 'center'
} );
this.message.$element.css( {
'display': 'block'
} );
this.$progressList.css( {
'color': '#202122',
'line-height': '1.6em'
} );
this.closeButton.toggle( false );
this.content.$element.append(
this.title.$element,
this.message.$element,
this.closeButton.$element
);
this.message.$element.append( this.$progressList );
this.$body.append( this.content.$element );
this.closeButton.connect( this, { click: 'close' } );
};
ProgressDialog.prototype.appendProgressMsg = function ( text ) {
this.$progressList.append( $( '<li>' ).html( text ) );
this.updateSize();
};
ProgressDialog.prototype.appendResultMsg = function ( text, styles ) {
this.message.$element.append(
$( '<hr>' )
.css( {
'background-color': '#e0e0e0',
'margin': '.8em auto 0',
'width': '90%'
} ),
$( '<p>' ).css( styles ).html( text )
);
this.updateSize();
};
ProgressDialog.prototype.appendErrorMsg = function ( text ) {
this.appendResultMsg( text, {
'color': 'red',
'padding': '.25em 0 .5em'
} );
};
ProgressDialog.prototype.appendSuccessMsg = function ( text ) {
this.appendResultMsg( text, {
'font-size': 'larger',
'padding-top': '.25em',
'text-align': 'center'
} );
};
ProgressDialog.prototype.showCloseButton = function () {
this.closeButton.toggle( true );
this.updateSize();
};
module.exports = ProgressDialog;