Prtksxna has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/268077

Change subject: OO.ui.CapsuleItemWidget: Let user tab through items, edit and 
delete them
......................................................................

OO.ui.CapsuleItemWidget: Let user tab through items, edit and delete them

Bug: T119045
Change-Id: Ib2be6a1b762bc8d015afb2f8172231d2cf30b08a
---
M src/themes/apex/widgets.less
M src/themes/mediawiki/widgets.less
M src/widgets/CapsuleItemWidget.js
3 files changed, 33 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/oojs/ui refs/changes/77/268077/1

diff --git a/src/themes/apex/widgets.less b/src/themes/apex/widgets.less
index e257476..e118d73 100644
--- a/src/themes/apex/widgets.less
+++ b/src/themes/apex/widgets.less
@@ -607,6 +607,11 @@
        color: #555;
        border-radius: 0.25em;
 
+       &:focus {
+               outline: none;
+               border-color: @progressive;
+       }
+
        &.oo-ui-indicatorElement {
                > .oo-ui-labelElement-label {
                        padding-right: @indicator-size + 0.4em;
diff --git a/src/themes/mediawiki/widgets.less 
b/src/themes/mediawiki/widgets.less
index 12d7ab6..3a081c0 100644
--- a/src/themes/mediawiki/widgets.less
+++ b/src/themes/mediawiki/widgets.less
@@ -790,6 +790,11 @@
        color: @color-default;
        border-radius: @border-radius-default;
 
+       &:focus {
+               outline: none;
+               border-color: @progressive;
+       }
+
        &.oo-ui-indicatorElement {
                > .oo-ui-labelElement-label {
                        padding-right: @size-indicator + 0.4em;
diff --git a/src/widgets/CapsuleItemWidget.js b/src/widgets/CapsuleItemWidget.js
index 9cab5ef..6479ff5 100644
--- a/src/widgets/CapsuleItemWidget.js
+++ b/src/widgets/CapsuleItemWidget.js
@@ -7,6 +7,7 @@
  * @mixins OO.ui.mixin.ItemWidget
  * @mixins OO.ui.mixin.LabelElement
  * @mixins OO.ui.mixin.FlaggedElement
+ * @mixins OO.ui.mixin.TabIndexedElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -22,6 +23,7 @@
        OO.ui.mixin.ItemWidget.call( this );
        OO.ui.mixin.LabelElement.call( this, config );
        OO.ui.mixin.FlaggedElement.call( this, config );
+       OO.ui.mixin.TabIndexedElement.call( this, config );
 
        // Events
        this.closeButton = new OO.ui.ButtonWidget( {
@@ -35,7 +37,10 @@
 
        // Initialization
        this.$element
-               .on( 'click', this.onClick.bind( this ) )
+               .on( {
+                       click: this.onClick.bind( this ),
+                       keydown: this.onKeyDown.bind( this )
+               } )
                .addClass( 'oo-ui-capsuleItemWidget' )
                .append( this.$label, this.closeButton.$element );
 };
@@ -46,6 +51,7 @@
 OO.mixinClass( OO.ui.CapsuleItemWidget, OO.ui.mixin.ItemWidget );
 OO.mixinClass( OO.ui.CapsuleItemWidget, OO.ui.mixin.LabelElement );
 OO.mixinClass( OO.ui.CapsuleItemWidget, OO.ui.mixin.FlaggedElement );
+OO.mixinClass( OO.ui.CapsuleItemWidget, OO.ui.mixin.TabIndexedElement );
 
 /* Methods */
 
@@ -71,3 +77,19 @@
                element.editItem( this );
        }
 };
+
+/**
+ * Handle keyDown event for the entire capsule
+ */
+OO.ui.CapsuleItemWidget.prototype.onKeyDown = function ( e ) {
+       var element = this.getElementGroup();
+
+       if ( e.keyCode === OO.ui.Keys.BACKSPACE ) {
+               element.removeItems( [ this ] );
+               element.focus();
+               return false;
+       } else if ( e.keyCode === OO.ui.Keys.ENTER ) {
+               element.editItem( this );
+               return false;
+       }
+};

-- 
To view, visit https://gerrit.wikimedia.org/r/268077
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib2be6a1b762bc8d015afb2f8172231d2cf30b08a
Gerrit-PatchSet: 1
Gerrit-Project: oojs/ui
Gerrit-Branch: master
Gerrit-Owner: Prtksxna <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to