Merge "mediawiki.jqueryMsg: Don't throw parse errors in the user's face"
authorBartosz Dziewoński <matma.rex@gmail.com>
Thu, 10 Apr 2014 15:54:02 +0000 (15:54 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 10 Apr 2014 15:54:02 +0000 (15:54 +0000)
71 files changed:
.jshintrc
includes/Wiki.php
includes/htmlform/HTMLSelectAndOtherField.php
includes/jobqueue/JobQueueGroup.php
includes/specials/SpecialEmailuser.php
includes/specials/SpecialListgrouprights.php
languages/i18n/anp.json
languages/i18n/bbc-latn.json
languages/i18n/bqi.json
languages/i18n/brh.json
languages/i18n/bug.json
languages/i18n/bxr.json
languages/i18n/dz.json
languages/i18n/eml.json
languages/i18n/en.json
languages/i18n/ff.json
languages/i18n/fit.json
languages/i18n/frc.json
languages/i18n/gom-latn.json
languages/i18n/got.json
languages/i18n/ha.json
languages/i18n/ik.json
languages/i18n/jbo.json
languages/i18n/jut.json
languages/i18n/kg.json
languages/i18n/kl.json
languages/i18n/koi.json
languages/i18n/kri.json
languages/i18n/liv.json
languages/i18n/lzz.json
languages/i18n/mo.json
languages/i18n/mrj.json
languages/i18n/na.json
languages/i18n/new.json
languages/i18n/niu.json
languages/i18n/nov.json
languages/i18n/nv.json
languages/i18n/pag.json
languages/i18n/pap.json
languages/i18n/pdt.json
languages/i18n/pih.json
languages/i18n/qqq.json
languages/i18n/rgn.json
languages/i18n/rif.json
languages/i18n/rmy.json
languages/i18n/rup.json
languages/i18n/ruq-cyrl.json
languages/i18n/ruq-latn.json
languages/i18n/sd.json
languages/i18n/sg.json
languages/i18n/sma.json
languages/i18n/ss.json
languages/i18n/udm.json
languages/i18n/za.json
languages/i18n/zh-cn.json [deleted file]
languages/i18n/zu.json
resources/lib/oojs-ui/i18n/bn.json
resources/lib/oojs-ui/i18n/km.json
resources/lib/oojs-ui/i18n/zh-hk.json [deleted file]
resources/lib/oojs-ui/i18n/zh-tw.json [deleted file]
resources/lib/oojs-ui/oojs-ui-apex.css
resources/lib/oojs-ui/oojs-ui.js
resources/lib/oojs-ui/oojs-ui.svg.css
resources/src/mediawiki/mediawiki.debug.profile.js
resources/src/mediawiki/mediawiki.jqueryMsg.js
skins/common/IEFixes.js
skins/vector/components/common.less
tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.Uri.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.test.js
tests/qunit/suites/resources/startup.test.js

index 9d6c4d2..4eec7a0 100644 (file)
--- a/.jshintrc
+++ b/.jshintrc
@@ -3,6 +3,7 @@
 
        // Enforcing
        "eqeqeq": true,
+       "es3": true,
        "latedef": true,
        "noarg": true,
        "nonew": true,
index ccc9b8d..fbafba8 100644 (file)
@@ -651,6 +651,10 @@ class MediaWiki {
                        return;
                }
 
+               if ( !JobQueueGroup::singleton()->queuesHaveJobs( JobQueueGroup::TYPE_DEFAULT ) ) {
+                       return; // do not send request if there are probably no jobs
+               }
+
                $query = array( 'title' => 'Special:RunJobs',
                        'tasks' => 'jobs', 'maxjobs' => $n, 'sigexpiry' => time() + 5 );
                $query['signature'] = SpecialRunJobs::getQuerySignature( $query );
index 4f501f7..bb42d53 100644 (file)
@@ -16,7 +16,7 @@ class HTMLSelectAndOtherField extends HTMLSelectField {
                } elseif ( array_key_exists( 'other-message', $params ) ) {
                        $params['other'] = wfMessage( $params['other-message'] )->plain();
                } else {
-                       $params['other'] = null;
+                       $params['other'] = wfMessage( 'htmlform-selectorother-other' )->plain();
                }
 
                parent::__construct( $params );
index 90742ce..b1dfe14 100644 (file)
@@ -254,6 +254,31 @@ class JobQueueGroup {
                return array_diff( $this->getQueueTypes(), $wgJobTypesExcludedFromDefaultQueue );
        }
 
+       /**
+        * Check if there are any queues with jobs (this is cached)
+        *
+        * @param integer $type JobQueueGroup::TYPE_* constant
+        * @return bool
+        * @since 1.23
+        */
+       public function queuesHaveJobs( $type = self::TYPE_ANY ) {
+               global $wgMemc;
+
+               $key = wfMemcKey( 'jobqueue', 'queueshavejobs', $type );
+
+               $value = $wgMemc->get( $key );
+               if ( $value === false ) {
+                       $queues = $this->getQueuesWithJobs();
+                       if ( $type == self::TYPE_DEFAULT ) {
+                               $queues = array_intersect( $queues, $this->getDefaultQueueTypes() );
+                       }
+                       $value = count( $queues ) ? 'true' : 'false';
+                       $wgMemc->add( $key, $value, 15 );
+               }
+
+               return ( $value === 'true' );
+       }
+
        /**
         * Get the list of job types that have non-empty queues
         *
index c867f06..fbddfbd 100644 (file)
@@ -138,6 +138,7 @@ class SpecialEmailUser extends UnlistedSpecialPage {
                $ret = self::getTarget( $this->mTarget );
                if ( !$ret instanceof User ) {
                        if ( $this->mTarget != '' ) {
+                               // Messages used here: notargettext, noemailtext, nowikiemailtext
                                $ret = ( $ret == 'notarget' ) ? 'emailnotarget' : ( $ret . 'text' );
                                $out->wrapWikiMsg( "<p class='error'>$1</p>", $ret );
                        }
@@ -305,6 +306,7 @@ class SpecialEmailUser extends UnlistedSpecialPage {
 
                $target = self::getTarget( $data['Target'] );
                if ( !$target instanceof User ) {
+                       // Messages used here: notargettext, noemailtext, nowikiemailtext
                        return $context->msg( $target . 'text' )->parseAsBlock();
                }
 
index 82a4f70..31034f9 100644 (file)
@@ -132,6 +132,88 @@ class SpecialListGroupRights extends SpecialPage {
                        ) );
                }
                $out->addHTML( Xml::closeElement( 'table' ) );
+               $this->outputNamespaceProtectionInfo();
+       }
+
+       private function outputNamespaceProtectionInfo() {
+               global $wgNamespaceProtection, $wgParser, $wgContLang;
+               $out = $this->getOutput();
+
+               if ( count( $wgNamespaceProtection ) == 0 ) {
+                       return;
+               }
+
+               $header = $this->msg( 'listgrouprights-namespaceprotection-header' )->parse();
+               $out->addHTML(
+                       Html::rawElement( 'h2', array(), Html::element( 'span', array(
+                               'class' => 'mw-headline',
+                               'id' => $wgParser->guessSectionNameFromWikiText( $header )
+                       ), $header ) ) .
+                       Xml::openElement( 'table', array( 'class' => 'wikitable' ) ) .
+                       Html::element(
+                               'th',
+                               array(),
+                               $this->msg( 'listgrouprights-namespaceprotection-namespace' )->text()
+                       ) .
+                       Html::element(
+                               'th',
+                               array(),
+                               $this->msg( 'listgrouprights-namespaceprotection-restrictedto' )->text()
+                       )
+               );
+
+               ksort( $wgNamespaceProtection );
+               foreach ( $wgNamespaceProtection as $namespace => $rights ) {
+                       if ( !in_array( $namespace, MWNamespace::getValidNamespaces() ) ) {
+                               continue;
+                       }
+
+                       if ( $namespace == NS_MAIN ) {
+                               $namespaceText = $this->msg( 'blanknamespace' )->text();
+                       } else {
+                               $namespaceText = $wgContLang->convertNamespace( $namespace );
+                       }
+
+                       $out->addHTML(
+                               Xml::openElement( 'tr' ) .
+                               Html::rawElement(
+                                       'td',
+                                       array(),
+                                       Linker::link(
+                                               SpecialPage::getTitleFor( 'Allpages' ),
+                                               $namespaceText,
+                                               array(),
+                                               array( 'namespace' => $namespace )
+                                       )
+                               ) .
+                               Xml::openElement( 'td' ) . Xml::openElement( 'ul' )
+                       );
+
+                       if ( !is_array( $rights ) ) {
+                               $rights = array( $rights );
+                       }
+
+                       foreach ( $rights as $right ) {
+                               $out->addHTML(
+                                       Html::rawElement( 'li', array(), $this->msg(
+                                               'listgrouprights-right-display',
+                                               User::getRightDescription( $right ),
+                                               Html::element(
+                                                       'span',
+                                                       array( 'class' => 'mw-listgrouprights-right-name' ),
+                                                       $right
+                                               )
+                                       )->parse() )
+                               );
+                       }
+
+                       $out->addHTML(
+                               Xml::closeElement( 'ul' ) .
+                               Xml::closeElement( 'td' ) .
+                               Xml::closeElement( 'tr' )
+                       );
+               }
+               $out->addHTML( Xml::closeElement( 'table' ) );
        }
 
        /**
index cd0ec77..b01ffee 100644 (file)
     "disclaimers": "अस्वीकरण",
     "disclaimerpage": "Project:साधारण अस्वीकरण",
     "edithelp": "संपादन मॆं सहायता",
-    "helppage": "Help:सहायता",
     "mainpage": "मुख्य पृष्ठ",
     "privacy": "गोपनीयता नीति",
     "privacypage": "Project:गोपनीयता नीति",
index b3bd837..ce83999 100644 (file)
     "disclaimers": "Panyakalon",
     "disclaimerpage": "Project:Pamorsoon umum",
     "edithelp": "Pangurupion laho patotahon",
-    "helppage": "Help:Isi",
     "mainpage": "Pogu ni Alaman",
     "mainpage-description": "Pogu ni alaman",
     "portal": "Harbangan ni punguan",
index d2e6f1c..659ad50 100644 (file)
     "disclaimers": "انکار کننده ها",
     "disclaimerpage": "Project:انکار کاربران",
     "edithelp": "کمک برای اصلاح",
-    "helppage": "Help:محتوا",
     "mainpage": "صفحه اصلی",
     "mainpage-description": "صفحه اصلی",
     "policy-url": "Project:خط مشی",
index eef125a..c9c1cef 100644 (file)
     "disclaimers": "Dazkaşşík",
     "disclaimerpage": "Project:Las dazkaşşí",
     "edithelp": "Radbadal ráhşoní",
-    "helppage": "Help:Ridoband",
     "mainpage": "Monpanna",
     "mainpage-description": "Monpanna",
     "portal": "Cágiŕd bundar",
index bb509bf..b615e24 100644 (file)
     "currentevents-url": "Project:Accanjingeŋ kokkoro",
     "disclaimers": "Diseklaima",
     "edithelp": "Paŋinriŋ mapadécéŋ",
-    "helppage": "Help:Lise",
     "mainpage": "Leppa Indoë",
     "mainpage-description": "Leppa Indoë",
     "portal": "Portal komunitas",
index e76b42f..65888a7 100644 (file)
     "currentevents-url": "Project:Һонин мэдээн",
     "disclaimers": "Татагалзалнууд",
     "disclaimerpage": "Project:Ниитэ татагалзал",
-    "helppage": "Help:Агуулга",
     "mainpage": "Нюур хуудаһан",
     "mainpage-description": "Нюур хуудаһан",
     "portal": "Хурал",
index 37bdff9..7954bf2 100644 (file)
     "disclaimers": "ཁས་མི་ལེན་པ།",
     "disclaimerpage": "Project: སྤྱིར་བཏང་ཁས་མི་ལེན་པ།",
     "edithelp": "ཞུན་དག་གྲོགས་རམ།",
-    "helppage": "Help:ནང་དོན།",
     "mainpage": "མ་ཤོག།",
     "mainpage-description": "མ་ཤོག།",
     "portal": "མི་སྡེའི་སྒོ་ར།",
index a821207..646727b 100644 (file)
@@ -40,7 +40,6 @@
     "jumptosearch": "Sèirca",
     "currentevents": "Fât e prugèt ed tót",
     "currentevents-url": "Project:Prugèt_ed_tót",
-    "helppage": "Help:Introdusiòun",
     "portal": "Discóter e quistiunêr",
     "portal-url": "Project:Bar",
     "nstab-main": "Artécol",
index 8fc6018..00745d8 100644 (file)
     "accountcreatedtext": "The user account for [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) has been created.",
     "createaccount-title": "Account creation for {{SITENAME}}",
     "createaccount-text": "Someone created an account for your email address on {{SITENAME}} ($4) named \"$2\", with password \"$3\".\nYou should log in and change your password now.\n\nYou may ignore this message, if this account was created in error.",
-    "usernamehasherror": "Username cannot contain hash characters",
     "login-throttled": "You have made too many recent login attempts.\nPlease wait $1 before trying again.",
     "login-abort-generic": "Your login was unsuccessful - Aborted",
     "loginlanguagelabel": "Language: $1",
     "upload-prohibited": "Prohibited file types: $1.",
     "uploadfooter": "-",
     "upload-default-description": "-",
-    "uploadlog": "upload log",
     "uploadlogpage": "Upload log",
     "uploadlogpagetext": "Below is a list of the most recent file uploads.\nSee the [[Special:NewFiles|gallery of new files]] for a more visual overview.",
     "filename": "Filename",
     "filereuploadsummary": "File changes:",
     "filestatus": "Copyright status:",
     "filesource": "Source:",
-    "uploadedfiles": "Uploaded files",
     "ignorewarning": "Ignore warning and save file anyway",
     "ignorewarnings": "Ignore any warnings",
     "minlength1": "Filenames must be at least one letter.",
     "overwroteimage": "uploaded a new version of \"[[$1]]\"",
     "uploaddisabled": "Uploads disabled.",
     "copyuploaddisabled": "Upload by URL disabled.",
-    "uploadfromurl-queued": "Your upload has been queued.",
     "uploaddisabledtext": "File uploads are disabled.",
     "php-uploaddisabledtext": "File uploads are disabled in PHP.\nPlease check the file_uploads setting.",
     "uploadscripted": "This file contains HTML or script code that may be erroneously interpreted by a web browser.",
     "upload-misc-error": "Unknown upload error",
     "upload-misc-error-text": "An unknown error occurred during the upload.\nPlease verify that the URL is valid and accessible and try again.\nIf the problem persists, contact an [[Special:ListUsers/sysop|administrator]].",
     "upload-too-many-redirects": "The URL contained too many redirects",
-    "upload-unknown-size": "Unknown size",
     "upload-http-error": "An HTTP error occurred: $1",
     "upload-copy-upload-invalid-domain": "Copy uploads are not available from this domain.",
     "backend-fail-stream": "Could not stream file \"$1\".",
     "img-auth-streaming": "Streaming \"$1\".",
     "img-auth-public": "The function of img_auth.php is to output files from a private wiki.\nThis wiki is configured as a public wiki.\nFor optimal security, img_auth.php is disabled.",
     "img-auth-noread": "User does not have access to read \"$1\".",
-    "img-auth-bad-query-string": "The URL has an invalid query string.",
     "http-invalid-url": "Invalid URL: $1",
     "http-invalid-scheme": "URLs with the \"$1\" scheme are not supported.",
     "http-request-error": "HTTP request failed due to unknown error.",
     "filehist-dimensions": "Dimensions",
     "filehist-filesize": "File size",
     "filehist-comment": "Comment",
-    "filehist-missing": "File missing",
     "imagelinks": "File usage",
     "linkstoimage": "The following {{PLURAL:$1|page links|$1 pages link}} to this file:",
     "linkstoimage-more": "More than $1 {{PLURAL:$1|page links|pages link}} to this file.\nThe following list shows the {{PLURAL:$1|first page link|first $1 page links}} to this file only.\nA [[Special:WhatLinksHere/$2|full list]] is available.",
     "listgrouprights-removegroup-self": "Remove {{PLURAL:$2|group|groups}} from own account: $1",
     "listgrouprights-addgroup-self-all": "Add all groups to own account",
     "listgrouprights-removegroup-self-all": "Remove all groups from own account",
+    "listgrouprights-namespaceprotection-header": "Namespace restrictions",
+    "listgrouprights-namespaceprotection-namespace": "Namespace",
+    "listgrouprights-namespaceprotection-restrictedto": "Right(s) allowing user to edit",
     "trackingcategories": "Tracking categories",
     "trackingcategories-summary": "This page lists tracking categories which are automatically populated by the MediaWiki software. Their names can be changed by altering the relevant system messages in the {{ns:8}} namespace.",
     "trackingcategories-msg": "Tracking category",
     "noindex-category-desc": "The page is not indexed by robots because it has the magic word <code><nowiki>__NOINDEX__</nowiki></code> on it and is in a namespace where that flag is allowed.",
     "index-category-desc": "The page has a <code><nowiki>__INDEX__</nowiki></code> on it (and is in a namespace where that flag is allowed), and hence is indexed by robots where it normally wouldn't be.",
     "post-expand-template-inclusion-category-desc": "After expanding all the templates, the page size is bigger than <code>$wgMaxArticleSize</code>, so some templates weren't expanded.",
-    "post-expand-template-argument-category-desc": "After expanding a template argument (something in triple braces, like <code>{{{Foo}}})</code>, the page is bigger than <code>$wgMaxArticleSize</code>.",
+    "post-expand-template-argument-category-desc": "After expanding a template argument (something in triple braces, like <code>{{{Foo}}}</code>), the page is bigger than <code>$wgMaxArticleSize</code>.",
     "expensive-parserfunction-category-desc": "Too many expensive parser functions (like <code>#ifexist</code>) included on a page. See [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
     "broken-file-category-desc": "Category added if the page contains a broken file link (a link to embed a file when the file does not exist).",
     "hidden-category-category-desc": "This is a category with <code><nowiki>__HIDDENCAT__</nowiki></code> on it, which prevents it from showing up in the category links box on pages, by default.",
     "emailuser-summary": "",
     "emailpage": "Email user",
     "emailpagetext": "You can use the form below to send an email message to this {{GENDER:$1|user}}.\nThe email address you entered in [[Special:Preferences|your user preferences]] will appear as the \"From\" address of the email, so the recipient will be able to reply directly to you.",
-    "usermailererror": "Mail object returned error:",
     "defemailsubject": "{{SITENAME}} email from user \"$1\"",
     "usermaildisabled": "User email disabled",
     "usermaildisabledtext": "You cannot send email to other users on this wiki",
     "noemailtitle": "No email address",
     "noemailtext": "This user has not specified a valid email address.",
-    "nowikiemailtitle": "No email allowed",
     "nowikiemailtext": "This user has chosen not to receive email from other users.",
     "emailnotarget": "Non-existent or invalid username for recipient.",
     "emailtarget": "Enter username of recipient",
     "watching": "Watching...",
     "unwatching": "Unwatching...",
     "watcherrortext": "An error occurred while changing your watchlist settings for \"$1\".",
-    "enotif_mailer": "{{SITENAME}} notification mailer",
     "enotif_reset": "Mark all pages visited",
     "enotif_impersonal_salutation": "{{SITENAME}} user",
     "enotif_subject_deleted": "{{SITENAME}} page $1 has been {{GENDER:$2|deleted}} by $2",
     "excontent": "content was: \"$1\"",
     "excontentauthor": "content was: \"$1\" (and the only contributor was \"[[Special:Contributions/$2|$2]]\")",
     "exbeforeblank": "content before blanking was: \"$1\"",
-    "exblank": "page was empty",
     "delete-confirm": "Delete \"$1\"",
     "delete-legend": "Delete",
     "historywarning": "<strong>Warning:</strong> The page you are about to delete has a history with approximately $1 {{PLURAL:$1|revision|revisions}}:",
     "importunknownsource": "Unknown import source type",
     "importcantopen": "Could not open import file",
     "importbadinterwiki": "Bad interwiki link",
-    "importnotext": "Empty or no text",
     "importsuccess": "Import finished!",
-    "importhistoryconflict": "Conflicting history revision exists (may have imported this page before)",
     "importnosources": "No transwiki import sources have been defined and direct history uploads are disabled.",
     "importnofile": "No import file was uploaded.",
     "importuploaderrorsize": "Upload of import file failed.\nThe file is bigger than the allowed upload size.",
index fbecb98..d8458d4 100644 (file)
     "disclaimers": "Deentine",
     "disclaimerpage": "Project:Deentine kuuɓtidinɗe",
     "edithelp": "Ballal Taƴtagol",
-    "helppage": "Help:Loowdi",
     "mainpage": "Hello jaɓɓorgo",
     "mainpage-description": "Hello jaɓɓorgo",
     "policy-url": "Eɓɓoore:Dawirgol",
index e1ed5b8..06493a4 100644 (file)
     "disclaimers": "Vastuuvaphaus",
     "disclaimerpage": "Project: Ylheinen varoitus",
     "edithelp": "Mookkausapua",
-    "helppage": "Help: Sisältö",
     "mainpage": "Alkusivu",
     "mainpage-description": "Alkusivu",
     "portal": "Kaikitten purthaali",
index 463b5f2..03f016a 100644 (file)
     "disclaimers": "Avertissements",
     "disclaimerpage": "Project:Avertissements ordinaires",
     "edithelp": "Aide",
-    "helppage": "Help:Aide",
     "mainpage": "Page Principale",
     "mainpage-description": "Page Principale",
     "policy-url": "Project:Régulations",
index 376f895..339c540 100644 (file)
     "disclaimers": "Chotraio",
     "disclaimerpage": "Project:Sadeo chotraio",
     "edithelp": "Sudarunk palov",
-    "helppage": "Help:Mozkur",
     "mainpage": "Mukhel Pan",
     "mainpage-description": "Mukhel Pan",
     "portal": "Somudaik proves-dar",
index 53ba295..f0c6be3 100644 (file)
     "disclaimers": "𐍅𐌰𐌳𐌾𐍉𐌱𐌹𐌻𐌰𐌲𐌴𐌹𐌽𐍃",
     "disclaimerpage": "Project:𐍅𐌰𐌳𐌾𐌹𐍃 𐌱𐌹𐌻𐌰𐌲𐌴𐌹𐌽𐍃",
     "edithelp": "𐌼𐌰𐌹𐌳𐌴𐌹𐌽𐌹𐌷𐌹𐌻𐍀𐌰",
-    "helppage": "Help:𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍃𐌴𐌹𐌳𐍉",
     "mainpage": "𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍃𐌴𐌹𐌳𐍉",
     "mainpage-description": "𐌷𐌰𐌿𐌱𐌹𐌳𐌰𐍃𐌴𐌹𐌳𐍉",
     "portal": "𐌱𐌰𐌿𐍂𐌲𐌹𐍃 𐌲𐌰𐍅𐌹",
index 8ae4767..dafdb28 100644 (file)
     "disclaimers": "Hattara",
     "disclaimerpage": "Project:Babban gargaɗi",
     "edithelp": "Taimako kan gyara",
-    "helppage": "Help:Tsaraba",
     "mainpage": "Marhabin",
     "privacy": "Manufar kare sirri",
     "privacypage": "Project:Manufar kare sirri",
index f35f165..2613139 100644 (file)
@@ -18,7 +18,6 @@
     "october": "Nuliaġvik",
     "november": "Quyyavik",
     "december": "Uvluiḷaq",
-    "helppage": "Help:anniqsuiruq",
     "mainpage": "Makpiġaaq Kanna",
     "mainpage-description": "Makpibaaq Kanna",
     "portal-url": "Project:qargi"
index 6c2e421..3d72b45 100644 (file)
     "disclaimers": "nunxusra lo za'i na fuzme",
     "disclaimerpage": "Project:kampu nunxusra be lo za'i na fuzme",
     "edithelp": "stika nunsidju",
-    "helppage": "Help:lo se vasru",
     "mainpage": "Ralju Ckupau",
     "mainpage-description": "ralju ckupau",
     "portal": "bende ckupau",
index 3a4142e..0dbe6ed 100644 (file)
     "disclaimers": "Førbeholt",
     "disclaimerpage": "Project:Huses førbeholt",
     "edithelp": "Hjælp til redigærenge",
-    "helppage": "Help:Hjælpførside",
     "mainpage": "Førsit",
     "mainpage-description": "Førsit",
     "policy-url": "Project:Politik",
index 257fb68..aad4a1c 100644 (file)
     "currentevents": "Mâmbu ya malu-malu",
     "currentevents-url": "Lukanu:Mâmbu ya malu-malu",
     "edithelp": "Lusadisu ya kusoba",
-    "helppage": "Lusadisu:Mâmbu",
     "mainpage": "Mukânda ya ngudi",
     "mainpage-description": "Mukânda ya ngudi",
     "portal": "Mbôngi",
index 20ff74c..b6d6856 100644 (file)
     "currentevents": "Maannakkut pisut",
     "disclaimers": "Aalajangersagaq",
     "edithelp": "Ikiuutit",
-    "helppage": "Help:Ikiuutit",
     "mainpage": "Saqqaa",
     "mainpage-description": "Saqqaa",
     "portal": "Allattartup saqqaa",
index e74b94b..8b71870 100644 (file)
     "disclaimers": "Мийö сöстöмöсь йöз одзын",
     "disclaimerpage": "Project:Мийö сöстöмöсь йöз одзын",
     "edithelp": "Уджкерись понда отсöт",
-    "helppage": "Help:Отсöт",
     "mainpage": "Пондöтчан листбок",
     "mainpage-description": "Пондöтчан листбок",
     "privacy": "Астор дорьян йылiсь",
index bcbcb53..01ba585 100644 (file)
     "disclaimers": "Disklamardèm",
     "disclaimerpage": "Projèkt:Jènèral disklamar",
     "edithelp": "Èdithèp",
-    "helppage": "Help:Kòntèntdèm",
     "mainpage": "Men Pej",
     "mainpage-description": "Men Pej",
     "policy-url": "Project:Pòlisia",
index 4d99866..f91cd20 100644 (file)
     "disclaimers": "Kūondõkst",
     "disclaimerpage": "Project:Kūondõkst",
     "edithelp": "Redigīerimiz opātõks",
-    "helppage": "Help:Sižāli",
     "mainpage": "Eḑḑilēḑ",
     "mainpage-description": "Eḑḑilēḑ",
     "portal": "Kubgõnd vǟrõd",
index 9b01e23..6446d43 100644 (file)
     "disclaimers": "Kʼabuli na var ixvenu ondepe",
     "disclaimerpage": "Project:Mtelot kʼabuli na var ixvenu ondepe",
     "edithelp": "Muçʼoşi iktirinen?",
-    "helppage": "Help:Doloxe na renanpe",
     "mainpage": "Dudi Butʼkʼa",
     "mainpage-description": "Dudi But'k'a",
     "privacy": "Şinaxeri Hakʼepe",
index 41cc245..a34eb27 100644 (file)
@@ -92,7 +92,6 @@
     "disclaimers": "Деклараций",
     "disclaimerpage": "Project:Декларацие ӂенералэ",
     "edithelp": "Ажутор пентру едитаре",
-    "helppage": "Help:Купринс",
     "mainpage": "Прима паӂина",
     "mainpage-description": "Прима паӂина",
     "privacy": "Политика де интимитате",
index cd582d3..b85882d 100644 (file)
     "disclaimers": "Вӓшештӹмӹ шая (ответственность) гӹц карангмаш",
     "disclaimerpage": "Project:Вӓшештӹмӓш (ответственность) гӹц карангмаш",
     "edithelp": "Тӧрлӓш манын палшык",
-    "helppage": "Help:Палшык",
     "mainpage": "Тӹнг ӹлӹштӓш",
     "mainpage-description": "Тӹнг ӹлӹштӓш",
     "privacy": "Весӹвлӓлӓн шайышташ ак ли ылмы политика",
index 27f4057..fedb292 100644 (file)
@@ -28,7 +28,6 @@
     "currentevents": "Imwin",
     "currentevents-url": "Project:Imwin",
     "edithelp": "Oomo/edar Ipuok",
-    "helppage": "Help:Oangan",
     "mainpage": "Bwiema peij",
     "mainpage-description": "Bwiema peij",
     "editsection": "Kiwiwid",
index 1169fb1..73314c6 100644 (file)
     "disclaimers": "डिस्क्लेमर्स",
     "disclaimerpage": "Project:साधारण डिस्क्लेमर्स",
     "edithelp": "सम्पादन ग्वहालि",
-    "helppage": "Help:धलःपौ",
     "mainpage": "मू पौ",
     "mainpage-description": "मू पौ",
     "policy-url": "Project:नीति",
index c5feb40..7cbd573 100644 (file)
@@ -64,7 +64,6 @@
     "aboutpage": "Project: Hagaao",
     "currentevents": "Tau Fakaholoaga Mogonei",
     "edithelp": "Lagomatai ke he Fakahakohako",
-    "helppage": "Help: Ke lata mo e tau mena i loto",
     "mainpage": "Matapatu Lau",
     "mainpage-description": "Matapatu Lau",
     "portal": "Maaga ke Matutaki",
index 221b236..c516f05 100644 (file)
     "currentevents": "Nuni eventes",
     "currentevents-url": "Project:Nuni eventes",
     "edithelp": "Helpo pri modifiko de pagines",
-    "helppage": "Help:Kontenaje",
     "mainpage": "Chefi pagine",
     "mainpage-description": "Chefi pagine",
     "portal": "Li komun chambre",
index 2f3bbc7..69410b4 100644 (file)
@@ -90,7 +90,6 @@
     "aboutpage": "Project: baa haneʼ",
     "copyright": "Díí naaltsoos bikáaʼgi saad shijaaʼígíí \"$1\" beehazʼą́ąnii bikʼehgo choidííłįįł",
     "edithelp": "anáʼálwoʼ",
-    "helppage": "Help:Bee hadítʼéhígíí",
     "mainpage": "Íiyisíí Naaltsoos",
     "mainpage-description": "Íiyisíí Naaltsoos",
     "retrievedfrom": "\"$1\" bitsʼą́ą́dę́ę́ʼ",
index fd88bed..57e52a5 100644 (file)
@@ -53,7 +53,6 @@
     "currentevents": "Saray nagagawa natan",
     "currentevents-url": "Project:Saray nagagawa natan",
     "edithelp": "Tolong nipakar ed panagbalo na artikulo",
-    "helppage": "Help:Saray Laman",
     "mainpage": "Arapan ya Bolong",
     "mainpage-description": "Arapan ya Bolong",
     "portal": "Pwerta na komyunidad",
index 11c6ec4..d690593 100644 (file)
     "disclaimers": "Deklarashon di Liberashon for di Responsabilidatnan",
     "disclaimerpage": "Project:Deklarashon di Liberashon for di Responsabilidat General",
     "edithelp": "Ayudo ku editamentu",
-    "helppage": "Help:Kontenido",
     "mainpage": "Página Prinsipal",
     "mainpage-description": "Página Prinsipal",
     "policy-url": "Project:Pólisa",
index 92bf0e5..2a5329b 100644 (file)
     "disclaimers": "Impressum",
     "disclaimerpage": "Project:Impressum",
     "edithelp": "Help tom Beoabeide",
-    "helppage": "Help:Enhault",
     "mainpage": "Hauptsied",
     "mainpage-description": "Hauptsied",
     "policy-url": "Project:Policy",
index 6e370a0..3aabf75 100644 (file)
@@ -25,7 +25,6 @@
     "talk": "diskushun",
     "currentevents": "Dem Kurent Iwent",
     "currentevents-url": "Project:Dem Kurent Iwent",
-    "helppage": "Help:Dem Kontent",
     "mainpage": "Mien Paij",
     "mainpage-description": "Mien Paij",
     "portal": "Trii'nohlij",
index 388b168..61c9c0d 100644 (file)
     "listgrouprights-removegroup-self": "This is an individual right for groups, used on [[Special:ListGroupRights]].\n* $1 - the group names\n* $2 - the number of group names in $1",
     "listgrouprights-addgroup-self-all": "Used on [[Special:ListGroupRights]].\n{{Related|Listgrouprights}}",
     "listgrouprights-removegroup-self-all": "Used on [[Special:ListGroupRights]].\n{{Related|Listgrouprights}}",
+    "listgrouprights-namespaceprotection-header": "Shown on [[Special:ListGroupRights]] as the header for the namespace restrictions table.",
+    "listgrouprights-namespaceprotection-namespace": "Shown on [[Special:ListGroupRights]] as the 'namespace' column header for the namespace restrictions table.",
+    "listgrouprights-namespaceprotection-restrictedto": "Shown on [[Special:ListGroupRights]] as the 'right(s) allowing user to edit' column header for the namespace restrictions table.",
     "trackingcategories": "[[Special:TrackingCategories]] page implementing list of Tracking categories [[mw:Special:MyLanguage/Help:Tracking categories|tracking category]].\n{{Identical|Tracking category}}",
     "trackingcategories-summary": "Description for [[Special:TrackingCategories]] page [[mw:Help:Tracking categories|tracking category]]",
     "trackingcategories-msg": "Header for the message column of the table on [[Special:TrackingCategories]]. This column lists the mediawiki message that controls the tracking category in question.\n{{Identical|Tracking category}}",
index 0f55f36..14289ec 100644 (file)
     "disclaimers": "Infurmaziòn legêli",
     "disclaimerpage": "Project: Avìs generèl",
     "edithelp": "Livar dal spiegaziòn",
-    "helppage": "Help:Tòt j argumént",
     "mainpage": "Prèma Pagina",
     "privacy": "Léz sora agli infurmaziòn persunèli",
     "privacypage": "Project: Léz sora agli infurmaziòn persunèli",
index 93712c6..b91e233 100644 (file)
     "disclaimers": "Ismigilen",
     "disclaimerpage": "Project:Asmigel amatu",
     "edithelp": "Tallalt deg uẓareg",
-    "helppage": "Help:Tira d yiwlafen",
     "mainpage": "Tasna Tamezwarut",
     "mainpage-description": "Tasna Tamezwarut",
     "portal": "Tawwart n timetti",
index 4844455..48873b6 100644 (file)
@@ -91,7 +91,6 @@
     "disclaimers": "Termenurya",
     "disclaimerpage": "Project:Termenurya",
     "edithelp": "Editisaripnasko zhutipen",
-    "helppage": "Help:Zhutipen",
     "mainpage": "Sherutni patrin",
     "mainpage-description": "Sherutni patrin",
     "portal": "Maladipnasko than",
index f3a1d59..37206aa 100644 (file)
@@ -96,7 +96,6 @@
     "currentevents": "Evenimente di tora",
     "disclaimers": "Nipricunuschire",
     "edithelp": "Agiutor ti alãxire",
-    "helppage": "Help:Conținut",
     "mainpage": "Prota frânḑâ",
     "mainpage-description": "Prota frânḑâ",
     "portal": "Portalu a comunitatiľei",
index 7652498..4972df2 100644 (file)
@@ -88,7 +88,6 @@
     "disclaimers": "Тајменулс",
     "disclaimerpage": "Project:тајменул",
     "edithelp": "Ајутор пентре едитаере",
-    "helppage": "Help:Ајутор",
     "mainpage": "Пажу принципу",
     "mainpage-description": "Пажу принципу",
     "privacy": "Политикмус де лижитул",
index f1c808c..d3275f3 100644 (file)
@@ -88,7 +88,6 @@
     "disclaimers": "tǎmenuls",
     "disclaimerpage": "Project:tǎmenul",
     "edithelp": "Ajutor pentru editaere",
-    "helppage": "Help:Ajutor",
     "mainpage": "Pažu principu",
     "mainpage-description": "Pažu principu",
     "privacy": "Politikmus de ližitul",
index 76aeb70..8eeaa66 100644 (file)
     "disclaimers": "غيرجوابداريناما",
     "disclaimerpage": "Project:عام غيرجوابدارينامو",
     "edithelp": "مدد براءِ ترميم",
-    "helppage": "Help:فهرست",
     "mainpage": "مُک صفحو",
     "mainpage-description": "مُک صفحو",
     "policy-url": "Project:پاليسي",
index 4314c32..f44eb45 100644 (file)
     "currentevents-url": "Project:Âsango",
     "disclaimers": "Zïngö-lê",
     "disclaimerpage": "Project:Zïngö-lê",
-    "helppage": "Help:Münä",
     "mainpage": "Gä nzönî",
     "mainpage-description": "Gä nzönî",
     "portal": "Âsëwä",
index b743f01..1a8edef 100644 (file)
     "disclaimers": "Friijavuohte vastideamis",
     "disclaimerpage": "Project:Bäjjesereaktah",
     "edithelp": "Sjiehtedimmie viehkie",
-    "helppage": "Help:Sisvege",
     "mainpage": "Aalkoebielie",
     "mainpage-description": "Aalkoebielie",
     "portal": "Meatan portaale",
index e62ff64..af91034 100644 (file)
     "currentevents": "Tentakalo tanyalo",
     "currentevents-url": "Project:Tentakalo tanyalo",
     "edithelp": "Lusito ngekuhlela",
-    "helppage": "Help:Lokucuketfwe",
     "mainpage": "Likhasi Lelikhulu",
     "mainpage-description": "Likhasi lelikhulu",
     "policy-url": "Project:Umtsetfo",
index d58831b..c2591b8 100644 (file)
     "jumptosearch": "утчан",
     "currentevents": "Выль иворъёс",
     "currentevents-url": "Project:Выль иворъёс",
-    "helppage": "Help:Валэктон",
     "mainpage": "Кутскон бам",
     "mainpage-description": "Кутскон бам",
     "portal": "Сообщество",
index 1b9f7c3..3405680 100644 (file)
     "disclaimers": "gangjmingz mienxcwz",
     "disclaimerpage": "Project:Itbuen mienxcwz",
     "edithelp": "Caeuq mungz san-zonz",
-    "helppage": "Help:moegloeg",
     "mainpage": "Yiebdaeuz",
     "mainpage-description": "Yiebdeauz",
     "policy-url": "Project:fuengcim",
diff --git a/languages/i18n/zh-cn.json b/languages/i18n/zh-cn.json
deleted file mode 100644 (file)
index 3eef3dc..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-    "@metadata": {
-        "authors": [
-            "Liangent",
-            "PhiLiP",
-            "Shizhao",
-            "Wong128hk",
-            "Xiaomingyan"
-        ]
-    },
-    "tog-norollbackdiff": "进行回退后略过差异比较",
-    "mytalk": "我的讨论页",
-    "portal": "社区专页",
-    "editing": "正在编辑 $1"
-}
index 437c47c..cd4ce7a 100644 (file)
@@ -80,7 +80,6 @@
     "currentevents": "Izehlakalo ezimanje",
     "currentevents-url": "Project:Izehlakalo ezimanje",
     "edithelp": "Usizo ngokuhlela",
-    "helppage": "Help:Isiqikili",
     "mainpage": "Ikhasi Elikhulu",
     "mainpage-description": "Ikhasi Elikhulu",
     "portal": "Umnyango wamgwamanda",
index c321ab1..409022a 100644 (file)
@@ -12,5 +12,6 @@
     "ooui-dialog-action-close": "বন্ধ",
     "ooui-outline-control-move-down": "আইটেম নিচে স্থানান্তর",
     "ooui-outline-control-move-up": "আইটেম উপরে স্থানান্তর",
+    "ooui-outline-control-remove": "আইটেম সরান",
     "ooui-toolbar-more": "আরও"
-}
\ No newline at end of file
+}
index 2013ee3..5381fd1 100644 (file)
@@ -7,5 +7,6 @@
     "ooui-dialog-action-close": "បិទ",
     "ooui-outline-control-move-down": "រុញ​ទៅ​ក្រោម",
     "ooui-outline-control-move-up": "រុញ​ទៅ​លើ",
+    "ooui-outline-control-remove": "ដក​វត្ថុ​ចេញ",
     "ooui-toolbar-more": "បន្ថែម"
-}
\ No newline at end of file
+}
diff --git a/resources/lib/oojs-ui/i18n/zh-hk.json b/resources/lib/oojs-ui/i18n/zh-hk.json
deleted file mode 100644 (file)
index 60e8fbd..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "@metadata": [],
-    "ooui-dialog-action-close": "關閉"
-}
\ No newline at end of file
diff --git a/resources/lib/oojs-ui/i18n/zh-tw.json b/resources/lib/oojs-ui/i18n/zh-tw.json
deleted file mode 100644 (file)
index f7987e5..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "@metadata": [],
-    "ooui-dialog-action-close": "關閉",
-    "ooui-outline-control-move-down": "向下移",
-    "ooui-outline-control-move-up": "向上移",
-    "ooui-toolbar-more": "更多"
-}
\ No newline at end of file
index 3ddb5b3..9629087 100644 (file)
   box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
 }
 
+.oo-ui-fieldLayout-disabled .oo-ui-labeledElement-label {
+  color: #ccc;
+}
+
 .oo-ui-fieldsetLayout {
   border: none;
 }
 .oo-ui-menuToolGroup.oo-ui-widget-disabled {
   color: #ccc;
   text-shadow: 0 1px 1px #fff;
-  background-color: #f3f3f3;
-  border-color: #ddd;
+  border-color: rgba(0, 0, 0, 0.05);
 }
 
 .oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-indicatedElement-indicator,
index 7807734..6e00086 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (70932872ba)
+ * OOjs UI v0.1.0-pre (ac6848398c)
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2014 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: Tue Apr 08 2014 12:42:30 GMT-0700 (PDT)
+ * Date: Wed Apr 09 2014 17:58:17 GMT-0700 (PDT)
  */
 ( function ( OO ) {
 
@@ -1483,6 +1483,8 @@ OO.ui.WindowSet.prototype.addWindow = function ( win ) {
        this.$element.append( win.$element );
 };
 /**
+ * Modal dialog window.
+ *
  * @abstract
  * @class
  * @extends OO.ui.Window
@@ -2028,7 +2030,10 @@ OO.ui.ClippableElement.prototype.clip = function () {
        return this;
 };
 /**
- * Element with named flags, used for styling, that can be added, removed and listed and checked.
+ * Element with named flags that can be added, removed, listed and checked.
+ *
+ * A flag, when set, adds a CSS class on the `$element` by combing `oo-ui-flaggableElement-` with
+ * the flag name. Flags are primarily useful for styling.
  *
  * @class
  * @abstract
@@ -3567,7 +3572,7 @@ OO.ui.ToolGroup.prototype.destroy = function () {
        this.$element.remove();
 };
 /**
- * Factory for tools.
+ * Factory for tool groups.
  *
  * @class
  * @extends OO.Factory
@@ -3691,11 +3696,13 @@ OO.ui.FieldLayout = function OoUiFieldLayout( field, config ) {
        if ( this.field instanceof OO.ui.InputWidget ) {
                this.$label.on( 'click', OO.ui.bind( this.onLabelClick, this ) );
        }
+       this.field.connect( this, { 'disable': 'onFieldDisable' } );
 
        // Initialization
        this.$element.addClass( 'oo-ui-fieldLayout' );
        this.$field
                .addClass( 'oo-ui-fieldLayout-field' )
+               .toggleClass( 'oo-ui-fieldLayout-disable', this.field.isDisabled() )
                .append( this.field.$element );
        this.setAlignment( config.align );
 };
@@ -3708,7 +3715,16 @@ OO.mixinClass( OO.ui.FieldLayout, OO.ui.LabeledElement );
 /* Methods */
 
 /**
- * Handles label mouse click events.
+ * Handle field disable events.
+ *
+ * @param {boolean} value Field is disabled
+ */
+OO.ui.FieldLayout.prototype.onFieldDisable = function ( value ) {
+       this.$element.toggleClass( 'oo-ui-fieldLayout-disabled', value );
+};
+
+/**
+ * Handle label mouse click events.
  *
  * @method
  * @param {jQuery.Event} e Mouse click event
@@ -4387,7 +4403,7 @@ OO.ui.PanelLayout = function OoUiPanelLayout( config ) {
 
 OO.inheritClass( OO.ui.PanelLayout, OO.ui.Layout );
 /**
- * Page within an OO.ui.BookletLayout.
+ * Page within an booklet layout.
  *
  * @class
  * @extends OO.ui.PanelLayout
@@ -4875,7 +4891,7 @@ OO.ui.MenuToolGroup.prototype.onUpdateState = function () {
        this.setLabel( labelTexts.join( ', ' ) || ' ' );
 };
 /**
- * UserInterface popup tool.
+ * Tool that shows a popup when selected.
  *
  * @abstract
  * @class
@@ -5027,7 +5043,7 @@ OO.ui.ItemWidget.prototype.setElementGroup = function ( group ) {
        return this;
 };
 /**
- * Creates an OO.ui.IconWidget object.
+ * Icon widget.
  *
  * @class
  * @extends OO.ui.Widget
@@ -5062,7 +5078,7 @@ OO.mixinClass( OO.ui.IconWidget, OO.ui.TitledElement );
 
 OO.ui.IconWidget.static.tagName = 'span';
 /**
- * Creates an OO.ui.IndicatorWidget object.
+ * Indicator widget.
  *
  * @class
  * @extends OO.ui.Widget
@@ -5099,6 +5115,8 @@ OO.ui.IndicatorWidget.static.tagName = 'span';
 /**
  * Container for multiple related buttons.
  *
+ * Use together with OO.ui.ButtonWidget.
+ *
  * @class
  * @extends OO.ui.Widget
  * @mixins OO.ui.GroupElement
@@ -5126,7 +5144,7 @@ OO.ui.ButtonGroupWidget = function OoUiButtonGroupWidget( config ) {
 OO.inheritClass( OO.ui.ButtonGroupWidget, OO.ui.Widget );
 OO.mixinClass( OO.ui.ButtonGroupWidget, OO.ui.GroupElement );
 /**
- * Creates an OO.ui.ButtonWidget object.
+ * Button widget.
  *
  * @class
  * @abstract
@@ -5229,7 +5247,7 @@ OO.ui.ButtonWidget.prototype.onKeyPress = function ( e ) {
        return false;
 };
 /**
- * Creates an OO.ui.InputWidget object.
+ * Input widget.
  *
  * @class
  * @abstract
@@ -5424,7 +5442,7 @@ OO.ui.InputWidget.prototype.setDisabled = function ( state ) {
        return this;
 };
 /**
- * Creates an OO.ui.CheckboxInputWidget object.
+ * Checkbox widget.
  *
  * @class
  * @extends OO.ui.InputWidget
@@ -5490,7 +5508,7 @@ OO.ui.CheckboxInputWidget.prototype.onEdit = function () {
        }
 };
 /**
- * Creates an OO.ui.LabelWidget object.
+ * Label widget.
  *
  * @class
  * @extends OO.ui.Widget
@@ -5778,7 +5796,9 @@ OO.ui.LookupInputWidget.prototype.getLookupMenuItemsFromData = function () {
        return [];
 };
 /**
- * Creates an OO.ui.OptionWidget object.
+ * Option widget.
+ *
+ * Use with OO.ui.SelectWidget.
  *
  * @class
  * @abstract
@@ -6003,7 +6023,9 @@ OO.ui.OptionWidget.prototype.getData = function () {
        return this.data;
 };
 /**
- * Create an OO.ui.SelectWidget object.
+ * Selection of options.
+ *
+ * Use together with OO.ui.OptionWidget.
  *
  * @class
  * @abstract
@@ -6515,7 +6537,9 @@ OO.ui.SelectWidget.prototype.clearItems = function () {
        return this;
 };
 /**
- * Creates an OO.ui.MenuItemWidget object.
+ * Menu item widget.
+ *
+ * Use with OO.ui.MenuWidget.
  *
  * @class
  * @extends OO.ui.OptionWidget
@@ -6539,7 +6563,9 @@ OO.ui.MenuItemWidget = function OoUiMenuItemWidget( data, config ) {
 
 OO.inheritClass( OO.ui.MenuItemWidget, OO.ui.OptionWidget );
 /**
- * Create an OO.ui.MenuWidget object.
+ * Menu widget.
+ *
+ * Use together with OO.ui.MenuItemWidget.
  *
  * @class
  * @extends OO.ui.SelectWidget
@@ -6781,6 +6807,8 @@ OO.ui.MenuWidget.prototype.hide = function () {
 /**
  * Inline menu of options.
  *
+ * Use with OO.ui.MenuOptionWidget.
+ *
  * @class
  * @extends OO.ui.Widget
  * @mixins OO.ui.IconedElement
@@ -6886,7 +6914,9 @@ OO.ui.InlineMenuWidget.prototype.onClick = function ( e ) {
        return false;
 };
 /**
- * Creates an OO.ui.MenuSectionItemWidget object.
+ * Menu section item widget.
+ *
+ * Use with OO.ui.MenuWidget.
  *
  * @class
  * @extends OO.ui.OptionWidget
@@ -6915,6 +6945,8 @@ OO.ui.MenuSectionItemWidget.static.highlightable = false;
 /**
  * Create an OO.ui.OutlineWidget object.
  *
+ * Use with OO.ui.OutlineItemWidget.
+ *
  * @class
  * @extends OO.ui.SelectWidget
  *
@@ -6938,6 +6970,8 @@ OO.inheritClass( OO.ui.OutlineWidget, OO.ui.SelectWidget );
 /**
  * Creates an OO.ui.OutlineControlsWidget object.
  *
+ * Use together with OO.ui.OutlineWidget.js
+ *
  * @class
  *
  * @constructor
@@ -7051,6 +7085,8 @@ OO.ui.OutlineControlsWidget.prototype.onOutlineChange = function () {
 /**
  * Creates an OO.ui.OutlineItemWidget object.
  *
+ * Use with OO.ui.OutlineWidget.
+ *
  * @class
  * @extends OO.ui.OptionWidget
  *
@@ -7174,7 +7210,9 @@ OO.ui.OutlineItemWidget.prototype.setLevel = function ( level ) {
        return this;
 };
 /**
- * Create an OO.ui.ButtonOptionWidget object.
+ * Option widget that looks like a button.
+ *
+ * Use together with OO.ui.ButtonSelectWidget.
  *
  * @class
  * @extends OO.ui.OptionWidget
@@ -7218,7 +7256,9 @@ OO.ui.ButtonOptionWidget.prototype.setSelected = function ( state ) {
        return this;
 };
 /**
- * Create an OO.ui.ButtonSelect object.
+ * Select widget containing button options.
+ *
+ * Use together with OO.ui.ButtonOptionWidget.
  *
  * @class
  * @extends OO.ui.SelectWidget
@@ -7238,7 +7278,7 @@ OO.ui.ButtonSelectWidget = function OoUiButtonSelectWidget( config ) {
 
 OO.inheritClass( OO.ui.ButtonSelectWidget, OO.ui.SelectWidget );
 /**
- * Creates an OO.ui.PopupWidget object.
+ * Container for content that is overlaid and positioned absolutely.
  *
  * @class
  * @extends OO.ui.Widget
@@ -7548,7 +7588,9 @@ OO.ui.PopupButtonWidget.prototype.onClick = function ( e ) {
        return false;
 };
 /**
- * Creates an OO.ui.SearchWidget object.
+ * Search widget.
+ *
+ * Combines query and results selection widgets.
  *
  * @class
  * @extends OO.ui.Widget
@@ -7713,7 +7755,7 @@ OO.ui.SearchWidget.prototype.getResults = function () {
        return this.results;
 };
 /**
- * Creates an OO.ui.TextInputWidget object.
+ * Text input widget.
  *
  * @class
  * @extends OO.ui.InputWidget
@@ -7917,7 +7959,7 @@ OO.ui.TextInputWidget.prototype.popPending = function () {
        return this;
 };
 /**
- * Creates an OO.ui.TextInputMenuWidget object.
+ * Menu for a text input widget.
  *
  * @class
  * @extends OO.ui.MenuWidget
@@ -8021,6 +8063,8 @@ OO.ui.TextInputMenuWidget.prototype.position = function () {
        return this;
 };
 /**
+ * Width with on and off states.
+ *
  * Mixin for widgets with a boolean state.
  *
  * @class
@@ -8080,6 +8124,8 @@ OO.ui.ToggleWidget.prototype.setValue = function ( value ) {
        return this;
 };
 /**
+ * Button that toggles on and off.
+ *
  * @class
  * @extends OO.ui.ButtonWidget
  * @mixins OO.ui.ToggleWidget
@@ -8136,6 +8182,8 @@ OO.ui.ToggleButtonWidget.prototype.setValue = function ( value ) {
        return this;
 };
 /**
+ * Switch that slides on and off.
+ *
  * @class
  * @abstract
  * @extends OO.ui.Widget
index bd5f527..b2ba750 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (70932872ba)
+ * OOjs UI v0.1.0-pre (ac6848398c)
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2014 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: Tue Apr 08 2014 12:42:30 GMT-0700 (PDT)
+ * Date: Wed Apr 09 2014 17:58:17 GMT-0700 (PDT)
  */
 
 /* Textures */
index f6bc81d..9b0711a 100644 (file)
                                        [ tail, 8 ],
                                        [ tail, 19 ],
                                        [ tail - 8, 8 ],
-                                       [ tail, 8 ],
+                                       [ tail, 8 ]
                                ] ) );
                                g.appendChild( node );
 
                                trigger: 'manual',
                                title: function () {
                                        return profile.buildFlyout( $( this ).data( 'period' ) ).html();
-                               },
+                               }
                        } ).on( 'mouseenter', function () {
                                hide();
                                addClass( this, 'tipsy-visible' );
                 */
                xCoord: function ( msTimestamp ) {
                        return ( msTimestamp - profile.data.timespan.start ) * profile.ratio;
-               },
+               }
        };
 
        function ProfileData( data, width, mergeThresholdPx, dropThresholdPx ) {
                return Object.keys( groups ).map( function ( group ) {
                        return {
                                name: group,
-                               events: groups[group],
+                               events: groups[group]
                        };
                } );
        };
                                return [{
                                        start: period.start,
                                        end: period.end,
-                                       contained: [period],
+                                       contained: [period]
                                }];
                        }
                        var last = result[result.length - 1];
                                result.push({
                                        start: period.start,
                                        end: period.end,
-                                       contained: [period],
+                                       contained: [period]
                                });
                        }
                        return result;
index 505a35b..32a9927 100644 (file)
                 * @param {Array} nodes List of nodes
                 * @return {string} Other message
                 */
-               int: function ( nodes ) {
+               'int': function ( nodes ) {
                        return mw.jqueryMsg.getMessageFunction()( nodes[0].toLowerCase() );
                },
 
index 03f133e..3174af1 100644 (file)
@@ -91,7 +91,7 @@ relativeforfloats = window.relativeforfloats = function () {
 setrelative = window.setrelative = function ( nodes ) {
        var i = 0;
        while ( i < nodes.length ) {
-               if ( ( ( nodes[i].style.float && nodes[i].style.float !== ( 'none' ) ||
+               if ( ( ( nodes[i].style['float'] && nodes[i].style['float'] !== ( 'none' ) ||
                        ( nodes[i].align && nodes[i].align !== ( 'none' ) ) ) &&
                        ( !nodes[i].style.position || nodes[i].style.position !== 'relative' ) ) )
                {
index 9b8c41a..25ba301 100644 (file)
@@ -28,7 +28,6 @@ body {
 
 /* Content */
 div#content {
-       line-height: @content-line-height;
        margin-left: 10em;
        padding: @content-padding;
        /* Border on top, left, and bottom side */
@@ -131,7 +130,7 @@ pre, .mw-code {
 #bodyContent {
        position: relative;
        width: 100%;
-       line-height: 1.5em;
+       line-height: @content-line-height;
        font-size: @content-font-size;
 }
 
index f49be49..f5fd16d 100644 (file)
@@ -1,3 +1,4 @@
+/*jshint -W024 */
 ( function ( mw, $ ) {
        // mw.Title relies on these three config vars
        // Restore them after each test run
index b6a8a46..7a58d38 100644 (file)
@@ -1,3 +1,4 @@
+/*jshint -W024 */
 ( function ( mw, $ ) {
        QUnit.module( 'mediawiki.Uri', QUnit.newMwEnvironment( {
                setup: function () {
index 8fd789a..4e26bdc 100644 (file)
@@ -73,7 +73,7 @@
                        'Mozilla/5.0 (Series40; NokiaX3-02/05.60; Profile/MIDP-2.1 Configuration/CLDC-1.1) Gecko/20100401 S40OviBrowser/3.2.0.0.6',
                        'Mozilla/5.0 (Series40; Nokia305/05.92; Profile/MIDP-2.1 Configuration/CLDC-1.1) Gecko/20100401 S40OviBrowser/3.7.0.0.11',
                        // Google Glass
-                       'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Glass 1 Build/IMM76L; XE11) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
+                       'Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Glass 1 Build/IMM76L; XE11) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'
                ],
                // No explicit support for or against these browsers, they're
                // given a shot at Grade A at their own risk.