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 <[email protected]>
* @author David Pean <[email protected]>
* @author Jack Phoenix <[email protected]>
- * @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
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs