« MediaWiki:Common.js » : différence entre les versions
Apparence
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| Ligne 21 : | Ligne 21 : | ||
statut = 'utilisateur non connecté'; | statut = 'utilisateur non connecté'; | ||
} | } | ||
alert(statut); | |||
$(".monstatut").text(statut); | $(".monstatut").text(statut); | ||
} | } | ||
Version du 12 décembre 2016 à 11:52
/* Tout JavaScript ici sera chargé avec chaque page accédée par n’importe quel utilisateur. */
/*******************************************************************************/
/* Javascript pour afficher le statut de l'utilisateur actuel */
/* sur la page "lescatpat:Utilisateurs" ou d'autres à définir */
/********************************************************************************/
dsg_wgTitle = mw.config.get("wgTitle");
dsg_wgCanonicalNamespace = mw.config.get("wgCanonicalNamespace");
dsg_wgUserGroups = mw.config.get("wgUserGroups");
if(dsg_wgTitle == "Utilisateurs" & dsg_wgCanonicalNamespace == "Project"){
if($.inArray('sysop', dsg_wgUserGroups) !== -1){
statut = 'administrateur';
}else if($.inArray('Editeur', dsg_wgUserGroups) !== -1){
statut = 'éditeur';
}else if($.inArray('user', dsg_wgUserGroups) !== -1){
statut = 'utilisateur connecté';
}else{
statut = 'utilisateur non connecté';
}
alert(statut);
$(".monstatut").text(statut);
}
alert("22");
/*******************************************************************************/
/* Javascript applicable à la catégorie des recettes (voir if... plus bas)
/* Javascript pour modifier la navigation Outils */
/* */
/* http://www.mediawiki.org/w/index.php?title=Manual:Interface/Sidebar */
/********************************************************************************/
function ModifySidebar( action, section, name, link ) {
try {
switch ( section ) {
case 'languages':
var target = 'p-lang';
break;
case 'toolbox':
var target = 'p-tb';
break;
case 'navigation':
var target = 'p-navigation';
break;
default:
var target = 'p-' + section;
break;
}
if ( action == 'add' ) {
var node = document.getElementById( target )
.getElementsByTagName( 'div' )[0]
.getElementsByTagName( 'ul' )[0];
var aNode = document.createElement( 'a' );
var liNode = document.createElement( 'li' );
aNode.appendChild( document.createTextNode( name ) );
aNode.setAttribute( 'href', link );
liNode.appendChild( aNode );
liNode.className = 'plainlinks';
node.appendChild( liNode );
}
if ( action == 'remove' ) {
var list = document.getElementById( target )
.getElementsByTagName( 'div' )[0]
.getElementsByTagName( 'ul' )[0];
var listelements = list.getElementsByTagName( 'li' );
for ( var i = 0; i < listelements.length; i++ ) {
if (
listelements[i].getElementsByTagName( 'a' )[0].innerHTML == name ||
listelements[i].getElementsByTagName( 'a' )[0].href == link
)
{
list.removeChild( listelements[i] );
}
}
}
} catch( e ) {
// let's just ignore what's happened
return;
}
}
function CustomizeModificationsOfSidebar() {
ModifySidebar( 'remove', 'toolbox', 'Pages liées', '' );
ModifySidebar( 'remove', 'toolbox', 'Suivi des pages liées', '' );
ModifySidebar( 'remove', 'toolbox', 'Importer un fichier', 'Spécial:Téléverser' );
ModifySidebar( 'remove', 'toolbox', 'Pages spéciales', 'Spécial:Pages spéciales' );
ModifySidebar( 'remove', 'toolbox', 'Adresse de cette version', '' );
//ModifySidebar( 'remove', 'toolbox', 'Information sur la page', '' );
ModifySidebar( 'add', 'toolbox', 'Importer une image', 'Spécial:Téléverser' );
}
if($.inArray('Recettes', wgCategories) !== -1){
addOnloadHook( CustomizeModificationsOfSidebar );
}
/*******************************************************************************/
/* Javascript applicable à la catégorie des recettes */
/* */
/* Calcul des quantités d'ingrédients selon le nombre de parts */
/********************************************************************************/
// pour tester les éléments sélectionnés, utiliser .css({"color":"red","border":"2px solid red"});
//if($.inArray('Recettes', wgCategories) !== -1){
/*
Ancienne méthode : le nombre de parts était supposé par défaut à 4 et
les quantités d'ingrédients étaient données pour 1 part. C'est le cas
des recettes de Catherine.
Nouvelle méthode : on définit le nombre de parts x dans la page à l'aide
du modèle {{pour|x}} et les quantités d'ingrédients sont alors données
pour x parts.
D'où la nécessité de 2 cas de calcul selon que l'on part des données
pour 1 part ou des données pour x parts. La distinction se fait en repérant
la balise class="recette_pour" dans le html.
*/
/* length = 0 correspond à absence de la class recette_pour
ce qui correspond au format du tableau ingrédients initial
donc à toutes les recettes de Catherine */
if($(".recette_pour").length === 0){
//alert("catherine");
ancien_format = true;
nbpers = 4;
}else{
//alert($(".recette_pour").text());
nbpers = $(".recette_pour").text();
ancien_format = false;
}
$(".ingredients-nbpersonnes").text(nbpers);
var calcul_quantites = function(qu,nba){
if(qu === '')return;
qu2 = qu.replace(',','.');
resultat = (qu2 / nba).toFixed(2).replace('.00','');
if(resultat === 0)return;
return resultat;
}
var calcul_quantites2 = function(qu,nba){
if(qu === '')return;
qu2 = qu.replace(',','.');
resultat = (qu2 * nba).toFixed(2).replace('.00','');
if(resultat === 0)return;
return resultat;
}
$("tr.ligne-ingredient").each(function(){
if(ancien_format === true){
q_unitaire = $(this).find(".recette-qt").text();
$(this).find(".recette-q").text(q_unitaire);
q_totale = calcul_quantites2(q_unitaire,nbpers);
$(this).find(".recette-qt").text(q_totale);
}else{
//alert ("new");
q_totale = $(this).find(".recette-qt").text();
q_unitaire = calcul_quantites(q_totale,nbpers);
$(this).find(".recette-q").text(q_unitaire);
}
});
$(".table-ingredients-bouton-moins").click(function(){
nbpers--;
$(".ingredients-nbpersonnes").text(nbpers);
$("tr.ligne-ingredient").each(function(){
q_unitaire = $(this).find(".recette-q").text();
q_totale = calcul_quantites2(q_unitaire,nbpers);
$(this).find(".recette-qt").text(q_totale);
});
if(nbpers == 1)$(".table-ingredients-bouton-moins").hide();
});
$(".table-ingredients-bouton-plus").click(function(){
nbpers++;
$(".ingredients-nbpersonnes").text(nbpers);
$("tr.ligne-ingredient").each(function(){
q_unitaire = $(this).find(".recette-q").text();
q_totale = calcul_quantites2(q_unitaire,nbpers);
$(this).find(".recette-qt").text(q_totale);
});
if(nbpers > 1)$(".table-ingredients-bouton-moins").show();
});
//}
/******************************************************************************/
/* préparation de la barre d'édition */
/* https://www.mediawiki.org/wiki/Extension:WikiEditor/Toolbar_customization */
/******************************************************************************/
/**
* préparation de la barre d'édition
* https://www.mediawiki.org/wiki/Extension:WikiEditor/Toolbar_customization
*/
var d_dsg = new Date();
var curr_date_dsg = d_dsg.getDate();
var curr_month_dsg = d_dsg.getMonth() + 1;
var curr_year_dsg = d_dsg.getFullYear();
var customizeToolbar = function() {
/* Your code goes here */
/* Remove le bouton reference
$( '#wpTextbox1' ).wikiEditor( 'removeFromToolbar', {
'section': 'main',
'group': 'insert',
'tool': 'reference'
});
*/
//if($.inArray('Recettes', wgCategories) !== -1){
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'sections': {
'recettes': {
'type': 'booklet',
'deferLoad': true,
'label': 'Ingrédients',
'pages': {
'format': {
'layout': 'table',
'label' : 'Table des ingrédients',
'headings': [
{ 'textMsg': 'wikieditor-toolbar-help-heading-description' },
{ 'textMsg': 'wikieditor-toolbar-help-heading-syntax' },
{ 'textMsg': 'wikieditor-toolbar-help-heading-result' }
],
'rows': [
{
'description': { 'html':'Taper une ligne par ingrédient<br>sans omettre les séparateurs<br>|... /... /...' },
'syntax': { 'html': '{{Ingrédients<br>|nom ingrédient/quantité par personne/unité<br>}}' },
'result': { 'html': 'Un tableau des ingrédients mis en page' }
}
]
}
}
}
}
} );
//}
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'sections': {
'autres': {
'type': 'toolbar', // Can also be 'booklet'
'label': 'Autres'
// or 'labelMsg': 'section-emoticons-label' for a localized label
}
}
} );
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'autres',
'groups': {
'commandes_dsg': {
}
}
} );
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'autres',
'group': 'commandes_dsg',
'tools': {
'a1': {
'labelMsg': 'A1',
'type': 'button',
'icon': 'button_head_A1.png',
'action': {
'type': 'encapsulate',
'options': {
pre: "\n== ",
'peri': 'xxx',
post: " ==\n"
}
}
},
'a2': {
'labelMsg': 'A2',
'type': 'button',
'icon': 'button_head_A2.png',
'action': {
'type': 'encapsulate',
'options': {
pre: "\n=== ",
'peri': 'xxx',
post: " ===\n"
}
}
},
'galerie': {
'labelMsg': 'Galerie',
'type': 'button',
'icon': 'btn_toolbar_gallery.png',
'action': {
'type': 'encapsulate',
'options': {
pre: "<gallery>\n",
'peri': 'image:exemple1.png|aaa\nimage:exemple2.png\n',
post: "</gallery>\n"
}
}
},
'date': {
'labelMsg': 'Date',
'type': 'button',
'icon': 'button_date.png',
'action': {
'type': 'encapsulate',
'options': {
'peri': curr_date_dsg + "/" +curr_month_dsg + "/" +curr_year_dsg
}
}
},
'attention': {
'labelMsg': 'Attention',
'type': 'button',
'icon': 'button_aviso.png',
'action': {
'type': 'encapsulate',
'options': {
pre: "{{Attention}}",
'peri': 'xxx'
}
}
},
'retour_ligne': {
'labelMsg': 'Retour ligne',
'type': 'button',
'icon': 'button_br.png',
'action': {
'type': 'encapsulate',
'options': {
pre: "<br>\n"
}
}
},
'liens': {
label: 'Liens vers',
type: 'button',
icon: 'button_liens.png',
action: {
type: 'encapsulate',
options: {
pre: "{{liens|",
peri: "Page liée",
post: "}}"
}
}
},
'categorie': {
label: 'Catégorie',
type: 'button',
icon: 'button_categorie.png',
action: {
type: 'encapsulate',
options: {
pre: "[[Catégorie:",
peri: "A remplir",
post: "]]"
}
}
},'box': {
label: 'Box',
type: 'button',
icon: 'button_box.png',
action: {
type: 'encapsulate',
options: {
pre: "<blockquote style=\"background: white; border: 1px solid black; padding: 1em;\">\n",
peri: "Texte",
post: "\n</blockquote>\n"
}
}
},
'code': {
label: 'Code',
type: 'button',
icon: 'button_code.png',
action: {
type: 'encapsulate',
options: {
pre: "<pre>\n",
peri: "Code",
post: "\n</pre>\n"
}
}
}
}
} );
};
/* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar . . . */
if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) {
mw.loader.using( 'user.options', function () {
// This can be the string "0" if the user disabled the preference ([[bugzilla:52542#c3]])
if ( mw.user.options.get( 'usebetatoolbar' ) == 1 && mw.user.options.get( 'showtoolbar' ) == 1 ) {
$.when(
mw.loader.using( 'ext.wikiEditor.toolbar' ),
$.ready
).then( customizeToolbar );
}
} );
}
// Add the customizations to LiquidThreads' edit toolbar, if available
mw.hook( 'ext.lqt.textareaCreated' ).add( customizeToolbar );