MediaWiki:Gadget-ZkontrolovanoUcitelem.js: Porovnání verzí

 
(Není zobrazeno 15 mezilehlých verzí od 2 dalších uživatelů.)
Řádek 1: Řádek 1:
mw.hook( 've.activationComplete' ).add(function(){
+
/*!
/**
+
* This script adds a "Your signature" button to the "Insert" menu in VisualEditor.
  * Adds dialog for selecting citation tempalte.
+
*
  * Written by: [[User:ערן]] and [[User:Ravid ziv]]
+
* The button is only available in non-content namespaces and, you guessed it, inserts a signature
 +
* with time for the current user into the page. The signature always reflects current time and
 +
* can not be modified.
 +
*
 +
* Existing signatures on the page are not parsed, like in wikitext.
 +
*
 +
* To enable, add the following snippet to your common.js page (on any wiki):
 +
*  mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Matma_Rex/visualeditor-signature.js&action=raw&ctype=text/javascript');
 +
  *
 +
  * Author: Bartosz Dziewoński ([[User:Matma Rex]])
 +
* Released under the terms of the MIT license.
 
  */
 
  */
(function () {
+
 
+
/*mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Matma_Rex/visualeditor-signature.js&action=raw&ctype=text/javascript');*/
/************* Configuration section *******************************************/
+
/*global $, mw, ve, OO */
 
var DialogTitle = 'Select citation template';
 
//Configurate the most common citation templates and their parameters here
 
var CitationTemplates = {
 
'Cite Web ': { template: {
 
target: {
 
href: 'Template:cite web',
 
wt: 'cite web'
 
},
 
params: {
 
'first': {wt: ''},
 
'last': {wt: ''},
 
'title': {wt: ''},
 
'url': {wt: ''},
 
'publisher': {wt: ''},
 
'accessdate': {wt: ''}
 
}
 
}
 
},
 
'Cite news': { template: {
 
target: {
 
href: 'Template:cite news',
 
wt: 'cite news'
 
},
 
params: {
 
'first': {wt: ''},
 
'last': {wt: ''},
 
'title': {wt: ''},
 
'url': {wt: ''},
 
'accessdate': {wt: ''},
 
'newspaper': {wt: ''}
 
}
 
}
 
},
 
'Cite book': { template: {
 
target: {
 
href: 'Template:cite book',
 
wt: 'cite book'
 
},
 
params: {
 
'first': {wt: ''},
 
'last': {wt: ''},
 
'date': {wt: ''},
 
'publisher': {wt: ''},
 
'location': {wt: ''},
 
'isbn': {wt: ''},
 
'page': {wt: ''},
 
'url': {wt: ''}
 
}
 
}
 
},
 
'Cite journal ': { template: {
 
target: {
 
href: 'Template:cite journal',
 
wt: 'cite journal'
 
},
 
params: {
 
'first': {wt: ''},
 
'last': {wt: ''},
 
'coauthors': {wt: ''},
 
'journal': {wt: ''},
 
'date': {wt: ''},
 
'volume': {wt: ''},
 
'series': {wt: ''},
 
'issue': {wt: ''},
 
'page': {wt: ''},
 
'doi': {wt: ''},
 
'pmid': {wt: ''},
 
'url': {wt: ''},
 
'accessdate': {wt: ''}
 
}
 
}
 
}
 
}
 
 
/*************************** end of configuration section *********************/
 
ve.ui.VeUiMWCiteDialog = function VeUiMWCiteDialog( surface, config ) {
 
// Configuration initialization
 
config = ve.extendObject( { 'size': 'medium' }, config );
 
// Parent constructor
 
ve.ui.MWReferenceDialog.call( this, surface, config );
 
 
this.followTransactions  = false;
 
 
};
 
 
/* Inheritance */
 
 
OO.inheritClass( ve.ui.VeUiMWCiteDialog, ve.ui.MWReferenceDialog );
 
 
/* Static Properties */
 
 
ve.ui.VeUiMWCiteDialog.static.name = 'Cite';
 
 
ve.ui.VeUiMWCiteDialog.static.title = DialogTitle;
 
 
 
ve.ui.VeUiMWCiteDialog.prototype.initialize = function ( ) {
 
ve.ui.MWReferenceDialog.prototype.initialize.call(this);
 
// hide reference panel
 
this.editPanel.$element.hide()
 
this.$foot.hide();
 
 
this.templatesPanel = new OO.ui.PanelLayout( {
 
'$': this.$, 'scrollable': true, 'padded': true
 
} );
 
 
this.panels.addItems( [ this.templatesPanel ] );
 
 
var buttons = [];
 
for (var buttonName in CitationTemplates) {
 
var button = new OO.ui.ButtonWidget( {
 
'$': this.$,
 
'label': buttonName,
 
} );
 
button.connect( this, { 'click': [ 'citeWeb', CitationTemplates[buttonName] ] } );
 
buttons.push(button.$element);
 
}
 
this.templatesPanel.$element.append(buttons).show();
 
 
}
 
 
ve.ui.VeUiMWCiteDialog.prototype.useReference = function ( ref ) {
 
 
this.followTransactions  = false;
 
ve.ui.MWReferenceDialog.prototype.useReference.call(this, ref);
 
}
 
 
ve.ui.VeUiMWCiteDialog.prototype.citeWeb = function( emptyTemplate ){
 
this.referenceSurface.getSurface().getModel().getFragment().collapseRangeToEnd().insertContent([{'type': 'mwTransclusionInline','attributes': {'mw':
 
{
 
parts: [ emptyTemplate ]
 
}}}]);
 
this.followTransactions  = true;
 
this.referenceSurface.getSurface().execute('dialog', 'open', 'transclusion', null);
 
var self = this;
 
this.referenceSurface.getSurface().getDialogs().getWindow('transclusion').on(
 
'close',function (data){
 
if (data.action=='cancel')
 
{
 
self.close({ 'action': 'cancel' });
 
}
 
});
 
}
 
 
ve.ui.VeUiMWCiteDialog.prototype.onDocumentTransact = function () {
 
if (!this.followTransactions) return;
 
var data = this.referenceSurface.getSurface().getModel().getDocument().getFullData();
 
for (var j=0;j<data.length;j++)
 
{
 
var node = data[j];
 
if (node.type ==="mwTransclusionInline" && node.hasOwnProperty('attributes') )
 
{
 
var params = node.attributes.mw.parts[0].template.params;
 
this.close( { 'action': 'insert' } );
 
}
 
}
 
};
 
 
/* Registration */
 
 
ve.ui.dialogFactory.register( ve.ui.VeUiMWCiteDialog );
 
 
 
function CiteTool( toolGroup, config ) {
 
OO.ui.Tool.call( this, toolGroup, config );
 
 
}
 
OO.inheritClass( CiteTool, OO.ui.Tool );
 
 
CiteTool.static.name = 'CiteTool';
 
CiteTool.static.title = 'Cite'
 
 
CiteTool.prototype.onSelect = function () {
 
this.toolbar.getSurface().execute('dialog', 'open', 'Cite', null);
 
};
 
 
CiteTool.prototype.onUpdateState = function () {
 
this.setActive( false );
 
};
 
 
ve.ui.toolFactory.register( CiteTool );
 
 
})();
 
});
 

Aktuální verze z 9. 7. 2015, 22:21

/*!
 * This script adds a "Your signature" button to the "Insert" menu in VisualEditor.
 *
 * The button is only available in non-content namespaces and, you guessed it, inserts a signature
 * with time for the current user into the page. The signature always reflects current time and
 * can not be modified.
 *
 * Existing signatures on the page are not parsed, like in wikitext.
 *
 * To enable, add the following snippet to your common.js page (on any wiki):
 *   mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Matma_Rex/visualeditor-signature.js&action=raw&ctype=text/javascript');
 *
 * Author: Bartosz Dziewoński ([[User:Matma Rex]])
 * Released under the terms of the MIT license.
 */

/*mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Matma_Rex/visualeditor-signature.js&action=raw&ctype=text/javascript');*/
/*global $, mw, ve, OO */