Hello, 
I'd like to use custom dialogs and buttons in the WikiEditor 
(https://www.mediawiki.org/wiki/Extension:WikiEditor). The customization are 
done via code in the /index.php/MediaWiki:Common.js

I'm having trouble that sometimes my custom module is not added. 

At the moment I use time-deferred check-function: 


    window.setTimeout(checkModule,500)

which than loads a function that checks if the module that defines the custom 
dialog has actually been loaded:

    var checkModule = function(){

        if(!$.wikiEditor.modules.dialogs.modules.mytool){
            $( '#wpTextbox1' ).wikiEditor( 'addModule', mytool());
                //console.log("postLoad of module was needed!")
       }

    }

This seems to work fairly well in the real world, but seems rather hacky code 
wise. 
The first attempt to add the module is done in a function which is executed on 
the jQuery 'wikiEditor-toolbar-doneInitialSections' event. (build-in-event in 
the current 1.21 Version of Wikieditor):


    $( '#wpTextbox1' ).on( 'wikiEditor-toolbar-doneInitialSections', 
customExtendEditor

in the customExtendEditor function, the module is defined, and the Module is 
added (not always sucessfully):
    var mytool = function(){            
                return { dialogs:{
                    mytool:{
[etc.]

    $( '#wpTextbox1' ).wikiEditor( 'addModule', mytool());

a button is added via ` $('#wpTextbox1').wikiEditor( 'addToToolbar', { … `
but that never caused me problems itself so far. 


If you know a better, less hacky solution than the deferred check and 
re-addition, please let me know. 


Kind Regards,
 Jan

PS.: full code (from my wiki's /index.php/MediaWiki:Common.js): 
http://jsfiddle.net/RAHCg/ 
_______________________________________________
MediaWiki-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-l

Reply via email to