Utente:Ricordisamoa/PDC.js: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
fix autoRfd per Template:E |
fallback per maggiorContributore(), evento select di autocomplete, wgArticleId > 0 |
||
(2 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1:
//<nowiki>
/* jshint browser:true, devel:true, smarttabs:true */
/* global mediaWiki, jQuery, OO */
( function ( mw, $ ) {
'use strict';
var namespaces = mw.config.get( 'wgFormattedNamespaces' )
api: new mw.Api(),
Riga 26:
*/
dialog: [
'oojs-ui',
'jquery.spinner',
'jquery.ui.autocomplete'
]
Riga 91:
'dialog-button-cancel': 'Annulla',
'dialog-button-proceed': 'Procedi',
'dialog-button-final': 'Richiedi la cancellazione',
'error-msg': '$1: $2',
'process-init': 'Benvenuto/a!<br>Sarai guidato/a nella richiesta di cancellazione per la pagina "<b>$1</b>".<br><br>Se invece desideri effettuare la procedura manualmente, consulta $2.',
Line 178 ⟶ 179:
*/
dialogo: function ( contenuto ) {
this.dialog.description.setLabel( $( '
},
Line 189 ⟶ 190:
messaggio = this.msg( messaggio );
console.info( messaggio );
var $l = this.dialog.$element.find( '.PDC-spinner-label' );
if ( $l.length === 1 ) {
$l.empty().append( messaggio );
Riga 237:
}
console.error( messaggio );
if (
this.dialogo(
$( '<p>' )
Riga 376:
return ( ( t[a] > t[b] ) ? -1 : ( ( t[a] < t[b] ) ? 1 : 0 ) );
} ),
r = x[0] || null;
$.each( t, function ( k, v ) {
if ( k != x[0] && v == t[x[0]] ) {
Riga 723:
},
/**
* Configura jquery.ui.autocomplete per un TextInputWidget.
* @param {OO.ui.TextInputWidget} widget - Il widget per il quale configurare i suggerimenti
*/
autocompletaArgomento: function ( widget ) {
widget
.autocomplete( {
source: this.scegliArgomento.bind( this ),
select: widget.onEdit.bind( widget )
} );
},
Line 762 ⟶ 761:
mw.loader.using( self.dependencies.dialog )
.done( function () {
PDC.Dialog = function ( config ) {
PDC.Dialog.super.call( this, config );
};
OO.inheritClass( PDC.Dialog, OO.ui.ProcessDialog );
PDC.Dialog.static.
PDC.Dialog.static.size = 'large';
PDC.Dialog.static.actions = [
flags: [ 'primary', 'progressive' ]
},
label: self.msg( 'dialog-button-cancel' ),
}
];
PDC.Dialog.prototype.initialize = function () {
PDC.Dialog.super.prototype.initialize.apply( this, arguments );
this.content = new OO.ui.PanelLayout( { padded: true } );
this.fieldset = new OO.ui.FieldsetLayout( {
label: self.msg( 'dialog-title' ), icon: 'alert'
} );
this.description = new OO.ui.LabelWidget( {
padded: true,
'<a href="' + mw.util.getUrl( self.config.help ) + '">' + self.config.help + '</a>'
)
)
} );
this.fieldset.addItems( [ this.description ] );
this.content.$element.append( this.fieldset.$element );
this.$body.append( this.content.$element );
this.starting = true;
this.options = {};
};
PDC.Dialog.prototype.proceed = function () {
var dialog = this;
self.ottieniContributori( titolo )
.done( function ( contributori ) {
dialog.options.reason = new OO.ui.TextInputWidget( {
multiline: true,
autosize: true,
validate: /\S/
} );
dialog.fieldset.addItems( [
new OO.ui.FieldLayout(
dialog.options.reason,
{
label: self.msg( 'option-reason' ),
align: 'top'
}
)
] );
dialog.description.setLabel(
$( '<p>' )
.append(
self.msg( 'process-confirm', titolo )
)
);
dialog.creatore = contributori[contributori.length - 1];
dialog.maggiore = self.maggiorContributore( contributori );
if (
dialog.creatore.anon === undefined &&
dialog.creatore.user !== mw.config.get( 'wgUserName' )
) {
dialog.options.notifyCreator = new OO.ui.CheckboxInputWidget( {} );
dialog.fieldset.addItems( [
new OO.ui.FieldLayout(
dialog.options.notifyCreator,
{
align: 'inline',
label: self.msg( 'option-notify-creator', dialog.creatore.user )
}
)
] );
}
if (
dialog.maggiore !== null &&
dialog.maggiore !== dialog.creatore.user &&
dialog.maggiore !== mw.config.get( 'wgUserName' )
) {
dialog.options.notifyBiggest = new OO.ui.CheckboxInputWidget( {} );
dialog.fieldset.addItems( [
new OO.ui.FieldLayout(
dialog.options.notifyBiggest,
{
align: 'inline',
label: self.msg( 'option-notify-biggest', dialog.maggiore )
}
)
dialog.options.notifyTopic1 = new OO.ui.TextInputWidget();
self.autocompletaArgomento( dialog.options.notifyTopic1 );
dialog.fieldset.addItems( [
new OO.ui.FieldLayout(
dialog.options.notifyTopic1,
}
] );
dialog.options.notifyTopic2 = new OO.ui.TextInputWidget();
self.autocompletaArgomento( dialog.options.notifyTopic2 );
// namespace "Discussioni progetto"
dialog.pTalk = self.config.wikiprojectNamespace + 1;
dialog.options.notifyWikiprojects = new OO.ui.CheckboxInputWidget( {
{
label: self.
// Forza il ridimensionamento della finestra
dialog.manager.updateWindowSize( dialog );
// Reimposta il pulsante 'procedi'
.get( { actions: 'proceed' } )[0]
.clearFlags()
.setFlags( [ 'primary', 'constructive' ] )
.setLabel( self.msg( 'dialog-button-final' ) );
} );
};
PDC.Dialog.prototype.final = function () {
var dialog = this,
argomenti = $.map( [ 'notifyTopic1', 'notifyTopic2' ], function ( opt ) {
return dialog.options[opt].getValue().trim();
} )
.filter( function ( el, i, arr ) {
} ),
notifyCreator: dialog.creatore.user,
}, function ( user, opt ) {
if (
dialog.options[opt] !== undefined &&
dialog.options[opt].isSelected()
return self.namespaces[3] + ':' + user;
}
} );
if (
!dialog.options.notifyWikiprojects.isDisabled() &&
dialog.options.notifyWikiprojects.isSelected()
daNotificare = daNotificare.concat(
return self.namespaces[dialog.pTalk] + ':' + argomento;
} )
}
self.avvisoVoce( titolo, numero, argomenti )
window.location = mw.util.getUrl( procedura );
} )
.fail( function () { } ) .fail( function () {
self.errore( 'new-nomination-error' );
self.progresso( 'new-nomination-wait' );
};
PDC.Dialog.prototype.getActionProcess = function ( action ) {
return PDC.Dialog.super.prototype.getActionProcess.call( this, action )
.next( function () {
var dialog = this;
if ( action === 'proceed' ) {
if ( dialog.starting === true ) {
dialog.starting = false;
dialog.proceed();
} else {
dialog.options.reason.isValid()
.done( function ( isValid ) {
if ( isValid ) {
dialog.final();
}
}
} else {
return this.close();
}
}, this );
var windowManager = new OO.ui.WindowManager();
$( 'body' ).append( windowManager.$element );
self.dialog = new PDC.Dialog();
windowManager.addWindows( [ self.dialog ] );
windowManager.openWindow( self.dialog );
} );
},
Line 1 092 ⟶ 1 162:
preInit: function () {
if (
// pagina esistente
mw.config.get( 'wgArticleId' ) > 0 &&
// in modalità di visualizzazione
mw.config.get( 'wgAction' ) === 'view' &&
Line 1 401 ⟶ 1 473:
}
};
window.PDC = PDC;
}( mediaWiki, jQuery ) );
|