Update OOjs UI to v0.1.0-pre (44db8292bf)
authorJames D. Forrester <jforrester@wikimedia.org>
Tue, 21 Oct 2014 18:34:02 +0000 (11:34 -0700)
committerJames D. Forrester <jforrester@wikimedia.org>
Tue, 21 Oct 2014 18:34:18 +0000 (11:34 -0700)
New changes:
bcc2927 Display keyboard shortcuts in right gutter of toolbar menus
f73d2b6 Localisation updates from https://translatewiki.net.
42be2b7 Progress bar widget
9833d47 Fix consoles in widgets demo
83645c4 OoUiPHP: Improve theme singleton handling
b4f0bc7 Add composer.json, use it for autoloading

Change-Id: I8770f4359eb912e01371cd6843da6dd61d832c3a

12 files changed:
resources/lib/oojs-ui/i18n/bcc.json [new file with mode: 0644]
resources/lib/oojs-ui/i18n/fr.json
resources/lib/oojs-ui/i18n/ja.json
resources/lib/oojs-ui/i18n/pt.json
resources/lib/oojs-ui/i18n/qqq.json
resources/lib/oojs-ui/oojs-ui-apex.css
resources/lib/oojs-ui/oojs-ui-apex.js
resources/lib/oojs-ui/oojs-ui-apex.svg.css
resources/lib/oojs-ui/oojs-ui-mediawiki.css
resources/lib/oojs-ui/oojs-ui-mediawiki.js
resources/lib/oojs-ui/oojs-ui-mediawiki.svg.css
resources/lib/oojs-ui/oojs-ui.js

diff --git a/resources/lib/oojs-ui/i18n/bcc.json b/resources/lib/oojs-ui/i18n/bcc.json
new file mode 100644 (file)
index 0000000..a340a88
--- /dev/null
@@ -0,0 +1,9 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Baloch Afghanistan"
+               ]
+       },
+       "ooui-dialog-message-accept": "اوکی",
+       "ooui-dialog-process-retry": "پدا کوشش کورتین"
+}
index 8ff5475..def0346 100644 (file)
@@ -33,6 +33,7 @@
        "ooui-outline-control-move-up": "Faire monter l’élément",
        "ooui-outline-control-remove": "Supprimer l’élément",
        "ooui-toolbar-more": "Plus",
+       "ooui-toolgroup-expand": "Plus",
        "ooui-dialog-message-accept": "OK",
        "ooui-dialog-message-reject": "Annuler",
        "ooui-dialog-process-error": "Quelque chose a mal tourné",
index 2ac8dc1..6442342 100644 (file)
@@ -12,6 +12,8 @@
        "ooui-outline-control-move-up": "項目を上に移動させる",
        "ooui-outline-control-remove": "項目を除去",
        "ooui-toolbar-more": "その他",
+       "ooui-toolgroup-expand": "続き",
+       "ooui-toolgroup-collapse": "折り畳む",
        "ooui-dialog-message-accept": "OK",
        "ooui-dialog-message-reject": "キャンセル",
        "ooui-dialog-process-error": "エラーが発生しました…",
index 5cb3e3d..d02b08b 100644 (file)
@@ -17,6 +17,7 @@
        "ooui-outline-control-move-up": "Mover item para cima",
        "ooui-outline-control-remove": "Remover elemento",
        "ooui-toolbar-more": "Mais",
+       "ooui-toolgroup-expand": "Mais",
        "ooui-dialog-message-accept": "Aceitar",
        "ooui-dialog-message-reject": "Cancelar",
        "ooui-dialog-process-error": "Algo correu mal",
index b942077..43da562 100644 (file)
@@ -24,8 +24,8 @@
        "ooui-outline-control-move-up": "Tool tip for a button that moves items in a list up one place",
        "ooui-outline-control-remove": "Tool tip for a button that removes items from a list.\n{{Identical|Remove item}}",
        "ooui-toolbar-more": "Label for the toolbar group that contains a list of all other available tools.\n{{Identical|More}}",
-       "ooui-toolgroup-expand": "Label for the fake tool that expands the full list of tools in a toolbar group\n{{Identical|More}}",
-       "ooui-toolgroup-collapse": "Label for the fake tool that collapses the full list of tools in a toolbar group\n{{Identical|Fewer}}",
+       "ooui-toolgroup-expand": "Label for the fake tool that expands the full list of tools in a toolbar group.\n\nSee also:\n* {{msg-mw|Ooui-toolgroup-collapse}}\n{{Identical|More}}",
+       "ooui-toolgroup-collapse": "Label for the fake tool that collapses the full list of tools in a toolbar group.\n\nSee also:\n* {{msg-mw|Ooui-toolgroup-expand}}\n{{Identical|Fewer}}",
        "ooui-dialog-message-accept": "Default label for the accept button of a message dialog\n{{Identical|OK}}",
        "ooui-dialog-message-reject": "Default label for the reject button of a message dialog\n{{Identical|Cancel}}",
        "ooui-dialog-process-error": "Title for process dialog error description",
index 30f4861..980fde1 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (db065e5a9f)
+ * OOjs UI v0.1.0-pre (44db8292bf)
  * 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-10-20T14:47:55Z
+ * Date: 2014-10-21T18:33:58Z
  */
 /* @noflip */
 .oo-ui-rtl {
        vertical-align: middle;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-       display: inline-block;
+       display: inline-table;
        vertical-align: middle;
+       width: 100%;
+       margin-right: -2.5em;
 }
-.oo-ui-popupToolGroup .oo-ui-tool-accel {
-       display: none;
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-title-text,
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       display: table-cell;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-title-text {
+       width: 100%;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       text-align: right;
+       padding-right: 2.5em;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel:not(:empty) {
+       padding-left: 3em;
 }
 .oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
        min-width: 3.5em;
        left: 0.25em;
        margin-left: 0;
 }
+.oo-ui-progressBarWidget {
+       width: 20em;
+       border: solid 1px #cccccc;
+       border-radius: 0.25em;
+}
+.oo-ui-progressBarWidget-bar {
+       height: 1em;
+       border-right: solid 1px #cccccc;
+       -webkit-transition: width 200ms;
+          -moz-transition: width 200ms;
+           -ms-transition: width 200ms;
+            -o-transition: width 200ms;
+               transition: width 200ms;
+       background: #eeeeee;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#dddddd');
+       background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #ffffff), color-stop(100%, #dddddd));
+       background-image: -webkit-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+       background-image:    -moz-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+       background-image:     -ms-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+       background-image:      -o-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+       background-image:         linear-gradient(top, #ffffff 0%, #dddddd 100%);
+}
+.oo-ui-progressBarWidget.oo-ui-widget-disabled {
+       opacity: 0.6;
+}
 .oo-ui-actionWidget.oo-ui-pendingElement-pending {
        background-image: /* @embed */ url(themes/apex/images/textures/pending.gif);
 }
index 2e4bb78..5727e2b 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (db065e5a9f)
+ * OOjs UI v0.1.0-pre (44db8292bf)
  * 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-10-20T14:47:45Z
+ * Date: 2014-10-21T18:33:49Z
  */
 /* Instantiation */
 
index b93c30c..52e76b3 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (db065e5a9f)
+ * OOjs UI v0.1.0-pre (44db8292bf)
  * 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-10-20T14:47:55Z
+ * Date: 2014-10-21T18:33:58Z
  */
 /* @noflip */
 .oo-ui-rtl {
        vertical-align: middle;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-       display: inline-block;
+       display: inline-table;
        vertical-align: middle;
+       width: 100%;
+       margin-right: -2.5em;
 }
-.oo-ui-popupToolGroup .oo-ui-tool-accel {
-       display: none;
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-title-text,
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       display: table-cell;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-title-text {
+       width: 100%;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       text-align: right;
+       padding-right: 2.5em;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel:not(:empty) {
+       padding-left: 3em;
 }
 .oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
        min-width: 3.5em;
        left: 0.25em;
        margin-left: 0;
 }
+.oo-ui-progressBarWidget {
+       width: 20em;
+       border: solid 1px #cccccc;
+       border-radius: 0.25em;
+}
+.oo-ui-progressBarWidget-bar {
+       height: 1em;
+       border-right: solid 1px #cccccc;
+       -webkit-transition: width 200ms;
+          -moz-transition: width 200ms;
+           -ms-transition: width 200ms;
+            -o-transition: width 200ms;
+               transition: width 200ms;
+       background: #eeeeee;
+       filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#dddddd');
+       background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #ffffff), color-stop(100%, #dddddd));
+       background-image: -webkit-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+       background-image:    -moz-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+       background-image:     -ms-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+       background-image:      -o-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+       background-image:         linear-gradient(top, #ffffff 0%, #dddddd 100%);
+}
+.oo-ui-progressBarWidget.oo-ui-widget-disabled {
+       opacity: 0.6;
+}
 .oo-ui-actionWidget.oo-ui-pendingElement-pending {
        background-image: /* @embed */ url(themes/apex/images/textures/pending.gif);
 }
index 9f57ea9..3940c12 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (db065e5a9f)
+ * OOjs UI v0.1.0-pre (44db8292bf)
  * 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-10-20T14:47:55Z
+ * Date: 2014-10-21T18:33:58Z
  */
 /* @noflip */
 .oo-ui-rtl {
        vertical-align: middle;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-       display: inline-block;
+       display: inline-table;
        vertical-align: middle;
+       width: 100%;
+       margin-right: -2.5em;
 }
-.oo-ui-popupToolGroup .oo-ui-tool-accel {
-       display: none;
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-title-text,
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       display: table-cell;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-title-text {
+       width: 100%;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       text-align: right;
+       padding-right: 2.5em;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel:not(:empty) {
+       padding-left: 3em;
 }
 .oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
        min-width: 3.5em;
 .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
        background-color: #ffffff;
 }
+.oo-ui-progressBarWidget {
+       width: 20em;
+       border: solid 1px #cccccc;
+       border-radius: 0.1em;
+}
+.oo-ui-progressBarWidget-bar {
+       height: 1em;
+       border-right: solid 1px #cccccc;
+       background: #0274ff;
+       -webkit-transition: width 200ms;
+          -moz-transition: width 200ms;
+           -ms-transition: width 200ms;
+            -o-transition: width 200ms;
+               transition: width 200ms;
+}
+.oo-ui-progressBarWidget.oo-ui-widget-disabled {
+       opacity: 0.2;
+}
 .oo-ui-actionWidget.oo-ui-pendingElement-pending {
        background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
 }
index 8da381e..f28c240 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (db065e5a9f)
+ * OOjs UI v0.1.0-pre (44db8292bf)
  * 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-10-20T14:47:45Z
+ * Date: 2014-10-21T18:33:49Z
  */
 /**
  * @class
index 08c2350..2fae450 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (db065e5a9f)
+ * OOjs UI v0.1.0-pre (44db8292bf)
  * 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-10-20T14:47:55Z
+ * Date: 2014-10-21T18:33:58Z
  */
 /* @noflip */
 .oo-ui-rtl {
        vertical-align: middle;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-       display: inline-block;
+       display: inline-table;
        vertical-align: middle;
+       width: 100%;
+       margin-right: -2.5em;
 }
-.oo-ui-popupToolGroup .oo-ui-tool-accel {
-       display: none;
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-title-text,
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       display: table-cell;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-title-text {
+       width: 100%;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel {
+       text-align: right;
+       padding-right: 2.5em;
+}
+.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title .oo-ui-tool-accel:not(:empty) {
+       padding-left: 3em;
 }
 .oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
        min-width: 3.5em;
 .oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
        background-color: #ffffff;
 }
+.oo-ui-progressBarWidget {
+       width: 20em;
+       border: solid 1px #cccccc;
+       border-radius: 0.1em;
+}
+.oo-ui-progressBarWidget-bar {
+       height: 1em;
+       border-right: solid 1px #cccccc;
+       background: #0274ff;
+       -webkit-transition: width 200ms;
+          -moz-transition: width 200ms;
+           -ms-transition: width 200ms;
+            -o-transition: width 200ms;
+               transition: width 200ms;
+}
+.oo-ui-progressBarWidget.oo-ui-widget-disabled {
+       opacity: 0.2;
+}
 .oo-ui-actionWidget.oo-ui-pendingElement-pending {
        background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
 }
index 41ef826..21b7710 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (db065e5a9f)
+ * OOjs UI v0.1.0-pre (44db8292bf)
  * 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-10-20T14:47:45Z
+ * Date: 2014-10-21T18:33:49Z
  */
 ( function ( OO ) {
 
@@ -4971,6 +4971,8 @@ OO.ui.Tool = function OoUiTool( toolGroup, config ) {
        this.toolbar = this.toolGroup.getToolbar();
        this.active = false;
        this.$title = this.$( '<span>' );
+       this.$titleText = this.$( '<span>' );
+       this.$accel = this.$( '<span>' );
        this.$link = this.$( '<a>' );
        this.title = null;
 
@@ -4978,7 +4980,11 @@ OO.ui.Tool = function OoUiTool( toolGroup, config ) {
        this.toolbar.connect( this, { updateState: 'onUpdateState' } );
 
        // Initialization
-       this.$title.addClass( 'oo-ui-tool-title' );
+       this.$titleText.addClass( 'oo-ui-tool-title-text' );
+       this.$accel.addClass( 'oo-ui-tool-accel' );
+       this.$title
+               .addClass( 'oo-ui-tool-title' )
+               .append( this.$titleText, this.$accel );
        this.$link
                .addClass( 'oo-ui-tool-link' )
                .append( this.$icon, this.$title )
@@ -5169,13 +5175,8 @@ OO.ui.Tool.prototype.updateTitle = function () {
                accel = this.toolbar.getToolAccelerator( this.constructor.static.name ),
                tooltipParts = [];
 
-       this.$title.empty()
-               .text( this.title )
-               .append(
-                       this.$( '<span>' )
-                               .addClass( 'oo-ui-tool-accel' )
-                               .text( accel )
-               );
+       this.$titleText.text( this.title );
+       this.$accel.text( accel );
 
        if ( titleTooltips && typeof this.title === 'string' && this.title.length ) {
                tooltipParts.push( this.title );
@@ -10530,6 +10531,71 @@ OO.ui.PopupWidget.prototype.updateDimensions = function ( transition ) {
        return this;
 };
 
+/**
+ * Progress bar widget.
+ *
+ * @class
+ * @extends OO.ui.Widget
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ * @cfg {number} [progress=0] Initial progress
+ */
+OO.ui.ProgressBarWidget = function OoUiProgressBarWidget( config ) {
+       // Config intialization
+       config = config || {};
+
+       // Parent constructor
+       OO.ui.ProgressBarWidget.super.call( this, config );
+
+       // Properties
+       this.$bar = this.$( '<div>' );
+       this.progress = null;
+
+       // Initialization
+       this.setProgress( config.progress || 0 );
+       this.$bar.addClass( 'oo-ui-progressBarWidget-bar');
+       this.$element
+               .attr( {
+                       role: 'progressbar',
+                       'aria-valuemin': 0,
+                       'aria-valuemax': 100
+               } )
+               .addClass( 'oo-ui-progressBarWidget' )
+               .append( this.$bar );
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.ProgressBarWidget, OO.ui.Widget );
+
+/* Static Properties */
+
+OO.ui.ProgressBarWidget.static.tagName = 'div';
+
+/* Methods */
+
+/**
+ * Get progress percent
+ *
+ * @return {number} Progress percent
+ */
+OO.ui.ProgressBarWidget.prototype.getProgress = function () {
+       return this.progress;
+};
+
+/**
+ * Set progress percent
+ *
+ * @param {number} progress Progress percent
+ */
+OO.ui.ProgressBarWidget.prototype.setProgress = function ( progress ) {
+       this.progress = progress;
+
+       this.$bar.css( 'width', this.progress + '%' );
+       this.$element.attr( 'aria-valuenow', this.progress );
+};
+
 /**
  * Search widget.
  *