Mooeypoo has uploaded a new change for review.

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

Change subject: [wip] Change mark as read buttons to circles
......................................................................

[wip] Change mark as read buttons to circles

Bug: T126214
Change-Id: I78a93c0545bbe2d7c11a0c62557cd2e97e9d3866
---
M Resources.php
M modules/styles/mw.echo.ui.NotificationItemWidget.less
A modules/styles/mw.echo.ui.ToggleReadCircleButtonWidget.less
M modules/ui/mw.echo.ui.NotificationItemWidget.js
A modules/ui/mw.echo.ui.ToggleReadCircleButtonWidget.js
5 files changed, 88 insertions(+), 12 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Echo 
refs/changes/62/295262/1

diff --git a/Resources.php b/Resources.php
index e815aea..73b6ed9 100644
--- a/Resources.php
+++ b/Resources.php
@@ -70,6 +70,7 @@
                        'ui/mw.echo.ui.SubGroupListWidget.js',
                        'ui/mw.echo.ui.NotificationsListWidget.js',
                        'ui/mw.echo.ui.PlaceholderItemWidget.js',
+                       'ui/mw.echo.ui.ToggleReadCircleButtonWidget.js',
                        'ui/mw.echo.ui.NotificationItemWidget.js',
                        'ui/mw.echo.ui.SingleNotificationItemWidget.js',
                        'ui/mw.echo.ui.CrossWikiNotificationItemWidget.js',
@@ -84,6 +85,7 @@
                        'styles/mw.echo.ui.overlay.less',
                        'styles/mw.echo.ui.icons.less',
                        'styles/mw.echo.ui.NotificationItemWidget.less',
+                       'styles/mw.echo.ui.ToggleReadCircleButtonWidget.less',
                        
'styles/mw.echo.ui.CrossWikiNotificationItemWidget.less',
                        'styles/mw.echo.ui.NotificationsListWidget.less',
                        'styles/mw.echo.ui.PlaceholderItemWidget.less',
diff --git a/modules/styles/mw.echo.ui.NotificationItemWidget.less 
b/modules/styles/mw.echo.ui.NotificationItemWidget.less
index 82b02ca..402e2dc 100644
--- a/modules/styles/mw.echo.ui.NotificationItemWidget.less
+++ b/modules/styles/mw.echo.ui.NotificationItemWidget.less
@@ -166,11 +166,10 @@
        }
 
        &-markAsReadButton {
-               .mw-echo-ui-mixin-hover-opacity;
                float: right;
                font-size: 1em;
-               margin-top: -0.5em;
-               margin-right: -0.4em;
+               margin-top: -2em;
+               margin-right: -1.4em;
                padding: 0;
 
                .mw-echo-ui-notificationItemWidget-bundle & {
diff --git a/modules/styles/mw.echo.ui.ToggleReadCircleButtonWidget.less 
b/modules/styles/mw.echo.ui.ToggleReadCircleButtonWidget.less
new file mode 100644
index 0000000..b3d47f4
--- /dev/null
+++ b/modules/styles/mw.echo.ui.ToggleReadCircleButtonWidget.less
@@ -0,0 +1,28 @@
+.mw-echo-ui-toggleReadCircleButtonWidget {
+       &-circle {
+               border-radius: 50%;
+               width: 10px;
+               height: 10px;
+               margin: 20px;
+
+               // Mark as read
+               background-color: #347BFF;
+               border: 0;
+
+               // Mark as unread
+               &-unread {
+                       background-color: #eee;
+                       border: 1px solid #bbb;
+               }
+       }
+
+       &:hover .mw-echo-ui-toggleReadCircleButtonWidget-circle {
+               // Mark as read
+               background-color: #ddd;
+
+               // Mark as unread
+               &-unread {
+                       background-color: #ddd;
+               }
+       }
+}
diff --git a/modules/ui/mw.echo.ui.NotificationItemWidget.js 
b/modules/ui/mw.echo.ui.NotificationItemWidget.js
index 1be5349..f28be4d 100644
--- a/modules/ui/mw.echo.ui.NotificationItemWidget.js
+++ b/modules/ui/mw.echo.ui.NotificationItemWidget.js
@@ -35,11 +35,11 @@
                        .addClass( 
'mw-echo-ui-notificationItemWidget-content-actions' );
 
                // Mark as read
-               this.markAsReadButton = new OO.ui.ButtonWidget( {
-                       icon: 'close',
+               this.markAsReadButton = new 
mw.echo.ui.ToggleReadCircleButtonWidget( {
                        framed: false,
                        title: mw.msg( 'echo-notification-markasread-tooltip' ),
-                       classes: [ 
'mw-echo-ui-notificationItemWidget-markAsReadButton' ]
+                       classes: [ 
'mw-echo-ui-notificationItemWidget-markAsReadButton' ],
+                       markAsRead: !this.model.isRead()
                } );
 
                // Icon
@@ -219,7 +219,7 @@
         * Respond to mark as read button click
         */
        mw.echo.ui.NotificationItemWidget.prototype.onMarkAsReadButtonClick = 
function () {
-               this.markRead( true );
+               this.markRead( !this.model.isRead() );
        };
 
        /**
@@ -289,18 +289,18 @@
         * Toggle the function of the 'mark as read' secondary button from 
'mark as read' to
         * 'mark as unread' and update the visibility of the primary 'mark as 
read' X button.
         *
-        * @param {boolean} [show] Show the 'mark as read' buttons
+        * @param {boolean} [isMarkAsRead] Show the 'mark as read' buttons
         *  - "false" means that the item is marked as read, whereby we show 
the user 'mark unread'
         *    and hide the primary 'x' button
         *  - "true" means that the item is marked as unread and we show the 
user 'mark as read'
         *    primary and secondary buttons.
         */
-       mw.echo.ui.NotificationItemWidget.prototype.toggleMarkAsReadButtons = 
function ( show ) {
-               show = show !== undefined ? show : !this.model.isRead();
+       mw.echo.ui.NotificationItemWidget.prototype.toggleMarkAsReadButtons = 
function ( isMarkAsRead ) {
+               isMarkAsRead = isMarkAsRead !== undefined ? isMarkAsRead : 
!this.model.isRead();
 
-               this.markAsReadButton.toggle( show );
+               this.markAsReadButton.toggleState( isMarkAsRead );
 
-               if ( show ) {
+               if ( isMarkAsRead ) {
                        // Mark read
                        this.toggleReadSecondaryButton.setLabel( mw.msg( 
'echo-notification-markasread' ) );
                        this.toggleReadSecondaryButton.setIcon( 'check' );
diff --git a/modules/ui/mw.echo.ui.ToggleReadCircleButtonWidget.js 
b/modules/ui/mw.echo.ui.ToggleReadCircleButtonWidget.js
new file mode 100644
index 0000000..4f90517
--- /dev/null
+++ b/modules/ui/mw.echo.ui.ToggleReadCircleButtonWidget.js
@@ -0,0 +1,47 @@
+( function ( mw, $ ) {
+       /**
+        *
+        * @class
+        * @abstract
+        * @extends OO.ui.ButtonWidget
+        *
+        * @constructor
+        * @param {Object} [config] Configuration options
+        * @cfg {boolean} [markAsRead=true] Display mark as read state. If 
false, the button displays
+        *  mark as unread state.
+        */
+       mw.echo.ui.ToggleReadCircleButtonWidget = function 
MwEchoUiToggleReadCircleButtonWidget( config ) {
+               config = config || {};
+
+               // Parent
+               mw.echo.ui.ToggleReadCircleButtonWidget.parent.call( this, 
config );
+
+               this.$circle = $( '<div>' )
+                       .addClass( 
'mw-echo-ui-toggleReadCircleButtonWidget-circle' );
+
+               this.toggleState( config.markAsRead === undefined ? true : 
!!config.markAsRead );
+
+               this.$element
+                       .addClass( 'mw-echo-ui-toggleReadCircleButtonWidget' )
+                       .append( this.$circle );
+       };
+
+       /* Initialization */
+
+       OO.inheritClass( mw.echo.ui.ToggleReadCircleButtonWidget, 
OO.ui.ButtonWidget );
+
+       /* Methods */
+
+       mw.echo.ui.ToggleReadCircleButtonWidget.prototype.toggleState = 
function ( isMarkAsRead ) {
+               isMarkAsRead = isMarkAsRead === undefined ? !this.markAsRead : 
!!isMarkAsRead;
+
+               this.markAsRead = isMarkAsRead;
+
+               this.$circle.toggleClass( 
'mw-echo-ui-toggleReadCircleButtonWidget-circle-unread', !this.markAsRead );
+               this.setTitle(
+                       this.markAsRead ?
+                               mw.msg( 'echo-notification-markasread' ) :
+                               mw.msg( 'echo-notification-markasunread' )
+               );
+       };
+} )( mediaWiki, jQuery );

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I78a93c0545bbe2d7c11a0c62557cd2e97e9d3866
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Echo
Gerrit-Branch: master
Gerrit-Owner: Mooeypoo <mor...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to