FANDOM


AjaxBlock allows you to block and unblock users without leaving the current page you're on, by showing a block modal when you click on any block/unblock link.

Note: The modal won't open if you're holding either the shift or control key. This is to allow users to access the block and unblock special pages normally.

Installation

Add this line of code on your importArticles call on either your global.js, common.js or wikia.js:

        'u:dev:AjaxBlock/code.js',
importArticles — Best Practices for installing JavaScript on FANDOM
The importArticles statement is designed to combine multiple HTTP requests into a single data transfer, allowing multiple scripts to load and execute faster. If you've been installing several different scripts, your JavaScript file has probably accumulated unnecessary import statements. Click "Expand" to learn how to efficiently batch import scripts to speed up performance and make your code look cleaner. One other approach is by using the MediaWiki:ImportJS.
If your JavaScript file has several lines of code that say importScript, importScriptPage, or importArticles, you may be able to combine them! By batch importing a collection of scripts with a single import, your JavaScript code will load faster and look cleaner. Consider the example below. On the left is an example of what your JavaScript file might currently look like. On the right is how you could improve that code.
Multiple imports — messy and slow One import — clean and efficient
importScriptPage('AjaxRC/code.js','dev');
 
importScript('MediaWiki:localScript.js');
 
importArticle({
  type: 'script',
  article: 'u:dev:FloatingToc/code.js'
});
 
importScriptPage('page1.js', 'wikiname');
 
importScriptPage('page2.js', 'wikiname');
importArticles({
    type: 'script',
    articles: [
        'u:dev:AjaxRC/code.js',
        'MediaWiki:localScript.js',
        'u:dev:FloatingToc/code.js',
        'u:wikiname:page1.js',
        'u:wikiname:page2.js'
    ]
});
Note: In this example, pay close attention to the placement of commas and other punctuation. For people who aren't familiar with programming (and even those who are!), a common mistake when writing code is to accidentally delete, forget, or misplace critical symbols like commas or quotation marks. This can cause a syntax error that breaks the code. Carefully follow the convention shown here when using importArticles.
But there's much more to importArticles than just this! For more examples and advanced usage, see the help page at Help:Including additional JavaScript and CSS.

Usage

The block modal will show up when you click on any Special:Block link, using it is pretty self-explanatory. Set a block length from either the dropdown or typing on the input the custom time you prefer (times like 4 months and 2 weeks are acceptable too). Then select one of the common block reasons or type your own on the input. You can specify the reason further if you choose a common reason and input your own at the same time, which would appear as: <common reason>: <further ellaboration>. Check the options you'd like to be applied to the block and finally click the "Block this user" button, or "Cancel" to close the modal.

When unblocking a modal will pop up prompting you to input a reason. Clicking "Unblock this user" will unblock the user, or "Cancel" to close the modal.

Customization

All custom variables are under the window.AjaxBlock object.

Custom default expiry times

To set custom expiry times, you just need to add to the window.AjaxBlock.ajaxBlockExpiryTimes object in the syntax: 'time to submit': 'time to display',. For example:

window.AjaxBlock = {
    expiryTimes: {
        '2 hours': '2 hours',
        '1 day': 'one day',
        '1 week': 'a week',
        '2 months 4 weeks 2 days 7 hours': 'overly specific block duration'
    }
};

Default: 2 hours, 5 hours, 12 hours, 1 day, 3 days, 5 days, 1 week, 2 weeks, 1 month, 3 months, 6 months, 1 year, 2 years, 3 years, infinite.

Custom default block reasons

Pretty much the same as with expiry times. Example:

window.AjaxBlock = {
    blockReasons: {
        '[[w:Help:Vandalism]]': 'Vandalism',
        '[[w:Help:Spam]]': 'Spam',
        'Under the legal age': 'COPPA',
        'Removing information/blanking articles': 'Blanking',
        'Failing to comply with the [[Project:File Policy|File Policy]]': 'File policy'
    }
};

Vandalism: Vandalism
Spam: Spam,
Sockpuppetry/Ban Evasion: Sockpuppetry,
Removing content/blanking pages: Page blanking,
Inserting false information or nonsense: Gibberish,
Intimidating behaviour/harassment/trolling: Troll/Harassment,
Unacceptable username, avatar, or global masthead: Name/avatar,
Under the legal age: COPPA,
Repeated policy violations: Repeated violations.

Auto-check options

Automatically checked checkboxes on the block modal.

window.AjaxBlock = {
    check: {
        talk: true,
        autoBlock: true,
        override: true
    }
};

Default checked: AutoBlock.
Default unchecked: talk (prevent posting on talk page) and override (override current blocks).

Example configuration

window.AjaxBlock = {
    expiryTimes: {
        '2 hours': '2 hours',
        '1 day': 'one day',
        '1 week': 'a week',
        '2 months': '2m',
        'never': 'Never'
    },
    blockReasons: {
        '[[w:Help:Vandalism]]': 'Vandalism',
        '[[w:Help:Spam]]': 'Spam',
        'Under the legal age': 'COPPA',
        'Removing information/blanking articles': 'Blanking',
        'Failing to comply with the [[Project:File Policy|File Policy]]': 'File policy'
    },
    check: {
        talk: true,
        autoBlock: true,
        override: true
    }
};

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.