From b7d2a80959be62f8848db3bf8f8ac42d076e651f Mon Sep 17 00:00:00 2001 From: Ed Sanders Date: Wed, 31 Oct 2018 13:29:35 +0000 Subject: [PATCH] Upstream VE's MWCancelConfirmDialog as AbandonEditDialog So this dialog can be shared across editors. Bug: T192333 Change-Id: Ib581528363a3fe5461529515835bd7fb1ce66e56 --- languages/i18n/en.json | 4 ++ languages/i18n/qqq.json | 4 ++ resources/Resources.php | 15 +++++++ .../mw.widgets.AbandonEditDialog.js | 39 +++++++++++++++++++ 4 files changed, 62 insertions(+) create mode 100644 resources/src/mediawiki.widgets/mw.widgets.AbandonEditDialog.js diff --git a/languages/i18n/en.json b/languages/i18n/en.json index 85fbc15b3e..436c07ab18 100644 --- a/languages/i18n/en.json +++ b/languages/i18n/en.json @@ -4357,6 +4357,10 @@ "special-characters-title-endash": "en dash", "special-characters-title-emdash": "em dash", "special-characters-title-minus": "minus sign", + "visualeditor-viewpage-savewarning": "Are you sure you want to leave editing mode without saving first?", + "visualeditor-viewpage-savewarning-discard": "Discard edits", + "visualeditor-viewpage-savewarning-keep": "Continue editing", + "visualeditor-viewpage-savewarning-title": "Are you sure?", "mw-widgets-dateinput-no-date": "No date selected", "mw-widgets-dateinput-placeholder-day": "YYYY-MM-DD", "mw-widgets-dateinput-placeholder-month": "YYYY-MM", diff --git a/languages/i18n/qqq.json b/languages/i18n/qqq.json index 4aa58b5744..8e029a5e99 100644 --- a/languages/i18n/qqq.json +++ b/languages/i18n/qqq.json @@ -4559,6 +4559,10 @@ "special-characters-title-endash": "Title tooltip for the en dash character (–); See https://en.wikipedia.org/wiki/Dash", "special-characters-title-emdash": "Title tooltip for the em dash character (—); See https://en.wikipedia.org/wiki/Dash", "special-characters-title-minus": "Title tooltip for the minus sign character (−), not to be confused with a hyphen", + "visualeditor-viewpage-savewarning": "Text shown when the user tries to leave the editor without saving their changes.\n\nFollowed by the following buttons:\n* {{msg-mw|visualeditor-viewpage-savewarning-discard}}\n* {{msg-mw|visualeditor-viewpage-savewarning-keep}}", + "visualeditor-viewpage-savewarning-discard": "Text shown on the button which closes an editor and discards changes when the user confirms that they want to leave the editor.\n\nPreceded by the prompt {{msg-mw|visualeditor-viewpage-savewarning}}.\n\nFollowed by the button {{msg-mw|visualeditor-viewpage-savewarning-keep}}.", + "visualeditor-viewpage-savewarning-keep": "Text shown on the button which does not do anything when the user decides that they do not want to leave the editor.\n\nPreceded by the button {{msg-mw|visualeditor-viewpage-savewarning-discard}}.", + "visualeditor-viewpage-savewarning-title": "Title of the dialog shown when the user tries to leave the editor without saving their changes.\n\nFollowed by the following buttons:\n* {{msg-mw|visualeditor-viewpage-savewarning-discard}}\n* {{msg-mw|visualeditor-viewpage-savewarning-keep}}\n{{Identical|Are you sure?}}", "mw-widgets-dateinput-no-date": "Label of a date input field when no date has been selected.", "mw-widgets-dateinput-placeholder-day": "[[File:DateInputWidget active, empty.png|frame|Screenshot]]\nPlaceholder displayed in a date input field when it's empty, representing a date format with 4 digits for year, 2 digits for month, and 2 digits for day, separated with hyphens. This should be uppercase, if possible, and must not include any additional explanations. If there is no good way to translate it, make this message blank.", "mw-widgets-dateinput-placeholder-month": "Placeholder displayed in a date input field when it's empty, representing a date format with 4 digits for year and 2 digits for month, separated with hyphens (without a day). This should be uppercase, if possible, and must not include any additional explanations. If there is no good way to translate it, make this message blank.", diff --git a/resources/Resources.php b/resources/Resources.php index 27a84d7931..d66491d907 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -2478,6 +2478,21 @@ return [ ], 'targets' => [ 'desktop', 'mobile' ], ], + 'mediawiki.widgets.AbandonEditDialog' => [ + 'scripts' => [ + 'resources/src/mediawiki.widgets/mw.widgets.AbandonEditDialog.js', + ], + 'messages' => [ + 'visualeditor-viewpage-savewarning', + 'visualeditor-viewpage-savewarning-discard', + 'visualeditor-viewpage-savewarning-keep', + 'visualeditor-viewpage-savewarning-title', + ], + 'dependencies' => [ + 'oojs-ui-windows', + ], + 'targets' => [ 'desktop', 'mobile' ], + ], 'mediawiki.widgets.DateInputWidget' => [ 'scripts' => [ 'resources/src/mediawiki.widgets/mw.widgets.CalendarWidget.js', diff --git a/resources/src/mediawiki.widgets/mw.widgets.AbandonEditDialog.js b/resources/src/mediawiki.widgets/mw.widgets.AbandonEditDialog.js new file mode 100644 index 0000000000..3244379874 --- /dev/null +++ b/resources/src/mediawiki.widgets/mw.widgets.AbandonEditDialog.js @@ -0,0 +1,39 @@ +/*! + * MediaWiki Widgets - AbandonEditDialog class. + * + * @copyright 2011-2018 VisualEditor Team and others; see AUTHORS.txt + * @license The MIT License (MIT); see LICENSE.txt + */ + +/** + * Confirm dialog shown when the users is leaving an editor without saving + * + * @class + * @extends OO.ui.MessageDialog + * + * @constructor + * @param {Object} [config] Configuration options + */ +mw.widgets.AbandonEditDialog = function VeUiAbandonEditDialog( config ) { + // Parent constructor + mw.widgets.AbandonEditDialog.super.call( this, config ); +}; + +/* Inheritance */ + +OO.inheritClass( mw.widgets.AbandonEditDialog, OO.ui.MessageDialog ); + +/* Static Properties */ + +mw.widgets.AbandonEditDialog.static.name = 'abandonedit'; + +mw.widgets.AbandonEditDialog.static.title = + OO.ui.deferMsg( 'visualeditor-viewpage-savewarning-title' ); + +mw.widgets.AbandonEditDialog.static.message = + OO.ui.deferMsg( 'visualeditor-viewpage-savewarning' ); + +mw.widgets.AbandonEditDialog.static.actions = [ + { action: 'discard', label: OO.ui.deferMsg( 'visualeditor-viewpage-savewarning-discard' ), flags: [ 'primary', 'destructive' ] }, + { action: 'keep', label: OO.ui.deferMsg( 'visualeditor-viewpage-savewarning-keep' ), flags: 'safe' } +]; -- 2.20.1