Merge "Added missing unlock() calls in LocalFile"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 17 Jul 2014 00:44:31 +0000 (00:44 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 17 Jul 2014 00:44:31 +0000 (00:44 +0000)
16 files changed:
includes/htmlform/HTMLForm.php
includes/htmlform/HTMLFormField.php
includes/specials/SpecialListfiles.php
resources/lib/oojs-ui/i18n/ar.json
resources/lib/oojs-ui/i18n/cs.json
resources/lib/oojs-ui/i18n/et.json
resources/lib/oojs-ui/i18n/it.json
resources/lib/oojs-ui/i18n/lv.json
resources/lib/oojs-ui/i18n/pl.json
resources/lib/oojs-ui/i18n/sr-ec.json
resources/lib/oojs-ui/i18n/sv.json
resources/lib/oojs-ui/i18n/vi.json
resources/lib/oojs-ui/oojs-ui-agora.css
resources/lib/oojs-ui/oojs-ui-apex.css
resources/lib/oojs-ui/oojs-ui.js
resources/lib/oojs-ui/oojs-ui.svg.css

index 3334694..df6582c 100644 (file)
@@ -50,6 +50,7 @@
  *    'default'             -- default value when the form is displayed
  *    'id'                  -- HTML id attribute
  *    'cssclass'            -- CSS class
+ *    'csshelpclass'        -- CSS class used to style help text
  *    'options'             -- associative array mapping labels to values.
  *                             Some field types support multi-level arrays.
  *    'options-messages'    -- associative array mapping message keys to values.
index 8076e8a..1fcc866 100644 (file)
@@ -13,6 +13,7 @@ abstract class HTMLFormField {
        protected $mLabel; # String label.  Set on construction
        protected $mID;
        protected $mClass = '';
+       protected $mHelpClass = false;
        protected $mDefault;
        protected $mOptions = false;
        protected $mOptionsLabelsNotFromMessage = false;
@@ -397,6 +398,10 @@ abstract class HTMLFormField {
                        $this->mClass = $params['cssclass'];
                }
 
+               if ( isset( $params['csshelpclass'] ) ) {
+                       $this->mHelpClass = $params['csshelpclass'];
+               }
+
                if ( isset( $params['validation-callback'] ) ) {
                        $this->mValidationCallback = $params['validation-callback'];
                }
@@ -562,7 +567,11 @@ abstract class HTMLFormField {
                        $rowAttributes['class'] = 'mw-htmlform-hide-if';
                }
 
-               $row = Html::rawElement( 'td', array( 'colspan' => 2, 'class' => 'htmlform-tip' ), $helptext );
+               $tdClasses = array( 'htmlform-tip' );
+               if ( $this->mHelpClass !== false ) {
+                       $tdClasses[] = $this->mHelpClass;
+               }
+               $row = Html::rawElement( 'td', array( 'colspan' => 2, 'class' => $tdClasses ), $helptext );
                $row = Html::rawElement( 'tr', $rowAttributes, $row );
 
                return $row;
index 1faa013..2ce45ac 100644 (file)
@@ -560,7 +560,9 @@ class ImageListPager extends TablePager {
                if ( !is_null( $this->mUserName ) ) {
                        # Append the username to the query string
                        foreach ( $queries as &$query ) {
-                               $query['user'] = $this->mUserName;
+                               if ( $query !== false ) {
+                                       $query['user'] = $this->mUserName;
+                               }
                        }
                }
 
index 34f8972..eb13f59 100644 (file)
@@ -8,11 +8,12 @@
                        "Mido",
                        "OsamaK",
                        "زكريا",
-                       "مشعل الحربي"
+                       "مشعل الحربي",
+                       "ترجمان05"
                ]
        },
-       "ooui-dialog-action-close": "أغلق",
        "ooui-outline-control-move-down": "انقل العنصر للأسفل",
        "ooui-outline-control-move-up": "انقل العنصر للأعلى",
-       "ooui-toolbar-more": "مزيد"
+       "ooui-toolbar-more": "مزيد",
+       "ooui-dialog-process-retry": "حاول مرة أخرى"
 }
index ca6d5b4..a75cf0b 100644 (file)
                        "ශ්වෙත"
                ]
        },
-       "ooui-dialog-action-close": "Zavřít",
        "ooui-outline-control-move-down": "Přesunout položku dolů",
        "ooui-outline-control-move-up": "Přesunout položku nahoru",
        "ooui-outline-control-remove": "Odstranit položku",
        "ooui-toolbar-more": "Další",
-       "ooui-dialog-confirm-title": "Potvrzení",
-       "ooui-dialog-confirm-default-prompt": "Opravdu?",
-       "ooui-dialog-confirm-default-ok": "OK",
-       "ooui-dialog-confirm-default-cancel": "Storno"
+       "ooui-dialog-message-accept": "OK",
+       "ooui-dialog-message-reject": "Storno",
+       "ooui-dialog-process-error": "Něco se pokazilo",
+       "ooui-dialog-process-dismiss": "Zavřít",
+       "ooui-dialog-process-retry": "Zkusit znovu"
 }
index 164685c..ac3af74 100644 (file)
@@ -5,13 +5,13 @@
                        "Pikne"
                ]
        },
-       "ooui-dialog-action-close": "Sule",
        "ooui-outline-control-move-down": "Liiguta üksust allapoole",
        "ooui-outline-control-move-up": "Liiguta üksust ülespoole",
        "ooui-outline-control-remove": "Eemalda üksus",
        "ooui-toolbar-more": "Veel",
-       "ooui-dialog-confirm-title": "Kinnitus",
-       "ooui-dialog-confirm-default-prompt": "Kas oled kindel?",
-       "ooui-dialog-confirm-default-ok": "Sobib",
-       "ooui-dialog-confirm-default-cancel": "Loobu"
+       "ooui-dialog-message-accept": "Sobib",
+       "ooui-dialog-message-reject": "Loobu",
+       "ooui-dialog-process-error": "Midagi läks valesti",
+       "ooui-dialog-process-dismiss": "Hülga",
+       "ooui-dialog-process-retry": "Proovi uuesti"
 }
index 162fa8c..3d4e049 100644 (file)
                        "Ontsed"
                ]
        },
-       "ooui-dialog-action-close": "Chiudi",
        "ooui-outline-control-move-down": "Sposta in basso",
        "ooui-outline-control-move-up": "Sposta in alto",
        "ooui-outline-control-remove": "Rimuovi elemento",
        "ooui-toolbar-more": "Altro",
-       "ooui-dialog-confirm-title": "Conferma",
-       "ooui-dialog-confirm-default-prompt": "Sei sicuro?",
-       "ooui-dialog-confirm-default-ok": "OK",
-       "ooui-dialog-confirm-default-cancel": "Annulla"
+       "ooui-dialog-message-accept": "OK",
+       "ooui-dialog-message-reject": "Annulla",
+       "ooui-dialog-process-error": "Qualcosa è andato storto",
+       "ooui-dialog-process-dismiss": "Nascondi",
+       "ooui-dialog-process-retry": "Riprova"
 }
index 7ad74dc..32fc9fe 100644 (file)
@@ -8,12 +8,10 @@
                        "PeterisP"
                ]
        },
-       "ooui-dialog-action-close": "Aizvērt",
        "ooui-outline-control-move-down": "Pārvietot vienumu uz leju",
        "ooui-outline-control-move-up": "Pārvietot vienumu uz augšu",
        "ooui-toolbar-more": "Vairāk",
-       "ooui-dialog-confirm-title": "Apstiprināt",
-       "ooui-dialog-confirm-default-prompt": "Vai esat pārliecināts?",
-       "ooui-dialog-confirm-default-ok": "Labi",
-       "ooui-dialog-confirm-default-cancel": "Atcelt"
+       "ooui-dialog-message-accept": "Labi",
+       "ooui-dialog-message-reject": "Atcelt",
+       "ooui-dialog-process-retry": "Mēģināt vēlreiz"
 }
index 2431096..7978673 100644 (file)
@@ -26,5 +26,6 @@
        "ooui-dialog-message-accept": "OK",
        "ooui-dialog-message-reject": "Anuluj",
        "ooui-dialog-process-error": "Coś poszło nie tak",
+       "ooui-dialog-process-dismiss": "Ukryj",
        "ooui-dialog-process-retry": "Spróbuj ponownie"
 }
index 308ed84..d653356 100644 (file)
@@ -6,13 +6,13 @@
                        "Милан Јелисавчић"
                ]
        },
-       "ooui-dialog-action-close": "Затвори",
        "ooui-outline-control-move-down": "Премести ставку на доле",
        "ooui-outline-control-move-up": "Премести ставку на горе",
        "ooui-outline-control-remove": "Уклони ставку",
        "ooui-toolbar-more": "Више",
-       "ooui-dialog-confirm-title": "Потврди",
-       "ooui-dialog-confirm-default-prompt": "Јесте ли сигурни?",
-       "ooui-dialog-confirm-default-ok": "У реду",
-       "ooui-dialog-confirm-default-cancel": "Откажи"
+       "ooui-dialog-message-accept": "У реду",
+       "ooui-dialog-message-reject": "Откажи",
+       "ooui-dialog-process-error": "Нешто је пошло наопако",
+       "ooui-dialog-process-dismiss": "Одбаци",
+       "ooui-dialog-process-retry": "Покушај поново"
 }
index fbd03de..40305d0 100644 (file)
                        "Lokal Profil"
                ]
        },
-       "ooui-dialog-action-close": "Stäng",
        "ooui-outline-control-move-down": "Flytta ned objekt",
        "ooui-outline-control-move-up": "Flytta upp objekt",
        "ooui-outline-control-remove": "Ta bort objekt",
        "ooui-toolbar-more": "Mer",
-       "ooui-dialog-confirm-title": "Bekräfta",
-       "ooui-dialog-confirm-default-prompt": "Är du säker?",
-       "ooui-dialog-confirm-default-ok": "OK",
-       "ooui-dialog-confirm-default-cancel": "Avbryt"
+       "ooui-dialog-message-accept": "OK",
+       "ooui-dialog-message-reject": "Avbryt",
+       "ooui-dialog-process-error": "Något gick fel",
+       "ooui-dialog-process-dismiss": "Stäng",
+       "ooui-dialog-process-retry": "Försök igen"
 }
index 9cc4543..205cbe8 100644 (file)
@@ -6,13 +6,13 @@
                        "Minh Nguyen"
                ]
        },
-       "ooui-dialog-action-close": "Đóng",
        "ooui-outline-control-move-down": "Chuyển mục xuống",
        "ooui-outline-control-move-up": "Chuyển mục lên",
        "ooui-outline-control-remove": "Xóa khoản",
        "ooui-toolbar-more": "Thêm",
-       "ooui-dialog-confirm-title": "Xác nhận",
-       "ooui-dialog-confirm-default-prompt": "Bạn có chắc chắn?",
-       "ooui-dialog-confirm-default-ok": "OK",
-       "ooui-dialog-confirm-default-cancel": "Hủy bỏ"
+       "ooui-dialog-message-accept": "OK",
+       "ooui-dialog-message-reject": "Hủy bỏ",
+       "ooui-dialog-process-error": "Đã bị trục trặc",
+       "ooui-dialog-process-dismiss": "Bỏ qua",
+       "ooui-dialog-process-retry": "Thử lại"
 }
index 5b35674..0dfa042 100644 (file)
 /*!
- * OOjs UI v0.1.0-pre (d2451ac748)
+ * OOjs UI v0.1.0-pre (97dbb50137)
  * 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: 2014-07-14T16:49:51Z
+ * Date: 2014-07-16T22:59:48Z
  */
-.oo-ui-dialog-content .oo-ui-window-closeButton {
+.oo-ui-dialog-content > .oo-ui-window-head,
+.oo-ui-dialog-content > .oo-ui-window-body,
+.oo-ui-dialog-content > .oo-ui-window-foot {
   position: absolute;
-  top: 0;
+  right: 0;
   left: 0;
+  overflow: hidden;
+  -webkit-box-sizing: border-box;
+     -moz-box-sizing: border-box;
+          box-sizing: border-box;
 }
 
-.oo-ui-dialog-content .oo-ui-window-icon {
-  margin-left: 3.35em;
+.oo-ui-dialog-content > .oo-ui-window-head {
+  top: 0;
+  z-index: 1;
 }
 
-.oo-ui-dialog-content .oo-ui-window-body {
-  position: absolute;
-  top: 3.35em;
-  right: 0;
+.oo-ui-dialog-content > .oo-ui-window-body {
+  top: 0;
   bottom: 0;
-  left: 0;
-  overflow-y: auto;
+  z-index: 2;
 }
 
-.oo-ui-dialog-content .oo-ui-window-foot {
-  position: absolute;
-  top: 0;
-  right: 0;
-  height: 3.35em;
+.oo-ui-dialog-content > .oo-ui-window-foot {
+  bottom: 0;
+  z-index: 1;
 }
 
-.oo-ui-dialog-content .oo-ui-window-foot .oo-ui-buttonedElement-button {
-  height: 100%;
+.oo-ui-dialog-content > .oo-ui-window-overlay {
+  z-index: 3;
 }
 
-.oo-ui-dialog-content .oo-ui-window-foot .oo-ui-buttonedElement-button .oo-ui-labeledElement-label {
-  display: inline-block;
-  width: 0;
-  text-indent: -9999px;
+.oo-ui-windowManager-modal > .oo-ui-dialog {
+  background-color: rgba(255, 255, 255, 0.5);
+  opacity: 0;
+  -webkit-transition: opacity 250ms ease-in-out;
+     -moz-transition: opacity 250ms ease-in-out;
+      -ms-transition: opacity 250ms ease-in-out;
+       -o-transition: opacity 250ms ease-in-out;
+          transition: opacity 250ms ease-in-out;
 }
 
-.oo-ui-dialog-medium .oo-ui-window-frame {
-  top: 0;
-  bottom: 0;
-  background-color: white;
+.oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame {
+  top: 1em;
+  bottom: 1em;
+  background-color: #fff;
+  -webkit-transform: translate3d(0, -200%, 0);
+     -moz-transform: translate3d(0, -200%, 0);
+      -ms-transform: translate3d(0, -200%, 0);
+       -o-transform: translate3d(0, -200%, 0);
+          transform: translate3d(0, -200%, 0);
+  -webkit-transition: transform 250ms ease-in-out;
+     -moz-transition: transform 250ms ease-in-out;
+      -ms-transition: transform 250ms ease-in-out;
+       -o-transition: transform 250ms ease-in-out;
+          transition: transform 250ms ease-in-out;
+}
+
+.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready {
+  opacity: 1;
+}
+
+.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .oo-ui-window-frame {
+  -webkit-transform: translate3d(0, 0, 0);
+     -moz-transform: translate3d(0, 0, 0);
+      -ms-transform: translate3d(0, 0, 0);
+       -o-transform: translate3d(0, 0, 0);
+          transform: translate3d(0, 0, 0);
+}
+
+.oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
+  border: solid 1px #ccc;
+  border-radius: 0.5em;
+  box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
+}
+
+.oo-ui-messageDialog-title,
+.oo-ui-messageDialog-message {
+  display: block;
+  padding-top: 0.5em;
+  text-align: center;
+}
+
+.oo-ui-messageDialog-title {
+  font-size: 1.5em;
+  line-height: 1em;
+  color: #000;
+}
+
+.oo-ui-messageDialog-message {
+  font-size: 0.9em;
+  line-height: 1.25em;
+  color: #666;
+}
+
+.oo-ui-messageDialog-message-verbose {
+  font-size: 1.1em;
+  line-height: 1.5em;
+  text-align: left;
+}
+
+.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
+  border-right: solid 1px #e5e5e5;
+}
+
+.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget:last-child {
+  border-right-width: 0;
+}
+
+.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
+  border-bottom: solid 1px #e5e5e5;
+}
+
+.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget:last-child {
+  border-bottom-width: 0;
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labeledElement-label {
+  padding: 0 2em;
+  line-height: 3.4em;
+  text-align: center;
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget:hover {
+  background-color: rgba(0, 0, 0, 0.05);
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget:active {
+  background-color: rgba(0, 0, 0, 0.1);
 }
 
-.oo-ui-window-head {
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggableElement-primary:hover {
+  background-color: rgba(8, 126, 204, 0.05);
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggableElement-primary:active {
+  background-color: rgba(8, 126, 204, 0.1);
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggableElement-primary .oo-ui-labeledElement-label {
+  font-weight: bold;
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggableElement-constructive:hover {
+  background-color: rgba(118, 171, 54, 0.05);
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggableElement-constructive:active {
+  background-color: rgba(118, 171, 54, 0.1);
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggableElement-destructive:hover {
+  background-color: rgba(212, 83, 83, 0.05);
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggableElement-destructive:active {
+  background-color: rgba(212, 83, 83, 0.1);
+}
+
+.oo-ui-processDialog-content .oo-ui-window-head {
   height: 3.35em;
   border-bottom: 1px solid #dddddd;
   -webkit-box-sizing: border-box;
           box-sizing: border-box;
 }
 
-.oo-ui-window-body {
-  padding: 2em 3.35em;
+.oo-ui-processDialog-content .oo-ui-window-body {
+  top: 3.35em;
+  padding: 2em 0;
 }
 
-.oo-ui-window-icon {
-  width: 3.35em;
+.oo-ui-processDialog-navigation {
+  position: relative;
   height: 3.35em;
-  background-size: 2em auto;
-  border-left: 1px solid #dddddd;
+  padding: 0 1em;
+}
+
+.oo-ui-processDialog-location {
+  height: 3.35em;
+  padding: 0.25em 0;
+  text-align: center;
+  cursor: default;
+}
+
+.oo-ui-processDialog-title {
+  font-weight: bold;
+  line-height: 1.85em;
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonedElement-button,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonedElement-button,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-buttonedElement-button {
+  min-width: 1.85em;
+  min-height: 1.85em;
+  padding-top: 0.75em;
+  padding-bottom: 0.75em;
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-labeledElement-label,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-labeledElement-label,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-labeledElement-label {
+  padding: 0 1em;
+  line-height: 1.85em;
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-iconedElement-icon,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-iconedElement-icon,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-iconedElement-icon {
+  position: absolute;
+  margin-top: -0.125em;
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button {
+  padding: 0;
+  vertical-align: middle;
+}
+
+.oo-ui-processDialog-actions-safe.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button,
+.oo-ui-processDialog-actions-primary.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button {
+  margin: 0.75em;
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget:hover,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget:hover {
+  background-color: rgba(0, 0, 0, 0.05);
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget:active,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget:active {
+  background-color: rgba(0, 0, 0, 0.1);
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggableElement-primary:hover,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggableElement-primary:hover {
+  background-color: rgba(8, 126, 204, 0.05);
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggableElement-primary:active,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggableElement-primary:active {
+  background-color: rgba(8, 126, 204, 0.1);
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggableElement-primary .oo-ui-labeledElement-label,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggableElement-primary .oo-ui-labeledElement-label {
+  font-weight: bold;
 }
 
-.oo-ui-window-title {
-  line-height: 3.35em;
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggableElement-constructive:hover,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggableElement-constructive:hover {
+  background-color: rgba(118, 171, 54, 0.05);
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggableElement-constructive:active,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggableElement-constructive:active {
+  background-color: rgba(118, 171, 54, 0.1);
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggableElement-destructive:hover,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggableElement-destructive:hover {
+  background-color: rgba(212, 83, 83, 0.05);
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggableElement-destructive:active,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggableElement-destructive:active {
+  background-color: rgba(212, 83, 83, 0.1);
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconedElement .oo-ui-iconedElement-icon {
+  left: 0.5em;
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconedElement .oo-ui-labeledElement-label {
+  padding-left: 2.25em;
+}
+
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconedElement .oo-ui-iconedElement-icon {
+  right: 0.5em;
+}
+
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconedElement .oo-ui-labeledElement-label {
+  padding-right: 2.25em;
+}
+
+.oo-ui-processDialog-actions-other:not(:empty) {
+  padding: 0.75em;
+}
+
+.oo-ui-processDialog-actions-other:not(:empty) .oo-ui-actionWidget {
+  margin: 0 0.75em 0 0;
+  border: solid 1px #ccc;
+  border-radius: 0.25em;
+}
+
+.oo-ui-processDialog > .oo-ui-window-frame {
+  min-height: 5em;
+}
+
+.oo-ui-processDialog-errors {
+  padding: 3em 3em 1.5em 3em;
+  text-align: center;
+  background-color: rgba(255, 255, 255, 0.9);
+}
+
+.oo-ui-processDialog-errors .oo-ui-buttonWidget {
+  margin: 2em 1em 2em 1em;
+}
+
+.oo-ui-processDialog-errors-title {
+  margin-bottom: 2em;
+  font-size: 1.5em;
+  color: #000;
+}
+
+.oo-ui-processDialog-error {
+  padding: 1em;
+  margin: 1em;
+  text-align: left;
+  background-color: #fff7f7;
+  border: solid 1px #ff9e9e;
+  border-radius: 0.25em;
 }
 
 .oo-ui-buttonedElement.oo-ui-indicatedElement .oo-ui-buttonedElement-button > .oo-ui-indicatedElement-indicator,
   padding: 0;
 }
 
+.oo-ui-lookupWidget-menu {
+  background-color: #fff;
+}
+
 .oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
   color: #ffffff;
   background: #347bff;
index aeba582..7bc9be8 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (d2451ac748)
+ * OOjs UI v0.1.0-pre (97dbb50137)
  * 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: 2014-07-14T16:49:51Z
+ * Date: 2014-07-16T22:59:48Z
  */
 .oo-ui-dialog-content > .oo-ui-window-head,
 .oo-ui-dialog-content > .oo-ui-window-body,
   color: #000;
 }
 
-.oo-ui-window > .oo-ui-window-frame {
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-}
-
 .oo-ui-window-content {
   background: transparent;
 }
 }
 
 .oo-ui-windowManager-modal > .oo-ui-dialog {
-  background-color: #fff;
   background-color: rgba(255, 255, 255, 0.5);
   opacity: 0;
   -webkit-transition: opacity 250ms ease-in-out;
   top: 1em;
   bottom: 1em;
   background-color: #fff;
-  border: solid 1px #ccc;
-  border-radius: 0.5em;
   -webkit-transform: scale(0.5);
      -moz-transform: scale(0.5);
       -ms-transform: scale(0.5);
        -o-transform: scale(0.5);
           transform: scale(0.5);
-  box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
   -webkit-transition: all 250ms ease-in-out;
      -moz-transition: all 250ms ease-in-out;
       -ms-transition: all 250ms ease-in-out;
           transform: scale(1);
 }
 
-.oo-ui-windowManager-fullscreen > .oo-ui-dialog > .oo-ui-window-frame {
-  top: 0;
-  bottom: 0;
-  width: 100%;
-  height: 100%;
-  border: none;
-  border-radius: 0;
-  box-shadow: none;
+.oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
+  border: solid 1px #ccc;
+  border-radius: 0.5em;
+  box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
 }
 
-.oo-ui-messageDialog-text.oo-ui-panelLayout {
-  bottom: auto;
+.oo-ui-messageDialog-content .oo-ui-window-body {
+  box-shadow: 0 0 0.33em rgba(0, 0, 0, 0.33);
 }
 
-.oo-ui-messageDialog-title {
+.oo-ui-messageDialog-title,
+.oo-ui-messageDialog-message {
   display: block;
-  padding-top: 0;
+  padding-top: 0.5em;
+  text-align: center;
+}
+
+.oo-ui-messageDialog-title {
   font-size: 1.5em;
+  line-height: 1em;
   color: #000;
-  text-align: center;
 }
 
 .oo-ui-messageDialog-message {
-  display: block;
   font-size: 0.9em;
   line-height: 1.25em;
   color: #666;
-  text-align: center;
 }
 
 .oo-ui-messageDialog-message-verbose {
   text-align: left;
 }
 
-.oo-ui-messageDialog-content > .oo-ui-window-body {
-  bottom: 3.4em;
-  box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
-}
-
-.oo-ui-messageDialog-content > .oo-ui-window-foot {
-  min-height: 3.4em;
-}
-
-.oo-ui-messageDialog-actions-horizontal {
-  display: table;
-  width: 100%;
-  table-layout: fixed;
-}
-
 .oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-  display: table-cell;
-  width: 1%;
   border-right: solid 1px #e5e5e5;
 }
 
   border-right-width: 0;
 }
 
-.oo-ui-messageDialog-actions-vertical {
-  display: block;
-}
-
 .oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-  display: block;
-  overflow: hidden;
-  text-overflow: ellipsis;
   border-bottom: solid 1px #e5e5e5;
 }
 
   border-bottom-width: 0;
 }
 
-.oo-ui-messageDialog-actions .oo-ui-actionWidget {
-  position: relative;
-  height: 3.4em;
-  padding: 0;
+.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labeledElement-label {
+  padding: 0 2em;
+  line-height: 3.4em;
   text-align: center;
 }
 
   background-color: rgba(212, 83, 83, 0.1);
 }
 
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-buttonedElement-button {
-  display: block;
-}
-
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labeledElement-label {
-  position: relative;
-  top: auto;
-  bottom: auto;
-  display: inline;
-  padding: 0 2em;
-  line-height: 3.4em;
-  white-space: nowrap;
-}
-
-.oo-ui-processDialog-content > .oo-ui-window-head {
+.oo-ui-processDialog-content .oo-ui-window-head {
   height: 3.4em;
 }
 
-.oo-ui-processDialog-content .oo-ui-window-body {
+.oo-ui-processDialog-content .oo-ui-window-body {
   top: 3.4em;
-  box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
+  box-shadow: 0 0 0.33em rgba(0, 0, 0, 0.33);
 }
 
 .oo-ui-processDialog-navigation {
   position: relative;
   height: 3.4em;
   padding: 0 1em;
-  -webkit-user-select: none;
-     -moz-user-select: none;
-      -ms-user-select: none;
-          user-select: none;
-  -webkit-touch-callout: none;
 }
 
 .oo-ui-processDialog-location {
   height: 1.9em;
   padding: 0.75em 0;
-  overflow: hidden;
   text-align: center;
-  text-overflow: ellipsis;
-  white-space: nowrap;
   cursor: default;
 }
 
-.oo-ui-processDialog-location .oo-ui-labelWidget {
-  display: inline;
-}
-
 .oo-ui-processDialog-title {
   font-weight: bold;
   line-height: 1.9em;
 }
 
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget {
-  white-space: nowrap;
-}
-
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonedElement-button,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonedElement-button,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-buttonedElement-button {
   vertical-align: middle;
 }
 
-.oo-ui-processDialog-actions-safe,
-.oo-ui-processDialog-actions-primary {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-}
-
 .oo-ui-processDialog-actions-safe.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button,
 .oo-ui-processDialog-actions-primary.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button {
   margin: 0.75em;
   background-color: rgba(212, 83, 83, 0.1);
 }
 
-.oo-ui-processDialog-actions-safe {
-  left: 0;
-}
-
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconedElement .oo-ui-iconedElement-icon {
   left: 0.5em;
 }
   padding-left: 2.25em;
 }
 
-.oo-ui-processDialog-actions-primary {
-  right: 0;
-}
-
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconedElement .oo-ui-iconedElement-icon {
   right: 0.5em;
 }
 }
 
 .oo-ui-processDialog-errors {
-  position: absolute;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 2;
-  display: none;
   padding: 3em 3em 1.5em 3em;
-  overflow-x: hidden;
-  overflow-y: auto;
   text-align: center;
   background-color: rgba(255, 255, 255, 0.9);
 }
   font-size: 1.5em;
 }
 
-.oo-ui-panelLayout {
-  position: absolute;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-}
-
 .oo-ui-panelLayout-padded {
   padding: 1.25em;
 }
index 68d4be6..389fb9f 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (d2451ac748)
+ * OOjs UI v0.1.0-pre (97dbb50137)
  * 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: 2014-07-14T16:49:51Z
+ * Date: 2014-07-16T22:59:48Z
  */
 ( function ( OO ) {
 
@@ -2345,7 +2345,7 @@ OO.ui.WindowManager = function OoUiWindowManager( config ) {
 
        // Properties
        this.factory = config.factory;
-       this.modal = config.modal === undefined ? true : !!config.modal;
+       this.modal = config.modal === undefined || !!config.modal;
        this.windows = {};
        this.opening = null;
        this.opened = null;
@@ -2909,14 +2909,13 @@ OO.ui.WindowManager.prototype.updateWindowSize = function ( win ) {
        }
 
        this.$element.toggleClass( 'oo-ui-windowManager-fullscreen', size === 'full' );
+       this.$element.toggleClass( 'oo-ui-windowManager-floating', size !== 'full' );
        win.setDimensions( sizes[size] );
 
        return this;
 };
 
 /**
- * Process error.
- *
  * @abstract
  * @class
  *
@@ -2931,7 +2930,7 @@ OO.ui.Error = function OoUiElement( message, config ) {
 
        // Properties
        this.message = message instanceof jQuery ? message : String( message );
-       this.recoverable = config.recoverable === undefined ? true : !!config.recoverable;
+       this.recoverable = config.recoverable === undefined || !!config.recoverable;
 };
 
 /* Setup */
@@ -3283,6 +3282,9 @@ OO.ui.ToolGroupFactory.static.getDefaultClasses = function () {
 /**
  * Element with a button.
  *
+ * Buttons are used for controls which can be clicked. They can be configured to use tab indexing
+ * and access keys for accessibility purposes.
+ *
  * @abstract
  * @class
  *
@@ -3902,6 +3904,11 @@ OO.ui.GroupElement.prototype.clearItems = function () {
 /**
  * Element containing an icon.
  *
+ * Icons are graphics, about the size of normal text. They can be used to aid the user in locating
+ * a control or convey information in a more space efficient way. Icons should rarely be used
+ * without labels; such as in a toolbar where space is at a premium or within a context where the
+ * meaning is very clear to the user.
+ *
  * @abstract
  * @class
  *
@@ -3990,6 +3997,11 @@ OO.ui.IconedElement.prototype.getIcon = function () {
 /**
  * Element containing an indicator.
  *
+ * Indicators are graphics, smaller than normal text. They can be used to describe unique status or
+ * behavior. Indicators should only be used in exceptional cases; such as a button that opens a menu
+ * instead of performing an action directly, or an item in a list which has errors that need to be
+ * resolved.
+ *
  * @abstract
  * @class
  *
@@ -4201,7 +4213,7 @@ OO.ui.LabeledElement.prototype.fitLabel = function () {
 };
 
 /**
- * Popuppable element.
+ * Element containing an OO.ui.PopupWidget object.
  *
  * @abstract
  * @class
@@ -4237,6 +4249,9 @@ OO.ui.PopuppableElement.prototype.getPopup = function () {
 /**
  * Element with a title.
  *
+ * Titles are rendered by the browser and are made visible when hovering the element. Titles are
+ * not visible on touch devices.
+ *
  * @abstract
  * @class
  *
@@ -4907,9 +4922,9 @@ OO.ui.ToolGroup.prototype.onMouseDown = function ( e ) {
                        this.getElementDocument().addEventListener(
                                'mouseup', this.onCapturedMouseUpHandler, true
                        );
-                       return false;
                }
        }
+       return false;
 };
 
 /**
@@ -5236,7 +5251,7 @@ OO.ui.MessageDialog.prototype.initialize = function () {
                '$': this.$, 'scrollable': true, 'classes': [ 'oo-ui-messageDialog-container' ]
        } );
        this.text = new OO.ui.PanelLayout( {
-               '$': this.$, 'padded': true, 'classes': [ 'oo-ui-messageDialog-text' ]
+               '$': this.$, 'padded': true, 'expanded': false, 'classes': [ 'oo-ui-messageDialog-text' ]
        } );
        this.message = new OO.ui.LabelWidget( {
                '$': this.$, 'classes': [ 'oo-ui-messageDialog-message' ]
@@ -5545,7 +5560,7 @@ OO.ui.BookletLayout = function OoUiBookletLayout( config ) {
        this.pages = {};
        this.ignoreFocus = false;
        this.stackLayout = new OO.ui.StackLayout( { '$': this.$, 'continuous': !!config.continuous } );
-       this.autoFocus = config.autoFocus === undefined ? true : !!config.autoFocus;
+       this.autoFocus = config.autoFocus === undefined || !!config.autoFocus;
        this.outlineVisible = false;
        this.outlined = !!config.outlined;
        if ( this.outlined ) {
@@ -5961,8 +5976,10 @@ OO.ui.BookletLayout.prototype.updateOutlineWidget = function () {
  * @param {OO.ui.Widget} field Field widget
  * @param {Object} [config] Configuration options
  * @cfg {string} [align='left'] Alignment mode, either 'left', 'right', 'top' or 'inline'
+ * @cfg {string} [help] Explanatory text shown as a '?' icon.
  */
 OO.ui.FieldLayout = function OoUiFieldLayout( field, config ) {
+       var popupButtonWidget;
        // Config initialization
        config = $.extend( { 'align': 'left' }, config );
 
@@ -5970,7 +5987,22 @@ OO.ui.FieldLayout = function OoUiFieldLayout( field, config ) {
        OO.ui.FieldLayout.super.call( this, config );
 
        // Mixin constructors
+       this.$help = this.$( '<div>' );
        OO.ui.LabeledElement.call( this, this.$( '<label>' ), config );
+       if ( config.help ) {
+               popupButtonWidget = new OO.ui.PopupButtonWidget( $.extend(
+                       {
+                               '$': this.$,
+                               'frameless': true,
+                               'icon': 'info',
+                               'title': config.help
+                       },
+                       config,
+                       { label: null }
+               ) );
+               popupButtonWidget.getPopup().$body.append( this.getElementDocument().createTextNode( config.help ) );
+               this.$help = popupButtonWidget.$element;
+       }
 
        // Properties
        this.$field = this.$( '<div>' );
@@ -6041,9 +6073,9 @@ OO.ui.FieldLayout.prototype.setAlignment = function ( value ) {
                }
                // Reorder elements
                if ( value === 'inline' ) {
-                       this.$element.append( this.$field, this.$label );
+                       this.$element.append( this.$field, this.$label, this.$help );
                } else {
-                       this.$element.append( this.$label, this.$field );
+                       this.$element.append( this.$help, this.$label, this.$field );
                }
                // Set classes
                if ( this.align ) {
@@ -6105,7 +6137,7 @@ OO.mixinClass( OO.ui.FieldsetLayout, OO.ui.GroupElement );
 OO.ui.FieldsetLayout.static.tagName = 'div';
 
 /**
- * Form layout.
+ * Layout with an HTML form.
  *
  * @class
  * @extends OO.ui.Layout
@@ -6325,8 +6357,9 @@ OO.ui.GridLayout.prototype.getPanel = function ( x, y ) {
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {boolean} [scrollable] Allow vertical scrolling
- * @cfg {boolean} [padded] Pad the content from the edges
+ * @cfg {boolean} [scrollable=false] Allow vertical scrolling
+ * @cfg {boolean} [padded=false] Pad the content from the edges
+ * @cfg {boolean} [expanded=true] Expand size to fill the entire parent element
  */
 OO.ui.PanelLayout = function OoUiPanelLayout( config ) {
        // Config initialization
@@ -6344,6 +6377,10 @@ OO.ui.PanelLayout = function OoUiPanelLayout( config ) {
        if ( config.padded ) {
                this.$element.addClass( 'oo-ui-panelLayout-padded' );
        }
+
+       if ( config.expanded === undefined || config.expanded ) {
+               this.$element.addClass( 'oo-ui-panelLayout-expanded' );
+       }
 };
 
 /* Setup */
@@ -6956,9 +6993,7 @@ OO.ui.PopupTool.prototype.onUpdateState = function () {
 };
 
 /**
- * Group widget.
- *
- * Mixin for OO.ui.Widget subclasses.
+ * Mixin for OO.ui.Widget subclasses to provide OO.ui.GroupElement.
  *
  * Use together with OO.ui.ItemWidget to make disabled state inheritable.
  *
@@ -7007,7 +7042,10 @@ OO.ui.GroupWidget.prototype.setDisabled = function ( disabled ) {
 };
 
 /**
- * Item widget.
+ * Mixin for widgets used as items in widgets that inherit OO.ui.GroupWidget.
+ *
+ * Item widgets have a reference to a OO.ui.GroupWidget while they are attached to the group. This
+ * allows bidrectional communication.
  *
  * Use together with OO.ui.GroupWidget to make disabled state inheritable.
  *
@@ -7052,10 +7090,9 @@ OO.ui.ItemWidget.prototype.setElementGroup = function ( group ) {
 };
 
 /**
- * Lookup input widget.
+ * Mixin that adds a menu showing suggested values for a text input.
  *
- * Mixin that adds a menu showing suggested values to a text input. Subclasses must handle `select`
- * and `choose` events on #lookupMenu to make use of selections.
+ * Subclasses must handle `select` and `choose` events on #lookupMenu to make use of selections.
  *
  * @class
  * @abstract
@@ -7289,11 +7326,14 @@ OO.ui.LookupInputWidget.prototype.getLookupMenuItemsFromData = function () {
 };
 
 /**
- * Creates an OO.ui.OutlineControlsWidget object.
+ * Set of controls for an OO.ui.OutlineWidget.
  *
- * Use together with OO.ui.OutlineWidget.js
+ * Controls include moving items up and down, removing items, and adding different kinds of items.
  *
  * @class
+ * @extends OO.ui.Widget
+ * @mixins OO.ui.GroupElement
+ * @mixins OO.ui.IconedElement
  *
  * @constructor
  * @param {OO.ui.OutlineWidget} outline Outline to control
@@ -7403,9 +7443,7 @@ OO.ui.OutlineControlsWidget.prototype.onOutlineChange = function () {
 };
 
 /**
- * Width with on and off states.
- *
- * Mixin for widgets with a boolean state.
+ * Mixin for widgets with a boolean on/off state.
  *
  * @abstract
  * @class
@@ -7463,7 +7501,7 @@ OO.ui.ToggleWidget.prototype.setValue = function ( value ) {
 };
 
 /**
- * Container for multiple related buttons.
+ * Group widget for multiple related buttons.
  *
  * Use together with OO.ui.ButtonWidget.
  *
@@ -7495,7 +7533,7 @@ OO.inheritClass( OO.ui.ButtonGroupWidget, OO.ui.Widget );
 OO.mixinClass( OO.ui.ButtonGroupWidget, OO.ui.GroupElement );
 
 /**
- * Button widget.
+ * Generic widget for buttons.
  *
  * @class
  * @extends OO.ui.Widget
@@ -7657,7 +7695,7 @@ OO.ui.ButtonWidget.prototype.setTarget = function ( target ) {
 };
 
 /**
- * ActionButton widget.
+ * Button widget that executes an action and is managed by an OO.ui.ActionSet.
  *
  * @class
  * @extends OO.ui.ButtonWidget
@@ -7951,6 +7989,8 @@ OO.ui.IconWidget.static.tagName = 'span';
 /**
  * Indicator widget.
  *
+ * See OO.ui.IndicatedElement for more information.
+ *
  * @class
  * @extends OO.ui.Widget
  * @mixins OO.ui.IndicatedElement
@@ -7987,6 +8027,9 @@ OO.ui.IndicatorWidget.static.tagName = 'span';
 /**
  * Inline menu of options.
  *
+ * Inline menus provide a control for accessing a menu and compose a menu within the widget, which
+ * can be accessed using the #getMenu method.
+ *
  * Use with OO.ui.MenuOptionWidget.
  *
  * @class
@@ -8014,7 +8057,7 @@ OO.ui.InlineMenuWidget = function OoUiInlineMenuWidget( config ) {
        OO.ui.TitledElement.call( this, this.$label, config );
 
        // Properties
-       this.menu = new OO.ui.MenuWidget( $.extend( { '$': this.$ }, config.menu ) );
+       this.menu = new OO.ui.MenuWidget( $.extend( { '$': this.$, 'widget': this }, config.menu ) );
        this.$handle = this.$( '<span>' );
 
        // Events
@@ -8093,7 +8136,7 @@ OO.ui.InlineMenuWidget.prototype.onClick = function ( e ) {
 };
 
 /**
- * Input widget.
+ * Base class for input widgets.
  *
  * @abstract
  * @class
@@ -8300,7 +8343,7 @@ OO.ui.InputWidget.prototype.blur = function () {
 };
 
 /**
- * Checkbox widget.
+ * Checkbox input widget.
  *
  * @class
  * @extends OO.ui.InputWidget
@@ -8368,7 +8411,7 @@ OO.ui.CheckboxInputWidget.prototype.onEdit = function () {
 };
 
 /**
- * Text input widget.
+ * Input widget with a text field.
  *
  * @class
  * @extends OO.ui.InputWidget
@@ -8635,9 +8678,7 @@ OO.ui.LabelWidget.prototype.onClick = function () {
 };
 
 /**
- * Option widget.
- *
- * Use with OO.ui.SelectWidget.
+ * Generic option widget for use with OO.ui.SelectWidget.
  *
  * @class
  * @extends OO.ui.Widget
@@ -8838,7 +8879,7 @@ OO.ui.OptionWidget.prototype.getData = function () {
 };
 
 /**
- * Option with an option icon and indicator.
+ * Option widget with an option icon and indicator.
  *
  * Use together with OO.ui.SelectWidget.
  *
@@ -8924,9 +8965,7 @@ OO.ui.ButtonOptionWidget.prototype.setSelected = function ( state ) {
 };
 
 /**
- * Menu item widget.
- *
- * Use with OO.ui.MenuWidget.
+ * Item of an OO.ui.MenuWidget.
  *
  * @class
  * @extends OO.ui.DecoratedOptionWidget
@@ -8951,9 +8990,7 @@ OO.ui.MenuItemWidget = function OoUiMenuItemWidget( data, config ) {
 OO.inheritClass( OO.ui.MenuItemWidget, OO.ui.DecoratedOptionWidget );
 
 /**
- * Menu section item widget.
- *
- * Use with OO.ui.MenuWidget.
+ * Section to group one or more items in a OO.ui.MenuWidget.
  *
  * @class
  * @extends OO.ui.DecoratedOptionWidget
@@ -8981,9 +9018,7 @@ OO.ui.MenuSectionItemWidget.static.selectable = false;
 OO.ui.MenuSectionItemWidget.static.highlightable = false;
 
 /**
- * Creates an OO.ui.OutlineItemWidget object.
- *
- * Use with OO.ui.OutlineWidget.
+ * Items for an OO.ui.OutlineWidget.
  *
  * @class
  * @extends OO.ui.DecoratedOptionWidget
@@ -9148,7 +9183,7 @@ OO.ui.PopupWidget = function OoUiPopupWidget( config ) {
        this.autoClose = !!config.autoClose;
        this.$autoCloseIgnore = config.$autoCloseIgnore;
        this.transitionTimeout = null;
-       this.anchor = false;
+       this.anchor = null;
        this.width = config.width !== undefined ? config.width : 320;
        this.height = config.height !== undefined ? config.height : null;
        this.align = config.align || 'center';
@@ -9159,7 +9194,7 @@ OO.ui.PopupWidget = function OoUiPopupWidget( config ) {
        this.closeButton.connect( this, { 'click': 'onCloseButtonClick' } );
 
        // Initialization
-       this.toggleAnchor( config.anchor !== undefined ? !!config.anchor : true );
+       this.toggleAnchor( config.anchor === undefined || config.anchor );
        this.$body.addClass( 'oo-ui-popupWidget-body' );
        this.$anchor.addClass( 'oo-ui-popupWidget-anchor' );
        this.$head
@@ -9381,7 +9416,8 @@ OO.ui.PopupWidget.prototype.updateDimensions = function ( transition ) {
 /**
  * Search widget.
  *
- * Combines query and results selection widgets.
+ * Search widgets combine a query input, placed above, and a results selection widget, placed below.
+ * Results are cleared and populated each time the query is changed.
  *
  * @class
  * @extends OO.ui.Widget
@@ -9533,7 +9569,10 @@ OO.ui.SearchWidget.prototype.getResults = function () {
 };
 
 /**
- * Selection of options.
+ * Generic selection of options.
+ *
+ * Items can contain any rendering, and are uniquely identified by a has of thier data. Any widget
+ * that provides options, from which the user must choose one, should be built on this class.
  *
  * Use together with OO.ui.OptionWidget.
  *
@@ -10077,7 +10116,10 @@ OO.ui.ButtonSelectWidget = function OoUiButtonSelectWidget( config ) {
 OO.inheritClass( OO.ui.ButtonSelectWidget, OO.ui.SelectWidget );
 
 /**
- * Menu widget.
+ * Overlaid menu of options.
+ *
+ * Menus are clipped to the visible viewport. They do not provide a control for opening or closing
+ * the menu.
  *
  * Use together with OO.ui.MenuItemWidget.
  *
@@ -10088,6 +10130,7 @@ OO.inheritClass( OO.ui.ButtonSelectWidget, OO.ui.SelectWidget );
  * @constructor
  * @param {Object} [config] Configuration options
  * @cfg {OO.ui.InputWidget} [input] Input to bind keyboard handlers to
+ * @cfg {OO.ui.Widget} [widget] Widget to bind mouse handlers to
  * @cfg {boolean} [autoHide=true] Hide the menu when the mouse is pressed outside the menu
  */
 OO.ui.MenuWidget = function OoUiMenuWidget( config ) {
@@ -10106,6 +10149,7 @@ OO.ui.MenuWidget = function OoUiMenuWidget( config ) {
        this.newItems = null;
        this.autoHide = config.autoHide === undefined || !!config.autoHide;
        this.$input = config.input ? config.input.$input : null;
+       this.$widget = config.widget ? config.widget.$element : null;
        this.$previousFocus = null;
        this.isolated = !config.input;
        this.onKeyDownHandler = OO.ui.bind( this.onKeyDown, this );
@@ -10130,7 +10174,7 @@ OO.mixinClass( OO.ui.MenuWidget, OO.ui.ClippableElement );
  * @param {jQuery.Event} e Key down event
  */
 OO.ui.MenuWidget.prototype.onDocumentMouseDown = function ( e ) {
-       if ( !$.contains( this.$element[0], e.target ) ) {
+       if ( !$.contains( this.$element[0], e.target ) && ( !this.$widget || !$.contains( this.$widget[0], e.target ) ) ) {
                this.toggle( false );
        }
 };
@@ -10321,6 +10365,10 @@ OO.ui.MenuWidget.prototype.toggle = function ( visible ) {
 /**
  * Menu for a text input widget.
  *
+ * This menu is specially designed to be positioned beneeth the text input widget. Even if the input
+ * is in a different frame, the menu's position is automatically calulated and maintained when the
+ * menu is toggled or the window is resized.
+ *
  * @class
  * @extends OO.ui.MenuWidget
  *
@@ -10415,7 +10463,7 @@ OO.ui.TextInputMenuWidget.prototype.position = function () {
 };
 
 /**
- * Create an OO.ui.OutlineWidget object.
+ * Structured list of items.
  *
  * Use with OO.ui.OutlineItemWidget.
  *
index 8c2b3f1..08dffc7 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (d2451ac748)
+ * OOjs UI v0.1.0-pre (97dbb50137)
  * 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: 2014-07-14T16:49:51Z
+ * Date: 2014-07-16T22:59:48Z
  */
 /* Textures */
 
   line-height: 1em;
 }
 
-.oo-ui-window-frame > .oo-ui-frame {
+> .oo-ui-window-frame {
+  -webkit-box-sizing: border-box;
+     -moz-box-sizing: border-box;
+          box-sizing: border-box;
+}
+
+> .oo-ui-window-frame > .oo-ui-frame {
   width: 100%;
   height: 100%;
 }
   height: 100%;
 }
 
+.oo-ui-windowManager-fullscreen > .oo-ui-dialog > .oo-ui-window-frame {
+  top: 0;
+  bottom: 0;
+  width: 100%;
+  height: 100%;
+}
+
+.oo-ui-messageDialog-actions-horizontal {
+  display: table;
+  width: 100%;
+  table-layout: fixed;
+}
+
+.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
+  display: table-cell;
+  width: 1%;
+}
+
+.oo-ui-messageDialog-actions-vertical {
+  display: block;
+}
+
+.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
+  display: block;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget {
+  position: relative;
+  text-align: center;
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-buttonedElement-button {
+  display: block;
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labeledElement-label {
+  position: relative;
+  top: auto;
+  bottom: auto;
+  display: inline;
+  white-space: nowrap;
+}
+
+.oo-ui-processDialog-location {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+
+.oo-ui-processDialog-title {
+  display: inline;
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget {
+  white-space: nowrap;
+}
+
+.oo-ui-processDialog-actions-safe,
+.oo-ui-processDialog-actions-primary {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+}
+
+.oo-ui-processDialog-actions-safe {
+  left: 0;
+}
+
+.oo-ui-processDialog-actions-primary {
+  right: 0;
+}
+
+.oo-ui-processDialog-errors {
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 2;
+  display: none;
+  padding: 3em 3em 1.5em 3em;
+  overflow-x: hidden;
+  overflow-y: auto;
+}
+
 .oo-ui-buttonedElement > .oo-ui-buttonedElement-button {
   display: inline-block;
   vertical-align: middle;
   padding: 0.5em 0;
 }
 
+.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-buttonedElement-button > .oo-ui-iconedElement-icon {
+  margin-top: 0.25em;
+}
+
+.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
+  z-index: 1;
+}
+
 .oo-ui-fieldsetLayout {
   position: relative;
   padding: 0;
   padding: 0.5em 0;
 }
 
+.oo-ui-panelLayout {
+  position: relative;
+}
+
 .oo-ui-panelLayout-scrollable {
   overflow-y: auto;
 }
 
+.oo-ui-panelLayout-expanded {
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+}
+
 .oo-ui-stackLayout > .oo-ui-panelLayout {
   display: none;
 }
 }
 
 .oo-ui-menuToolGroup .oo-ui-tool-active .oo-ui-tool-link .oo-ui-iconedElement-icon {
-  background-image: /* @embed */ url(images/icons/check.png);
+  background-image: /* @embed */ url(images/icons/check.svg);
 }
 
 .oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {