Merge branch 'develop' into cleanup-tests

This commit is contained in:
Alan Friedman 2016-02-27 11:33:51 -05:00
commit c92831a4a3
3 changed files with 45 additions and 16 deletions

View File

@ -20,6 +20,11 @@ export default class Chat {
this.bindEvents(); this.bindEvents();
} }
clear() {
let chatArea = $('.messages');
return chatArea.fadeOut(200, () => { chatArea.empty().show(); });
}
// Log a message // Log a message
log(message, options) { log(message, options) {
let html = options && options.html === true || false; let html = options && options.html === true || false;
@ -243,6 +248,15 @@ export default class Chat {
console.log(err); console.log(err);
}); });
} }
}, {
command: 'clear',
description: 'Clears the chat screen',
paramaters: [],
multiple: true,
usage: '/clear',
action: () => {
this.clear();
}
}]; }];
const color = () => { const color = () => {

View File

@ -13,7 +13,6 @@ $(function() {
const darkwire = new Darkwire(); const darkwire = new Darkwire();
const cryptoUtil = new CryptoUtil(); const cryptoUtil = new CryptoUtil();
let $window = $(window);
let $participants = $('#participants'); let $participants = $('#participants');
let roomId = window.location.pathname.length ? window.location.pathname : null; let roomId = window.location.pathname.length ? window.location.pathname : null;
@ -67,19 +66,6 @@ $(function() {
return sanitized; return sanitized;
} }
// Keyboard events
$window.keydown(function(event) {
// When the client hits ENTER on their keyboard and chat message input is focused
if (event.which === 13 && !event.shiftKey && $('.inputMessage').is(':focus')) {
handleMessageSending();
socket.emit('stop typing');
chat.typing = false;
event.preventDefault();
}
});
// Select message input when closing modal // Select message input when closing modal
$('.modal').on('hidden.bs.modal', function(e) { $('.modal').on('hidden.bs.modal', function(e) {
chat.inputMessage.focus(); chat.inputMessage.focus();
@ -201,7 +187,7 @@ $(function() {
darkwire.audio.soundEnabled = state; darkwire.audio.soundEnabled = state;
}); });
function handleMessageSending() { window.handleMessageSending = function() {
let message = chat.inputMessage; let message = chat.inputMessage;
let cleanedMessage = cleanInput(message.val()); let cleanedMessage = cleanInput(message.val());
let slashCommand = chat.parseCommand(cleanedMessage); let slashCommand = chat.parseCommand(cleanedMessage);
@ -223,7 +209,7 @@ $(function() {
}).catch((err) => { }).catch((err) => {
console.log(err); console.log(err);
}); });
} };
window.triggerFileTransfer = function(context) { window.triggerFileTransfer = function(context) {
const fileId = context.getAttribute('data-file'); const fileId = context.getAttribute('data-file');

View File

@ -4,6 +4,9 @@ export default class WindowHandler {
constructor(darkwire, socket, chat) { constructor(darkwire, socket, chat) {
this._isActive = false; this._isActive = false;
this.fileHandler = new FileHandler(darkwire, socket, chat); this.fileHandler = new FileHandler(darkwire, socket, chat);
this.socket = socket;
this.chat = chat;
this.keyMapping = [];
this.newMessages = 0; this.newMessages = 0;
this.favicon = new Favico({ this.favicon = new Favico({
@ -52,6 +55,32 @@ export default class WindowHandler {
this._isActive = false; this._isActive = false;
}; };
// Keyboard events
window.onkeydown = (event) => {
// When the client hits ENTER on their keyboard and chat message input is focused
if (event.which === 13 && !event.shiftKey && $('.inputMessage').is(':focus')) {
handleMessageSending();
this.socket.emit('stop typing');
this.chat.typing = false;
event.preventDefault();
} else {
this.keyMapping[event.keyCode] = event.type === 'keydown';
}
};
window.onkeyup = (event) => {
/**
* 17: CTRL
* 91: Left CMD
* 93: Right CMD
* 75: K
*/
if ((this.keyMapping[17] || this.keyMapping[91] || this.keyMapping[93]) && this.keyMapping[75]) {
this.chat.clear();
}
this.keyMapping = [];
};
} }
} }