WikiQueer:HotCat

HotCat is a JavaScript program that helps registered users easily remove, change and add categories to WikiQueer pages. It has a suggestions list that will propose existing categories for auto-completion.



Installing
To install HotCat, simply go to your preferences and check the HotCat option in the Gadgets tab.

Alternatively you can:
 * 1) Copy the text below and paste it to the bottom of your script file:
 * 2) Save the new script page, and
 * 3) Completely refresh your browser by bypassing your cache.
 * 4) Done! You will now have + and - signs next to your categories. Clicking these allows for easy editing, removing and changing of categories.

How to use
Whenever a page is loaded, HotCat looks for the category bar. If there are visible categories, it adds links to easily remove, change or add categories:



The new links are:
 * "(-)" after a category: when clicked, the category is automatically removed.
 * "(±)" after a category: when clicked, an input field to change this category is opened.
 * "(+)" at the end of the list of categories: when clicked, an input field to add a category is opened.
 * "(++)" at the front: when clicked, enters multi-change mode, allowing modifying more than one category.

If HotCat can detect that a certain category is not in the page text itself but was transcluded onto the page from a template or other transclusion, it will not add these links. Only categories that are present in the wikitext of the page itself can be modified through HotCat.

Removing a single category
To remove a category, simply click the "(-)"-Link next to the category name. If the page does indeed contain this category, HotCat will remove it automatically. It will
 * 1) open a new window or tab in your browser with the current page opened for editing,
 * 2) hide the whole edit form, so that you cannot edit,
 * 3) edit the page to remove the category, and
 * 4) save the page.

Changing a category
To change a category, click the "(±)"-Link next to the category name. This will open the input box where you can enter a new category name.

Adding a category
To add a category, click the "(+)"-Link at the end of the category line. This will open the input box where you can enter a new category name.

Input box
The input box of HotCat is very simple: a text field to enter the new category name, an indicator icon, and an "OK" and a "Cancel" button.

The indicator icon tells you whether or not the category name you've entered exists. A icon means that there is no such category yet. You can still add the category, but it will show up as a red link, and you should, after having added the category, click that red link and enter a brief description and parent categories to this new category. A icon shows that there already is a category with the name you've entered.

When you start typing, HotCat will display a list of suggestions above or below the text input field. Clicking one of these suggestions will copy it into the text field. Double-clicking a suggestion is the same as clicking once and then clicking the "OK" button: HotCat will add the double-clicked suggestion automatically. The suggestion list is populated by the search engine chosen in the selector between the list and the text input field.

In the example shown here, we've entered "Alps of", and HotCat presents us with a list of possible completions. The first suggestion has already been copied into the text box, but the added text is selected, so that it will be overwritten when we keep on typing. Entering " S" reduces the suggestion list accordingly.

Clicking on "Alps of Switzerland" will then copy that into the text field and close the suggestion list (since there are no more suggestions, i.e., categories beginning with "Alps of Switzerland" as a prefix).

Clicking the "Cancel"-button would now abort the operation, clicking "OK" would tell HotCat to go on and add the chosen category.

Making more than one category change
The user interface of HotCat is minimalistic on purpose and geared towards making interactions simple and fast. When you just click on a "(-)" link to remove a category, the edit is executed right away, and likewise when you submit a single category addition or change.

Still HotCat fully supports changing more than one category at once. If you click the "(++)" link at the beginning of the category line, HotCat will enter its multi-change mode. The "(++)" link is replaced by a "save" button, and all changes you make from now on will be written to the page only when that button is clicked. Initially, this button may appear disabled. It is enabled only when there are indeed category changes that need saving.



This multi-change mode is also entered automatically if you have one category input box open and, while it is still open, add, change, or remove another category.

In multi-change mode, submitting a category change or removal will not perform the edit immediately. Instead, the change will only be reflected on the screen, allowing you to make more category changes. HotCat will add "(×)" links after each changed category. This is an "undo" link; it'll undo the last action on that category. Category removals are indicated by striking through the category name. HotCat will also highlight unsaved category changes by changing the background of the category link.

Once the "Save" button is clicked, HotCat will make all the changes, and then opens the page in an edit screen, showing the changes made. The changes are at that point not yet saved! Review the changes to make sure that the script did what you intended it to do, and then submit the edit like any other edit you'd make.

Note that while HotCat normally automatically submits single category changes, it will never do so when operating in multi-change mode. It will always open a screen showing the changes made, which you should review before submitting the edit manually.

Avoid auto saving
Normally HotCat automatically saves your edit. However sometimes you might wish to go to the edit box instead to verify and then execute the save yourself. Instead of clicking OK, click OK while you have the modifier key pressed. On Windows computers this is the ctrl-key, on Apple computers it should be the command-key.

Sort keys
You can even give a sort key together with the category. Just write after the category name a vertical bar ("|"), followed by the sort key under which the page shall be sorted within that category's list.


 * Input "Foo" will add a new category "Foo" without sort key, or change an existing category to "Foo", preserving the sort key.
 * Input "Foo|Key" will add a new category "Foo" or change an existing category to "Foo", using the given sort key "Key" in both cases.
 * Input "Foo|" (with a trailing vertical bar) will add a new category "Foo" without sort key, or change an existing category to "Foo", removing any sort key the changed category might have had.

Easy categorizing to child or parent categories
Users who do a lot of category maintenance might want to enable the quick access links for categorizing to child or parent categories. To enable this add the following to your javascript page:

The following controls will be added: Note that the "(↓)" and "(↑)" links are shown only for existing categories. Red-linked categories, i.e. non-existing categories, can have neither parent nor subcategories, and thus showing these links wouldn't make sense. Also note that it is possible that only the input box is shown when these links are clicked, but no list. That indicates that this category does not have parent categories or subcategories, respectively. See also "Search engines" below.
 * "(↓)" after a category: when clicked, the input field is opened, and a list of available subcategories is displayed.
 * "(↑)" after a category: when clicked, the input field is opened, and a list of available parent categories is shown.

Search engines
Between the suggestion list and the text input field, there is a search engine selector to select the search method which populates the suggestion list. HotCat support any number of search engines.

The MediaWiki servers offer two general ways to search for categories. The first is through the page list of the wiki. This list is always up to date, but is strictly alphabetic and also case-sensitive, so "similar" suggestions (for instance, suggesting "Bláhnjúkur" when "Blahn" was entered) are not shown. The second search engine is the search index that is also used by the "search" box on all pages. It does find "similar" suggestions and is not case-sensitive, but as its index is updated only at intervals, it may not show newly created categories.

HotCat by default combines these two search engines to get the best of both worlds: similar suggestions and newly created categories. However, to do so, it must make two requests to the server. Normally, that's not a problem, but if it turns out to be too slow on a slow connection, you can use the engine selector to choose which search engine you want to use. It is also possible to configure which search engine HotCat should use by default.

In addition to these general searches, HotCat also provides two additional, more specialized search engines. A first one can be used to search for subcategories of the category given by the current input. A second one returns the parent categories of the category given by the current input. Both engines may return empty results, in which case no suggestion list is shown. (For instance, if the current input is a name of a non-existing category, or if a category has no subcategories). In this case, the search engine is automatically reset to the default search engine after the first non-deleting input.

Note that there is no way to "page" through a list of subcategories. The script just tries to get as many subcategories as it can (normally at most 500, the limits for administrators are somewhat higher). Subcategory queries can also be slow if a category contains many items (not just many subcategories), and the input field is made non-editable for the time of the request. If it doesn't become editable in reasonable time, just click cancel.


 * For the technically inclined: the problem is that subcategory continuation queries appear not to work in the MediaWiki API. On the (hidden) category Category:Media with locations, the API returns (with a limit of 5000) only the first 1540 subcategories of more than 4800 that exist, and continuation queries seem to return no further subcategories at all. Related bug reports on this are 1211 and 23682. Until this is fixed, there will be no paging through subcategories in HotCat.

User configuration
You can adapt many of the aspects of HotCat. Please see its full documentation page on Wikimedia Commons.

History
HotCat was initially developed for Wikimedia Commons by Magnus Manske and later adapted and improved by many users, including, but not limited to Wikipedia:User:Lupo, Wikipedia:User:Dschwen, Wikipedia:User:TheDJ, Wikipedia:User:Superm401 and Wikipedia:User:Merlissimo.

Compatibility

 * Safari 3 & 4: Tested and fully working
 * Safari 2: Has a non-harmful issue with displaying the "change" (±) link.
 * Firefox 2 & 3: Tested and fully working
 * IE 6, 7 & 8: Tested and fully working
 * Google Chrome: Tested and fully working
 * Opera: Tested and fully working

It is also tested and confirmed to be working in combination with Navigation popups.

Also, there is the HotCat topicon. HotCat topicon.