UltrasonicNXT has uploaded a new change for review.
https://gerrit.wikimedia.org/r/114452
Change subject: Add max message length
......................................................................
Add max message length
Via $wgChatMaxMessageLength
Change-Id: I959dee1b9718d137300c765f2859110722978a42
---
M MediaWikiChat.i18n.php
M MediaWikiChat.js
M MediaWikiChat.php
M Send.api.php
M SpecialChat.php
5 files changed, 23 insertions(+), 9 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MediaWikiChat
refs/changes/52/114452/1
diff --git a/MediaWikiChat.i18n.php b/MediaWikiChat.i18n.php
index 234e77a..cd1cce8 100644
--- a/MediaWikiChat.i18n.php
+++ b/MediaWikiChat.i18n.php
@@ -21,6 +21,7 @@
'chat-not-allowed' => 'You are not allowed to chat, try logging in
first.',
'chat-sounds' => 'Play sounds',
'chat-flood' => 'You can\'t send messages that fast, please wait before
sending more.',
+ 'chat-too-long' => 'That message was too long, please send a shorter
message.',
'chat-just-now' => 'just now',
'chat-a-minute-ago' => 'a minute ago',
@@ -205,6 +206,7 @@
{{Related|Tog-chat-ping}}',
'prefs-chat' => 'Header for the chat preferences at
[[Special:Preferences]].
{{Identical|Chat}}',
+ 'chat-too-long' => 'Shown to users when their message was too long to
send.',
);
/** Bengali (বাংলা)
diff --git a/MediaWikiChat.js b/MediaWikiChat.js
index a1bbe94..2351bbf 100644
--- a/MediaWikiChat.js
+++ b/MediaWikiChat.js
@@ -547,15 +547,21 @@
$( $( '#mwchat-type input' )[0] ).keydown( function( e ) { // Send text
MediaWikiChat.clearMentions();
- var userInput = $( '#mwchat-type input' )[0].value;
+ var message = $( '#mwchat-type input' )[0].value;
if ( e.which == 13 && e.shiftKey ) {
return false;
} else if ( e.which == 13 ) { // Enter
+ if ( message.length > mw.config.get(
'wgChatMaxMessageLength' ) ) {
+ alert( mw.message( 'chat-too-long' ).text() );
+ } else {
+ $( '#mwchat-type input' ).val( '' );
+ }
+
$.ajax( {
type: 'POST',
url: mw.config.get( 'wgScriptPath' ) +
'/api.php',
- data: { 'action': 'chatsend', 'message': $(
'#mwchat-type input' )[0].value, 'format': 'json' }
+ data: { 'action': 'chatsend', 'message':
message, 'format': 'json' }
} ).done( function( msg ) {
MediaWikiChat.getNew();
window.clearInterval( MediaWikiChat.newInterval
);
@@ -563,13 +569,12 @@
// Error: flood
if ( msg.chatsend.error == 'flood' ) {
- $( '#mwchat-type input' )[0].value =
userInput;
+ $( '#mwchat-type input' ).val( message
);
alert( mw.message( 'chat-flood'
).text() );
}
} );
- $( '#mwchat-type input' ).val( '' );
} else if ( e.which == 9 ) { // Tab - autocompletion
for ( var userId in MediaWikiChat.userData ) {
if ( userId != mw.config.get( 'wgUserId' ) ) {
diff --git a/MediaWikiChat.php b/MediaWikiChat.php
index 980bbc7..e568e63 100644
--- a/MediaWikiChat.php
+++ b/MediaWikiChat.php
@@ -17,7 +17,7 @@
$wgExtensionCredits['specialpage'][] = array(
'path' => __FILE__,
'name' => 'MediaWikiChat',
- 'version' => '2.6.3',
+ 'version' => '2.6.4',
'author' => 'Adam Carter/UltrasonicNXT',
'url' => 'https://www.mediawiki.org/wiki/Extension:MediaWikiChat',
'descriptionmsg' => 'chat-desc',
@@ -44,7 +44,7 @@
'chat-youve-been-blocked', 'chat-you-blocked', 'chat-blocked',
'chat-block', 'chat-private-message', 'chat-user-is-moderator',
'chat-you-are-moderator', 'chat-joined', 'chat-left',
- 'chat-mod-image', 'chat-yesterday', 'chat-flood',
+ 'chat-mod-image', 'chat-yesterday', 'chat-flood',
'chat-too-long',
),
'dependencies' => 'mediawiki.jqueryMsg',
'localBasePath' => dirname( __FILE__ ),
@@ -70,6 +70,7 @@
$wgChatLinkUsernames = false; // link to user pages?
$wgChatMeCommand = false; // enable "/me <text>" command?
$wgChatUseStyleAttribute = true; // allow use of the style attribute on html
tags?
+$wgChatMaxMessageLength = 1000; // maximum length (characters) of messages
// Hooks
$wgHooks['ParserBeforeInternalParse'][] =
'MediaWikiChatHooks::onParserBeforeInternalParse';
diff --git a/Send.api.php b/Send.api.php
index e9afcfd..fd07d3e 100644
--- a/Send.api.php
+++ b/Send.api.php
@@ -3,7 +3,7 @@
class ChatSendAPI extends ApiBase {
public function execute() {
- global $wgUser, $wgChatFloodMessages, $wgChatFloodSeconds;
+ global $wgUser, $wgChatFloodMessages, $wgChatFloodSeconds,
$wgChatMaxMessageLength;
$result = $this->getResult();
$originalMessage = $this->getMain()->getVal( 'message' );
@@ -17,6 +17,11 @@
$id = $wgUser->getId();
$timestamp = MediaWikiChat::now();
+ if ( strlen( $message ) >
$wgChatMaxMessageLength ) {
+ $result->addValue(
$this->getModuleName(), 'error', 'length' );
+ return true;
+ }
+
// Flood check
$res = $dbw->selectField(
'chat',
diff --git a/SpecialChat.php b/SpecialChat.php
index f5c1f20..d2bf565 100644
--- a/SpecialChat.php
+++ b/SpecialChat.php
@@ -15,7 +15,7 @@
* @param $par Mixed: parameter passed to the special page or null
*/
public function execute( $par ) {
- global $wgChatSocialAvatars, $wgChatKicks,
$wgChatLinkUsernames, $wgChatMeCommand;
+ global $wgChatSocialAvatars, $wgChatKicks,
$wgChatLinkUsernames, $wgChatMeCommand, $wgChatMaxMessageLength;
$out = $this->getOutput();
$user = $this->getUser();
@@ -51,7 +51,8 @@
'wgChatPingMentions' => $mention,
'wgChatPingPMs' => $pm,
'wgChatPingMessages' => $message,
- 'wgChatMeCommand' => $wgChatMeCommand
+ 'wgChatMeCommand' => $wgChatMeCommand,
+ 'wgChatMaxMessageLength' =>
$wgChatMaxMessageLength,
)
);
--
To view, visit https://gerrit.wikimedia.org/r/114452
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I959dee1b9718d137300c765f2859110722978a42
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MediaWikiChat
Gerrit-Branch: master
Gerrit-Owner: UltrasonicNXT <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits