$result['lguserid'] = intval( $user->getId() );
$result['lgusername'] = $user->getName();
-
- // @todo: These are deprecated, and should be removed at some
- // point (1.28 at the earliest, and see T121527). They were ok
- // when the core cookie-based login was the only thing, but
- // CentralAuth broke that a while back and
- // SessionManager/AuthManager *really* break it.
- $result['lgtoken'] = $user->getToken();
- $result['cookieprefix'] = $this->getConfig()->get( 'CookiePrefix' );
- $result['sessionid'] = $session->getId();
break;
case 'NeedToken':
$this->setWarning( 'Fetching a token via action=login is deprecated. ' .
'Use action=query&meta=tokens&type=login instead.' );
$this->logFeatureUsage( 'action=login&!lgtoken' );
-
- // @todo: See above about deprecation
- $result['cookieprefix'] = $this->getConfig()->get( 'CookiePrefix' );
- $result['sessionid'] = $session->getId();
break;
case 'WrongToken':
$heading = $heading[ 'line' ];
// Some wikis wrap the brackets in a span:
- // http://en.wikipedia.org/wiki/MediaWiki:Cite_reference_link
+ // https://en.wikipedia.org/wiki/MediaWiki:Cite_reference_link
$heading = preg_replace( '/<\/?span>/', '', $heading );
// Normalize [] so the following regexp would work.
$heading = preg_replace( [ '/[/', '/]/' ], [ '[', ']' ], $heading );
# Since these are limited, this is safe even later changes to the registry --
# the only oddity is that it might change the type of the tag, and thus
# the results from the capturing groups.
- # http://www.iana.org/assignments/language-subtag-registry
+ # https://www.iana.org/assignments/language-subtag-registry
$grandfathered = "en{$s}GB{$s}oed"
. "|i{$s}(?:ami|bnn|default|enochian|hak|klingon|lux|mingo|navajo|pwn|tao|tay|tsu)"
*
* Based on a PHP-Nuke block by Sharjeel which is released under GNU/GPL license
*
- * @see http://phpnuke.org/modules.php?name=News&file=article&sid=8234&mode=thread&order=0&thold=0
+ * @see https://phpnuke.org/modules.php?name=News&file=article&sid=8234&mode=thread&order=0&thold=0
*
* @param string $ts
*
* Algorithm to convert Gregorian dates to Thai solar dates,
* Minguo dates or Minguo dates.
*
- * Link: http://en.wikipedia.org/wiki/Thai_solar_calendar
- * http://en.wikipedia.org/wiki/Minguo_calendar
- * http://en.wikipedia.org/wiki/Japanese_era_name
+ * Link: https://en.wikipedia.org/wiki/Thai_solar_calendar
+ * https://en.wikipedia.org/wiki/Minguo_calendar
+ * https://en.wikipedia.org/wiki/Japanese_era_name
*
* @param string $ts 14-character timestamp
* @param string $cName Calender name
public function iconv( $in, $out, $string ) {
# Even with //IGNORE iconv can whine about illegal characters in
# *input* string. We just ignore those too.
- # REF: http://bugs.php.net/bug.php?id=37166
+ # REF: https://bugs.php.net/bug.php?id=37166
# REF: https://phabricator.wikimedia.org/T18885
MediaWiki\suppressWarnings();
$text = iconv( $in, $out . '//IGNORE', $string );
*
*
* Based on:
- * - http://commons.wikimedia.org/wiki/Image:Inuktitut.png
+ * - https://commons.wikimedia.org/wiki/Image:Inuktitut.png
* - LanguageSr.php
*
* @ingroup Language
/**
* Four-digit number should be without group commas (spaces)
- * See manual of style at http://ru.wikipedia.org/wiki/Википедия:Оформление_статей
+ * See manual of style at https://ru.wikipedia.org/wiki/Википедия:Оформление_статей
* So "1 234 567", "12 345" but "1234"
*
* @param string $_
*
*
* Based on:
- * - http://en.wikipedia.org/wiki/Shilha_language
+ * - https://en.wikipedia.org/wiki/Shilha_language
* - LanguageSr.php
*
* @ingroup Language
* Turkish has two different i, one with a dot and another without a dot. They
* are totally different letters in this language, so we have to override the
* ucfirst and lcfirst methods.
- * See http://en.wikipedia.org/wiki/Dotted_and_dotless_I
+ * See https://en.wikipedia.org/wiki/Dotted_and_dotless_I
* and @bug 28040
* @ingroup Language
*/
* @file
*
* @author Akoppad
- * @author Ashwath Mattur <ashwatham@gmail.com> http://en.wikipedia.org/wiki/User:Ashwatham
+ * @author Ashwath Mattur <ashwatham@gmail.com> https://en.wikipedia.org/wiki/User:Ashwatham
* @author Dimension10
* @author Dipin
* @author HPN
- * @author Hari Prasad Nadig <hpnadig@gmail.com> http://en.wikipedia.org/wiki/User:Hpnadig
+ * @author Hari Prasad Nadig <hpnadig@gmail.com> https://en.wikipedia.org/wiki/User:Hpnadig
* @author Kaganer
* @author Ktkaushik
* @author M G Harish
* @license http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License
* @license http://www.gnu.org/copyleft/gpl.html GNU General Public License
*
- * @see http://meta.wikimedia.org/w/index.php?title=LanguageNn.php&action=history
- * @see http://nn.wikipedia.org/w/index.php?title=Brukar:Dittaeva/LanguageNn.php&action=history
+ * @see https://meta.wikimedia.org/w/index.php?title=LanguageNn.php&action=history
+ * @see https://nn.wikipedia.org/w/index.php?title=Brukar:Dittaeva/LanguageNn.php&action=history
*/
$datePreferences = [
};
// Default toggle link. Only build it when needed to avoid jQuery memory leaks (event data).
buildDefaultToggleLink = function () {
- return $( '<a href="#"></a>' )
+ return $( '<a>' )
+ .attr( {
+ role: 'button',
+ tabindex: 0
+ } )
.text( collapseText )
.wrap( '<span class="mw-collapsible-toggle"></span>' )
.parent()
$link = $( '<a>' )
.text( showText )
- .attr( 'href', '#' )
- .click( function () {
- if ( $table.hasClass( 'collapsed' ) ) {
- $( this ).text( hideText );
- } else {
- $( this ).text( showText );
+ .attr( {
+ role: 'button',
+ tabindex: 0
+ } )
+ .on( 'click keypress', function ( e ) {
+ if (
+ e.type === 'click' ||
+ e.type === 'keypress' && e.which === 13
+ ) {
+ if ( $table.hasClass( 'collapsed' ) ) {
+ $( this ).text( hideText );
+ } else {
+ $( this ).text( showText );
+ }
+ $table.toggleClass( 'expanded collapsed' );
}
- $table.toggleClass( 'expanded collapsed' );
- return false;
} );
$col.append( $link );
text-decoration: none;
color: #0645ad;
background: none;
+ cursor: pointer; /* Always cursor:pointer even without href */
}
a:visited {
z-index: 100;
}
+.mw-apisandbox-fullscreen .mw-apisandbox-container {
+ border-width: 1px 0 0 0;
+ border-radius: 0;
+}
+
.mw-apisandbox-spacer {
display: inline-block;
height: 1px;
init: function () {
var $toolbar;
+ ApiSandbox.isFullscreen = false;
+
$content = $( '#mw-apisandbox' );
windowManager = new OO.ui.WindowManager();
* Toggle "fullscreen" mode
*/
toggleFullscreen: function () {
- var $body = $( document.body );
+ var $body = $( document.body ),
+ $ui = $( '#mw-apisandbox-ui' );
+
+ ApiSandbox.isFullscreen = !ApiSandbox.isFullscreen;
- $body.toggleClass( 'mw-apisandbox-fullscreen' );
- if ( $body.hasClass( 'mw-apisandbox-fullscreen' ) ) {
+ $body.toggleClass( 'mw-apisandbox-fullscreen', ApiSandbox.isFullscreen );
+ $ui.toggleClass( 'mw-body-content', ApiSandbox.isFullscreen );
+ if ( ApiSandbox.isFullscreen ) {
fullscreenButton.setLabel( mw.message( 'apisandbox-unfullscreen' ).text() );
fullscreenButton.setTitle( mw.message( 'apisandbox-unfullscreen-tooltip' ).text() );
- $body.append( $( '#mw-apisandbox-ui' ) );
+ $body.append( $ui );
} else {
fullscreenButton.setLabel( mw.message( 'apisandbox-fullscreen' ).text() );
fullscreenButton.setTitle( mw.message( 'apisandbox-fullscreen-tooltip' ).text() );
- $content.append( $( '#mw-apisandbox-ui' ) );
+ $content.append( $ui );
}
ApiSandbox.resizePanel();
},
var height = $( window ).height(),
contentTop = $content.offset().top;
- if ( $( document.body ).hasClass( 'mw-apisandbox-fullscreen' ) ) {
+ if ( ApiSandbox.isFullscreen ) {
height -= panel.$element.offset().top - $( '#mw-apisandbox-ui' ).offset().top;
panel.$element.height( height - 1 );
} else {
.mixin-mw-ui-anchor-styles( @mainColor ) {
color: @mainColor;
- // Hover state
&:hover {
color: lighten( @mainColor, @colorLightenPercentage );
}
- // Focus and active states
+
&:focus,
&:active {
color: darken( @mainColor, @colorDarkenPercentage );
- outline: none; // outline fix
+ outline: 0;
}
// Quiet mode is gray at first
/*
Anchors
-The anchor base type can be applied to A elements when a basic context styling needs to be given to a link, without
-having to assign it as a button type. mw-ui-anchor only changes the text color, and should not be used in combination
-with other base classes, such as mw-ui-button.
+The anchor base type can be applied to `a` elements when a basic context styling needs to be given to a link, without
+having to assign it as a button type. `.mw-ui-anchor` only changes the text color, and should not be used in combination
+with other base classes, such as `.mw-ui-button`.
+
Markup:
<a href="#" class="mw-ui-anchor mw-ui-progressive">Progressive</a>
-<a href="#" class="mw-ui-anchor mw-ui-constructive">Constructive</a>
<a href="#" class="mw-ui-anchor mw-ui-destructive">Destructive</a>
.mw-ui-quiet - Quiet until interaction.
.mixin-mw-ui-anchor-styles( @colorProgressive );
}
- &.mw-ui-constructive {
- .mixin-mw-ui-anchor-styles( @colorConstructive );
- }
-
&.mw-ui-destructive {
.mixin-mw-ui-anchor-styles( @colorDestructive );
}
+
+ //`.mw-ui-constructive` is deprecated; consolidated with `progressive`, see T110555
+ &.mw-ui-constructive {
+ .mixin-mw-ui-anchor-styles( @colorConstructive );
+ }
}
/*
/**
* An implementation of Jenkins' one-at-a-time hash.
*
- * @see http://en.wikipedia.org/wiki/Jenkins_hash_function
+ * @see https://en.wikipedia.org/wiki/Jenkins_hash_function
*
* @param {string} string String to hash
* @return {number} The hash as a 32-bit unsigned integer
* @ignore
*
* @author Ori Livneh <ori@wikimedia.org>
- * @see http://jsbin.com/kejewi/4/watch?js,console
+ * @see https://jsbin.com/kejewi/4/watch?js,console
*/
function hashString( string ) {
var hash = 0,
} else {
$el = $( '<a>' );
if ( typeof arg === 'function' ) {
- $el.attr( 'href', '#' )
- .click( function ( e ) {
- e.preventDefault();
+ $el.attr( {
+ role: 'button',
+ tabindex: 0
} )
- .click( arg );
+ .on( 'click keypress', function ( e ) {
+ if (
+ e.type === 'click' ||
+ e.type === 'keypress' && e.which === 13
+ ) {
+ arg.call( this, e );
+ }
+ } );
} else {
$el.attr( 'href', textify( arg ) );
}
logged.add( trace );
return true;
}
- Object.defineProperty( obj, key, {
- configurable: true,
- enumerable: true,
- get: function () {
- if ( uniqueTrace() ) {
- mw.track( 'mw.deprecate', key );
- mw.log.warn( msg );
- }
- return val;
- },
- set: function ( newVal ) {
- if ( uniqueTrace() ) {
- mw.track( 'mw.deprecate', key );
- mw.log.warn( msg );
+ // Support: Safari 5.0
+ // Throws "not supported on DOM Objects" for Node or Element objects (incl. document)
+ // Safari 4.0 doesn't have this method, and it was fixed in Safari 5.1.
+ try {
+ Object.defineProperty( obj, key, {
+ configurable: true,
+ enumerable: true,
+ get: function () {
+ if ( uniqueTrace() ) {
+ mw.track( 'mw.deprecate', key );
+ mw.log.warn( msg );
+ }
+ return val;
+ },
+ set: function ( newVal ) {
+ if ( uniqueTrace() ) {
+ mw.track( 'mw.deprecate', key );
+ mw.log.warn( msg );
+ }
+ val = newVal;
}
- val = newVal;
- }
- } );
-
+ } );
+ } catch ( err ) {
+ obj[ key ] = val;
+ }
};
return log;
$tocList = $toc.find( 'ul' ).eq( 0 );
// Hide/show the table of contents element
- function toggleToc( e ) {
- e.preventDefault();
+ function toggleToc() {
if ( $tocList.is( ':hidden' ) ) {
$tocList.slideDown( 'fast' );
$tocToggleLink.text( mw.msg( 'hidetoc' ) );
if ( $toc.length && $tocTitle.length && $tocList.length && !$tocToggleLink.length ) {
hideToc = mw.cookie.get( 'hidetoc' ) === '1';
- $tocToggleLink = $( '<a href="#" id="togglelink"></a>' )
+ $tocToggleLink = $( '<a role="button" tabindex="0" id="togglelink"></a>' )
.text( mw.msg( hideToc ? 'showtoc' : 'hidetoc' ) )
- .click( toggleToc );
+ .on( 'click keypress', function ( e ) {
+ if (
+ e.type === 'click' ||
+ e.type === 'keypress' && e.which === 13
+ ) {
+ toggleToc();
+ }
+ } );
$tocTitle.append(
$tocToggleLink
/**
* Values are set following a 3-bit Gray code where two successive
* values differ by only one value.
- * See http://en.wikipedia.org/wiki/Gray_code
+ * See https://en.wikipedia.org/wiki/Gray_code
*/
# $name $id $default
[ false, false, false, '<select></select>' ],
$this->assertArrayHasKey( "login", $data[0] );
$this->assertArrayHasKey( "result", $data[0]['login'] );
$this->assertEquals( "Success", $data[0]['login']['result'] );
- $this->assertArrayHasKey( 'lgtoken', $data[0]['login'] );
}
public function testBotPassword() {
public static function provideFiles() {
// @codingStandardsIgnoreStart Ignore Generic.Files.LineLength.TooLong
return self::addClassArg( [
- [ "QuoteQuran" ], # http://en.wikipedia.org/w/index.php?title=Template:QuoteQuran/sandbox&oldid=237348988 GFDL + CC BY-SA by Striver
- [ "Factorial" ], # http://en.wikipedia.org/w/index.php?title=Template:Factorial&oldid=98548758 GFDL + CC BY-SA by Polonium
- [ "All_system_messages" ], # http://tl.wiktionary.org/w/index.php?title=Suleras:All_system_messages&oldid=2765 GPL text generated by MediaWiki
- [ "Fundraising" ], # http://tl.wiktionary.org/w/index.php?title=MediaWiki:Sitenotice&oldid=5716 GFDL + CC BY-SA, copied there by Sky Harbor.
+ [ "QuoteQuran" ], # https://en.wikipedia.org/w/index.php?title=Template:QuoteQuran/sandbox&oldid=237348988 GFDL + CC BY-SA by Striver
+ [ "Factorial" ], # https://en.wikipedia.org/w/index.php?title=Template:Factorial&oldid=98548758 GFDL + CC BY-SA by Polonium
+ [ "All_system_messages" ], # https://tl.wiktionary.org/w/index.php?title=Suleras:All_system_messages&oldid=2765 GPL text generated by MediaWiki
+ [ "Fundraising" ], # https://tl.wiktionary.org/w/index.php?title=MediaWiki:Sitenotice&oldid=5716 GFDL + CC BY-SA, copied there by Sky Harbor.
[ "NestedTemplates" ], # bug 27936
] );
// @codingStandardsIgnoreEnd
* - berm
* - []LuCkY[]
* - Emperyan
- * @see http://en.wikipedia.org/wiki/Dotted_and_dotless_I
+ * @see https://en.wikipedia.org/wiki/Dotted_and_dotless_I
* @dataProvider provideDottedAndDotlessI
* @covers Language::ucfirst
* @covers Language::lcfirst
[ 'lcfirst', 'i', 'lower', 'i' ],
# A real example taken from bug 28040 using
- # http://tr.wikipedia.org/wiki/%C4%B0Phone
+ # https://tr.wikipedia.org/wiki/%C4%B0Phone
[ 'lcfirst', 'iPhone', 'lower', 'iPhone' ],
# next case is valid in Turkish but are different words if we
);
assert.htmlEqual(
formatParse( 'external-link-replace', function () {} ),
- 'Foo <a href="#">bar</a>',
+ 'Foo <a role="button" tabindex="0">bar</a>',
'External link message processed as function when format is \'parse\''
);