Upstream VE's MWCancelConfirmDialog as AbandonEditDialog
authorEd Sanders <esanders@wikimedia.org>
Wed, 31 Oct 2018 13:29:35 +0000 (13:29 +0000)
committerEsanders <esanders@wikimedia.org>
Sun, 4 Nov 2018 18:29:36 +0000 (18:29 +0000)
So this dialog can be shared across editors.

Bug: T192333
Change-Id: Ib581528363a3fe5461529515835bd7fb1ce66e56

languages/i18n/en.json
languages/i18n/qqq.json
resources/Resources.php
resources/src/mediawiki.widgets/mw.widgets.AbandonEditDialog.js [new file with mode: 0644]

index 85fbc15..436c07a 100644 (file)
        "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",
index 4aa58b5..8e029a5 100644 (file)
        "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.",
index 27a84d7..d66491d 100644 (file)
@@ -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 (file)
index 0000000..3244379
--- /dev/null
@@ -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' }
+];