mw.widgets.TitleWidget: Don't mark optional fields as invalid when empty
authorBartosz Dziewoński <matma.rex@gmail.com>
Fri, 29 Jun 2018 22:49:08 +0000 (00:49 +0200)
committerBartosz Dziewoński <matma.rex@gmail.com>
Fri, 29 Jun 2018 22:54:54 +0000 (00:54 +0200)
Bug: T198402
Change-Id: I0e69f2015894ddf5ad53190740255f1c073fd76a

resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js

index 2bbeabf..2340f9c 100644 (file)
@@ -26,8 +26,8 @@
         * @cfg {boolean} [showMissing=true] Show missing pages
         * @cfg {boolean} [addQueryInput=true] Add exact user's input query to results
         * @cfg {boolean} [excludeCurrentPage] Exclude the current page from suggestions
-        * @cfg {boolean} [validateTitle=true] Whether the input must be a valid title (if set to true,
-        *  the widget will marks itself red for invalid inputs, including an empty query).
+        * @cfg {boolean} [validateTitle=true] Whether the input must be a valid title
+        * @cfg {boolean} [required=false] Whether the input must not be empty
         * @cfg {Object} [cache] Result cache which implements a 'set' method, taking keyed values as an argument
         * @cfg {mw.Api} [api] API object to use, creates a default mw.Api instance if not specified
         */
         * @return {boolean} The query is valid
         */
        mw.widgets.TitleWidget.prototype.isQueryValid = function () {
-               return this.validateTitle ? !!this.getMWTitle() : true;
+               if ( !this.validateTitle ) {
+                       return true;
+               }
+               if ( !this.required && this.getQueryValue() === '' ) {
+                       return true;
+               }
+               return !!this.getMWTitle();
        };
 
 }( jQuery, mediaWiki ) );