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