[MediaWiki-commits] [Gerrit] Adds a beta feature for Other project sidebar - change (mediawiki...Wikibase)
Hoo man has uploaded a new change for review. https://gerrit.wikimedia.org/r/150197 Change subject: Adds a beta feature for Other project sidebar .. Adds a beta feature for Other project sidebar It introduce an optional dependance to BetaFeature extension Adds two boolean configuration options: otherProjectsLinksBeta to activate the beta feature otherProjectsLinksByDefault to activate the other project sidebar by default Relies on change I170e7253825c8dab5cad38e6b0ba59f28572efbf in MW core Expands change I93767d3db76f694f2d37bbf2f2fecaf7643f4e3b in Wikimedia config Change-Id: Ib4014253016db1c3d6b624be9ebbdaf452115145 (cherry picked from commit 0b6a5bf6dca9c2986511947283e3d57aa6e13738) --- M client/WikibaseClient.hooks.php M client/WikibaseClient.php M client/config/WikibaseClient.default.php M client/i18n/en.json M client/i18n/qqq.json A client/resources/images/wb-otherprojects-beta-ltr.png A client/resources/images/wb-otherprojects-beta-ltr.svg A client/resources/images/wb-otherprojects-beta-rtl.png 8 files changed, 119 insertions(+), 3 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/97/150197/1 diff --git a/client/WikibaseClient.hooks.php b/client/WikibaseClient.hooks.php index d91fc47..26372b4 100644 --- a/client/WikibaseClient.hooks.php +++ b/client/WikibaseClient.hooks.php @@ -4,6 +4,7 @@ use Action; use BaseTemplate; +use BetaFeatures; use ChangesList; use FormOptions; use IContextSource; @@ -621,7 +622,10 @@ $settings = WikibaseClient::getDefaultInstance()-getSettings(); $siteIdsToOutput = $settings-getSetting( 'otherProjectsLinks' ); - if ( count( $siteIdsToOutput ) === 0 ) { + if ( + !$settings-getSetting( 'otherProjectsLinksBeta' ) !$settings-getSetting( 'otherProjectsLinksByDefault' ) || + count( $siteIdsToOutput ) === 0 + ) { return true; } @@ -641,6 +645,65 @@ } /** +* Filters the display of other project sidebar according to the beta feature +* +* @since 0.5 +* +* @param Skin $skin +* @param array $sidebar +* +* @return bool +*/ + public static function onSidebarBeforeOutput( Skin $skin, array $sidebar ) { + $settings = WikibaseClient::getDefaultInstance()-getSettings(); + if ( + $settings-getSetting( 'otherProjectsLinksBeta' ) + !$settings-getSetting( 'otherProjectsLinksByDefault' ) + class_exists( '\BetaFeatures' ) + !BetaFeatures::isFeatureEnabled( $skin-getUser(), 'wikibase-otherprojects' ) + ) { + unset( $sidebar['wikibase-otherprojects'] ); + } + + return true; + } + + /** +* Initialise beta feature preferences +* +* @since 0.5 +* +* @param User $user +* @param array $betaPreferences +* +* @return bool +*/ + public static function onGetBetaFeaturePreferences( User $user, array $betaPreferences ) { + global $wgExtensionAssetsPath; + + $remoteExtPathParts = explode( DIRECTORY_SEPARATOR . 'extensions' . DIRECTORY_SEPARATOR , __DIR__, 2 ); + $assetsPath = $wgExtensionAssetsPath . '/' . $remoteExtPathParts[1]; + + $settings = WikibaseClient::getDefaultInstance()-getSettings(); + if ( !$settings-getSetting( 'otherProjectsLinksBeta' ) || $settings-getSetting( 'otherProjectsLinksByDefault' ) ) { + return true; + } + + $betaPreferences['wikibase-otherprojects'] = array( + 'label-message' = 'wikibase-otherprojects-beta-message', + 'desc-message' = 'wikibase-otherprojects-beta-description', + 'screenshot' = array( + 'ltr' = $assetsPath . '/resources/images/wb-otherprojects-beta-ltr.png', + 'rtl' = $assetsPath . '/resources/images/wb-otherprojects-beta-rtl.png' + ), + 'info-link' = 'https://www.mediawiki.org/wiki/Wikibase/Beta_Features/Other_projects_sidebar', + 'discussion-link' = 'https://www.mediawiki.org/wiki/Talk:Wikibase/Beta_Features/Other_projects_sidebar' + ); + + return true; + } + + /** * Adds a toggle for showing/hiding Wikidata entries in recent changes * * @param SpecialRecentChanges $special diff --git a/client/WikibaseClient.php b/client/WikibaseClient.php index 4efa0c7..5f775b8 100644 --- a/client/WikibaseClient.php +++
[MediaWiki-commits] [Gerrit] Adds a beta feature for Other project sidebar - change (mediawiki...Wikibase)
jenkins-bot has submitted this change and it was merged. Change subject: Adds a beta feature for Other project sidebar .. Adds a beta feature for Other project sidebar It introduce an optional dependance to BetaFeature extension Adds two boolean configuration options: otherProjectsLinksBeta to activate the beta feature otherProjectsLinksByDefault to activate the other project sidebar by default Relies on change I170e7253825c8dab5cad38e6b0ba59f28572efbf in MW core Expands change I93767d3db76f694f2d37bbf2f2fecaf7643f4e3b in Wikimedia config Change-Id: Ib4014253016db1c3d6b624be9ebbdaf452115145 (cherry picked from commit 0b6a5bf6dca9c2986511947283e3d57aa6e13738) --- M client/WikibaseClient.hooks.php M client/WikibaseClient.php M client/config/WikibaseClient.default.php M client/i18n/en.json M client/i18n/qqq.json A client/resources/images/wb-otherprojects-beta-ltr.png A client/resources/images/wb-otherprojects-beta-ltr.svg A client/resources/images/wb-otherprojects-beta-rtl.png 8 files changed, 119 insertions(+), 3 deletions(-) Approvals: Hoo man: Looks good to me, approved WikidataJenkins: Verified jenkins-bot: Verified diff --git a/client/WikibaseClient.hooks.php b/client/WikibaseClient.hooks.php index d91fc47..26372b4 100644 --- a/client/WikibaseClient.hooks.php +++ b/client/WikibaseClient.hooks.php @@ -4,6 +4,7 @@ use Action; use BaseTemplate; +use BetaFeatures; use ChangesList; use FormOptions; use IContextSource; @@ -621,7 +622,10 @@ $settings = WikibaseClient::getDefaultInstance()-getSettings(); $siteIdsToOutput = $settings-getSetting( 'otherProjectsLinks' ); - if ( count( $siteIdsToOutput ) === 0 ) { + if ( + !$settings-getSetting( 'otherProjectsLinksBeta' ) !$settings-getSetting( 'otherProjectsLinksByDefault' ) || + count( $siteIdsToOutput ) === 0 + ) { return true; } @@ -641,6 +645,65 @@ } /** +* Filters the display of other project sidebar according to the beta feature +* +* @since 0.5 +* +* @param Skin $skin +* @param array $sidebar +* +* @return bool +*/ + public static function onSidebarBeforeOutput( Skin $skin, array $sidebar ) { + $settings = WikibaseClient::getDefaultInstance()-getSettings(); + if ( + $settings-getSetting( 'otherProjectsLinksBeta' ) + !$settings-getSetting( 'otherProjectsLinksByDefault' ) + class_exists( '\BetaFeatures' ) + !BetaFeatures::isFeatureEnabled( $skin-getUser(), 'wikibase-otherprojects' ) + ) { + unset( $sidebar['wikibase-otherprojects'] ); + } + + return true; + } + + /** +* Initialise beta feature preferences +* +* @since 0.5 +* +* @param User $user +* @param array $betaPreferences +* +* @return bool +*/ + public static function onGetBetaFeaturePreferences( User $user, array $betaPreferences ) { + global $wgExtensionAssetsPath; + + $remoteExtPathParts = explode( DIRECTORY_SEPARATOR . 'extensions' . DIRECTORY_SEPARATOR , __DIR__, 2 ); + $assetsPath = $wgExtensionAssetsPath . '/' . $remoteExtPathParts[1]; + + $settings = WikibaseClient::getDefaultInstance()-getSettings(); + if ( !$settings-getSetting( 'otherProjectsLinksBeta' ) || $settings-getSetting( 'otherProjectsLinksByDefault' ) ) { + return true; + } + + $betaPreferences['wikibase-otherprojects'] = array( + 'label-message' = 'wikibase-otherprojects-beta-message', + 'desc-message' = 'wikibase-otherprojects-beta-description', + 'screenshot' = array( + 'ltr' = $assetsPath . '/resources/images/wb-otherprojects-beta-ltr.png', + 'rtl' = $assetsPath . '/resources/images/wb-otherprojects-beta-rtl.png' + ), + 'info-link' = 'https://www.mediawiki.org/wiki/Wikibase/Beta_Features/Other_projects_sidebar', + 'discussion-link' = 'https://www.mediawiki.org/wiki/Talk:Wikibase/Beta_Features/Other_projects_sidebar' + ); + + return true; + } + + /** * Adds a toggle for showing/hiding Wikidata entries in recent changes * * @param SpecialRecentChanges $special diff --git a/client/WikibaseClient.php b/client/WikibaseClient.php index 4efa0c7..5f775b8 100644 --- a/client/WikibaseClient.php +++ b/client/WikibaseClient.php @@ -111,6
[MediaWiki-commits] [Gerrit] Adds a beta feature for Other project sidebar - change (mediawiki...Wikibase)
Hoo man has submitted this change and it was merged. Change subject: Adds a beta feature for Other project sidebar .. Adds a beta feature for Other project sidebar It introduce an optional dependance to BetaFeature extension Adds two boolean configuration options: otherProjectsLinksBeta to activate the beta feature otherProjectsLinksByDefault to activate the other project sidebar by default Relies on change I170e7253825c8dab5cad38e6b0ba59f28572efbf in MW core Expands change I93767d3db76f694f2d37bbf2f2fecaf7643f4e3b in Wikimedia config Change-Id: Ib4014253016db1c3d6b624be9ebbdaf452115145 --- M client/WikibaseClient.hooks.php M client/WikibaseClient.php M client/config/WikibaseClient.default.php M client/i18n/en.json M client/i18n/qqq.json A client/resources/images/wb-otherprojects-beta-ltr.png A client/resources/images/wb-otherprojects-beta-ltr.svg A client/resources/images/wb-otherprojects-beta-rtl.png 8 files changed, 119 insertions(+), 3 deletions(-) Approvals: Hoo man: Looks good to me, approved WikidataJenkins: Verified Siebrand: Looks good to me, but someone else must approve diff --git a/client/WikibaseClient.hooks.php b/client/WikibaseClient.hooks.php index d91fc47..26372b4 100644 --- a/client/WikibaseClient.hooks.php +++ b/client/WikibaseClient.hooks.php @@ -4,6 +4,7 @@ use Action; use BaseTemplate; +use BetaFeatures; use ChangesList; use FormOptions; use IContextSource; @@ -621,7 +622,10 @@ $settings = WikibaseClient::getDefaultInstance()-getSettings(); $siteIdsToOutput = $settings-getSetting( 'otherProjectsLinks' ); - if ( count( $siteIdsToOutput ) === 0 ) { + if ( + !$settings-getSetting( 'otherProjectsLinksBeta' ) !$settings-getSetting( 'otherProjectsLinksByDefault' ) || + count( $siteIdsToOutput ) === 0 + ) { return true; } @@ -641,6 +645,65 @@ } /** +* Filters the display of other project sidebar according to the beta feature +* +* @since 0.5 +* +* @param Skin $skin +* @param array $sidebar +* +* @return bool +*/ + public static function onSidebarBeforeOutput( Skin $skin, array $sidebar ) { + $settings = WikibaseClient::getDefaultInstance()-getSettings(); + if ( + $settings-getSetting( 'otherProjectsLinksBeta' ) + !$settings-getSetting( 'otherProjectsLinksByDefault' ) + class_exists( '\BetaFeatures' ) + !BetaFeatures::isFeatureEnabled( $skin-getUser(), 'wikibase-otherprojects' ) + ) { + unset( $sidebar['wikibase-otherprojects'] ); + } + + return true; + } + + /** +* Initialise beta feature preferences +* +* @since 0.5 +* +* @param User $user +* @param array $betaPreferences +* +* @return bool +*/ + public static function onGetBetaFeaturePreferences( User $user, array $betaPreferences ) { + global $wgExtensionAssetsPath; + + $remoteExtPathParts = explode( DIRECTORY_SEPARATOR . 'extensions' . DIRECTORY_SEPARATOR , __DIR__, 2 ); + $assetsPath = $wgExtensionAssetsPath . '/' . $remoteExtPathParts[1]; + + $settings = WikibaseClient::getDefaultInstance()-getSettings(); + if ( !$settings-getSetting( 'otherProjectsLinksBeta' ) || $settings-getSetting( 'otherProjectsLinksByDefault' ) ) { + return true; + } + + $betaPreferences['wikibase-otherprojects'] = array( + 'label-message' = 'wikibase-otherprojects-beta-message', + 'desc-message' = 'wikibase-otherprojects-beta-description', + 'screenshot' = array( + 'ltr' = $assetsPath . '/resources/images/wb-otherprojects-beta-ltr.png', + 'rtl' = $assetsPath . '/resources/images/wb-otherprojects-beta-rtl.png' + ), + 'info-link' = 'https://www.mediawiki.org/wiki/Wikibase/Beta_Features/Other_projects_sidebar', + 'discussion-link' = 'https://www.mediawiki.org/wiki/Talk:Wikibase/Beta_Features/Other_projects_sidebar' + ); + + return true; + } + + /** * Adds a toggle for showing/hiding Wikidata entries in recent changes * * @param SpecialRecentChanges $special diff --git a/client/WikibaseClient.php b/client/WikibaseClient.php index 4efa0c7..5f775b8 100644 --- a/client/WikibaseClient.php +++ b/client/WikibaseClient.php @@ -111,6 +111,8 @@
[MediaWiki-commits] [Gerrit] Adds a beta feature for Other project sidebar - change (mediawiki...Wikibase)
Tpt has uploaded a new change for review. https://gerrit.wikimedia.org/r/132606 Change subject: Adds a beta feature for Other project sidebar .. Adds a beta feature for Other project sidebar It introduce an optional dependance to BetaFeature extension Adds two boolean configuration options: otherProjectsLinksBeta to activate the beta feature otherProjectsLinksByDefault to activate the other project sidebar by default Change-Id: Ib4014253016db1c3d6b624be9ebbdaf452115145 --- M client/WikibaseClient.hooks.php M client/WikibaseClient.php M client/config/WikibaseClient.default.php M client/i18n/en.json M client/i18n/qqq.json A client/resources/images/wb-otherprojects-beta-ltr.png A client/resources/images/wb-otherprojects-beta-ltr.svg A client/resources/images/wb-otherprojects-beta-rtl.png 8 files changed, 107 insertions(+), 3 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/06/132606/1 diff --git a/client/WikibaseClient.hooks.php b/client/WikibaseClient.hooks.php index e8cdde8..feba5aa 100644 --- a/client/WikibaseClient.hooks.php +++ b/client/WikibaseClient.hooks.php @@ -4,6 +4,7 @@ use Action; use BaseTemplate; +use BetaFeatures; use ChangesList; use FormOptions; use IContextSource; @@ -580,7 +581,10 @@ $settings = WikibaseClient::getDefaultInstance()-getSettings(); $siteIdsToOutput = $settings-getSetting( 'otherProjectsLinks' ); - if ( count( $siteIdsToOutput ) === 0 ) { + if ( + !$settings-getSetting( 'otherProjectsLinksBeta' ) !$settings-getSetting( 'otherProjectsLinksByDefault' ) || + count( $siteIdsToOutput ) === 0 + ) { return true; } @@ -600,6 +604,53 @@ } /** +* Filters the display of other project sidebar according to the beta feature +* +* @param array $sidebar +* @param Skin $skin +*/ + public static function onSidebarBeforeOutput( array $sidebar, Skin $skin ) { + $settings = WikibaseClient::getDefaultInstance()-getSettings(); + if ( + $settings-getSetting( 'otherProjectsLinksBeta' ) + !$settings-getSetting( 'otherProjectsLinksByDefault' ) + class_exists( '\BetaFeatures' ) + !BetaFeatures::isFeatureEnabled( $skin-getUser(), 'wikibase-otherprojects' ) + ) { + unset( $sidebar['wikibase-otherprojects'] ); + } + } + + /** +* Initialise beta feature preferences +* +* @param User $user +* @param array $betaPreferences +* @return bool +*/ + public static function onGetBetaFeaturePreferences( User $user, array $betaPreferences ) { + global $wgExtensionAssetsPath; + + $settings = WikibaseClient::getDefaultInstance()-getSettings(); + if ( !$settings-getSetting( 'otherProjectsLinksBeta' ) || $settings-getSetting( 'otherProjectsLinksByDefault' ) ) { + return true; + } + + $betaPreferences['wikibase-otherprojects'] = array( + 'label-message' = 'wikibase-otherprojects-beta-message', + 'desc-message' = 'wikibase-otherprojects-beta-description', + 'screenshot' = array( + 'ltr' = $wgExtensionAssetsPath . '/Wikibase/client/resources/images/wb-otherprojects-beta-ltr.png', + 'rtl' = $wgExtensionAssetsPath . '/Wikibase/client/resources/images/wb-otherprojects-beta-rtl.png' + ), + 'info-link' = 'https://www.mediawiki.org/wiki/Wikibase/Beta_Features/Other_projects_sidebar', + 'discussion-link' = 'https://www.mediawiki.org/wiki/Talk:Wikibase/Beta_Features/Other_projects_sidebar' + ); + + return true; + } + + /** * Adds a toggle for showing/hiding Wikidata entries in recent changes * * @param SpecialRecentChanges $special diff --git a/client/WikibaseClient.php b/client/WikibaseClient.php index fca740c..e545f05 100644 --- a/client/WikibaseClient.php +++ b/client/WikibaseClient.php @@ -89,6 +89,8 @@ $wgHooks['InfoAction'][] = '\Wikibase\ClientHooks::onInfoAction'; $wgHooks['TitleMoveComplete'][] = '\Wikibase\ClientHooks::onTitleMoveComplete'; $wgHooks['BaseTemplateAfterPortlet'][] = '\Wikibase\ClientHooks::onBaseTemplateAfterPortlet'; + $wgHooks['GetBetaFeaturePreferences'][] = '\Wikibase\ClientHooks::onGetBetaFeaturePreferences'; + $wgHooks['SidebarBeforeOutput'][] =