Merge pull request #54 from bigbluebutton/fix-chat-url
Fix for event urls and support for https
This commit is contained in:
commit
9b4a1b4815
@ -214,7 +214,9 @@
|
||||
private function parseURLs(message:String):String{
|
||||
var indexOfHTTP:Number = message.indexOf("http://");
|
||||
var indexOfWWW:Number = message.indexOf("www.");
|
||||
if (indexOfHTTP == -1 && indexOfWWW == -1) return message;
|
||||
var indexOfHTTPS:Number = message.indexOf("https://");
|
||||
|
||||
if (indexOfHTTP == -1 && indexOfWWW == -1 && indexOfHTTPS == -1) return message;
|
||||
|
||||
var words:Array = message.split(" ");
|
||||
var parsedString:String = "";
|
||||
@ -223,6 +225,7 @@
|
||||
var word:String = words[n] as String;
|
||||
if (word.indexOf("http://") != -1) parsedString += '<a href="event:' + word + '"> <u>' + word + '</u></a> ';
|
||||
else if (word.indexOf("www.") != -1) parsedString += '<a href="event:http://' + word + '"> <u>' + word + '</u></a> ';
|
||||
else if (word.indexOf("https://") != -1) parsedString += '<a href="event:' + word + '"> <u>' + word + '</u></a> ';
|
||||
else parsedString += word + ' ';
|
||||
}
|
||||
return parsedString;
|
||||
@ -230,7 +233,8 @@
|
||||
|
||||
private function sendPublicChatMessage(message:String):void {
|
||||
var publicEvent:SendPublicChatMessageEvent = new SendPublicChatMessageEvent(SendPublicChatMessageEvent.SEND_PUBLIC_CHAT_MESSAGE_EVENT);
|
||||
publicEvent.message = parseURLs(cleanup(message));
|
||||
//publicEvent.message = parseURLs(cleanup(message));
|
||||
publicEvent.message = cleanup(message);
|
||||
publicEvent.color = chatWindow.cmpColorPicker.selectedColor.toString();
|
||||
publicEvent.time = currentTime();
|
||||
publicEvent.language = ResourceUtil.getInstance().getCurrentLanguageCode().split("_")[0];
|
||||
@ -244,7 +248,8 @@
|
||||
|
||||
private function sendPrivateChatMessage():void {
|
||||
var privateEvent:SendPrivateChatMessageEvent = new SendPrivateChatMessageEvent(SendPrivateChatMessageEvent.SEND_PRIVATE_CHAT_MESSAGE_EVENT);
|
||||
privateEvent.message = parseURLs(cleanup(chatWindow.txtMsg.text));
|
||||
//privateEvent.message = parseURLs(cleanup(chatWindow.txtMsg.text));
|
||||
privateEvent.message = cleanup(chatWindow.txtMsg.text);
|
||||
privateEvent.toUser = chatTabs.selectedChild.name;
|
||||
privateEvent.color = chatWindow.cmpColorPicker.selectedColor.toString();
|
||||
privateEvent.time = currentTime();
|
||||
@ -364,6 +369,9 @@
|
||||
|
||||
private function handlePublicChatMessageEvent(event:PublicChatMessageEvent):void {
|
||||
LogUtil.debug("Got PublicChatMessageEvent from userid [ " + event.chatobj.userid + " ]");
|
||||
if(event.chatobj.userid != "")
|
||||
event.chatobj.message = parseURLs(event.chatobj.message);
|
||||
|
||||
showMessage(PUBLIC_CHAT_USERID, event.chatobj, autoTranslation);
|
||||
if ((!this.focus) &&
|
||||
(! UserManager.getInstance().getConference().amIThisUser(new Number(event.chatobj.userid))) &&
|
||||
@ -378,6 +386,8 @@
|
||||
if ((!this.focus) && (! UserManager.getInstance().getConference().amIThisUser(new Number(event.message.sender)))) {
|
||||
ExternalInterface.call("startblink", ResourceUtil.getInstance().getString('bbb.chat.privateMsgAwaiting'), ResourceUtil.getInstance().getString('bbb.chat.privateMsgAwaiting2'));
|
||||
}
|
||||
if(event.message.chatobj.userid != "")
|
||||
event.message.chatobj.message = parseURLs(event.message.chatobj.message);
|
||||
showMessage(event.message.sender, event.message.chatobj, autoTranslation);
|
||||
}
|
||||
|
||||
|
@ -132,5 +132,15 @@ module BigBlueButton
|
||||
end
|
||||
stop_events.sort {|a, b| a[:stop_timestamp] <=> b[:stop_timestamp]}
|
||||
end
|
||||
|
||||
def self.linkify( text )
|
||||
generic_URL_regexp = Regexp.new( '(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t<]*)', Regexp::MULTILINE | Regexp::IGNORECASE )
|
||||
starts_with_www_regexp = Regexp.new( '(^|[\n ])((www)\.[^ \"\t\n\r<]*)', Regexp::MULTILINE | Regexp::IGNORECASE )
|
||||
|
||||
s = text.to_s
|
||||
s.gsub!( generic_URL_regexp, '\1<a href="\2">\2</a>' )
|
||||
s.gsub!( starts_with_www_regexp, '\1<a href="http://\2">\2</a>' )
|
||||
s
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -490,7 +490,7 @@ def processChatMessages
|
||||
$chat_events.each do |node|
|
||||
chat_timestamp = node[:timestamp]
|
||||
chat_sender = node.xpath(".//sender")[0].text()
|
||||
chat_message = node.xpath(".//message")[0].text()
|
||||
chat_message = BigBlueButton::Events.linkify(node.xpath(".//message")[0].text())
|
||||
chat_start = (chat_timestamp.to_i - $meeting_start.to_i) / 1000
|
||||
$xml.timeline(:in => chat_start, :direction => :down, :innerHTML => "<span><strong>#{chat_sender}:</strong> #{chat_message}</span>", :target => :chat )
|
||||
end
|
||||
|
@ -117,7 +117,7 @@ if (playback == "slides")
|
||||
chat_events.each do |node|
|
||||
chat_timestamp = node['timestamp']
|
||||
chat_sender = node.xpath(".//sender")[0].text()
|
||||
chat_message = node.xpath(".//message")[0].text()
|
||||
chat_message = BigBlueButton::Events.linkify(node.xpath(".//message")[0].text())
|
||||
chat_start = (chat_timestamp.to_i - meeting_start.to_i) / 1000
|
||||
xml.timeline(:in => chat_start, :direction => "down", :innerHTML => "<span><strong>#{chat_sender}:</strong> #{chat_message}</span>", :target => "chat" )
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user