jenkins-bot has submitted this change and it was merged.

Change subject: Show warning when commit message is empty and preference is set
......................................................................


Show warning when commit message is empty and preference is set

If the commit message is empty we show a warning, and if the warning
is already visible we allow the user to proceed.

Bug: 47752
Change-Id: Idba707abaea8b08a94f7fa4d5bc5b1e35261a572
---
M VisualEditorMessagesModule.php
M modules/ve/init/mw/styles/ve.init.mw.ViewPageTarget.css
M modules/ve/init/mw/targets/ve.init.mw.ViewPageTarget.js
3 files changed, 62 insertions(+), 8 deletions(-)

Approvals:
  Catrope: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/VisualEditorMessagesModule.php b/VisualEditorMessagesModule.php
index 3f8394d..6821be6 100644
--- a/VisualEditorMessagesModule.php
+++ b/VisualEditorMessagesModule.php
@@ -40,11 +40,12 @@
        protected function getMessageInfo() {
                $msgKeys = array();
 
-               // Simple ones
+               // Messages that just require simple parsing
                $msgArgs = array(
                        'minoredit' => array( 'minoredit' ),
                        'watchthis' => array( 'watchthis' ),
                        'visualeditor-report-notice' => array( 
'visualeditor-report-notice' ),
+                       'missingsummary' => array( 'missingsummary' ),
                );
 
                // Override message value
diff --git a/modules/ve/init/mw/styles/ve.init.mw.ViewPageTarget.css 
b/modules/ve/init/mw/styles/ve.init.mw.ViewPageTarget.css
index c0d8c6c..f48ee4f 100644
--- a/modules/ve/init/mw/styles/ve.init.mw.ViewPageTarget.css
+++ b/modules/ve/init/mw/styles/ve.init.mw.ViewPageTarget.css
@@ -222,6 +222,7 @@
        margin-bottom: 1em;
 }
 
+.ve-init-mw-viewPageTarget-saveDialog-warnings,
 .ve-init-mw-viewPageTarget-saveDialog-conflict,
 .ve-init-mw-viewPageTarget-saveDialog-nochanges {
        font-size: 0.8em;
diff --git a/modules/ve/init/mw/targets/ve.init.mw.ViewPageTarget.js 
b/modules/ve/init/mw/targets/ve.init.mw.ViewPageTarget.js
index ef8a44b..3400ae9 100644
--- a/modules/ve/init/mw/targets/ve.init.mw.ViewPageTarget.js
+++ b/modules/ve/init/mw/targets/ve.init.mw.ViewPageTarget.js
@@ -51,6 +51,7 @@
        this.deactivating = false;
        this.scrollTop = null;
        this.currentUri = currentUri;
+       this.warnings = {};
        this.restoring = this.oldid !== mw.config.get( 'wgCurRevisionId' );
        this.section = currentUri.query.vesection || null;
        this.namespaceName = mw.config.get( 'wgCanonicalNamespace' );
@@ -208,6 +209,7 @@
                                        
for="ve-init-mw-viewPageTarget-saveDialog-watchList"></label>\
                                <label 
class="ve-init-mw-viewPageTarget-saveDialog-editSummaryCount"></label>\
                        </div>\
+                       <div 
class="ve-init-mw-viewPageTarget-saveDialog-warnings"></div>\
                        <div 
class="ve-init-mw-viewPageTarget-saveDialog-actions">\
                                <div 
class="ve-init-mw-viewPageTarget-saveDialog-working"></div>\
                        </div>\
@@ -638,13 +640,22 @@
  * @method
  */
 ve.init.mw.ViewPageTarget.prototype.onSaveDialogSaveButtonClick = function () {
-       var doc = this.surface.getModel().getDocument();
-       this.saveDialogSaveButton.setDisabled( true );
-       this.$saveDialogLoadingIcon.show();
-       this.save(
-               ve.dm.converter.getDomFromData( doc.getFullData(), 
doc.getStore(), doc.getInternalList() ),
-               this.getSaveOptions()
-       );
+       var doc = this.surface.getModel().getDocument(),
+               saveOptions = this.getSaveOptions();
+       if (
+               +mw.user.options.get( 'forceeditsummary' ) &&
+               saveOptions.summary === '' &&
+               !this.warnings.missingsummary
+       ) {
+               this.showWarning( 'missingsummary', 
ve.init.platform.getParsedMessage( 'missingsummary' ) );
+       } else {
+               this.saveDialogSaveButton.setDisabled( true );
+               this.$saveDialogLoadingIcon.show();
+               this.save(
+                       ve.dm.converter.getDomFromData( doc.getFullData(), 
doc.getStore(), doc.getInternalList() ),
+                       saveOptions
+               );
+       }
 };
 
 /**
@@ -1368,6 +1379,9 @@
                this.$saveDialog.css( 'width', '' );
        }
 
+       // Warnings should not persist after slide changes
+       this.clearAllWarnings();
+
        // Show the target slide
        $slide.show();
 
@@ -1695,6 +1709,44 @@
 };
 
 /**
+ * Show an inline warning.
+ * @param {string} name Warning's unique name
+ * @param {string} messageHtml Warning message HTML
+ */
+ve.init.mw.ViewPageTarget.prototype.showWarning = function ( name, messageHtml 
) {
+       if ( !this.warnings[name] ) {
+               var warning = $(
+                       '<p 
class="ve-init-mw-viewPageTarget-saveDialog-warning">' + messageHtml + '</p>'
+               );
+               this.$saveDialog
+                       .find( '.ve-init-mw-viewPageTarget-saveDialog-warnings' 
)
+                               .append( warning );
+               this.warnings[name] = warning;
+       }
+};
+
+/**
+ * Remove an inline warning.
+ * @param {string} name Warning's unique name
+ */
+ve.init.mw.ViewPageTarget.prototype.clearWarning = function ( name ) {
+       if ( this.warnings[name] ) {
+               this.warnings[name].remove();
+               delete this.warnings[name];
+       }
+};
+
+/**
+ * Remove all inline warnings.
+ */
+ve.init.mw.ViewPageTarget.prototype.clearAllWarnings = function () {
+       this.$saveDialog
+               .find( '.ve-init-mw-viewPageTarget-saveDialog-warnings' )
+                       .empty();
+       this.warnings = {};
+};
+
+/**
  * Add onbeforunload handler.
  *
  * @method

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Idba707abaea8b08a94f7fa4d5bc5b1e35261a572
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: Esanders <[email protected]>
Gerrit-Reviewer: Siebrand <[email protected]>
Gerrit-Reviewer: Trevor Parscal <[email protected]>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to