Current configuration on the wiki
Solving syntax problems, performance improvements and applying code conventions:
* Replaced sprite image with separate images and letting ResourceLoader embed them with @embed (@embed means 0 http requests, less maintenance, none of the known limitations with sprites, and more readable code (named files rather than pixel offsets)
* Many functions were floating in the global namespace (like window.makeCaseInsensitive). A statement ends after a semi-colon(;). All functions declared after "catUrl" were assigned to the window object. I've instead turned the semi-colons back into comma's, merged some other var statements and moved them to the top of the closure. Changed local function declarations into function expressions for clarity.
* fetchSuggestions is called by $.fn.suggestions like ".call( $textbox, $textbox.val() )". So the context (this) isn't the raw element but the jQuery object, no need to re-construct with "$(this)" or "$(that)" which is slow and shouldn't even work. jQuery methods can be called on it directly. I've also replaced "$(this).val()" with the value-argument passed to fetchSuggestions which has this exact value already.
* Adding more function documentation. And changing @since to 1.19 as this was merged from js2-branch into 1.19-trunk and new features aren't backported to 1.18.
* Optimizing options/default construction to just "options = $.extend( {}, options )". Caching defaultOptions is cool, but doesn't really work if it's in a context/instance local variable. Moved it up to the module closure var statements, now it's static across all instances.
* In makeSuggestionBox(): Fixing invalid html fragments passed to jQuery that fail in IE. Shortcuts (like '<foo>' and '<foo/>') are only allowed for createElement triggers, not when creating longer fragments with content and/or attributes which are created through innerHTML, in the latter case the HTML must be completely valid and is not auto-corrected by IE.
* Using more jQuery chaining where possible.
* In buildRegex(): Using $.map with join( '|' ), (rather than $.each with += '|'; and substr).
* Storing the init instance of mw.ajaxCategories in mw.page for reference (rather than local/anonymous).
* Applied some best practices and "write testable code"
** Moved some of the functions created on the fly and assigned to 'this' into prototype (reference is cheaper)
** Making sure at least all 'do', 'set' and/or 'prototype' functions have a return value. Even if it's just a simple boolean true or context/this for chain-ability.
** Rewrote confirmEdit( .., .., .., ) as a prototyped method named "doConfirmEdit" which takes a single props-object with named valuas as argument, instead of list with 8 arguments.
* Removed trailing whitespace and other minor fixes to comply with the code conventions.
** Removed space between function name and caller: "foo ()" => foo())
** Changing "someArray.indexOf() + 1" into "someArr.indexOf() !== -1". We want a Boolean here, not a Number.
** Renamed all underscore-variables to non-underscore variants.
== Bug fixes ==
* When adding a category that is not already on the page as-is but of which the clean() version is already on the page, the script would fail. Fixed it by moving the checks up in handleCategoryAdd() and making sure that createCatLink() actually returned something.
* confirmEdit() wasn't working properly and had unused code (such as submitButton), removed hidden prepending to #catlinks, no need to, it can be dialog'ed directly from the jQuery object without being somewhere in the document.
* in doConfirmEdit() in submitFunction() and multiEdit: Clearing the input field after adding a category, so that when another category is being added it doesn't start with the previous value which is not allowed to be added again...
|
||
|---|---|---|
| bin | ||
| cache | ||
| docs | ||
| extensions | ||
| images | ||
| includes | ||
| languages | ||
| maintenance | ||
| mw-config | ||
| resources | ||
| serialized | ||
| skins | ||
| tests | ||
| api.php | ||
| api.php5 | ||
| COPYING | ||
| CREDITS | ||
| FAQ | ||
| HISTORY | ||
| img_auth.php | ||
| img_auth.php5 | ||
| index.php | ||
| index.php5 | ||
| INSTALL | ||
| load.php | ||
| load.php5 | ||
| opensearch_desc.php | ||
| opensearch_desc.php5 | ||
| profileinfo.php | ||
| README | ||
| redirect.php | ||
| redirect.php5 | ||
| redirect.phtml | ||
| RELEASE-NOTES-1.18 | ||
| RELEASE-NOTES-1.19 | ||
| StartProfiler.sample | ||
| thumb.php | ||
| thumb.php5 | ||
| trackback.php | ||
| trackback.php5 | ||
| UPGRADE | ||
| wiki.phtml | ||
2008-11-11 For system requirements, installation and upgrade details, see the files RELEASE-NOTES, INSTALL, and UPGRADE. == MediaWiki == MediaWiki is the software used for Wikipedia [http://www.wikipedia.org/] and the other Wikimedia Foundation websites. Compared to other wikis, it has an excellent range of features and support for high-traffic websites using multiple servers (Wikimedia sites peak in the 60000+ requests per second range as of November 2008). While quite usable on smaller sites, you may find you have to "roll your own" local documentation, and some aspects of configuration may seem overcomplicated because MediaWiki is primarily targeted as an in-house tool. The MediaWiki software was written by: * Lee Daniel Crocker * Magnus Manske * Jan Hidders * Brion Vibber * Axel Boldt * Geoffrey T. Dairiki * Tomasz Wegrzanowski * Erik Moeller * Tim Starling * Gabriel Wicke * Ashar Voultoiz * Evan Prodromou * Ævar Arnfjörð Bjarmason * Niklas Laxström * Domas Mituzas * Rob Church * Jens Frank * Yuri Astrakhan * Aryeh Gregor * Aaron Schulz * Andrew Garrett * Raimond Spekking * Alexandre Emsenhuber * Siebrand Mazeland * Chad Horohoe * Roan Kattouw * Trevor Pascal * Bryan Tong Minh * Sam Reed * Several others (view CREDITS for a more complete list) The contributors hold the copyright to this work, and it is licensed under the terms of the GNU General Public License, version 2 or later (see http://www.fsf.org/licensing/licenses/gpl.html). Derivative works and later versions of the code must be free software licensed under the same or a compatible license. This includes "extensions" that use MediaWiki functions or variables; see http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins for details. The Wikimedia Foundation currently has no legal rights to the software. Sections of code written exclusively by Lee Crocker or Erik Moeller are also released into the public domain, which does not impair the obligations of users under the GPL for use of the whole code or other sections thereof. MediaWiki makes use of the Sajax Toolkit by modernmethod, http://www.modernmethod.com/sajax/ which has the following license: 'This work is licensed under the Creative Commons Attribution License. To view a copy of this license, visit http://creativecommons.org/licenses/by/2.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.' MediaWiki use Creative Commons license marks to points to their online licenses. This content is trademarked and used under a specific license available at http://creativecommons.org/policies#trademark The restricted content is: * skins/common/images/cc-by-nc-sa.png * skins/common/images/cc-by-sa.png Many thanks to the Wikimedia regulars for testing and suggestions. The official website for MediaWiki is located at: http://www.mediawiki.org/ The code is currently maintained in a Subversion repository at svn.wikimedia.org. See http://www.mediawiki.org/wiki/Subversion for details. Please report bugs and make feature requests in our Bugzilla system: * https://bugzilla.wikimedia.org/ Documentation and discussion on new features may be found at: * http://www.mediawiki.org/wiki/Manual:FAQ * http://www.mediawiki.org/wiki/Documentation * http://www.mediawiki.org/wiki/Development Extensions are listed at: * http://www.mediawiki.org/wiki/Category:Extensions If you are setting up your own wiki based on this software, it is highly recommended that you subscribe to mediawiki-announce: * https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce The mailing list is very low volume, and is intended primarily for announcements of new versions, bug fixes, and security issues. A higher volume support mailing list can be found at: * https://lists.wikimedia.org/mailman/listinfo/mediawiki-l Developer discussion takes place at: * https://lists.wikimedia.org/mailman/listinfo/wikitech-l There is also a development and support channel #mediawiki on irc.freenode.net, and an unoffical support forum at www.mwusers.com.