Esanders has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/383397 )

Change subject: Use OOUI message dialog for deletion confirmation
......................................................................

Use OOUI message dialog for deletion confirmation

Replaces ~80 lines of dialog-generating JS/CSS with
a few lines of OOUI code.

Change-Id: I4fb6efec4bc7fc8dbde9feb4f08d56702cbca94d
---
M extension.json
M modules/dashboard/ext.cx.translationlist.js
M modules/dashboard/styles/ext.cx.translationlist.less
3 files changed, 24 insertions(+), 106 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ContentTranslation 
refs/changes/97/383397/1

diff --git a/extension.json b/extension.json
index 0b8226d..f26709e 100644
--- a/extension.json
+++ b/extension.json
@@ -909,7 +909,8 @@
                                "ext.cx.widgets.overlay",
                                "jquery.uls.data",
                                "moment",
-                               "oojs-ui.styles.icons-interactions"
+                               "oojs-ui.styles.icons-interactions",
+                               "oojs-ui-windows"
                        ],
                        "messages": [
                                "cx-dashboard-header",
diff --git a/modules/dashboard/ext.cx.translationlist.js 
b/modules/dashboard/ext.cx.translationlist.js
index 32c95b7..1d0981e 100644
--- a/modules/dashboard/ext.cx.translationlist.js
+++ b/modules/dashboard/ext.cx.translationlist.js
@@ -421,20 +421,28 @@
                        e.stopPropagation();
                        translation = $( this ).closest( '.cx-tlitem' ).data( 
'translation' );
 
-                       self.showDiscardConfirmation( translation ).done( 
function () {
-                               self.discardTranslation( translation ).done( 
function ( response ) {
-                                       if ( response.cxdelete.result !== 
'success' ) {
-                                               return;
-                                       }
-                                       translation.status = 'deleted';
-                                       self.markTranslationAsDeleted( 
translation );
-                                       mw.hook( 'mw.cx.translation.deleted' 
).fire(
-                                               translation.sourceLanguage,
-                                               translation.targetLanguage,
-                                               translation.sourceTitle,
-                                               translation.targetTitle
-                                       );
-                               } );
+                       OO.ui.getWindowManager().openWindow( 'message', 
$.extend( {
+                               message: mw.msg( 
'cx-draft-discard-confirmation-message' ),
+                               actions: [
+                                       { action: 'discard', label: mw.msg( 
'cx-draft-discard-button-label' ), flags: [ 'primary', 'destructive' ] },
+                                       { action: 'cancel', label: mw.msg( 
'cx-draft-cancel-button-label' ), flags: 'safe' }
+                               ]
+                       } ) ).closed.then( function ( data ) {
+                               if ( data && data.action === 'discard' ) {
+                                       self.discardTranslation( translation 
).done( function ( response ) {
+                                               if ( response.cxdelete.result 
!== 'success' ) {
+                                                       return;
+                                               }
+                                               translation.status = 'deleted';
+                                               self.markTranslationAsDeleted( 
translation );
+                                               mw.hook( 
'mw.cx.translation.deleted' ).fire(
+                                                       
translation.sourceLanguage,
+                                                       
translation.targetLanguage,
+                                                       translation.sourceTitle,
+                                                       translation.targetTitle
+                                               );
+                                       } );
+                               }
                        } );
                } );
 
@@ -505,64 +513,6 @@
                if ( scrollTop > 0 && scrollTop + windowHeight + 100 > $( 
document ).height() ) {
                        this.loadItems();
                }
-       };
-
-       /**
-        * Show the confirmation dialog for discarding a translation.
-        *
-        * @return {jQuery.Promise}
-        */
-       CXTranslationList.prototype.showDiscardConfirmation = function () {
-               var deferred, $cancelButton, $discardButton, $actions, $message,
-                       overlay, translationList = this;
-
-               deferred = $.Deferred();
-
-               overlay = new mw.cx.widgets.Overlay();
-
-               if ( this.$confirmationDialog ) {
-                       $cancelButton = this.$confirmationDialog.find( 
'.cx-draft-discard-dialog__cancel' );
-                       $discardButton = this.$confirmationDialog.find( 
'.cx-draft-discard-dialog__discard' );
-               } else {
-                       this.$confirmationDialog = $( '<div>' )
-                               .addClass( 'cx-draft-discard-dialog' );
-                       $cancelButton = new OO.ui.ButtonWidget( {
-                               classes: [ 'cx-draft-discard-dialog__cancel' ],
-                               label: mw.msg( 'cx-draft-cancel-button-label' )
-                       } ).$element;
-                       $discardButton = new OO.ui.ButtonWidget( {
-                               classes: [ 'cx-draft-discard-dialog__discard' ],
-                               flags: [ 'primary', 'destructive' ],
-                               label: mw.msg( 'cx-draft-discard-button-label' )
-                       } ).$element;
-                       $actions = $( '<div>' )
-                               .addClass( 'cx-draft-discard-dialog__actions' )
-                               .append( $cancelButton, $discardButton );
-                       $message = $( '<div>' )
-                               .addClass( 'cx-draft-discard-dialog__message' )
-                               .text( mw.msg( 
'cx-draft-discard-confirmation-message' ) );
-
-                       $( 'body' ).append( this.$confirmationDialog.append( 
$message, $actions ) );
-               }
-
-               $cancelButton.one( 'click', function () {
-                       deferred.reject();
-                       translationList.$confirmationDialog.hide();
-                       overlay.hide();
-                       $discardButton.off( 'click' );
-               } );
-
-               $discardButton.one( 'click', function () {
-                       deferred.resolve();
-                       translationList.$confirmationDialog.hide();
-                       overlay.hide();
-                       $cancelButton.off( 'click' );
-               } );
-
-               overlay.show();
-               this.$confirmationDialog.show();
-
-               return deferred.promise();
        };
 
        /**
diff --git a/modules/dashboard/styles/ext.cx.translationlist.less 
b/modules/dashboard/styles/ext.cx.translationlist.less
index 8fdc3a1..65b2db5 100644
--- a/modules/dashboard/styles/ext.cx.translationlist.less
+++ b/modules/dashboard/styles/ext.cx.translationlist.less
@@ -183,39 +183,6 @@
        }
 }
 
-.cx-draft-discard-dialog {
-       .mw-ui-item;
-
-       background-color: #fff;
-       color: @colorGray2;
-
-       position: fixed;
-       top: 50%;
-       left: 50%;
-       .transform( translate( -50%, -50% ) );
-       z-index: 1000;
-
-       min-width: 400px;
-       max-width: 600px;
-       border: 1px solid @colorGray12;
-       border-bottom-width: 3px;
-       border-radius: @borderRadius;
-       padding: 0;
-       .box-shadow( 0 5px 10px rgba( 0, 0, 0, 0.2 ) );
-
-       &__message {
-               padding: 25px;
-               font-size: large;
-       }
-
-       &__actions {
-               .mw-ui-one-whole;
-
-               padding: 20px;
-               text-align: right;
-       }
-}
-
 .cx-translationlist-uls-all-languages {
        border-bottom: 1px solid @colorGray12;
 }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4fb6efec4bc7fc8dbde9feb4f08d56702cbca94d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ContentTranslation
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>

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

Reply via email to