https://www.mediawiki.org/wiki/Special:Code/MediaWiki/108267
Revision: 108267 Author: ashley Date: 2012-01-06 18:42:42 +0000 (Fri, 06 Jan 2012) Log Message: ----------- LinkFilter: version 2.1: *fixes for ResourceLoader compatibility *dropped backwards compatibility with pre-1.18 MediaWikis *removed $wgLinkFilterScripts global, unnecessary now thanks to RL This is also a follow-up to r108266. Modified Paths: -------------- trunk/extensions/LinkFilter/Link.php trunk/extensions/LinkFilter/LinkFilter.js trunk/extensions/LinkFilter/LinkFilterHooks.php trunk/extensions/LinkFilter/LinkPage.php trunk/extensions/LinkFilter/SpecialLinkApprove.php trunk/extensions/LinkFilter/SpecialLinkEdit.php trunk/extensions/LinkFilter/SpecialLinkRedirect.php trunk/extensions/LinkFilter/SpecialLinkSubmit.php trunk/extensions/LinkFilter/SpecialLinksHome.php Modified: trunk/extensions/LinkFilter/Link.php =================================================================== --- trunk/extensions/LinkFilter/Link.php 2012-01-06 18:41:50 UTC (rev 108266) +++ trunk/extensions/LinkFilter/Link.php 2012-01-06 18:42:42 UTC (rev 108267) @@ -5,11 +5,11 @@ * * @file * @ingroup Extensions - * @version 2.0 + * @version 2.1 * @author Aaron Wright <aaron.wri...@gmail.com> * @author David Pean <david.p...@gmail.com> * @author Jack Phoenix <j...@countervandalism.net> - * @link http://www.mediawiki.org/wiki/Extension:LinkFilter Documentation + * @link https://www.mediawiki.org/wiki/Extension:LinkFilter Documentation * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later */ @@ -25,7 +25,7 @@ $wgExtensionCredits['other'][] = array( 'path' => __FILE__, 'name' => 'LinkFilter', - 'version' => '2.0.1', + 'version' => '2.1', 'author' => array( 'Aaron Wright', 'David Pean', 'Jack Phoenix' ), 'descriptionmsg' => 'linkfilter-desc', 'url' => 'https://www.mediawiki.org/wiki/Extension:LinkFilter' @@ -55,9 +55,6 @@ // Path to the LinkFilter extension files $wgLinkFilterDirectory = "$IP/extensions/LinkFilter"; -// Same as above, but a web-readable path instead -$wgLinkFilterScripts = "$wgScriptPath/extensions/LinkFilter"; - // Array of LinkFilter types // Key is: number => 'description' // For example: 2 => 'Awesome', @@ -104,6 +101,7 @@ $wgAutoloadClasses['LinkEdit'] = "{$wgLinkFilterDirectory}/SpecialLinkEdit.php"; $wgSpecialPages['LinkEdit'] = 'LinkEdit'; +// AJAX functions called by the JavaScript file require_once("{$wgLinkFilterDirectory}/LinkFilter_AjaxFunctions.php"); // Default setup for displaying sections Modified: trunk/extensions/LinkFilter/LinkFilter.js =================================================================== --- trunk/extensions/LinkFilter/LinkFilter.js 2012-01-06 18:41:50 UTC (rev 108266) +++ trunk/extensions/LinkFilter/LinkFilter.js 2012-01-06 18:42:42 UTC (rev 108267) @@ -7,17 +7,7 @@ */ var LinkFilter = { linkAction: function( action, link_id ) { - var acceptMsg, rejectMsg; - if( typeof( mediaWiki ) == 'undefined' ) { - //acceptMsg = 'The link was accepted'; - //rejectMsg = 'The link was rejected'; - acceptMsg = _LINKFILTER_ACCEPT; - rejectMsg = _LINKFILTER_REJECT; - } else { - acceptMsg = mediaWiki.msg( 'linkfilter-admin-accept-success' ); - rejectMsg = mediaWiki.msg( 'linkfilter-admin-reject-success' ); - } - getElementsByClassName( document, 'div', 'action-buttons-1' ).display = 'none'; + jQuery( 'div.action-buttons-1' ).hide(); sajax_request_type = 'POST'; sajax_do_call( 'wfLinkFilterStatus', @@ -26,10 +16,10 @@ var msg; switch( action ) { case 1: - msg = acceptMsg; + msg = mediaWiki.msg( 'linkfilter-admin-accept-success' ); break; case 2: - msg = rejectMsg; + msg = mediaWiki.msg( 'linkfilter-admin-reject-success' ); break; } var elementToDisplay = document.getElementById( 'action-buttons-' + link_id ); @@ -40,28 +30,18 @@ }, submitLink: function() { - var noTitleMsg, noTypeMsg; - if( typeof( mediaWiki ) == 'undefined' ) { - //noTitleMsg = 'Please enter a title'; - //noTypeMsg = 'Hey, pick a link type!'; - noTitleMsg = _LINKFILTER_NO_TITLE; - noTypeMsg = _LINKFILTER_NO_TYPE; - } else { - noTitleMsg = mediaWiki.msg( 'linkfilter-submit-no-title' ); - noTypeMsg = mediaWiki.msg( 'linkfilter-submit-no-type' ); - } if ( typeof( wgCanonicalSpecialPageName ) !== 'undefined' && wgCanonicalSpecialPageName !== 'LinkEdit' ) { if( document.getElementById( 'lf_title' ).value === '' ) { - alert( noTitleMsg ); + alert( mediaWiki.msg( 'linkfilter-submit-no-title' ) ); return ''; } } if( document.getElementById( 'lf_type' ).value === '' ) { - alert( noTypeMsg ); + alert( mediaWiki.msg( 'linkfilter-submit-no-type' ) ); return ''; } document.link.submit(); @@ -73,4 +53,30 @@ } document.getElementById( 'desc-remaining' ).innerHTML = limit - field.value.length; } -}; \ No newline at end of file +}; + +jQuery( document ).ready( function() { + // "Accept" links on Special:LinkApprove + jQuery( 'a.action-accept' ).click( function() { + var that = jQuery( this ); + LinkFilter.linkAction( 1, that.data( 'link-id' ) ); + } ); + + // "Reject" links on Special:LinkApprove + jQuery( 'a.action-reject' ).click( function() { + var that = jQuery( this ); + LinkFilter.linkAction( 2, that.data( 'link-id' ) ); + } ); + + // Textarea on Special:LinkEdit/Special:LinkSubmit + jQuery( 'textarea.lr-input' ).bind( 'keyup', function() { + LinkFilter.limitText( document.link.lf_desc, 300 ); + } ).bind( 'keydown', function() { + LinkFilter.limitText( document.link.lf_desc, 300 ); + } ); + + // Submit button on Special:LinkEdit/Special:LinkSubmit + jQuery( '#link-submit-button' ).click( function() { + LinkFilter.submitLink(); + } ); +} ); \ No newline at end of file Modified: trunk/extensions/LinkFilter/LinkFilterHooks.php =================================================================== --- trunk/extensions/LinkFilter/LinkFilterHooks.php 2012-01-06 18:41:50 UTC (rev 108266) +++ trunk/extensions/LinkFilter/LinkFilterHooks.php 2012-01-06 18:42:42 UTC (rev 108267) @@ -68,7 +68,7 @@ */ public static function linkFromTitle( &$title, &$article ) { if ( $title->getNamespace() == NS_LINK ) { - global $wgRequest, $wgOut, $wgTitle, $wgSupressPageTitle, $wgSupressSubTitle, $wgLinkFilterScripts; + global $wgRequest, $wgOut, $wgTitle, $wgSupressPageTitle, $wgSupressSubTitle; $wgOut->enableClientCache( false ); if( $wgRequest->getVal( 'action' ) == 'edit' ) { @@ -89,11 +89,7 @@ $wgSupressSubTitle = true; // Add CSS - if ( defined( 'MW_SUPPORTS_RESOURCE_MODULES' ) ) { - $wgOut->addModuleStyles( 'ext.linkFilter' ); - } else { - $wgOut->addExtensionStyle( $wgLinkFilterScripts . '/LinkFilter.css' ); - } + $wgOut->addModuleStyles( 'ext.linkFilter' ); $article = new LinkPage( $title ); } @@ -116,19 +112,17 @@ * Callback function for registerLinkFilterHook. */ public static function renderLinkFilterHook( $input, $args, $parser ) { - global $wgMemc, $wgOut, $wgLinkFilterScripts; + global $wgMemc, $wgOut; - // Add CSS - if ( defined( 'MW_SUPPORTS_RESOURCE_MODULES' ) ) { - $wgOut->addModuleStyles( 'ext.linkFilter' ); - } else { - $wgOut->addExtensionStyle( $wgLinkFilterScripts . '/LinkFilter.css' ); - } - $parser->disableCache(); - $count = intval( $args['count'] ); - if( !$count ) { + // Add CSS (ParserOutput class only has addModules(), not + // addModuleStyles() or addModuleScripts()...strange) + $wgOut->addModuleStyles( 'ext.linkFilter' ); + + if ( isset( $args['count'] ) ) { + $count = intval( $args['count'] ); + } else { $count = 10; } @@ -243,18 +237,13 @@ * stats_links_approved columns; if not, apply * patch-columns_for_user_stats.sql against the database * - * @param $updater Object: instance of DatabaseUpdater + * @param $updater DatabaseUpdater * @return Boolean: true */ - public static function applySchemaChanges( $updater = null ) { + public static function applySchemaChanges( $updater ) { $dir = dirname( __FILE__ ); $file = "$dir/link.sql"; - if ( $updater === null ) { - global $wgExtNewTables; - $wgExtNewTables[] = array( 'link', $file ); - } else { - $updater->addExtensionUpdate( array( 'addTable', 'link', $file, true ) ); - } + $updater->addExtensionUpdate( array( 'addTable', 'link', $file, true ) ); return true; } Modified: trunk/extensions/LinkFilter/LinkPage.php =================================================================== --- trunk/extensions/LinkFilter/LinkPage.php 2012-01-06 18:41:50 UTC (rev 108266) +++ trunk/extensions/LinkFilter/LinkPage.php 2012-01-06 18:42:42 UTC (rev 108267) @@ -37,12 +37,12 @@ } function view() { - global $wgOut, $wgUser, $wgTitle, $wgLinkPageDisplay; + global $wgOut, $wgUser, $wgLinkPageDisplay; $sk = $wgUser->getSkin(); - $wgOut->setHTMLTitle( $wgTitle->getText() ); - $wgOut->setPageTitle( $wgTitle->getText() ); + $wgOut->setHTMLTitle( $this->getTitle()->getText() ); + $wgOut->setPageTitle( $this->getTitle()->getText() ); $wgOut->addHTML( '<div id="link-page-container" class="clearfix">' ); Modified: trunk/extensions/LinkFilter/SpecialLinkApprove.php =================================================================== --- trunk/extensions/LinkFilter/SpecialLinkApprove.php 2012-01-06 18:41:50 UTC (rev 108266) +++ trunk/extensions/LinkFilter/SpecialLinkApprove.php 2012-01-06 18:42:42 UTC (rev 108267) @@ -91,7 +91,7 @@ * @param $par Mixed: parameter passed to the page or null */ public function execute( $par ) { - global $wgUser, $wgOut, $wgRequest, $wgHooks, $wgLinkFilterScripts; + global $wgUser, $wgOut, $wgRequest; // Check for linkadmin permission if( !$wgUser->isAllowed( 'linkadmin' ) ) { @@ -114,21 +114,8 @@ // Set the page title $wgOut->setPageTitle( wfMsgHtml( 'linkfilter-approve-title' ) ); - // i18n for JS - $wgHooks['MakeGlobalVariablesScript'][] = function( $vars ) { - $vars['_LINKFILTER_ACCEPT'] = wfMsg( 'linkfilter-admin-accept-success' ); - $vars['_LINKFILTER_REJECT'] = wfMsg( 'linkfilter-admin-reject-success' ); - return true; - }; - // Add CSS & JS - if ( defined( 'MW_SUPPORTS_RESOURCE_MODULES' ) ) { - $wgOut->addModuleStyles( 'ext.linkFilter' ); - $wgOut->addModuleScripts( 'ext.linkFilter' ); - } else { - $wgOut->addExtensionStyle( $wgLinkFilterScripts . '/LinkFilter.css' ); - $wgOut->addScriptFile( $wgLinkFilterScripts . '/LinkFilter.js' ); - } + $wgOut->addModules( 'ext.linkFilter' ); $output = ''; $output .= '<div class="lr-left">'; @@ -178,9 +165,9 @@ Link::getLinkType( $link['type'] ) ) . "</div> <div id=\"action-buttons-{$link['id']}\" class=\"action-buttons\"> - <a href=\"javascript:LinkFilter.linkAction(1,{$link['id']})\" class=\"action-accept\">" . + <a href=\"javascript:void(0);\" class=\"action-accept\" data-link-id=\"{$link['id']}\">" . wfMsgHtml( 'linkfilter-admin-accept' ) . "</a> - <a href=\"javascript:LinkFilter.linkAction(2,{$link['id']})\" class=\"action-reject\">" . + <a href=\"javascript:void(0);\" class=\"action-reject\" data-link-id=\"{$link['id']}\">" . wfMsgHtml( 'linkfilter-admin-reject' ) . '</a> <div class="cleared"></div> </div>'; @@ -193,7 +180,7 @@ $output .= '</div>'; $output .= '<div class="lr-right"> <div class="admin-link-instruction">' . - wfMsgExt( 'linkfilter-admin-instructions', 'parse' ) . + wfMessage( 'linkfilter-admin-instructions' )->inContentLanguage()->parse() . '</div> <div class="approved-link-container"> <h3>' . wfMsgHtml( 'linkfilter-admin-recent' ) . '</h3>'; Modified: trunk/extensions/LinkFilter/SpecialLinkEdit.php =================================================================== --- trunk/extensions/LinkFilter/SpecialLinkEdit.php 2012-01-06 18:41:50 UTC (rev 108266) +++ trunk/extensions/LinkFilter/SpecialLinkEdit.php 2012-01-06 18:42:42 UTC (rev 108267) @@ -15,7 +15,7 @@ * @param $par Mixed: parameter passed to the page or null */ public function execute( $par ) { - global $wgUser, $wgOut, $wgRequest, $wgLinkFilterScripts; + global $wgUser, $wgOut, $wgRequest; // Check permissions if ( !Link::canAdmin() ) { @@ -36,13 +36,7 @@ } // Add CSS & JS - if ( defined( 'MW_SUPPORTS_RESOURCE_MODULES' ) ) { - $wgOut->addModuleStyles( 'ext.linkFilter' ); - $wgOut->addModuleScripts( 'ext.linkFilter' ); - } else { - $wgOut->addExtensionStyle( $wgLinkFilterScripts . '/LinkFilter.css' ); - $wgOut->addScriptFile( $wgLinkFilterScripts . '/LinkFilter.js' ); - } + $wgOut->addModules( 'ext.linkFilter' ); if ( $wgRequest->wasPosted() && $_SESSION['alreadysubmitted'] == false ) { $_SESSION['alreadysubmitted'] = true; @@ -104,19 +98,19 @@ $output .= '<div class="cleared"></div> </div> <form name="link" id="linksubmit" method="post" action=""> - <div class="link-submit-title"> + <div class="link-submit-title"> <label>' . wfMsg( 'linkfilter-url' ) . '</label> </div> <input tabindex="2" class="lr-input" type="text" name="lf_URL" id="lf_URL" value="' . $url . '"/> - <div class="link-submit-title"> + <div class="link-submit-title"> <label>' . wfMsg( 'linkfilter-description' ) . '</label> </div> <div class="link-characters-left">' . wfMsg( 'linkfilter-description-max' ) . ' - ' . wfMsg( 'linkfilter-description-left', '<span id="desc-remaining">300</span>' ) . '</div> - <textarea tabindex="3" class="lr-input" onkeyup="LinkFilter.limitText(document.link.lf_desc,300)" onkeydown="LinkFilter.limitText(document.link.lf_desc,300)" rows="4" name="lf_desc" id="lf_desc">' + <textarea tabindex="3" class="lr-input" rows="4" name="lf_desc" id="lf_desc">' . $description . '</textarea> @@ -135,7 +129,7 @@ } $output .= '</select> <div class="link-submit-button"> - <input tabindex="5" class="site-button" type="button" onclick="javascript:LinkFilter.submitLink()" value="' . wfMsg( 'linkfilter-submit-button' ) . '" /> + <input tabindex="5" class="site-button" type="button" id="link-submit-button" value="' . wfMsg( 'linkfilter-submit-button' ) . '" /> </div> </form> </div>'; Modified: trunk/extensions/LinkFilter/SpecialLinkRedirect.php =================================================================== --- trunk/extensions/LinkFilter/SpecialLinkRedirect.php 2012-01-06 18:41:50 UTC (rev 108266) +++ trunk/extensions/LinkFilter/SpecialLinkRedirect.php 2012-01-06 18:42:42 UTC (rev 108267) @@ -23,7 +23,7 @@ $wgOut->addHTML( "<html> <body onload=window.location=\"{$url}\"> - {$sk->bottomScripts()} + {$sk->bottomScripts( $wgOut )} </body> </html>" ); Modified: trunk/extensions/LinkFilter/SpecialLinkSubmit.php =================================================================== --- trunk/extensions/LinkFilter/SpecialLinkSubmit.php 2012-01-06 18:41:50 UTC (rev 108266) +++ trunk/extensions/LinkFilter/SpecialLinkSubmit.php 2012-01-06 18:42:42 UTC (rev 108267) @@ -20,7 +20,7 @@ * @param $par Mixed: parameter passed to the page or null */ public function execute( $par ) { - global $wgUser, $wgOut, $wgRequest, $wgHooks, $wgLinkFilterScripts; + global $wgUser, $wgOut, $wgRequest; // Anonymous users need to log in first if ( $wgUser->isAnon() ) { @@ -40,21 +40,8 @@ return false; } - // i18n for JS - $wgHooks['MakeGlobalVariablesScript'][] = function( $vars ) { - $vars['_LINKFILTER_NO_TITLE'] = wfMsg( 'linkfilter-submit-no-title' ); - $vars['_LINKFILTER_NO_TYPE'] = wfMsg( 'linkfilter-submit-no-type' ); - return true; - }; - // Add CSS & JS (JS is required by displayAddForm()) - if ( defined( 'MW_SUPPORTS_RESOURCE_MODULES' ) ) { - $wgOut->addModuleStyles( 'ext.linkFilter' ); - $wgOut->addModuleScripts( 'ext.linkFilter' ); - } else { - $wgOut->addExtensionStyle( $wgLinkFilterScripts . '/LinkFilter.css' ); - $wgOut->addScriptFile( $wgLinkFilterScripts . '/LinkFilter.js' ); - } + $wgOut->addModules( 'ext.linkFilter' ); // If the request was POSTed and we haven't already submitted it, start // processing it @@ -170,7 +157,7 @@ wfMsg( 'linkfilter-description-max' ) . ' - ' . wfMsg( 'linkfilter-description-left', '<span id="desc-remaining">300</span>' ) . '</div> - <textarea tabindex="3" class="lr-input" onkeyup="LinkFilter.limitText(document.link.lf_desc,300)" onkeydown="LinkFilter.limitText(document.link.lf_desc,300)" rows="4" name="lf_desc" id="lf_desc" value="' . $lf_desc . '"/></textarea> + <textarea tabindex="3" class="lr-input" rows="4" name="lf_desc" id="lf_desc" value="' . $lf_desc . '"></textarea> <div class="link-submit-title"> <label>' . wfMsg( 'linkfilter-type' ) . '</label> @@ -183,13 +170,13 @@ } $output .= '</select> <div class="link-submit-button"> - <input tabindex="5" class="site-button" type="button" onclick="javascript:LinkFilter.submitLink()" value="' . wfMsg( 'linkfilter-submit-button' ) . '" /> + <input tabindex="5" class="site-button" type="button" id="link-submit-button" value="' . wfMsg( 'linkfilter-submit-button' ) . '" /> </div> </form> </div>'; $output .= '<div class="lr-right">' . - wfMsgExt( 'linkfilter-instructions', 'parse' ) . + wfMessage( 'linkfilter-instructions' )->inContentLanguage()->parse() . '</div> <div class="cleared"></div>'; Modified: trunk/extensions/LinkFilter/SpecialLinksHome.php =================================================================== --- trunk/extensions/LinkFilter/SpecialLinksHome.php 2012-01-06 18:41:50 UTC (rev 108266) +++ trunk/extensions/LinkFilter/SpecialLinksHome.php 2012-01-06 18:42:42 UTC (rev 108267) @@ -148,18 +148,12 @@ * @param $par Mixed: parameter passed to the page or null */ public function execute( $par ) { - global $wgOut, $wgRequest, $wgSupressPageTitle, $wgLinkFilterScripts; + global $wgOut, $wgRequest, $wgSupressPageTitle; $wgSupressPageTitle = true; // Add CSS & JS - if ( defined( 'MW_SUPPORTS_RESOURCE_MODULES' ) ) { - $wgOut->addModuleStyles( 'ext.linkFilter' ); - $wgOut->addModuleScripts( 'ext.linkFilter' ); - } else { - $wgOut->addExtensionStyle( $wgLinkFilterScripts . '/LinkFilter.css' ); - $wgOut->addScriptFile( $wgLinkFilterScripts . '/LinkFilter.js' ); - } + $wgOut->addModules( 'ext.linkFilter' ); $per_page = 20; $page = $wgRequest->getInt( 'page', 1 ); _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs