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

Change subject: Show category items as red if they don't have description pages
......................................................................


Show category items as red if they don't have description pages

Also fix some lies I wrote in related code/docs

Bug: 65517
Change-Id: Iafacee7d8e460913d84808fe38ecc8da4a1817c0
---
M VisualEditor.php
M modules/ve-mw/i18n/en.json
M modules/ve-mw/i18n/qqq.json
M modules/ve-mw/init/ve.init.mw.LinkCache.js
M modules/ve-mw/ui/styles/widgets/ve.ui.MWCategoryItemWidget.css
M modules/ve-mw/ui/widgets/ve.ui.MWCategoryItemWidget.js
M modules/ve-mw/ui/widgets/ve.ui.MWCategoryPopupWidget.js
M modules/ve-mw/ui/widgets/ve.ui.MWCategoryWidget.js
8 files changed, 29 insertions(+), 5 deletions(-)

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



diff --git a/VisualEditor.php b/VisualEditor.php
index 6cd6976..4c6741f 100644
--- a/VisualEditor.php
+++ b/VisualEditor.php
@@ -1063,6 +1063,7 @@
                        
'visualeditor-dialog-meta-categories-input-movecategorylabel',
                        
'visualeditor-dialog-meta-categories-input-newcategorylabel',
                        'visualeditor-dialog-meta-categories-input-placeholder',
+                       'visualeditor-dialog-meta-categories-missing',
                        'visualeditor-dialog-meta-categories-options',
                        'visualeditor-dialog-meta-categories-section',
                        'visualeditor-dialog-meta-categories-sortkey-label',
diff --git a/modules/ve-mw/i18n/en.json b/modules/ve-mw/i18n/en.json
index fd1fe87..56adcc7 100644
--- a/modules/ve-mw/i18n/en.json
+++ b/modules/ve-mw/i18n/en.json
@@ -107,6 +107,7 @@
        "visualeditor-dialog-meta-categories-input-movecategorylabel": "Move 
this category here",
        "visualeditor-dialog-meta-categories-input-newcategorylabel": "New 
category",
        "visualeditor-dialog-meta-categories-input-placeholder": "Add a 
category",
+       "visualeditor-dialog-meta-categories-missing": "This category lacks a 
description page.",
        "visualeditor-dialog-meta-categories-options": "Options",
        "visualeditor-dialog-meta-categories-section": "Categories",
        "visualeditor-dialog-meta-categories-sortkey-label": "Sort this page as 
if it is called",
diff --git a/modules/ve-mw/i18n/qqq.json b/modules/ve-mw/i18n/qqq.json
index 0cdf8da..93421e1 100644
--- a/modules/ve-mw/i18n/qqq.json
+++ b/modules/ve-mw/i18n/qqq.json
@@ -116,6 +116,7 @@
        "visualeditor-dialog-meta-categories-input-movecategorylabel": "Label 
for moving a given category or categories to end of list",
        "visualeditor-dialog-meta-categories-input-newcategorylabel": "Label 
for a suggested uncreated category",
        "visualeditor-dialog-meta-categories-input-placeholder": "Placeholder 
text for category input\n{{Identical|Add category}}",
+       "visualeditor-dialog-meta-categories-missing": "Text shown on the 
category popup if the category does not have a description page.",
        "visualeditor-dialog-meta-categories-options": "Label for the category 
options sub-section.\n{{Identical|Options}}",
        "visualeditor-dialog-meta-categories-section": "Label for the 
categories dialog section.\n{{Identical|Category}}",
        "visualeditor-dialog-meta-categories-sortkey-label": 
"[[Image:VisualEditor - Category editing 1.png|thumb|Screenshot of the 
feature]]\nLabel for setting the page's sort key for a given category; the new 
value of the sort key flows immediately from this label – effectively, \"Sort 
this page as if it is called 'Foo'.\"",
diff --git a/modules/ve-mw/init/ve.init.mw.LinkCache.js 
b/modules/ve-mw/init/ve.init.mw.LinkCache.js
index c3ea0dd..5df146f 100644
--- a/modules/ve-mw/init/ve.init.mw.LinkCache.js
+++ b/modules/ve-mw/init/ve.init.mw.LinkCache.js
@@ -86,7 +86,7 @@
        /**
         * Requests information about the title, then adds classes to the 
provided element as appropriate.
         *
-        * @param {string} title Defaults to 'href' attribute of $element
+        * @param {string} title
         * @param {jQuery} $element Element to style
         */
        ve.init.mw.LinkCache.prototype.styleElement = function ( title, 
$element ) {
diff --git a/modules/ve-mw/ui/styles/widgets/ve.ui.MWCategoryItemWidget.css 
b/modules/ve-mw/ui/styles/widgets/ve.ui.MWCategoryItemWidget.css
index 2dc0e57..b3d1d4e 100644
--- a/modules/ve-mw/ui/styles/widgets/ve.ui.MWCategoryItemWidget.css
+++ b/modules/ve-mw/ui/styles/widgets/ve.ui.MWCategoryItemWidget.css
@@ -55,6 +55,10 @@
        color: #333;
 }
 
+.ve-ui-mwCategoryItemWidget-label.new {
+       color: #BA0000;
+}
+
 .ve-ui-mwCategoryItemWidget-button:active {
        border-color: #ddd;
        box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.07);
diff --git a/modules/ve-mw/ui/widgets/ve.ui.MWCategoryItemWidget.js 
b/modules/ve-mw/ui/widgets/ve.ui.MWCategoryItemWidget.js
index 08905e1..91b8aff 100644
--- a/modules/ve-mw/ui/widgets/ve.ui.MWCategoryItemWidget.js
+++ b/modules/ve-mw/ui/widgets/ve.ui.MWCategoryItemWidget.js
@@ -17,6 +17,7 @@
  * @param {Object} [config] Configuration options
  * @cfg {Object} [item] Category item
  * @cfg {boolean} [hidden] Whether the category is hidden or not
+ * @cfg {boolean} [missing] Whether the category's description page is missing
  * @cfg {string} [redirectTo] The name of the category this category's page 
redirects to.
  */
 ve.ui.MWCategoryItemWidget = function VeUiMWCategoryItemWidget( config ) {
@@ -35,6 +36,7 @@
        this.sortKey = config.item.sortKey || '';
        this.metaItem = config.item.metaItem;
        this.isHidden = config.hidden;
+       this.isMissing = config.missing;
        this.menuOpen = false;
        this.$label = this.$( '<span>' );
        this.$categoryItem = this.$( '<div>' );
@@ -49,6 +51,15 @@
        this.$label
                .addClass( 've-ui-mwCategoryItemWidget-label' )
                .text( config.redirectTo || this.value );
+       if ( config.redirectTo ) {
+               ve.init.platform.linkCache.styleElement( mw.Title.newFromText(
+                       config.redirectTo,
+                       mw.config.get( 'wgNamespaceIds' ).category
+               ).getPrefixedText(), this.$label );
+       } else {
+               ve.init.platform.linkCache.styleElement( this.name, this.$label 
);
+       }
+
        this.$categoryItem
                .addClass( 've-ui-mwCategoryItemWidget-button' )
                .append( this.$label, this.$indicator );
diff --git a/modules/ve-mw/ui/widgets/ve.ui.MWCategoryPopupWidget.js 
b/modules/ve-mw/ui/widgets/ve.ui.MWCategoryPopupWidget.js
index 48c13b2..71bce0c 100644
--- a/modules/ve-mw/ui/widgets/ve.ui.MWCategoryPopupWidget.js
+++ b/modules/ve-mw/ui/widgets/ve.ui.MWCategoryPopupWidget.js
@@ -147,6 +147,8 @@
        this.origSortkey = item.sortkey;
        if ( item.isHidden ) {
                this.$hiddenStatus.text( ve.msg( 
'visualeditor-dialog-meta-categories-hidden' ) );
+       } else if ( item.isMissing ) {
+               this.$hiddenStatus.text( ve.msg( 
'visualeditor-dialog-meta-categories-missing' ) );
        } else {
                this.$hiddenStatus.empty();
        }
diff --git a/modules/ve-mw/ui/widgets/ve.ui.MWCategoryWidget.js 
b/modules/ve-mw/ui/widgets/ve.ui.MWCategoryWidget.js
index ae79c94..d64ff11 100644
--- a/modules/ve-mw/ui/widgets/ve.ui.MWCategoryWidget.js
+++ b/modules/ve-mw/ui/widgets/ve.ui.MWCategoryWidget.js
@@ -206,7 +206,7 @@
                if ( result && result.query && result.query.pages ) {
                        $.each( result.query.pages, function ( index, pageInfo 
) {
                                linkCacheUpdate[pageInfo.title] = {
-                                       missing: false,
+                                       missing: 
Object.prototype.hasOwnProperty.call( pageInfo, 'missing' ),
                                        hidden: pageInfo.pageprops &&
                                                
Object.prototype.hasOwnProperty.call( pageInfo.pageprops, 'hiddencat' )
                                };
@@ -239,7 +239,7 @@
                categoryWidget = this;
 
        return this.queryCategoryHiddenStatus( categoryNames ).then( function 
() {
-               var itemTitle, config;
+               var itemTitle, config, cachedData;
                for ( i = 0, len = items.length; i < len; i++ ) {
                        item = items[i];
 
@@ -254,9 +254,13 @@
                                        
categoryWidget.categoryRedirects[itemTitle],
                                        mw.config.get( 'wgNamespaceIds' 
).category
                                ).getMainText();
-                               config.hidden = 
ve.init.platform.linkCache.getCached( 
categoryWidget.categoryRedirects[itemTitle] ).hidden;
+                               cachedData = 
ve.init.platform.linkCache.getCached( 
categoryWidget.categoryRedirects[itemTitle] );
+                               config.hidden = cachedData.hidden;
+                               config.missing = cachedData.missing;
                        } else {
-                               config.hidden = 
ve.init.platform.linkCache.getCached( item.name ).hidden;
+                               cachedData = 
ve.init.platform.linkCache.getCached( item.name );
+                               config.hidden = cachedData.hidden;
+                               config.missing = cachedData.missing;
                        }
                        categoryItem = new ve.ui.MWCategoryItemWidget( config );
                        categoryItem.connect( categoryWidget, {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Iafacee7d8e460913d84808fe38ecc8da4a1817c0
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Alex Monk <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to