Skilnad mellom versjonar av «MediaWiki:Common.js»

Frå Setesdalswiki
Hopp til navigering Hopp til søk
Ingen redigeringsforklaring
Ingen redigeringsforklaring
Line 8: Line 8:
   
   
// set up the words in your language
// set up the words in your language
var collapseCaption, expandCaption;
var NavigationBarHide = '[' + (collapseCaption || 'skjul') + ']';
var NavigationBarHide = '[' + (collapseCaption || 'skjul') + ']';
var NavigationBarShow = '[' + (expandCaption || 'vis') + ']';
var NavigationBarShow = '[' + (expandCaption || 'vis') + ']';

Versjonen frå 5. desember 2011 kl. 22:38

/* Javascript i denne fila vil gjelde for alle drakter. */

/** Dynamic Navigation Bars (experimental) *************************************
 *
 *  Description: See [[Wikipedia:NavFrame]].
 *  Maintainers: UNMAINTAINED
 */
 
// set up the words in your language
var collapseCaption, expandCaption;
var NavigationBarHide = '[' + (collapseCaption || 'skjul') + ']';
var NavigationBarShow = '[' + (expandCaption || 'vis') + ']';
 
// shows and hides content and picture (if available) of navigation bars
// Parameters:
//     indexNavigationBar: the index of navigation bar to be toggled
function toggleNavigationBar(indexNavigationBar)
{
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
 
    if (!NavFrame || !NavToggle) {
        return false;
    }
 
    // if shown now
    if (NavToggle.firstChild.data == NavigationBarHide) {
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
            if ( hasClass( NavChild, 'NavPic' ) ) {
                NavChild.style.display = 'none';
            }
            if ( hasClass( NavChild, 'NavContent') ) {
                NavChild.style.display = 'none';
            }
        }
    NavToggle.firstChild.data = NavigationBarShow;
 
    // if hidden now
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
            if (hasClass(NavChild, 'NavPic')) {
                NavChild.style.display = 'block';
            }
            if (hasClass(NavChild, 'NavContent')) {
                NavChild.style.display = 'block';
            }
        }
        NavToggle.firstChild.data = NavigationBarHide;
    }
}
 
// adds show/hide-button to navigation bars
function createNavigationBarToggleButton()
{
    var indexNavigationBar = 0;
    // iterate over all < div >-elements 
    var divs = document.getElementsByTagName("div");
    for (var i = 0; NavFrame = divs[i]; i++) {
        // if found a navigation bar
        if (hasClass(NavFrame, "NavFrame")) {
 
            indexNavigationBar++;
            var NavToggle = document.createElement("a");
            NavToggle.className = 'NavToggle';
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
 
            var isCollapsed = hasClass( NavFrame, "collapsed" );
            /*
             * Check if any children are already hidden.  This loop is here for backwards compatibility:
             * the old way of making NavFrames start out collapsed was to manually add style="display:none"
             * to all the NavPic/NavContent elements.  Since this was bad for accessibility (no way to make
             * the content visible without JavaScript support), the new recommended way is to add the class
             * "collapsed" to the NavFrame itself, just like with collapsible tables.
             */
            for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) {
                if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
                    if ( NavChild.style.display == 'none' ) {
                        isCollapsed = true;
                    }
                }
            }
            if (isCollapsed) {
                for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
                    if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
                        NavChild.style.display = 'none';
                    }
                }
            }
            var NavToggleText = document.createTextNode(isCollapsed ? NavigationBarShow : NavigationBarHide);
            NavToggle.appendChild(NavToggleText);
 
            // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
            for(var j=0; j < NavFrame.childNodes.length; j++) {
                if (hasClass(NavFrame.childNodes[j], "NavHead")) {
                    NavFrame.childNodes[j].appendChild(NavToggle);
                }
            }
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
        }
    }
}
 
$( createNavigationBarToggleButton );

/** Translate #REDIRECT
 *
 *  Description: A workaround for bug 24114, "Redirect toolbar button doesn't insert localized version of #REDIRECT"
 *  Original: http://meta.wikimedia.org/wiki/2010_Wikimedia_design_and_feature_change/Feedback/Archive_1#REDIRECT_button
 *  Maintainers: [[:no:User:Sidhekin]]
 *  Change:
 *   must bind the function earlier to get the wanted effect
 *   added try-catch but not sure if its necessary, the structures will always be defined
 *   jeblad, 2011-05-12
 */
(function(mw, $) {
    if ( window.wgWikiEditorEnabledModules && wgWikiEditorEnabledModules.toolbar ) {
        try {
            $( '#wpTextbox1' ).bind( 'wikiEditor-toolbar-buildSection-advanced', function( event, section ) {
                 section.groups.insert.tools.redirect.action.options.pre = '#OMDIRIGERING [[';
            } );
         }
         catch (e) {
            // Woopsie, die without a notice
         }
    }
})(mediaWiki, jQuery);


/**
 * Description: Modify parts of the toolbar to better suit this projects needs
 * Maintainer:
 */
(function(mw, $, undefined) {
    if ( $.fn.wikiEditor !== undefined ) {
        // Execute on load
        $( function() {
    
            // just to get rid of some errors
            function label(msg, txt, before, after) {
                var str = '';
                if (before === undefined ? true : before) str += "{" + "{";
                str += msg;
                if (after === undefined ? true : after) str += "}" + "}";
                if (txt) str += " – " + txt;
                return str;
            }
            // just to get rid of some errors
            function pre(msg, txt, before) {
                var str = '';
                if (before === undefined ? true : before) str += "{" + "{";
                str += msg;
                if (txt) str += txt;
                return str;
            }
            // just to get rid of some errors
            function peri(msg, txt, before, after) {
                var str = '';
                if (before === undefined ? true : before) str += "{" + "{";
                str += msg;
                if (txt) str += txt;
                if (after === undefined ? true : after) str += "}" + "}";
                return str;
            }
    
            // get timestamp for templates
            var now = new Date();
            var timestamp = now.getUTCFullYear() + '-' + (now.getUTCMonth()<9 ? '0' : '') + (now.getUTCMonth()+1) + '-' + (now.getUTCDate()<9 ? '0' : '') + now.getUTCDate();

            // add quote signs to the format group in the main section
            $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
                'section': 'main',
                'group': 'format',
                'tools': {
                    'quote': {
                        label: 'Anførselstegn',
                        type: 'button',
                        icon: '//upload.wikimedia.org/wikipedia/commons/a/ac/Norwegian_quote_sign.png',
                        action: {
                            type: 'encapsulate',
                            options: {
                                pre: "«",
                                //peri: "«»",
                                post: "»"
                            }
                        }
                    }
                }
            });
    
            // add quote signs to the format group in the main section
            $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
                'section': 'main',
                'group': 'format',
                'tools': {
                    'link': {
                        label: 'Lenkeparenteser',
                        type: 'button',
                        icon: '//upload.wikimedia.org/wikipedia/commons/b/ba/Norwegian_link_sign.png',
                        action: {
                            type: 'encapsulate',
                            options: {
                                pre: "[[",
                                //peri: "[[]]",
                                post: "]]"
                            }
                        }
                    }
                }
            });
    
            // add quote signs to the format group in the main section
            $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
                'section': 'main',
                'group': 'format',
                'tools': {
                    'link': {
                        label: 'Malparenteser',
                        type: 'button',
                        icon: '//upload.wikimedia.org/wikipedia/commons/4/4a/Norwegian_template_sign.png',
                        action: {
                            type: 'encapsulate',
                            options: {
                                pre: "{{",
                                //peri: "{{}}",
                                post: "}}"
                            }
                        }
                    }
                }
            });
    
            // add an article mark menu in the advanced section
            $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
                'section': 'advanced',
                groups: {
                    'heading': {
                        tools: {
                            'heading': {
                                label: 'Vedlikehold',
                                type: 'select',
                                list: {
                                    'template-neutral' : {
                                        label: label('Nøytralitet', 'artikkelen gir ikke en nøytral fremstilling'),
                                        action: {
                                            type: 'encapsulate',
                                            options: {
                                                pre: pre('Nøytralitet', '|ts=' + timestamp + '|'),
                                                post: '}}',
                                                ownline: false
                                            }
                                        }
                                    },
                                    'template-verifiable' : {
                                        label: label('Verifiserbar', 'artikkelen er ikke verifiserbar'),
                                        action: {
                                            type: 'encapsulate',
                                            options: {
                                                pre: pre('Verifiserbar', '|ts=' + timestamp + '|'),
                                                post: '}}',
                                                ownline: false
                                            }
                                        }
                                    },
                                    'template-research' : {
                                        label: label('Forskning', 'artikkelen inneholder originalforskning'),
                                        action: {
                                            type: 'encapsulate',
                                            options: {
                                                pre: pre('Forskning', '|ts=' + timestamp + '|'),
                                                post: '}}',
                                                ownline: false
                                            }
                                        }
                                    },
                                    'template-accuracy' : {
                                        label: label('Nøyaktighet', 'artikkelen har ikke en nøyaktig fremstilling'),
                                        action: {
                                            type: 'encapsulate',
                                            options: {
                                                pre: pre('Nøyaktighet', '|ts=' + timestamp + '|'),
                                                post: '}}',
                                                ownline: false
                                            }
                                        }
                                    },
                                    'template-spelling' : {
                                        label: label('Språkvask', 'artikkelens språk trenger en gjennomgang'),
                                        action: {
                                            type: 'encapsulate',
                                            options: {
                                                pre: pre('Språkvask', '|ts=' + timestamp + '|'),
                                                post: '}}',
                                                ownline: false
                                            }
                                        }
                                    },
                                    'template-format' : {
                                        label: label('Formatering', 'artikkelen trenger wikifisering'),
                                        action: {
                                            type: 'encapsulate',
                                            options: {
                                                pre: pre('Formatering', '|ts=' + timestamp + '|'),
                                                post: '}}',
                                                ownline: false
                                            }
                                        }
                                    },
                                    'template-workinprogress' : {
                                        label: label('Arbeid pågår', 'artikkelen er under arbeid'),
                                        action: {
                                            type: 'encapsulate',
                                            options: {
                                                pre: pre('Arbeid pågår', '|ts=' + timestamp + '|'),
                                                post: '}}',
                                                ownline: false
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            });

            // add a template menu in the advanced sectionined' ) {
            $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
                'section': 'advanced',
                groups: {
                    'heading': {
                        tools: {
                            'heading': {
                                label: 'Maler',
                                type: 'select',
                                list: {
                                    'template-columns' : {
                                        label: label('kolonner', 'etterfølgende liste fordeles over flere kolonner'),
                                        action: {
                                            type: 'encapsulate',
                                            options: {
                                                pre: pre('kolonner', '|'),
                                                //peri: peri('columns'),
                                                post: '}}',
                                                ownline: true
                                            }
                                        }
                                    },
                                    'template-sorted-columns' : {
                                        label: label('sorterte kolonner', 'etterfølgende liste fordeles over flere sorterbare kolonner'),
                                        action: {
                                            type: 'encapsulate',
                                            options: {
                                                pre: pre('sorterte kolonner', '|tittel='),
                                                //peri: peri('columns'),
                                                post: '}}',
                                                ownline: true
                                            }
                                        }
                                    },
                                    'template-nowrap' : {
                                        label: label('nowrap', 'hindre linjeskift i tekst og tall'),
                                        action: {
                                            type: 'encapsulate',
                                            options: {
                                                pre: pre('nowrap', '|'),
                                                post: '}}',
                                                ownline: false
                                            }
                                        }
                                    },
                                    'template-formatnum' : {
                                        label: label('formatnum', 'tall med mellomrom og desimalkomma'),
                                        action: {
                                            type: 'encapsulate',
                                            options: {
                                                pre: pre('formatnum', ':'),
                                                post: '}}',
                                                ownline: false
                                            }
                                        }
                                    },
                                    'template-defaultsort' : {
                                        label: label('DEFAULTSORT', 'sortering på etternavn og lignende'),
                                        action: {
                                            type: 'encapsulate',
                                            options: {
                                                pre: pre('DEFAULTSORT', ':'),
                                                post: '}}',
                                                ownline: false
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            });
            
            // add a titles menu in the advanced section
            $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
                'section': 'advanced',
                groups: {
                    'heading': {
                        tools: {
                            'heading': {
                                label: 'Titler',
                                type: 'select',
                                list: {
                                    'titles-see-also' : {
                                        label: '== Se også == – interne lenker til andre prosjekter',
                                        action: {
                                            type: 'encapsulate',
                                            options: {
                                                pre: '== Se også ==',
                                                ownline: true
                                            }
                                        }
                                    },
                                    'titles-references' : {
                                        label: '== Referanser == – oppgitte referanser i teksten',
                                        action: {
                                            type: 'encapsulate',
                                            options: {
                                                pre: "== Referanser ==\n<references>\n",
                                                post: "\n</references>",
                                                ownline: true
                                            }
                                        }
                                    },
                                    'titles-literature' : {
                                        label: '== Litteratur == – oppgitt litteratur',
                                        action: {
                                            type: 'encapsulate',
                                            options: {
                                                pre: '== Litteratur ==',
                                                ownline: true
                                            }
                                        }
                                    },
                                    'titles-links' : {
                                        label: '== Eksterne lenker == – lenker til nettsteder',
                                        action: {
                                            type: 'encapsulate',
                                            options: {
                                                pre: '== Eksterne lenker ==',
                                                ownline: true
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            });
        });
    }
})(mediaWiki, jQuery);