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